Freigeben über


WdfCmResourceListInsertDescriptor-Funktion (wdfresource.h)

[Gilt nur für KMDF]

Die WdfCmResourceListInsertDescriptor-Methode fügt einen Ressourcendeskriptor in eine angegebene Ressourcenliste ein.

Syntax

NTSTATUS WdfCmResourceListInsertDescriptor(
  [in] WDFCMRESLIST                    List,
  [in] PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor,
  [in] ULONG                           Index
);

Parameter

[in] List

Ein Handle für ein Framework-Ressourcenlistenobjekt, das eine Liste der Hardwareressourcen für ein Gerät darstellt.

[in] Descriptor

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

[in] Index

Ein nullbasierter Wert, der als Index in der logischen Konfiguration verwendet wird, die List angibt. Um am Ende der Ressourcenliste einen Ressourcendeskriptor hinzuzufügen, geben Sie WDF_INSERT_AT_END oder den Rückgabewert aus WdfCmResourceListGetCount an.

Rückgabewert

WdfCmResourceListInsertDescriptor 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 List-Parameter angegeben wurde, keine Deskriptoren hinzufügen. Beispielsweise konnte der Treiber die logische Konfiguration nicht ändern, die seine Rückruffunktion EvtDevicePrepareHardware oder EvtDeviceReleaseHardware empfangen hat.
STATUS_INSUFFICIENT_RESOURCES
Das Framework konnte keinen Speicherplatz zuweisen, um den Deskriptor zu speichern, auf den der Descriptor-Parameter verweist.
STATUS_ARRAY_BOUNDS_EXCEEDED
Der vom Index-Parameter angegebene Wert war zu groß.
 

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

Hinweise

Die WdfCmResourceListInsertDescriptor-Methode fügt den Ressourcendeskriptor, den Descriptor angibt, in die Ressourcenliste ein, die List angibt, vor dem Ressourcendeskriptor, den der Index-Wert identifiziert.

Um am Ende einer Ressourcenliste einen Ressourcendeskriptor hinzuzufügen, geben Sie WDF_INSERT_AT_END oder den Rückgabewert aus WdfCmResourceListGetCount als Indexwert an. Alternativ können Sie die WdfCmResourceListAppendDescriptor-Methode verwenden.

Das Framework kopiert den Inhalt der CM_PARTIAL_RESOURCE_DESCRIPTOR-Struktur in den internen Speicher, sodass die Treiberroutine, die WdfCmResourceListInsertDescriptor aufruft, die Struktur lokal zuordnen kann. Nachdem der Treiber WdfCmResourceListInsertDescriptor aufgerufen hat, kann er die CM_PARTIAL_RESOURCE_DESCRIPTOR-Struktur wiederverwenden.

Weitere Informationen zu Ressourcenlisten finden Sie unter Hardwareressourcen für Framework-Based Treiber.

Beispiele

Im folgenden Codebeispiel wird am Ende der Ressourcenliste ein Ressourcendeskriptor hinzugefügt, den eine Rückruffunktion von EvtDeviceResourcesQuery empfängt .

NTSTATUS
PdoEvtDeviceResourcesQuery(
    IN WDFDEVICE  Device,
    IN WDFCMRESLIST  Resources
    )
{
    CM_PARTIAL_RESOURCE_DESCRIPTOR newDescriptor;
...
    newDescriptor.Type = CmResourceTypePort;
    newDescriptor.ShareDisposition = CmResourceShareDeviceExclusive;
    newDescriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
    newDescriptor.u.Port.Length = 1;
    newDescriptor.u.Port.Start = 0;

    status = WdfCmResourceListInsertDescriptor(
                                               Resources,
                                               &newDescriptor,
                                               WDF_INSERT_AT_END
                                               );
...

}

Anforderungen

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

Weitere Informationen

CM_PARTIAL_RESOURCE_DESCRIPTOR

EvtDevicePrepareHardware

EvtDeviceReleaseHardware

EvtDeviceResourcesQuery

WdfCmResourceListAppendDescriptor