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

추가 정보

UrsReportHardwareEvent