EVT_URS_SET_ROLE 콜백 함수(ursdevice.h)

URS 클래스 확장은 클라이언트 드라이버가 컨트롤러의 역할을 변경해야 하는 경우 이 이벤트 콜백을 호출합니다.

구문

EVT_URS_SET_ROLE EvtUrsSetRole;

NTSTATUS EvtUrsSetRole(
  [in] WDFDEVICE Device,
  [in] URS_ROLE Role
)
{...}

매개 변수

[in] Device

클라이언트 드라이버가 WdfDeviceCreate에 대한 이전 호출에서 검색한 프레임워크 디바이스 개체에 대한 핸들입니다.

[in] Role

컨트롤러 디바이스에 대해 설정할 역할을 나타내는 URS_ROLE 형식 값입니다.

반환 값

작업이 성공하면 콜백 함수는 STATUS_SUCCESS 반환하거나 NT_SUCCESS(상태)이 TRUE인 다른 상태 값을 반환해야 합니다. 그렇지 않으면 NT_SUCCESS(상태)가 FALSE와 같은 상태 값을 반환해야 합니다.

설명

클라이언트 드라이버의 이벤트 콜백 구현을 등록하려면 드라이버는 URS_CONFIGEvtUrsSetRole 멤버를 구현 메서드의 함수 포인터로 설정한 다음, 채워진 구조를 전달하여 UrsDeviceInitialize 메서드를 호출해야 합니다. 드라이버는 컨트롤러에 대한 프레임워크 디바이스 개체를 만든 후 메서드를 호출해야 합니다.

예제



NTSTATUS
EvtUrsSetRole (
    _In_ WDFDEVICE Device,
    _In_ URS_ROLE Role
    )
{
    NTSTATUS status;
    PFDO_CONTEXT fdoContext;

    TRACE_FUNC_ENTRY(TRACE_FLAG);
    TRY {


           // Change the current role of the controller to the specified role.
           // The driver might have stored the control registers in the device context. 
           // Read and write the register to get and set the current role. 

        }


        TRACE_INFO(TRACE_FLAG, "[Device: 0x%p] Successfully set role to %!URS_ROLE!", Device, Role);

        status = STATUS_SUCCESS;

    } FINALLY {

    }

    TRACE_FUNC_EXIT(TRACE_FLAG);

    return status;
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10
지원되는 최소 서버 Windows Server 2016
대상 플랫폼 Windows
최소 KMDF 버전 1.15
머리글 ursdevice.h(Urscx.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

UrsDeviceInitialize