共用方式為


NDK_FN_CONNECT回呼函式 (ndkpi.h)

NdkConnectNDK_FN_CONNECT) 函式會起始 NDK 連線要求。

語法

NDK_FN_CONNECT NdkFnConnect;

NTSTATUS NdkFnConnect(
  [in]                                      NDK_CONNECTOR *pNdkConnector,
  [in]                                      NDK_QP *pNdkQp,
                                            const PSOCKADDR pSrcAddress,
  [in]                                      ULONG SrcAddressLength,
  [in]                                      const PSOCKADDR pDestAddress,
  [in]                                      ULONG DestAddressLength,
  [in]                                      ULONG InboundReadLimit,
  [in]                                      ULONG OutboundReadLimit,
  [_In_reads_bytes_opt_(PrivateDataLength)] const PVOID pPrivateData,
  [in]                                      ULONG PrivateDataLength,
  [in]                                      NDK_FN_REQUEST_COMPLETION RequestCompletion,
  [in, optional]                            PVOID RequestContext
)
{...}

參數

[in] pNdkConnector

NDK 連接器物件的指標(NDK_CONNECTOR)。

[in] pNdkQp

要與連接產生關聯的NDK佇列組指標 (QP) 物件 (NDK_QP)。

pSrcAddress

來源位址。 針對 AF_INET 或 AF_INET6 pSrcAddress 是來源 IP 位址和來源 ND 埠。

[in] SrcAddressLength

pSrcAddress 參數的來源地址數據大小,以位元組為單位。

[in] pDestAddress

目的地位址。 針對 AF_INET 或 AF_INET6 pDestAddress 是目的地 IP 位址和來源 ND 連接埠 。

[in] DestAddressLength

pDestAddress 參數的目的地地址數據大小,以位元組為單位。

[in] InboundReadLimit

取用者提供的傳入進行中讀取作業數目上限,以在QP上允許。 如果基礎提供者在 NDK_ADAPTER_INFO 結構中有較低的 MaxInboundReadLimit 值,則提供者會將取用者提供的值上限為提供者最大值。 如果對等具有較低的 OutboundReadLimit 值,則提供者會使用該值作為有效 InboundReadLimit。 取用者可以藉由呼叫 NdkGetConnectionData 函式 (NDK_FN_GET_CONNECTION_DATA) 來擷取有效的 InboundReadLimit

[in] OutboundReadLimit

取用者提供的傳出進行中讀取作業數目上限,以在QP上允許。 如果基礎提供者在 NDK_ADAPTER_INFO 結構中有較低的 MaxOutboundReadLimit 值,則提供者會將取用者提供的值上限為提供者最大值。 如果對等 InboundReadLimit較低,則提供者會使用該值作為有效的 OutboundReadLimit。 取用者可以藉由呼叫 NdkGetConnectionData 函式 (NDK_FN_GET_CONNECTION_DATA) 來擷取 有效的輸出ReadLimit

[_In_reads_bytes_opt_(PrivateDataLength)] pPrivateData

與連線要求一起傳送的私人數據的指標。

[in] PrivateDataLength

pPrivateData 參數中提供的私用數據長度,以位元組為單位。

[in] RequestCompletion

要求完成回呼例程的指標 NdkRequestCompletionNDK_FN_REQUEST_COMPLETION)。

[in, optional] RequestContext

要傳遞至回呼函式 Context 參數的內容值,該參數是在 RequestCompletion 參數中指定。

傳回值

NdkConnect 函式會傳回下列其中一個 NTSTATUS 程式代碼。

傳回碼 描述
STATUS_SUCCESS
線上要求已順利完成。
STATUS_PENDING
作業擱置中,稍後將會完成。 驅動程式會呼叫指定的 RequestCompletionNDK_FN_REQUEST_COMPLETION) 函式,以完成暫止的作業。
STATUS_INSUFFICIENT_RESOURCES
要求因資源不足而失敗。
重要 要求可能會內嵌失敗,以及使用此狀態代碼以異步方式失敗。
 
STATUS_NETWORK_UNREACHABLE
要求失敗,因為無法連線到遠端網路。 您可以重試連線嘗試。
重要 要求可能會內嵌失敗,以及使用此狀態代碼以異步方式失敗。
 
STATUS_HOST_UNREACHABLE
要求失敗,因為無法連線到遠端主機系統。 您可以重試連線嘗試。
重要 要求可能會內嵌失敗,以及使用此狀態代碼以異步方式失敗。
 
STATUS_CONNECTION_REFUSED
要求失敗,因為遠端系統拒絕連線要求。 這可能是因為缺少接聽程式、待辦專案限制,或對等會主動拒絕連線要求。 您可以重試連線嘗試。
重要 要求可能會內嵌失敗,以及使用此狀態代碼以異步方式失敗。
 
STATUS_IO_TIMEOUT
要求失敗,因為連線要求逾時。可能會重試連線嘗試。 網路直接提供者會選取逾時值,以符合其各自的網路特性。
重要 要求可能會內嵌失敗,以及使用此狀態代碼以異步方式失敗。
 
STATUS_SHARING_VIOLATION
要求失敗,因為指定的本機位址已在使用中。
重要 要求可能會內嵌失敗,以及使用此狀態代碼以異步方式失敗。
 
STATUS_INVALID_ADDRESS
要求失敗,因為指定的本機位址不是適配卡的有效位址。
重要 要求可能會內嵌失敗,以及使用此狀態代碼以異步方式失敗。
 
STATUS_TOO_MANY_ADDRESSES
要求失敗,因為取用者指定了本機埠號碼為零,而且網路直接提供者無法從暫時埠空間配置埠(埠 49152-65535)。
重要 要求可能會內嵌失敗,以及使用此狀態代碼以異步方式失敗。
 
STATUS_ADDRESS_ALREADY_EXISTS
要求失敗,因為已存在與本機位址、本機埠、遠端位址和遠端埠組合的連線。
重要 要求可能會內嵌失敗,以及使用此狀態代碼以異步方式失敗。
 
其他狀態代碼
發生錯誤。

言論

NdkConnect 會從本機位址起始連線要求至遠端位址。

要求

要求 價值
最低支援的用戶端 不支援,在 NDIS 6.30 和更新版本中支援。
支援的最低伺服器 Windows Server 2012
目標平臺 窗戶
標頭 ndkpi.h (包括 Ndkpi.h)
IRQL <=DISPATCH_LEVEL

另請參閱

NDKPI 物件存留期需求

NDK_ADAPTER_INFO

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH

NDK_FN_DISCONNECT

NDK_FN_GET_CONNECTION_DATA

NDK_FN_REQUEST_COMPLETION

NDK_QP