Compartir a través de


Función WdfDeviceInitSetReleaseHardwareOrderOnFailure (wdfdevice.h)

[Se aplica a KMDF y UMDF]

El método WdfDeviceInitSetReleaseHardwareOrderOnFailure especifica si el marco llama al del controlador EvtDeviceReleaseHardware función de devolución de llamada 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_FAILUREque especifica cuándo el marco llama al EvtDeviceReleaseHardware del controlador función de devolución de llamada.

Valor devuelto

Ninguno

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 de devolución de llamada 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 a la EvtDeviceReleaseHardware antes de llamar a la EvtDeviceReleaseHardware funciones 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 la EvtDeviceReleaseHardware funciones 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 al controlador de bus EvtDeviceReleaseHardware función de devolución de llamada.

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 EvtDeviceReleaseHardware función de devolución de llamada hasta que se hayan quitado todos sus dispositivos secundarios.

WdfDeviceInitSetReleaseHardwareOrderOnFailure(
                       DeviceInit,
                       WdfReleaseHardwareOrderOnFailureAfterDescendants
                       );

Requisitos

Requisito Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.11
versión mínima de UMDF 2.0
encabezado de wdfdevice.h (incluya Wdf.h)
biblioteca de 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