Функция SeAccessCheckFromState (ntifs.h)
SeAccessCheckFromState проверяет, можно ли предоставить запрошенные права доступа объекту, защищенному дескриптором безопасности и необязательным владельцем объекта.
Синтаксис
BOOLEAN SeAccessCheckFromState(
PSECURITY_DESCRIPTOR SecurityDescriptor,
PTOKEN_ACCESS_INFORMATION PrimaryTokenInformation,
PTOKEN_ACCESS_INFORMATION ClientTokenInformation,
ACCESS_MASK DesiredAccess,
ACCESS_MASK PreviouslyGrantedAccess,
PPRIVILEGE_SET *Privileges,
PGENERIC_MAPPING GenericMapping,
KPROCESSOR_MODE AccessMode,
PACCESS_MASK GrantedAccess,
PNTSTATUS AccessStatus
);
Параметры
SecurityDescriptor
[in] Указатель на структуру SECURITY_DESCRIPTOR , содержащую сведения о безопасности, защищающие объект, к котором осуществляется доступ.
PrimaryTokenInformation
[in] Указатель на структуру TOKEN_ACCESS_INFORMATION , полученную из основного маркера. Эта структура предоставляет сведения о маркере, необходимые для выполнения проверка доступа.
ClientTokenInformation
[in_opt] Необязательный указатель на структуру TOKEN_ACCESS_INFORMATION , полученную из маркера клиента.
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, которое можно вернуть, чтобы указать причину отказа в доступе. См. заметки.
Возвращаемое значение
SeAccessCheckFromState возвращает значение TRUE, если доступ разрешен; Если доступ запрещен, возвращается значение FALSE.
Комментарии
SeAccessCheckFromState может выполнять тесты для следующих привилегий в зависимости от запрашиваемых прав доступа:
- SeTakeOwnershipPrivilege
- SeSecurityPrivilege
Эта подпрограмма также может проверка, является ли вызывающий объект владельцем объекта, чтобы предоставить WRITE_DAC или READ_CONTROL доступ.
Если эта подпрограмма возвращает значение FALSE, вызывающий объект должен использовать возвращаемое значение AccessStatus в качестве возвращаемого значения. То есть вызывающий объект должен избегать жесткого кодирования возвращаемого значения STATUS_ACCESS_DENIED или любого другого конкретного значения STATUS_XXX .
Эта подпрограмма может вызываться с уровня DPC, поэтому она не должна быть выстраимаемой.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 |
Верхняя часть | ntifs.h (включая ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |