次の方法で共有


WinAsyncAPPCIOCP

WinAsyncAPPCIOCP 関数は、すべての APPC 動詞に対して非同期エントリ ポイントを提供します。 I/O 完了ポートを使用して同じスレッドで複数のセッションを処理できるようにするには、動詞のブロック バージョンの代わりにこの関数を使用します。 この動詞は Microsoft Windows でのみサポートされており、Win32 I/O 完了ポートを使用します。

構文

  
    HANDLE WINAPI WinAsyncAPPCIOCP(   
APPC_IOCP_INFO *iocp_handle,  
longlpVcb);  

パラメーター

iocp_handle
I/O 完了ポート情報を渡すために使用される APPC_IOCP_INFO 構造体へのポインター。

lpVcb
動詞制御ブロックへのポインター

APPC_IOCP_INFO構造体には、次のプロトタイプがあります。

  
APPC_CompletionPort;APPC_NumberOfBytesTransferred;  
    APPC_CompletionKey;  
    APPC_pOverlapped;  
  

APPC_CompletionPort

この指定されたパラメーターは、I/O 完了ポートの作成時に CreateIoCompletionPort 関数の呼び出しによって返される HANDLE です。 WinAsyncAPPCIOCP 関数を呼び出す前に、I/O 完了ポートを作成する必要があります。 動詞が完了すると、APPC ライブラリは PostQueuedCompletionStatus 関数を呼び出し、構造体の残りのフィールドを入力として呼び出します。これらのフィールドは、アプリケーションによって発行 された GetQueuedCompletionStatus 関数に渡されるだけです。

APPC_NumberOfBytesTransferred

この指定されたパラメーターは無視されます。 APPC 動詞が完了すると、APPC ライブラリはこのフィールドを入力として PostQueuedCompletionStatus 関数を呼び出し、 dwNumberOfBytesTransferred に返される値は、アプリケーションによって発行 された GetQueuedCompletionStatus 関数に渡されます。

APPC_CompletionKey

この指定されたパラメーターは無視されます。 APPC 動詞が完了すると、APPC ライブラリはこのフィールドを入力として PostQueuedCompletionStatus 関数を呼び出し、 dwCompletionKey に返される値は、アプリケーションによって発行 された GetQueuedCompletionStatus 関数に渡されます。

APPC_pOverlapped

この指定されたパラメーターは無視されます。 APPC 動詞が完了すると、APPC ライブラリはこのフィールドを入力として PostQueuedCompletionStatus 関数を呼び出し、 lpOverlapped に返される値は、アプリケーションによって発行 された GetQueuedCompletionStatus 関数に渡されます。

戻り値

戻り値は、非同期解決要求が成功したかどうかを指定します。 関数が成功した場合、戻り値は非同期タスク ハンドルです。 関数が成功しなかった場合は、0 が返されます。

この関数が正常な値でを返す場合、これは APPC 呼び出しが最終的に正常に返されることを示すものではありません。 通知用の I/O 完了ポートを使用して、APPC ライブラリが APPC 呼び出しを非同期的に試行できたことを示すだけです。

注釈

この関数は、Win32 API の CreateIoCompletionPortGetQueuedCompletionStatus で使用することを目的としています。 これらの関数については、Microsoft Platform SDK ドキュメントの「リファレンス」セクションで説明されています。

マルチスレッド TP でこの動詞を使用する方法の例については、Host Integration Server SDK に含まれる I/O 入力候補ポートを使用したマルチスレッド受信サンプル TP (SNA\MSENDRCV フォルダーにある MRCVIO) を参照してください。

ブロックできる基本的な会話で使用される APPC 動詞は次のとおりです。