Fungsi LsaLookupNames2 (ntsecapi.h)

Fungsi LsaLookupNames2 mengambil pengidentifikasi keamanan (SID) untuk nama akun tertentu. LsaLookupNames2 dapat mencari SID untuk akun apa pun di domain apa pun di forest Windows.

Fungsi LsaLookupNames digantikan oleh fungsi LsaLookupNames2 . Aplikasi harus menggunakan fungsi LsaLookupNames2 untuk memastikan kompatibilitas di masa mendatang.

Fungsi ini berbeda dari fungsi LsaLookupNames karena LsaLookupNames2 mengembalikan setiap SID sebagai elemen tunggal, sementara LsaLookupNames membagi setiap SID menjadi pasangan RID/domain.

Sintaks

NTSTATUS LsaLookupNames2(
  [in]  LSA_HANDLE                  PolicyHandle,
  [in]  ULONG                       Flags,
  [in]  ULONG                       Count,
  [in]  PLSA_UNICODE_STRING         Names,
  [out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
  [out] PLSA_TRANSLATED_SID2        *Sids
);

Parameter

[in] PolicyHandle

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

[in] Flags

Nilai yang mengontrol perilaku fungsi ini. Nilai berikut saat ini ditentukan.

Nilai Makna
LSA_LOOKUP_ISOLATED_AS_LOCAL
0x80000000
Fungsi ini hanya mencari pada sistem lokal untuk nama yang tidak menentukan domain. Fungsi ini mencari pada sistem jarak jauh untuk nama yang menentukan domain.

[in] Count

Menentukan jumlah nama dalam array Nama . Ini juga merupakan jumlah entri yang dikembalikan dalam array Sids .

[in] Names

Penunjuk ke array struktur LSA_UNICODE_STRING yang berisi nama yang akan dicari. String ini dapat menjadi nama akun pengguna, grup, atau grup lokal, atau nama domain. Nama domain bisa berupa nama domain DNS atau nama domain NetBIOS.

Untuk informasi selengkapnya tentang format string nama, lihat Keterangan.

[out] ReferencedDomains

Menerima pointer ke struktur LSA_REFERENCED_DOMAIN_LIST . Anggota Domain dari struktur ini adalah array yang berisi entri untuk setiap domain tempat nama ditemukan. Anggota DomainIndex dari setiap entri dalam array Sids adalah indeks entri array Domain untuk domain tempat nama ditemukan.

Setelah Anda selesai menggunakan penunjuk yang dikembalikan, bebaskan dengan memanggil
Fungsi LsaFreeMemory . Memori ini harus dibebaskan bahkan ketika fungsi gagal dengan salah satu kode kesalahan STATUS_NONE_MAPPED atau STATUS_SOME_NOT_MAPPED

[out] Sids

Menerima penunjuk ke array struktur LSA_TRANSLATED_SID2 . Setiap entri dalam array Sids berisi informasi SID untuk entri terkait dalam array Nama .

Setelah Anda selesai menggunakan penunjuk yang dikembalikan, bebaskan dengan memanggil
Fungsi 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, fungsi mengembalikan salah satu nilai NTSTATUS berikut.

Nilai Deskripsi
STATUS_SOME_NOT_MAPPED
Beberapa nama tidak dapat diterjemahkan. Ini adalah nilai pengembalian tingkat informasi.
STATUS_SUCCESS
Semua nama ditemukan dan berhasil diterjemahkan.
 

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

Nilai Deskripsi
STATUS_NONE_MAPPED
Tidak ada nama yang diterjemahkan.
 

Gunakan fungsi LsaNtStatusToWinError untuk mengonversi kode NTSTATUS ke kode kesalahan Windows.

Keterangan

Gunakan nama akun yang sepenuhnya memenuhi syarat (misalnya,NamaPenggunaDomainName\) alih-alih nama yang terisolasi (misalnya, UserName). Nama yang sepenuhnya memenuhi syarat tidak ambigu dan memberikan performa yang lebih baik saat pencarian dilakukan. Fungsi ini juga mendukung nama DNS yang sepenuhnya memenuhi syarat (misalnya, Contoh.Contoh.com\UserName) dan nama prinsipal pengguna (UPN) (misalnya,ContohSeseorang@.com).

Terjemahan nama yang terisolasi memperkenalkan kemungkinan tabrakan nama karena nama yang sama dapat digunakan di beberapa domain. Fungsi LsaLookupNames2 menggunakan algoritma berikut untuk menerjemahkan nama yang terisolasi.

Untuk menerjemahkan nama yang terisolasi

  1. Jika namanya adalah nama terkenal, seperti Lokal atau Interaktif, fungsi mengembalikan pengidentifikasi keamanan (SID) terkenal yang sesuai.
  2. Jika nama adalah nama domain bawaan, fungsi mengembalikan SID domain tersebut.
  3. Jika nama adalah nama domain akun, fungsi mengembalikan SID domain tersebut.
  4. Jika nama adalah nama domain utama, fungsi mengembalikan SID domain tersebut.
  5. Jika namanya adalah salah satu nama domain tepercaya, fungsi mengembalikan SID domain tersebut.
  6. Jika namanya adalah akun pengguna, grup, atau grup lokal di domain bawaan, fungsi mengembalikan SID akun tersebut.
  7. Jika namanya adalah akun pengguna, grup, atau grup lokal di domain akun pada sistem lokal, fungsi mengembalikan SID akun tersebut.
  8. Jika namanya adalah pengguna, grup, atau grup lokal di domain utama, fungsi mengembalikan SID akun tersebut.
  9. Setelah mencari di domain utama, fungsi terlihat di setiap domain tepercaya domain utama.
  10. Jika tidak, nama tidak diterjemahkan.

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_SID2

LSA_UNICODE_STRING

LsaFreeMemory