Bagikan melalui


Fungsi SeAccessCheck (wdm.h)

SeAccessCheck menentukan apakah hak akses yang diminta dapat diberikan ke objek yang dilindungi oleh deskriptor keamanan dan pemilik objek.

Sintaks

BOOLEAN SeAccessCheck(
  [in]  PSECURITY_DESCRIPTOR      SecurityDescriptor,
  [in]  PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
  [in]  BOOLEAN                   SubjectContextLocked,
  [in]  ACCESS_MASK               DesiredAccess,
  [in]  ACCESS_MASK               PreviouslyGrantedAccess,
  [out] PPRIVILEGE_SET            *Privileges,
  [in]  PGENERIC_MAPPING          GenericMapping,
  [in]  KPROCESSOR_MODE           AccessMode,
  [out] PACCESS_MASK              GrantedAccess,
  [out] PNTSTATUS                 AccessStatus
);

Parameter

[in] SecurityDescriptor

Arahkan ke struktur SECURITY_DESCRIPTOR yang menjelaskan deskriptor keamanan yang melindungi objek yang diakses.

[in] SubjectSecurityContext

Penunjuk ke struktur SECURITY_SUBJECT_CONTEXT buram yang menentukan konteks keamanan yang diambil subjek.

[in] SubjectContextLocked

Nilai Boolean yang menunjukkan apakah konteks subjek pengguna dikunci, sehingga tidak harus dikunci lagi.

[in] DesiredAccess

Menentukan bitmask ACCESS_MASK untuk hak akses yang coba diperoleh pemanggil. Jika penelepon mengatur bit MAXIMUM_ALLOWED, rutinitas melakukan semua pemeriksaan DACL. Namun, SeAccessCheck tidak melakukan pemeriksaan hak istimewa apa pun kecuali pemanggil secara khusus memintanya dengan mengatur bit ACCESS_SYSTEM_SECURITY atau WRITE_OWNER.

[in] PreviouslyGrantedAccess

Menentukan bitmask ACCESS_MASK hak akses yang sudah diberikan, seperti hak akses yang diberikan sebagai akibat dari memegang hak istimewa.

[out] Privileges

Penunjuk ke variabel yang disediakan penelepon untuk diatur ke alamat struktur PRIVILEGE_SET yang akan digunakan sebagai bagian dari validasi akses, atau parameter ini bisa NULL. Buffer yang dikembalikan, jika ada, harus dirilis oleh pemanggil dengan SeFreePrivileges.

[in] GenericMapping

Penunjuk ke struktur GENERIC_MAPPING yang terkait dengan jenis objek ini. Nilai ini menentukan hak akses tertentu yang disiratkan oleh setiap hak akses GENERIC_XXX .

[in] AccessMode

Menentukan mode akses yang akan digunakan dalam pemeriksaan, baik UserMode atau KernelMode.

[out] GrantedAccess

Pointer ke masker akses yang dikembalikan yang menunjukkan akses yang diberikan. Jika pemanggil menentukan MAXIMUM_ALLOWED, dan DACL di SecurityDescriptor adalah NULL, maka rutin mengembalikan GENERIC_ALL ditambah akses tambahan yang diminta pemanggil secara eksplisit.

[out] AccessStatus

Penunjuk ke nilai status yang menunjukkan mengapa akses ditolak.

Nilai kembali

Jika akses diizinkan, SeAccessCheck mengembalikan TRUE.

Keterangan

SeAccessCheck mungkin melakukan pengujian hak istimewa untuk SeTakeOwnershipPrivilege dan SeSecurityPrivilege, tergantung pada akses yang diminta. Ini mungkin melakukan pengujian hak istimewa tambahan dalam rilis sistem operasi di masa mendatang.

Rutinitas ini juga dapat memeriksa apakah penelepon adalah pemilik objek untuk memberikan akses WRITE_DAC atau READ_CONTROL.

Jika rutinitas ini mengembalikan FALSE, pemanggil harus menggunakan AccessStatus yang dikembalikan sebagai nilai yang dikembalikan. Artinya, pemanggil harus menghindari hardcoding nilai pengembalian STATUS_ACCESS_DENIED atau nilai STATUS_XXX spesifik lainnya.

Untuk informasi selengkapnya tentang keamanan dan kontrol akses, lihat Model keamanan Windows untuk pengembang driver dan dokumentasi tentang topik ini di Microsoft Windows SDK.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Lihat juga

ACCESS_MASK

GENERIC_MAPPING

IoGetFileObjectGenericMapping

PRIVILEGE_SET

SE_EXPORTS

SECURITY_DESCRIPTOR

SECURITY_SUBJECT_CONTEXT

SeFreePrivileges

SeValidSecurityDescriptor