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 |