Bagikan melalui


Fungsi TreeResetNamedSecurityInfoA (aclapi.h)

Versi fungsi ini tidak didukung. Versi karakter yang luas dari fungsi ini, TreeResetNamedSecurityInfoW, didukung.

Sintaksis

DWORD TreeResetNamedSecurityInfoA(
  [in]           LPSTR                pObjectName,
  [in]           SE_OBJECT_TYPE       ObjectType,
  [in]           SECURITY_INFORMATION SecurityInfo,
  [in, optional] PSID                 pOwner,
  [in, optional] PSID                 pGroup,
  [in, optional] PACL                 pDacl,
  [in, optional] PACL                 pSacl,
  [in]           BOOL                 KeepExplicit,
  [in, optional] FN_PROGRESS          fnProgress,
  [in]           PROG_INVOKE_SETTING  ProgressInvokeSetting,
  [in, optional] PVOID                Args
);

Parameter

[in] pObjectName

Penunjuk ke stringnull yang dihentikan yang menentukan nama objek simpul akar untuk objek yang akan menerima informasi keamanan yang diperbarui. Objek yang didukung adalah kunci registri dan objek file. Untuk deskripsi format string untuk berbagai jenis objek, lihat SE_OBJECT_TYPE.

[in] ObjectType

Nilai enumerasi SE_OBJECT_TYPE yang menunjukkan jenis objek bernama dengan parameter pObjectName. Nilai yang didukung masing-masing SE_REGISTRY_KEY dan SE_FILE_OBJECT, untuk kunci registri dan objek file.

[in] SecurityInfo

Sekumpulan bendera bit yang menunjukkan jenis informasi keamanan yang akan direset. Parameter ini dapat menjadi kombinasi dari bendera bit SECURITY_INFORMATION.

[in, optional] pOwner

Penunjuk ke struktur SID yang mengidentifikasi pemilik objek. SID harus salah satu yang dapat ditetapkan sebagai SID pemilik deskriptor keamanan. Parameter SecurityInfo harus menyertakan bendera OWNER_SECURITY_INFORMATION. Untuk mengatur pemilik, pemanggil harus memiliki akses WRITE_OWNER ke setiap objek, termasuk objek akar. Jika Anda tidak mengatur SID pemilik, parameter ini dapat NULL.

[in, optional] pGroup

Penunjuk ke struktur SID yang mengidentifikasi grup utama objek. Parameter SecurityInfo harus menyertakan bendera GROUP_SECURITY_INFORMATION. Untuk mengatur grup, pemanggil harus memiliki akses WRITE_OWNER ke setiap objek, termasuk objek akar. Jika Anda tidak mengatur SID grup utama, parameter ini dapat NULL.

[in, optional] pDacl

Penunjuk ke struktur daftar kontrol akses (ACL) yang mewakili DACL baru untuk objek yang sedang diatur ulang. Parameter SecurityInfo harus menyertakan bendera DACL_SECURITY_INFORMATION. Pemanggil harus memiliki akses READ_CONTROL dan WRITE_DAC ke setiap objek, termasuk objek akar. Jika Anda tidak mengatur DACL, parameter ini dapat NULL.

[in, optional] pSacl

Penunjuk ke struktur ACL yang mewakili SACL baru untuk objek yang direset. Parameter SecurityInfo harus menyertakan salah satu bendera berikut: SACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, ATTRIBUTE_SECURITY_INFORMATION, SCOPE_SECURITY_INFORMATION, atau BACKUP_SECURITY_INFORMATION. Jika pengaturan SACL_SECURITY_INFORMATION atau SCOPE_SECURITY_INFORMATION, pemanggil harus mengaktifkan hak istimewa SE_SECURITY_NAME. Jika Anda tidak mengatur SACL, parameter ini dapat NULL.

[in] KeepExplicit

Nilai Boolean yang menentukan apakah ACE yang ditentukan secara eksplisit disimpan atau dihapus untuk sub-pohon. Jika KeepExplicit TRUE, ACE yang ditentukan secara eksplisit disimpan untuk setiap DACL subtree dan SACL, dan ACL yang diwariskan digantikan oleh ACE yang diwariskan dari pDacl dan pSacl. Jika KeepExplicit FALSE, maka ACE yang ditentukan secara eksplisit untuk setiap DACL subtree dan SACL dihapus sebelum ACE yang diwariskan digantikan oleh ACE yang diwariskan dari pDacl dan pSacl.

[in, optional] fnProgress

Penunjuk ke fungsi yang digunakan untuk melacak kemajuan fungsi TreeResetNamedSecurityInfo. Prototipe fungsi kemajuan adalah:

#include <windows.h>
#include <Aclapi.h>

typedef VOID (*FN_PROGRESS) (
  IN LPWSTR pObjectName,              // Name of object just processed
  IN DWORD Status,                    // Status of operation on object
  IN OUT PPROG_INVOKE_SETTING pInvokeSetting, // When to set
  IN PVOID Args,                      // Caller specific data
  IN BOOL SecuritySet                 // Whether security was set
);

Fungsi kemajuan memberi pemanggil informasi kemajuan dan kesalahan saat simpul diproses. Pemanggil menentukan fungsi kemajuan di fnProgress, dan selama operasi pohon, TreeResetNamedSecurityInfo meneruskan nama objek terakhir yang diproses, status kesalahan operasi tersebut, dan nilai PROG_INVOKE_SETTING saat ini. Pemanggil dapat mengubah nilai PROG_INVOKE_SETTING dengan menggunakan pInvokeSetting.

Jika tidak ada fungsi kemajuan yang akan digunakan, atur parameter ini ke NULL.

[in] ProgressInvokeSetting

Nilai enumerasi PROG_INVOKE_SETTING yang menentukan pengaturan awal untuk fungsi kemajuan.

[in, optional] Args

Penunjuk ke VOID untuk argumen fungsi kemajuan yang ditentukan oleh pemanggil.

Mengembalikan nilai

Jika fungsi berhasil, fungsi akan mengembalikan ERROR_SUCCESS.

Jika fungsi gagal, fungsi mengembalikan kode kesalahan yang ditentukan dalam WinError.h.

Komentar

Mengatur NULL pemilik, grup, DACL, atau SACL tidak didukung oleh fungsi ini.

Jika penelepon tidak berisi hak istimewa dan izin yang tepat untuk mendukung pembaruan pemilik, grup, DACL, dan SACL yang diminta, maka tidak ada pembaruan yang dilakukan.

Fungsi ini mirip dengan fungsi TreeSetNamedSecurityInfo:

  • Jika parameter KeepExplicit dari TreeResetNamedSecurityInfo diatur ke TRUE, maka fungsi ini setara dengan TreeSetNamedSecurityInfo dengan parameter dwAction diatur ke TREE_SEC_INFO_RESET_KEEP_EXPLICIT.
  • Jika parameter KeepExplicit TreeResetNamedSecurityInfo diatur ke FALSE, maka fungsi setara dengan TreeSetNamedSecurityInfo dengan parameter dwAction diatur ke TREE_SEC_INFO_RESET.

Nota

Header aclapi.h mendefinisikan TreeResetNamedSecurityInfo sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows XP [hanya aplikasi desktop]
server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Platform Target Windows
Header aclapi.h
Pustaka Advapi32.lib
DLL Advapi32.dll