共用方式為


NdisAllocateBuffer 函式 (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 NdisAllocateBuffer(
  [out]          PNDIS_STATUS Status,
  [out]          PNDIS_BUFFER *Buffer,
  [in, optional] NDIS_HANDLE  PoolHandle,
  [in]           PVOID        VirtualAddress,
  [in]           UINT         Length
);

參數

[out] Status

呼叫端提供的變數指標,此變數會傳回緩衝區配置的最終狀態,如果它傳回 Buffer 的有效緩衝區描述元指標,則NDIS_STATUS_SUCCESS,否則NDIS_STATUS_FAILURE。

[out] Buffer

呼叫端提供的變數指標,在此變數中,此函式會傳回配置之緩衝區描述元的指標。

[in, optional] PoolHandle

指定先前呼叫 NdisAllocateBufferPool 所傳回的句柄。

[in] VirtualAddress

先前配置之系統空間記憶體的基底虛擬位址指標,要對應到傳回的緩衝區描述元中。

[in] Length

指定要對應的位元組數目。

傳回值

備註

傳回值:無

NdisAllocateBuffer 會為 配置記憶體,並初始化緩衝區描述元,以對應先前配置的記憶體範圍,例如用於封包標頭或 NIC 接收緩衝區的記憶體。

緩衝區描述項配置會在 NdisAllocateBufferPool 所建立的緩衝池上繪製。 驅動程式可以視需要多次呼叫 NdisAllocateBuffer ,以在初始化期間呼叫 NdisAllocateBufferPool 時配置所需的緩衝區描述元。

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

規格需求

需求
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

另請參閱