IWDFRemoteTarget::OpenRemoteInterface メソッド (wudfddi.h)
[警告: UMDF 2 は UMDF の最新バージョンであり、UMDF 1 よりも優先されます。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、新しいバージョンのWindows 10では UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは、UMDF 2 を使用する必要があります。 詳細については、「UMDF を使用したはじめに」を参照してください。
OpenRemoteInterface メソッドは、ドライバーが I/O 要求を送信できるように、デバイス インターフェイスを開きます。
構文
HRESULT OpenRemoteInterface(
[in] IWDFRemoteInterface *pRemoteInterface,
[in, optional] PCWSTR pszRelativeFileName,
[in] DWORD DesiredAccess,
[in, optional] PUMDF_IO_TARGET_OPEN_PARAMS pOpenParams
);
パラメーター
[in] pRemoteInterface
ドライバーが IWDFDevice2::CreateRemoteInterface の以前の呼び出しから取得した IWDFRemoteInterface インターフェイスへのポインター。
[in, optional] pszRelativeFileName
フレームワークがデバイス インターフェイスのシンボリック リンク名に追加する、呼び出し元から提供された null で終わる文字列への省略可能なポインター。
[in] DesiredAccess
ファイルへの呼び出し元の必要なアクセスを指定するビットマスク。 このメンバーの詳細については、Windows SDKの CreateFile の DesiredAccess パラメーターを参照してください。
[in, optional] pOpenParams
追加のパラメーターを含む呼び出し元によって割り当てられた UMDF_IO_TARGET_OPEN_PARAMS 構造体へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
操作が成功した場合、OpenRemoteInterface はS_OKを返します。 それ以外の場合、メソッドは次の値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
フレームワークのメモリ割り当て試行に失敗しました。 |
このメソッドは、Winerror.h に含まれる他の値の 1 つを返す場合があります。
フレームワークの 検証ツール は、フレームワークがファイルを開くことができない場合にエラーを報告します。
注釈
ドライバーの IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival コールバック関数がデバイス インターフェイスが使用可能であることを示す通知を受け取った後、ドライバーが IWDFDevice2::CreateRemoteInterface を呼び出してリモート インターフェイス オブジェクトを作成した後、ドライバーは OpenRemoteInterface を呼び出して、デバイス インターフェイスに I/O 要求を送信できるようにします。
デバイス インターフェイスには、UMDF ベースのドライバー (通常はローカル サービス アカウント) を読み込んだアカウントからアクセスできる必要があります。 ただし、ドライバーが OpenRemoteInterface を呼び出すときに偽装を使用する場合は、偽装されたアカウントからデバイス インターフェイスにアクセスできる必要があります。
OpenRemoteInterface と UMDF ベースのドライバーでデバイス インターフェイスを使用する方法の詳細については、「UMDF ベースのドライバーでのデバイス インターフェイスの使用」を参照してください。
例
次のコード例は、 IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival コールバック関数で、デバイス インターフェイスのリモート インターフェイスとリモート ターゲット オブジェクトを作成し、I/O 操作用のインターフェイスを開く方法を示しています。
void
STDMETHODCALLTYPE
CMyDevice::OnRemoteInterfaceArrival(
__in IWDFRemoteInterfaceInitialize * FxRemoteInterfaceInit
)
...
HRESULT hr;
CComPtr<IWDFRemoteInterface> fxRemoteInterface;
CComPtr<IWDFRemoteTarget> m_FxTarget;
hr = m_FxDevice->CreateRemoteInterface(FxRemoteInterfaceInit,
NULL,
&fxRemoteInterface);
if (FAILED(hr)) goto Error;
hr = FxDevice->CreateRemoteTarget(unknown,
fxRemoteInterface,
&m_FxTarget);
if (FAILED(hr)) goto Error;
hr = m_FxTarget->OpenRemoteInterface(fxRemoteInterface,
NULL,
GENERIC_READ | GENERIC_WRITE,
NULL);
...
Error:
...
要件
要件 | 値 |
---|---|
サポート終了 | UMDF 2.0 以降では使用できません。 |
対象プラットフォーム | デスクトップ |
最小 UMDF バージョン | 1.9 |
Header | wudfddi.h (Wudfddi.h を含む) |
[DLL] | WUDFx.dll |