ホーム › System.Threading › PINIT_ONCE_FN
PINIT_ONCE_FN
コールバックシグネチャ
BOOL PINIT_ONCE_FN(
INIT_ONCE* InitOnce,
void* Parameter,
void** Context
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| InitOnce | INIT_ONCE* | 1 回限りの初期化構造体へのポインターです。 |
| Parameter | void* | コールバック関数に渡された省略可能なパラメーターです。 |
| Context | void** | 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)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)