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 函式一或多次,以配置所需的緩衝區描述元。 驅動程式應該在初始化期間呼叫此函式。

NIC 驅動程式指定的 NumberOfDescriptors 參數通常取決於 NIC 的功能。 例如,具有環形緩衝區的總線主要 DMA NIC 驅動程式至少會指定足夠的 NumberOfDescriptors 來對應完整環形。

呼叫此函式中指定的 NumberOfDescriptors 是驅動程式在呼叫 NdisAllocateBuffer 之前可以呼叫 NdisAllocateBuffer 的有效限制,才能呼叫 NdisFreeBuffer 函式,以將緩衝區描述元傳回緩衝池的免費清單。

當驅動程式不再需要它配置的緩衝池時,它會呼叫 NdisFreeBufferPool 函式來釋放緩衝池句柄。

驅動程式必須釋放它所持有的任何微調鎖定,才能呼叫此函式。

所有較低層級的 NDIS 驅動程式都必須配置它們鏈結至緩衝池封包的所有緩衝區描述元。 只有最高層級的通訊協定驅動程式可以指定OS相依描述項,以對應虛擬記憶體範圍。 如果這些記憶體描述元相當於 NDIS 緩衝區描述元,則最高層級通訊協定可以將這類描述元當做參數傳遞至 NDIS 函式。

操作系統版本:Windows CE .NET 4.0 和更新版本。

規格需求

需求
標頭 ndis.h
IRQL IRQL <= DISPATCH_LEVEL

另請參閱