次の方法で共有


PINIT_ONCE_FN コールバック関数 (synchapi.h)

アプリケーション定義のコールバック関数。 InitOnceExecuteOnce 関数を呼び出すときに、この関数へのポインターを指定します。 PINIT_ONCE_FN型は、このコールバック関数へのポインターを定義します。 InitOnceCallback は、アプリケーション定義関数名のプレースホルダーです。

構文

PINIT_ONCE_FN PinitOnceFn;

BOOL PinitOnceFn(
  [in, out]           PINIT_ONCE InitOnce,
  [in, out, optional] PVOID Parameter,
  [out, optional]     PVOID *Context
)
{...}

パラメーター

[in, out] InitOnce

1 回限りの初期化構造体へのポインター。

[in, out, optional] Parameter

コールバック関数に渡された省略可能なパラメーター。

[out, optional] Context

1 回限りの初期化構造で格納されるデータ。 Context が値を参照する場合、値の下位INIT_ONCE_CTX_RESERVED_BITSは 0 である必要があります。 Context がデータ構造を指す場合、データ構造は DWORD にアラインされている必要があります。 Arm32 のコード ポインターには常に最下位ビットが設定されているため、コンテキストを Arm32 のコード ポインターにすることはできません。詳細については、Arm32 ABI に関するページを参照してください。

戻り値

関数が TRUE を返す場合、ブロックは初期化済みとしてマークされます。

関数から FALSE が返された場合、ブロックは初期化済みとしてマークされず、 InitOnceExecuteOnce の呼び出しは失敗します。 追加のエラー情報を伝達するには、FALSE を返す前に SetLastError を呼び出します。

注釈

この関数は、同期オブジェクトを作成し、 lpContext パラメーターで返すことができます。

この関数を使用するアプリケーションをコンパイルするには、 _WIN32_WINNT を 0x0600 以降として定義します。 詳細については、「 Windows ヘッダーの使用」を参照してください。

この関数を使用する例については、「 One-Time 初期化の使用」を参照してください。

要件

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

こちらもご覧ください

InitOnceExecuteOnce

InitOnceInitialize

同期関数