D3DDDI_ALLOCATIONINFO2 結構 (d3dukmdt.h)

D3DDDI_ALLOCATIONINFO2 結構描述配置。

語法

typedef struct _D3DDDI_ALLOCATIONINFO2 {
  D3DKMT_HANDLE                         hAllocation;
  union {
    HANDLE     hSection;
    const VOID *pSystemMem;
  } D3DKMT_ALIGN64;
  void                                  D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
  UINT                                  PrivateDriverDataSize;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID        VidPnSourceId;
  union {
    struct {
      UINT Primary : 1;
      UINT Stereo : 1;
      UINT OverridePriority : 1;
#if ...
      UINT Reserved : 29;
#elif
      UINT Reserved : 30;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  } Flags;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
  union {
    UINT                     Priority;
    D3DKMT_ALIGN64 ULONG_PTR Unused;
  };
#if ...
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[5];
#else
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[6];
#endif
} D3DDDI_ALLOCATIONINFO2;

成員

hAllocation

[out] D3DKMT_HANDLE 句柄,表示配置的核心模式句柄。 如果 Direct3D 執行時間的 pfnAllocateCb 函式在 D3DDDICB_ALLOCATE 結構的 hKMResource 成員中傳回非 NULL) ,此句 (柄會與核心模式資源句柄相關聯。 使用者模式顯示驅動程式可以使用這個核心模式配置句柄來參考命令緩衝區中的配置。

D3DKMT_ALIGN64

hSectionpSystemMem 的聯集。

D3DKMT_ALIGN64.hSection

[in]有效區段物件的句柄。 設定 D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection 時,請使用 hSection

D3DKMT_ALIGN64.pSystemMem

[in]預先配置的系統記憶體指標。 未設定 D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection 時,請使用 pSystemMem

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

PrivateDriverDataSize

[in]以位元組為單位的私用數據大小。

VidPnSourceId

[in]視訊呈現網路路徑中視訊呈現來源的以零起始的 VidPN 識別碼,如果配置適用於主要介面, (VidPN) 拓撲。 驅動程式應該只針對主要配置類型設定 VidPnSourceId ,而不是針對任何其他類型的配置設定。 如果驅動程式在呼叫 pfnAllocateCb 函式時為任何其他配置類型設定 VidPnSourceId,pfnAllocateCb 會傳回D3DDDI_ID_NOTAPPLICABLE。

當 DirectX 圖形核心子系統起始共用主要介面的配置建立時,顯示迷你埠驅動程式可以從 DXGK_ALLOCATIONINFO D3DKMDDI_SHAREDPRIMARYSURFACEDATA結構的 pPrivateDriverData 成員指向的 D3DKMDDI_SHAREDPRIMARYSURFACEDATA 結構 VidPnSourceId 成員判斷標識符

Flags

[in]包含結構或識別配置類型的32位值的等位。

Flags.Primary

[in]指定配置是否屬於桌面的 UINT。 這類配置可隱含地供CPU存取。 主要配置可以在建立時釘選,或無法在建立時釘選。

設定此成員相當於 (0x00000001) 設定 32 位 Value 成員的第一個位。

Flags.Stereo

[in]從 Windows 8 (WDDM 1.2) 開始支援。 UINT,指定配置是否為立體主要配置。 只有在設定主要成員時,才能設定立體成員。

設定此成員相當於 (0x00000002) 設定 32 位 Value 成員的第二個位。

Flags.OverridePriority

[in]從 Windows 10 1703 版 (WDDM 2.2) 開始支援。 覆寫優先順序,如使用者模式圖形驅動程式所建立。

Flags.Reserved

[in]這個成員是保留的,而且應該設定為零。

Flags.Value

[in]識別配置類型的32位值。

GpuVirtualAddress

[out]所建立配置的 GPU 虛擬位址。

Priority

[in]配置的優先順序。

Unused

未使用的。

Reserved[5]

Reserved[6]

備註

當使用者模式顯示驅動程式在 D3DDDI_ALLOCATIONINFO的 Flags 成員中設定主要位字段旗標時,某些限制會套用至DXGKARG_CREATEALLOCATION結構之 pAllocationInfo 成員中的DXGK_ALLOCATIONINFO結構,以便呼叫 display miniport 驅動程式的 DxgkDdiCreateAllocation 函式。 這些限制包括下列各項:

  • 配置會根據喜好設定來配置;否則,配置預設為支援的寫入區段集,而寫入區段中的所有指定區段都必須可存取 CPU。

  • 顯示迷你連接埠驅動程式無法在 DXGK_ALLOCATIONINFOFlags 成員中設定下列位欄位字段旗標:

  • PermanentSysMem

  • 快取

  • Protected

  • ExistingSysMem

  • ExistingKernelSysMem

D3DDDI_ID_NOTAPPLICABLE常數定義於 D3dukmdt.h 中。

規格需求

需求
最低支援的用戶端 Windows 7
標頭 d3dukmdt.h

另請參閱

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb