ZwSetInformationToken-Funktion (ntifs.h)

Die ZwSetInformationToken-Routine ändert Informationen in einem angegebenen Token. Der aufrufende Prozess muss über die entsprechenden 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

Handle für 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 sind in der Spalte TokenInformationClass-Wert der Tabelle aufgeführt, die in der Beschreibung des TokensInformation-Parameters angezeigt wird.

[in] TokenInformation

Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der die im Token zu ändernden Informationen enthält. Die Struktur der Informationen in diesem Puffer hängt vom Wert von TokenInformationClass ab, wie in der folgenden Tabelle gezeigt. Alle Strukturen müssen an einer 32-Bit-Grenze ausgerichtet werden.

TokenInformationClass-Wert Auswirkung auf den TokenInformation-Puffer
TokenDefaultDacl Der Puffer enthält eine TOKEN_DEFAULT_DACL-Struktur , die die Standard-DACL für neu erstellte Objekte angibt. zum Festlegen dieser Informationen ist TOKEN_ADJUST_DEFAULT Zugriff erforderlich. Der Pufferinhalt wird nicht auf strukturelle Richtigkeit oder Konsistenz überprüft.
TokenGroups Keine gültige Informationsklasse. Diese Informationen sind schreibgeschützt.
TokenOwner Der Puffer enthält eine TOKEN_OWNER-Struktur , die die Standardbesitzer-SID für neu erstellte Objekte angibt. zum Festlegen dieser Informationen ist TOKEN_ADJUST_DEFAULT Zugriff erforderlich. Die möglicherweise 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 Standard-SID der primären Gruppe für neu erstellte Objekte angibt. zum Festlegen dieser Informationen ist TOKEN_ADJUST_DEFAULT Zugriff erforderlich. 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 Struktur, die im TokenInformation-Puffer übergeben wird, in Byte. Muss größer oder gleich dem in der folgenden Tabelle angegebenen Mindestwert sein.

TokenInformationClass-Wert Minimum TokenInformationLength
TokenDefaultDacl sizeof(TOKEN_DEFAULT_DACL)
TokenOwner sizeof(TOKEN_OWNER)
TokenPrimaryGroup sizeof(TOKEN_PRIMARY_GROUP)

Rückgabewert

ZwSetInformationToken gibt STATUS_SUCCESS oder einen geeigneten Fehler status zurück. Mögliche Fehler status Codes:

Rückgabecode Beschreibung
STATUS_ACCESS_DENIED TokenHandle verfügte nicht über den erforderlichen Zugriff.
STATUS_ALLOTTED_SPACE_EXCEEDED Der für die Speicherung der standardmäßigen, diskretionären Zugriffssteuerung und der primären Gruppen-ID zugewiesene Speicherplatz ist nicht groß genug, um den neuen Wert eines dieser Felder zu akzeptieren.
STATUS_INFO_LENGTH_MISMATCH Der Wert von TokenInformationLength war kleiner als der erforderliche Mindestwert.
STATUS_INSUFFICIENT_RESOURCES Die Sicherheitsinformationen des angegebenen Standardbesitzers konnten nicht erfasst werden.
STATUS_INVALID_HANDLE TokenHandle war kein gültiges 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 war kein Tokenhandle.

Hinweise

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

Hinweis

Wenn der Aufruf der ZwSetInformationToken-Funktion im Benutzermodus erfolgt, 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 verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienstroutinen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Weitere Informationen

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 Systemdienstroutinen

ZwQueryInformationToken