共用方式為


NdisCoSendNetBufferLists 函式 (ndis.h)

NdisCoSendNetBufferLists 函式會傳送包含在指定 NET_BUFFER_LIST 結構清單中的網路數據。

語法

void NdisCoSendNetBufferLists(
  [in] NDIS_HANDLE      NdisVcHandle,
  [in] PNET_BUFFER_LIST NetBufferLists,
  [in] ULONG            SendFlags
);

參數

[in] NdisVcHandle

識別傳送要求目標之虛擬連線的句柄。

[in] NetBufferLists

NET_BUFFER_LIST 結構連結清單的指標。 每個NET_BUFFER_LIST結構都會描述 NET_BUFFER 結構的清單。

[in] SendFlags

定義傳送作業屬性的旗標。 旗標可以與位 OR 運算結合。 若要清除所有旗標,請將此參數設定為零。 NdisCoSendNetBufferLists 支援下列旗標:

NDIS_SEND_FLAGS_DISPATCH_LEVEL

目前的 IRQL 是DISPATCH_LEVEL。 如需此旗標的詳細資訊,請參閱 分派 IRQL 追蹤

NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK

NDIS 應該檢查回送。 根據預設,NDIS 不會將數據回送至提交傳送要求的驅動程式。 過度配置驅動程式可以藉由設定NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK來覆寫此行為。 設定此旗標時,NDIS 會識別包含符合系結接收準則之數據的所有NET_BUFFER結構。 NDIS 表示NET_BUFFER結構,這些結構符合超載驅動程式的準則。 此旗標不會影響在其他系結上檢查回送或回送。

傳回值

沒有

言論

在 CoNDIS 通訊協定驅動程式呼叫 NdisCoSendNetBufferLists之後,NDIS 會將 NetBufferLists 參數指定的 NET_BUFFER_LIST 結構提交至基礎驅動程式的 MiniportCoSendNetBufferLists 函式。

通訊協定驅動程式必須呼叫下列其中一個函式,從集區配置每個NET_BUFFER_LIST結構:

通訊協定驅動程式可以預先配置NET_BUFFER_LIST結構,例如,在其 DriverEntry 例程中。 或者,通訊協定驅動程式可以在呼叫 NdisCoSendNetBufferLists 之前立即配置結構,然後在傳送作業完成時釋放它們。 當 NDIS 將NET_BUFFER_LIST結構傳回 至 時 ProtocolCoSendNetBufferListsComplete 函式中,通訊協定驅動程式可以準備NET_BUFFER_LIST結構和任何相關聯的資源以供重複使用。 如果您重複使用NET_BUFFER_LIST結構,可以取得比將結構傳回集區更好的效能,然後重新配置給另一個傳送作業。

通訊協定驅動程式必須將每個 NET_BUFFER_LIST 結構的 SourceHandle 成員設定為在 NdisVcHandle 參數傳遞的相同值。 來源句柄提供 NDIS 在基礎迷你埠驅動程式呼叫 之後,將NET_BUFFER_LIST結構傳回通訊協定驅動程式所需的資訊 NdisMCoSendNetBufferListsComplete 函式。

在通訊協定驅動程式呼叫 NdisCoSendNetBufferLists之前,驅動程式可以設定傳送要求隨附 NET_BUFFER_LIST_INFO 巨集的資訊。 基礎驅動程式可以使用 NET_BUFFER_LIST_INFO 巨集來擷取此資訊。

在通訊協定驅動程式呼叫 NdisCoSendNetBufferLists 並列出NET_BUFFER_LIST結構之前,通訊協定驅動程式必須確定NET_BUFFER_LIST結構是按照網路數據傳送順序設定的。

一旦通訊協定驅動程式呼叫 NdisCoSendNetBufferLists,它就不再擁有NET_BUFFER_LIST結構和所有相關聯的資源。 NDIS 會呼叫 ProtocolCoSendNetBufferListsComplete 函式,將結構和數據傳回至通訊協定驅動程式。 NDIS 可以在將清單傳遞至 protocolCoSendNetBufferListsComplete 之前,先將多個傳送要求中的結構和數據收集到單一連結的NET_BUFFER_LIST結構清單。

在 NDIS 呼叫 ProtocolCoSendNetBufferListsComplete之前,通訊協定驅動程式起始的傳送目前狀態無法供通訊協定驅動程式使用。 通訊協議驅動程式會在呼叫 NdisCoSendNetBufferLists時,暫時釋放配置給傳送要求的所有資源的擁有權。 在驅動程式呼叫 NdisCoSendNetBufferLists之後,通訊協定驅動程式絕對不應該嘗試檢查NET_BUFFER_LIST結構或任何相關聯的數據。

要求

要求 價值
最低支援的用戶端 支援 Windows Vista 中的 NDIS 6.0 驅動程式。
目標平臺 桌面
標頭 ndis.h (包括 Ndis.h)
連結庫 Ndis.lib
IRQL <=DISPATCH_LEVEL
DDI 合規性規則 Irql_Connection_Function(ndis)

另請參閱

DriverEntry

MiniportCoSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

NdisAllocateCloneNetBufferList NdisAllocateNetBufferAndNetBufferList

NdisAllocateNetBufferList

NdisMCoSendNetBufferListsComplete ProtocolCoSendNetBufferListsComplete