Freigeben über


ZwSetInformationToken-Funktion (ntifs.h)

Die ZwSetInformationToken Routine ändert Informationen in einem angegebenen Token. Der Aufrufvorgang muss über geeignete Zugriffsrechte verfügen, um die Informationen festzulegen.

Syntax

NTSYSAPI NTSTATUS ZwSetInformationToken(
  [in] HANDLE                  TokenHandle,
  [in] TOKEN_INFORMATION_CLASS TokenInformationClass,
  [in] PVOID                   TokenInformation,
  [in] ULONG                   TokenInformationLength
);

Parameter

[in] TokenHandle

Behandeln Sie ein Zugriffstoken, in dem Informationen geändert werden sollen.

[in] TokenInformationClass

Ein Wert aus dem TOKEN_INFORMATION_CLASS aufgezählten Typ, der den Typ der zu ändernden Informationen identifiziert. Die möglichen Werte für diesen Parameter werden in der TokenInformationClass Wertspalte der Tabelle aufgeführt, die in der Beschreibung des TokenInformation-Parameters angezeigt wird.

[in] TokenInformation

Zeigen Sie auf einen vom Aufrufer bereitgestellten Puffer, der die informationen enthält, die im Token geändert werden sollen. Die Struktur der Informationen in diesem Puffer hängt vom Wert TokenInformationClassab, wie in der folgenden Tabelle dargestellt. Alle Strukturen müssen an einer 32-Bit-Grenze ausgerichtet werden.

TokenInformationClass-Wert Effekt auf TokenInformation-Puffer
TokenDefaultDacl- Der Puffer enthält eine TOKEN_DEFAULT_DACL Struktur, die die standardmäßige DACL- für neu erstellte Objekte angibt. TOKEN_ADJUST_DEFAULT Zugriff ist erforderlich, um diese Informationen festzulegen. Der Pufferinhalt wird nicht auf strukturelle Korrektheit oder Konsistenz überprüft.
TokenGroups Keine gültige Informationsklasse. Diese Informationen sind schreibgeschützt.
TokenOwner- Der Puffer enthält eine TOKEN_OWNER Struktur, die den Standardbesitzer SID- für neu erstellte Objekte angibt. TOKEN_ADJUST_DEFAULT Zugriff ist erforderlich, um diese Informationen festzulegen. Die angegebenen Besitzerwerte sind auf die Benutzer- und Gruppen-IDs mit einem Attribut beschränkt, das angibt, dass sie als Besitzer von Objekten zugewiesen werden können.
TokenPrimaryGroup- Der Puffer enthält eine TOKEN_PRIMARY_GROUP Struktur, die die primäre Standardgruppe SID- für neu erstellte Objekte angibt. TOKEN_ADJUST_DEFAULT Zugriff ist erforderlich, um diese Informationen festzulegen. Muss eine der Gruppen-IDs sein, die sich bereits im Token befinden.
TokenPrivileges Keine gültige Informationsklasse. Diese Informationen sind schreibgeschützt.
TokenSource- Keine gültige Informationsklasse. Diese Informationen sind schreibgeschützt.
TokenStatistics- Keine gültige Informationsklasse. Diese Informationen sind schreibgeschützt.
TokenUser- Keine gültige Informationsklasse. Diese Informationen sind schreibgeschützt.

[in] TokenInformationLength

Größe der im TokenInformation Puffer übergebenen Struktur in Byte. Muss größer oder gleich dem in der folgenden Tabelle angegebenen Mindestwert sein.

TokenInformationClass-Wert Minimum TokenInformationLength
TokenDefaultDacl- Größe(TOKEN_DEFAULT_DACL)
TokenOwner- Größe der(TOKEN_OWNER)
TokenPrimaryGroup- Größe(TOKEN_PRIMARY_GROUP)

Rückgabewert

ZwSetInformationToken gibt STATUS_SUCCESS oder einen entsprechenden Fehlerstatus zurück. Mögliche Fehlerstatuscodes sind:

Rückgabecode Beschreibung
STATUS_ACCESS_DENIED TokenHandle- nicht über den erforderlichen Zugriff verfügt.
STATUS_ALLOTTED_SPACE_EXCEEDED Der für die Speicherung der standardmäßigen Ermessenssteuerung zugewiesene Speicherplatz und die primäre Gruppen-ID ist nicht groß genug, um den neuen Wert eines dieser Felder zu akzeptieren.
STATUS_INFO_LENGTH_MISMATCH Der Wert TokenInformationLength- war kleiner als das erforderliche Minimum.
STATUS_INSUFFICIENT_RESOURCES Die Sicherheitsinformationen des angegebenen Standardbesitzers konnten nicht erfasst werden.
STATUS_INVALID_HANDLE TokenHandle- war kein gültiger Handle.
STATUS_INVALID_INFO_CLASS TokenInformationClass war keine gültige Tokeninformationsklasse.
STATUS_INVALID_OWNER Der Aufrufer kann die angegebene ID nicht als Besitzer (oder Standardbesitzer) eines Objekts festlegen.
STATUS_INVALID_PRIMARY_GROUP Der Aufrufer kann die angegebene ID nicht als primäre Gruppe eines Objekts festlegen.
STATUS_INVALID_SID Die Sicherheitsinformationen des angegebenen Standardbesitzers waren ungültig.
STATUS_OBJECT_TYPE_MISMATCH TokenHandle- kein Tokenhandle war.

Bemerkungen

Weitere Informationen zur Sicherheits- und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und die Dokumentation zu diesen Themen im Windows SDK.

Anmerkung

Wenn der Aufruf der ZwSetInformationToken Funktion im Benutzermodus auftritt, sollten Sie den Namen NtSetInformationToken" anstelle von "ZwSetInformationToken" verwenden.

Bei Aufrufen von Kernelmodustreibern können sich die NtXxx und ZwXxx- Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter behandeln und interpretieren. Weitere Informationen zur Beziehung zwischen den NtXxx und ZwXxx- Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 7
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Siehe auch

PsDereferenceImpersonationToken

PsDereferencePrimaryToken

SECURITY_IMPERSONATION_LEVEL

SID-

SeQueryAuthenticationIdToken

SeQuerySubjectContextToken

SeTokenIsAdmin

SeTokenIsRestricted

TOKEN_DEFAULT_DACL

TOKEN_GROUPS

TOKEN_INFORMATION_CLASS

TOKEN_OWNER

TOKEN_PRIMARY_GROUP

TOKEN_PRIVILEGES

TOKEN_SOURCE

TOKEN_STATISTICS

TOKEN_TYPE

TOKEN_USER

Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen

ZwQueryInformationToken