Функция 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)

См. также раздел

SeAccessCheck

SeAccessCheckFromStateEx