Función WdfDeviceInitFree (wdfdevice.h)
[Solo se aplica a KMDF]
El método WdfDeviceInitFree desasigna una estructura WDFDEVICE_INIT .
Sintaxis
void WdfDeviceInitFree(
[in] PWDFDEVICE_INIT DeviceInit
);
Parámetros
[in] DeviceInit
Puntero a una estructura de WDFDEVICE_INIT .
Valor devuelto
None
Observaciones
Si el controlador recibe una estructura de WDFDEVICE_INIT de una llamada a WdfPdoInitAllocate o WdfControlDeviceInitAllocate y, si el controlador encuentra posteriormente un error cuando llama a un método de inicialización de objeto de dispositivo o WdfDeviceCreate, el controlador debe llamar a WdfDeviceInitFree.
El controlador no debe llamar a WdfDeviceInitFree después de llamar a WdfDeviceCreate correctamente.
El controlador no necesita llamar a WdfDeviceInitFree si recibió la estructura WDFDEVICE_INIT como entrada en su función de devolución de llamada EvtDriverDeviceAdd , porque el marco elimina la estructura después de que se devuelva la función de devolución de llamada.
Para obtener más información sobre cómo llamar a WdfDeviceCreate, vea Creating a Framework Device Object.
Ejemplos
En el ejemplo de código siguiente se llama a WdfDeviceInitFree si se produce un error en una llamada a WdfPdoInitAssignRawDevice .
NTSTATUS status;
status = WdfPdoInitAssignRawDevice(
pDeviceInit,
&GUID_DEVCLASS_KEYBOARD
);
if (!NT_SUCCESS(status)) {
WdfDeviceInitFree(pDeviceInit);
pDeviceInit = NULL;
return STATUS;
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Encabezado | wdfdevice.h (incluir Wdf.h) |
Library | Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos). |
IRQL | <= DISPATCH_LEVEL |
Reglas de cumplimiento de 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) |