WdfChildListCreate-Funktion (wdfchildlist.h)
[Gilt nur für KMDF]
Die WdfChildListCreate-Methode erstellt eine untergeordnete Liste für ein angegebenes übergeordnetes Gerät.
Syntax
NTSTATUS WdfChildListCreate(
[in] WDFDEVICE Device,
[in] PWDF_CHILD_LIST_CONFIG Config,
[in, optional] PWDF_OBJECT_ATTRIBUTES ChildListAttributes,
[out] WDFCHILDLIST *ChildList
);
Parameter
[in] Device
Ein Handle für ein Framework-Geräteobjekt, das das übergeordnete Gerät darstellt.
[in] Config
Ein Zeiger auf eine WDF_CHILD_LIST_CONFIG Struktur, die vom Treiber bereitgestellte Konfigurationsinformationen für die untergeordnete Liste enthält.
[in, optional] ChildListAttributes
Ein Zeiger auf eine WDF_OBJECT_ATTRIBUTES-Struktur , die vom Treiber bereitgestellte Objektattribute für das untergeordnete Framework-Listenobjekt enthält. (Das ParentObject-Element der Struktur muss NULL sein.)
[out] ChildList
Ein Zeiger auf einen vom Aufrufer zugewiesenen Speicherort, der ein Handle für ein untergeordnetes Framework-Listenobjekt empfängt.
Rückgabewert
WdfChildListCreate gibt STATUS_SUCCESS oder einen anderen status Wert zurück, für den NT_SUCCESS(status)gleich TRUE ist, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode möglicherweise einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
|
Ein Eingabeparameter war ungültig. |
|
Ein Objekt konnte nicht zugeordnet werden. |
Diese Methode gibt möglicherweise auch andere NTSTATUS-Werte zurück.
Eine Systemfehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Das Framework erstellt eine standardmäßige untergeordnete Liste für jedes Framework-Geräteobjekt, das ein funktionales Geräteobjekt (Functional Device Object, FDO) darstellt. Um die standardmäßige untergeordnete Liste zu verwenden, ruft der Treiber WdfFdoGetDefaultChildList auf. Wenn Ihr Treiber zusätzliche untergeordnete Listen benötigt, kann er WdfChildListCreate aufrufen, um sie zu erstellen.
Das übergeordnete Element jedes untergeordneten Listenobjekts ist das Framework-Geräteobjekt des Geräts. Der Treiber kann dieses übergeordnete Element nicht ändern, und das ParentObject-Element oder die WDF_OBJECT_ATTRIBUTES-Struktur muss NULL sein.
Ihr Treiber kann das objekt child-list, das von WdfChildListCreate erstellt wird, nicht löschen. Das Framework löscht das -Objekt zur richtigen Zeit.
Weitere Informationen zu untergeordneten Listen finden Sie unter Dynamische Enumeration.
Beispiele
Im folgenden Codebeispiel wird eine WDF_CHILD_LIST_CONFIG-Struktur initialisiert und dann WdfChildListCreate aufgerufen.
WDF_CHILD_LIST_CONFIG listConfig;
WDF_CHILD_LIST_CONFIG_INIT(
&listConfig,
sizeof(PDO_IDENTIFICATION_DESCRIPTION),
My_EvtDeviceListCreatePdo
);
listConfig.AddressDescriptionSize = sizeof(PDO_ADDRESS_DESCRIPTION);
listConfig.EvtChildListScanForChildren = My_EvtChildListScanForChildren;
listConfig.EvtChildListIdentificationDescriptionDuplicate = My_EvtChildListIdentificationDescriptionDuplicate;
listConfig.EvtChildListIdentificationDescriptionCompare = My_EvtChildListIdentificationDescriptionCompare;
listConfig.EvtChildListIdentificationDescriptionCleanup = My_EvtChildListIdentificationDescriptionCleanup;
status = WdfChildListCreate(
device,
&listConfig,
WDF_NO_OBJECT_ATTRIBUTES,
&ParentDeviceContext->ChildList
);
if (!NT_SUCCESS(status)) {
return status;
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
Kopfzeile | wdfchildlist.h (include Wdf.h) |
Bibliothek | Wdf01000.sys (siehe Versionsverwaltung der Frameworkbibliothek).) |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |