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 函式,而 dwNumberOfBytesTransfer 的回傳值會直接傳遞給應用程式發出的 GetQueuedCompletionStatus 函式。

APPC_CompletionKey

此參數被忽略。 當 APPC 動詞完成時,APPC 函式庫會呼叫 PostQueuedCompletionStatus 函式,並以此欄位作為輸入, dwCompletionKey 回傳的值會直接傳遞給應用程式發出的 GetQueuedCompletionStatus 函式。

APPC_pOverlapped

此參數被忽略。 當 APPC 動詞完成時,APPC 函式庫會以此欄位呼叫 PostQueuedCompletionStatus 函式,而 lpOverlapped 回傳的值會直接傳遞給應用程式所發出的 GetQueuedCompletionStatus 函式。

傳回值

回傳值則指定非同步解析請求是否成功。 若函式成功,回傳值為非同步任務句柄。 若函數未成功,則回傳為零。

當此函式回傳成功值時,並不代表 APPC 呼叫最終會成功返回。 它僅表示 APPC 函式庫可透過 I/O 完成埠非同步嘗試呼叫通知。

備註

此函式設計用於 Win32 API 中的 CreateIoCompletionPort 與 GetQueuedCompletionStatus 。 這些功能在 Microsoft Platform SDK 文件的「參考」部分有描述。

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

在基本對話中能阻擋的 APPC 動詞如下: