PALLOCATE_DOMAIN_COMMON_BUFFER回呼函式 (wdm.h)
此回呼函式會配置網域通用緩衝區的記憶體。
語法
PALLOCATE_DOMAIN_COMMON_BUFFER PallocateDomainCommonBuffer;
NTSTATUS PallocateDomainCommonBuffer(
[in] PDMA_ADAPTER DmaAdapter,
[in] HANDLE DomainHandle,
[in, optional] PPHYSICAL_ADDRESS MaximumAddress,
[in] ULONG Length,
[in] ULONG Flags,
[in, optional] MEMORY_CACHING_TYPE *CacheType,
[in] NODE_REQUIREMENT PreferredNode,
[out] PPHYSICAL_ADDRESS LogicalAddress,
[out] PVOID *VirtualAddress
)
{...}
參數
[in] DmaAdapter
DMA_ADAPTER 結構的指標。 這個結構是代表驅動程式總線主要 DMA 裝置或系統 DMA 通道的配接器物件。 呼叫端從先前對 ioGetDmaAdapter 例程的呼叫取得此指標。
[in] DomainHandle
呼叫端從先前呼叫取得的 DMA 網域句柄,PGET_DMA_DOMAIN。
[in, optional] MaximumAddress
變數的指標,其中包含通用緩衝區的最大邏輯位址。 此參數表示緩衝區應該從這個位址下方的記憶體配置。 這個參數是選擇性的,可以指定為 NULL,表示沒有最大位址。
[in] Length
要配置給 DMA 作業之通用緩衝區的大小,以位元組為單位。
[in] Flags
要配置給 DMA 作業之通用緩衝區的大小,以位元組為單位。
可能的值包括:
DOMAIN_COMMON_BUFFER_LARGE_PAGE
一般緩衝區會使用較大的頁面粒度來配置PAGE_SIZE * 512。 請注意,這可能會增加配置失敗的機會。
[in, optional] CacheType
MEMORY_CACHING_TYPE 列舉的指標,指出例程必須在要配置的通用緩衝區中啟用或停用快取記憶體。 僅支援 mmNonCached 和 mmCached 的值。 參數是選擇性的,可以指定為 NULL,以指定快取將取決於硬體平台預設值。
[in] PreferredNode
要從中配置記憶體的慣用NUMA節點。 如果 N 是多處理器系統中的 NUMA 節點數目,PreferredNode 是範圍 0 到 N–1 中的數位。 若為單處理器系統或非 NUMA 多處理器系統,請將 PreferredNode 設為零。
[out] LogicalAddress
變數的指標,這個例程會寫入裝置可用來存取通用緩衝區的邏輯位址。 DMA 裝置應該使用此邏輯位址,而不是由例程傳回的實體位址,例如 MmGetPhysicalAddress。
[out] VirtualAddress
變數的指標,這個例程會寫入所配置緩衝區的對應虛擬位址。
傳回值
如果呼叫成功,則傳回STATUS_SUCCESS。 否則,它會傳回適當的 NTSTATUS 值。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 |
標頭 | wdm.h (包括 Wdm.h) |
IRQL | PASSIVE_LEVEL |