Функция 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 позволяет драйверам выполнять динамические проверки доступа для 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 | Любой уровень |