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) |