IWDFRemoteTarget::OpenFileByName 方法 (wudfddi.h)

[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 未向 UMDF 1 添加新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]

OpenFileByName 方法打开一个远程 I/O 目标,该目标是一个文件。

语法

HRESULT OpenFileByName(
  [in]           PCWSTR                      pszFileName,
  [in]           DWORD                       DesiredAccess,
  [in, optional] PUMDF_IO_TARGET_OPEN_PARAMS pOpenParams
);

参数

[in] pszFileName

指向调用方提供的 以 null 结尾的字符串的指针,该字符串表示要打开的文件的名称。 有关此成员的详细信息,请参阅Windows SDK中的 CreateFileFileName 参数。

[in] DesiredAccess

一个位掩码,指定调用方对文件的所需访问权限。 有关此成员的详细信息,请参阅Windows SDK中的 createFiledwDesiredAccess 参数。

[in, optional] pOpenParams

指向调用方分配 的UMDF_IO_TARGET_OPEN_PARAMS 结构的指针,该结构包含其他参数。 此参数是可选的,可以为 NULL

返回值

如果操作成功,OpenFileByName 将返回S_OK。 否则,该方法可能会返回以下值:

返回代码 说明
E_OUTOFMEMORY
框架分配内存的尝试失败。
 

此方法可能会返回 Winerror.h 包含的其他值之一。

如果框架无法打开该文件,则框架 的验证程序 会报告错误。

注解

如果驱动程序所属的驱动程序堆栈不支持文件的设备,驱动程序可以使用 OpenFileByName 打开文件。 如果驱动程序所属的驱动程序堆栈支持文件的设备,请使用 IWDFFileHandleTargetFactory::CreateFileHandleTarget 打开文件。

指定的文件必须由加载基于 UMDF 的驱动程序的帐户(通常是本地服务帐户)访问。 但是,如果驱动程序在调用 OpenFileByName 时使用模拟,则模拟帐户必须可访问该文件。

不要调用 OpenFileByName 来打开控制设备对象的远程目标。 而是通过调用 CreateFile 直接打开控制设备。

有关 OpenFileByName 方法和远程 I/O 目标的详细信息,请参阅 UMDF 中的常规 I/O 目标

示例

下面的代码示例创建一个远程目标对象,并打开具有只读访问权限的现有文件。

UMDF_IO_TARGET_OPEN_PARAMS openParams;
HRESULT hr;

//
// Create a new remote target object and provide a callback 
// object to handle remote target events.
//
CComPtr<IWDFRemoteTarget> fxTarget;
hr = FxDevice->CreateRemoteTarget(MyRemoteTargetIUnknown,
                                  fxRemoteInterface,
                                  &fxTarget);
if (FAILED(hr)) goto Error;

//
// Open existing file for read-only access.
//
openParams.dwShareMode = 0;
openParams.dwCreationDisposition = OPEN_EXISTING;
openParams.dwFlagsAndAttributes = FILE_ATTRIBUTE_READONLY;

hr = fxTarget->OpenFileByName(FILE_PATH,
                              GENERIC_READ,
                              &openParams);
 

要求

要求
结束支持 在 UMDF 2.0 及更高版本中不可用。
目标平台 桌面
最低 UMDF 版本 1.9
标头 wudfddi.h (包括 Wudfddi.h)
DLL WUDFx.dll

另请参阅

IWDFDevice2::CreateRemoteTarget

IWDFRemoteTarget

IWDFRemoteTarget::OpenRemoteInterface