[警告: 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。 否则,该方法可能会返回以下值:
返回代码 | 描述 |
---|---|
|
框架尝试分配内存失败。 |
此方法可能会返回 Winerror.h 包含的其他值之一。
如果框架无法打开文件,框架 验证程序 报告错误。
言论
驱动程序 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 |
标头 | wudfddi.h (包括 Wudfddi.h) |
DLL | WUDFx.dll |