Condividi tramite


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

Vedi anche

D3DKMT_LOCK