DXGK_DRIVERCAPS 結構 (d3dkmddi.h)

DXGK_DRIVERCAPS 結構描述驅動程式透過呼叫其 DxgkDdiQueryAdapterInfo 函式所提供的顯示迷你埠驅動程式功能。

語法

typedef struct _DXGK_DRIVERCAPS {
  [out] PHYSICAL_ADDRESS                   HighestAcceptableAddress;
  [out] UINT                               MaxAllocationListSlotId;
  [out] SIZE_T                             ApertureSegmentCommitLimit;
  [out] UINT                               MaxPointerWidth;
  [out] UINT                               MaxPointerHeight;
  [out] DXGK_POINTERFLAGS                  PointerCaps;
  [out] UINT                               InterruptMessageNumber;
  [out] UINT                               NumberOfSwizzlingRanges;
  [out] UINT                               MaxOverlays;
  union {
    [out] DXGK_GAMMARAMPCAPS      GammaRampCaps;
    [out] DXGK_COLORTRANSFORMCAPS ColorTransformCaps;
  };
  [out] DXGK_PRESENTATIONCAPS              PresentationCaps;
  [out] UINT                               MaxQueuedFlipOnVSync;
  [out] DXGK_FLIPCAPS                      FlipCaps;
  [out] DXGK_VIDSCHCAPS                    SchedulingCaps;
  [out] DXGK_VIDMMCAPS                     MemoryManagementCaps;
  [out] DXGK_GPUENGINETOPOLOGY             GpuEngineTopology;
  [out] DXGK_WDDMVERSION                   WDDMVersion;
        DXGK_VIRTUALADDRESSCAPS_DEPRECATED Reserved;
        DXGK_DMABUFFERCAPS_DEPRECATED      Reserved1;
  [out] D3DKMDT_PREEMPTION_CAPS            PreemptionCaps;
  [out] BOOLEAN                            SupportNonVGA;
  [out] BOOLEAN                            SupportSmoothRotation;
  [out] BOOLEAN                            SupportPerEngineTDR;
  [out] BOOLEAN                            SupportDirectFlip;
  [out] BOOLEAN                            SupportMultiPlaneOverlay;
  [out] BOOLEAN                            SupportRuntimePowerManagement;
  [out] BOOLEAN                            SupportSurpriseRemovalInHibernation;
  [out] BOOLEAN                            HybridDiscrete;
  [out] UINT                               MaxOverlayPlanes;
        BOOLEAN                            HybridIntegrated;
        D3DGPU_VIRTUAL_ADDRESS             InternalGpuVirtualAddressRangeStart;
        D3DGPU_VIRTUAL_ADDRESS             InternalGpuVirtualAddressRangeEnd;
        BOOLEAN                            SupportSurpriseRemoval;
  [out] BOOLEAN                            SupportMultiPlaneOverlayImmediateFlip;
  [out] BOOLEAN                            CursorScaledWithMultiPlaneOverlayPlane0;
        BOOLEAN                            HybridAcpiChainingRequired;
  [out] UINT                               MaxQueuedMultiPlaneOverlayFlipVSync;
  union {
    struct {
      UINT SupportContextlessPresent : 1;
      UINT Detachable : 1;
      UINT VirtualGpuOnly : 1;
      UINT ComputeOnly : 1;
      UINT IndependentVidPnVSyncControl : 1;
      UINT NoHybridDiscreteDListDllSupport : 1;
      UINT DisplayableSupport : 1;
#if ...
      UINT Reserved : 25;
#elif
      UINT Reserved : 26;
#elif
      UINT Reserved : 27;
#elif
      UINT Reserved : 28;
#elif
      UINT Reserved : 29;
#else
      UINT Reserved : 30;
#endif
    };
          UINT Value;
  } MiscCaps;
        UINT                               MaxHwQueuedFlips;
        DXGK_HWQUEUEDFLIP_CAPS             HwQueuedFlipCaps;
} DXGK_DRIVERCAPS;

成員

[out] HighestAcceptableAddress

PHYSICAL_ADDRESS數據類型 (定義為LARGE_INTEGER) ,表示要使用的系統記憶體 (RAM) 可接受的最高實體位址。

[out] MaxAllocationListSlotId

配置清單位置識別碼的最大數目。 配置清單位置代表直接記憶體存取中導向配置的位置, (DMA) 緩衝處理。

[out] ApertureSegmentCommitLimit

顯示迷你埠驅動程式支持對應到光圈區段的實體記憶體位元組數目上限。 視訊記憶體管理員不會將比 ApertureSegmentCommitLimit 所指定的限制更多的物理記憶體對應到光圈區段。

[out] MaxPointerWidth

滑鼠指標的最大寬度,以像素為單位。

[out] MaxPointerHeight

滑鼠指標的最大高度,以掃描行為單位。

[out] PointerCaps

DXGK_POINTERFLAGS結構,可識別驅動程式可支援的位字段旗標的滑鼠指標功能。

[out] InterruptMessageNumber

如果使用訊息訊號中斷,而且驅動程式會從對應至固定訊息號碼的中斷處理程式呼叫 DxgkCbNotifyInterrupt 函式時所使用的訊息編號。

[out] NumberOfSwizzlingRanges

驅動程式可支援的撥動範圍數目。

[out] MaxOverlays

驅動程式可支援的重疊數目上限。

[out] GammaRampCaps

DXGK_GAMMARAMPCAPS結構,可識別驅動程式可支援的位字段旗標的 gamma-ramp 功能。

[out] ColorTransformCaps

用來描述顯示管線之 gamma 和色彩空間轉換功能的旗標。 注意:此欄位會取代此結構前 WDDM 2.2 版本中的 GammaRampCaps。

[out] PresentationCaps

DXGK_PRESENTATIONCAPS結構,可識別驅動程式可支援的位字段旗標的呈現功能。

[out] MaxQueuedFlipOnVSync

可在圖形硬體上排入佇列和擱置的翻轉次數。 每個翻轉都會闩鎖到數位到模擬轉換器, (DAC) 每個 VSync 中斷,因為圖形硬體會將翻轉排入佇列。

[out] FlipCaps

DXGK_FLIPCAPS結構,可識別驅動程式可支援的位字段旗標中翻轉功能。

[out] SchedulingCaps

DXGK_VIDSCHCAPS結構,可識別驅動程式可支援的位字段旗標的圖形處理器 (GPU) 排程功能。

[out] MemoryManagementCaps

DXGK_VIDMMCAPS結構,可識別驅動程式可支援的視訊記憶體管理功能。

[out] GpuEngineTopology

描述驅動程式可支援之 GPU 引擎拓撲 的DXGK_GPUENGINETOPOLOGY 結構。

[out] WDDMVersion

識別 WDDM 版本的 DXGK_WDDMVERSION 值。 從 Windows 7 開始支援。

如果驅動程式支援 Windows 7 或更新版本功能 (DXGKDDI_INTERFACE_VERSION ≥ DXGKDDI_INTERFACE_VERSION_WIN7) ,此成員會保留,且應設定為零。

對於不支援 Windows 7 或更新版本的舊版驅動程式, (DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7) :

  • 若要使用 Windows 7 WDK (版本 7600) 編譯驅動程式,請將此成員設定為 DXGKDDI_WDDMv1。
  • 若要使用 Windows 8 WDK 編譯驅動程式,請將此成員設定為 DXGKDDI_WDDMv1_2。

Reserved

保留的。

Reserved1

保留的。

[out] PreemptionCaps

D3DKMDT_PREEMPTION_CAPS結構,描述驅動程式所支援之 GPU 圖形要求預先佔位的功能。

從 Windows 8 開始支援。

[out] SupportNonVGA

如果 為 TRUE,驅動程式支援重設顯示裝置,並使用 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函式來釋放目前電源開啟開機 () 裝置的擁有權。

從 Windows 8 開始支援。

[out] SupportSmoothRotation

如果 為 TRUE,則驅動程式支援使用 DxgkDdiUpdateActiveVidPnPresentPath 函式更新適配卡上的路徑旋轉,而不需要建立和設定新的 VidPN。

從 Windows 8 開始支援。

[out] SupportPerEngineTDR

如果 為 TRUE,則驅動程式支援重設個別 GPU 引擎。

如果設定此成員,顯示迷你埠驅動程序必須實作 DxgkDdiQueryDependentEngineGroupDxgkDdiQueryEngineStatusDxgkDdiResetEngine 函式。

從 Windows 8 開始支援。

[out] SupportDirectFlip

如果為 TRUE,驅動程式支援建立和開啟共享受控主要配置。 TRUE 的值也表示下列各項:

  • 顯示迷你埠驅動程序保證呼叫 DxgkDdiSetVidPnSourceAddress 函式時,驅動程式不允許將視訊記憶體翻轉為不相容的配置。
  • 使用者模式驅動程式會在桌面 Windows 管理員 (DWM) 使用這些資源之前驗證直接翻轉資源。

只有 DWM 可以將視訊記憶體翻轉至直接翻轉資源。 DWM 會使用使用者模式 CheckDirectFlipSupport 函式來驗證這些資源。

從 Windows 8 開始支援。

[out] SupportMultiPlaneOverlay

如果 為 TRUE,則顯示迷你埠驅動程式支援多平面重疊,而且驅動程式也應該設定 MaxOverlayPlanes 成員的值。 如果 為 FALSE,DirectX 圖形核心子系統將不會呼叫多平面重疊函式。

從 Windows 8.1 開始支援。

[out] SupportRuntimePowerManagement

如果 為TRUE,則顯示迷你埠驅動程式支援運行時間電源管理。

如果設定此成員,顯示迷你埠驅動程序必須實作 DxgkDdiSetPowerComponentFStateDxgkDdiPowerRuntimeControlRequest 函式。

從 Windows 8 開始支援。

[out] SupportSurpriseRemovalInHibernation

如果 為 TRUE,則顯示迷你埠驅動程式支援在外部顯示裝置處於休眠模式且與系統中斷連線之後清除軟體資源。

如果已設定此成員,則顯示迷你埠驅動程序必須實作 DxgkDdiNotifySurpriseRemoval 函式,並將 RemovalType 參數設定為 DxgkRemovalHibernation

如需詳細資訊,請參閱 在混合式系統中使用跨適配卡資源

從 Windows 8 開始支援。

[out] HybridDiscrete

如果 為TRUE,則顯示迷你埠驅動程式是 混合式系統中的離散 GPU。

如果已設定此成員,則顯示迷你埠驅動程序應該:

  • 支援 WDDM 1.3
  • 支援跨配接器資源
  • 沒有顯示輸出

如需詳細資訊,請參閱 在混合式系統中使用跨適配卡資源

從 Windows 8.1 開始支援。

[out] MaxOverlayPlanes

如果 SupportRuntimePowerManagementTRUE,則顯示迷你埠驅動程式應該將 MaxOverlayPlanes 設定為可同時顯示在單一輸出上的重疊平面數目上限,包括可支援的主要表面。 如果作業模式變更時可用的平面數目會變更,驅動程序應該使用反映最佳案例的數位。

從 Windows 8.1 開始支援。

HybridIntegrated

指出目前的 GPU 是否為混合式。

InternalGpuVirtualAddressRangeStart

內部 GPU 虛擬位址範圍開始。

InternalGpuVirtualAddressRangeEnd

內部 GPU 虛擬位址範圍結束。

SupportSurpriseRemoval

如果為TRUE,顯示迷你埠驅動程序支援意外移除。

[out] SupportMultiPlaneOverlayImmediateFlip

如果為 TRUE,只要變更的唯一值是要顯示的實體地址,顯示迷你埠驅動程式就支援立即翻轉至多平面重疊平面。

[out] CursorScaledWithMultiPlaneOverlayPlane0

如果為 TRUE,則顯示硬體一律會將相同的縮放比例套用至硬體游標,如同套用每個平面多平面重疊延展時套用至平面 0。

HybridAcpiChainingRequired

指出此混合式離散驅動程式需要鏈結整合式適配卡上觸發的ACPI事件。

[out] MaxQueuedMultiPlaneOverlayFlipVSync

指出單一平面的更新數目上限可以在單一 Vsync 期間內進行,其中最新的更新會覆寫先前的更新。 如果驅動程式支援 硬體翻轉佇列,OS 會忽略此值。

MiscCaps

其他功能。

MiscCaps.SupportContextlessPresent

支援 DDI 呼叫中的 Null 內容。 設定此值時,OS 會在目前相關的 DIS 中傳遞 NULL 內容。 從 WDDM 2.4 開始支援。

MiscCaps.Detachable

可卸離,也就是熱插即插即用。 如果適配卡是熱插入式,驅動程式會在配接器初始化期間設定此位。 從 WDDM 2.4 開始支援。

MiscCaps.VirtualGpuOnly

主機上的 Direct3D 應用程式不應使用配接器。 從 WDDM 2.5 開始支援。

MiscCaps.ComputeOnly

藉由轉譯 WDDM 的僅限轉譯裝置功能,支援 Compute-Only 裝置。 從 Windows 10 版本 1901 (WDDM 2.6) 開始支援

MiscCaps.IndependentVidPnVSyncControl

設定此功能的驅動程序應該會在 DdiControlInterrupt3 中讀取指定的 VidPnSourceId,並在所述的 VidPnSourceId 上控制 VSync。 從 Windows 10 版本 2004 (WDDM 2.7) 開始支援。

MiscCaps.NoHybridDiscreteDListDllSupport

指出驅動程式是否支援 d-List。 從 Windows 10 版本 2004 (WDDM 2.8) 開始支援。

MiscCaps.DisplayableSupport

指出驅動程式是否支援可顯示的功能。 從 Windows 11 (WDDM 3.0) 開始支援。

MiscCaps.Reserved

保留的。

MiscCaps.Value

存取 MiscCaps 位的替代方式。

MaxHwQueuedFlips

驅動程式支持的硬體翻轉佇列數目上限。 如果 OS 允許硬體翻轉佇列支援,驅動程式可以將 MaxHwQueuedFlips 設定為大於 1 的值。 已在 Windows Server 2022 (WDDM 2.9) 中新增;從 Windows 11 (WDDM 3.0) 開始支援。

HwQueuedFlipCaps

描述硬體翻轉佇列功能的 DXGK_HWQUEUEDFLIP_CAPS 值。 已在 Windows Server 2022 (WDDM 2.9) 中新增;從 Windows 11 (WDDM 3.0) 開始支援。

規格需求

需求
最低支援的用戶端 Windows Vista
標頭 d3dkmddi.h (include D3dkmddi.h)

另請參閱

DxgkDdiUpdateActiveVidPnPresentPath

DXGK_VIDSCHCAPS

DxgkDdiStopDeviceAndReleasePostDisplayOwnership

CheckDirectFlipSupport

DXGK_POINTERFLAGS

D3DKMDT_PREEMPTION_CAPS

DXGK_GAMMARAMPCAPS

DxgkDdiQueryAdapterInfo

DXGK_PRESENTATIONCAPS

DXGK_VIDMMCAPS

DXGK_GPUENGINETOPOLOGY

DxgkDdiQueryEngineStatus

DxgkDdiSetPowerComponentFState

DxgkDdiSetVidPnSourceAddress

DxgkDdiResetEngine

DxgkDdiPowerRuntimeControlRequest

DxgkCbNotifyInterrupt

DxgkDdiNotifySurpriseRemoval

DxgkDdiQueryDependentEngineGroup

DXGK_FLIPCAPS

DXGKARG_QUERYADAPTERINFO