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。 这向类扩展指示客户端驱动程序将处理硬件事件(如 ID 引脚中断),并报告类扩展需要更改角色。 驱动程序可以通过调用 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)
Library Urscxstub.lib
IRQL PASSIVE_LEVEL

另请参阅

UrsReportHardwareEvent