WdfIoResourceListAppendDescriptor-Funktion (wdfresource.h)

[Gilt nur für KMDF]

Die WdfIoResourceListAppendDescriptor-Methode fügt am Ende der logischen Konfiguration einer Ressourcenanforderungsliste einen Ressourcendeskriptor hinzu.

Syntax

NTSTATUS WdfIoResourceListAppendDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor
);

Parameter

[in] ResourceList

Ein Handle für ein Framework resource-range-list-Objekt, 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.

Rückgabewert

WdfIoResourceListAppendDescriptor 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
Ein ungültiger Parameter wurde angegeben.
STATUS_ACCESS_DENIED
Der Treiber durfte der logischen Konfiguration, die vom ResourceList-Parameter angegeben wurde, keine Deskriptoren hinzufügen.
STATUS_INSUFFICIENT_RESOURCES
Das Framework konnte keinen Speicherplatz zum Speichern des Deskriptors zuweisen.
 

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

Hinweise

Das Framework kopiert den Inhalt der IO_RESOURCE_DESCRIPTOR-Struktur , auf die der Descriptor-Parameter zeigt, in den internen Speicher, sodass die Treiberroutine, die WdfIoResourceListAppendDescriptor aufruft, die Struktur lokal zuordnen kann. Nachdem der Treiber WdfIoResourceListAppendDescriptor aufgerufen hat, kann der Treiber die IO_RESOURCE_DESCRIPTOR-Struktur wiederverwenden.

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

Beispiele

Im folgenden Codebeispiel wird eine leere logische Konfiguration erstellt und einer Ressourcenanforderungsliste hinzugefügt. Anschließend initialisiert das Beispiel einen Ressourcendeskriptor und fügt den Deskriptor der logischen Konfiguration hinzu.

IO_RESOURCE_DESCRIPTOR  descriptor;
NTSTATUS  status;
WDFIORESLIST  logConfig;

status = WdfIoResourceListCreate(
                                 RequirementsList,
                                 WDF_NO_OBJECT_ATTRIBUTES,
                                 &logConfig
                                 );
if (!NT_SUCCESS(status)) {
    return status;
}

status = WdfIoResourceRequirementsListAppendIoResList(
                                                      RequirementsList,
                                                      logConfig
                                                      );
if (!NT_SUCCESS(status)) {
    return status;
}

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 = WdfIoResourceListAppendDescriptor(
                                           logConfig,
                                           &descriptor
                                           );

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
Kopfzeile wdfresource.h (include Wdf.h)
Bibliothek Wdf01000.sys (siehe Versionsverwaltung der Frameworkbibliothek).)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Weitere Informationen

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListErstellen

WdfIoResourceListInsertDescriptor