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 中 CreateFile 的 FileName 参数。
[in] DesiredAccess
指定调用方对文件的所需访问的位掩码。 有关此成员的详细信息,请参阅 Windows SDK 中 CreateFile 的 dwDesiredAccess 参数。
[in, optional] pOpenParams
指向调用方分配的 UMDF_IO_TARGET_OPEN_PARAMS 结构的指针,该结构包含其他参数。 此参数是可选的,可以 NULL。
返回值
OpenFileByName 如果作成功,则返回S_OK。 否则,该方法可能会返回以下值:
返回代码 | 描述 |
---|---|
|
框架尝试分配内存失败。 |
此方法可能会返回 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 |