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