Funzione D3DKMTShareObjects (d3dkmthk.h)
D3DKMTShareObjects condivide gli oggetti risorsa creati con le D3KMTCreateAllocation, D3KMTCreateAllocation2funzioni D3DKMTCreateKeyedMutex2e 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 di sincronizzazione. Questo flag deve essere specificato o 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 o 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 tutto l'accesso all'oggetto . |
[out] phSharedNtHandle
Puntatore a un handle NT condiviso che specifica gli oggetti risorsa.
Questo parametro verrà 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 NTSTATUS codice di errore.
Osservazioni
Gli oggetti da condividere usando
Questa funzione deve specificare handle tramite il parametro hObjects solo alle 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.
Fabbisogno
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 |
Vedere anche
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS