D3DKMTLock, fonction (d3dkmthk.h)

La fonction D3DKMTLock verrouille une allocation entière ou des pages spécifiques au sein d’une allocation.

Syntaxe

NTSTATUS D3DKMTLock(
  D3DKMT_LOCK *unnamedParam1
);

Paramètres

unnamedParam1

pData [in, out]

Pointeur vers une structure D3DKMT_LOCK qui décrit les paramètres de verrouillage d’une allocation.

Valeur retournée

D3DKMTLock retourne l’une des valeurs suivantes :

Code de retour Description
STATUS_SUCCESS L’allocation a été correctement verrouillée.
STATUS_DEVICE_REMOVED La carte graphique a été arrêtée ou le périphérique d’affichage a été réinitialisé.
STATUS_INVALID_PARAMETER Les paramètres ont été validés et déterminés comme incorrects.
STATUS_GRAPHICS_ALLOCATION_BUSY L’allocation était en cours d’utilisation et n’a pas pu être verrouillée.
STATUS_GRAPHICS_TOO_MANY_REFERENCES Trop de références étaient en attente sur l’allocation.
STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION L’allocation n’a pas pu être verrouillée, car une ouverture de balayage n’était pas disponible et parce que l’allocation est épinglée et n’a pas pu être supprimée.

Cette fonction peut également retourner d’autres valeurs NTSTATUS.

Remarques

La fonction D3DKMTLock est appelée pour accéder aux allocations de mémoire système et aux allocations de mémoire vidéo.

Exemples

L’exemple de code suivant montre comment un ICD OpenGL peut utiliser D3DKMTLock pour verrouiller une allocation entière.

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;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Plateforme cible Universal
En-tête d3dkmthk.h (include D3dkmthk.h)
Bibliothèque Gdi32.lib
DLL Gdi32.dll

Voir aussi

D3DKMT_LOCK