NdisMCoIndicateReceiveNetBufferLists 函式 (ndis.h)

NdisMCoIndicateReceiveNetBufferLists 函式指出迷你埠驅動程式已從網路接收數據。

語法

void NdisMCoIndicateReceiveNetBufferLists(
  [in] IN NDIS_HANDLE      NdisVcHandle,
  [in] IN PNET_BUFFER_LIST NetBufferLists,
  [in] IN ULONG            NumberOfNetBufferLists,
  [in] IN ULONG            CoReceiveFlags
);

參數

[in] NdisVcHandle

識別虛擬連線 (VC) 的句柄。 迷你埠驅動程式已取得此句柄作為 其MiniportCoCreateVc 函式的輸入參數,可能是當客戶端設定傳出呼叫,或當呼叫管理員為客戶端註冊的服務存取點建立 VC 時, (SAP) 以指出傳入通話通知。

[in] NetBufferLists

迷你埠驅動程式配置的 NET_BUFFER_LIST 結構連結清單。

[in] NumberOfNetBufferLists

NetBufferList 所指定之結構連結清單中的NET_BUFFER_LIST結構數目。

[in] CoReceiveFlags

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

NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL

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

NDIS_RECEIVE_FLAGS_RESOURCES

迷你埠驅動程式會在 NdisMCoIndicateReceiveNetBufferLists 傳回之後,立即回收NET_BUFFER_LIST結構的擁有權,以及任何附加NET_BUFFER結構。

傳回值

備註

迷你埠驅動程式通常會從其MiniportInterruptDPC函式呼叫 NdisMCoIndicateReceiveNetBufferLists 函式。 當迷你埠驅動程式呼叫 NdisMCoIndicateReceiveNetBufferLists 時,它會在 NetBufferLists 參數指定NET_BUFFER_LIST結構清單。 NDIS 接著會將NET_BUFFER_LIST結構傳遞至系結的通訊協定驅動程式。

迷你埠驅動程序必須將每個NET_BUFFER_LIST結構的 SourceHandle 成員設定為 與 NdisVcHandle 參數相同的值,讓 NDIS 可以將NET_BUFFER_LIST結構傳回正確的迷你埠驅動程式。

如果迷你埠驅動程式呼叫 NdisMCoIndicateReceiveNetBufferLists ,並清除 CoReceiveFlags 參數中的 NDIS_RECEIVE_FLAGS_RESOURCES 旗標,NDIS 會傳回 NetBufferLists 指定給迷你埠驅動程式的NET_BUFFER_LIST結構 MiniportReturnNetBufferLists 函 式。 在此情況下,在 NDIS 將NET_BUFFER_LIST結構傳回至迷你埠驅動程式的 MiniportReturnNetBufferLists 函式之前,迷你埠驅動程式不得回收NET_BUFFER_LIST結構。

如果迷你埠驅動程式呼叫 NdisMCoIndicateReceiveNetBufferLists ,並在 CoReceiveFlags 參數中設定NDIS_RECEIVE_FLAGS_RESOURCES旗標,迷你埠驅動程式必須立即重新取得NET_BUFFER_LIST結構的擁有權。 在此情況下,NDIS 不會呼叫迷你埠驅動程式的 MiniportReturnNetBufferLists 函式來傳回NET_BUFFER_LIST結構。 相反地, 當 NdisMCoIndicateReceiveNetBufferLists 傳回時,NDIS 會將NET_BUFFER_LIST結構傳回至迷你埠驅動程式。 迷你埠驅動程序應該會在 NdisMCoIndicateReceiveNetBufferLists 傳回之後立即回收NET_BUFFER_LIST結構。 若要回收NET_BUFFER_LIST結構,迷你埠驅動程式可以呼叫自己的結構 MiniportReturnNetBufferLists 函 式。

如果迷你埠驅動程式在 CoReceiveFlags 參數中設定NDIS_RECEIVE_FLAGS_RESOURCES旗標,通訊協定驅動程式必須複製網路數據,並將NET_BUFFER_LIST結構釋放至迷你埠驅動程式。 您應該使用足夠的預先配置NET_BUFFER_LIST結構來設計迷你埠驅動程式,以避免不必要的複製。

NdisMCoIndicateReceiveNetBufferLists 的呼叫端必須正確地初始化NET_BUFFER_LIST結構、附加的NET_BUFFER結構,以及任何附加的記憶體描述元清單 (MDL) 。

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 桌面
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_MCO_Function ()

另請參閱

MiniportCoCreateVc

MiniportInterruptDPC

MiniportReturnNetBufferLists

NET_BUFFER

NET_BUFFER_LIST