Compartir a través de


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)

Consulte también

WdfDeviceCreate