DeleteCriticalSection 関数 (synchapi.h)

未所有のクリティカル セクション オブジェクトによって使用されるすべてのリソースを解放します。

構文

void DeleteCriticalSection(
  [in, out] LPCRITICAL_SECTION lpCriticalSection
);

パラメーター

[in, out] lpCriticalSection

クリティカル セクション オブジェクトへのポインター。 オブジェクトは、 InitializeCriticalSection 関数を使用して以前に初期化されている必要があります。

戻り値

なし

解説

クリティカル セクション オブジェクトを削除すると、オブジェクトで使用されているすべてのシステム リソースが解放されます。 呼び出し元は、クリティカル セクション オブジェクトが所有されておらず、指定されたCRITICAL_SECTION構造体が、プロセス内の他のスレッドによって呼び出されるクリティカル セクション関数によってアクセスされないようにする責任があります。

クリティカル セクション オブジェクトが削除された後は、InitializeCriticalSection および InitializeCriticalSectionAndSpinCount 以外のクリティカル セクション (EnterCriticalSectionTryEnterCriticalSectionLeaveCriticalSection など) を操作する関数内のオブジェクトを参照しないでください。 そうしようとすると、メモリの破損やその他の予期しないエラーが発生する可能性があります。

クリティカル セクションがまだ所有されている間に削除された場合、削除されたクリティカル セクションの所有権を待機しているスレッドの状態は未定義です。

DeleteCriticalSection を使用する例については、「クリティカル セクション オブジェクトの使用」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー synchapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

クリティカル セクション オブジェクト

EnterCriticalSection

InitializeCriticalSection

LeaveCriticalSection

同期関数

TryEnterCriticalSection

VBS エンクレーブで使用できる Vertdll API