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

Confira também

ResumeThread