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

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

SeAccessCheck

SeAccessCheckFromState