Compartir a través de


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

Consulte también

D3DKMT_LOCK