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 |
目标平台 | 窗户 |
最低 KMDF 版本 | 1.15 |
标头 | ursdevice.h (包括 Urscx.h) |
库 | Urscxstub.lib |
IRQL | PASSIVE_LEVEL |