VBS 記憶體保護區中提供的 Vertdll API
適用於:✅ Windows 11 組建 26100.2314 或更新版本 ✅ Windows Server 2025 或更新版本
記憶體保護區可用來建立受信任的執行環境。 這些 Vertdll API 可供 VBS 記憶體保護區中的開發人員使用。
Vertdll.dll導出的函式
Vertdll.dll所導出的下列 API 可在 VBS 記憶體保護區中呼叫。
API | 標頭 | 描述 |
---|---|---|
IsProcessorFeaturePresent | processthreadsapi.h | 判斷目前計算機是否支援指定的處理器功能。 |
LdrDisableThreadCalloutsForDll | - | 停用線程附加和中斷連結圖說文字至 DLL。 |
NtTerminateProcess 請參閱 TerminateProcess |
processthreadsapi.h | 終止指定的進程及其所有線程。 |
RtlCaptureContext | winnt.h | 擷取呼叫端內容中的內容記錄。 |
RtlGetLastNtStatus 請參閱 GetLastError |
- | 取得最後一個 NTSTATUS 值。 |
RtlLookupFunctionEntry | winnt.h | 搜尋使用中函式數據表中對應至指定PC值的專案。 |
RtlPcToFileHeader | winnt.h | 擷取包含指定計算機值的映像基位址。 |
RtlRaiseStatus 請參閱 RaiseException |
- | 只使用 dwExceptionCode 參數引發例外狀況。 RtlRaiseStatus 會 叫用 RaiseException,傳遞 EXCEPTION_NONCONTINUABLE 以指出發生無法連續的例外狀況。 |
RtlTimeFieldsToTime | wdm.h | 將 TIME_FIELDS 資訊轉換成系統時間值。 |
RtlUnhandledExceptionFilter 請參閱 UnhandledExceptionFilter |
- | 如果正在偵錯進程,應用程式定義的函式會將未處理的例外狀況傳遞給調試程式。 |
RtlUnwind | winnt.h | 起始過程調用框架的回溯。 |
RtlUnwindEx | winnt.h | 起始過程調用框架的回溯。 |
RtlVirtualUnwind | winnt.h | 擷取指定函式內容之前之函式的調用內容。 |
RtlGetSystemGlobalData | - | 取得系統全域數據區域的位址。 |
memcmp | memory.h 或 string.h |
比較兩個緩衝區中的字元。 |
memcpy | memory.h 或 string.h |
複製緩衝區之間的位元組。 |
memmove | string.h | 將某個緩衝區移到另一個緩衝區。 |
memset | memory.h 或 string.h |
將緩衝區設定為指定的字元。 |
OutputDebugStringW | debugapi.h | 將字串傳送至調試程式以顯示。 |
CallEnclave | enclaveapi.h | 呼叫記憶體保護區內的函式。 |
EnclaveGetEnclaveInformation | winenclaveapi.h | 取得目前執行記憶體保護區的相關信息。 |
GetCurrentProcess | processthreadsapi.h | 擷取目前進程的虛擬句柄。 |
TerminateEnclave | enclaveapi.h | 結束在記憶體保護區內執行的線程執行。 |
TerminateProcess | processthreadsapi.h | 終止指定的進程及其所有線程。 |
GetLastError | errhandlingapi.h | 擷取呼叫線程的最後一個錯誤碼值。 |
SetLastError | errhandlingapi.h | 設定呼叫線程的最後一個錯誤碼。 |
RaiseException | errhandlingapi.h | 在呼叫線程中引發例外狀況。 |
SetUnhandledExceptionFilter | errhandlingapi.h | 可讓應用程式取代進程每個線程的最上層例外狀況處理程式。 |
GetProcessHeap | heapapi.h | 擷取呼叫進程之預設堆積的句柄。 |
GetProcessHeaps | heapapi.h | 傳回使用中堆積的數目,並擷取呼叫進程之所有使用中堆積的句柄。 |
HeapAlloc | heapapi.h | 從堆積配置記憶體區塊。 配置的記憶體無法移動。 |
HeapCompact | heapapi.h | 傳回指定堆積中最大認可可用區塊的大小。 |
HeapCreate | heapapi.h | 建立私人堆積物件,供呼叫進程使用。 |
HeapDestroy | heapapi.h | 終結指定的堆積物件。 它會認可並釋放私人堆積物件的所有頁面,並使堆積的句柄失效。 |
HeapFree | heapapi.h | 釋放 HeapAlloc 或 HeapReAlloc 函式從堆積配置的記憶體區塊。 |
HeapLock | heapapi.h | 嘗試取得與指定堆積相關聯的重要區段對象或鎖定。 |
HeapReAlloc | heapapi.h | 從堆積重新配置記憶體區塊。 此函式可讓您調整記憶體區塊的大小,並變更其他記憶體區塊屬性。 |
堆積大小 | heapapi.h | 擷取 HeapAlloc 或 HeapReAlloc 函式從堆積配置的記憶體區塊大小。 |
HeapUnlock | heapapi.h | 釋放與指定堆積相關聯的重要區段對象或鎖定的擁有權。 它會反轉 HeapLock 函式的動作。 |
InitializeSListHead | interlockedapi.h | 初始化單向連結清單的前端。 |
InterlockedFlushSList | interlockedapi.h | 從單選連結清單中移除所有專案。 |
InterlockedPopEntrySList | interlockedapi.h | 從單向連結清單的前面移除專案。 |
InterlockedPushEntrySList | interlockedapi.h | 在單向連結清單的前面插入專案。 |
InterlockedPushListSList | interlockedapi.h | 在另一個單向連結清單的前面插入單一連結清單。 |
InterlockedPushListSListEx | interlockedapi.h | 在另一個單向連結清單的前面插入單一連結清單。 |
QueryDepthSList | interlockedapi.h | 擷取指定之單項連結清單中的項目數。 |
DisableThreadLibraryCalls | libloaderapi.h | 停用 指定 DLL 的DLL_THREAD_ATTACH 和 DLL_THREAD_DETACH 通知。 |
GetModuleHandleExW | libloaderapi.h | 擷取指定模組的模組句柄,並遞增模組的參考計數,除非 指定GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT 。 |
GetProcAddress | libloaderapi.h | 從指定的 DLL 擷取匯出函式或變數的位址。 |
SetThreadStackGuarantee | processthreadsapi.h | 設定與呼叫線程或光纖相關聯的堆疊大小下限,此線程或光纖將在任何堆疊溢位例外狀況期間使用。 |
VirtualAlloc | memoryapi.h | 在呼叫程式的虛擬位址空間中保留、認可或變更頁面區域的狀態。 |
VirtualFree | memoryapi.h | 發行、取消認可或釋放,並在呼叫程式的虛擬位址空間內解除認可頁面的區域。 |
VirtualProtect | memoryapi.h | 變更呼叫程式虛擬位址空間中已認可頁面區域中的保護。 |
VirtualQuery | memoryapi.h | 擷取呼叫程式虛擬位址空間中某個頁面範圍的相關信息。 |
AcquireSRWLockExclusive | synchapi.h | 以獨佔模式取得精簡的讀取器/寫入器 (SRW) 鎖定。 |
AcquireSRWLockShared | synchapi.h | 取得共用模式中的精簡讀取器/寫入器 (SRW) 鎖定。 |
DeleteCriticalSection | synchapi.h | 釋放未擁有的重要區段物件所使用的所有資源。 |
DeleteSynchronizationBarrier | synchapi.h | 刪除同步處理屏障。 |
EnterCriticalSection | synchapi.h | 等候指定之重要區段對象的擁有權。 當呼叫線程被授與擁有權時,函式會傳回 。 |
EnterSynchronizationBarrier | synchapi.h | 導致呼叫線程在同步處理屏障等候,直到線程數目上限進入屏障為止。 |
InitializeConditionVariable | synchapi.h | 初始化條件變數。 |
InitializeCriticalSection | synchapi.h | 初始化重要區段物件。 |
InitializeCriticalSectionAndSpinCount | synchapi.h | 初始化重要區段物件,並設定重要區段的微調計數。 |
InitializeCriticalSectionEx | synchapi.h | 使用微調計數和選擇性旗標,初始化重要區段物件。 |
InitializeSRWLock | synchapi.h | 初始化精簡的讀取器/寫入器 (SRW) 鎖定。 |
InitializeSynchronizationBarrier | synchapi.h | 初始化新的同步處理屏障。 |
LeaveCriticalSection | synchapi.h | 釋放指定之重要區段對象的擁有權。 |
ReleaseSRWLockExclusive | synchapi.h | 釋放以獨佔模式取得的精簡讀取器/寫入器 (SRW) 鎖定。 |
ReleaseSRWLockShared | synchapi.h | 釋放以共用模式取得的精簡讀取器/寫入器 (SRW) 鎖定。 |
SetCriticalSectionSpinCount | synchapi.h | 設定指定之重大區段的微調計數。 |
SleepConditionVariableCS | synchapi.h | 在指定的條件變數上睡眠,並將指定的關鍵區段釋放為不可部分完成的作業。 |
SleepConditionVariableSRW | synchapi.h | 在指定的條件變數上睡眠,並將指定的鎖定釋放為不可部分完成的作業。 |
TryAcquireSRWLockExclusive | synchapi.h | 嘗試以獨佔模式取得精簡的讀取器/寫入器 (SRW) 鎖定。 如果呼叫成功,呼叫線程會取得鎖定的擁有權。 |
TryAcquireSRWLockShared | synchapi.h | 嘗試在共用模式中取得精簡的讀取器/寫入器 (SRW) 鎖定。 如果呼叫成功,呼叫線程會取得鎖定的擁有權。 |
TryEnterCriticalSection | synchapi.h | 嘗試在不封鎖的情況下進入重要區段。 如果呼叫成功,呼叫線程會取得重要區段的擁有權。 |
WaitOnAddress | synchapi.h | 等候位於指定位址的值變更。 |
WakeAllConditionVariable | synchapi.h | 喚醒所有等候指定條件變數的線程。 |
WakeByAddressAll | synchapi.h | 喚醒所有等候位址值變更的線程。 |
WakeByAddressSingle | synchapi.h | 喚醒一個正在等候位址值變更的線程。 |
WakeConditionVariable | synchapi.h | 喚醒等候指定條件變數的單一線程。 |
GetCurrentThread | processthreadsapi.h | 擷取呼叫線程的虛擬句柄。 |
GetCurrentThreadId | processthreadsapi.h | 擷取呼叫線程的線程標識碼。 |
TlsAlloc | processthreadsapi.h | 配置線程本機記憶體 (TLS) 索引。 |
TlsFree | processthreadsapi.h | 發行 TLS 索引,使其可供重複使用。 |
TlsGetValue | processthreadsapi.h | 針對指定的 TLS 索引,擷取呼叫線程 TLS 位置中的值。 |
TlsSetValue | processthreadsapi.h | 針對指定的 TLS 索引,將值儲存在呼叫線程的 TLS 位置中。 |
EnclaveGetAttestationReport | winenclaveapi.h | 取得記憶體保護區證明報告,其描述目前的記憶體保護區,並由負責記憶體保護區類型的授權單位簽署。 |
EnclaveSealData | winenclaveapi.h | 從未存取的數據產生加密的二進位大型物件(Blob)。 |
EnclaveUnsealData | winenclaveapi.h | 解密加密的二進位大型物件 (blob)。 |
EnclaveVerifyAttestationReport | winenclaveapi.h | 驗證目前系統上產生的證明報告。 |
WideCharToMultiByte | stringapiset.h | 將UTF-16(寬字元) 字串對應至新的字元字串。 注意: VBS 記憶體保護區唯一可用的代碼頁是 CP_UTF8。 |
MultiByteToWideChar | stringapiset.h | 將字元字串對應至UTF-16(寬字元) 字串。 注意: VBS 記憶體保護區唯一可用的代碼頁是 CP_UTF8。 |
LdrResolveDelayLoadedAPI 請參閱 ResolveDelayLoadedAPI |
- | 找出指定匯入的目標函式,並將 import thunk 中的函式指標取代為函式實作的目標。 |