WdmlibIoValidateDeviceIoControlAccess 함수(wdmsec.h)

WdmlibIoValidateDeviceIoControlAccess 함수는 IRP_MJ_DEVICE_CONTROL 또는 IRP_MJ_FILE_SYSTEM_CONTROL IRP의 보낸 사람에게 디바이스 개체에 대한 지정된 액세스 권한이 있음을 확인합니다.

구문

NTSTATUS WdmlibIoValidateDeviceIoControlAccess(
  [in] PIRP  Irp,
  [in] ULONG RequiredAccess
);

매개 변수

[in] Irp

액세스 검사 수행할 IRP를 지정합니다.

[in] RequiredAccess

요청 보낸 사람에게 있어야 하는 디바이스 개체에 대한 액세스 유형을 지정합니다. 호출자는 다음 플래그 중 하나 이상을 지정할 수 있습니다.

의미
FILE_READ_ACCESS
요청 보낸 사람은 디바이스 개체에 대한 읽기 권한이 있어야 합니다.
FILE_WRITE_ACCESS
요청 보낸 사람은 디바이스 개체에 대한 쓰기 권한이 있어야 합니다.

반환 값

WdmlibIoValidateDeviceIoControlAccess 는 NTSTATUS 값을 반환합니다. 가능한 반환 값은 다음과 같습니다.

반환 코드 설명
STATUS_SUCCESS
요청 보낸 사람에게는 디바이스 개체에 필요한 액세스 권한이 있습니다.
STATUS_ACCESS_DENIED
요청 보낸 사람에게 디바이스 개체에 필요한 액세스 권한이 없습니다.
STATUS_INVALID_PARAMETER
지정된 매개 변수가 잘못되었습니다. 예를 들어 루틴이 IRP_MJ_DEVICE_CONTROL 아닌 IRP를 전달하거나 IRP를 IRP_MJ_FILE_SYSTEM_CONTROL 경우 STATUS_INVALID_PARAMETER 반환합니다.

설명

WdmlibIoValidateDeviceIoControlAccess 를 사용하면 드라이버가 IOCTL에 대한 동적 액세스 검사를 수행할 수 있습니다. IOCTL 정의에 지정된 것보다 더 제한적인 액세스를 요구하려면 이 루틴을 사용합니다. 루틴이 STATUS_ACCESS_DENIED 반환하는 경우 드라이버는 STATUS_ACCESS_DENIED 상태 값으로 요청을 완료할 수 있습니다.

예를 들어 IOCTL이 FILE_ANY_ACCESS RequiredAccess 값으로 정의된 경우 기본적으로 디바이스 개체에 대한 SYNCHRONIZE 액세스 권한이 있는 모든 요청 발신자는 IOCTL을 보낼 수 있습니다. WdmlibIoValidateDeviceIoControlAccess를 사용하여 런타임에 보다 엄격한 보안을 요구합니다. IOCTL의 RequiredAccess 값에 대한 자세한 내용은 I/O 제어 코드 정의를 참조하세요.

액세스 검사는 IRP 구조의 RequestorMode 멤버가 UserMode인 경우에만 수행됩니다. RequestorModeKernelMode이면 루틴은 자동으로 STATUS_SUCCESS 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Server 2003 이상 버전의 Windows에서 사용할 수 있습니다. Windows 2000 및 Windows XP에도 작동해야 하는 드라이버는 Wdmsec.lib에 연결하여 이 루틴을 사용할 수 있습니다. (Wdmsec.lib 라이브러리는 먼저 Windows XP 서비스 팩 1 [SP1] 및 Windows Server 2003 버전의 드라이버 개발 키트[DDK]와 함께 제공되었으며 이제는 Windows 드라이버 키트 [WDK]와 함께 제공됩니다.)
대상 플랫폼 유니버설
헤더 wdmsec.h(Wdmsec.h, Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준

추가 정보

IRP