D3DDDI_ALLOCATIONINFO2结构(d3dukmdt.h)

D3DDDI_ALLOCATIONINFO2 结构描述分配。

语法

typedef struct _D3DDDI_ALLOCATIONINFO2 {
  D3DKMT_HANDLE                         hAllocation;
  union {
    HANDLE     hSection;
    const VOID *pSystemMem;
  } D3DKMT_ALIGN64;
  VOID                                  *pPrivateDriverData;
  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

pPrivateDriverData

[in/out,opt]指向缓冲区的指针,其中包含显示微型端口驱动程序可能需要用于创建分配的可选专用数据。 显示微型端口驱动程序还可以返回缓冲区中的数据。 当缓冲区的内容传递到显示微型端口驱动程序时,内容必须采用显示微型端口驱动程序可以处理的格式。

PrivateDriverDataSize

[in]私有数据的大小(以字节为单位)。

VidPnSourceId

[in]如果分配用于主图面,则视频演示网络 (VidPN) 拓扑路径中视频演示源的从零开始的 VidPN 标识号。 驱动程序应仅针对主要分配类型设置 VidPnSourceId,而不适用于任何其他类型的分配。 如果驱动程序在调用 pfnAllocateCb 函数时为任何其他分配类型设置 VidPnSourceIdpfnAllocateCb 返回D3DDDI_ID_NOTAPPLICABLE。

当 DirectX 图形内核子系统启动为共享主图面的分配创建时,显示微型端口驱动程序可以从 VidPnSourceId D3DKMDDI_SHAREDPRIMARYSURFACEDATA pPrivateDriverData DXGK_ALLOCATIONINFO 结构的成员成员确定标识号。

Flags

[in]一个包含结构或标识分配类型的 32 位值的联合。

Flags.Primary

[in]一个 UINT,指定分配是否是桌面的一部分。 CPU 可隐式访问此类分配。 主分配可以在创建时固定,也可以在创建时未固定。

设置此成员等效于设置 32 位 成员的第一位(0x00000001)。

Flags.Stereo

[in]从 Windows 8 开始支持 (WDDM 1.2)。 一个 UINT,指定分配是否为立体声主分配。 仅当设置 成员时,才能设置 立体声 成员。

设置此成员等效于设置 32 位 成员的第二位(0x00000002)。

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成员中设置 位字段标志时,某些限制 DXGK_ALLOCATIONINFO 适用于 pAllocationInfo 中 DXGKARG_CREATEALLOCATION 结构的成员,以便在调用显示微型端口驱动程序的 DxgkDdiCreateAllocation 函数中分配。 这些限制包括:

  • 根据首选项分配分配;否则,分配默认为支持的写入段集,并且写入段集中的所有指定段都必须能够访问 CPU。

  • 显示微型端口驱动程序无法在 标志DXGK_ALLOCATIONINFO成员中设置以下位字段标志:

  • PermanentSysMem

  • 缓存

  • 保护

  • ExistingSysMem

  • ExistingKernelSysMem

D3DDDI_ID_NOTAPPLICABLE常量在 D3dukmdt.h中定义。

要求

要求 价值
最低支持的客户端 Windows 7
标头 d3dukmdt.h

另请参阅

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb