Функция SeAccessCheckFromStateEx (ntifs.h)
SeAccessCheckFromStateEx проверяет, можно ли предоставить запрошенные права доступа объекту, защищенному дескриптором безопасности и необязательным владельцем объекта.
Синтаксис
BOOLEAN SeAccessCheckFromStateEx(
PSECURITY_DESCRIPTOR SecurityDescriptor,
PACCESS_TOKEN PrimaryToken,
PACCESS_TOKEN ClientToken,
ACCESS_MASK DesiredAccess,
ACCESS_MASK PreviouslyGrantedAccess,
PPRIVILEGE_SET *Privileges,
PGENERIC_MAPPING GenericMapping,
KPROCESSOR_MODE AccessMode,
PACCESS_MASK GrantedAccess,
PNTSTATUS AccessStatus
);
Параметры
SecurityDescriptor
[in] Указатель на структуру SECURITY_DESCRIPTOR , содержащую сведения о безопасности, защищающие объект, к котором осуществляется доступ.
PrimaryToken
[in] Указатель на непрозрачную структуру ACCESS_TOKEN для основного маркера. Эта структура предоставляет сведения о маркере, необходимые для выполнения проверка доступа.
ClientToken
[in_opt] Необязательный указатель на непрозрачную структуру ACCESS_TOKEN для маркера клиента.
DesiredAccess
[in] Значение ACCESS_MASK, указывающее требуемые права доступа для проверка.
PreviouslyGrantedAccess
[in] Значение ACCESS_MASK , указывающее все доступы, которые пользователь уже предоставил; например, в результате владения привилегией.
Privileges
[out] Указатель на структуру PRIVILEGE_SET , в которой возвращается набор привилегий для указания всех привилегий, которые использовались в рамках проверки доступа.
GenericMapping
[in] Указатель на структуру GENERIC_MAPPING , связанную с этим типом объекта.
AccessMode
[in] Значение KPROCESSOR_MODE, указывающее режим процессора, который будет использоваться в проверка. AccessMode может иметь значение KernelMode или UserMode. Драйверы более низкого уровня должны указывать KernelMode.
GrantedAccess
[out] Указатель на возвращаемое ACCESS_MASK значение, указывающее предоставленный доступ.
AccessStatus
[out] Указатель на значение состояния NT, которое можно вернуть, чтобы указать причину отказа в доступе. См. заметки.
Возвращаемое значение
SeAccessCheckFromStateEx возвращает значение TRUE, если доступ разрешен; Если доступ запрещен, возвращается значение FALSE.
Комментарии
SeAccessCheckFromStateEx может выполнять тесты для следующих привилегий в зависимости от запрашиваемых прав доступа:
- SeTakeOwnershipPrivilege
- SeSecurityPrivilege
Эта подпрограмма также может проверка, является ли вызывающий объект владельцем объекта, чтобы предоставить WRITE_DAC или READ_CONTROL доступ.
Если эта подпрограмма возвращает значение FALSE, вызывающий объект должен использовать возвращаемое значение AccessStatus в качестве возвращаемого значения. То есть вызывающий объект должен избегать жесткого кодирования возвращаемого значения STATUS_ACCESS_DENIED или любого другого конкретного значения STATUS_XXX .
Эта подпрограмма может вызываться с уровня DPC, поэтому она не должна быть выстраимаемой.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 |
Верхняя часть | ntifs.h |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |