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 |