SecLookupAccountName 函式 (ntifs.h)
SecLookupAccountName 接受帳戶做為輸入,並擷取帳戶的安全標識碼(SID),以及找到帳戶的功能變數名稱。
語法
KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountName(
[in] PUNICODE_STRING Name,
[in, out] PULONG SidSize,
[out] PSID Sid,
[out] PSID_NAME_USE NameUse,
[out] PULONG DomainSize,
[in_out, optional] PUNICODE_STRING ReferencedDomain
);
參數
[in] Name
指定帳戶名稱之 Unicode 字串的指標。 使用格式為 domain_name\user_name 的完整字串,以確保 SecLookupAccountName 在所需的網域中尋找帳戶。
[in, out] SidSize
變數的指標,指定 Sid 緩衝區的大小。 在輸入上,這個值會指定輸入 Sid 緩衝區的位元元組大小。 如果函式因為緩衝區太小或 SidSize 為零而失敗,則此變數會收到所需的緩衝區大小。 成功時,此變數包含傳回 Sid 的大小。
[out] Sid
緩衝區的指標,接收對應至 Name 參數所指向之帳戶名稱的 SID 結構。 如果此參數 NULL,SidSize 必須是零。
[out] NameUse
接收帳戶類型的 SID_NAME_USE 列舉型別的指標。
[out] DomainSize
ULONG 的指標,接收 ReferencedDomain 參數的大小。 如果函式因為緩衝區太小而失敗,則此變數會收到所需的緩衝區大小。 如果 input ReferencedDomain 參數為 NULL,此參數將會收到零。
[in_out, optional] ReferencedDomain
找到帳戶名稱之功能變數名稱之緩衝區的指標。 這個參數是選擇性的,而且可以是 NULL。 對於未加入網域的計算機,此緩衝區會收到計算機名稱。
傳回值
SecLookupAccountName 會在成功時傳回STATUS_SUCCESS,或失敗時傳回下列其中一個錯誤碼。
傳回碼 | 描述 |
---|---|
SEC_E_INTERNAL_ERROR | 嘗試連線到本機系統授權單位 (LSA) 或本機過程調用 (LPC) 時發生內部錯誤,安全性提供者失敗。 |
STATUS_ACCESS_DENIED | 與目前執行線程相關聯的進程標識碼不符合目前的進程標識碼。 |
STATUS_BUFFER_TOO_SMALL | Sid 或 ReferencedDomain 參數的緩衝區大小太小。 |
STATUS_INVALID_PARAMETER | Name 參數的長度超過本機系統授權單位訊息中允許的長度。 |
STATUS_NONE_MAPPED | 找不到 Name 參數。 |
STATUS_PROCESS_IS_TERMINATING | 此程式已終止,因此無法建立本機過程調用 (LPC) 連線。 |
言論
SecLookupAccountName 嘗試尋找指定名稱的 SID。 函式會檢查內建和管理定義的本機帳戶。 接下來,函式會檢查主要網域。 如果找不到該名稱,則會檢查信任的網域。
使用完整帳戶名稱(例如,domain_name\user_name),而不是隔離名稱(例如,user_name)。 完整名稱明確,而且在執行查閱時提供更好的效能。 此函式也支援完整 DNS 名稱(例如,example.example.com\user_name)和用戶主體名稱(例如,someone@example.com)。
除了查閱本機帳戶、本機網域帳戶和明確信任的網域帳戶之外,SecLookupAccountName 可以查閱樹系中任何網域中任何帳戶的名稱。
SecLookupAccountName 相當於 Win32 LookupAccountName 函式。
SecLookupAccountName 是由 ksecdd 驅動程式匯出,此驅動程式會使用使用者模式協助程式服務來實作此函式。 因此,在文件系統內使用此函式必須遵守與使用者模式服務通訊的一般規則。 SecLookupAccountName 無法在分頁檔案 I/O 期間使用。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP |
目標平臺 | 普遍 |
標頭 | ntifs.h (include Ntifs.h) |
連結庫 | Ksecdd.lib |
IRQL | <= APC_LEVEL |