API Vertdll disponibles dans les enclaves VBS
Les enclaves sont utilisées pour créer des environnements d’exécution approuvés. Ces API Vertdll sont disponibles pour les développeurs dans les enclaves VBS.
Fonctions exportées par Vertdll.dll
Les API suivantes exportées par Vertdll.dll sont disponibles pour être appelées dans les enclaves VBS.
API | En-tête | Description |
---|---|---|
IsProcessorFeaturePresent | processthreadsapi.h | Détermine si la fonctionnalité de processeur spécifiée est prise en charge par l’ordinateur actuel. |
LdrDisableThreadCalloutsForDll | - | Désactive l’attachement de thread et détache les légendes à une DLL. |
NtTerminateProcess Voir TerminateProcess |
processthreadsapi.h | Termine le processus spécifié et tous ses threads. |
RtlCaptureContext | winnt.h | Récupère un enregistrement de contexte dans le contexte de l’appelant. |
RtlGetLastNtStatus Voir GetLastError |
- | Obtient la dernière valeur NTSTATUS. |
RtlLookupFunctionEntry | winnt.h | Recherche dans les tables de fonctions actives une entrée qui correspond à la valeur PC spécifiée. |
RtlPcToFileHeader | winnt.h | Récupère l’adresse de base de l’image qui contient la valeur PC spécifiée. |
RtlRaiseStatus Voir RaiseException |
- | Déclenche une exception, avec uniquement un paramètre dwExceptionCode. RtlRaiseStatus appelle RaiseException, en passant EXCEPTION_NONCONTINUABLE pour indiquer qu’une exception non continue a été rencontrée. |
RtlTimeFieldsToTime | wdm.h | Convertit les informations TIME_FIELDS en valeur d’heure du système. |
RtlUnhandledExceptionFilter Voir UnhandledExceptionFilter |
- | Une fonction définie par l’application qui transmet des exceptions non prises en charge au débogueur, si le processus est débogué. |
RtlUnwind | winnt.h | Lance un déroulement des frames d’appel de procédure. |
RtlUnwindEx | winnt.h | Lance un déroulement des frames d’appel de procédure. |
RtlVirtualUnwind | winnt.h | Récupère le contexte d’appel de la fonction qui précède le contexte de fonction spécifié. |
RtlGetSystemGlobalData | - | Obtient l’adresse de la zone de données globale du système. |
memcmp | memory.h ou string.h |
Compare les caractères dans deux mémoires tampons. |
memcpy | memory.h ou string.h |
Copie des octets entre les mémoires tampon. |
memmove | string.h | Déplace une mémoire tampon vers une autre. |
memset | memory.h ou string.h |
Définit une mémoire tampon sur un caractère spécifié. |
OutputDebugStringW | debugapi.h | Envoie une chaîne au débogueur pour affichage. |
CallEnclave | enclaveapi.h | Appelle une fonction dans une enclave. |
EnclaveGetEnclaveInformation | winenclaveapi.h | Obtient des informations sur l’enclave en cours d’exécution. |
GetCurrentProcess | processthreadsapi.h | Récupère un pseudo-descripteur pour le processus actuel. |
TerminateEnclave | enclaveapi.h | Met fin à l’exécution des threads qui s’exécutent dans une enclave. |
TerminateProcess | processthreadsapi.h | Termine le processus spécifié et tous ses threads. |
GetLastError | errhandlingapi.h | Récupère la valeur du code de dernière erreur du thread appelant. |
SetLastError | errhandlingapi.h | Définit le code de dernière erreur pour le thread appelant. |
RaiseException | errhandlingapi.h | Déclenche une exception dans le thread appelant. |
SetUnhandledExceptionFilter | errhandlingapi.h | Permet à une application de remplacer le gestionnaire d’exceptions de niveau supérieur de chaque thread d’un processus. |
GetProcessHeap | heapapi.h | Récupère un descripteur dans le segment de mémoire par défaut du processus appelant. |
GetProcessHeaps | heapapi.h | Retourne le nombre de segments de mémoire actifs et récupère les descripteurs à tous les segments de mémoire actifs pour le processus appelant. |
HeapAlloc | heapapi.h | Alloue un bloc de mémoire d’un tas. La mémoire allouée n’est pas mobile. |
HeapCompact | heapapi.h | Retourne la taille du bloc libre validé le plus grand dans le segment de mémoire spécifié. |
HeapCreate | heapapi.h | Crée un objet de segment de mémoire privé qui peut être utilisé par le processus appelant. |
HeapDestroy | heapapi.h | Détruit l’objet tas spécifié. Il désalloue et libère toutes les pages d’un objet de segment de mémoire privé, et invalide le descripteur dans le segment de mémoire. |
HeapFree | heapapi.h | Libère un bloc de mémoire alloué à partir d’un segment de mémoire par la fonction HeapAlloc ou HeapReAlloc. |
HeapLock | heapapi.h | Tente d’acquérir l’objet de section critique ou le verrou associé à un segment de mémoire spécifié. |
HeapReAlloc | heapapi.h | Réalloue un bloc de mémoire d’un tas. Cette fonction vous permet de redimensionner un bloc de mémoire et de modifier d’autres propriétés de bloc de mémoire. |
HeapSize | heapapi.h | Récupère la taille d’un bloc de mémoire alloué à partir d’un segment de mémoire par la fonction HeapAlloc ou HeapReAlloc. |
HeapUnlock | heapapi.h | Libère la propriété de l’objet de section critique ou le verrou associé à un segment de mémoire spécifié. Elle inverse l’action de la fonction HeapLock. |
InitializeSListHead | interlockedapi.h | Initialise la tête d’une liste liée unique. |
InterlockedFlushSList | interlockedapi.h | Supprime tous les éléments d’une liste liée unique. |
InterlockedPopEntrySList | interlockedapi.h | Supprime un élément du début d’une liste liée unique. |
InterlockedPushEntrySList | interlockedapi.h | Insère un élément au début d’une liste liée unique. |
InterlockedPushListSList | interlockedapi.h | Insère une liste liée unique au début d’une autre liste liée unique. |
InterlockedPushListSListEx | interlockedapi.h | Insère une liste liée unique au début d’une autre liste liée unique. |
QueryDepthSList | interlockedapi.h | Récupère le nombre d’entrées dans la liste liée unique spécifiée. |
DisableThreadLibraryCalls | libloaderapi.h | Désactive les notifications DLL_THREAD_ATTACH et DLL_THREAD_DETACH pour la DLL spécifiée. |
GetModuleHandleExW | libloaderapi.h | Récupère un descripteur de module pour le module spécifié et incrémente le nombre de références du module, sauf si GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT est spécifié. |
GetProcAddress | libloaderapi.h | Récupère l’adresse d’une fonction ou d’une variable exportée à partir de la DLL spécifiée. |
SetThreadStackGuarantee | processthreadsapi.h | Définit la taille minimale de la pile associée au thread ou à la fibre appelant qui sera disponible pendant les exceptions de dépassement de la capacité de la pile. |
VirtualAlloc | memoryapi.h | Réserve, valide ou change l’état d’une région de pages dans l’espace d’adressage virtuel du processus appelant. |
VirtualFree | memoryapi.h | Libère, désalloue ou libère et désalloue une région de pages dans l’espace d’adressage virtuel du processus appelant. |
VirtualProtect | memoryapi.h | Change la protection sur une région de pages validées dans l’espace d’adressage virtuel du processus appelant. |
VirtualQuery | memoryapi.h | Récupère des informations sur une plage de pages dans l’espace d’adressage virtuel du processus appelant. |
AcquireSRWLockExclusive | synchapi.h | Acquiert un verrou de lecteur/enregistreur mince (SRW) en mode exclusif. |
AcquireSRWLockShared | synchapi.h | Acquiert un verrou de lecteur/enregistreur mince (SRW) en mode partagé. |
DeleteCriticalSection | synchapi.h | Libère toutes les ressources utilisées par un objet de section critique sans propriétaire. |
DeleteSynchronizationBarrier | synchapi.h | Supprime une barrière de synchronisation. |
EnterCriticalSection | synchapi.h | Attend la propriété de l’objet de section critique spécifié. La fonction retourne lorsque le thread appelant reçoit la propriété. |
EnterSynchronizationBarrier | synchapi.h | Provoque l’attente du thread appelant à une barrière de synchronisation jusqu’à ce que le nombre maximum de threads soit entré dans la barrière. |
InitializeConditionVariable | synchapi.h | Initialise une variable de condition. |
InitializeCriticalSection | synchapi.h | Initialise un objet de section critique. |
InitializeCriticalSectionAndSpinCount | synchapi.h | Initialise un objet de section critique et définit le nombre de tours pour la section critique. |
InitializeCriticalSectionEx | synchapi.h | Initialise un objet de section critique avec un nombre de spins et des indicateurs facultatifs. |
InitializeSRWLock | synchapi.h | Initialise un verrou de lecteur/enregistreur mince (SRW). |
InitializeSynchronizationBarrier | synchapi.h | Initialise une nouvelle barrière de synchronisation. |
LeaveCriticalSection | synchapi.h | Libère la propriété de l’objet de section critique spécifié. |
ReleaseSRWLockExclusive | synchapi.h | Libère un verrou de lecteur/enregistreur mince (SRW) qui a été acquis en mode exclusif. |
ReleaseSRWLockShared | synchapi.h | Libère un verrou de lecteur/enregistreur mince (SRW) qui a été acquis en mode partagé. |
SetCriticalSectionSpinCount | synchapi.h | Définit le nombre de tours pour la section critique spécifiée. |
SleepConditionVariableCS | synchapi.h | Veille sur la variable de condition spécifiée et libère la section critique spécifiée en tant qu’opération atomique. |
SleepConditionVariableSRW | synchapi.h | Veille sur la variable de condition spécifiée et libère le verrou spécifié en tant qu’opération atomique. |
TryAcquireSRWLockExclusive | synchapi.h | Tente d’acquérir un verrou de lecteur/enregistreur mince (SRW) en mode exclusif. Si l’appel réussit, le thread appelant prend possession du verrou. |
TryAcquireSRWLockShared | synchapi.h | Tente d’acquérir un verrou de lecteur/enregistreur mince (SRW) en mode partagé. Si l’appel réussit, le thread appelant prend possession du verrou. |
TryEnterCriticalSection | synchapi.h | Tente d’entrer dans une section critique sans bloquer. Si l’appel réussit, le thread appelant prend possession de la section critique. |
WaitOnAddress | synchapi.h | Attend que la valeur à l’adresse spécifiée change. |
WakeAllConditionVariable | synchapi.h | Réveille tous les threads en attente sur la variable de condition spécifiée. |
WakeByAddressAll | synchapi.h | Réveille tous les threads qui attendent que la valeur d’une adresse change. |
WakeByAddressSingle | synchapi.h | Réveille un thread qui attend que la valeur d’une adresse change. |
WakeConditionVariable | synchapi.h | Réveille un thread unique en attente de la variable de condition spécifiée. |
GetCurrentThread | processthreadsapi.h | Récupère un pseudo-descripteur pour le thread appelant. |
GetCurrentThreadId | processthreadsapi.h | Récupère l’identificateur de thread du thread appelant. |
TlsAlloc | processthreadsapi.h | Alloue un index de stockage local de thread (TLS). |
TlsFree | processthreadsapi.h | Libère un index TLS, le rend disponible pour la réutilisation. |
TlsGetValue | processthreadsapi.h | Récupère la valeur dans l’emplacement TLS du thread appelant pour l’index TLS spécifié. |
TlsSetValue | processthreadsapi.h | Stocke une valeur dans l’emplacement TLS du thread appelant pour l’index TLS spécifié. |
EnclaveGetAttestationReport | winenclaveapi.h | Obtient un rapport d’attestation d’enclave qui décrit l’enclave actuelle et est signé par l’autorité responsable du type de l’enclave. |
EnclaveSealData | winenclaveapi.h | Génère un objet blob (binary large object) chiffré à partir de données non chiffrées. |
EnclaveUnsealData | winenclaveapi.h | Déchiffre un objet blob (binary large object) chiffré. |
EnclaveVerifyAttestationReport | winenclaveapi.h | Vérifie un rapport d’attestation généré sur le système actuel. |
WideCharToMultiByte | stringapiset.h | Mappe une chaîne UTF-16 (caractère large) à une nouvelle chaîne de caractères. Remarque : la seule page de codes disponible pour les enclaves VBS est CP_UTF8. |
MultiByteToWideChar | stringapiset.h | Mappe une chaîne de caractères à une chaîne UTF-16 (caractère large). Remarque : la seule page de codes disponible pour les enclaves VBS est CP_UTF8. |
LdrResolveDelayLoadedAPI Voir ResolveDelayLoadedAPI |
- | Recherche la fonction cible de l’importation spécifiée et remplace le pointeur de fonction dans le thunk d’importation par la cible de l’implémentation de la fonction. |