Función WdfDeviceInitSetReleaseHardwareOrderOnFailure (wdfdevice.h)

[Se aplica a KMDF y UMDF]

El método WdfDeviceInitSetReleaseHardwareOrderOnFailure especifica si el marco llama a la función de devolución de llamada EvtDeviceReleaseHardware del controlador inmediatamente después del error del dispositivo o espera hasta que se hayan quitado todos los dispositivos secundarios.

Sintaxis

void WdfDeviceInitSetReleaseHardwareOrderOnFailure(
  [in] PWDFDEVICE_INIT                       DeviceInit,
  [in] WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure
);

Parámetros

[in] DeviceInit

Puntero a una estructura de WDFDEVICE_INIT .

[in] ReleaseHardwareOrderOnFailure

Enumerador con tipo WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE que especifica cuándo el marco llama a la función de devolución de llamada EvtDeviceReleaseHardware del controlador.

Valor devuelto

None

Observaciones

Normalmente, el marco llama a la función de devolución de llamada EvtDeviceReleaseHardware de un controlador después de llamar a la función EvtDeviceReleaseHardware para todos los dispositivos secundarios que el controlador enumera.

Sin embargo, en caso de un error de encendido o apagado del dispositivo, el marco podría llamar al EvtDeviceReleaseHardware del controlador antes de llamar a las funciones EvtDeviceReleaseHardware para todos los dispositivos secundarios.

Para invalidar este comportamiento predeterminado, un controlador puede llamar a WdfDeviceInitSetReleaseHardwareOrderOnFailure para especificar que, incluso en escenarios de error del dispositivo, el marco siempre debe esperar a llamar a su función EvtDeviceReleaseHardware hasta que haya llamado a las funciones EvtDeviceReleaseHardware de los dispositivos secundarios.

Por ejemplo, un controlador de bus que realiza el acceso de hardware en nombre de sus dispositivos secundarios podría usar esta técnica para asegurarse de que sus dispositivos secundarios no solicitan acceso al hardware después de que el marco haya llamado a la función de devolución de llamada EvtDeviceReleaseHardware del controlador de bus.

Si un controlador llama a WdfDeviceInitSetReleaseHardwareOrderOnFailure, debe hacerlo antes de llamar a WdfDeviceCreate. 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 muestra cómo un controlador de bus puede solicitar que el marco espere a llamar a su función de devolución de llamada EvtDeviceReleaseHardware hasta que se hayan quitado todos sus dispositivos secundarios.

WdfDeviceInitSetReleaseHardwareOrderOnFailure(
                       DeviceInit,
                       WdfReleaseHardwareOrderOnFailureAfterDescendants
                       );

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.11
Versión mínima de UMDF 2.0
Encabezado wdfdevice.h (incluir Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf)

Consulte también

EvtDeviceReleaseHardware

WDFDEVICE_INIT

WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE