NDK_FN_CONNECT回呼函式 (ndkpi.h)
NdkConnect (NDK_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 函式來擷取有效的 InboundReadLimit (NDK_FN_GET_CONNECTION_DATA) 。
[in] OutboundReadLimit
取用者提供在 QP 上允許的傳出進行中讀取作業數目上限。 如果基礎提供者在 NDK_ADAPTER_INFO 結構中有較低的 MaxOutboundReadLimit 值,則提供者會將取用者提供的值上限為提供者最大值。 如果對等具有較低的 InboundReadLimit,則提供者會使用該值作為有效的 OutboundReadLimit。 取用者可以藉由呼叫 NdkGetConnectionData 函式 (NDK_FN_GET_CONNECTION_DATA) 來擷取有效的 OutboundReadLimit。
[_In_reads_bytes_opt_(PrivateDataLength)] pPrivateData
與連線要求一起傳送的私人數據指標。
[in] PrivateDataLength
pPrivateData 參數中提供的私用數據長度,以位元組為單位。
[in] RequestCompletion
要求完成回呼例程的指標 NdkRequestCompletion (NDK_FN_REQUEST_COMPLETION) 。
[in, optional] RequestContext
要傳遞至 RequestCompletion 參數中所指定回呼函式之 Context 參數的內容值。
傳回值
NdkConnect 函式會傳回下列其中一個NTSTATUS代碼。
傳回碼 | Description |
---|---|
|
線上要求已成功完成。 |
|
作業擱置中,稍後將會完成。 驅動程式會呼叫指定的 RequestCompletion (NDK_FN_REQUEST_COMPLETION) 函式來完成擱置作業。 |
|
要求失敗,因為資源不足。
重要 要求可以透過此狀態代碼以異步方式內嵌和失敗。
|
|
要求失敗,因為無法連線到遠端網路。 您可以重試連線嘗試。
重要 要求可以透過此狀態代碼以異步方式內嵌和失敗。
|
|
要求失敗,因為無法連線到遠端主機系統。 您可以重試連線嘗試。
重要 要求可以透過此狀態代碼以異步方式內嵌和失敗。
|
|
要求失敗,因為遠端系統拒絕連線要求。 這可能是因為缺少接聽程式、待辦專案限制,或對等主動拒絕連線要求。 您可以重試連線嘗試。
重要 要求可以透過此狀態代碼以異步方式內嵌和失敗。
|
|
要求失敗,因為連線要求逾時。可能會重試連線嘗試。 網路直接提供者會選取逾時值,以符合其各自的網路特性。
重要 要求可以透過此狀態代碼以異步方式內嵌和失敗。
|
|
要求失敗,因為指定的本機位址已在使用中。
重要 要求可以透過此狀態代碼以異步方式內嵌和失敗。
|
|
要求失敗,因為指定的本機位址不是適配卡的有效位址。
重要 要求可以透過此狀態代碼以異步方式內嵌和失敗。
|
|
要求失敗,因為取用者指定了零個本機埠號碼,而網路直接提供者無法從暫時埠空間配置埠, (埠 49152-65535) 。
重要 要求可以透過此狀態代碼以異步方式內嵌和失敗。
|
|
要求失敗,因為本機位址、本機埠、遠端位址和遠端埠的組合已存在。
重要 要求可以透過此狀態代碼以異步方式內嵌和失敗。
|
|
發生錯誤。 |
備註
NdkConnect 會起始從本機位址到遠端位址的連線要求。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 不支援,NDIS 6.30 和更新版本中支援。 |
最低支援的伺服器 | Windows Server 2012 |
目標平台 | Windows |
標頭 | ndkpi.h (包括 Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |