Función InitOnceBeginInitialize (synchapi.h)
Comienza la inicialización única.
Sintaxis
BOOL InitOnceBeginInitialize(
[in, out] LPINIT_ONCE lpInitOnce,
[in] DWORD dwFlags,
[out] PBOOL fPending,
[out, optional] LPVOID *lpContext
);
Parámetros
[in, out] lpInitOnce
Puntero a la estructura de inicialización única.
[in] dwFlags
Este parámetro puede tener un valor de 0 o uno o varios de los siguientes marcadores.
[out] fPending
Si la función se ejecuta correctamente, este parámetro indica el estado de inicialización actual.
Si este parámetro es TRUE y dwFlags contiene INIT_ONCE_CHECK_ONLY, la inicialización está pendiente y los datos de contexto no son válidos.
Si este parámetro es FALSE, la inicialización ya se ha completado y el autor de la llamada puede recuperar los datos de contexto del parámetro lpContext .
Si este parámetro es TRUE y dwFlags no contiene INIT_ONCE_CHECK_ONLY, se ha iniciado la inicialización y el autor de la llamada puede realizar las tareas de inicialización.
[out, optional] lpContext
Parámetro opcional que recibe los datos almacenados con la estructura de inicialización única cuando se realiza correctamente. Los bits de INIT_ONCE_CTX_RESERVED_BITS de orden bajo de los datos siempre son cero.
Valor devuelto
Si no se especifica INIT_ONCE_CHECK_ONLY y la función se realiza correctamente, el valor devuelto es TRUE.
Si se especifica INIT_ONCE_CHECK_ONLY y se ha completado la inicialización, el valor devuelto es TRUE.
De lo contrario, el valor devuelto es FALSE.
Para obtener información de error extendida, llame a GetLastError.
Comentarios
Esta función se puede usar para la inicialización sincrónica o asincrónica de una sola vez. Para la inicialización asincrónica de un solo uso, use la marca de INIT_ONCE_ASYNC . Para especificar una función de devolución de llamada que se va a ejecutar durante la inicialización sincrónica de un solo uso, consulte la función InitOnceExecuteOnce.
Si esta función se ejecuta correctamente, el subproceso puede crear un objeto de sincronización y especificar en el parámetro lpContext de la función InitOnceComplete .
Para compilar una aplicación que use esta función, defina _WIN32_WINNT como 0x0600 o posterior. Para obtener más información, vea Uso de los encabezados de Windows.
Un objeto de inicialización único no se puede mover ni copiar. El proceso no debe modificar el objeto de inicialización y, en su lugar, debe tratarlo como lógicamente opaco. Use solo las funciones de inicialización única para administrar objetos de inicialización de un solo uso.
Ejemplos
Para obtener un ejemplo que use esta función, consulte Uso de One-Time Inicialización.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | synchapi.h (incluye Windows.h en Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |