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 zu einem 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. Wenn Sie am Ende der Ressourcenliste einen Ressourcendeskriptor hinzufügen möchten, geben Sie WDF_INSERT_AT_END oder den Rückgabewert aus WdfCmResourceListGetCountan.

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
Es wurde ein ungültiger Parameter angegeben.
STATUS_ACCESS_DENIED
Der Treiber konnte der logischen Konfiguration, die der angegebene parameter List angegeben hat, keine Deskriptoren hinzufügen. Beispielsweise konnte der Treiber die logische Konfiguration nicht ändern, die seine EvtDevicePrepareHardware oder EvtDeviceReleaseHardware empfangene Rückruffunktion erhalten hat.
STATUS_INSUFFICIENT_RESOURCES
Das Framework konnte keinen Speicherplatz zuordnen, um den Deskriptor zu speichern, auf den der Deskriptor Parameter verweist.
STATUS_ARRAY_BOUNDS_EXCEEDED
Der wert, den der Index parameter angegeben hat, war zu groß.
 

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

Bemerkungen

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

Wenn Sie am Ende einer Ressourcenliste einen Ressourcendeskriptor hinzufügen möchten, geben Sie WDF_INSERT_AT_END oder den Rückgabewert aus WdfCmResourceListGetCount als Index- Wert 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 WdfCmResourceListInsertDescriptoraufgerufen hat, kann er die CM_PARTIAL_RESOURCE_DESCRIPTOR Struktur wiederverwenden.

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

Beispiele

Im folgenden Codebeispiel wird am Ende der Ressourcenliste ein Ressourcendeskriptor hinzugefügt, den eine EvtDeviceResourcesQuery Rückruffunktion 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- 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

CM_PARTIAL_RESOURCE_DESCRIPTOR

EvtDevicePrepareHardware

EvtDeviceReleaseHardware

EvtDeviceResourcesQuery

WdfCmResourceListAppendDescriptor-