WdfIoResourceListInsertDescriptor-Funktion (wdfresource.h)
[Gilt nur für KMDF]
Die WdfIoResourceListInsertDescriptor-Methode fügt einen Ressourcendeskriptor in die logische Konfiguration einer Ressourcenanforderungsliste ein.
Syntax
NTSTATUS WdfIoResourceListInsertDescriptor(
[in] WDFIORESLIST ResourceList,
[in] PIO_RESOURCE_DESCRIPTOR Descriptor,
[in] ULONG Index
);
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.
[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. Um am Ende der logischen Konfiguration einen Ressourcendeskriptor hinzuzufügen, geben Sie WDF_INSERT_AT_END oder den Rückgabewert aus WdfIoResourceListGetCount an.
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 |
---|---|
|
Ein ungültiger Parameter wurde angegeben. |
|
Der Treiber durfte der logischen Konfiguration keine Deskriptoren hinzufügen. |
|
Das Framework konnte keinen Speicherplatz zum Speichern des Deskriptors zuweisen. |
|
Der Wert, den der Index-Parameter angibt, war zu groß. |
Eine Systemfehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Die WdfIoResourceListInsertDescriptor-Methode fügt den Ressourcendeskriptor, auf den der Descriptor-Parameter verweist, in die logische Konfiguration ein, die der ResourceList-Parameter angibt, vor dem Ressourcendeskriptor, den der Index-Wert identifiziert.
Um am Ende einer logischen Konfiguration einen Ressourcendeskriptor hinzuzufügen, geben Sie WDF_INSERT_AT_END oder den Rückgabewert aus WdfIoResourceListGetCount für den Indexwert 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 WdfIoResourceListInsertDescriptor 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 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 | 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) |