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
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