다음을 통해 공유


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