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, auf 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 Bytes des Eingabenamenbuffers an. Wenn die Funktion fehlschlägt, weil der Puffer zu klein ist, erhält 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 null.

[out] DomainSize

Ein Zeiger auf eine ULONG, die die Größe des DomainBuffer-Parameters angibt. Wenn die Funktion fehlschlägt, weil der Puffer zu klein ist, erhält diese Variable die erforderliche Puffergröße. Wenn der Parameter "DomainBuffer" NULL ist, wird dieser Parameter auf Null festgelegt.

[out, optional] DomainBuffer

Ein Zeiger auf einen Puffer, der den Namen der ersten Domäne empfängt, auf 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 für Erfolg oder einen der folgenden Fehlercodes für Fehler zurück.

Rückgabecode Beschreibung
SEC_E_INTERNAL_ERROR Beim Versuch, eine Verbindung mit der lokalen Systembehörde (LSA) oder dem lokalen Prozeduraufruf (LPC) mit dem Sicherheitsanbieter herzustellen, ist ein interner Fehler aufgetreten.
STATUS_ACCESS_DENIED Die prozess-ID, die dem derzeit 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 den ReferenzdDomain-Parameter war zu klein.
STATUS_INVALID_PARAMETER Die Länge des Parameters Name überschreitet die länge, die in einer Nachricht an die lokale Systembehörde (LSA) zulässig ist.
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 (LPC) einzurichten.

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 nicht einer bekannten SID entspricht, überprüft die Funktion integrierte und administrative 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 auf die 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 Netzwerk-Timeout 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.

Zusätzlich zum Nachschlagen von 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 nachschlagen, einschließlich SIDs, die nur im SIDhistory-Feld eines Kontos in der Gesamtstruktur angezeigt werden. Das SIDhistory-Feld speichert ehemalige 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 Benutzermodus-Hilfsdiensten implementiert. Entsprechend muss die Verwendung dieser Funktion in Dateisystemen den üblichen Regeln für die Kommunikation mit Benutzermodusdiensten entsprechen. SecLookupAccountSid kann während der Seitendatei I/O nicht verwendet werden.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP
Zielplattform Universell
Header ntifs.h (einschließlich Ntifs.h)
Bibliothek Ksecdd.lib
IRQL <= APC_LEVEL

Weitere Informationen

Sid

SID_NAME_USE

SecLookupAccountName

SecLookupWellKnownSid