DRIVER_PROXY_ENDPOINT_FUNCTION コールバックは、DriverProxy システムのホット スワップ可能なエンドポイント関数の関数シグネチャを定義します。 これは、ドライバー Hot-Swap フレームワークを通じてホット スワップ可能にすることができる任意のドライバー関数を表すジェネリック関数ポインター型です。
構文
DRIVER_PROXY_ENDPOINT_FUNCTION DriverProxyEndpointFunction;
VOID DriverProxyEndpointFunction()
{...}
戻り値
None
注釈
エンドポイント関数は、ドライバーをアンロードせずに実行時に置き換えることができるドライバー実装関数です。 DriverProxy システムは、各エンドポイント関数の現在の実装に呼び出しをリダイレクトするラッパー関数を作成し、ホット スワップ機能を有効にします。
このコールバック型は、DriverProxy システムのジェネリック関数ポインターとして機能します。 実際には、エンドポイント関数は特定の目的に応じて異なるシグネチャを持ちますが、これらはすべて DriverProxy インフラストラクチャ内 のDRIVER_PROXY_ENDPOINT_FUNCTION ポインターとして扱われます。
Driver Hot-Swap V2 では、コンパイラとリンカーの分析によって、ビルド プロセス中にエンドポイント関数が自動的に検出されます。 コンパイラは、ホット スワップ可能である必要がある関数を識別し、バイナリの .shsept セクションにそれらの関数に関する情報を配置します。
エンドポイント関数の主な特性:
- これらは、DriverProxy システムを通じて実行時に置き換えることができます
- これらは、IoGetDriverProxyWrapperFromEndpoint によって返されるラッパー関数を介してアクセスされます。
- これらは、IoCreateDriverProxyExtension によって作成された DriverProxy 拡張機能に関連付けられている必要があります
- それらの交換は、スレッドの安全性を確保するために DriverProxy インフラストラクチャを通じて調整されます
エンドポイント関数の実際の IRQL 要件は、実装されている特定の関数によって異なります。 ドライバーは、使用目的の IRQL 制約に従ってエンドポイント関数を設計する必要があります。
Requirements
| Requirement | 価値 |
|---|---|
| ターゲット プラットフォーム の | 万国 |
| Header | wdm.h |
| IRQL | Variable |
こちらも参照ください
IoGetDriverProxyWrapperFromEndpoint