SecLookupAccountSid 函式 (ntifs.h)

SecLookupAccountSid 接受 (SID) 作為輸入的安全性識別碼。 它會擷取此 SID 的帳戶名稱,以及找到此 SID 的第一個功能變數名稱。

語法

KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountSid(
  [in]            PSID            Sid,
  [out]           PULONG          NameSize,
  [in, out]       PUNICODE_STRING NameBuffer,
  [out]           PULONG          DomainSize,
  [out, optional] PUNICODE_STRING DomainBuffer,
  [out]           PSID_NAME_USE   NameUse
);

參數

[in] Sid

要查閱之 SID 的指標。

[out] NameSize

指定 NameBuffer大小的變數指標。 在輸入上,這個值會指定輸入 NameBuffer的位元組大小。 如果函式因為緩衝區太小而失敗,此變數會收到所需的緩衝區大小。 成功時,此變數包含傳回 的 NameBuffer大小。

[in, out] NameBuffer

緩衝區的指標,接收與 Sid相關聯的帳戶名稱。 如果此參數為 Null, NameSize 會是零。

[out] DomainSize

指定 DomainBuffer 參數大小的 ULONG 指標。 如果函式因為緩衝區太小而失敗,此變數會收到所需的緩衝區大小。 如果 DomainBuffer 參數為 Null,此參數將會設定為零。

[out, optional] DomainBuffer

緩衝區的指標,接收找到此 SID 的第一個網功能變數名稱稱。

[out] NameUse

接收帳戶類型的 SID_NAME_USE 列舉型別指標。

傳回值

SecLookupAccountSid 會在成功時傳回STATUS_SUCCESS,或在失敗時傳回下列其中一個錯誤碼。

傳回碼 描述
SEC_E_INTERNAL_ERROR 嘗試連線到本機系統授權單位 (LSA) 或本機程序呼叫時發生內部錯誤, (LPC) 安全性提供者失敗。
STATUS_ACCESS_DENIED 與目前執行執行緒相關聯的進程識別碼不符合目前的進程識別碼。
STATUS_BUFFER_TOO_SMALL NameBufferReferencedDomain參數的緩衝區大小太小。
STATUS_INVALID_PARAMETER Name參數的長度超過本機系統授權單位所允許的長度, (LSA) 。
STATUS_NO_MEMORY 無法為這個函式所使用的暫時內部緩衝區配置足夠的記憶體。
STATUS_NONE_MAPPED 找不到 Sid 參數。
STATUS_PROCESS_IS_TERMINATING 此程式已終止,因此無法建立本機程序呼叫 (LPC) 連線。

備註

SecLookupAccountSid 會先檢查已知 SID 的清單,嘗試尋找指定 SID 的名稱。 如果提供的 SID 未對應至已知的 SID,則函式會檢查內建和管理定義的本機帳戶。 接下來,函式會檢查主要網域。 主要網域無法辨識的安全性識別碼會根據對應至其 SID 前置詞的信任網域進行檢查。

如果函式找不到 SID 的帳戶名稱, SecLookupAccountSid 會失敗。 如果網路逾時會防止函式尋找名稱,就會發生這種情況。 它也會發生在沒有對應帳戶名稱的 SID,例如識別登入會話的登入 SID。

除了查閱本機帳戶、本機網域帳戶和明確信任的網域帳戶以外, SecLookupAccountSid 還可以查詢樹系中任何網域中任何帳戶的 SID,包括只出現在樹系中帳戶 SIDhistory 欄位中的 SID。 SIDhistory 欄位會儲存已從另一個網域移動之帳戶的先前 SID。 若要查閱 SID, SecLookupAccountSid 會查詢樹系的通用類別目錄。

SecLookupAccountSid 相當於 Win32 LookupAccountSid 函式。

SecLookupAccountSid 是由 ksecdd 驅動程式匯出,此驅動程式會使用使用者模式協助程式服務來實作此函式。 因此,在檔案系統內使用此函式必須遵守與使用者模式服務通訊的一般規則。 SecLookupAccountSid 無法在分頁檔案 I/O 期間使用。

必要條件

   
最低支援的用戶端 Windows XP
目標平臺 環球
標頭 ntifs.h (包含 Ntifs.h)
程式庫 Ksecdd.lib
IRQL <= APC_LEVEL

另請參閱

SID_NAME_USE

SecLookupAccountName

SecLookupWellKnownSid