Funções de sincronização
As funções a seguir são usadas na sincronização.
- Funções assíncronas
- Variável de condição e funções de bloqueio SRW
- Funções de seção críticas
- Funções de evento
- Funções de inicialização única
- Funções interligadas
- Funções mutex
- Funções de namespace privado
- Funções de semáforo
- Funções de lista vinculadas ao Singly
- Funções de barreira de sincronização
- Funções de temporizador de fila de temporizador
- Funções de espera
- Funções de temporizador de espera
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ção QueueUserAPC . |
GetOverlappedResult | Recupera os resultados de uma operação sobreposta. |
GetOverlappedResultEx | Recupera os resultados de uma operação sobreposta em um intervalo de tempo limite especificado. |
QueueUserAPC | Adiciona um objeto APC (chamada de procedimento assíncrono) no 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 de leitor/gravador fino (SRW) no modo exclusivo. |
AcquireSRWLockShared | Adquire um bloqueio de leitor/gravador fino (SRW) no modo compartilhado. |
InitializeConditionVariable | Inicializa uma variável de condição. |
InitializeSRWLock | Inicializar um bloqueio de leitor/gravador fino (SRW). |
ReleaseSRWLockExclusive | Libera um bloqueio de leitor/gravador fino (SRW) que foi adquirido no modo exclusivo. |
ReleaseSRWLockShared | Libera um bloqueio de leitor/gravador fino (SRW) que foi adquirido no modo compartilhado. |
SleepConditionVariableCS | Dorme na variável de condição especificada e libera a seção crítica especificada como uma operação atômica. |
SleepConditionVariableSRW | Dorme na variável de condição especificada e libera o bloqueio especificado como uma operação atômica. |
TryAcquireSRWLockExclusive | Tenta adquirir um bloqueio de leitor/gravador fino (SRW) no modo exclusivo. Se a chamada for bem-sucedida, o thread de chamada assumirá a propriedade do bloqueio. |
TryAcquireSRWLockShared | Tenta adquirir um bloqueio de leitor/gravador fino (SRW) no modo compartilhado. Se a chamada for bem-sucedida, o thread de chamada assumirá a propriedade do bloqueio. |
WakeAllConditionVariable | Ative todos os threads aguardando a variável de condição especificada. |
WakeConditionVariable | Ative um único thread aguardando a variável de condição especificada. |
Funções de seção críticas
Função de seção crítica | Descrição |
---|---|
Deletecriticalsection | Libera todos os recursos usados por um objeto de seção crítica sem proprietário. |
Entercriticalsection | Aguarda a propriedade do objeto de seção crítica especificado. |
Initializecriticalsection | Inicializa um objeto de seção crítico. |
InitializeCriticalSectionAndSpinCount | Inicializa um objeto de seção crítico e define a contagem de rotação para a seção crítica. |
InitializeCriticalSectionEx | Inicializa um objeto de seção crítico com uma contagem de rotação e sinalizadores opcionais. |
Leavecriticalsection | Libera a propriedade do objeto de seção crítico especificado. |
SetCriticalSectionSpinCount | Define a contagem de rotação para a seção crítica especificada. |
TryEnterCriticalSection | Tenta inserir 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 sem nome. |
CreateEventEx | Cria ou abre um objeto de evento nomeado ou sem nome 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 o redefine para o estado não atribuído depois de liberar o número apropriado de threads de espera. |
Resetevent | Define o objeto de evento especificado como o estado não atribuído. |
SetEvent | Define o objeto de evento especificado como 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 intertravada | Descrição |
---|---|
InterlockedAdd | Executa uma operação de adição atômica nos valores LONG especificados. |
InterlockedAddAcquire | Executa uma operação de adição atômica nos valores LONG especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedAddRelease | Executa uma operação de adição atômica nos valores LONG especificados. A operação é executada com semântica de ordenação de memória de versão. |
InterlockedAddNoFence | Executa uma operação de adição atômica nos valores LONG especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedAdd64 | Executa uma operação de adição atômica nos valores LONGLONG especificados. |
InterlockedAddAcquire64 | Executa uma operação de adição atômica nos valores LONGLONG especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedAddRelease64 | Executa uma operação de adição atômica nos valores LONGLONG especificados. A operação é executada com semântica de ordenação de memória de versão. |
InterlockedAddNoFence64 | Executa uma operação de adição atômica nos valores LONGLONG especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedAnd | Executa uma operação AND atômica nos valores LONG especificados. |
InterlockedAndAcquire | Executa uma operação AND atômica nos valores LONG especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedAndRelease | Executa uma operação AND atômica nos valores LONG especificados. A operação é executada com semântica de ordenação de memória de versão. |
InterlockedAndNoFence | Executa uma operação AND atômica nos valores LONG especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedAnd8 | Executa uma operação AND atômica nos valores char especificados. |
InterlockedAnd8Acquire | Executa uma operação AND atômica nos valores char especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedAnd8Release | Executa uma operação AND atômica nos valores char especificados. A operação é executada com semântica de ordenação de memória de versão. |
InterlockedAnd8NoFence | Executa uma operação AND atômica nos valores char especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedAnd16 | Executa uma operação AND atômica nos valores SHORT especificados. |
InterlockedAnd16Acquire | Executa uma operação AND atômica nos valores SHORT especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedAnd16Release | Executa uma operação AND atômica nos valores SHORT especificados. A operação é executada com semântica de ordenação de memória de versão. |
InterlockedAnd16NoFence | Executa uma operação AND atômica nos valores SHORT especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedAnd64 | Executa uma operação AND atômica nos valores LONGLONG especificados. |
InterlockedAnd64Acquire | Executa uma operação AND atômica nos valores LONGLONG especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedAnd64Release | Executa uma operação AND atômica nos valores LONGLONG especificados. A operação é executada com semântica de ordenação de memória de versão. |
InterlockedAnd64NoFence | Executa uma operação AND atômica nos valores LONGLONG especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedBitTestAndComplement | Testa o bit especificado do valor LONG especificado e o complementa. |
InterlockedBitTestAndComplement64 | Testa o bit especificado do valor LONG64 especificado e o complementa. A operação é atômica |
InterlockedBitTestAndResetAcquire | Testa o bit especificado do valor LONG especificado e o define como 0. A operação é atômica e é executada com semântica de ordenação de memória adquirida |
InterlockedBitTestAndResetRelease | Testa o bit especificado do valor LONG especificado e o define como 0. A operação é atômica e é executada usando semântica de liberação de memória |
InterlockedBitTestAndSetAcquire | Testa o bit especificado do valor LONG especificado e o define como 1. A operação é atômica e é executada com semântica de ordenação de memória adquirida |
InterlockedBitTestAndSetRelease | Testa o bit especificado do valor LONG especificado e o define como 1. A operação é atômica e é executada com semântica de ordenação de memória de liberação |
InterlockedBitTestAndReset | Testa o bit especificado do valor LONG especificado e o define como 0. |
InterlockedBitTestAndReset64 | Testa o bit especificado do valor LONG64 especificado e o define como 0. |
InterlockedBitTestAndSet | Testa o bit especificado do valor LONG especificado e o define como 1. |
InterlockedBitTestAndSet64 | Testa o bit especificado do valor LONG64 especificado e o define como 1. |
InterlockedCompare64Exchange128 | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara os valores e as trocas de 64 bits especificados com o valor de 128 bits especificado com base no resultado da comparação. |
InterlockedCompare64ExchangeAcquire128 | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara os valores e as trocas de 64 bits especificados 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 aquisição. |
InterlockedCompare64ExchangeRelease128 | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara os valores e as trocas de 64 bits especificados 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 atômica de comparação e troca nos valores especificados. A função compara dois valores de 32 bits especificados e troca com outro valor de 32 bits com base no resultado da comparação. |
InterlockedCompareExchangeAcquire | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 32 bits especificados e troca com outro valor de 32 bits com base no resultado da comparação. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedCompareExchangeRelease | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 32 bits especificados e troca com outro valor de 32 bits com base no resultado da comparação. A troca é executada com semântica de ordenação de memória de liberação. |
InterlockedCompareExchangeNoFence | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 32 bits especificados e troca com outro valor de 32 bits com base no resultado da comparação. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedCompareExchange64 | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 64 bits especificados e troca com outro valor de 64 bits com base no resultado da comparação. |
InterlockedCompareExchangeAcquire64 | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 64 bits especificados e troca com outro valor de 64 bits com base no resultado da comparação. A troca é executada com semântica de ordenação de memória de aquisição. |
InterlockedCompareExchangeRelease64 | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 64 bits especificados e troca com outro valor de 64 bits com base no resultado da comparação. A troca é executada com semântica de ordenação de memória de liberação. |
InterlockedCompareExchangeNoFence64 | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 64 bits especificados e troca com outro valor de 64 bits com base no resultado da comparação. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedCompareExchange16 | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 16 bits especificados e troca com outro valor de 16 bits com base no resultado da comparação |
InterlockedCompareExchange16Acquire | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 16 bits especificados e troca com outro valor de 16 bits com base no resultado da comparação. A operação é executada com semântica de ordenação de memória de aquisição |
InterlockedCompareExchange16Release | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 16 bits especificados e troca com outro valor de 16 bits com base no resultado da comparação. A troca é executada com semântica de ordenação de memória de liberação |
InterlockedCompareExchange16NoFence | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 16 bits especificados e troca com outro valor de 16 bits com base no resultado da comparação. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedCompareExchange128 | Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 128 bits especificados e troca com outro valor de 128 bits com base no resultado da comparação |
InterlockedCompareExchangePointer | Executa uma operação atômica de comparação e troca nos valores de ponteiro especificados. A função compara dois valores de ponteiro especificados e troca com outro valor de ponteiro com base no resultado da comparação. |
InterlockedCompareExchangePointerAcquire | Executa uma operação atômica de comparação e troca nos valores de ponteiro especificados. A função compara dois valores de ponteiro especificados e troca 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 aquisição. |
InterlockedCompareExchangePointerRelease | Executa uma operação atômica de comparação e troca nos valores de ponteiro especificados. A função compara dois valores de ponteiro especificados e troca 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 atômica de comparação e troca nos valores especificados. A função compara dois valores de ponteiro especificados e troca com outro valor de ponteiro com base no resultado da comparação. A operação é executada atomicamente, mas sem usar barreiras de memória |
Interlockeddecrement | Diminui (diminui em um) o valor da variável de 32 bits especificada como uma operação atômica. |
InterlockedDecrementAcquire | Diminui (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 aquisição. |
InterlockedDecrementRelease | Diminui (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 | Diminui (diminui em um) o valor da variável de 32 bits especificada como uma operação atômica. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedDecrement16 | Diminui (diminui em um) o valor da variável de 16 bits especificada como uma operação atômica |
InterlockedDecrement16Acquire | Diminui (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 aquisição |
InterlockedDecrement16Release | Diminui (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 | Diminui (diminui em um) o valor da variável de 16 bits especificada como uma operação atômica. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedDecrement64 | Diminui (diminui em um) o valor da variável de 64 bits especificada como uma operação atômica. |
InterlockedDecrementAcquire64 | Diminui (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 aquisição. |
InterlockedDecrementRelease64 | Diminui (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 | Diminui (diminui em um) o valor da variável de 64 bits especificada como uma operação atômica. A operação é executada 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. |
InterlockedExchangeAcquire | Define uma variável de 32 bits para o valor especificado como uma operação atômica. A operação é executada com 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 é executada 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. |
InterlockedExchange16Acquire | Define uma variável de 16 bits para o valor especificado como uma operação atômica. A operação é executada usando 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 é executada 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 é executada com 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 é executada atomicamente, mas sem usar barreiras de memória |
InterlockedExchangePointer | Troca atomicamente um par de valores de ponteiro. |
InterlockedExchangePointerAcquire | Troca atomicamente um par de valores de ponteiro. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedExchangePointerNoFence | Troca atomicamente um par de endereços. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedExchangeSubtract | Executa uma subtração atômica de dois valores. |
Interlockedexchangeadd | 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 é executada com 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 é executada 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 é executada com 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 é executada 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 é executada usando 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 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 é executada 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 |
InterlockedIncrement16Acquire | Incrementa (aumenta em um) o valor da variável de 16 bits especificada como uma operação atômica. A operação é executada usando 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 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 é executada 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 é executada usando 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 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 é executada atomicamente, mas sem usar barreiras de memória |
InterlockedOr | Executa uma operação OR atômica nos valores LONG especificados. |
InterlockedOrAcquire | Executa uma operação OR atômica nos valores LONG especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedOrRelease | Executa uma operação OR atômica nos valores LONG especificados. A operação é executada com semântica de ordenação de memória de liberação. |
InterlockedOrNoFence | Executa uma operação OR atômica nos valores LONG especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedOr8 | Executa uma operação OR atômica nos valores char especificados. |
InterlockedOr8Acquire | Executa uma operação OR atômica nos valores char especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedOr8Release | Executa uma operação OR atômica nos valores char 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 char especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedOr16 | Executa uma operação OR atômica nos valores SHORT especificados. |
InterlockedOr16Acquire | Executa uma operação OR atômica nos valores SHORT especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedOr16Release | Executa uma operação OR atômica nos valores SHORT especificados. A operação é executada com semântica de ordenação de memória de liberação. |
InterlockedOr16NoFence | Executa uma operação OR atômica nos valores SHORT especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedOr64 | Executa uma operação OR atômica nos valores LONGLONG especificados. |
InterlockedOr64Acquire | Executa uma operação OR atômica nos valores LONGLONG especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedOr64Release | Executa uma operação OR atômica nos valores LONGLONG especificados. A operação é executada com semântica de ordenação de memória de liberação. |
InterlockedOr64NoFence | Executa uma operação OR atômica nos valores LONGLONG especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedXor | Executa uma operação XOR atômica nos valores LONG especificados. |
InterlockedXorAcquire | Executa uma operação XOR atômica nos valores LONG especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedXorRelease | Executa uma operação XOR atômica nos valores LONG especificados. 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 LONG especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedXor8 | Executa uma operação XOR atômica nos valores char especificados. |
InterlockedXor8Acquire | Executa uma operação XOR atômica nos valores char especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedXor8Release | Executa uma operação XOR atômica nos valores char 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 char especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedXor16 | Executa uma operação XOR atômica nos valores SHORT especificados. |
InterlockedXor16Acquire | Executa uma operação XOR atômica nos valores SHORT especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedXor16Release | Executa uma operação XOR atômica nos valores SHORT especificados. 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 SHORT especificados. A operação é executada atomicamente, mas sem usar barreiras de memória |
InterlockedXor64 | Executa uma operação XOR atômica nos valores LONGLONG especificados. |
InterlockedXor64Acquire | Executa uma operação XOR atômica nos valores LONGLONG especificados. A operação é executada com semântica de ordenação de memória de aquisição. |
InterlockedXor64Release | Executa uma operação XOR atômica nos valores LONGLONG especificados. 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 LONGLONG especificados. A operação é executada 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 sem nome 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 privadas
Função de namespace privado | Descrição |
---|---|
AddSIDToBoundaryDescriptor | Adiciona um novo SID (identificador de segurança) ao descritor de limite especificado. |
AddIntegrityLabelToBoundaryDescriptor | Adiciona um novo SID (identificador de segurança) necessário 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 de semáforo
Função semaphore | Descrição |
---|---|
Createsemaphore | Cria ou abre um objeto de semáforo nomeado ou sem nome. |
CreateSemaphoreEx | Cria ou abre um objeto de semáforo nomeado ou sem nome e retorna um identificador para o objeto . |
OpenSemaphore | Abre um objeto de semáforo nomeado existente. |
Releasesemaphore | Aumenta a contagem do objeto de semáforo especificado em um valor especificado. |
Funções de lista vinculadas ao Singly
Função de lista vinculada ao Singly | Descrição |
---|---|
InitializeSListHead | Inicializa o cabeçalho de uma lista vinculada. |
InterlockedFlushSList | Libera toda a lista de itens em uma lista vinculada. |
InterlockedPopEntrySList | Remove um item da frente de uma lista vinculada. |
InterlockedPushEntrySList | Insere um item na frente de uma lista vinculada. |
InterlockedPushListSList | Insere uma lista vinculada na frente de outra lista vinculada. |
InterlockedPushListSListEx | Insere uma lista vinculada na frente de outra lista vinculada. 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 vinculada de forma singly especificada. |
RtlFirstEntrySList | Recupera a primeira entrada em uma lista vinculada. |
RtlInitializeSListHead | Inicializa o cabeçalho de uma lista vinculada. Em vez disso, os aplicativos devem chamar InitializeSListHead . |
RtlInterlockedFlushSList | Libera toda a lista de itens em uma lista vinculada. Em vez disso, os aplicativos devem chamar InterlockedFlushSList . |
RtlInterlockedPopEntrySList | Remove um item da frente de uma lista vinculada. Em vez disso, os aplicativos devem chamar InterlockedPopEntrySList . |
RtlInterlockedPushEntrySList | Insere um item na frente de uma lista vinculada. Em vez disso, os aplicativos devem chamar InterlockedPushEntrySList . |
RtlQueryDepthSList | Recupera o número de entradas na lista vinculada de forma singly 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 se encontrarem na barreira. |
InitializeSynchronizationBarrier | Inicializa uma nova barreira de sincronização. |
Funções de temporizador de fila de temporizador
Função timer-queue timer | Descrição |
---|---|
ChangeTimerQueueTimer | Atualizações um temporizador de fila de temporizador. |
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 de temporizador. |
Funções de espera
Função Wait | Descrição |
---|---|
Msgwaitformultipleobjects | Aguarda até que um ou todos os objetos especificados estejam no estado sinalizado ou o intervalo de tempo limite se especifique. 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 APC (chamada de procedimento assíncrono) seja enfileirada para o thread ou o intervalo de tempo limite decorrido. A matriz de objetos pode incluir objetos de evento de entrada. |
Registerwaitforsingleobject | Direciona um thread de espera no pool de threads para aguardar o objeto . |
SignalObjectAndWait | Sinaliza um objeto e aguarda 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 se especifique. |
WaitForMultipleObjectsEx | Aguarda até que um ou todos os objetos especificados estejam no estado sinalizado, uma rotina de conclusão de E/S ou APC (chamada de procedimento assíncrono) seja enfileirada para o thread ou o intervalo de tempo limite decorrido. |
WaitForSingleObject | Aguarda até que o objeto especificado esteja no estado sinalizado ou o intervalo de tempo limite se especifique. |
WaitForSingleObjectEx | Aguarda até que o objeto especificado esteja no estado sinalizado, uma rotina de conclusão de E/S ou APC (chamada de procedimento assíncrono) seja enfileirada para o thread ou o intervalo de tempo limite decorre. |
WaitOnAddress | Aguarda o valor no endereço especificado ser 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. |
WakeByAddressAll | 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 waitable-timer
Função waitable-timer | Descrição |
---|---|
CancelWaitableTimer | Define o temporizador de espera especificado como o estado inativo. |
CreateWaitableTimer | Cria ou abre um objeto de temporizador de espera. |
CreateWaitableTimerEx | Cria ou abre um objeto de temporizador que pode ser esperado e retorna um identificador para o objeto . |
OpenWaitableTimer | Abre um objeto de temporizador chamado 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ção SetWaitableTimer . |