次の方法で共有


IofGetDriverProxyWrapperFromEndpoint 関数 (wdm.h)

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 任意のレベル

こちらも参照ください

IoCreateDriverProxyExtension

DRIVER_PROXY_ENDPOINT_FUNCTION