Compartir a través de


Función D3DKMTShareObjects (d3dkmthk.h)

D3DKMTShareObjects comparte objetos de recursos creados con las funciones D3KMDTCreateAllocation, D3KMDTCreateAllocation2D3DKMTCreateKeyedMutex2 y 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 de 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 de OBJECT_ATTRIBUTES que especifica los atributos de los objetos de recursos.

[in] dwDesiredAccess

Especifica el acceso de lectura y escritura para el recurso.

En el caso de 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 todo el acceso al objeto .

[out] phSharedNtHandle

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

Este parámetro será NULL si no se establece el valor de marca 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.

Comentarios

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_FLAGS y D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS .

Esta función debe especificar identificadores a través del parámetro hObjects solo para 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 Value
Cliente mínimo compatible Windows 8
Servidor mínimo compatible Windows Server 2012
Plataforma de destino Universal
Encabezado d3dkmthk.h (incluya D3dkmthk.h)
Library Gdi32.lib
Archivo DLL Gdi32.dll

Consulte también

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS

D3DKMTCreateAllocation

D3DKMTCreateAllocation2

D3DKMTCreateKeyedMutex2

D3DKMTCreateSynchronizationObject2

D3DKMT_CREATEALLOCATIONFLAGS

D3DKMT_CREATEKEYEDMUTEX2_FLAGS