VBS エンクレーブで使用可能な Vertdll API

エンクレーブは、信頼された実行環境を作成するために使用されます。 これらの Vertdll API は、VBS エンクレーブ内の開発者が利用できます。

Vertdll.dll によってエクスポートされる関数

Vertdll.dll によってエクスポートされる次の API は、VBS エンクレーブで呼び出すことができます。

API Header 説明
IsProcessorFeaturePresent processthreadsapi.h 指定したプロセッサ機能が現在のコンピューターでサポートされているかどうかを判断します。
LdrDisableThreadCalloutsForDll - スレッドのアタッチを無効にし、DLL へのコールアウトをデタッチします。
NtTerminateProcess
TerminateProcess」を参照してください
processthreadsapi.h 指定したプロセスとそのすべてのスレッドを終了します。
RtlCaptureContext winnt.h 呼び出し元のコンテキスト内のコンテキスト レコードを取得します。
RtlGetLastNtStatus
GetLastError」を参照してください
- 最終的な NTSTATUS 値を取得します。
RtlLookupFunctionEntry winnt.h 指定した PC 値に対応するエントリをアクティブな関数テーブルで検索します。
RtlPcToFileHeader winnt.h 指定した PC 値を含むイメージのベース アドレスを取得します。
RtlRaiseStatus
RaiseException」を参照してください
- dwExceptionCode パラメーターのみを使用して例外を発生させます。 RtlRaiseStatusRaiseException を呼び出し、EXCEPTION_NONCONTINUABLE を渡して、継続不可能な例外が発生したことを示します。
RtlTimeFieldsToTime wdm.h TIME_FIELDS 情報をシステム時刻値に変換します。
RtlUnhandledExceptionFilter
UnhandledExceptionFilter」を参照してください
- プロセスがデバッグされている場合に、未処理の例外をデバッガーに渡すアプリケーション定義関数。
RtlUnwind winnt.h プロシージャ呼び出しフレームのアンワインドを開始します。
RtlUnwindEx winnt.h プロシージャ呼び出しフレームのアンワインドを開始します。
RtlVirtualUnwind winnt.h 指定した関数コンテキストの前にある関数の呼び出しコンテキストを取得します。
RtlGetSystemGlobalData - システムのグローバル データ領域のアドレスを取得します。
memcmp memory.h または
string.h
2 つのバッファーの文字を比較します。
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 メモリ ブロックをヒープから再割り当てします。 この関数を使用すると、メモリ ブロックのサイズを変更したり、他のメモリ ブロックのプロパティを変更したりできます。
HeapSize 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 アドレスの値が変更されるのを待機している 1 つのスレッドをスリープ解除します。
WakeConditionVariable synchapi.h 指定した条件変数で待機している 1 つのスレッドをスリープ解除します。
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 (ワイド文字) 文字列を新しい文字列にマップします。
MultiByteToWideChar stringapiset.h 文字列を UTF-16 (ワイド文字) 文字列にマップします。
LdrResolveDelayLoadedAPI
ResolveDelayLoadedAPI」を参照してください
- 指定したインポートのターゲット関数を検索し、インポート サンク内の関数ポインターを関数実装のターゲットに置き換えます。

関連項目