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 |