UrsSetHardwareEventSupport 函式 (ursdevice.h)
指出客戶端驅動程式對報告新硬體事件的支援。
語法
void UrsSetHardwareEventSupport(
[in] WDFDEVICE Device,
[in] BOOLEAN HardwareEventReportingSupported
);
參數
[in] Device
用戶端驅動程式在先前呼叫 WdfDeviceCreate 中擷取的架構裝置物件的句柄。
[in] HardwareEventReportingSupported
布爾值,表示報告硬體事件的支援。
TRUE 表示用戶端驅動程式會呼叫 UrsReportHardwareEvent 來報告硬體事件。
FALSE 表示用戶端驅動程式不會處理硬體事件報告。
傳回值
無
備註
在用戶端驅動程式可以報告硬體事件之前,雙角色控制器的用戶端驅動程序必須透過呼叫此方法,向類別延伸模組指出驅動程式支援硬體事件。 一般而言,驅動程式會在驅動程式的 EvtDevicePrepareHardware 回呼函式中呼叫 UrsSetHardwareEventSupport。 在 EvtDevicePrepareHardware 傳回之後,驅動程式不得呼叫此方法。 否則,如果已啟用 驅動程序驗證器 ,則方法會失敗併發出中斷。
在某些控制器中,用戶端驅動程式在執行角色切換作業之前,可能不支援角色偵測。 在此情況下,客戶端驅動程序必須將 HardwareEventReportingSupported 設定為 FALSE。 操作系統會管理控制器的角色。
否則,如果驅動程序支援角色偵測,則必須將 HardwareEventReportingSupported 設定為 TRUE。 這表示客戶端驅動程式會處理硬體事件,例如標識子針腳中斷,以及向類別延伸模塊回報需要變更角色的類別延伸模組。 驅動程式可以呼叫 UrsReportHardwareEvent 來報告事件。
範例
EVT_WDF_DEVICE_PREPARE_HARDWARE EvtDevicePrepareHardware;
NTSTATUS
EvtDevicePrepareHardware (
_In_ WDFDEVICE Device,
_In_ WDFCMRESLIST ResourcesRaw,
_In_ WDFCMRESLIST ResourcesTranslated
)
{
ULONG resourceCount;
BOOLEAN hasHardwareEventSupport;
UNREFERENCED_PARAMETER(ResourcesRaw);
TRY {
resourceCount = WdfCmResourceListGetCount(ResourcesTranslated);
...
// DetermineHardwareEventSupport determines support by inspecting resources.
// Implementation not shown.
hasHardwareEventSupport = DetermineHardwareEventSupport(ResourcesRaw);
UrsSetHardwareEventSupport(Device, hasHardwareEventSupport);
if (hasHardwareEventSupport) {
UrsReportHardwareEvent(Device, UrsHardwareEventIdGround);
}
...
} FINALLY {
}
return STATUS_SUCCESS;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 |
最低支援的伺服器 | Windows Server 2016 |
目標平台 | Windows |
最小 KMDF 版本 | 1.15 |
標頭 | ursdevice.h (包含 Urscx.h) |
程式庫 | Urscxstub.lib |
IRQL | PASSIVE_LEVEL |