IofGetDriverProxyWrapperFromEndpoint 関数は、エンドポイント関数ポインターを使用して、エンドポイント関数のラッパーへのポインターを取得します。
構文
NTSTATUS IofGetDriverProxyWrapperFromEndpoint(
PDRIVER_PROXY_EXTENSION DriverProxyExtension,
PDRIVER_PROXY_ENDPOINT_FUNCTION Endpoint,
PDRIVER_PROXY_WRAPPED_ENDPOINT_FUNCTION *Wrapper
);
パラメーター
DriverProxyExtension
[in]エンドポイントが登録されている DriverProxy 拡張機能へのポインター。 この拡張機能は、 IoCreateDriverProxyExtension の以前の呼び出しで作成されました。
Endpoint
[in]ラッパーを検索するエンドポイント関数へのポインター。 これは、以前に IoRegisterDriverProxyEndpoints に登録された関数ポインターである必要があります。
Wrapper
[out]ラップされたエンドポイント関数へのポインターを受け取る変数へのポインター。 エンドポイントが見つかった場合、これは元のエンドポイントではなく呼び出されるラッパー関数を指します。
戻り値
IofGetDriverProxyWrapperFromEndpoint は、次のいずれかの NTSTATUS 値を返します。
| リターン コード | Description |
|---|---|
| STATUS_SUCCESS | ラッパー関数が正常に見つかり、返されました。 |
| STATUS_NOT_FOUND | 指定されたエンドポイント関数が登録済みエンドポイントに見つかりませんでした。 |
注釈
この関数は、ドライバー Hot-Swap V2 でエンドポイント ラッパーを取得するための標準的なメソッドです。 この関数に渡されるエンドポイント ポインターは、自動エンドポイント列挙プロセス中に識別されたポインターと完全に一致する必要があります。
この関数を呼び出すときにコンパイラの警告を回避するには、 Endpoint パラメーターと Wrapper パラメーターのキャストが必要になる場合があります。 便宜上、型キャストを自動的に処理するマクロ IoGetDriverProxyWrapperFromEndpoint が用意されています。 この関数を直接呼び出す代わりに、マクロを使用することをお勧めします。
この関数は、任意の IRQL レベルで呼び出し、高速参照操作を実行できます。
ラッパーが取得されたら、ドライバーは、ホット スワップ可能な機能を有効にするために、元のエンドポイント関数の代わりにラッパー関数を呼び出す必要があります。
Requirements
| Requirement | 価値 |
|---|---|
| ターゲット プラットフォーム の | 万国 |
| Header | wdm.h |
| Library | NtosKrnl.lib |
| IRQL | 任意のレベル |