Windows Win32Sincronizaçãokernel32.dll
InitOnceExecuteOnce
Garante que uma função de inicialização execute exatamente uma vez, de forma thread-safe, mesmo sob chamadas concorrentes.
Descrição
Análogo funcional a `pthread_once(3)` do Linux.
Header:
synchapi.hDLL: kernel32.dllAssinatura
BOOL InitOnceExecuteOnce(
PINIT_ONCE InitOnce,
PINIT_ONCE_FN InitFn,
PVOID Parameter,
LPVOID * Context
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| InitOnce | PINIT_ONCE | Estrutura de controle de inicialização única. |
| InitFn | PINIT_ONCE_FN | Função a executar uma única vez. |
| Parameter | PVOID | Argumento passado à função de inicialização. |
| Context | LPVOID * | Recebe um contexto de saída opcional da inicialização. |
Valor de retorno
Diferente de zero em sucesso; 0 em erro (consulte GetLastError).
Códigos de erro (GetLastError)
- ERROR_INVALID_PARAMETER(87)
- Parâmetro incorreto.