Поделиться через


Функция 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, которая не является IRP_MJ_DEVICE_CONTROL или IRP_MJ_FILE_SYSTEM_CONTROL IRP, она возвращает STATUS_INVALID_PARAMETER.

Замечания

WdmlibIoValidateDeviceIoControlAccess позволяет драйверам выполнять динамические проверки доступа для IOCTLs. Используйте эту подпрограмму, чтобы требовать более строгий доступ, чем указанное в определении IOCTL. Если подпрограмма возвращает STATUS_ACCESS_DENIED, драйвер может завершить запрос со значением состояния STATUS_ACCESS_DENIED.

Например, если IOCTL определен с значением RequiredAccess значение FILE_ANY_ACCESS, то по умолчанию любой отправитель запроса с доступом SYNCHRONIZE к объекту устройства может отправить IOCTL. Используйте WdmlibIoValidateDeviceIoControlAccess для обеспечения более строгой безопасности во время выполнения. Дополнительные сведения о значении RequiredAccess IOCTL см. в определении кодов управления ввода-вывода.

Проверки доступа выполняются только в том случае, если элемент RequestorMode структуры IRPUserMode. Если RequestorModeKernelMode, подпрограмма автоматически возвращает STATUS_SUCCESS.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Server 2003 и более поздних версиях Windows. Драйверы, которые также должны работать для Windows 2000 и Windows XP, могут вместо этого связаться с Wdmsec.lib, чтобы использовать эту подпрограмму. (Библиотека Wdmsec.lib впервые поставляется с пакетом обновления 1 (SP1) и windows Server 2003 выпусками пакета средств разработки драйверов [DDK] и теперь поставляется с комплектом драйверов Windows [WDK].)
целевая платформа Всеобщий
заголовка wdmsec.h (include Wdmsec.h, Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень

См. также

IRP