Funzione NtSetInformationToken (ntifs.h)
La routine NtSetInformationToken modifica le informazioni in un token specificato. Il processo di chiamata deve disporre dei diritti di accesso appropriati per impostare le informazioni.
Sintassi
__kernel_entry NTSYSCALLAPI NTSTATUS NtSetInformationToken(
[in] HANDLE TokenHandle,
[in] TOKEN_INFORMATION_CLASS TokenInformationClass,
[in] PVOID TokenInformation,
[in] ULONG TokenInformationLength
);
Parametri
[in] TokenHandle
Gestire 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 dati predefinito per gli oggetti appena creati. TOKEN_ADJUST_DEFAULT l'accesso è necessario per impostare queste informazioni. Il contenuto del buffer non viene convalidato per la correttezza strutturale o la coerenza. |
TokenGroup | Non una classe di informazioni 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 di proprietario che possono essere specificati sono limitati agli ID utente e di 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 del gruppo già nel token. |
TokenPrivileges | Non una classe di informazioni valida. Queste informazioni sono di sola lettura. |
TokenSource | Non una classe di informazioni valida. Queste informazioni sono di sola lettura. |
TokenStatistici | Non una classe di informazioni valida. Queste informazioni sono di sola lettura. |
TokenUser | Non una classe di informazioni 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 | TokenInformationLength minimo |
---|---|
TokenDefaultDacl | sizeof(TOKEN_DEFAULT_DACL) |
TokenOwner | sizeof(TOKEN_OWNER) |
TokenPrimaryGroup | sizeof(TOKEN_PRIMARY_GROUP) |
Valore restituito
NtSetInformationToken restituisce STATUS_SUCCESS o uno stato di errore appropriato. I codici di stato degli errori possibili includono quanto segue:
Codice restituito | Descrizione |
---|---|
STATUS_ACCESS_DENIED | TokenHandle non ha avuto l'accesso richiesto. |
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 minimo richiesto. |
STATUS_INSUFFICIENT_RESOURCES | Impossibile acquisire le informazioni di sicurezza del proprietario predefinite specificate. |
STATUS_INVALID_HANDLE | TokenHandle non era 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 predefinite specificate non sono valide. |
STATUS_OBJECT_TYPE_MISMATCH | TokenHandle non era un handle token. |
Commenti
Per altre informazioni sul controllo di sicurezza e accesso, vedere Modello di sicurezza di Windows per sviluppatori driver e la documentazione su questi argomenti in Windows SDK.
Nota
Se la chiamata alla funzione NtSetInformationToken si verifica in modalità kernel, è necessario usare il nome "ZwSetInformationToken" anziché "NtSetInformationToken".
Per le chiamate dai driver in modalità kernel, le versioni NtXxx e ZwXxx di una routine di Windows Native System Services 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 Uso di nt e zw versioni delle routine di Servizi di sistema nativo.
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, PowerIrpDDis |
Vedi anche
PsDereferenceImpersonationToken
Uso di nt e zw versioni delle routine di Servizi di sistema nativo