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일 수 있습니다.
반환 값
없음
설명
UMDF(User-Mode Driver Framework)는 드라이버의 EvtRequestImpersonate 콜백 함수가 프레임워크의 개체 메서드를 호출하는 것을 허용하지 않습니다. 이렇게 하면 드라이버가 가장 수준을 다른 드라이버 콜백 함수 또는 다른 드라이버에 노출하지 않습니다.
EVT_WDF_REQUEST_IMPERSONATE 함수 형식은 Wdfrequest.h 헤더 파일에 정의되어 있습니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 _Use_decl_annotations_
주석을 추가해야 합니다. 주석을 _Use_decl_annotations_
사용하면 헤더 파일의 EVT_WDF_REQUEST_IMPERSONATE 함수 형식에 적용되는 주석이 사용됩니다.
다음 제한 사항도 적용됩니다.
드라이버가 를 사용하여 WdfRequestImpersonate를
ImpersonationLevel = SecurityIdentification
호출하는 경우 콜백은 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 포함) |