Funzione D3DKMTShareObjects (d3dkmthk.h)
D3DKMTShareObjects condivide gli oggetti risorsa creati con le funzioni D3KMDTCreateAllocation, D3KMDTCreateAllocation2D3DKMTCreateKeyedMutex2 e D3DKMTCreateSynchronizationObject2 .
Sintassi
NTSTATUS D3DKMTShareObjects(
[in] UINT cObjects,
[in] const D3DKMT_HANDLE *hObjects,
[in] POBJECT_ATTRIBUTES pObjectAttributes,
[in] DWORD dwDesiredAccess,
[out] HANDLE *phSharedNtHandle
);
Parametri
[in] cObjects
Numero di oggetti risorsa forniti nel parametro hObjects . Questo valore deve essere minore o uguale a D3DKMT_MAX_OBJECTS_PER_HANDLE.
[in] hObjects
Puntatore a una matrice di handle in modalità kernel locale che specificano gli oggetti risorsa da condividere. Per altre informazioni, vedere Osservazioni.
[in] pObjectAttributes
Puntatore a una struttura OBJECT_ATTRIBUTES che specifica gli attributi degli oggetti risorsa.
[in] dwDesiredAccess
Specifica l'accesso in lettura e scrittura per la risorsa.
Per gli oggetti di sincronizzazione GPU, dwDesiredAccess può essere una combinazione dei campi di bit seguenti (definiti in d3dukmdt.h).
Valore | Significato |
---|---|
STANDARD_RIGHTS_READ | Il processo che apre l'oggetto sync può leggere lo stato dell'oggetto sync. Questo flag deve essere specificato oppure l'oggetto non sarà accessibile. |
D3DDDI_SYNC_OBJECT_WAIT | Il processo che apre l'oggetto di sincronizzazione può eseguire operazioni di attesa per l'oggetto di sincronizzazione. |
D3DDDI_SYNC_OBJECT_SIGNAL | Il processo che apre l'oggetto di sincronizzazione può eseguire operazioni di segnalazione per l'oggetto di sincronizzazione. |
D3DDDI_SYNC_OBJECT_ALL_ACCESS | Il processo che apre l'oggetto di sincronizzazione può eseguire qualsiasi operazione per l'oggetto di sincronizzazione. |
Per le risorse condivise, l'accesso desiderato può essere specificato come combinazione dei flag seguenti (definiti in d3dkmthk.h):
Valore | Significato |
---|---|
STANDARD_RIGHTS_READ | Il processo che apre la risorsa può avere accesso in lettura. Questo flag deve essere specificato oppure l'oggetto non sarà accessibile. |
SHARED_ALLOCATION_WRITE | Il processo che apre la risorsa può avere accesso in scrittura. Se questo flag di accesso non viene specificato, la risorsa verrà aperta come di sola lettura. |
SHARED_ALLOCATION_ALL_ACCESS | Il processo che apre la risorsa può avere tutti l'accesso all'oggetto . |
[out] phSharedNtHandle
Puntatore a un handle NT condiviso che specifica gli oggetti risorsa.
Questo parametro sarà NULL se il valore del flag NtSecuritySharing non è impostato. Per altre informazioni, vedere Osservazioni.
Valore restituito
Il metodo restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire un codice di errore NTSTATUS appropriato.
Commenti
Gli oggetti da condividere con D3DKMTShareObjects devono prima essere creati con il valore del flag NtSecuritySharing impostato. Questo valore del flag è disponibile nelle strutture D3DKMT_CREATEALLOCATIONFLAGS, D3DKMT_CREATEKEYEDMUTEX2_FLAGS e D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS .
Questa funzione deve specificare handle tramite il parametro hObjects solo per le combinazioni seguenti di tipi di matrice di oggetti di input:
- un'allocazione
- un'allocazione, un mutex con chiave e un oggetto di sincronizzazione
- un oggetto di sincronizzazione
Il sistema operativo rifiuterà qualsiasi altra combinazione di handle di input.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 |
Server minimo supportato | Windows Server 2012 |
Piattaforma di destinazione | Universale |
Intestazione | d3dkmthk.h (include D3dkmthk.h) |
Libreria | Gdi32.lib |
DLL | Gdi32.dll |
Vedi anche
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS