Compartir a través de


estructura D3DKMT_CREATEALLOCATION (d3dkmthk.h)

La estructura D3DKMT_CREATEALLOCATION describe los parámetros para crear asignaciones.

Sintaxis

typedef struct _D3DKMT_CREATEALLOCATION {
  [in]     D3DKMT_HANDLE                hDevice;
  [in/out] D3DKMT_HANDLE                hResource;
  [out]    D3DKMT_HANDLE                hGlobalShare;
  [in]     const VOID                   *pPrivateRuntimeData;
  [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;
  [in]     HANDLE                       hPrivateRuntimeResourceHandle;
} D3DKMT_CREATEALLOCATION;

Miembros

[in] hDevice

Identificador del dispositivo al que está asociado el recurso o la asignación.

[in/out] hResource

Un D3DKMT_HANDLE tipo de datos que representa un identificador en modo kernel para el recurso asociado a las asignaciones. El valor de hResource siempre debe ser cero a menos que se agregue una asignación a un recurso existente, en cuyo caso hResource contiene el identificador de recursos.

Cuando el marca CreateResource campo de bits se establece en el miembro Flags, el entorno de ejecución de OpenGL genera un identificador único y lo pasa al controlador. En la salida de la función D3DKMTCreateAllocation de D3DKMTCreateAllocation, hResource especifica el identificador que el controlador debe usar en las llamadas posteriores del tiempo de ejecución de OpenGL para identificar el recurso. El identificador de recursos que se devuelve es específico del dispositivo y solo es válido cuando se usa con el dispositivo en el que se creó.

[out] hGlobalShare

Un controlador cliente en modo de usuario no debe compartir recursos mediante identificadores globales. El controlador debe establecer NtSecuritySharing en Flags y llamar a D3DKMTShareObjects para obtener un identificador NT. El uso de identificadores globales no es seguro. Cualquier proceso puede adivinar un identificador global y abrir un objeto compartido. Los identificadores globales solo se admiten por motivos de compatibilidad con tiempos de ejecución de D3D antiguos. (Cuando no se establece NtSecuritySharing, el identificador global se devuelve en hGlobalShare. Nada impide que un UMD comparta un recurso mediante un identificador global, pero los controladores no deben hacerlo).

[in] pPrivateRuntimeData

Puntero a datos privados opcionales que se pueden adjuntar a un recurso con fines de depuración. Estos datos son por recurso y no por asignación.

[in] PrivateRuntimeDataSize

Tamaño, en bytes, de los datos privados a los que pPrivateRuntimeData apunta.

[in] pStandardAllocation

Puntero a una estructura de D3DKMT_CREATESTANDARDALLOCATION que describe la asignación estándar que se va a crear.

[in] pPrivateDriverData

Puntero a un búfer que contiene datos privados opcionales que el controlador de miniporte de pantalla podría requerir para crear el recurso o la asignación. El contenido del búfer normalmente procede del ICD y debe estar en un formato que el controlador de miniporte de pantalla pueda procesar.

[in/out] PrivateDriverDataSize

Tamaño, en bytes, de los datos privados a los que pPrivateDriverData apunta.

[in] NumAllocations

Número de elementos de la matriz que pAllocationInfo especifica, que representa el número de asignaciones que se van a crear. Tenga en cuenta que la creación de un recurso sin asignaciones asociadas inicialmente con él es válida; Por lo tanto, NumAllocations se puede establecer en 0.

[in] pAllocationInfo

Matriz de D3DDDI_ALLOCATIONINFO estructuras que describen propiedades específicas para cada asignación que se va a crear.

[in] pAllocationInfo2

Este miembro está reservado y debe establecerse en cero.

Este miembro está disponible a partir de Windows 7.

[in] Flags

Estructura D3DKMT_CREATEALLOCATIONFLAGS que identifica los atributos para crear la asignación, en marcas de campo de bits.

Si establece la marca de campo de bits createShared de marcas, también debe establecer la marca createResource campo de bits.

[in] hPrivateRuntimeResourceHandle

Un identificador opaco que puede usar en el seguimiento de eventos. Este identificador se puede usar para asociar asignaciones en modo kernel con punteros de superficie en modo de usuario al analizar los registros de eventos de Seguimiento de eventos para Windows (ETW).

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista
encabezado de d3dkmthk.h (incluya D3dkmthk.h)

Consulte también

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS