Funzione WdfDeviceInitFree (wdfdevice.h)
[Si applica solo a KMDF]
Il metodo WdfDeviceInitFree dealloca una struttura WDFDEVICE_INIT.
Sintassi
void WdfDeviceInitFree(
[in] PWDFDEVICE_INIT DeviceInit
);
Parametri
[in] DeviceInit
Puntatore a una struttura WDFDEVICE_INIT.
Valore restituito
Nessuno
Osservazioni
Se il driver riceve una struttura WDFDEVICE_INIT da una chiamata a WdfPdoInitAllocate o WdfControlDeviceInitAllocatee se successivamente il driver rileva un errore quando chiama un metodo di inizializzazione dell'oggetto dispositivo o WdfDeviceCreate, il driver deve chiamare WdfDeviceInitFree.
Il driver non deve chiamare WdfDeviceInitFree dopo aver chiamato WdfDeviceCreate correttamente.
Il driver non deve chiamare WdfDeviceInitFree se ha ricevuto la struttura WDFDEVICE_INIT come input per il relativo EvtDriverDeviceAdd funzione di callback, perché il framework elimina la struttura dopo la restituzione della funzione di callback.
Per altre informazioni sulla chiamata di WdfDeviceCreate, vedere Creating a Framework Device Object.
Esempi
L'esempio di codice seguente chiama WdfDeviceInitFree se una chiamata a WdfPdoInitAssignRawDevice ha esito negativo.
NTSTATUS status;
status = WdfPdoInitAssignRawDevice(
pDeviceInit,
&GUID_DEVCLASS_KEYBOARD
);
if (!NT_SUCCESS(status)) {
WdfDeviceInitFree(pDeviceInit);
pDeviceInit = NULL;
return STATUS;
}
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
versione minima di KMDF | 1.0 |
intestazione | wdfdevice.h (include Wdf.h) |
libreria | Wdf01000.sys (vedere Controllo delle versioni della libreria framework). |
IRQL | <= DISPATCH_LEVEL |
regole di conformità DDI | DoubleDeviceInitFree(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeDeviceCreateType2(kmdf), InitFreeDeviceCreateType4(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf), PdoInitFreeDeviceCreateType2(kmdf), PdoInitFreeDeviceCreateType4(kmdf) |