Condividi tramite


Funzione Wow64SuspendThread (wow64apiset.h)

Sospende il thread WOW64 specificato.

Sintassi

DWORD Wow64SuspendThread(
  HANDLE hThread
);

Parametri

hThread

Handle per il thread che deve essere sospeso. L'handle deve avere il diritto di accesso THREAD_SUSPEND_RESUME. Per altre informazioni, vedere Thread Security and Access Rights.For more information, see Thread Security and Access Rights.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è il numero di sospensioni precedente del thread; in caso contrario, è (DWORD) -1. Per ottenere informazioni sull'errore estese, usare la funzione GetLastError .

Commenti

Se la funzione ha esito positivo, l'esecuzione del thread specificato viene sospesa e il conteggio della sospensione del thread viene incrementato. La sospensione di un thread causa l'arresto dell'esecuzione del codice in modalità utente (applicazione).

Questa funzione è principalmente progettata per l'uso da parte dei debugger. Non è destinato a essere usato per la sincronizzazione dei thread. La chiamata di Wow64SuspendThread in un thread proprietario di un oggetto di sincronizzazione, ad esempio una sezione mutex o critica, può causare un deadlock se il thread chiamante tenta di ottenere un oggetto di sincronizzazione di proprietà di un thread sospeso. Per evitare questa situazione, un thread all'interno di un'applicazione che non è un debugger deve segnalare all'altro thread di sospendere se stesso. Il thread di destinazione deve essere progettato per watch per questo segnale e rispondere in modo appropriato.

Ogni thread ha un numero di sospensioni (con un valore massimo di MAXIMUM_SUSPEND_COUNT). Se il numero di sospensione è maggiore di zero, il thread viene sospeso; in caso contrario, il thread non è sospeso ed è idoneo per l'esecuzione. La chiamata a Wow64SuspendThread causa l'incremento del conteggio della sospensione del thread di destinazione. Il tentativo di aumentare il numero massimo di sospensioni causa un errore senza aumentare il conteggio.

La funzione ResumeThread decrementa il conteggio della sospensione di un thread sospeso.

Questa funzione è destinata alle applicazioni a 64 bit. Non è supportato in Windows a 32 bit; tali chiamate hanno esito negativo e impostano l'ultimo codice di errore su ERROR_INVALID_FUNCTION. Un'applicazione a 32 bit può chiamare questa funzione in un thread WOW64; il risultato è lo stesso della chiamata alla funzione SuspendThread .

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Intestazione wow64apiset.h
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

ResumeThread