共用方式為


DXGKARG_BUILDPAGINGBUFFER結構(d3dkmddi.h)

DXGKARG_BUILDPAGINGBUFFER 結構描述 DxgkDdiBuildPagingBuffer** 回呼的參數,以建置分頁緩衝區以用於記憶體傳輸作業。

語法

typedef struct _DXGKARG_BUILDPAGINGBUFFER {
  VOID                             *pDmaBuffer;
  UINT                             DmaSize;
  VOID                             *pDmaBufferPrivateData;
  UINT                             DmaBufferPrivateDataSize;
  DXGK_BUILDPAGINGBUFFER_OPERATION Operation;
  UINT                             MultipassOffset;
  union {
    struct {
      HANDLE             hAllocation;
      UINT               TransferOffset;
      SIZE_T             TransferSize;
      struct {
        UINT SegmentId;
        union {
          LARGE_INTEGER SegmentAddress;
          MDL           *pMdl;
        };
      } Source;
      struct {
        UINT SegmentId;
        union {
          LARGE_INTEGER SegmentAddress;
          MDL           *pMdl;
        };
      } Destination;
      DXGK_TRANSFERFLAGS Flags;
      UINT               MdlOffset;
    } Transfer;
    struct {
      HANDLE hAllocation;
      SIZE_T FillSize;
      UINT   FillPattern;
      struct {
        UINT          SegmentId;
        LARGE_INTEGER SegmentAddress;
      } Destination;
    } Fill;
    struct {
      HANDLE                   hAllocation;
      DXGK_DISCARDCONTENTFLAGS Flags;
      UINT                     SegmentId;
      PHYSICAL_ADDRESS         SegmentAddress;
    } DiscardContent;
    struct {
      UINT             SegmentId;
      PHYSICAL_ADDRESS PhysicalAddress;
    } ReadPhysical;
    struct {
      UINT             SegmentId;
      PHYSICAL_ADDRESS PhysicalAddress;
    } WritePhysical;
    struct {
      HANDLE                hDevice;
      HANDLE                hAllocation;
      UINT                  SegmentId;
      SIZE_T                OffsetInPages;
      SIZE_T                NumberOfPages;
      PMDL                  pMdl;
      DXGK_MAPAPERTUREFLAGS Flags;
      ULONG                 MdlOffset;
    } MapApertureSegment;
    struct {
      HANDLE           hDevice;
      HANDLE           hAllocation;
      UINT             SegmentId;
      SIZE_T           OffsetInPages;
      SIZE_T           NumberOfPages;
      PHYSICAL_ADDRESS DummyPage;
    } UnmapApertureSegment;
    struct {
      HANDLE             hAllocation;
      UINT               TransferOffset;
      SIZE_T             TransferSize;
      struct {
        UINT SegmentId;
        union {
          LARGE_INTEGER SegmentAddress;
          MDL           *pMdl;
        };
      } Source;
      struct {
        UINT SegmentId;
        union {
          LARGE_INTEGER SegmentAddress;
          MDL           *pMdl;
        };
      } Destination;
      DXGK_TRANSFERFLAGS Flags;
      UINT               SwizzlingRangeId;
      UINT               SwizzlingRangeData;
    } SpecialLockTransfer;
    struct {
      HANDLE hAllocation;
      struct {
        UINT                   SegmentId;
        union {
          LARGE_INTEGER SegmentAddress;
          MDL           *pMdl;
        };
        PVOID                  VirtualAddress;
        D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
      } Destination;
    } InitContextResource;
    DXGK_BUILDPAGINGBUFFER_TRANSFERVIRTUAL         TransferVirtual;
    DXGK_BUILDPAGINGBUFFER_FILLVIRTUAL             FillVirtual;
    DXGK_BUILDPAGINGBUFFER_UPDATEPAGETABLE         UpdatePageTable;
    DXGK_BUILDPAGINGBUFFER_FLUSHTLB                FlushTlb;
    DXGK_BUILDPAGINGBUFFER_COPYPAGETABLEENTRIES    CopyPageTableEntries;
    DXGK_BUILDPAGINGBUFFER_UPDATECONTEXTALLOCATION UpdateContextAllocation;
    DXGK_BUILDPAGINGBUFFER_NOTIFYRESIDENCY         NotifyResidency;
    DXGK_BUILDPAGINGBUFFER_SIGNALMONITOREDFENCE    SignalMonitoredFence;
    struct {
      HANDLE                hDevice;
      HANDLE                hAllocation;
      UINT                  SegmentId;
      SIZE_T                OffsetInPages;
      SIZE_T                NumberOfPages;
      DXGK_ADL              Adl;
      DXGK_MAPAPERTUREFLAGS Flags;
      ULONG                 AdlOffset;
      PVOID                 CpuVisibleAddress;
    } MapApertureSegment2;
    DXGK_BUILDPAGINGBUFFER_NOTIFY_FENCE_RESIDENCY  NotifyFenceResidency;
    DXGK_BUILDPAGINGBUFFER_MAPMMU                  MmapMmu;
    DXGK_BUILDPAGINGBUFFER_UNMAPMMU                UnmapMmu;
    DXGK_BUILDPAGINGBUFFER_NOTIFYRESIDENCY2        NotifyResidency2;
    DXGK_BUILDPAGINGBUFFER_NOTIFYALLOC             NotifyAllocation;
    struct {
      UINT Reserved[64];
    } Reserved;
  };
  HANDLE                           hSystemContext;
  D3DGPU_VIRTUAL_ADDRESS           DmaBufferGpuVirtualAddress;
  UINT                             DmaBufferWriteOffset;
} DXGKARG_BUILDPAGINGBUFFER;

成員

pDmaBuffer

[in/out]分頁緩衝區中第一個可用位元組的虛擬位址。 第一次使用新的分頁緩衝區呼叫驅動程式時,此虛擬位址會對齊 4 KB。 驅動程式會緊密封裝分頁緩衝區中的作業,直到分頁緩衝區已滿,然後使用新的分頁緩衝區。 因此,如果圖形處理單位 (GPU) 需要分頁緩衝區提交的特定對齊方式,驅動程式應該藉由填補寫入分頁緩衝區的作業來強制執行此對齊方式。 DxgkDdiBuildPagingBuffer 函式傳回之前,驅動程式應該更新 pDmaBuffer,以指向寫入至分頁緩衝區的最後一個字節。

DmaSize

[in/out]pDmaBuffer 指定之分頁緩衝區的大小,以位元組為單位。

pDmaBufferPrivateData

[in/out]與直接記憶體存取 (DMA) 緩衝區 (也就是分頁緩衝區) 相關聯的驅動程式駐地私用數據結構的指標,pDmaBuffer 指定。

DmaBufferPrivateDataSize

[in/out]保留在私用數據結構中的位元元組數目,pDmaBufferPrivateData 指向目前作業。

Operation

[in]DXGK_BUILDPAGINGBUFFER_OPERATION型別值,表示要執行的記憶體作業類型。

MultipassOffset

[in/out]UINT 值,指定需要多個分頁緩衝區時分頁作業的進度。 驅動程式會設定此值,指出分割成多個傳輸作業的多個分頁緩衝區。 例如,驅動程式可以儲存上次針對分頁式傳輸傳送的頁碼。

Transfer

[in]描述傳輸作業的結構。

Transfer.hAllocation

[in]驅動程式 DxgkDdiCreateAllocation 函式先前在 DXGK_ALLOCATIONINFO 結構的 hAllocation 成員中傳回的配置句柄,這是 DXGKARG_CREATEALLOCATION 結構的 pAllocationInfo 成員的一部分。 配置句柄會指向包含傳輸私人驅動程序數據的緩衝區。

Transfer.TransferOffset

[in]傳輸配置內第一頁的位移,以位元組為單位。 此位移只會套用至區段位置所描述的位置。 此位移不適用於記憶體範圍的 MDL 描述。 如果驅動程式需要一個以上的分頁緩衝區才能完成傳輸(也就是說,驅動程式會從其 DxgkDdiBuildPagingBuffer 函式傳回STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER),TransferOffset 對於此傳輸的每個呼叫 DxgkDdiBuildPagingBuffer 相同。

Transfer.TransferSize

[in]要傳輸之內存資訊的大小,以位元組為單位。

Transfer.Source

[in]描述來源配置的結構。 此結構包含 SegmentId 成員,以及包含來源配置區段的位移(SegmentAddress)的位移,或來源的 MDL 指標(pMdl)。

Transfer.Source.SegmentId

[in]來源配置內的區段標識符,如果來源配置是由 Source 包含之等位的聯集 pMdl 成員所描述,則為零。

Transfer.Source.SegmentAddress

[in]如果來源區段位址 SegmentIdSource 的成員為非零值,則為來源區段位址。 DirectX 圖形核心子系統會將區段位址計算為區段位移的總和和,以及區段的基位址:SegmentAddress = SegmentOffset + Segment.BaseAddr

Transfer.Source.pMdl

[in]緩衝區的指標,其中包含描述來源系統記憶體頁面的 MDL 結構,如果 source SourceSegmentId 成員為零。

Transfer.Destination

[in]描述目的地配置的結構。 此結構包含 SegmentId 成員,以及包含目的地配置區段的位移(SegmentAddress)或目的地 MDL 指標(pMdl)。

Transfer.Destination.SegmentId

[in]目的地配置內的區段標識符,如果目的地配置是由 pMdl 所描述,則為零,Destination 包含的等位 成員。

Transfer.Destination.SegmentAddress

[in]如果 SegmentIdDestination 的成員為非零,則目的地區段位址。 DirectX 圖形核心子系統會將區段位址計算為區段位移的總和和,以及區段的基位址:SegmentAddress = SegmentOffset + Segment.BaseAddr

Transfer.Destination.pMdl

[in]緩衝區的指標,其中包含描述目的地系統記憶體頁面的 MDL 結構,如果 destination DestinationSegmentId 成員為零。

Transfer.Flags

[in]識別位欄位旗標中要執行之特殊鎖定傳輸作業類型的 DXGK_TRANSFERFLAGS 結構。

Transfer.MdlOffset

[in]系統記憶體頁面中的位移,位於 MDL 結構中,pMdl 成員指向的 結構,指向目前作業的第一個系統記憶體頁面。 驅動程式可以呼叫 [MmGetMdlPfnArray](/windows-hardware/drivers/kernel/mm-bad-pointer#mmgetmdlpfnarray 函式,以取得第一個系統記憶體頁面的實體位址,如下所示。

MmGetMdlPfnArray(pMdl)[MdlOffset];

Fill

[in]描述填滿作業的結構。

Fill.hAllocation

[in]配置句柄,其中包含要填入的內容。

Fill.FillSize

[in]要填滿之內存資訊的大小,以位元組為單位。

Fill.FillPattern

[in]要填入目的地的模式。 當配置沒有內容時,影片記憶體管理員會使用此資訊將視訊記憶體初始化為特定模式。 在此情況下,填滿要求沒有來源,只有目的地存在。

Fill.Destination

[in]結構,描述填滿作業的目的地配置。

Fill.Destination.SegmentId

[in]目的地配置中區段的標識碼。

Fill.Destination.SegmentAddress

[in]目的地區段位址。 DirectX 圖形核心子系統會將區段位址計算為區段位移的總和和,以及區段的基位址:SegmentAddress = SegmentOffset + Segment.BaseAddr

DiscardContent

[in]描述捨棄內容作業的結構。

DiscardContent.hAllocation

[in]配置句柄,其中包含要捨棄的內容。

DiscardContent.Flags

[in]識別位欄位旗標中要執行的捨棄內容作業類型 DXGK_DISCARDCONTENTFLAGS 結構。

DiscardContent.SegmentId

[in]配置中要捨棄內容的區段標識碼。

DiscardContent.SegmentAddress

[in]表示區段位址的PHYSICAL_ADDRESS數據類型(定義為LARGE_INTEGER)。 DirectX 圖形核心子系統會將區段位址計算為區段位移的總和和,以及區段的基位址:SegmentAddress = SegmentOffset + Segment.BaseAddr。 此位置是捨棄內容的所在位置。

ReadPhysical

[in]描述讀取實體作業的結構。

ReadPhysical.SegmentId

[in]數據從中讀取之區段的標識碼。

ReadPhysical.PhysicalAddress

[in]PHYSICAL_ADDRESS數據類型(定義為LARGE_INTEGER),表示數據讀取位置的區段內,SegmentId 指定的實體位址。

WritePhysical

[in]描述寫入實體作業的結構。

WritePhysical.SegmentId

[in]寫入數據之區段的標識碼。

WritePhysical.PhysicalAddress

[in]PHYSICAL_ADDRESS數據類型(定義為LARGE_INTEGER),表示 SegmentId 指定之區段內的實體位址,其中會寫入數據。

MapApertureSegment

[in]結構,描述使用 MDL 的地圖孔徑區段作業。

MapApertureSegment.hDevice

[in]擁有 hAllocation 配置之裝置的句柄,指定對應到 SegmentId 指定的光圈區段。

針對共用配置,hDevice 會設定為視訊記憶體管理員判定為配置擁有者的裝置。

hDevice 主要配置 NULL

MapApertureSegment.hAllocation

[in]配置句柄,對應到 SegmentId 指定的光圈區段。

當 DMA 緩衝區對應到光圈區段時,hAllocationNULL,因為驅動程式不會明確建立 DMA 緩衝區。

MapApertureSegment.SegmentId

[in]要設定的光圈區段標識碼。

MapApertureSegment.OffsetInPages

[in]從區段開頭到要對應的第一頁的位移,以分頁為單位。

MapApertureSegment.NumberOfPages

[in]要對應的頁數。

MapApertureSegment.pMdl

[in]緩衝區的指標,其中包含 MDL 結構,描述要對應到光圈區段的實體系統記憶體頁面。

MapApertureSegment.Flags

[in]識別位字段旗標中要執行的地圖-光圈線段作業類型的 DXGK_MAPAPERTUREFLAGS 結構。

MapApertureSegment.MdlOffset

[in]系統記憶體頁面中的位移,位於 MDL 結構中,pMdl 成員指向的 結構,指向目前作業的第一個系統記憶體頁面。 驅動程式可以呼叫 [MmGetMdlPfnArray](/windows-hardware/drivers/kernel/mm-bad-pointer#mmgetmdlpfnarray 函式,以取得第一個系統記憶體頁面的實體位址,如下所示。

MmGetMdlPfnArray(pMdl)[MdlOffset];

UnmapApertureSegment

[in]描述 unmap-aperture-segment 作業的結構。

UnmapApertureSegment.hDevice

[in]擁有 hAllocation 配置之裝置的句柄,指定從 SegmentId 指定的光圈區段取消對應。

針對共用配置,hDevice 會設定為視訊記憶體管理員判定為配置擁有者的裝置。

hDevice 主要配置 NULL

UnmapApertureSegment.hAllocation

[in]從 SegmentId 指定之光圈區段取消對應的配置句柄。

當 DMA 緩衝區從光圈區段取消對應時,hAllocationNULL,因為驅動程式不會明確建立 DMA 緩衝區。

UnmapApertureSegment.SegmentId

[in]要設定的光圈區段標識碼。

UnmapApertureSegment.OffsetInPages

[in]從區段開頭到第一頁到取消對應的位移,以分頁為單位。

UnmapApertureSegment.NumberOfPages

[in]要取消對應的頁數。

UnmapApertureSegment.DummyPage

[in]PHYSICAL_ADDRESS數據類型(定義為 LARGE_INTEGER),表示驅動程式應該對應未對應的範圍之佔位元頁面的實體位址。

SpecialLockTransfer

[in]描述特殊鎖定傳輸作業的結構。

SpecialLockTransfer.hAllocation

[in]驅動程式 DxgkDdiCreateAllocation 函式先前在 DXGK_ALLOCATIONINFO 結構的 hAllocation 成員中傳回的配置句柄,這是 DXGKARG_CREATEALLOCATION 結構的 pAllocationInfo 成員的一部分。 配置句柄會指向緩衝區,其中包含特殊鎖定傳輸的私人驅動程序數據。

SpecialLockTransfer.TransferOffset

[in]傳輸配置內第一頁的位移,以位元組為單位。 此位移只會套用至區段位置所描述的位置。 此位移不適用於記憶體範圍的 MDL 描述。 如果驅動程式需要一個以上的分頁緩衝區才能完成傳輸(也就是說,驅動程式會從其 DxgkDdiBuildPagingBuffer 函式傳回STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER),TransferOffset 對於此傳輸的每個呼叫 DxgkDdiBuildPagingBuffer 相同。

SpecialLockTransfer.TransferSize

[in]要傳輸之內存資訊的大小,以位元組為單位。

SpecialLockTransfer.Source

[in]描述來源配置的結構。 此結構包含 SegmentId 成員,以及包含來源配置區段的位移(SegmentAddress)的位移,或來源的 MDL 指標(pMdl)。

SpecialLockTransfer.Source.SegmentId

[in]來源配置內的區段標識符,如果來源配置是由 Source 包含之等位的聯集 pMdl 成員所描述,則為零。

SpecialLockTransfer.Source。( 未命名的聯集 )

[in]聯集,包含來源配置區段的位移(SegmentAddress),或來源之 MDL 指標(pMdl)。

SpecialLockTransfer.Source.SegmentAddress

[in]如果來源區段位址 SegmentIdSource 的成員為非零值,則為來源區段位址。 DirectX 圖形核心子系統會將區段位址計算為區段位移的總和和,以及區段的基位址:SegmentAddress = SegmentOffset + Segment.BaseAddr

SpecialLockTransfer.Source.pMdl

[in]緩衝區的指標,其中包含描述來源系統記憶體頁面的 MDL 結構,如果 source SourceSegmentId 成員為零。

SpecialLockTransfer.Destination

[in]描述目的地配置的結構。 此結構包含 SegmentId 成員,以及包含目的地配置區段的位移(SegmentAddress)或目的地 MDL 指標(pMdl)。

SpecialLockTransfer.Destination.SegmentId

[in]目的地配置內的區段標識符,如果目的地配置是由 pMdl 所描述,則為零,Destination 包含的等位 成員。

SpecialLockTransfer.Destination。( 未命名的聯集 )

[in]聯集,包含目的地配置區段的位移(SegmentAddress),或目的地的 MDL 指標(pMdl)。

SpecialLockTransfer.Destination.SegmentAddress

[in]如果 SegmentIdDestination 的成員為非零,則目的地區段位址。 DirectX 圖形核心子系統會將區段位址計算為區段位移的總和和,以及區段的基位址:SegmentAddress = SegmentOffset + Segment.BaseAddr

SpecialLockTransfer.Destination.pMdl

[in]緩衝區的指標,其中包含描述目的地系統記憶體頁面的 MDL 結構,如果 destination DestinationSegmentId 成員為零。

SpecialLockTransfer.Flags

[in]識別位欄位旗標中要執行之特殊鎖定傳輸作業類型的 DXGK_TRANSFERFLAGS 結構。

SpecialLockTransfer.SwizzlingRangeId

[in]識別令人眼花繚亂範圍的 UINT 值。

SpecialLockTransfer.SwizzlingRangeData

[in]指定令人眼花繚亂範圍數據的 UINT 值。

InitContextResource

[in]描述內容初始化作業的結構。 從 Windows 8 開始支援。

InitContextResource.hAllocation

[in]驅動程式呼叫 DxgkCbCreateContextAllocation時所建立之內容配置的句柄。 此配置的句柄會在 DXGKARGCB_CREATECONTEXTALLOCATION 結構的 hAllocation 成員中傳回。 驅動程式會在呼叫 DxgkCbCreateContextAllocation時,在 ContextAllocation 參數中傳遞此結構的指標。

InitContextResource.Destination

[in]描述目的地內容配置的結構。 此結構包含 SegmentId 成員,以及包含目的地內容配置區段的位移(SegmentAddress)或目的地之 MDL 指標(pMdl)。

InitContextResource.Destination.SegmentId

[in]目的地內容配置內的區段標識符,如果目的地內容配置是由 Destination 包含之等位的聯集 pMdl 成員所描述,則為零。

InitContextResource.Destination。( 未命名的聯集 )

[in]聯集,包含目的地內容配置區段的位移(SegmentAddress),或目的地的 MDL 指標(pMdl)。

InitContextResource.Destination.SegmentAddress

[in]如果 SegmentIdDestination 的成員為非零,則目的地區段位址。 DirectX 圖形核心子系統會將區段位址計算為區段位移的總和和,以及區段的基位址:SegmentAddress = SegmentOffset + Segment.BaseAddr

InitContextResource.Destination.pMdl

[in]緩衝區的指標,其中包含描述目的地系統記憶體頁面的 MDL 結構,如果 destination DestinationSegmentId 成員為零。

InitContextResource.Destination.VirtualAddress

[in]目的地內容配置的虛擬位址。 此位址在內容配置存留期間有效。

請遵循 DxgkCbCreateContextAllocation 主題中目的地內容配置的虛擬位址一節中的程式,以確保虛擬位址有效。

InitContextResource.Destination.GpuVirtualAddress

要初始化之內容資源的 GPU 虛擬位址。

TransferVirtual

DXGK_BUILDPAGINGBUFFER_TRANSFERVIRTUAL 結構,描述用來在記憶體中位置之間傳輸配置內容的作業。

FillVirtual

DXGK_BUILDPAGINGBUFFER_FILLVIRTUAL 結構,描述用來填入配置模式的作業。

UpdatePageTable

描述用來更新頁面數據表之作業的 DXGK_BUILDPAGINGBUFFER_UPDATEPAGETABLE 結構。

FlushTlb

DXGK_BUILDPAGINGBUFFER_FLUSHTLB 結構,描述用來排清翻譯外觀緩衝區的作業。

CopyPageTableEntries

描述作業的 DXGK_BUILDPAGINGBUFFER_COPYPAGETABLEENTRIES 結構,會使用將頁面數據表專案從某個位置複製到另一個位置。

UpdateContextAllocation

DXGK_BUILDPAGINGBUFFER_UPDATECONTEXTALLOCATION 結構,描述用來更新內容或裝置配置內容的作業。

NotifyResidency

描述落地配置變更作業的 DXGK_BUILDPAGINGBUFFER_NOTIFYRESIDENCY 結構。

SignalMonitoredFence

[in]DXGK_BUILDPAGINGBUFFER_SIGNALMONITOREDFENCE 結構,描述 GPU 指令,以向 DMA 緩衝區發出分頁監視的柵欄物件訊號。 從 Windows 10 版本 1703 開始提供 (WDDM 2.2)。

MapApertureSegment2

MapApertureSegment2.hDevice

[in]擁有 hAllocation 配置之裝置的句柄,指定對應到 SegmentId 指定的光圈區段。

針對共用配置,hDevice 會設定為視訊記憶體管理員判定為配置擁有者的裝置。

hDevice 主要配置 NULL

MapApertureSegment2.hAllocation

[in]對應到 segmentId segmentId 指定之配置的驅動程式句柄。

當 DMA 緩衝區對應到光圈區段時,hAllocationNULL,因為驅動程式不會明確建立 DMA 緩衝區。

MapApertureSegment2.SegmentId

[in]要設定的光圈區段標識碼。

MapApertureSegment2.OffsetInPages

[in]從區段開頭到要對應的第一頁的位移,以分頁為單位。

MapApertureSegment2.NumberOfPages

[in]配置中要對應之範圍的大小,以頁面為單位。

MapApertureSegment2.Adl

[in]具有位址描述項清單 (ADL) 的 DXGK_ADL 結構,描述配置記憶體的邏輯地址對應(pages)。 此 ADL 可以是連續或頁面數位列;驅動程式必須能夠處理這兩個案例。

MapApertureSegment2.Flags

[in]識別位字段旗標中要執行的地圖-光圈線段作業類型的 DXGK_MAPAPERTUREFLAGS 結構。

MapApertureSegment2.AdlOffset

[in]ADL 內的位移 到系統記憶體頁面中指定之目前作業所對應之邏輯位址範圍的開頭。 如果 ADL 是連續的 ADL,則 ADL 的 BasePageNumber 成員是連續記憶體範圍的開始位址。 否則,請使用ADL的 Pages 成員進行非連續記憶體。

MapApertureSegment2.CpuVisibleAddress

如果驅動程式的配置是使用 MapApertureCpuVisible 旗標設定而建立,CpuVisibleAddress 是系統對應、內核模式虛擬位址 DXGK_OPERATION_MAP_APERTURE_SEGMENT2 作業的非 Null 指標。 只要配置對應到光圈區段,而且會在對應 DXGK_OPERATION_UNMAP_APERTURE_SEGMENT 呼叫相同的配置之後立即釋放此地址,這個位址就會有效。

如果未指定 mapApertureCpuVisible cpuVisibleAddress 為 NULL 以進行 DXGK_OPERATION_MAP_APERTURE_SEGMENT2 作業。

NotifyFenceResidency

MmapMmu

UnmapMmu

NotifyResidency2

NotifyAllocation

Reserved

這個成員是保留的,不應使用。

Reserved.Reserved[64]

這個成員是保留的,不應使用。

hSystemContext

[in]分頁作業之系統內容的句柄。

DmaBufferGpuVirtualAddress

D3DGPU_VIRTUAL_ADDRESS 數據類型,指出 DMA 緩衝區分頁所在的虛擬位址。 如果實體位址為零,DMA 緩衝區就不會正確分頁。

DmaBufferWriteOffset

DMA 緩衝區開頭的目前作業位移,以位元組為單位。

言論

MDL 定義於 Windows 驅動程式模型 (WDM) 檔中。

WDDM 同步處理類別:

要求

要求 價值
最低支援的用戶端 從 Windows Vista 開始支援。
標頭 d3dkmddi.h (包括 D3dkmddi.h)

另請參閱

DXGKARGCB_CREATECONTEXTALLOCATION

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DXGK_BUILDPAGINGBUFFER_COPYPAGETABLEENTRIES

DXGK_BUILDPAGINGBUFFER_FILLVIRTUAL

DXGK_BUILDPAGINGBUFFER_FLUSHTLB

DXGK_BUILDPAGINGBUFFER_NOTIFYRESIDENCY

DXGK_BUILDPAGINGBUFFER_TRANSFERVIRTUAL

DXGK_BUILDPAGINGBUFFER_UPDATECONTEXTALLOCATION

DXGK_BUILDPAGINGBUFFER_UPDATEPAGETABLE

DXGK_DISCARDCONTENTFLAGS

DXGK_MAPAPERTUREFLAGS

DXGK_TRANSFERFLAGS

DxgkCbCreateContextAllocation

DxgkDdiBuildPagingBuffer

DxgkDdiCreateAllocation

MDL

[mmGetMdlPfnArray](/windows-hardware/drivers/kernel/mm-bad-pointer#mmgetmdlpfnarray

pfnLockCb