Função D3DKMTShareObjects (d3dkmthk.h)
D3DKMTShareObjects compartilha objetos de recurso que foram criados com as funções D3KMDTCreateAllocation, D3KMDTCreateAllocation2D3DKMTCreateKeyedMutex2 e D3DKMTCreateSynchronizationObject2 .
Sintaxe
NTSTATUS D3DKMTShareObjects(
[in] UINT cObjects,
[in] const D3DKMT_HANDLE *hObjects,
[in] POBJECT_ATTRIBUTES pObjectAttributes,
[in] DWORD dwDesiredAccess,
[out] HANDLE *phSharedNtHandle
);
Parâmetros
[in] cObjects
O número de objetos de recurso fornecidos no parâmetro hObjects . Esse valor deve ser menor ou igual a D3DKMT_MAX_OBJECTS_PER_HANDLE.
[in] hObjects
Um ponteiro para uma matriz de identificadores locais do modo kernel que especificam os objetos de recurso a serem compartilhados. Para obter mais informações, consulte Comentários.
[in] pObjectAttributes
Um ponteiro para uma estrutura OBJECT_ATTRIBUTES que especifica atributos dos objetos de recurso.
[in] dwDesiredAccess
Especifica o acesso de leitura e gravação para o recurso.
Para objetos de sincronização de GPU, dwDesiredAccess pode ser uma combinação dos campos de bit a seguir (definidos em d3dukmdt.h).
Valor | Significado |
---|---|
STANDARD_RIGHTS_READ | O processo que abre o objeto de sincronização pode ler o estado do objeto de sincronização. Esse sinalizador deve ser especificado ou o objeto ficará inacessível. |
D3DDDI_SYNC_OBJECT_WAIT | O processo que abre o objeto de sincronização pode emitir operações de espera para o objeto de sincronização. |
D3DDDI_SYNC_OBJECT_SIGNAL | O processo que abre o objeto de sincronização pode emitir operações de sinal para o objeto de sincronização. |
D3DDDI_SYNC_OBJECT_ALL_ACCESS | O processo que abre o objeto de sincronização pode emitir qualquer operação para o objeto de sincronização. |
Para recursos compartilhados, o acesso desejado pode ser especificado como uma combinação dos seguintes sinalizadores (definidos em d3dkmthk.h):
Valor | Significado |
---|---|
STANDARD_RIGHTS_READ | O processo que abre o recurso pode ter acesso de leitura. Esse sinalizador deve ser especificado ou o objeto ficará inacessível. |
SHARED_ALLOCATION_WRITE | O processo que abre o recurso pode ter acesso de gravação. Se esse sinalizador de acesso não for especificado, o recurso será aberto como somente leitura. |
SHARED_ALLOCATION_ALL_ACCESS | O processo que abre o recurso pode ter todo o acesso ao objeto . |
[out] phSharedNtHandle
Um ponteiro para um identificador NT compartilhado que especifica os objetos de recurso.
Esse parâmetro será NULL se o valor do sinalizador NtSecuritySharing não estiver definido. Para obter mais informações, consulte Comentários.
Retornar valor
O método retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método pode retornar um código de erro NTSTATUS apropriado.
Comentários
Os objetos a serem compartilhados usando D3DKMTShareObjects devem primeiro ser criados com o valor do sinalizador NtSecuritySharing definido. Esse valor de sinalizador está disponível nas estruturas D3DKMT_CREATEALLOCATIONFLAGS, D3DKMT_CREATEKEYEDMUTEX2_FLAGS e D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS .
Essa função deve especificar identificadores por meio do parâmetro hObjects apenas para as seguintes combinações de tipos de matriz de objeto de entrada:
- uma alocação
- uma alocação, um mutex com chave e um objeto de sincronização
- um objeto de sincronização
O sistema operacional rejeitará qualquer outra combinação de identificador de entrada.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 |
Servidor mínimo com suporte | Windows Server 2012 |
Plataforma de Destino | Universal |
Cabeçalho | d3dkmthk.h (inclua D3dkmthk.h) |
Biblioteca | Gdi32.lib |
DLL | Gdi32.dll |
Confira também
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS