NdisAllocateBufferPool 函式 (ndis.h)
附註 NDIS 5。 x 已被取代,且已被 NDIS 6 取代。 x。 如需新的 NDIS 驅動程式開發,請參閱從 Windows Vista 開始網路驅動程式。 如需移植 NDIS 5 的相關信息。 x 驅動程式至 NDIS 6。 x,請參閱 將 NDIS 5.x 驅動程式移植到 NDIS 6.0。
此函式會傳回呼叫端可以透過呼叫 NdisAllocateBuffer 函式來配置緩衝區描述項的句柄。
語法
void NdisAllocateBufferPool(
[out] PNDIS_STATUS Status,
[out] PNDIS_HANDLE PoolHandle,
[in] UINT NumberOfDescriptors
);
參數
[out] Status
呼叫端提供的變數指標,在此變數中,此函式會傳回緩衝池配置的最終狀態。
[out] PoolHandle
呼叫端提供的變數指標,在此變數中,此函式會將句柄傳回緩衝池。 此句柄是驅動程式後續呼叫之 NDIS 緩衝區函式的必要參數。
[in] NumberOfDescriptors
指定呼叫端預期從緩衝池配置的緩衝區描述項數目,而不會將任何配置的緩衝區描述元釋放回集區。
傳回值
沒有
言論
一律會傳回NDIS_STATUS_SUCCESS。
此函式傳回之後,驅動程式會呼叫 NdisAllocateBuffer 函式一次或多次配置所需的緩衝區描述元。 驅動程式應該在初始化期間呼叫此函式。
NumberOfDescriptors NIC 驅動程式指定的參數通常取決於 NIC 的功能。 例如,具有環形緩衝區之總線主要 DMA NIC 的驅動程式會指定至少足夠大的 NumberOfDescriptors 來對應完整環形。
呼叫此函式中指定的 NumberOfDescriptors,是驅動程式在呼叫 NdisAllocateBuffer 之前,必須先呼叫 NdisFreeBuffer 函式,才能將緩衝區描述元傳回緩衝池的免費清單的有效限制。
當驅動程式不再需要配置緩衝池時,它會呼叫 NdisFreeBufferPool 函式來釋放緩衝池句柄。
驅動程式必須先釋放它所持有的任何微調鎖定,才能呼叫此函式。
所有較低層級的 NDIS 驅動程式都必須配置它們鏈結至緩衝池封包的所有緩衝區描述元。 只有最高層級的通訊協定驅動程式可以指定與OS相關的描述元,以對應虛擬記憶體範圍。 如果這些記憶體描述元相當於 NDIS 緩衝區描述元,最高層級的通訊協定可以將這類描述元當作參數傳遞至 NDIS 函式。
作系统版本: Windows CE .NET 4.0 和更新版本。
要求
要求 | 價值 |
---|---|
標頭 | ndis.h |
IRQL | IRQL <= DISPATCH_LEVEL |