In VBS-Enklaven verfügbare Vertdll-APIs
Enklaven werden verwendet, um vertrauenswürdige Ausführungsumgebungen zu erstellen. Diese Vertdll-APIs stehen Entwicklern in VBS-Enklaven zur Verfügung.
Durch Vertdll.dll exportierte Funktionen
Die folgenden APIs, die von Vertdll.dll exportiert werden, sind für den Aufruf in VBS-Enklaven verfügbar.
API | Header | Beschreibung |
---|---|---|
IsProcessorFeaturePresent | processthreadsapi.h | Bestimmt, ob das angegebene Prozessorfeature vom aktuellen Computer unterstützt wird. |
LdrDisableThreadCalloutsForDll | - | Deaktiviert die Threadanfügung und das Trennen von Aufrufen an eine DLL. |
NtTerminateProcess Siehe TerminateProcess |
processthreadsapi.h | Beendet den angegebenen Prozess und alle zugehörigen Threads. |
RtlCaptureContext | winnt.h | Ruft einen Kontextdatensatz im Kontext des Aufrufers ab. |
RtlGetLastNtStatus Siehe GetLastError |
- | Ruft den letzten NTSTATUS-Wert ab. |
RtlLookupFunctionEntry | winnt.h | Durchsucht die aktiven Funktionstabellen nach einem Eintrag, der dem angegebenen PC-Wert entspricht. |
RtlPcToFileHeader | winnt.h | Ruft die Basisadresse des Images ab, das den angegebenen PC-Wert enthält. |
RtlRaiseStatus Siehe RaiseException |
- | Löst eine Ausnahme mit nur einem dwExceptionCode-Parameter aus. RtlRaiseStatus ruft RaiseException auf und übergibt EXCEPTION_NONCONTINUABLE, um anzugeben, dass eine nicht zusammenhängende Ausnahme aufgetreten ist. |
RtlTimeFieldsToTime | wdm.h | Konvertiert TIME_FIELDS Informationen in einen Systemzeitwert. |
RtlUnhandledExceptionFilter Siehe UnhandledExceptionFilter |
- | Eine anwendungsdefinierte Funktion, die unbehandelte Ausnahmen an den Debugger übergibt, wenn der Prozess gedebuggt wird. |
RtlUnwind | winnt.h | Initiiert eine Abwicklung von Prozeduraufrufframes. |
RtlUnwindEx | winnt.h | Initiiert eine Abwicklung von Prozeduraufrufframes. |
RtlVirtualUnwind | winnt.h | Ruft den Aufrufkontext der Funktion ab, die dem angegebenen Funktionskontext vorangestellt ist. |
RtlGetSystemGlobalData | - | Ruft die Adresse des globalen Datenbereichs des Systems ab. |
memcmp | memory.h oder string.h |
Vergleicht Zeichen in zwei Puffern. |
memcpy | memory.h oder string.h |
Kopiert Bytes zwischen Puffern. |
memmove | string.h | Verschiebt einen Puffer in einen anderen. |
memset | memory.h oder string.h |
Legt einen Puffer auf ein angegebenes Zeichen fest. |
OutputDebugStringW | debugapi.h | Sendet eine Zeichenfolge zur Anzeige an den Debugger. |
CallEnclave | enclaveapi.h | Ruft eine Funktion in einer Enklave auf. |
EnclaveGetEnclaveInformation | winenclaveapi.h | Ruft Informationen über die derzeit ausgeführte Enklave ab. |
GetCurrentProcess | processthreadsapi.h | Ruft ein Pseudohandle für den aktuellen Prozess ab. |
TerminateEnclave | enclaveapi.h | Beendet die Ausführung der Threads, die in einer Enklave ausgeführt werden. |
TerminateProcess | processthreadsapi.h | Beendet den angegebenen Prozess und alle zugehörigen Threads. |
GetLastError | errhandlingapi.h | Ruft den Codewert des letzten Fehlers des aufrufenden Threads ab. |
SetLastError | errhandlingapi.h | Legt den Letzten Fehlercode für den aufrufenden Thread fest. |
RaiseException | errhandlingapi.h | Löst eine Ausnahme im aufrufenden Thread aus. |
SetUnhandledExceptionFilter | errhandlingapi.h | Ermöglicht einer Anwendung, den Ausnahmehandler der obersten Ebene jedes Threads und Prozesses zu ersetzen. |
GetProcessHeap | heapapi.h | Stellt ein Handle zum Standard-Heap des aufrufenden Prozesses wieder her. |
GetProcessHeaps | heapapi.h | Gibt die Anzahl der aktiven Heaps zurück und ruft Handles für alle aktiven Heaps für den Aufrufvorgang ab. |
HeapAlloc | heapapi.h | Ordnet einen Speicherblock aus einem Heap zu. Der zugewiesene Speicher ist nicht verschiebbar. |
HeapCompact | heapapi.h | Gibt die Größe des größten zugesicherten freien Blocks im angegebenen Heap zurück. |
HeapCreate | heapapi.h | Erstellt ein privates Heap-Objekt, das vom aufrufenden Prozess verwendet werden kann. |
HeapDestroy | heapapi.h | Zerstört das angegebene Heap-Objekt. Es entfernt alle Seiten eines privaten Heapobjekts und gibt sie frei, und der Handle wird für den Heap ungültig. |
HeapFree | heapapi.h | Gibt einen Speicherblock frei, der einem Heap durch die HeapAlloc- oder HeapReAlloc-Funktion zugewiesen wurde. |
HeapLock | heapapi.h | Versucht, das kritische Abschnittsobjekt oder die Sperre abzurufen, die einem angegebenen Heap zugeordnet ist. |
HeapReAlloc | heapapi.h | Ordnet einen Speicherblock aus einem Heap neu zu. Mit dieser Funktion können Sie die Größe eines Speicherblocks ändern und andere Speicherblockeigenschaften ändern. |
HeapSize | heapapi.h | Ruft die Größe eines Speicherblocks ab, der einem Heap durch die HeapAlloc- oder HeapReAlloc-Funktion zugewiesen wurde. |
HeapUnlock | heapapi.h | Gibt den Besitz des kritischen Abschnittsobjekts oder der Sperre frei, die einem angegebenen Heap zugeordnet ist. Die Aktion der HeapLock-Funktion wird umgekehrt. |
InitializeSListHead | interlockedapi.h | Initialisiert den Kopf einer einfach verknüpften Liste. |
InterlockedFlushSList | interlockedapi.h | Entfernt alle Elemente aus einer einfach verknüpften Liste. |
InterlockedPopEntrySList | interlockedapi.h | Entfernt ein Element aus der Vorderseite einer einfach verknüpften Liste. |
InterlockedPushEntrySList | interlockedapi.h | Fügt ein Element an der Vorderseite einer einfach verknüpften Liste ein. |
InterlockedPushListSList | interlockedapi.h | Fügt eine einfach verknüpfte Liste an der Vorderseite einer anderen verknüpften Liste ein. |
InterlockedPushListSListEx | interlockedapi.h | Fügt eine einfach verknüpfte Liste an der Vorderseite einer anderen verknüpften Liste ein. |
QueryDepthSList | interlockedapi.h | Ruft die Anzahl der Einträge in der angegebenen verknüpften Liste ab. |
DisableThreadLibraryCalls | libloaderapi.h | Deaktiviert die DLL_THREAD_ATTACH und DLL_THREAD_DETACH-Benachrichtigungen für die angegebene DLL. |
GetModuleHandleExW | libloaderapi.h | Ruft ein Modulhandle für das angegebene Modul ab und erhöht die Referenzanzahl des Moduls, es sei denn , GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT ist angegeben. |
GetProcAddress | libloaderapi.h | Ruft die Adresse einer exportierten Funktion oder Variable aus der angegebenen DLL ab. |
SetThreadStackGuarantee | processthreadsapi.h | Legt die Mindestgröße des Stapels fest, der dem aufrufenden Thread oder der Faser zugeordnet ist, die bei allen Stapelüberlaufausnahmen verfügbar ist. |
VirtualAlloc | memoryapi.h | Reserviert, committet oder ändert den Status eines Seitenbereichs im virtuellen Adressraum des aufrufenden Prozesses. |
VirtualFree | memoryapi.h | Gibt frei, decommittet oder gibt frei und decommittet einen Bereich von Seiten innerhalb des virtuellen Adressraums des aufrufenden Prozesses. |
VirtualProtect | memoryapi.h | Ändert den Schutz in einem Bereich committeter Seiten im virtuellen Adressraum des aufrufenden Prozesses. |
VirtualQuery | memoryapi.h | Ruft Informationen zu einem Seitenbereich im virtuellen Adressraum des aufrufenden Prozesses ab. |
AcquireSRWLockExclusive | synchapi.h | Erwirbt eine Slim Reader/Writer (SRW)-Sperre im exklusiven Modus. |
AcquireSRWLockShared | synchapi.h | Erwirbt eine schlanke Lese-/Schreibzugriffssperre (SRW) im gemeinsam genutzten Modus. |
DeleteCriticalSection | synchapi.h | Gibt alle Ressourcen frei, die von einem nicht zugeordneten kritischen Abschnittsobjekt verwendet werden. |
DeleteSynchronizationBarrier | synchapi.h | Löscht eine Synchronisierungsbarriere. |
EnterCriticalSection | synchapi.h | Wartet auf den Besitz des angegebenen kritischen Abschnittsobjekts. Die Funktion gibt zurück, wenn dem aufrufenden Thread der Besitz gewährt wird. |
EnterSynchronizationBarrier | synchapi.h | Bewirkt, dass der aufrufende Thread bei einer Synchronisierungsbarriere wartet, bis die maximale Anzahl von Threads in die Barriere eingegangen sind. |
InitializeConditionVariable | synchapi.h | Initialisiert eine Bedingungsvariable. |
InitializeCriticalSection | synchapi.h | Initialisiert ein kritisches Abschnittsobjekt. |
InitializeCriticalSectionAndSpinCount | synchapi.h | Initialisiert ein kritisches Abschnittsobjekt und legt die Drehzahl für den kritischen Abschnitt fest. |
InitializeCriticalSectionEx | synchapi.h | Initialisiert ein kritisches Abschnittsobjekt mit einer Drehzahl und optionalen Flags. |
InitializeSRWLock | synchapi.h | Initialisieren Sie eine Slim Reader/Writer (SRW)-Sperre. |
InitializeSynchronizationBarrier | synchapi.h | Initialisiert eine neue Synchronisierungsbarriere. |
LeaveCriticalSection | synchapi.h | Gibt den Besitz des angegebenen kritischen Abschnittsobjekts frei. |
ReleaseSRWLockExclusive | synchapi.h | Gibt eine schlanke Lese-/Schreibsperre (SRW) frei, die im exklusiven Modus erworben wurde. |
ReleaseSRWLockShared | synchapi.h | Gibt eine schlanke Lese-/Schreibsperre (SRW) frei, die im freigegebenen Modus erworben wurde. |
SetCriticalSectionSpinCount | synchapi.h | Legt die Drehzahl für den angegebenen kritischen Abschnitt fest. |
SleepConditionVariableCS | synchapi.h | Schläft auf der angegebenen Bedingungsvariable und gibt den angegebenen kritischen Abschnitt als Atomoperation frei. |
SleepConditionVariableSRW | synchapi.h | Schläft auf der angegebenen Bedingungsvariable und gibt die angegebene Sperre als Atomoperation frei. |
TryAcquireSRWLockExclusive | synchapi.h | Versucht, eine schlanke Lese-/Schreibzugriffssperre (SRW) im exklusiven Modus zu erwerben. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread den Besitz der Sperre. |
TryAcquireSRWLockShared | synchapi.h | Versucht, eine schlanke Lese-/Schreibzugriffssperre (SRW) im gemeinsam genutzten Modus zu erwerben. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread den Besitz der Sperre. |
TryEnterCriticalSection | synchapi.h | Versucht, einen kritischen Abschnitt ohne Blockierung einzugeben. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread den Besitz des kritischen Abschnitts. |
WaitOnAddress | synchapi.h | Wartet auf den Wert an der angegebenen Adresse, die geändert werden soll. |
WakeAllConditionVariable | synchapi.h | Alle Threads, die auf die angegebene Bedingungsvariable warten, aktivieren. |
WakeByAddressAll | synchapi.h | Aktiviert alle Threads, die auf den Wert einer Adresse warten, die geändert werden soll. |
WakeByAddressSingle | synchapi.h | Aktiviert alle Threads, die auf den Wert einer Adresse warten, die geändert werden soll. |
WakeConditionVariable | synchapi.h | Aktiviert einen einzelnen Thread, der auf die angegebene Bedingungsvariable wartet. |
GetCurrentThread | processthreadsapi.h | Ruft ein Pseudohandle für den aufrufenden Thread ab. |
GetCurrentThreadId | processthreadsapi.h | Ruft den Threadbezeichner des aufrufenden Threads ab. |
TlsAlloc | processthreadsapi.h | Weist einen TLS-Index (Thread Local Storage) zu. |
TlsFree | processthreadsapi.h | Gibt einen TLS-Index frei, sodass er für die Wiederverwendung verfügbar ist. |
TlsGetValue | processthreadsapi.h | Ruft den Wert im TLS-Slot des aufrufenden Threads für den angegebenen TLS-Index ab. |
TlsSetValue | processthreadsapi.h | Speichert einen Wert im TLS-Slot des aufrufenden Threads für den angegebenen TLS-Index. |
EnclaveGetAttestationReport | winenclaveapi.h | Ruft einen Enklavennachweisbericht ab, der die aktuelle Enklave beschreibt und von der Behörde signiert wird, die für den Typ der Enklave verantwortlich ist. |
EnclaveSealData | winenclaveapi.h | Generiert ein verschlüsseltes Binary Large Object (BLOB) aus unverschlüsselten Daten. |
EnclaveUnsealData | winenclaveapi.h | Entschlüsselt ein verschlüsseltes binär großes Objekt (BLOB). |
EnclaveVerifyAttestationReport | winenclaveapi.h | Überprüft einen Nachweisbericht, der auf dem aktuellen System generiert wurde. |
WideCharToMultiByte | stringapiset.h | Ordnet eine UTF-16-Zeichenfolge (breite Zeichen) einer neuen Zeichenfolge zu. |
MultiByteToWideChar | stringapiset.h | Ordnet eine Zeichenfolge einer UTF-16-Zeichenfolge (Breite Zeichen) zu. |
LdrResolveDelayLoadedAPI Siehe ResolveDelayLoadedAPI |
- | Sucht die Zielfunktion des angegebenen Imports und ersetzt den Funktionszeiger im Import-Thunk durch das Ziel der Funktionsimplementierung. |