共用方式為


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

另請參閱

UrsReportHardwareEvent