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 zu einem 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 Listenobjekt des Frameworks 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 framework-untergeordnetes Listenobjekt empfängt.

Rückgabewert

WdfChildListCreate gibt STATUS_SUCCESS oder einen anderen Statuswert zurück, für den NT_SUCCESS(Status) gleich TRUEist, 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 kann auch andere NTSTATUS-Wertezurückgeben.

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

Bemerkungen

Das Framework erstellt eine standardmäßige untergeordnete Liste für jedes Framework-Geräteobjekt, das ein funktionales Geräteobjekt (FDO) darstellt. Um die standardmäßige untergeordnete Liste zu verwenden, ruft der Treiber WdfFdoGetDefaultChildListauf. Wenn Ihr Treiber zusätzliche untergeordnete Listen erfordert, 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 der untergeordneten Liste nicht löschen, das WdfChildListCreate erstellt. 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 WdfChildListCreateaufgerufen.

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- Universal
Minimale KMDF-Version 1.0
Header- wdfchildlist.h (include Wdf.h)
Library Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.)
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch

WDF_CHILD_LIST_CONFIG

WDF_CHILD_LIST_CONFIG_INIT

WdfFdoGetDefaultChildList