Função InitOnceBeginInitialize (synchapi.h)
Inicia a inicialização única.
Sintaxe
BOOL InitOnceBeginInitialize(
[in, out] LPINIT_ONCE lpInitOnce,
[in] DWORD dwFlags,
[out] PBOOL fPending,
[out, optional] LPVOID *lpContext
);
Parâmetros
[in, out] lpInitOnce
Um ponteiro para a estrutura de inicialização única.
[in] dwFlags
Esse parâmetro pode ter um valor igual a 0 ou um ou mais dos sinalizadores a seguir.
[out] fPending
Se a função for bem-sucedida, esse parâmetro indicará a inicialização atual status.
Se esse parâmetro for TRUE e dwFlags contiver INIT_ONCE_CHECK_ONLY, a inicialização estará pendente e os dados de contexto serão inválidos.
Se esse parâmetro for FALSE, a inicialização já foi concluída e o chamador poderá recuperar os dados de contexto do parâmetro lpContext .
Se esse parâmetro for TRUE e dwFlags não contiver INIT_ONCE_CHECK_ONLY, a inicialização será iniciada e o chamador poderá executar as tarefas de inicialização.
[out, optional] lpContext
Um parâmetro opcional que recebe os dados armazenados com a estrutura de inicialização única após o êxito. Os bits de INIT_ONCE_CTX_RESERVED_BITS de baixa ordem dos dados são sempre zero.
Retornar valor
Se INIT_ONCE_CHECK_ONLY não for especificado e a função for bem-sucedida, o valor retornado será TRUE.
Se INIT_ONCE_CHECK_ONLY for especificado e a inicialização for concluída, o valor retornado será TRUE.
Caso contrário, o valor retornado será FALSE.
Para obter informações de erro estendidas, chame GetLastError.
Comentários
Essa função pode ser usada para inicialização única síncrona ou assíncrona. Para inicialização única assíncrona, use o sinalizador INIT_ONCE_ASYNC . Para especificar uma função de retorno de chamada a ser executada durante a inicialização única síncrona, consulte a função InitOnceExecuteOnce .
Se essa função for bem-sucedida, o thread poderá criar um objeto de sincronização e especificar no parâmetro lpContext da função InitOnceComplete .
Para compilar um aplicativo que usa essa função, defina _WIN32_WINNT como 0x0600 ou posterior. Para obter mais informações, consulte Usando os cabeçalhos do Windows.
Um objeto de inicialização única não pode ser movido ou copiado. O processo não deve modificar o objeto de inicialização e, em vez disso, deve tratá-lo como logicamente opaco. Use apenas as funções de inicialização única para gerenciar objetos de inicialização únicos.
Exemplos
Para obter um exemplo que usa essa função, consulte Using One-Time Initialization
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | synchapi.h (inclua Windows.h no Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |