共用方式為


UrsSetHardwareEventSupport 函式 (ursdevice.h)

指出客戶端驅動程式支持報告新的硬體事件。

語法

void UrsSetHardwareEventSupport(
  [in] WDFDEVICE Device,
  [in] BOOLEAN   HardwareEventReportingSupported
);

參數

[in] Device

用戶端驅動程式在先前 呼叫 WdfDeviceCreate中擷取之架構裝置物件的句柄。

[in] HardwareEventReportingSupported

布爾值,表示支援報告硬體事件。

TRUE 表示用戶端驅動程式會呼叫 UrsReportHardwareEvent 來報告硬體事件。

FALSE 表示客戶端驅動程式未處理硬體事件報告。

傳回值

沒有

言論

在用戶端驅動程式可以報告硬體事件之前,雙角色控制器的用戶端驅動程式必須透過呼叫此方法向類別延伸模組指出驅動程式支援硬體事件。 驅動程式通常會在驅動程式的 EvtDevicePrepareHardware 回呼函式中呼叫 UrsSetHardwareEventSupport。 在傳回 EvtDevicePrepareHardware 之後,驅動程式不得呼叫此方法。 否則,如果啟用 Driver Verifier,則方法會失敗,併發出中斷。

針對特定控制器,客戶端驅動程式在執行角色切換作業之前,可能不支援角色偵測。 在此情況下,客戶端驅動程序必須將 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
目標平臺 窗戶
最低 KMDF 版本 1.15
標頭 ursdevice.h (包括 Urscx.h)
連結庫 Urscxstub.lib
IRQL PASSIVE_LEVEL

另請參閱

UrsReportHardwareEvent