Funzione D3DKMTLock (d3dkmthk.h)
La funzione D3DKMTLock blocca un'intera allocazione o pagine specifiche all'interno di un'allocazione.
Sintassi
NTSTATUS D3DKMTLock(
D3DKMT_LOCK *unnamedParam1
);
Parametri
unnamedParam1
pData [in, out]
Puntatore a una struttura D3DKMT_LOCK che descrive i parametri per il blocco di un'allocazione.
Valore restituito
D3DKMTLock restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_SUCCESS | L'allocazione è stata bloccata correttamente. |
STATUS_DEVICE_REMOVED | La scheda grafica è stata arrestata o il dispositivo di visualizzazione è stato reimpostato. |
STATUS_INVALID_PARAMETER | I parametri sono stati convalidati e sono stati determinati come non corretti. |
STATUS_GRAPHICS_ALLOCATION_BUSY | L'allocazione era attualmente in uso e non poteva essere bloccata. |
STATUS_GRAPHICS_TOO_MANY_REFERENCES | Troppi riferimenti in sospeso per l'allocazione. |
STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION | Non è stato possibile bloccare l'allocazione perché un'apertura di deswizzling non era disponibile e perché l'allocazione è bloccata e non è stato possibile rimuovere. |
Questa funzione potrebbe anche restituire altri valori NTSTATUS.
Commenti
La funzione D3DKMTLock viene chiamata per accedere alle allocazioni di memoria di sistema e alle allocazioni di memoria video.
Esempio
Nell'esempio di codice seguente viene illustrato come una progettazione immagine e configurazione OpenGL può usare D3DKMTLock per bloccare un'intera allocazione.
VOID* LockEntireAllocation(D3DKMT_HANDLE hDevice, D3DKMT_HANDLE hAllocation, UINT PrivateData)
{
D3DKMT_LOCK LockAllocation = {0};
LockAllocation.hDevice = hDevice;
LockAllocation.hAllocation = LockData.hAllocation;
LockAllocation.Flags.LockEntire = TRUE;
LockAllocation.PrivateDriverData = PrivateData;
LockAllocation.NumPages = 0;
LockAllocation.pPages = NULL;
if (NT_SUCCESS((*pfnKTLock)(&LockAllocation))) {
return LockAllocation.pData;
}
return NULL;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Piattaforma di destinazione | Universale |
Intestazione | d3dkmthk.h (include D3dkmthk.h) |
Libreria | Gdi32.lib |
DLL | Gdi32.dll |