WdfFdoAddStaticChild-Funktion (wdffdo.h)
[Gilt nur für KMDF]
Die WdfFdoAddStaticChild-Methode fügt der Liste der untergeordneten Geräte eines Funktionstreibers, die durch statische Enumeration identifiziert wurden, ein angegebenes Gerät hinzu.
Syntax
NTSTATUS WdfFdoAddStaticChild(
[in] WDFDEVICE Fdo,
[in] WDFDEVICE Child
);
Parameter
[in] Fdo
Ein Handle für ein Frameworkgeräteobjekt, das das übergeordnete Gerät darstellt.
[in] Child
Ein Handle für ein Frameworkgerätobjekt, das das untergeordnete Gerät darstellt.
Rückgabewert
Wenn der Vorgang erfolgreich ist, gibt die Methode STATUS_SUCCESS zurück. Weitere Rückgabewerte sind:
Rückgabecode | Beschreibung |
---|---|
|
Fdo ist kein Handle für das Geräteobjekt eines Funktionstreibers. |
Die Methode kann auch andere NTSTATUS-Werte zurückgeben.
Eine Systemfehlerprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Treiber, die die statische Busaufzählung verwenden, können WdfFdoAddStaticChild aufrufen. Weitere Informationen zu statischen untergeordneten Listen finden Sie unter Auflisten der Geräte auf einem Bus.
Wenn WdfFdoAddStaticChild einen NTSTATUS-Wert zurückgibt, der alsFALSE ausgewertet NT_SUCCESS, muss der Treiber WdfObjectDelete aufrufen, um das Framework-Geräteobjekt zu löschen, das das untergeordnete Gerät darstellt. Der Treiber darf das Framework-Geräteobjekt nicht löschen, nachdem WdfFdoAddStaticChild STATUS_SUCCESS zurückgibt.
Beispiele
Im folgenden Codebeispiel wird ein Frameworkgeräteobjekt erstellt, das ein neues untergeordnetes Gerät darstellt, und fügt das untergeordnete Gerät der Liste der untergeordneten Geräte des übergeordneten Geräts hinzu. Das vollständige Codebeispiel finden Sie im KbFiltr-Beispieltreiber .
NTSTATUS status;
PWDFDEVICE_INIT pDeviceInit = NULL;
WDFDEVICE hChild = NULL;
WDF_OBJECT_ATTRIBUTES pdoAttributes;
pDeviceInit = WdfPdoInitAllocate(Device);
if (pDeviceInit == NULL) {
status = STATUS_INSUFFICIENT_RESOURCES;
goto Cleanup;
}
...
status = WdfDeviceCreate(
&pDeviceInit,
&pdoAttributes,
&hChild
);
if (!NT_SUCCESS(status)) {
WdfDeviceInitFree(pDeviceInit);
pDeviceInit = NULL;
goto Cleanup;
}
...
status = WdfFdoAddStaticChild(
Device,
hChild
);
if (!NT_SUCCESS(status)) {
goto Cleanup;
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
Kopfzeile | wdffdo.h (einschließen von Wdf.h) |
Bibliothek | Wdf01000.sys (siehe Versionierung der Frameworkbibliothek.) |
IRQL | <= DISPATCH_LEVEL |
DDI-Complianceregeln | AddPdoToStaticChildList(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |