CreateThreadpoolIo 関数 (threadpoolapiset.h)

新しい I/O 完了オブジェクトを作成します。

構文

PTP_IO CreateThreadpoolIo(
  [in]                HANDLE                fl,
  [in]                PTP_WIN32_IO_CALLBACK pfnio,
  [in, out, optional] PVOID                 pv,
  [in, optional]      PTP_CALLBACK_ENVIRON  pcbe
);

パラメーター

[in] fl

この I/O 完了オブジェクトにバインドするファイル ハンドル。

[in] pfnio

重複した I/O 操作がファイルで完了するたびに呼び出されるコールバック関数。 詳細については、「 IoCompletionCallback」を参照してください。

[in, out, optional] pv

コールバック関数に渡すオプションのアプリケーション定義データ。

[in, optional] pcbe

コールバックを実行する環境を定義する TP_CALLBACK_ENVIRON 構造体へのポインター。 InitializeThreadpoolEnvironment 関数を使用して、この関数を呼び出す前に構造体を初期化します。

このパラメーターが NULL の場合、コールバックは既定のコールバック環境で実行されます。 詳細については、「 InitializeThreadpoolEnvironment」を参照してください。

戻り値

関数が成功すると、I/O オブジェクトを定義する TP_IO 構造体へのポインターが返されます。 アプリケーションでは、この構造体のメンバーは変更されません。

関数が失敗した場合は、NULL が返されます。 拡張エラー情報を取得するには、 GetLastError を呼び出します。

注釈

重複した I/O 完了コールバックの受信を開始するには、 StartThreadpoolIo 関数を呼び出します。

I/O 完了オブジェクトにバインドされたファイル ハンドルに通知モードFILE_SKIP_COMPLETION_PORT_ON_SUCCESSがあり、非同期の I/O 操作が成功するとすぐに返される場合、I/O 完了コールバック関数は呼び出されず、スレッドプール I/O 通知を取り消す必要があります。 詳細については、「 CancelThreadpoolIo」を参照してください。

この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNTを 0x0600 以上として定義します。

要件

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

関連項目

CancelThreadpoolIo

CloseThreadpoolIo

StartThreadpoolIo

スレッド プール

WaitForThreadpoolIoCallbacks