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 포함) |
라이브러리 | Urscxstub.lib |
IRQL | PASSIVE_LEVEL |