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
Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen