Функция 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
Указывает тип доступа к объекту устройства, который должен иметь отправитель запроса. Вызывающий объект может указать один или несколько из следующих флагов.
Значение | Значение |
---|---|
|
Отправитель запроса должен иметь доступ на чтение к объекту устройства |
|
Отправитель запроса должен иметь доступ на запись к объекту устройства. |
Возвращаемое значение
WdmlibIoValidateDeviceIoControlAccess возвращает значение NTSTATUS. Возможные возвращаемые значения:
Код возврата | Описание |
---|---|
|
Отправитель запроса имеет необходимый доступ к объекту устройства. |
|
Отправитель запроса не имеет необходимого доступа к объекту устройства. |
|
Указанные параметры недопустимы. Например, если подпрограмме передается 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 структуры IRP — UserMode. Если 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 | Любой уровень |