Función D3DKMTLock (d3dkmthk.h)
La función D3DKMTLock bloquea una asignación completa o páginas específicas dentro de una asignación.
Sintaxis
NTSTATUS D3DKMTLock(
D3DKMT_LOCK *unnamedParam1
);
Parámetros
unnamedParam1
pData [in, out]
Puntero a una estructura D3DKMT_LOCK que describe los parámetros para bloquear una asignación.
Valor devuelto
D3DKMTLock devuelve uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
STATUS_SUCCESS | La asignación se bloqueó correctamente. |
STATUS_DEVICE_REMOVED | El adaptador de gráficos se detuvo o se restableció el dispositivo de pantalla. |
STATUS_INVALID_PARAMETER | Los parámetros se validaron y determinaron que son incorrectos. |
STATUS_GRAPHICS_ALLOCATION_BUSY | La asignación estaba actualmente en uso y no se pudo bloquear. |
STATUS_GRAPHICS_TOO_MANY_REFERENCES | Hay demasiadas referencias pendientes en la asignación. |
STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION | No se pudo bloquear la asignación porque una apertura deswizzling no estaba disponible y porque la asignación está anclada y no se pudo expulsar. |
Esta función también podría devolver otros valores NTSTATUS.
Comentarios
Se llama a la función D3DKMTLock para acceder a las asignaciones de memoria del sistema y a las asignaciones de memoria de vídeo.
Ejemplos
En el ejemplo de código siguiente se muestra cómo un ICD de OpenGL puede usar D3DKMTLock para bloquear una asignación completa.
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;
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Plataforma de destino | Universal |
Encabezado | d3dkmthk.h (incluya D3dkmthk.h) |
Library | Gdi32.lib |
Archivo DLL | Gdi32.dll |