Fungsi LsaLookupSids (ntsecapi.h)

[LsaLookupSids tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini mungkin diubah atau tidak tersedia dalam versi berikutnya. Sebagai gantinya, gunakan LsaLookupSids2.]

Fungsi LsaLookupSids mencari nama yang sesuai dengan array pengidentifikasi keamanan (SID). Jika LsaLookupSids tidak dapat menemukan nama yang sesuai dengan SID, fungsi mengembalikan SID dalam bentuk karakter.

Sintaks

NTSTATUS LsaLookupSids(
  [in]  LSA_HANDLE                  PolicyHandle,
  [in]  ULONG                       Count,
  [in]  PSID                        *Sids,
  [out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
  [out] PLSA_TRANSLATED_NAME        *Names
);

Parameter

[in] PolicyHandle

Handel ke objek Policy . Handel ini harus memiliki hak akses POLICY_LOOKUP_NAMES. Untuk informasi selengkapnya, lihat Membuka Penanganan Objek Kebijakan.

[in] Count

Menentukan jumlah SID dalam array Sids . Ini juga merupakan jumlah entri yang dikembalikan dalam array Nama . Nilai ini harus kurang dari atau sama dengan 20480.

[in] Sids

Arahkan ke array penunjuk SID untuk mencari. SID dapat menjadi SID terkenal, pengguna, grup, atau SID akun grup lokal, atau SID domain.

[out] ReferencedDomains

Menerima penunjuk ke penunjuk ke struktur LSA_REFERENCED_DOMAIN_LIST . Anggota Domain dari struktur ini adalah array yang berisi entri untuk setiap domain tempat SID ditemukan. Entri untuk setiap domain berisi SID dan nama datar domain. Untuk domain Windows, nama datarnya adalah nama NetBIOS. Untuk tautan dengan domain non-Windows, nama datar adalah nama pengidentifikasi domain tersebut, atau null.

Ketika Anda tidak lagi memerlukan informasi, teruskan pointer yang dikembalikan ke LsaFreeMemory. Memori ini harus dibebaskan bahkan ketika fungsi gagal dengan salah satu kode kesalahan STATUS_NONE_MAPPED atau STATUS_SOME_NOT_MAPPED

[out] Names

Menerima penunjuk ke array struktur LSA_TRANSLATED_NAME . Setiap entri dalam array Nama berisi informasi nama untuk entri terkait dalam array Sids . Untuk SID akun, anggota Nama dari setiap struktur berisi nama akun yang terisolasi. Untuk SID domain, anggota Nama tidak valid.

Anggota DomainIndex dari setiap entri dalam array Nama adalah indeks entri dalam array Domain yang dikembalikan dalam parameter ReferencedDomains . Indeks mengidentifikasi array Domain untuk domain tempat SID ditemukan.

Ketika Anda tidak lagi memerlukan informasi, teruskan pointer yang dikembalikan ke LsaFreeMemory. Memori ini harus dibebaskan bahkan ketika fungsi gagal dengan salah satu kode kesalahan STATUS_NONE_MAPPED atau STATUS_SOME_NOT_MAPPED

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah salah satu nilai NTSTATUS berikut.

Menampilkan kode Deskripsi
STATUS_SOME_NOT_MAPPED
Beberapa SID tidak dapat diterjemahkan. Ini adalah nilai pengembalian tingkat informasi.
STATUS_SUCCESS
Semua SID ditemukan dan berhasil diterjemahkan.
 

Jika fungsi gagal, nilai yang dikembalikan adalah kode NTSTATUS , yang dapat menjadi salah satu nilai berikut atau salah satu Nilai Pengembalian Fungsi Kebijakan LSA.

Menampilkan kode Deskripsi
STATUS_NONE_MAPPED
Tidak ada SID yang diterjemahkan. Ini adalah nilai pengembalian tingkat kesalahan.
STATUS_TOO_MANY_SIDS
Parameter array Sids terlalu besar.
 

Anda dapat menggunakan fungsi LsaNtStatusToWinError untuk mengonversi kode NTSTATUS ke kode kesalahan Windows.

Keterangan

Untuk SID akun, string yang dikembalikan di anggota Nama adalah nama akun yang terisolasi (misalnya, user_name). Jika Anda memerlukan nama komposit akun (misalnya, Acctg\user_name), dapatkan nama domain dari buffer ReferencedDomains dan tambahkan garis miring terbalik dan nama yang terisolasi.

Jika fungsi LsaLookupSids tidak dapat menerjemahkan SID, fungsi menggunakan algoritma berikut:

  1. Jika domain SID diketahui, buffer ReferencedDomains berisi entri untuk domain, dan string yang dikembalikan dalam parameter Nama adalah representasi Unicode dari pengidentifikasi relatif akun (RID) dari SID.
  2. Jika domain SID tidak diketahui, string yang dikembalikan dalam parameter Nama adalah representasi Unicode dari seluruh SID, dan tidak ada catatan domain untuk SID ini di buffer ReferencedDomains .
Selain mencari SID untuk akun lokal, akun domain lokal, dan akun domain tepercaya secara eksplisit, LsaLookupSids dapat mencari SID untuk akun apa pun di domain apa pun di hutan Windows, termasuk SID yang hanya muncul di bidang SIDhistory akun di forest. Bidang SIDhistory menyimpan SID sebelumnya dari akun yang telah dipindahkan dari domain lain. Untuk melakukan pencarian ini, fungsi meminta katalog global forest.

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 ntsecapi.h
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

LSA_REFERENCED_DOMAIN_LIST

LSA_TRANSLATED_NAME

LsaOpenPolicy