Функция 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 позволяет драйверам выполнять динамические проверки доступа для ioCTL. Используйте эту подпрограмму, чтобы требовать более строгий доступ, чем указано в определении IOCTL. Если подпрограмма возвращает STATUS_ACCESS_DENIED, драйвер может завершить запрос со значением состояния STATUS_ACCESS_DENIED.

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

Проверки доступа выполняются только в том случае, если элемент RequestorMode структуры IRPUserMode. Если RequestorMode имеет значение KernelMode, подпрограмма автоматически возвращает 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