[适用于 KMDF 和 UMDF]
WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME 函数初始化驱动程序的 WDF_IO_TARGET_OPEN_PARAMS 结构,以便驱动程序可以通过指定设备、文件或设备接口的名称来打开 I/O 目标。 如果提供的名称不存在,作系统将尝试创建它。
语法
VOID WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME(
[out] PWDF_IO_TARGET_OPEN_PARAMS Params,
[in] PCUNICODE_STRING TargetDeviceName,
[in] ACCESS_MASK DesiredAccess
);
参数
[out] Params
指向驱动程序分配 WDF_IO_TARGET_OPEN_PARAMS 结构的指针,函数将初始化该结构。
[in] TargetDeviceName
WDF_IO_TARGET_OPEN_PARAMS 结构的 TargetDeviceName 成员的值。
[in] DesiredAccess
WDF_IO_TARGET_OPEN_PARAMS 结构的 DesiredAccess 成员的值。
返回值
没有
注解
如果 TargetDeviceName 指定已存在的文件的名称,则系统会替换现有文件。 如果文件不存在,系统会创建该文件。
WDF_IO_TARGET_OPEN_PARAMS 结构用作 WdfIoTargetOpen 方法的输入。
KMDF WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME 函数初始化 大小、类型、TargetDeviceName、DesiredAccess,以及 CreateOptions 指定 WDF_IO_TARGET_OPEN_PARAMS 结构的成员。
UMDF WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME 函数初始化 大小、类型、DesiredAccess,以及指定 WDF_IO_TARGET_OPEN_PARAMS 结构的 TargetDeviceName 成员。 它将 shareAccess 成员 设置为零。 它还将 fileAttributes 成员 设置为 FILE_ATTRIBUTE_NORMAL。
有关 I/O 目标的详细信息,请参阅 使用 I/O 目标。
例子
下面的代码示例创建 I/O 目标对象,并通过指定文件名打开目标。
UNICODE_STRING fileName;
RtlInitUnicodeString(
&fileName,
(PCWSTR)PROTOCOL_INTERFACE_NAME
);
status = WdfIoTargetCreate(
Adapter->WdfDevice,
WDF_NO_OBJECT_ATTRIBUTES,
&Adapter->IoTarget
);
if (!NT_SUCCESS(status)) {
DEBUGP(MP_ERROR, ("WdfIoTargetCreate failed 0x%x\n", status));
return status;
}
WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME(
&openParams,
&fileName,
STANDARD_RIGHTS_ALL
);
status = WdfIoTargetOpen(
Adapter->IoTarget,
&openParams
);
if (!NT_SUCCESS(status)) {
DEBUGP(MP_ERROR, ("WdfIoTargetOpen failed 0x%x\n", status));
return status;
}
要求
| 要求 | 价值 |
|---|---|
| 目标平台 | 普遍 |
| 最低 KMDF 版本 | 1.0 |
| 最低 UMDF 版本 | 2.0 |
| 标头 | wdfiotarget.h (包括 Wdf.h) |
| IRQL | 任何级别 |
另请参阅
WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE