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 () |