struktur ACCESS_STATE (wdm.h)

Struktur ACCESS_STATE menjelaskan status akses yang sedang berlangsung. Ini berisi konteks subjek objek, jenis akses yang diinginkan yang tersisa, jenis akses yang diberikan, dan, secara opsional, hak istimewa yang ditetapkan untuk menunjukkan hak istimewa mana yang digunakan untuk mengizinkan akses.

Driver tidak memodifikasi struktur ACCESS_STATE secara langsung. Untuk membuat dan memanipulasi struktur ini, gunakan rutinitas dukungan yang tercantum di bagian Lihat Juga.

Sintaks

typedef struct _ACCESS_STATE {
  LUID                     OperationID;
  BOOLEAN                  SecurityEvaluated;
  BOOLEAN                  GenerateAudit;
  BOOLEAN                  GenerateOnClose;
  BOOLEAN                  PrivilegesAllocated;
  ULONG                    Flags;
  ACCESS_MASK              RemainingDesiredAccess;
  ACCESS_MASK              PreviouslyGrantedAccess;
  ACCESS_MASK              OriginalDesiredAccess;
  SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
  PSECURITY_DESCRIPTOR     SecurityDescriptor;
  PVOID                    AuxData;
  union {
    INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
    PRIVILEGE_SET         PrivilegeSet;
  } Privileges;
  BOOLEAN                  AuditPrivileges;
  UNICODE_STRING           ObjectName;
  UNICODE_STRING           ObjectTypeName;
} ACCESS_STATE, *PACCESS_STATE;

Anggota

OperationID

Pengidentifikasi operasi yang terkait dengan akses ini. Anggota ini digantikan oleh TransactionId di anggota AuxData dan saat ini tidak digunakan oleh driver.

SecurityEvaluated

Nilai Boolean yang menentukan apakah keamanan dievaluasi sebagai bagian dari pemeriksaan akses. Anggota ini saat ini tidak digunakan oleh driver.

GenerateAudit

Nilai Boolean yang menentukan apakah akses harus menghasilkan audit. Anggota ini saat ini tidak digunakan oleh driver.

GenerateOnClose

Nilai Boolean yang menentukan apakah audit harus dihasilkan saat handel yang dibuat ditutup. Anggota ini saat ini tidak digunakan oleh driver.

PrivilegesAllocated

Nilai Boolean yang menentukan apakah hak istimewa dialokasikan sebagai bagian dari pemeriksaan akses. Anggota ini saat ini tidak digunakan oleh driver.

Flags

Nilai 32-bit yang berisi bendera bidang bit untuk akses. Driver dapat memeriksa bendera akses melintasi (TOKEN_HAS_TRAVERSE_PRIVILEGE). Untuk informasi selengkapnya tentang cara memeriksa akses melintasi, lihat Memeriksa Hak Istimewa Traverse di IRP_MJ_CREATE. Driver juga dapat memeriksa bendera TOKEN_IS_RESTRICTED. Bendera ini didefinisikan dalam Ntifs.h.

RemainingDesiredAccess

Jenis ACCESS_MASK yang menjelaskan hak akses yang belum diberikan kepada pemanggil. Driver menggunakan anggota ini untuk menentukan apakah sistem keamanan Windows dapat memberikan akses. Jika akses dapat diberikan, driver memperbarui anggota PreviouslyGrantedAccess dan RemainingDesiredAccess yang sesuai.

PreviouslyGrantedAccess

Jenis ACCESS_MASK yang menentukan informasi tentang akses yang telah diberikan kepada pemanggil salah satu Rutinitas Monitor Referensi Keamanan. Sistem keamanan Windows memberikan hak tertentu berdasarkan hak istimewa pemanggil, seperti melintasi kanan (kemampuan untuk melintasi direktori sebagai bagian dari membuka subdirektori atau file).

OriginalDesiredAccess

Jenis ACCESS_MASK yang berisi hak akses asli yang diminta oleh pemanggil.

SubjectSecurityContext

Struktur SECURITY_SUBJECT_CONTEXT yang berisi informasi tentang konteks keamanan subjek yang digunakan untuk memvalidasi dan mengaudit akses.

SecurityDescriptor

Penunjuk ke struktur SECURITY_DESCRIPTOR yang berisi informasi keamanan untuk objek yang terkait dengan akses ini.

AuxData

Penunjuk ke blok memori yang berisi data tambahan untuk akses.

Privileges

Serikat yang dapat berisi salah satu struktur berikut. Serikat ini memungkinkan tiga hak istimewa untuk disematkan dalam struktur status akses. Jika ada lebih banyak hak istimewa yang diperlukan selama operasi, hak istimewa tersebut akan dialokasikan di ekstensi anggota AuxData . Anggota ini saat ini tidak digunakan oleh driver.

Privileges.InitialPrivilegeSet

Struktur INITIAL_PRIVILEGE_SET yang menentukan sekumpulan hak istimewa awal untuk akses.

Privileges.PrivilegeSet

Struktur PRIVILEGE_SET yang menentukan sekumpulan hak istimewa untuk akses.

AuditPrivileges

Nilai Boolean yang menentukan apakah penggunaan hak istimewa harus diaudit. Anggota ini saat ini tidak digunakan oleh driver.

ObjectName

Struktur UNICODE_STRING yang berisi string nama objek untuk akses. Anggota ini digunakan untuk audit.

ObjectTypeName

Struktur UNICODE_STRING yang berisi string nama jenis objek untuk akses. Anggota ini digunakan untuk audit.

Persyaratan

Persyaratan Nilai
Header wdm.h (termasuk Ntifs.h)

Lihat juga

ACCESS_MASK

IRP_MJ_CREATE

LUID

ObOpenObjectByPointer

PRIVILEGE_SET

SECURITY_DESCRIPTOR

SECURITY_SUBJECT_CONTEXT

SeAppendPrivileges

SeCaptureSubjectContext

SeOpenObjectAuditAlarm

SeOpenObjectForDeleteAuditAlarm

SeSetAccessStateGenericMapping

UNICODE_STRING