Funzione ZwSetInformationToken (ntifs.h)

La routine ZwSetInformationToken modifica le informazioni in un token specificato. Per impostare le informazioni, il processo chiamante deve disporre dei diritti di accesso appropriati.

Sintassi

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

Parametri

[in] TokenHandle

Handle per un token di accesso in cui devono essere modificate le informazioni.

[in] TokenInformationClass

Valore del tipo enumerato TOKEN_INFORMATION_CLASS che identifica il tipo di informazioni da modificare. I valori possibili per questo parametro sono elencati nella colonna TokenInformationClass Value della tabella illustrata nella descrizione del parametro TokenInformation .

[in] TokenInformation

Puntatore a un buffer fornito dal chiamante contenente le informazioni da modificare nel token. La struttura delle informazioni in questo buffer dipende dal valore di TokenInformationClass, come illustrato nella tabella seguente. Tutte le strutture devono essere allineate su un limite a 32 bit.

Valore TokenInformationClass Effetto sul buffer TokenInformation
TokenDefaultDacl Il buffer contiene una struttura TOKEN_DEFAULT_DACL che specifica l'elenco DACL predefinito per gli oggetti appena creati. TOKEN_ADJUST_DEFAULT l'accesso è necessario per impostare queste informazioni. Il contenuto del buffer non viene convalidato per correttezza strutturale o coerenza.
TokenGroups Classe di informazioni non valida. Queste informazioni sono di sola lettura.
TokenOwner Il buffer contiene una struttura TOKEN_OWNER che specifica il SID del proprietario predefinito per gli oggetti appena creati. TOKEN_ADJUST_DEFAULT l'accesso è necessario per impostare queste informazioni. I valori del proprietario che possono essere specificati sono limitati agli ID utente e gruppo con un attributo che indica che possono essere assegnati come proprietario di oggetti.
TokenPrimaryGroup Il buffer contiene una struttura TOKEN_PRIMARY_GROUP che specifica il SID del gruppo primario predefinito per gli oggetti appena creati. TOKEN_ADJUST_DEFAULT l'accesso è necessario per impostare queste informazioni. Deve essere uno degli ID gruppo già presenti nel token.
TokenPrivileges Classe di informazioni non valida. Queste informazioni sono di sola lettura.
TokenSource Classe di informazioni non valida. Queste informazioni sono di sola lettura.
TokenStatistics Classe di informazioni non valida. Queste informazioni sono di sola lettura.
TokenUser Classe di informazioni non valida. Queste informazioni sono di sola lettura.

[in] TokenInformationLength

Dimensioni, in byte, della struttura passata nel buffer TokenInformation . Deve essere maggiore o uguale al valore minimo specificato nella tabella seguente.

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

Valore restituito

ZwSetInformationToken restituisce STATUS_SUCCESS o uno stato di errore appropriato. I codici di stato di errore possibili includono quanto segue:

Codice restituito Descrizione
STATUS_ACCESS_DENIED TokenHandle non ha avuto l'accesso necessario.
STATUS_ALLOTTED_SPACE_EXCEEDED Lo spazio assegnato per l'archiviazione del controllo di accesso discrezionale predefinito e l'ID gruppo primario non è sufficiente per accettare il nuovo valore di uno di questi campi.
STATUS_INFO_LENGTH_MISMATCH Il valore di TokenInformationLength è minore del valore minimo richiesto.
STATUS_INSUFFICIENT_RESOURCES Impossibile acquisire le informazioni di sicurezza del proprietario predefinito specificato.
STATUS_INVALID_HANDLE TokenHandle non è un handle valido.
STATUS_INVALID_INFO_CLASS TokenInformationClass non era una classe di informazioni sul token valida.
STATUS_INVALID_OWNER Il chiamante non può impostare l'ID specificato come proprietario (o proprietario predefinito) di un oggetto.
STATUS_INVALID_PRIMARY_GROUP Il chiamante non può impostare l'ID specificato come gruppo primario di un oggetto.
STATUS_INVALID_SID Le informazioni di sicurezza del proprietario predefinito specificate non sono valide.
STATUS_OBJECT_TYPE_MISMATCH TokenHandle non è un handle di token.

Commenti

Per altre informazioni sulla sicurezza e sul controllo di accesso, vedere Modello di sicurezza di Windows per sviluppatori di driver e la documentazione su questi argomenti in Windows SDK.

Nota

Se la chiamata alla funzione ZwSetInformationToken viene eseguita in modalità utente, devi usare il nome NtSetInformationToken anziché "ZwSetInformationToken".

Per le chiamate da driver in modalità kernel, le versioni NtXxx e ZwXxx di una routine di Servizi di sistema nativi di Windows possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines .For more information about the Nt Xxx and Zw versions of the Native System Services Routines.

Requisiti

Requisito Valore
Client minimo supportato Windows 7
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Vedi anche

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

Uso delle versioni Nt e Zw delle routine native di Servizi di sistema

ZwQueryInformationToken