Função NtSetInformationToken (ntifs.h)
A rotina de NtSetInformationToken
Sintaxe
__kernel_entry NTSYSCALLAPI NTSTATUS NtSetInformationToken(
[in] HANDLE TokenHandle,
[in] TOKEN_INFORMATION_CLASS TokenInformationClass,
[in] PVOID TokenInformation,
[in] ULONG TokenInformationLength
);
Parâmetros
[in] TokenHandle
Manipule um token de acesso no qual as informações devem ser modificadas.
[in] TokenInformationClass
Um valor do tipo TOKEN_INFORMATION_CLASS enumerado que identifica o tipo de informação a ser modificada. Os valores possíveis para esse parâmetro são listados na coluna TokenInformationClass Value da tabela mostrada na descrição do parâmetro TokenInformation.
[in] TokenInformation
Ponteiro para um buffer fornecido pelo chamador que contém as informações a serem modificadas no token. A estrutura das informações nesse buffer depende do valor de TokenInformationClass, conforme mostrado na tabela a seguir. Todas as estruturas devem ser alinhadas em um limite de 32 bits.
Valor de TokenInformationClass | Efeito no buffer TokenInformation |
---|---|
TokenDefaultDacl | O buffer contém uma estrutura |
TokenGroups | Não é uma classe de informações válida. Essas informações são somente leitura. |
|
O buffer contém uma estrutura TOKEN_OWNER especificando o proprietário padrão sid para objetos recém-criados. TOKEN_ADJUST_DEFAULT acesso é necessário para definir essas informações. Os valores de proprietário que podem ser especificados são restritos às IDs do usuário e do grupo com um atributo que indica que eles podem ser atribuídos como o proprietário dos objetos. |
TokenPrimaryGroup | O buffer contém uma estrutura TOKEN_PRIMARY_GROUP especificando o grupo primário padrão SID para objetos recém-criados. TOKEN_ADJUST_DEFAULT acesso é necessário para definir essas informações. Deve ser uma das IDs de grupo que já estão no token. |
TokenPrivileges | Não é uma classe de informações válida. Essas informações são somente leitura. |
|
Não é uma classe de informações válida. Essas informações são somente leitura. |
tokenStatistics | Não é uma classe de informações válida. Essas informações são somente leitura. |
do TokenUser | Não é uma classe de informações válida. Essas informações são somente leitura. |
[in] TokenInformationLength
Tamanho, em bytes, da estrutura passada no buffer
Valor de TokenInformationClass | TokenInformationLength mínimo |
---|---|
TokenDefaultDacl | sizeof(TOKEN_DEFAULT_DACL) |
|
sizeof(TOKEN_OWNER) |
TokenPrimaryGroup | sizeof(TOKEN_PRIMARY_GROUP) |
Valor de retorno
NtSetInformationToken retorna STATUS_SUCCESS ou um status de erro apropriado. Os códigos de status de erro possíveis incluem o seguinte:
Código de retorno | Descrição |
---|---|
STATUS_ACCESS_DENIED | TokenHandle não tinha o acesso necessário. |
STATUS_ALLOTTED_SPACE_EXCEEDED | O espaço alocado para armazenamento do controle de acesso discricionário padrão e da ID do grupo primário não é grande o suficiente para aceitar o novo valor de um desses campos. |
STATUS_INFO_LENGTH_MISMATCH | O valor de TokenInformationLength foi menor que o mínimo necessário. |
STATUS_INSUFFICIENT_RESOURCES | As informações de segurança do proprietário padrão especificadas não puderam ser capturadas. |
STATUS_INVALID_HANDLE | tokenHandle não era um identificador válido. |
STATUS_INVALID_INFO_CLASS | TokenInformationClass não era uma classe de informações de token válida. |
STATUS_INVALID_OWNER | O chamador não pode definir a ID especificada como um proprietário (ou proprietário padrão) de um objeto. |
STATUS_INVALID_PRIMARY_GROUP | O chamador não pode definir a ID especificada como o grupo primário de um objeto. |
STATUS_INVALID_SID | As informações de segurança do proprietário padrão especificadas não eram válidas. |
STATUS_OBJECT_TYPE_MISMATCH | tokenHandle não era um identificador de token. |
Observações
Para obter mais informações sobre segurança e controle de acesso, consulte modelo de segurança do Windows para desenvolvedores de driver e a documentação sobre esses tópicos no SDK do Windows.
Nota
Se a chamada para a função NtSetInformationToken
Para chamadas de drivers no modo kernel, as versões NtXxx e Zwxxx versões de uma rotina dos Serviços de Sistema Nativo do Windows podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Usando versões Nt e Zw das rotinas de serviços do sistema nativo.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 7 |
da Plataforma de Destino |
Universal |
cabeçalho | ntifs.h (inclua Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL |
NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
regras de conformidade de DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
Consulte também
PsDereferenceImpersonationToken
de SID
usando versões Nt e Zw das rotinas de serviços do sistema nativo