共用方式為


初始化記憶體區段的使用

在 Windows Vista 及之後版本的顯示驅動程式模型中,記憶體區段是將圖形處理單元 (GPU) 的位址空間描述為視覺記憶體管理員。 記憶體區段一般化和虛擬化視訊記憶體資源。 記憶體區段會根據硬體支援的記憶體類型來設定(例如框架緩衝區內存或系統記憶體孔徑)。

若要初始化其使用記憶體區段的方式,Microsoft DirectX 圖形核心子系統 (Dxgkrnl.sys) 會呼叫顯示迷你埠驅動程式的 DxgkDdiQueryAdapterInfo 函式。 若要指示顯示迷你埠驅動程式從 DxgkDdiQueryAdapterInfo 呼叫傳回記憶體區段的相關信息,圖形子系統會指定 DXGKQAITYPE_QUERYSEGMENTDXGKARG_QUERYADAPTERINFO 結構之 Type 成員中的 DXGKQAITYPE_QUERYSEGMENT3 值。

圖形子系統會為了獲取區段資訊,兩次呼叫顯示微型埠驅動程式的 DxgkDdiQueryAdapterInfo 函數。 第一次呼叫 DxgkDdiQueryAdapterInfo 會擷取驅動程式支援的區段數目,而第二個呼叫會擷取每個區段的詳細資訊。 在呼叫 DxgkDdiQueryAdapterInfo中,驅動程式會將 pOutputData pOutputData 成員指向 DXGKARG_QUERYADAPTERINFO 填入 DXGK_QUERYSEGMENTOUT 結構(適用於 Windows Display Driver Model (WDDM) 1.2 之前的驅動程式版本)或填入 DXGK_QUERYSEGMENTOUT3 結構(適用於 WDDM 1.2 和更新版本的驅動程式)。

在第一次呼叫中,pSegmentDescriptorDXGK_QUERYSEGMENTOUT 的成員(針對 WDDM 1.2 之前的驅動程式版本)或 DXGK_QUERYSEGMENTOUT3 (針對 WDDM 1.2 和更新版本的驅動程式)設定為 NULL。 驅動程式應該只填入 DXGK_QUERYSEGMENTOUTNbSegment 成員,或 DXGK_QUERYSEGMENTOUT3 其支援的區段類型數目。 此數字也表示驅動程式從第二次呼叫 dxgkDdiQueryAdapterInfo時所需的未填入的 DXGK_SEGMENTDESCRIPTOR 結構數目(適用於 WDDM 1.2 之前的驅動程式版本)或 DXGK_SEGMENTDESCRIPTOR3 結構數目(適用於 WDDM 1.2 和更新版本的驅動程式)。

在第二個呼叫中,驅動程式應該填滿所有 DXGK_QUERYSEGMENTOUTDXGK_QUERYSEGMENTOUT3的成員。 在第二次呼叫中,驅動程式應該在 pSegmentDescriptor 成員中填入一個大小為 NbSegmentDXGK_SEGMENTDESCRIPTORDXGK_SEGMENTDESCRIPTOR3 結構的陣列,這些陣列是關於由 DXGK_QUERYSEGMENTOUTDXGK_QUERYSEGMENTOUT3 所支持的區段資訊。

在兩次對 DxgkDdiQueryAdapterInfo的呼叫中,pInputDataDXGKARG_QUERYADAPTERINFO 結構的成員,它指向一個包含 AGP 光圈位置和屬性信息的 DXGK_QUERYSEGMENTIN 結構。 如果沒有 AGP 光圈可供使用,或者如果已安裝 AGP 光圈,但未安裝適當的 GART 驅動程式,則 AGP 光圈的相關信息會設定為零。 如果沒有 AGP 光圈存在,則顯示迷你埠驅動程式不應該在 pSegmentDescriptorDXGK_QUERYSEGMENTOUTDXGK_QUERYSEGMENTOUT3陣列中指出它支援 AGP 類型的光圈區段。 如果在這種情況下顯示 AGP 型光圈區段,轉接器將無法初始化。

初始化期間,因為記憶體數量豐富,因此可以從特定區段配置分頁緩衝區的記憶體。 視訊記憶體管理員會從在 PagingBufferSegmentId 成員中被指定的區段為分頁緩衝區配置記憶體,DXGK_QUERYSEGMENTOUTDXGK_QUERYSEGMENTOUT3的成員。 驅動程式會指出第二次呼叫 dxgkDdiQueryAdapterInfo中分頁緩衝區區段的標識碼。 驅動程式也應該以位元組為單位來指定應該配置給 PagingBufferSize 成員中分頁緩衝區的大小,DXGK_QUERYSEGMENTOUTDXGK_QUERYSEGMENTOUT3

如需有關記憶體區段和分頁緩衝區操作的詳細資訊,請參閱 處理記憶體區段分頁視訊記憶體資源