Compartilhar via


APIs Vertdll disponíveis em enclaves do VBS

Enclaves são usados para criar ambientes de execução confiáveis. Essas APIs Vertdll estão disponíveis para desenvolvedores em enclaves de VBS.

Funções exportadas por Vertdll.dll

As seguintes APIs exportadas por Vertdll.dll estão disponíveis para serem chamadas em enclaves de VBS.

API parâmetro Descrição
IsProcessorFeaturePresent processthreadsapi.h Determina se o recurso de processador especificado é compatível com o computador atual.
LdrDisableThreadCalloutsForDll - Desabilita a anexação de threads e desanexa textos explicativos em uma DLL.
NtTerminateProcess
Consulte TerminateProcess
processthreadsapi.h Encerra o processo especificado e todos os seus threads.
RtlCaptureContext WinNT.h Recupera um registro de contexto no contexto do chamador.
RtlGetLastNtStatus
Consulte GetLastError
- Obtém o último valor NTSTATUS.
RtlLookupFunctionEntry WinNT.h Pesquisa nas tabelas de funções ativas uma entrada que corresponda ao valor do computador especificado.
RtlPcToFileHeader WinNT.h Recupera o endereço base da imagem que contém o valor do computador especificado.
RtlRaiseStatus
Consulte RaiseException
- Gera uma exceção, com apenas um parâmetro dwExceptionCode. RtlRaiseStatus invoca RaiseException, passando EXCEPTION_NONCONTINUABLE para indicar que uma exceção não continuável foi encontrada.
RtlTimeFieldsToTime wdm.h Converte informações TIME_FIELDS em um valor de hora do sistema.
RtlUnhandledExceptionFilter
Consulte UnhandledExceptionFilter
- Uma função definida pelo aplicativo que passa exceções sem tratamento para o depurador, se o processo estiver sendo depurado.
RtlUnwind WinNT.h Inicia um desenrolamento de quadros de chamada de procedimento.
RtlUnwindEx WinNT.h Inicia um desenrolamento de quadros de chamada de procedimento.
RtlVirtualUnwind WinNT.h Recupera o contexto de invocação da função que precede o contexto de função especificado.
RtlGetSystemGlobalData - Obtém o endereço da área de dados global do sistema.
memcmp memory.h ou
string.h
Compara caracteres em dois buffers.
memcpy memory.h ou
string.h
Copia bytes entre buffers.
memmove string.h Move um buffer para outro.
memset memory.h ou
string.h
Define um buffer para um caractere especificado.
OutputDebugStringW debugapi.h Envia uma cadeia de caracteres para o depurador para exibição.
CallEnclave enclaveapi.h Chama uma função dentro de um enclave.
EnclaveGetEnclaveInformation winenclaveapi.h Obtém informações sobre o enclave em execução no momento.
GetCurrentProcess processthreadsapi.h Recupera um pseudo-identificador para o processo atual.
TerminateEnclave enclaveapi.h Encerra a execução dos threads que estão em execução em um enclave.
TerminateProcess processthreadsapi.h Encerra o processo especificado e todos os seus threads.
GetLastError errhandlingapi.h Recupera o valor do código de último erro do thread de chamada.
SetLastError errhandlingapi.h Define o código de último erro para o thread de chamada.
RaiseException errhandlingapi.h Gera uma exceção no thread de chamada.
SetUnhandledExceptionFilter errhandlingapi.h Permite que um aplicativo substitua o manipulador de exceção de nível superior de cada thread de um processo.
GetProcessHeap heapapi.h Recupera um identificador para o heap padrão do processo de chamada.
GetProcessHeaps heapapi.h Retorna o número de heaps ativos e recupera identificadores para todos os heaps ativos para o processo de chamada.
HeapAlloc heapapi.h Aloca um bloco de memória em um heap. A memória alocada não é móvel.
HeapCompact heapapi.h Retorna o tamanho do maior bloco gratuito confirmado no heap especificado.
HeapCreate heapapi.h Cria um objeto de heap privado que pode ser usado pelo processo de chamada.
HeapDestroy heapapi.h Destrói o objeto heap especificado. Ele descompromissa e libera todas as páginas de um objeto de heap privado e invalida o identificador para o heap.
HeapFree heapapi.h Libera um bloco de memória alocado de um heap pela função HeapAlloc ou HeapReAlloc.
HeapLock heapapi.h Tenta adquirir o objeto de seção crítico, ou bloqueio, associado a um heap especificado.
HeapReAlloc heapapi.h Realoca um bloco de memória em um heap. Essa função permite redimensionar um bloco de memória e alterar outras propriedades de bloco de memória.
HeapSize heapapi.h Recupera o tamanho de um bloco de memória alocado de um heap pela função HeapAlloc ou HeapReAlloc.
HeapUnlock heapapi.h Libera a propriedade do objeto de seção crítico ou bloqueio associado a um heap especificado. Ele inverte a ação da função HeapLock.
InitializeSListHead interlockedapi.h Inicializa o cabeçalho de uma lista vinculada.
InterlockedFlushSList interlockedapi.h Remove todos os itens de uma lista vinculada.
InterlockedPopEntrySList interlockedapi.h Remove um item da frente de uma lista vinculada.
InterlockedPushEntrySList interlockedapi.h Insere um item na frente de uma lista vinculada.
InterlockedPushListSList interlockedapi.h Insere uma lista vinculada na frente de outra lista vinculada.
InterlockedPushListSListEx interlockedapi.h Insere uma lista vinculada na frente de outra lista vinculada.
QueryDepthSList interlockedapi.h Recupera o número de entradas na lista vinculada individualmente especificada.
Disablethreadlibrarycalls libloaderapi.h Desabilita as notificações DLL_THREAD_ATTACH e DLL_THREAD_DETACH para a DLL especificada.
GetModuleHandleExW libloaderapi.h Recupera um identificador de módulo para o módulo especificado e incrementa a contagem de referência do módulo, a menos que GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT seja especificado.
GetProcAddress libloaderapi.h Recupera o endereço de uma função ou variável exportada da DLL especificada.
SetThreadStackGuarantee processthreadsapi.h Define o tamanho mínimo da pilha associada ao thread de chamada ou à fibra que estará disponível durante quaisquer exceções de estouro de pilha.
VirtualAlloc memoryapi.h Reserva, confirma ou altera o estado de uma região de páginas no espaço de endereço virtual do processo de chamada.
VirtualFree memoryapi.h Libera, cancela ou libera e cancela uma região de páginas dentro do espaço de endereço virtual do processo de chamada.
VirtualProtect memoryapi.h Altera a proteção em uma região de páginas confirmadas no espaço de endereço virtual do processo de chamada.
VirtualQuery memoryapi.h Fornece informações sobre o intervalo de páginas no espaço de endereço virtual do processo de chamada.
AcquireSRWLockExclusive synchapi.h Adquire um bloqueio leitor/gravador fino (SRW) no modo exclusivo.
AcquireSRWLockShared synchapi.h Adquire um bloqueio leitor/gravador fino (SRW) no modo compartilhado.
DeleteCriticalSection synchapi.h Libera todos os recursos usados por um objeto de seção crítico sem proprietário.
DeleteSynchronizationBarrier synchapi.h Exclui uma barreira de sincronização.
EnterCriticalSection synchapi.h Aguarda a propriedade do objeto de seção crítica especificado. A função retorna quando o thread de chamada recebe a propriedade.
EnterSynchronizationBarrier synchapi.h Faz com que o thread de chamada aguarde em uma barreira de sincronização até que o número máximo de threads tenha entrado na barreira.
InitializeConditionVariable synchapi.h Inicializa uma variável de condição.
InitializeCriticalSection synchapi.h Inicializa um objeto de seção crítico.
InitializeCriticalSectionAndSpinCount synchapi.h Inicializa um objeto de seção crítico e define a contagem de rotação para a seção crítica.
InitializeCriticalSectionEx synchapi.h Inicializa um objeto de seção crítico com uma contagem de rotação e sinalizadores opcionais.
InitializeSRWLock synchapi.h Inicialize um bloqueio de leitor/gravador fino (SRW).
InitializeSynchronizationBarrier synchapi.h Inicializa uma nova barreira de sincronização.
LeaveCriticalSection synchapi.h Libera a propriedade do objeto de seção crítico especificado.
ReleaseSRWLockExclusive synchapi.h Libera um bloqueio leitor/gravador (SRW) fino que foi adquirido no modo exclusivo.
ReleaseSRWLockShared synchapi.h Libera um bloqueio leitor/gravador fino (SRW) que foi adquirido no modo compartilhado.
SetCriticalSectionSpinCount synchapi.h Define a contagem de rotação para a seção crítica especificada.
SleepConditionVariableCS synchapi.h Dorme na variável de condição especificada e libera a seção crítica especificada como uma operação atômica.
SleepConditionVariableSRW synchapi.h Dorme na variável de condição especificada e libera o bloqueio especificado como uma operação atômica.
TryAcquireSRWLockExclusive synchapi.h Tenta adquirir um bloqueio leitor/gravador fino (SRW) no modo exclusivo. Se a chamada for bem-sucedida, o thread de chamada assumirá a propriedade do bloqueio.
TryAcquireSRWLockShared synchapi.h Tenta adquirir um bloqueio leitor/gravador fino (SRW) no modo compartilhado. Se a chamada for bem-sucedida, o thread de chamada assumirá a propriedade do bloqueio.
TryEnterCriticalSection synchapi.h Tenta inserir uma seção crítica sem bloquear. Se a chamada for bem-sucedida, o thread de chamada assumirá a propriedade da seção crítica.
WaitOnAddress synchapi.h Aguarda o valor no endereço especificado ser alterado.
WakeAllConditionVariable synchapi.h Ative todos os threads aguardando a variável de condição especificada.
WakeByAddressAll synchapi.h Ativa todos os threads que estão aguardando a alteração do valor de um endereço.
WakeByAddressSingle synchapi.h Ativa um thread que está aguardando a alteração do valor de um endereço.
WakeConditionVariable synchapi.h Ative um único thread aguardando a variável de condição especificada.
GetCurrentThread processthreadsapi.h Recupera um pseudo-identificador para o thread de chamada.
GetCurrentThreadId processthreadsapi.h Recupera o identificador de thread do thread de chamada.
TlsAlloc processthreadsapi.h Aloca um índice TLS (armazenamento local de thread).
TlsFree processthreadsapi.h Libera um índice TLS, disponibilizando-o para reutilização.
TlsGetValue processthreadsapi.h Recupera o valor no slot TLS do thread de chamada para o índice TLS especificado.
TlsSetValue processthreadsapi.h Armazena um valor no slot TLS do thread de chamada para o índice TLS especificado.
EnclaveGetAttestationReport winenclaveapi.h Obtém um relatório de atestado de enclave que descreve o enclave atual e é assinado pela autoridade responsável pelo tipo do enclave.
EnclaveSealData winenclaveapi.h Gera um blob (objeto binário grande) criptografado a partir de dados não criptografados.
EnclaveUnsealData winenclaveapi.h Descriptografa um blob (objeto binário grande) criptografado.
EnclaveVerifyAttestationReport winenclaveapi.h Verifica um relatório de atestado que foi gerado no sistema atual.
WideCharToMultiByte stringapiset.h Mapeia uma cadeia de caracteres UTF-16 (caractere largo) para uma nova cadeia de caracteres.

Observação: a única página de código disponível para o VBS Enclaves é CP_UTF8.
MultiByteToWideChar stringapiset.h Mapeia uma cadeia de caracteres para uma cadeia de caracteres UTF-16 (caractere largo).

Observação: a única página de código disponível para o VBS Enclaves é CP_UTF8.
LdrResolveDelayLoadedAPI
Consulte ResolveDelayLoadedAPI
- Localiza a função de destino da importação especificada e substitui o ponteiro de função na conversão de importação pelo destino da implementação da função.

Confira também