共用方式為


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。 必須先建立 I/O 完成埠,才能呼叫 WinAsyncAPPCIOCP 函式。 當動詞完成時,APPC 程式庫會呼叫 PostQueuedCompletionStatus 函式,並將結構中的其餘欄位當做輸入,而且這些欄位只會傳遞至應用程式所發出的 GetQueuedCompletionStatus 函式。

APPC_NumberOfBytesTransferred

這個提供的參數會被忽略。 當 APPC 動詞完成時,APPC 程式庫會以此欄位呼叫 PostQueuedCompletionStatus 函式做為輸入,而 針對 dwNumberOfBytesTransferred 傳回的值只會傳遞至應用程式所發出的 GetQueuedCompletionStatus 函式。

APPC_CompletionKey

這個提供的參數會被忽略。 當 APPC 動詞完成時,APPC 程式庫會使用此欄位呼叫 PostQueuedCompletionStatus 函式做為輸入,而 dwCompletionKey 所傳回的值只會傳遞至應用程式所發出的 GetQueuedCompletionStatus 函式。

APPC_pOverlapped

這個提供的參數會被忽略。 當 APPC 動詞完成時,APPC 程式庫會使用這個欄位呼叫 PostQueuedCompletionStatus 函式做為輸入,而 針對 lpOverlapped 傳回的值只會傳遞至應用程式所發出的 GetQueuedCompletionStatus 函式。

傳回值

傳回值會指定非同步解析要求是否成功。 如果函式成功,則傳回值是非同步工作控制碼。 如果函式未成功,則會傳回零。

當此函式以成功的值傳回時,這並不表示 APPC 呼叫最終會成功傳回。 它只會指出 APPC 程式庫可以使用 I/O 完成埠以非同步方式嘗試 APPC 呼叫以通知。

備註

此函式適用于 WIN32 API 中的 CreateIoCompletionPortGetQueuedCompletionStatus 。 這些函式會在 Microsoft Platform SDK 檔的一節中說明。

如需如何在多執行緒 TP 中使用這個動詞的範例,請參閱多執行緒接收範例 TP (位於 SNA\MSENDRCV 資料夾中的 MRCVIO,) 主機整合伺服器 SDK 中包含的 I/O 完成埠。

在可封鎖的基本交談中使用的 APPC 動詞命令如下所示: