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