Freigeben über


WdfIoResourceListInsertDescriptor-Funktion (wdfresource.h)

[Gilt nur für KMDF]

Die WdfIoResourceListInsertDescriptor Methode fügt einen Ressourcendeskriptor in die logische Konfigurationeiner Ressourcenanforderungenliste ein.

Syntax

NTSTATUS WdfIoResourceListInsertDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor,
  [in] ULONG                   Index
);

Parameter

[in] ResourceList

Ein Handle zu einem Framework-Ressourcenbereichslistenobjekt, das eine logische Konfiguration von Hardwareressourcen für ein Gerät darstellt.

[in] Descriptor

Ein Zeiger auf eine IO_RESOURCE_DESCRIPTOR Struktur, die eine Hardwareressource beschreibt.

[in] Index

Ein nullbasierter Wert, der als Index in der Gruppe von Ressourcendeskriptoren verwendet wird, die sich bereits in der logischen Konfiguration befinden, die ResourceList- angibt. Wenn Sie am Ende der logischen Konfiguration einen Ressourcendeskriptor hinzufügen möchten, geben Sie WDF_INSERT_AT_END oder den Rückgabewert aus WdfIoResourceListGetCountan.

Rückgabewert

WdfIoResourceListInsertDescriptor gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode möglicherweise einen der folgenden Werte zurück:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Es wurde ein ungültiger Parameter angegeben.
STATUS_ACCESS_DENIED
Der Treiber konnte der logischen Konfiguration keine Deskriptoren hinzufügen.
STATUS_INSUFFICIENT_RESOURCES
Das Framework konnte keinen Speicherplatz zuordnen, um den Deskriptor zu speichern.
STATUS_ARRAY_BOUNDS_EXCEEDED
Der Wert, den der Index Parameter angibt, war zu groß.
 

Eine Systemfehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Bemerkungen

Die WdfIoResourceListInsertDescriptor- Methode fügt den Ressourcendeskriptor ein, auf den der Descriptor Parameter verweist, in die logische Konfiguration, auf die der ResourceList Parameter angibt, vor dem Ressourcendeskriptor, den der Index Wert identifiziert.

Wenn Sie am Ende einer logischen Konfiguration einen Ressourcendeskriptor hinzufügen möchten, geben Sie WDF_INSERT_AT_END oder den Rückgabewert aus WdfIoResourceListGetCount- für den Index- Wert an. Alternativ können Sie die WdfIoResourceListAppendDescriptor--Methode verwenden.

Das Framework kopiert den Inhalt der IO_RESOURCE_DESCRIPTOR-Struktur in den internen Speicher, sodass die Treiberroutine, die WdfIoResourceListInsertDescriptor aufruft, die Struktur lokal zuordnen kann. Nachdem der Treiber WdfIoResourceListInsertDescriptoraufgerufen hat, kann der Treiber die IO_RESOURCE_DESCRIPTOR Struktur wiederverwenden.

Weitere Informationen zu Ressourcenanforderungenlisten und logischen Konfigurationen finden Sie unter Hardwareressourcen für Framework-Based Drivers.

Beispiele

Im folgenden Codebeispiel wird ein Ressourcendeskriptor initialisiert und der Deskriptor am Ende einer logischen Konfiguration hinzugefügt.

IO_RESOURCE_DESCRIPTOR descriptor;

RtlZeroMemory(&descriptor, sizeof(descriptor));

descriptor.Option = 0;
descriptor.Type = CmResourceTypePort;
descriptor.ShareDisposition = CmResourceShareDeviceExclusive;
descriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
descriptor.u.Port.Length = 1;
descriptor.u.Port.Alignment = 0x01;
descriptor.u.Port.MinimumAddress.QuadPart = 0;
descriptor.u.Port.MaximumAddress.QuadPart = 0xFFFF;

status = WdfIoResourceListInsertDescriptor(
                                           logConfig,
                                           &descriptor,
                                           WDF_INSERT_AT_END
                                           );
if (!NT_SUCCESS(status)) {
    return status;
}

Anforderungen

Anforderung Wert
Zielplattform- Universal
Minimale KMDF-Version 1.0
Header- wdfresource.h (include Wdf.h)
Library Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.)
IRQL- <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListAppendDescriptor-