Função Wow64SuspendThread (wow64apiset.h)
Suspende o thread WOW64 especificado.
Sintaxe
DWORD Wow64SuspendThread(
HANDLE hThread
);
Parâmetros
hThread
Um identificador para o thread que deve ser suspenso. O identificador deve ter o direito de acesso THREAD_SUSPEND_RESUME. Para obter mais informações, consulte Segurança de thread e direitos de acesso.
Retornar valor
Se a função for bem-sucedida, o valor retornado será a contagem de suspensão anterior do thread; caso contrário, será (DWORD) -1. Para obter informações de erro estendidas, use a função GetLastError .
Comentários
Se a função for bem-sucedida, a execução do thread especificado será suspensa e a contagem de suspensão do thread será incrementada. Suspender um thread faz com que o thread pare de executar o código do modo de usuário (aplicativo).
Essa função foi projetada principalmente para uso por depuradores. Ele não se destina a ser usado para sincronização de thread. Chamar Wow64SuspendThread em um thread que possui um objeto de sincronização, como um mutex ou seção crítica, pode levar a um deadlock se o thread de chamada tentar obter um objeto de sincronização pertencente a um thread suspenso. Para evitar essa situação, um thread dentro de um aplicativo que não é um depurador deve sinalizar o outro thread para se suspender. O thread de destino deve ser projetado para watch para esse sinal e responder adequadamente.
Cada thread tem uma contagem de suspensão (com um valor máximo de MAXIMUM_SUSPEND_COUNT). Se a contagem de suspensão for maior que zero, o thread será suspenso; caso contrário, o thread não será suspenso e será qualificado para execução. Chamar Wow64SuspendThread faz com que a contagem de suspensão do thread de destino seja incrementada. Tentar incrementar além da contagem máxima de suspensão causa um erro sem incrementar a contagem.
A função ResumeThread diminui a contagem de suspensão de um thread suspenso.
Essa função destina-se a aplicativos de 64 bits. Não há suporte para ele no Windows de 32 bits; essas chamadas falham e definem o último código de erro como ERROR_INVALID_FUNCTION. Um aplicativo de 32 bits pode chamar essa função em um thread WOW64; o resultado é o mesmo que chamar a função SuspendThread .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Cabeçalho | wow64apiset.h |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |