次の方法で共有


CSemaphore::CSemaphore

CSemaphore の名前または名前のないオブジェクトを構築します。

CSemaphore(
   LONG lInitialCount = 1,
   LONG lMaxCount = 1,
   LPCTSTR pstrName = NULL,
   LPSECURITY_ATTRIBUTES lpsaAttributes = NULL 
);

パラメーター

  • lInitialCount
    セマフォの最初の使用数。0 以上が、lMaxCountにより小さい等しい。

  • lMaxCount
    セマフォの最大の使用数。1 以上であることが必要です。

  • pstrName
    セマフォの名前。セマフォがプロセスの境界を越えてアクセス指定する必要があります。NULL, オブジェクトがない場合。名前が既存のセマフォと一致する場合、コンストラクターは、その名前のセマフォを参照する CSemaphore の新しいオブジェクトを構築します。名前がセマフォではない既存の同期オブジェクトに一致する場合、構造体は失敗します。

  • lpsaAttributes
    セマフォのオブジェクトのセキュリティ属性。この構造体の詳細については、Windows SDKの SECURITY_ATTRIBUTES を参照してください。

解説

CSemaphore のオブジェクトにアクセスまたは解放するために、CMultiLock または CSingleLock のオブジェクトを作成し、[ロック][ロック解除] のメンバー関数を呼び出します。

セキュリティに関するメモセキュリティに関するメモ

CSemaphore のオブジェクトを作成した後、ミューテックスが既に存在しなかったことを確認します GetLastError。ミューテックスが予期せずにある場合は、ミューテックスが非承認なプロセスによってしゃがんでが、悪意を使用する可能性があることを示す場合があります。この場合、推奨されるセキュリティに対する意識の高いプロシージャはハンドルを閉じ、オブジェクトの作成時にエラーがあるかのように従うことです。

必要条件

Header: afxmt.h

参照

関連項目

CSemaphore クラス

階層図

CMutex クラス

CEvent クラス

CMultiLock クラス

CSingleLock クラス