EVT_WDF_REQUEST_IMPERSONATE 콜백 함수(wdfrequest.h)
[UMDF에만 적용]
드라이버의 EvtRequestImpersonate 이벤트 콜백 함수는 요청된 가장 수준에서 보호된 파일 열기와 같은 작업을 수행합니다.
통사론
EVT_WDF_REQUEST_IMPERSONATE EvtWdfRequestImpersonate;
void EvtWdfRequestImpersonate(
[in] WDFREQUEST Request,
[in, optional] PVOID Context
)
{...}
매개 변수
[in] Request
가장이 필요한 I/O 요청을 나타내는 프레임워크 요청 개체에 대한 핸들입니다.
[in, optional] Context
WdfRequestImpersonate 메서드에서 이전에 제공된 컨텍스트에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 컨텍스트가 필요하지 않은 경우 NULL일 수 있습니다.
반환 값
없음
발언
User-Mode 드라이버 프레임워크(UMDF)는 드라이버의 EvtRequestImpersonate 콜백 함수가 프레임워크의 개체 메서드를 호출하는 것을 허용하지 않습니다. 이렇게 하면 드라이버가 다른 드라이버 콜백 함수 또는 다른 드라이버에 가장 수준을 노출하지 않습니다.
EVT_WDF_REQUEST_IMPERSONATE 함수 형식은 Wdfrequest.h 헤더 파일에 정의됩니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 _Use_decl_annotations_
주석을 추가해야 합니다.
_Use_decl_annotations_
주석은 헤더 파일의 EVT_WDF_REQUEST_IMPERSONATE 함수 형식에 적용되는 주석이 사용되는지 확인합니다.
다음 제한 사항도 적용됩니다.
드라이버가
ImpersonationLevel = SecurityIdentification
WdfRequestImpersonate 호출하는 경우 콜백은 LoadLibrary 호출하거나 액세스 확인이 필요한 작업을 수행할 수 없습니다.DLL 지연 로드에 동일한 원칙이 적용됩니다. 드라이버가 식별 수준에서 가장하고 콜백이 GetUserNameW 호출하는 예를 생각해 보세요. 이 API는 차례로 다른 DLL을 로드하고 GetUserNameExW 호출하므로 ERROR_PROC_NOT_FOUND 또는 ERROR_BAD_IMPERSONATION_LEVEL초기 호출이 실패할 수 있습니다. 이 경우 콜백은 대신 GetUserNameExW 직접 호출해야 합니다.
자세한 내용은 UMDF 드라이버클라이언트 가장 처리를 참조하세요.
예제
EvtRequestImpersonate 콜백 함수를 정의하려면 먼저 정의하는 콜백 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 콜백 함수 형식 집합을 제공합니다. 콜백 함수 형식을 사용하여 함수를 선언하면 드라이버 , SDV(정적 드라이버 검증 도구) 및 기타 확인 도구에 대한 코드 분석을데 도움이 되며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.
예를 들어 myRequestImpersonate 이름이EvtRequestImpersonate 콜백 함수를 정의하려면 다음 코드 예제와 같이 EVT_WDF_REQUEST_IMPERSONATE 형식을 사용합니다.
EVT_WDF_REQUEST_IMPERSONATE MyRequestImpersonate;
그런 다음 다음과 같이 콜백 함수를 구현합니다.
_Use_decl_annotations_
VOID
MyRequestImpersonate (
WDFREQUEST Request
PVOID Context
)
{...}
함수 선언 요구 사항에 대한 자세한 내용은 KMDF 드라이버함수 역할 형식을 사용하여 함수 선언을 참조하세요.
Use_decl_annotations대한 자세한 내용은 함수 동작 주석참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8.1 |
대상 플랫폼 | 보편적 |
최소 UMDF 버전 | 2.0 |
헤더 | wdfrequest.h(Wdf.h 포함) |