D3DDDI_ALLOCATIONINFO 结构 (d3dukmdt.h)

D3DDDI_ALLOCATIONINFO 结构描述了 WDDM v1 的分配。 用户模式图形客户端应改用 D3DDDI_ALLOCATIONINFO2

语法

typedef struct _D3DDDI_ALLOCATIONINFO {
  D3DKMT_HANDLE                  hAllocation;
  void                           D3DKMT_PTR(
    const VOID *unnamedParam1,
    pSystemMem unnamedParam2
  );
  void                           D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
  UINT                           PrivateDriverDataSize;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
  union {
    struct {
      UINT Primary : 1;
      UINT Stereo : 1;
#if ...
      UINT Reserved : 30;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  } Flags;
} D3DDDI_ALLOCATIONINFO;

成员

hAllocation

[out]表示分配的内核模式句柄 的D3DKMT_HANDLE 。 如果非 NULL) Direct3D 运行时 的 pfnAllocateCb 函数在 (D3DDDICB_ALLOCATE结构的 hKMResource 成员中返回,则此句柄与内核模式资源 句柄相关联 。 用户模式显示驱动程序可以使用此内核模式分配句柄来引用命令缓冲区中的分配。

void D3DKMT_PTR( const VOID *unnamedParam1, pSystemMem unnamedParam2)

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

PrivateDriverDataSize

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

VidPnSourceId

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

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

Flags

[in]包含结构或 32 位值(用于标识分配类型)的联合。

Flags.Primary

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

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

Flags.Stereo

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

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

Flags.Reserved

[in]此成员为保留成员,应设置为零。

Flags.Value

[in]标识分配类型的 32 位值。

注解

当用户模式显示驱动程序在 D3DDDI_ALLOCATIONINFO 的 Flags 成员中设置位字段标志时,在调用显示微型端口驱动程序的 DxgkDdiCreateAllocation 函数时,DXGKARG_CREATEALLOCATION 结构的 pAllocationInfo 成员中的DXGK_ALLOCATIONINFO结构适用。 包含如下这些限制:

  • 分配根据偏好进行分配:否则,分配默认为支持的写入段集,并且写入段集中的所有指定段都必须可访问 CPU。

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

  • PermanentSysMem

  • Cached(缓存的请求)

  • Protected

  • ExistingSysMem

  • ExistingKernelSysMem

D3DDDI_ID_NOTAPPLICABLE常量在 D3dukmdt.h 中定义。

要求

要求
最低受支持的客户端 Windows Vista
标头 d3dukmdt.h (包括 D3dumddi.h、D3dkmddi.h)

另请参阅

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_ALLOCATIONINFO2

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb