Compartir a través de


Función WdfDeviceInitFree (wdfdevice.h)

[Solo se aplica a KMDF]

El método WdfDeviceInitFree desasigna una estructura de WDFDEVICE_INIT.

Sintaxis

void WdfDeviceInitFree(
  [in] PWDFDEVICE_INIT DeviceInit
);

Parámetros

[in] DeviceInit

Puntero a una estructura de WDFDEVICE_INIT.

Valor devuelto

Ninguno

Observaciones

Si el controlador recibe una estructura de WDFDEVICE_INIT de una llamada a WdfPdoInitAllocate o WdfControlDeviceInitAllocatey si el controlador encuentra posteriormente produce 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 EvtDriverDeviceAdd función de devolución de llamada, ya que 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 Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.0
encabezado de wdfdevice.h (incluya Wdf.h)
biblioteca de 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(km, KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf), PdoInitFreeDeviceCreateType2(kmdf), PdoInitFreeDeviceCreateType4(kmdf)

Consulte también

WdfDeviceCrear