WdfDeviceInitSetReleaseHardwareOrderOnFailure 函式 (wdfdevice.h)
[適用於 KMDF 和 UMDF]
WdfDeviceInitSetReleaseHardwareOrderOnFailure 方法會指定架構是否會在裝置失敗後立即呼叫驅動程式的 EvtDeviceReleaseHardware 回呼函式,或等到移除所有子裝置為止。
語法
void WdfDeviceInitSetReleaseHardwareOrderOnFailure(
[in] PWDFDEVICE_INIT DeviceInit,
[in] WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure
);
參數
[in] DeviceInit
WDFDEVICE_INIT 結構的指標。
[in] ReleaseHardwareOrderOnFailure
WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE型別列舉值,指定架構何時呼叫驅動程式的 EvtDeviceReleaseHardware 回呼函式。
傳回值
無
備註
一般而言,架構會在呼叫驅動程式列舉的所有子裝置的 EvtDeviceReleaseHardware 回呼函式之後,呼叫驅動程式的 EvtDeviceReleaseHardware 函式。
不過,如果裝置電源啟動或關閉電源故障,架構可能會在呼叫驅動程式的 EvtDeviceReleaseHardware 之前呼叫所有子裝置的 EvtDeviceReleaseHardware 函式。
若要覆寫此預設行為,驅動程式可以呼叫 WdfDeviceInitSetReleaseHardwareOrderOnFailure 來指定,即使在裝置失敗案例中,架構應該一律等候呼叫其 EvtDeviceReleaseHardware 函式,直到呼叫子裝置的 EvtDeviceReleaseHardware 函式為止。
例如,代表其子裝置執行硬體存取的總線驅動程式可以使用這項技術,確保其子裝置在架構呼叫總線驅動程式的 EvtDeviceReleaseHardware 回呼函式之後,不會要求存取硬體。
如果驅動程式呼叫 WdfDeviceInitSetReleaseHardwareOrderOnFailure,則必須先執行此動作,才能呼叫 WdfDeviceCreate。 如需呼叫 WdfDeviceCreate 的詳細資訊,請參閱 建立 Framework 裝置物件。
範例
下列程式代碼範例示範總線驅動程式如何要求架構等候呼叫 其 EvtDeviceReleaseHardware 回呼函式,直到移除其所有子裝置為止。
WdfDeviceInitSetReleaseHardwareOrderOnFailure(
DeviceInit,
WdfReleaseHardwareOrderOnFailureAfterDescendants
);
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最小 KMDF 版本 | 1.11 |
最低UMDF版本 | 2.0 |
標頭 | wdfdevice.h (包含 Wdf.h) |
程式庫 | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | DriverCreate (kmdf) |