DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA structure (d3dkmddi.h)

The DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA structure describes a standard allocation type.

Syntax

typedef struct _DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA {
  D3DKMDT_STANDARDALLOCATION_TYPE StandardAllocationType;
  union {
    D3DKMDT_SHAREDPRIMARYSURFACEDATA *pCreateSharedPrimarySurfaceData;
    D3DKMDT_SHADOWSURFACEDATA        *pCreateShadowSurfaceData;
    D3DKMDT_STAGINGSURFACEDATA       *pCreateStagingSurfaceData;
    D3DKMDT_GDISURFACEDATA           *pCreateGdiSurfaceData;
    D3DKMDT_VIRTUALGPUSURFACEDATA    *pCreateVirtualGpuSurfaceData;
    D3DKMDT_FENCESTORAGESURFACEDATA  *pCreateFenceStorageData;
  };
  VOID                            *pAllocationPrivateDriverData;
  UINT                            AllocationPrivateDriverDataSize;
  VOID                            *pResourcePrivateDriverData;
  UINT                            ResourcePrivateDriverDataSize;
  UINT                            PhysicalAdapterIndex;
} DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA;

Members

StandardAllocationType

[in] A D3DKMDT_STANDARDALLOCATION_TYPE-typed value that identifies the type of standard allocation to describe.

pCreateSharedPrimarySurfaceData

[in] A pointer to a D3DKMDT_SHAREDPRIMARYSURFACEDATA structure, if StandardAllocationType specifies D3DKMDT_STANDARDALLOCATION_SHAREDPRIMARYSURFACE.

pCreateShadowSurfaceData

[in] A pointer to a D3DKMDT_SHADOWSURFACEDATA structure, if StandardAllocationType specifies D3DKMDT_STANDARDALLOCATION_SHADOWSURFACE.

pCreateStagingSurfaceData

[in] A pointer to a D3DKMDT_STAGINGSURFACEDATA structure, if StandardAllocationType specifies D3DKMDT_STANDARDALLOCATION_STAGINGSURFACE.

pCreateGdiSurfaceData

[in] A pointer to a D3DKMDT_GDISURFACEDATA structure, only available if StandardAllocationType specifies D3DKMDT_STANDARDALLOCATION_GDISURFACE.

This member is available beginning with Windows 7.

pCreateVirtualGpuSurfaceData

Pointer to a D3DKMDT_VIRTUALGPUSURFACEDATA structure if StandardAllocationType is D3DKMDT_STANDARDALLOCATION_VIRTUALGPUSURFACE. Available starting in WDDM 2.1.

pCreateFenceStorageData

Pointer to a D3DKMDT_FENCESTORAGESURFACEDATA structure if StandardAllocationType is D3DKMDT_STANDARDALLOCATION_FENCESTORAGE. Available starting in WDDM 3.2.

pAllocationPrivateDriverData

[in/out] A pointer to a block of allocation private data that describes the standard allocation type; otherwise, this member is NULL. The allocation private data that the display miniport driver's (KMD's) DxgkDdiGetStandardAllocationDriverData function returns depends on the type that the driver requests in StandardAllocationType.

AllocationPrivateDriverDataSize

[out] The size, in bytes, of the allocation private data that pAllocationPrivateDriverData points to. If the driver sets pAllocationPrivateDriverData to NULL, the driver should set AllocationPrivateDriverDataSize to the size of the buffer that the driver requires to describe the given standard allocation type.

If the driver doesn't use private data for each allocation for standard allocations types, the driver can set AllocationPrivateDriverDataSize to zero.

pResourcePrivateDriverData

[in/out] A pointer to a block of resource private data that describes the standard allocation type; otherwise, this member is NULL. The resource private data that the display miniport driver's DxgkDdiGetStandardAllocationDriverData function returns depends on the type that the driver requests in StandardAllocationType.

ResourcePrivateDriverDataSize

[out] The size, in bytes, of the resource private data that pResourcePrivateDriverData points to. If the driver sets pResourcePrivateDriverData to NULL, the driver should set ResourcePrivateDriverDataSize to the size of the buffer that the driver requires to describe the given standard allocation type.

If the driver does not use private data for each resource for standard allocations types, the driver can set ResourcePrivateDriverDataSize to zero.

PhysicalAdapterIndex

[in] The physical adapter index in an LDA configuration where the storage will be resident.

Remarks

Standard allocation types are allocations that must be created in kernel mode without communication from the user-mode display driver.

If the kernel-mode display miniport driver (KMD) returns NULL in the pAllocationPrivateDriverData and pResourcePrivateDriverData member, it should return the sizes of the buffers that it requires in the AllocationPrivateDriverDataSize and ResourcePrivateDriverDataSize members. However, the KMD shouldn't change the contents of the standard allocation structure in the union that DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA contains to obtain the required sizes of the buffers.

Although KMD can set ResourcePrivateDriverDataSize or AllocationPrivateDriverDataSize to zero, it can't set both to zero.

Requirements

Requirement Value
Minimum supported client Windows Vista
Header d3dkmddi.h (include D3dkmddi.h)

See also

D3DKMDT_GDISURFACEDATA

D3DKMDT_SHADOWSURFACEDATA

D3DKMDT_SHAREDPRIMARYSURFACEDATA

D3DKMDT_STAGINGSURFACEDATA

D3DKMDT_STANDARDALLOCATION_TYPE

D3DKMDT_VIRTUALGPUSURFACEDATA

DxgkDdiGetStandardAllocationDriverData