Win32 API 日本語リファレンス
ホーム › System.Threading › PINIT_ONCE_FN

PINIT_ONCE_FN

コールバック

シグネチャ

BOOL PINIT_ONCE_FN(
    INIT_ONCE* InitOnce,
    void* Parameter,
    void** Context
);

パラメーター

フィールド型説明
InitOnceINIT_ONCE*1 回限りの初期化構造体へのポインターです。
Parametervoid*コールバック関数に渡された省略可能なパラメーターです。
Contextvoid**1 回限りの初期化構造体と共に格納されるデータです。Context が値を参照する場合、その値の下位 INIT_ONCE_CTX_RESERVED_BITS ビットは 0 でなければなりません。Context がデータ構造体を指す場合、そのデータ構造体は DWORD 境界に整列されている必要があります。Arm32 では Context をコードポインターにしてはなりません。Arm32 のコードポインターは常に最下位ビットが設定されているためです。詳細については Arm32 ABI を参照してください。

公式ドキュメント

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

戻り値

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

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

解説(Remarks)

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

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

例

この関数を使用する例については、 1 回限りの初期化の使用を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)