SecLookupAccountSid-Funktion (ntifs.h)

SecLookupAccountSid akzeptiert einen Sicherheitsbezeichner (SID) als Eingabe. Es 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 der Eingabe gibt dieser Wert die Größe des Eingabenamenbuffers in Bytes an. Wenn die Funktion fehlschlägt, weil der Puffer zu klein ist, empfängt diese Variable die erforderliche Puffergröße. Bei Erfolg enthält diese Variable die Größe des 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 0.

[out] DomainSize

Ein Zeiger auf eine ULONG, der die Größe des DomainBuffer-Parameters angibt. Wenn die Funktion fehlschlägt, weil der Puffer zu klein ist, empfängt diese Variable die erforderliche Puffergröße. Wenn der DomainBuffer-ParameterNULL ist, 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 aufgezählten Typ, der den Typ des Kontos empfängt.

Rückgabewert

SecLookupAccountSid gibt STATUS_SUCCESS bei Erfolg oder einen der folgenden Fehlercodes bei Fehler zurück.

Rückgabecode Beschreibung
SEC_E_INTERNAL_ERROR Beim Herstellen einer Verbindung mit der lokalen Systemautorität (Local System Authority, LSA) oder beim lokalen Prozeduraufruf (Local Procedure Call, LPC) mit dem Sicherheitsanbieter ist ein interner Fehler aufgetreten.
STATUS_ACCESS_DENIED Die Dem aktuell ausgeführten Thread zugeordnete Prozess-ID stimmt nicht mit der aktuellen Prozess-ID überein.
STATUS_BUFFER_TOO_SMALL Die Puffergröße für den Parameter NameBuffer oder ReferencedDomain war zu klein.
STATUS_INVALID_PARAMETER Die Länge des Parameters Name überschreitet die in einer Nachricht an die lokale Systemautorität (Local System Authority, LSA) zulässige Länge.
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 Sid-Parameter 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.

Hinweise

SecLookupAccountSid versucht, einen Namen für die angegebene SID zu finden, indem zuerst eine Liste bekannter SIDs überprüft wird. Wenn die angegebene SID nicht einer 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. Es tritt auch für SIDs auf, die keinen entsprechenden Kontonamen haben, z. B. eine Anmelde-SID, die eine Anmeldesitzung identifiziert.

Neben der Suche nach SIDs für lokale Konten, lokale Domänenkonten und explizit vertrauenswürdige Domänenkonten kann SecLookupAccountSid SIDs für jedes Konto in jeder Domäne in der Gesamtstruktur suchen, einschließlich SIDs, die nur im SIDhistory-Feld eines Kontos in der Gesamtstruktur angezeigt werden. Im Feld SIDhistory werden frühere SIDs eines Kontos gespeichert, das aus einer anderen Domäne verschoben wurde. Um eine SID zu suchen, fragt SecLookupAccountSid den globalen Katalog der Gesamtstruktur ab.

SecLookupAccountSid entspricht der Win32 LookupAccountSid-Funktion .

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek Ksecdd.lib
IRQL <= APC_LEVEL

Weitere Informationen

SID

SID_NAME_USE

SecLookupAccountName

SecLookupWellKnownSid