Partilhar via


Funções de sincronização

As seguintes funções são usadas na sincronização.

Funções assíncronas

Função assíncrona Descrição
APCProc Uma função de retorno de chamada definida pelo aplicativo usada com a funçãoQueueUserAPC.
GetOverlappedResult Recupera os resultados de uma operação sobreposta.
GetOverlappedResultEx Recupera os resultados de uma operação sobreposta dentro de um intervalo de tempo limite especificado.
QueueUserAPC Adiciona um objeto de chamada de procedimento assíncrono (APC) de modo de usuário à fila APC do thread especificado.

 

Variável de condição e funções de bloqueio SRW

Variável de condição e função de bloqueio SRW Descrição
AcquireSRWLockExclusive Adquire um bloqueio fino de leitor/gravador (SRW) no modo exclusivo.
AcquireSRWLockShared Adquire um bloqueio fino de leitor/gravador (SRW) no modo compartilhado.
InitializeConditionVariable Inicializa uma variável de condição.
InitializeSRWLock Inicialize um bloqueio fino de leitor/gravador (SRW).
ReleaseSRWLockExclusive Libera um bloqueio fino de leitor/gravador (SRW) que foi adquirido no modo exclusivo.
ReleaseSRWLockShared Libera um bloqueio fino de leitor/gravador (SRW) que foi adquirido no modo compartilhado.
SleepConditionVariableCS Suspende na variável de condição especificada e libera a seção crítica especificada como uma operação atômica.
SleepConditionVariableSRW Suspende na variável de condição especificada e libera o bloqueio especificado como uma operação atômica.
TryAcquireSRWLockExclusive Tenta adquirir um bloqueio fino de leitor/gravador (SRW) no modo exclusivo. Se a chamada for bem-sucedida, o thread de chamada assume a propriedade do bloqueio.
TryAcquireSRWLockShared Tenta adquirir um bloqueio fino de leitor/gravador (SRW) no modo compartilhado. Se a chamada for bem-sucedida, o thread de chamada assume a propriedade do bloqueio.
WakeAllConditionVariable Acorde todos os threads aguardando na variável de condição especificada.
WakeConditionVariable Despertar um único thread aguardando na variável de condição especificada.

 

Funções críticas da secção

Função de secção crítica Descrição
DeleteCriticalSection Libera todos os recursos usados por um objeto de seção crítica não proprietário.
EnterCriticalSection Aguarda a propriedade do objeto de seção crítica especificado.
InitializeCriticalSection Inicializa um objeto de seção crítica.
InitializeCriticalSectionAndSpinCount Inicializa um objeto de seção crítica e define a contagem de rotação para a seção crítica.
InitializeCriticalSectionEx Inicializa um objeto de seção crítica com uma contagem de rotação e sinalizadores opcionais.
LeaveCriticalSection Libera a propriedade do objeto de seção crítica especificado.
SetCriticalSectionSpinCount Define a contagem de rotação para a seção crítica especificada.
TryEnterCriticalSection Tenta entrar em uma seção crítica sem bloquear.

 

Funções de evento

Função de evento Descrição
CreateEvent Cria ou abre um objeto de evento nomeado ou não nomeado.
CreateEventEx Cria ou abre um objeto de evento nomeado ou não nomeado e retorna um identificador para o objeto.
OpenEvent Abre um objeto de evento nomeado existente.
PulseEvent Define o objeto de evento especificado para o estado sinalizado e, em seguida, redefine para o estado não sinalizado depois de liberar o número apropriado de threads em espera.
ResetEvent Define o objeto de evento especificado para o estado não sinalizado.
SetEvent Define o objeto de evento especificado para o estado sinalizado.

 

Funções de inicialização única

Função de inicialização única Descrição
InitOnceBeginInitialize Inicia a inicialização única.
InitOnceComplete Conclui a inicialização única.
InitOnceExecuteOnce Executa a função especificada com êxito uma vez. Nenhum outro thread que especifique a mesma estrutura de inicialização única pode executar essa função enquanto ela está sendo executada pelo thread atual.
InitOnceInitialize Inicializa uma estrutura de inicialização única.

 

Funções interligadas

Função interligada Descrição
InterlockedAdicionar Executa uma operação de adição atômica nos valores especificados LONG.
InterlockedAddAcquire Executa uma operação de adição atômica nos valores especificados LONG. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedAddRelease Executa uma operação de adição atômica nos valores especificados LONG. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedAddNoFence Executa uma operação de adição atômica nos valores especificados LONG. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedAdd64 Executa uma operação de adição atômica nos valores de especificados LONGLONG.
InterlockedAddAcquire64 Executa uma operação de adição atômica nos valores de especificados LONGLONG. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedAddRelease64 Executa uma operação de adição atômica nos valores de especificados LONGLONG. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedAddNoFence64 Executa uma operação de adição atômica nos valores de especificados LONGLONG. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedE Executa uma operação atômica AND nos valores especificados LONG.
InterlockedAndAcquire Executa uma operação atômica AND nos valores especificados LONG. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedAndRelease Executa uma operação atômica AND nos valores especificados LONG. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedAndNoFence Executa uma operação atômica AND nos valores especificados LONG. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedAnd8 Executa uma operação AND atômica nos valores de de caracteres de especificados.
InterlockedAnd8Adquirir Executa uma operação AND atômica nos valores de de caracteres de especificados. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedAnd8Release Executa uma operação AND atômica nos valores de de caracteres de especificados. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedAnd8NoFence Executa uma operação AND atômica nos valores de de caracteres de especificados. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedAnd16 Executa uma operação atômica AND nos valores especificados SHORT.
InterlockedAnd16Adquira Executa uma operação atômica AND nos valores especificados SHORT. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedAnd16Release Executa uma operação atômica AND nos valores especificados SHORT. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedAnd16NoFence Executa uma operação atômica AND nos valores especificados SHORT. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedAnd64 Executa uma operação atômica AND nos valores de especificados LONGLONG.
InterlockedAnd64Adquirir Executa uma operação atômica AND nos valores de especificados LONGLONG. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedAnd64Release Executa uma operação atômica AND nos valores de especificados LONGLONG. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedAnd64NoFence Executa uma operação atômica AND nos valores de especificados LONGLONG. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedBitTestAndComplement Testa o bit especificado do valor de especificado LONG e complementa-o.
InterlockedBitTestAndComplement64 Testa o bit especificado do valor de especificado LONG64 e complementa-o. A operação é atómica
InterlockedBitTestAndResetAcquire Testa o bit especificado do valor de LONG especificado e o define como 0. A operação é atômica e é realizada com semântica de ordenação de memória
InterlockedBitTestAndResetRelease Testa o bit especificado do valor de LONG especificado e o define como 0. A operação é atômica e é realizada usando semântica de liberação de memória
InterlockedBitTestAndSetAcquire Testa o bit especificado do valor de LONG especificado e o define como 1. A operação é atômica e é realizada com semântica de ordenação de memória
InterlockedBitTestAndSetRelease Testa o bit especificado do valor de LONG especificado e o define como 1. A operação é atômica e é realizada com semântica de ordenação de memória de liberação
InterlockedBitTestAndReset Testa o bit especificado do valor de LONG especificado e o define como 0.
InterlockedBitTestAndReset64 Testa o bit especificado do valor de LONG64 especificado e o define como 0.
InterlockedBitTestAndSet Testa o bit especificado do valor de LONG especificado e o define como 1.
InterlockedBitTestAndSet64 Testa o bit especificado do valor de LONG64 especificado e o define como 1.
InterlockedCompare64Exchange128 Executa uma operação de comparação e troca atômica nos valores especificados. A função compara os valores de 64 bits especificados e trocas com o valor de 128 bits especificado com base no resultado da comparação.
InterlockedCompare64ExchangeAcquire128 Executa uma operação de comparação e troca atômica nos valores especificados. A função compara os valores de 64 bits especificados e trocas com o valor de 128 bits especificado com base no resultado da comparação. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedCompare64ExchangeRelease128 Executa uma operação de comparação e troca atômica nos valores especificados. A função compara os valores de 64 bits especificados e trocas com o valor de 128 bits especificado com base no resultado da comparação. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedCompareExchange Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 32 bits especificados e trocas com outro valor de 32 bits com base no resultado da comparação.
InterlockedCompareExchangeAdquirir Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 32 bits especificados e trocas com outro valor de 32 bits com base no resultado da comparação. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedCompareExchangeRelease Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 32 bits especificados e trocas com outro valor de 32 bits com base no resultado da comparação. A troca é realizada com semântica de ordenação de memória de liberação.
InterlockedCompareExchangeNoFence Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 32 bits especificados e trocas com outro valor de 32 bits com base no resultado da comparação. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedCompareExchange64 Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 64 bits especificados e trocas com outro valor de 64 bits com base no resultado da comparação.
InterlockedCompareExchangeAcquire64 Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 64 bits especificados e trocas com outro valor de 64 bits com base no resultado da comparação. A troca é realizada com semântica de ordenação de memória adquirida.
InterlockedCompareExchangeRelease64 Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 64 bits especificados e trocas com outro valor de 64 bits com base no resultado da comparação. A troca é realizada com semântica de ordenação de memória de liberação.
InterlockedCompareExchangeNoFence64 Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 64 bits especificados e trocas com outro valor de 64 bits com base no resultado da comparação. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedCompareExchange16 Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 16 bits especificados e trocas com outro valor de 16 bits com base no resultado da comparação
InterlockedCompareExchange16Adquira Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 16 bits especificados e trocas com outro valor de 16 bits com base no resultado da comparação. A operação é realizada com a semântica de ordenação de memória adquirida
InterlockedCompareExchange16Release Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 16 bits especificados e trocas com outro valor de 16 bits com base no resultado da comparação. A troca é realizada com semântica de ordenação de memória de liberação
InterlockedCompareExchange16NoFence Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 16 bits especificados e trocas com outro valor de 16 bits com base no resultado da comparação. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedCompareExchange128 Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de 128 bits especificados e trocas com outro valor de 128 bits com base no resultado da comparação
InterlockedCompareExchangePointer Executa uma operação de comparação e troca atômica nos valores de ponteiro especificados. A função compara dois valores de ponteiro especificados e trocas com outro valor de ponteiro com base no resultado da comparação.
InterlockedCompareExchangePointerAcquire Executa uma operação de comparação e troca atômica nos valores de ponteiro especificados. A função compara dois valores de ponteiro especificados e trocas com outro valor de ponteiro com base no resultado da comparação. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedCompareExchangePointerRelease Executa uma operação de comparação e troca atômica nos valores de ponteiro especificados. A função compara dois valores de ponteiro especificados e trocas com outro valor de ponteiro com base no resultado da comparação. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedCompareExchangePointerNoFence Executa uma operação de comparação e troca atômica nos valores especificados. A função compara dois valores de ponteiro especificados e trocas com outro valor de ponteiro com base no resultado da comparação. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedDecrement Decrements (diminui em um) o valor da variável de 32 bits especificada como uma operação atômica.
InterlockedDecrementAdquirir Decrements (diminui em um) o valor da variável de 32 bits especificada como uma operação atômica. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedDecrementRelease Decrements (diminui em um) o valor da variável de 32 bits especificada como uma operação atômica. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedDecrementNoFence Decrements (diminui em um) o valor da variável de 32 bits especificada como uma operação atômica. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedDecrement16 Decrements (diminui em um) o valor da variável de 16 bits especificada como uma operação atômica
InterlockedDecrement16Adquira Decrements (diminui em um) o valor da variável de 16 bits especificada como uma operação atômica. A operação é realizada com a semântica de ordenação de memória adquirida
InterlockedDecrement16Release Decrements (diminui em um) o valor da variável de 16 bits especificada como uma operação atômica. A operação é executada com semântica de ordenação de memória de liberação
InterlockedDecrement16NoFence Decrements (diminui em um) o valor da variável de 16 bits especificada como uma operação atômica. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedDecrement64 Decrements (diminui em um) o valor da variável de 64 bits especificada como uma operação atômica.
InterlockedDecrementAcquire64 Decrements (diminui em um) o valor da variável de 64 bits especificada como uma operação atômica. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedDecrementRelease64 Decrements (diminui em um) o valor da variável de 64 bits especificada como uma operação atômica. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedDecrementNoFence64 Decrements (diminui em um) o valor da variável de 64 bits especificada como uma operação atômica. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedExchange Define uma variável de 32 bits para o valor especificado como uma operação atômica.
InterlockedExchangeAdquirir Define uma variável de 32 bits para o valor especificado como uma operação atômica. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedExchangeNoFence Define uma variável de 64 bits para o valor especificado como uma operação atômica. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedExchange8 Define uma variável de 8 bits para o valor especificado como uma operação atômica
InterlockedExchange16 Define uma variável de 16 bits para o valor especificado como uma operação atômica.
InterlockedExchange16Adquira Define uma variável de 16 bits para o valor especificado como uma operação atômica. A operação é realizada usando a semântica de ordenação de memória de aquisição
InterlockedExchange16NoFence Define uma variável de 16 bits para o valor especificado como uma operação atômica. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedExchange64 Define uma variável de 64 bits para o valor especificado como uma operação atômica.
InterlockedExchangeAcquire64 Define uma variável de 32 bits para o valor especificado como uma operação atômica. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedExchangeNoFence64 Define uma variável de 64 bits para o valor especificado como uma operação atômica. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedExchangePointer Atomicamente troca um par de valores de ponteiro.
InterlockedExchangePointerAcquire Atomicamente troca um par de valores de ponteiro. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedExchangePointerNoFence Atomicamente troca um par de endereços. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedExchangeSubtract Executa uma subtração atômica de dois valores.
InterlockedExchangeAdicionar Executa uma adição atômica de dois valores de 32 bits.
InterlockedExchangeAddAcquire Executa uma adição atômica de dois valores de 32 bits. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedExchangeAddRelease Executa uma adição atômica de dois valores de 32 bits. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedExchangeAddNoFence Executa uma adição atômica de dois valores de 32 bits. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedExchangeAdd64 Executa uma adição atômica de dois valores de 64 bits.
InterlockedExchangeAddAcquire64 Executa uma adição atômica de dois valores de 64 bits. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedExchangeAddRelease64 Executa uma adição atômica de dois valores de 64 bits. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedExchangeAddNoFence64 Executa uma adição atômica de dois valores de 64 bits. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedIncrement Incrementa (aumenta em um) o valor da variável de 32 bits especificada como uma operação atômica.
InterlockedIncrementAcquire Incrementa (aumenta em um) o valor da variável de 32 bits especificada como uma operação atômica. A operação é realizada usando a semântica de ordenação de memória de aquisição.
InterlockedIncrementRelease Incrementa (aumenta em um) o valor da variável de 32 bits especificada como uma operação atômica. A operação é executada usando a semântica de ordenação de memória de liberação.
InterlockedIncrementNoFence Incrementa (aumenta em um) o valor da variável de 32 bits especificada como uma operação atômica. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedIncrement16 Incrementa (aumenta em um) o valor da variável de 16 bits especificada como uma operação atômica
InterlockedIncrement16Adquirir Incrementa (aumenta em um) o valor da variável de 16 bits especificada como uma operação atômica. A operação é realizada usando a semântica de ordenação de memória de aquisição
InterlockedIncrement16Release Incrementa (aumenta em um) o valor da variável de 16 bits especificada como uma operação atômica. A operação é executada usando a semântica de ordenação de memória de liberação
InterlockedIncrement16NoFence Incrementa (aumenta em um) o valor da variável de 16 bits especificada como uma operação atômica. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedIncrement64 Incrementa (aumenta em um) o valor da variável de 64 bits especificada como uma operação atômica.
InterlockedIncrementAcquire64 Incrementa (aumenta em um) o valor da variável de 64 bits especificada como uma operação atômica. A operação é realizada usando a semântica de ordenação de memória de aquisição.
InterlockedIncrementRelease64 Incrementa (aumenta em um) o valor da variável de 64 bits especificada como uma operação atômica. A operação é executada usando a semântica de ordenação de memória de liberação.
InterlockedIncrementNoFence64 Incrementa (aumenta em um) o valor da variável de 64 bits especificada como uma operação atômica. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedOr Executa uma operação atômica OR nos valores especificados LONG.
InterlockedOrAcquire Executa uma operação atômica OR nos valores especificados LONG. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedOrRelease Executa uma operação atômica OR nos valores especificados LONG. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedOrNoFence Executa uma operação atômica OR nos valores especificados LONG. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedOr8 Executa uma operação OR atômica nos valores de de caracteres de especificados.
InterlockedOr8Adquirir Executa uma operação OR atômica nos valores de de caracteres de especificados. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedOr8Release Executa uma operação OR atômica nos valores de de caracteres de especificados. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedOr8NoFence Executa uma operação OR atômica nos valores de de caracteres de especificados. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedOr16 Executa uma operação atômica OR nos valores especificados SHORT.
InterlockedOr16Adquira Executa uma operação atômica OR nos valores especificados SHORT. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedOr16Release Executa uma operação atômica OR nos valores especificados SHORT. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedOr16NoFence Executa uma operação atômica OR nos valores especificados SHORT. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedOr64 Executa uma operação atômica OR nos valores de especificados LONGLONG.
InterlockedOr64Adquira Executa uma operação atômica OR nos valores de especificados LONGLONG. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedOr64Release Executa uma operação atômica OR nos valores de especificados LONGLONG. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedOr64NoFence Executa uma operação atômica OR nos valores de especificados LONGLONG. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedXor Executa uma operação XOR atômica nos valores especificados LONG.
InterlockedXorAcquire Executa uma operação XOR atômica nos valores especificados LONG. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedXorRelease Executa uma operação XOR atômica nos valores especificados LONG. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedXorNoFence Executa uma operação XOR atômica nos valores especificados LONG. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedXor8 Executa uma operação XOR atômica nos valores de de caracteres de especificados.
InterlockedXor8Adquirir Executa uma operação XOR atômica nos valores de de caracteres de especificados. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedXor8Release Executa uma operação XOR atômica nos valores de de caracteres de especificados. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedXor8NoFence Executa uma operação XOR atômica nos valores de de caracteres de especificados. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedXor16 Executa uma operação XOR atômica nos valores especificados SHORT.
InterlockedXor16Adquira Executa uma operação XOR atômica nos valores especificados SHORT. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedXor16Release Executa uma operação XOR atômica nos valores especificados SHORT. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedXor16NoFence Executa uma operação XOR atômica nos valores especificados SHORT. A operação é realizada atomicamente, mas sem usar barreiras de memória
InterlockedXor64 Executa uma operação XOR atômica nos valores de especificados LONGLONG.
InterlockedXor64Adquira Executa uma operação XOR atômica nos valores de especificados LONGLONG. A operação é realizada com a semântica de ordenação de memória de aquisição.
InterlockedXor64Release Executa uma operação XOR atômica nos valores de especificados LONGLONG. A operação é executada com semântica de ordenação de memória de liberação.
InterlockedXor64NoFence Executa uma operação XOR atômica nos valores de especificados LONGLONG. A operação é realizada atomicamente, mas sem usar barreiras de memória

 

Funções Mutex

Função Mutex Descrição
CreateMutex Cria ou abre um objeto mutex nomeado ou sem nome.
CreateMutexEx Cria ou abre um objeto mutex nomeado ou não nomeado e retorna um identificador para o objeto.
OpenMutex Abre um objeto mutex nomeado existente.
ReleaseMutex Libera a propriedade do objeto mutex especificado.

 

Funções de namespace privado

Função de namespace privado Descrição
AddSIDToBoundaryDescriptor Adiciona um novo identificador de segurança (SID) ao descritor de limite especificado.
AddIntegrityLabelToBoundaryDescriptor Adiciona um novo identificador de segurança necessário (SID) ao descritor de limite especificado.
ClosePrivateNamespace Fecha um identificador de namespace aberto.
CreateBoundaryDescriptor Cria um descritor de limite.
CreatePrivateNamespace Cria um namespace privado.
DeleteBoundaryDescriptor Exclui o descritor de limite especificado.
OpenPrivateNamespace Abre um namespace privado.

 

Funções do semáforo

Função semáforo Descrição
CreateSemaphore Cria ou abre um objeto semáforo nomeado ou sem nome.
CreateSemaphoreEx Cria ou abre um objeto semáforo nomeado ou não nomeado e retorna um identificador para o objeto.
OpenSemaphore Abre um objeto semáforo nomeado existente.
ReleaseSemaphore Aumenta a contagem do objeto semáforo especificado em uma quantidade especificada.

 

Funções de lista vinculadas individualmente

Função de lista vinculada isoladamente Descrição
InitializeSListHead Inicializa o cabeçalho de uma lista vinculada individualmente.
InterlockedFlushSList Libera toda a lista de itens em uma lista vinculada individualmente.
InterlockedPopEntrySList Remove um item da frente de uma lista vinculada individualmente.
InterlockedPushEntrySList Insere um item na frente de uma lista vinculada individualmente.
InterlockedPushListSList Insere uma lista vinculada individualmente na frente de outra lista vinculada individualmente.
InterlockedPushListSListEx Insere uma lista vinculada individualmente na frente de outra lista vinculada individualmente. O acesso às listas é sincronizado em um sistema multiprocessador. Esta versão do método não usa a convenção de chamada __fastcall
QueryDepthSList Recupera o número de entradas na lista de links individuais especificada.
RtlFirstEntrySList Recupera a primeira entrada em uma lista vinculada individualmente.
RtlInitializeSListHead Inicializa o cabeçalho de uma lista vinculada individualmente. Em vez disso, os aplicativos devem chamar InitializeSListHead.
RtlInterlockedFlushSList Libera toda a lista de itens em uma lista vinculada individualmente. Em vez disso, os aplicativos devem chamar InterlockedFlushSList.
RtlInterlockedPopEntrySList Remove um item da frente de uma lista vinculada individualmente. Em vez disso, os aplicativos devem chamar InterlockedPopEntrySList.
RtlInterlockedPushEntrySList Insere um item na frente de uma lista vinculada individualmente. Em vez disso, os aplicativos devem chamar InterlockedPushEntrySList.
RtlQueryDepthSList Recupera o número de entradas na lista de links individuais especificada. Em vez disso, os aplicativos devem chamar QueryDepthSList.

 

Funções de barreira de sincronização

Função de barreira de sincronização Descrição
DeleteSynchronizationBarrier Exclui uma barreira de sincronização.
EnterSynchronizationBarrier Entra em uma barreira de sincronização e aguarda o número apropriado de threads para se encontrar na barreira.
InitializeSynchronizationBarrier Inicializa uma nova barreira de sincronização.

 

Funções de temporizador de fila de temporizador

Função de temporizador de fila de temporizador Descrição
ChangeTimerQueueTimer Atualiza um temporizador de fila.
CreateTimerQueue Cria uma fila para temporizadores.
CreateTimerQueueTimer Cria um temporizador de fila de temporizador.
DeleteTimerQueue Exclui uma fila de temporizador.
DeleteTimerQueueEx Exclui uma fila de temporizador.
DeleteTimerQueueTimer Cancela um temporizador de fila.

 

Funções de espera

Função de espera Descrição
MsgWaitForMultipleObjects Aguarda até que um ou todos os objetos especificados estejam no estado sinalizado ou o intervalo de tempo limite decorria. Os objetos podem incluir objetos de evento de entrada.
MsgWaitForMultipleObjectsEx Aguarda até que um ou todos os objetos especificados estejam no estado sinalizado, uma rotina de conclusão de E/S ou chamada de procedimento assíncrona (APC) seja enfileirada para o thread ou o intervalo de tempo limite decorria. A matriz de objetos pode incluir objetos de evento de entrada.
RegisterWaitForSingleObject Direciona um thread de espera no pool de threads para aguardar no objeto.
SignalObjectAndWait Sinaliza um objeto e aguarda em outro objeto como uma única operação.
UnregisterWait Cancela uma operação de espera registrada.
UnregisterWaitEx Cancela uma operação de espera registrada.
WaitForMultipleObjects Aguarda até que um ou todos os objetos especificados estejam no estado sinalizado ou o intervalo de tempo limite decorria.
WaitForMultipleObjectsEx Aguarda até que um ou todos os objetos especificados estejam no estado sinalizado, uma rotina de conclusão de E/S ou chamada de procedimento assíncrona (APC) seja enfileirada para o thread ou o intervalo de tempo limite decorria.
WaitForSingleObject Aguarda até que o objeto especificado esteja no estado sinalizado ou o intervalo de tempo limite decorra.
WaitForSingleObjectEx Aguarda até que o objeto especificado esteja no estado sinalizado, uma rotina de conclusão de E/S ou chamada de procedimento assíncrona (APC) seja enfileirada para o thread ou o intervalo de tempo limite decorra.
WaitOnAddress Aguarda que o valor no endereço especificado seja alterado.
WaitOrTimerCallback Uma função definida pelo aplicativo que serve como o endereço inicial para um retorno de chamada de temporizador ou um retorno de chamada de espera registrado.
WakeByAddressTodos os Ativa todos os threads aguardando a alteração do valor de um endereço.
WakeByAddressSingle Ativa um thread aguardando a alteração do valor de um endereço.

 

Funções de temporizador de espera

Função de temporizador de espera Descrição
CancelWaitableTimer Define o temporizador de espera especificado para o estado inativo.
CreateWaitableTimer Cria ou abre um objeto de temporizador de espera.
CreateWaitableTimerEx Cria ou abre um objeto de temporizador de espera e retorna um identificador para o objeto.
OpenWaitableTimer Abre um objeto de temporizador de espera nomeado existente.
SetWaitableTimer Ativa o temporizador de espera especificado.
SetWaitableTimerEx Ativa o temporizador de espera especificado e fornece informações de contexto para o temporizador. .
TimerAPCProc Rotina de conclusão do temporizador definida pelo aplicativo usada com a funçãoSetWaitableTimer.