Partilhar via


Função D3DKMTLock (d3dkmthk.h)

A função D3DKMTLock bloqueia uma alocação inteira ou páginas específicas dentro de uma alocação.

Sintaxe

NTSTATUS D3DKMTLock(
  D3DKMT_LOCK *unnamedParam1
);

Parâmetros

unnamedParam1

pData [dentro, fora]

Um ponteiro para uma estrutura de D3DKMT_LOCK que descreve parâmetros para bloquear uma alocação.

Valor de retorno

D3DKMTLock retorna um dos seguintes valores:

Código de retorno Descrição
STATUS_SUCCESS A alocação foi bloqueada com êxito.
STATUS_DEVICE_REMOVED O adaptador gráfico foi interrompido ou o dispositivo de exibição foi redefinido.
STATUS_INVALID_PARAMETER Os parâmetros foram validados e determinados como incorretos.
STATUS_GRAPHICS_ALLOCATION_BUSY A alocação estava em uso no momento e não pôde ser bloqueada.
STATUS_GRAPHICS_TOO_MANY_REFERENCES Muitas referências estavam pendentes na alocação.
STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION A alocação não pôde ser bloqueada porque uma abertura deswizzling não estava disponível e porque a alocação está fixada e não pôde ser removida.

Essa função também pode retornar outros valores NTSTATUS.

Observações

A função D3DKMTLock é chamada para acessar alocações de memória do sistema e alocações de memória de vídeo.

Exemplos

O exemplo de código a seguir demonstra como um ICD OpenGL pode usar D3DKMTLock para bloquear uma alocação inteira.

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 Valor
de cliente com suporte mínimo Windows Vista
da Plataforma de Destino Universal
cabeçalho d3dkmthk.h (inclua D3dkmthk.h)
biblioteca Gdi32.lib
de DLL Gdi32.dll

Consulte também

D3DKMT_LOCK