Fungsi CreatePrivateObjectSecurity (securitybaseapi.h)

Fungsi CreatePrivateObjectSecurity mengalokasikan dan menginisialisasi deskriptor keamanan relatif mandiri untuk objek privat baru. Server yang dilindungi memanggil fungsi ini saat membuat objek privat baru.

Untuk menentukan GUID jenis objek baru atau mengontrol bagaimana entri kontrol akses (ASE) diwariskan, gunakan fungsi CreatePrivateObjectSecurityEx .

Sintaks

BOOL CreatePrivateObjectSecurity(
  [in, optional] PSECURITY_DESCRIPTOR ParentDescriptor,
  [in, optional] PSECURITY_DESCRIPTOR CreatorDescriptor,
  [out]          PSECURITY_DESCRIPTOR *NewDescriptor,
  [in]           BOOL                 IsDirectoryObject,
  [in, optional] HANDLE               Token,
  [in]           PGENERIC_MAPPING     GenericMapping
);

Parameter

[in, optional] ParentDescriptor

Penunjuk ke deskriptor keamanan untuk direktori induk tempat objek baru sedang dibuat. Jika tidak ada direktori induk, parameter ini bisa NULL.

[in, optional] CreatorDescriptor

Penunjuk ke deskriptor keamanan yang disediakan oleh pembuat objek. Jika pembuat objek tidak secara eksplisit meneruskan informasi keamanan untuk objek baru, parameter ini dimaksudkan untuk menjadi NULL.

[out] NewDescriptor

Penunjuk ke variabel yang menerima penunjuk ke deskriptor keamanan relatif mandiri yang baru dialokasikan. Pemanggil harus memanggil fungsi DestroyPrivateObjectSecurity untuk membebaskan deskriptor keamanan ini.

[in] IsDirectoryObject

Menentukan apakah objek baru adalah kontainer. Nilai TRUE menunjukkan objek berisi objek lain, seperti direktori.

[in, optional] Token

Handel ke token akses untuk proses klien atas nama siapa objek sedang dibuat. Jika ini adalah token peniruan identitas, token tersebut harus berada di tingkat SecurityIdentification atau yang lebih tinggi. Untuk deskripsi lengkap tingkat peniruan Identitas Keamanan, lihat jenis SECURITY_IMPERSONATION_LEVEL enumerasi.

Token klien digunakan untuk mengambil informasi keamanan default untuk objek baru, seperti pemilik default, grup utama, dan daftar kontrol akses diskresinya. Token harus terbuka untuk akses TOKEN_QUERY .

Jika semua kondisi berikut benar, maka handel harus dibuka untuk akses TOKEN_DUPLICATE selain akses TOKEN_QUERY .

  • Handel token mengacu pada token utama.
  • Deskriptor keamanan token berisi satu atau beberapa ACE dengan OwnerRights SID.
  • Deskriptor keamanan ditentukan untuk parameter CreatorDescriptor .
  • Pemanggil fungsi ini tidak mengatur bendera SEF_AVOID_OWNER_RESTRICTION dalam parameter AutoInheritFlags .

[in] GenericMapping

Penunjuk ke struktur GENERIC_MAPPING yang menentukan pemetaan dari setiap hak generik ke hak tertentu untuk objek.

Nilai kembali

Jika fungsi berhasil, fungsi mengembalikan bukan nol.

Jika fungsi gagal, fungsi akan mengembalikan nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Jika daftar kontrol akses sistem (SACL) ditentukan dalam SECURITY_DESCRIPTOR yang ditentukan oleh parameter CreatorDescriptor , parameter Token harus mengaktifkan hak istimewa SE_SECURITY_NAME. Fungsi CreatePrivateObjectSecurity memeriksa hak istimewa ini dan dapat menghasilkan audit selama proses.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header securitybaseapi.h (termasuk Windows.h)
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

Fungsi Access Control Klien/Server

Gambaran Umum Access Control Klien/Server

CreatePrivateObjectSecurityEx

DestroyPrivateObjectSecurity

GENERIC_MAPPING

GetPrivateObjectSecurity

GetTokenInformation

OpenProcessToken

SECURITY_DESCRIPTOR

SECURITY_IMPERSONATION_LEVEL

SetPrivateObjectSecurity