Função NtQueryInformationThread (winternl.h)
[NtQueryInformationThread pode ser alterado ou indisponível em versões futuras do Windows. Os aplicativos devem usar as funções alternativas listadas neste tópico.]
Recupera informações sobre o thread especificado.
Sintaxe
__kernel_entry NTSTATUS NtQueryInformationThread(
[in] HANDLE ThreadHandle,
[in] THREADINFOCLASS ThreadInformationClass,
[in, out] PVOID ThreadInformation,
[in] ULONG ThreadInformationLength,
[out, optional] PULONG ReturnLength
);
Parâmetros
[in] ThreadHandle
Um identificador para o thread sobre quais informações estão sendo solicitadas.
[in] ThreadInformationClass
Se esse parâmetro for o valor ThreadIsIoPending da enumeração THREADINFOCLASS , a função determinará se o thread tem operações de E/S pendentes.
Use a função pública GetThreadIOPendingFlag para obter essas informações.
Se esse parâmetro for o valor ThreadQuerySetWin32StartAddress da enumeração THREADINFOCLASS , a função retornará o endereço inicial do thread. Observe que, em versões do Windows anteriores ao Windows Vista, o endereço inicial retornado só é confiável antes do thread começar a ser executado.
Se esse parâmetro for o valor ThreadSubsystemInformation da enumeração THREADINFOCLASS , a função recuperará um valor SUBSYSTEM_INFORMATION_TYPE indicando o tipo de subsistema do thread. O buffer apontado pelo parâmetro ThreadInformation deve ser grande o suficiente para conter uma única enumeração SUBSYSTEM_INFORMATION_TYPE .
[in, out] ThreadInformation
Um ponteiro para um buffer no qual a função grava as informações solicitadas. Se ThreadIsIoPending for especificado para o parâmetro ThreadInformationClass , esse buffer deverá ser grande o suficiente para manter um valor ULONG , o que indica se o thread especificado tem solicitações de E/S pendentes. Se esse valor for igual a zero, não haverá operações de E/S pendentes; caso contrário, se o valor for diferente de zero, o thread terá operações de E/S pendentes.
Use a função pública GetThreadIOPendingFlag para obter essas informações.
Se ThreadQuerySetWin32StartAddress for especificado para o parâmetro ThreadInformationClass , esse buffer deverá ser grande o suficiente para conter um valor PVOID, que é o endereço inicial do thread.
[in] ThreadInformationLength
O tamanho do buffer apontado pelo parâmetro ThreadInformation , em bytes.
[out, optional] ReturnLength
Um ponteiro para uma variável na qual a função retorna o tamanho das informações solicitadas. Se a função tiver sido bem-sucedida, esse será o tamanho das informações gravadas no buffer apontado pelo parâmetro ThreadInformation , mas se o buffer for muito pequeno, esse será o tamanho mínimo do buffer necessário para receber as informações com êxito.
Retornar valor
Retorna um código de erro ou êxito NTSTATUS.
Os formulários e a significância dos códigos de erro NTSTATUS estão listados no arquivo de cabeçalho Ntstatus.h disponível no DDK e são descritos na documentação do DDK em Kernel-Mode Driver Architecture/Design Guide/Driver Programming Techniques/Logging Errors.
Comentários
A função NtQueryInformationThread é interna do sistema operacional e está sujeita a alterações de uma versão do Windows para outra. Para manter a compatibilidade do aplicativo, é melhor usar a função pública mencionada anteriormente.
Se você usar NtQueryInformationThread, acesse a função por meio da vinculação dinâmica em tempo de execução. Isso dá ao código a oportunidade de responder normalmente se a função tiver sido alterada ou removida do sistema operacional. No entanto, as alterações de assinatura podem não ser detectáveis.
Essa função não tem nenhuma biblioteca de importação associada. Você deve usar as funções LoadLibrary e GetProcAddress para vincular dinamicamente a Ntdll.dll.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | winternl.h |
Biblioteca | ntdll.lib |
DLL | ntdll.dll |