次の方法で共有


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

IWDFRemoteInterface インターフェイスへのポインター。IWDFDevice2::CreateRemoteInterfaceへの以前の呼び出しからドライバーが取得しました。

[in, optional] pszRelativeFileName

フレームワークがデバイス インターフェイスのシンボリック リンク名に追加する、呼び出し元が指定した null 終了文字列をする省略可能なポインター。

[in] DesiredAccess

ファイルへの呼び出し元の必要なアクセスを指定するビットマスク。 このメンバーの詳細については、Windows SDK の CreateFile DesiredAccess パラメーター 参照してください。

[in, optional] pOpenParams

追加のパラメーターを含む呼び出し元によって割り当てられた UMDF_IO_TARGET_OPEN_PARAMS 構造体へのポインター。 このパラメーターは省略可能であり、NULL できます。

戻り値

OpenRemoteInterface は、操作が成功した場合にS_OKを返します。 それ以外の場合、メソッドは次の値を返す可能性があります。

リターン コード 形容
E_OUTOFMEMORY
フレームワークによるメモリの割り当てに失敗しました。
 

このメソッドは、Winerror.h に含まれる他の値の 1 つを返す場合があります。

フレームワークの 検証ツール は、フレームワークがファイルを開くことができない場合にエラーを報告します。

備考

ドライバーの IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival コールバック関数は、デバイス インターフェイスが使用可能であることを示す通知を受け取り、ドライバーが IWDFDevice2::CreateRemoteInterface を呼 び出してリモート インターフェイス オブジェクトを作成した後、デバイス インターフェイスに I/O 要求を送信できるように、OpenRemoteInterface を呼び出すことができます。

デバイス インターフェイスには、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
ヘッダー wudfddi.h (Wudfddi.h を含む)
DLL WUDFx.dll

関連項目

IWDFRemoteTarget

IWDFRemoteTarget::OpenFileByName