Freigeben über


SecLookupAccountSid-Funktion (ntifs.h)

SecLookupAccountSid akzeptiert eine Sicherheits-ID (SID) als Eingabe. Er ruft den Namen des Kontos für diese SID und den Namen der ersten Domäne ab, in der diese SID gefunden wird.

Syntax

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
);

Parameter

[in] Sid

Ein Zeiger auf die SID, um nachzuschlagen.

[out] NameSize

Ein Zeiger auf eine Variable, die die Größe des NameBuffer-angibt. Bei eingaben gibt dieser Wert die Größe in Byte der Eingabe NameBuffer-an. Wenn die Funktion fehlschlägt, da der Puffer zu klein ist, empfängt diese Variable die erforderliche Puffergröße. Bei Erfolg enthält diese Variable die Größe der zurückgegebenen NameBuffer-.

[in, out] NameBuffer

Ein Zeiger auf einen Puffer, der den Namen des Kontos empfängt, das dem Sid-zugeordnet ist. Wenn dieser Parameter NULL ist, ist NameSize null.

[out] DomainSize

Ein Zeiger auf eine ULONG, die die Größe des DomainBuffer--Parameters angibt. Wenn die Funktion fehlschlägt, da der Puffer zu klein ist, empfängt diese Variable die erforderliche Puffergröße. Wenn der parameter DomainBufferNULList, wird dieser Parameter auf Null festgelegt.

[out, optional] DomainBuffer

Ein Zeiger auf einen Puffer, der den Namen der ersten Domäne empfängt, in der diese SID gefunden wird.

[out] NameUse

Ein Zeiger auf einen SID_NAME_USE Aufzählungstyp, der den Typ des Kontos empfängt.

Rückgabewert

SecLookupAccountSid gibt STATUS_SUCCESS bei Erfolg oder einer der folgenden Fehlercodes für Fehler zurück.

Rückgabecode Beschreibung
SEC_E_INTERNAL_ERROR Beim Versuch, eine Verbindung mit der lokalen Systemautorität (Local System Authority, LSA) herzustellen, oder beim lokalen Prozeduraufruf (Local Procedure Call, LPC) mit dem Sicherheitsanbieter ist ein interner Fehler aufgetreten.
STATUS_ACCESS_DENIED Die prozess-ID, die dem aktuell ausgeführten Thread zugeordnet ist, stimmt nicht mit der aktuellen Prozess-ID überein.
STATUS_BUFFER_TOO_SMALL Die Puffergröße für den NameBuffer- oder der parameter ReferencedDomain war zu klein.
STATUS_INVALID_PARAMETER Die Länge des parameters Name hat die in einer Nachricht zulässige Länge der lokalen Systemautorität (Local System Authority, LSA) überschritten.
STATUS_NO_MEMORY Es war nicht möglich, genügend Arbeitsspeicher für einen temporären internen Puffer zuzuweisen, der von dieser Funktion verwendet wird.
STATUS_NONE_MAPPED Der parameter Sid konnte nicht gefunden werden.
STATUS_PROCESS_IS_TERMINATING Dieser Prozess wurde beendet, sodass es nicht möglich ist, eine lokale Prozeduraufrufverbindung (Local Procedure Call, LPC) herzustellen.

Bemerkungen

SecLookupAccountSid versucht, einen Namen für die angegebene SID zu finden, indem zuerst eine Liste bekannter SIDs überprüft wird. Wenn die angegebene SID keiner bekannten SID entspricht, überprüft die Funktion integrierte und administrativ definierte lokale Konten. Als Nächstes überprüft die Funktion die primäre Domäne. Sicherheitsbezeichner, die von der primären Domäne nicht erkannt werden, werden anhand der vertrauenswürdigen Domänen überprüft, die ihren SID-Präfixen entsprechen.

Wenn die Funktion keinen Kontonamen für die SID finden kann, schlägt SecLookupAccountSid fehl. Dies kann auftreten, wenn ein Netzwerktimeout verhindert, dass die Funktion den Namen findet. Sie tritt auch für SIDs auf, die keinen entsprechenden Kontonamen aufweisen, z. B. eine Anmelde-SID, die eine Anmeldesitzung identifiziert.

Zusätzlich zum Nachschlagen von SIDs für lokale Konten, lokale Domänenkonten und explizit vertrauenswürdigen Domänenkonten können SecLookupAccountSid- SIDs für jedes Konto in jeder Domäne in der Gesamtstruktur suchen, einschließlich SIDs, die nur im FELD "SIDhistory" eines Kontos in der Gesamtstruktur angezeigt werden. Das SIDhistory-Feld speichert frühere SIDs eines Kontos, das aus einer anderen Domäne verschoben wurde. Um eine SID nachzuschlagen, fragt SecLookupAccountSid den globalen Katalog der Gesamtstruktur ab.

SecLookupAccountSid entspricht der-Funktion "Win32 LookupAccountSid".

SecLookupAccountSid wird vom ksecdd-Treiber exportiert, der diese Funktion mithilfe von Hilfsdiensten für den Benutzermodus implementiert. Dementsprechend muss die Verwendung dieser Funktion innerhalb von Dateisystemen den üblichen Regeln für die Kommunikation mit Benutzermodusdiensten entsprechen. SecLookupAccountSid- kann während der Auslagerungsdatei-E/A nicht verwendet werden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library Ksecdd.lib
IRQL- <= APC_LEVEL

Siehe auch

SID-

SID_NAME_USE

SecLookupAccountName

SecLookupWellKnownSid