Compartir a través de


Función InitializeCriticalSection (synchapi.h)

Inicializa un objeto de sección crítico.

Sintaxis

void InitializeCriticalSection(
  [out] LPCRITICAL_SECTION lpCriticalSection
);

Parámetros

[out] lpCriticalSection

Puntero al objeto de sección crítica.

Valor devuelto

Esta función no devuelve ningún valor.

Windows Server 2003 y Windows XP: En situaciones de memoria baja, InitializeCriticalSection puede generar una excepción STATUS_NO_MEMORY . A partir de Windows Vista, esta excepción se eliminó e InitializeCriticalSection siempre se realiza correctamente, incluso en situaciones de memoria baja.

Comentarios

Los subprocesos de un único proceso pueden usar un objeto de sección crítico para la sincronización de exclusión mutua. No hay ninguna garantía sobre el orden en que los subprocesos obtendrán la propiedad de la sección crítica, pero el sistema será justo para todos los subprocesos.

El proceso es responsable de asignar la memoria utilizada por un objeto de sección crítico, que puede hacer declarando una variable de tipo CRITICAL_SECTION. Antes de usar una sección crítica, algún subproceso del proceso debe inicializar el objeto .

Una vez inicializado un objeto de sección crítica, los subprocesos del proceso pueden especificar el objeto en la función EnterCriticalSection, TryEnterCriticalSection o LeaveCriticalSection para proporcionar acceso mutuamente excluyente a un recurso compartido. Para una sincronización similar entre los subprocesos de distintos procesos, use un objeto de exclusión mutua.

No se puede mover ni copiar un objeto de sección crítico. El proceso tampoco debe modificar el objeto, pero debe tratarlo como opaco lógicamente. Use solo las funciones de sección críticas para administrar objetos de sección críticos. Cuando haya terminado de usar la sección crítica, llame a la función DeleteCriticalSection .

Se debe eliminar un objeto de sección crítico antes de que se pueda reinicializar. La inicialización de una sección crítica que ya se ha inicializado da como resultado un comportamiento indefinido.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado synchapi.h (incluye Windows.h en Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

CreateMutex

Objetos de sección críticos

DeleteCriticalSection

EnterCriticalSection

InitializeCriticalSectionAndSpinCount

LeaveCriticalSection

Funciones de sincronización

TryEnterCriticalSection

API de Vertdll disponibles en enclaves de VBS