WdfIoResourceListAppendDescriptor-Funktion (wdfresource.h)
[Gilt nur für KMDF]
Die WdfIoResourceListAppendDescriptor Methode fügt am Ende der logischen Konfigurationeine Ressourcenanforderungsliste ein Ressourcendeskriptor hinzu.
Syntax
NTSTATUS WdfIoResourceListAppendDescriptor(
[in] WDFIORESLIST ResourceList,
[in] PIO_RESOURCE_DESCRIPTOR Descriptor
);
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.
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 |
---|---|
|
Es wurde ein ungültiger Parameter angegeben. |
|
Der Treiber konnte der logischen Konfiguration, die vom ResourceList Parameter angegeben wurde, keine Deskriptoren hinzufügen. |
|
Das Framework konnte keinen Speicherplatz zuordnen, um den Deskriptor zu speichern. |
Eine Systemfehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Bemerkungen
Das Framework kopiert den Inhalt der IO_RESOURCE_DESCRIPTOR Struktur, auf die der Descriptor Parameter verweist, in den internen Speicher, sodass die Treiberroutine, die WdfIoResourceListAppendDescriptor aufruft, lokal die Struktur zuordnen kann. Nachdem der Treiber WdfIoResourceListAppendDescriptor-aufgerufen 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 eine leere logische Konfiguration erstellt und einer Ressourcenanforderungsliste hinzugefügt. Anschließend initialisiert das Beispiel einen Ressourcendeskriptor und fügt der logischen Konfiguration den Deskriptor 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- | 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) |