Funzione WdfFdoAddStaticChild (wdffdo.h)
[Si applica solo a KMDF]
Il metodo WdfFdoAddStaticChild aggiunge un dispositivo specificato all'elenco dei dispositivi figlio identificati dall'enumerazione statica.
Sintassi
NTSTATUS WdfFdoAddStaticChild(
[in] WDFDEVICE Fdo,
[in] WDFDEVICE Child
);
Parametri
[in] Fdo
Handle per un oggetto dispositivo framework che rappresenta il dispositivo padre.
[in] Child
Handle per un oggetto dispositivo framework che rappresenta il dispositivo figlio.
Valore restituito
Se l'operazione ha esito positivo, il metodo restituisce STATUS_SUCCESS. I valori restituiti aggiuntivi includono:
Codice restituito | Descrizione |
---|---|
|
Fdo non è un handle per un oggetto dispositivo del driver di funzione. |
Il metodo potrebbe restituire anche altri valori NTSTATUS.
Un controllo del bug di sistema si verifica se il driver fornisce un handle di oggetti non valido.
Commenti
I driver che usano l'enumerazione del bus statico possono chiamare WdfFdoAddStaticChild. Per altre informazioni sugli elenchi figlio statici, vedere Enumerazione dei dispositivi in un bus.
Se WdfFdoAddStaticChild restituisce un valore NTSTATUS che NT_SUCCESS valuta come FALSE, il driver deve chiamare WdfObjectDelete per eliminare l'oggetto dispositivo framework che rappresenta il dispositivo figlio. Il driver non deve eliminare l'oggetto del dispositivo framework dopo che WdfFdoAddStaticChild restituisce STATUS_SUCCESS.
Esempio
L'esempio di codice seguente crea un oggetto dispositivo framework che rappresenta un nuovo dispositivo figlio e aggiunge il dispositivo figlio all'elenco di elementi figlio del dispositivo padre. Per l'esempio di codice completo, vedere il driver di esempio KbFiltr .
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;
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Intestazione | wdffdo.h (include Wdf.h) |
Libreria | Wdf01000.sys (vedere Framework Library Versioning). |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | AddPdoToStaticChildList(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |