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