Freigeben über


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
STATUS_INVALID_PARAMETER
Ein Eingabeparameter war ungültig.
STATUS_INSUFFICIENT_RESOURCES
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)

Weitere Informationen

WDF_CHILD_LIST_CONFIG

WDF_CHILD_LIST_CONFIG_INIT

WdfFdoGetDefaultChildList