[適用於 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
TargetDeviceNameWDF_IO_TARGET_OPEN_PARAMS 結構成員的值。
[in] DesiredAccess
DesiredAccess 結構成員 WDF_IO_TARGET_OPEN_PARAMS 的值。
返回值
沒有
備註
如果 TargetDeviceName 指定已經存在的檔名,系統就會取代現有的檔案。 如果檔案不存在,系統會建立它。
WDF_IO_TARGET_OPEN_PARAMS 結構會作為 WdfIoTargetOpen 方法的輸入。
KMDF WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME 函式會初始化 Size、Type、TargetDeviceName、DesiredAccess,以及 CreateOptions 指定 WDF_IO_TARGET_OPEN_PARAMS 結構的成員。
UMDF WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME 函式會初始化 Size、Type、DesiredAccess,以及 TargetDeviceName 指定之 WDF_IO_TARGET_OPEN_PARAMS 結構的成員。 它會將 shareAccess 成員 設為零。 它也會將 FileAttributes 成員設定為 FILE_ATTRIBUTE_NORMAL。
範例
下列程式代碼範例會建立 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