DXGK_DEVICEINFO 結構 (d3dkmddi.h)
DXGK_DEVICEINFO結構描述 Microsoft DirectX 圖形核心子系統從顯示迷你埠驅動程式所需的參數。
語法
typedef struct _DXGK_DEVICEINFO {
[out] UINT DmaBufferSize;
[out] UINT DmaBufferSegmentSet;
[out] UINT DmaBufferPrivateDataSize;
[out] UINT AllocationListSize;
[out] UINT PatchLocationListSize;
[out] DXGK_DEVICEINFOFLAGS Flags;
} DXGK_DEVICEINFO;
成員
[out] DmaBufferSize
透過直接記憶體存取傳送的硬體命令緩衝區大小,以位元組為單位, (DMA) 硬體。
建立裝置之後,DMA 緩衝區可以成長和縮小;不過,DMA 緩衝區絕對不能縮小小於 DmaBufferSize 指定的起始大小。
[out] DmaBufferSegmentSet
DMA 緩衝區應該可供圖形處理單位存取的區段標識碼, (GPU) 。
[out] DmaBufferPrivateDataSize
與每個 DMA 緩衝區相關聯的驅動程式駐留私人數據結構大小,以位元組為單位。 此私人數據結構的記憶體是從非分頁集區配置。 如果驅動程式在 DmaBufferPrivateDataSize 中指定零,則不會為私人數據結構配置任何記憶體。
建立 DMA 緩衝區時,與 DMA 緩衝區相關聯的私用數據結構會初始化為零。 在 DMA 緩衝區的存留期間,視訊記憶體管理員永遠不會存取與 DMA 緩衝區相關聯的私用數據結構。
[out] AllocationListSize
配置陣列 (的起始項目數目,也就是 DXGK_ALLOCATIONLIST 結構的陣列) 。 這個數位是驅動程式要求在 pAllocationList 成員中DXGKARG_PRESENT和DXGKARG_RENDER結構呼叫驅動程式 DxgkDdiPresent 和 DxgkDdiRender 函式的起始配置數目。
配置清單可以在建立裝置之後成長和縮小;不過,配置清單永遠無法縮小為 AllocationListSize 所指定的起始大小。
[out] PatchLocationListSize
修補程式位置陣列中的起始元素數目 (,也就是使用者模式和核心模式中裝置 ) D3DDDI_PATCHLOCATIONLIST 結構的陣列。 這個數位是驅動程式在呼叫其 DxgkDdiRender 函式時,要求位於 pPatchLocationListIn 成員中DXGKARG_RENDER結構的開始修補位置數目。
修補程式位置清單可以在建立裝置之後成長和縮小;不過,修補程式位置清單一律無法縮小為 PatchLocationListSize 指定的起始大小。
[out] Flags
DXGK_DEVICEINFOFLAGS結構,可在位字段旗標中識別裝置的相關信息。
備註
顯示迷你埠驅動程式會指定 DmaBufferSize 和 AllocationListSize 成員的值,以確保下列各項:
- DirectX 圖形子系統只能使用一個 DMA 緩衝區來顯示 (,方法是在所有案例中,使用顯示器迷你埠驅動程式的 DxgkDdiPresent 函式) 至少一個 RECT 結構。
- DMA 和配置清單緩衝區的大小夠大,足以保存至少一個無法分割到多個緩衝區的命令。
- DMA 和配置清單緩衝區的大小夠大,以避免設定和 DMA 額外負荷。
如果驅動程式將 DmaBufferSegmentSet 設定為 0,則視訊記憶體管理員會為 DMA 緩衝區配置連續分頁鎖定記憶體,這是對應的寫入合併記憶體。 因此,GPU 必須在不允許 AGP 光圈外發生的 AGP 傳輸系統上使用 PCI 循環來存取 DMA 緩衝區。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
標頭 | d3dkmddi.h (包含 D3dkmddi.h) |