Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[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) |