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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de