Função SeImpersonateClientEx (ntifs.h)
A rotina SeImpersonateClientEx faz com que um thread represente um usuário.
Sintaxe
NTSTATUS SeImpersonateClientEx(
[in] PSECURITY_CLIENT_CONTEXT ClientContext,
[in, optional] PETHREAD ServerThread
);
Parâmetros
[in] ClientContext
Ponteiro para o contexto do cliente de segurança do usuário.
[in, optional] ServerThread
Ponteiro para o thread que deve representar o usuário. Se não for especificado, o thread de chamada será usado.
Retornar valor
SeImpersonateClientEx retorna um valor NTSTATUS apropriado, como o seguinte:
Código de retorno | Descrição |
---|---|
|
A tentativa de representação foi bem-sucedida. |
|
O thread especificado no parâmetro ServerThread não tinha direitos de acesso suficientes para representar o usuário cujo contexto de cliente de segurança é especificado no parâmetro ClientContext . |
|
SeImpersonateClientEx encontrou uma falha de alocação de pool ao alocar memória para a estrutura de informações de representação. |
Comentários
SeImpersonateClientEx é usado para fazer com que um thread represente um usuário. O contexto de segurança do cliente em ClientContext é considerado atualizado.
Não é seguro aumentar o estado de privilégio de um thread de usuário não confiável (pegar o thread de um usuário e representar LocalSystem, por exemplo). Se um thread de usuário não confiável tiver seu privilégio gerado, o usuário poderá pegar o token de thread depois de ter sido elevado e subverter a segurança de todo o sistema.
Nos casos em que um estado de privilégio mais alto é necessário, a tarefa deve ser enviada para uma fila de trabalho em que a tarefa pode ser tratada com segurança pelo thread de trabalho do sistema. Dessa forma, nenhuma representação é necessária.
Para encerrar a representação do usuário, chame a rotina SeStopImpersonatingClient .
A rotina PsImpersonateClient pode ser usada para fazer com que um thread de servidor represente um cliente.
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.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |