D3DKMT_CREATEALLOCATION structure (d3dkmthk.h)

The D3DKMT_CREATEALLOCATION structure describes parameters for creating allocations.

Syntax

typedef struct _D3DKMT_CREATEALLOCATION {
  [in]     D3DKMT_HANDLE                hDevice;
  [in/out] D3DKMT_HANDLE                hResource;
  [out]    D3DKMT_HANDLE                hGlobalShare;
  void                         D3DKMT_PTR(
    const VOID          *unnamedParam1,
    pPrivateRuntimeData unnamedParam2
  );
  [in]     UINT                         PrivateRuntimeDataSize;
  union {
    [in]     D3DKMT_CREATESTANDARDALLOCATION *pStandardAllocation;
    [in]     const VOID                      *pPrivateDriverData;
  };
  [in/out] UINT                         PrivateDriverDataSize;
  [in]     UINT                         NumAllocations;
  union {
    [in]     D3DDDI_ALLOCATIONINFO  *pAllocationInfo;
    [in]     D3DDDI_ALLOCATIONINFO2 *pAllocationInfo2;
  };
  [in]     D3DKMT_CREATEALLOCATIONFLAGS Flags;
  void                         D3DKMT_PTR(
    HANDLE                        unnamedParam1,
    hPrivateRuntimeResourceHandle unnamedParam2
  );
} D3DKMT_CREATEALLOCATION;

Members

[in] hDevice

A handle to the device that the resource or allocation is associated with.

[in/out] hResource

A D3DKMT_HANDLE data type that represents a kernel-mode handle to the resource that is associated with the allocations. The value in hResource should always be zero unless an allocation will be added to an existing resource, in which case hResource contains the resource handle.

When the CreateResource bit-field flag is set in the Flags member, the OpenGL runtime generates a unique handle and passes it back to the driver. On output from the D3DKMTCreateAllocation function, hResource specifies the handle that the driver should use in subsequent OpenGL runtime calls to identify the resource. The resource handle that is returned is device-specific and is valid only when used with the device that it was created on.

[out] hGlobalShare

A user-mode client driver should not share resources using global handles. The driver should set NtSecuritySharing in Flags and call D3DKMTShareObjects to get an NT handle. Using global handles is not secure. Any process can guess a global handle and open a shared object. Global handles are supported only for compatibility reasons with old D3D runtimes. (When NtSecuritySharing isn't set, the global handle is returned in hGlobalShare. Nothing prevents a UMD from sharing a resource using a global handle, but drivers shouldn't do that.)

void D3DKMT_PTR( const VOID *unnamedParam1, pPrivateRuntimeData unnamedParam2)

[in] PrivateRuntimeDataSize

The size, in bytes, of the private data that pPrivateRuntimeData points to.

[in] pStandardAllocation

Pointer to a D3DKMT_CREATESTANDARDALLOCATION structure that describes the standard allocation to be created.

[in] pPrivateDriverData

A pointer to a buffer that contains optional private data that the display miniport driver might require to create the resource or allocation. The contents of the buffer typically come from the ICD and must be in a format that the display miniport driver can process.

[in/out] PrivateDriverDataSize

The size, in bytes, of the private data that pPrivateDriverData points to.

[in] NumAllocations

The number of elements in the array that pAllocationInfo specifies, which represents the number of allocations to create. Note that creating a resource without any allocations initially associated with it is valid; therefore, NumAllocations can be set to 0.

[in] pAllocationInfo

An array of D3DDDI_ALLOCATIONINFO structures that describe specific properties for each allocation to create.

[in] pAllocationInfo2

This member is reserved and should be set to zero.

This member is available beginning with Windows 7.

[in] Flags

A D3DKMT_CREATEALLOCATIONFLAGS structure that identifies attributes for creating the allocation, in bit-field flags.

If you set the CreateShared bit-field flag in Flags, you must also set the CreateResource bit-field flag.

void D3DKMT_PTR( HANDLE unnamedParam1, hPrivateRuntimeResourceHandle unnamedParam2)

Requirements

Requirement Value
Minimum supported client Windows Vista
Header d3dkmthk.h (include D3dkmthk.h)

See also

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS