Compartir a través de


Función D3DKMTShareObjects (d3dkmthk.h)

D3DKMTShareObjects comparte objetos de recursos creados con el D3KMTCreateAllocation, D3KMTCreateAllocation2D3DKMTCreateKeyedMutex2y funciones de D3DKMTCreateSynchronizationObject2.

Sintaxis

NTSTATUS D3DKMTShareObjects(
  [in]  UINT                cObjects,
  [in]  const D3DKMT_HANDLE *hObjects,
  [in]  POBJECT_ATTRIBUTES  pObjectAttributes,
  [in]  DWORD               dwDesiredAccess,
  [out] HANDLE              *phSharedNtHandle
);

Parámetros

[in] cObjects

Número de objetos de recursos proporcionados en el parámetro hObjects. Este valor debe ser menor o igual que D3DKMT_MAX_OBJECTS_PER_HANDLE.

[in] hObjects

Puntero a una matriz de identificadores del modo kernel local que especifican los objetos de recursos que se van a compartir. Para obtener más información, vea Comentarios.

[in] pObjectAttributes

Puntero a una estructura OBJECT_ATTRIBUTES que especifica los atributos de los objetos de recursos.

[in] dwDesiredAccess

Especifica el acceso de lectura y escritura para el recurso.

Para los objetos de sincronización de GPU, dwDesiredAccess puede ser una combinación de los siguientes campos de bits (definidos en d3dukmdt.h).

Valor Significado
STANDARD_RIGHTS_READ El proceso que abre el objeto de sincronización puede leer el estado del objeto de sincronización. Esta marca debe especificarse o el objeto será inaccesible.
D3DDDI_SYNC_OBJECT_WAIT El proceso que abre el objeto de sincronización puede emitir operaciones de espera para el objeto de sincronización.
D3DDDI_SYNC_OBJECT_SIGNAL El proceso que abre el objeto de sincronización puede emitir operaciones de señal para el objeto de sincronización.
D3DDDI_SYNC_OBJECT_ALL_ACCESS El proceso que abre el objeto de sincronización puede emitir cualquier operación para el objeto de sincronización.

Para los recursos compartidos, el acceso deseado se puede especificar como una combinación de las marcas siguientes (definidas en d3dkmthk.h):

Valor Significado
STANDARD_RIGHTS_READ El proceso que abre el recurso puede tener acceso de lectura. Esta marca debe especificarse o el objeto será inaccesible.
SHARED_ALLOCATION_WRITE El proceso que abre el recurso puede tener acceso de escritura. Si no se especifica esta marca de acceso, el recurso se abrirá como de solo lectura.
SHARED_ALLOCATION_ALL_ACCESS El proceso que abre el recurso puede tener acceso a todo el objeto.

[out] phSharedNtHandle

Puntero a un identificador NT compartido que especifica los objetos de recurso.

Este parámetro se NULL si no se establece el valor de marca de NtSecuritySharing. Para obtener más información, vea Comentarios.

Valor devuelto

El método devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, este método podría devolver un código de error NTSTATUS adecuado.

Observaciones

Los objetos que se van a compartir mediante D3DKMTShareObjects deben crearse primero con el valor de marca NtSecuritySharing establecido. Este valor de marca está disponible en las estructuras D3DKMT_CREATEALLOCATIONFLAGS, D3DKMT_CREATEKEYEDMUTEX2_FLAGSy D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS.

Esta función debe especificar identificadores a través del parámetro hObjects solo a las siguientes combinaciones de tipos de matriz de objetos de entrada:

  • una asignación
  • una asignación, una exclusión mutua con claves y un objeto de sincronización
  • un objeto de sincronización

El sistema operativo rechazará cualquier otra combinación de identificadores de entrada.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 8
servidor mínimo admitido Windows Server 2012
de la plataforma de destino de Universal
encabezado de d3dkmthk.h (incluya D3dkmthk.h)
biblioteca de Gdi32.lib
DLL de Gdi32.dll

Consulte también

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS

D3DKMTCreateAllocation

D3DKMTCreateAllocation2

D3DKMTCreateKeyedMutex2

D3DKMTCreateSynchronizationObject2

D3DKMT_CREATEALLOCATIONFLAGS

D3DKMT_CREATEKEYEDMUTEX2_FLAGS