Поделиться через


Функция 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 (include ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe

См. также

SeAccessCheck

SeAccessCheckFromStateEx