WdfStringCreate 函数 (wdfstring.h)
[适用于 KMDF 和 UMDF]
WdfStringCreate 方法创建框架字符串对象,并选择性地向对象分配指定的 Unicode 字符串。
语法
NTSTATUS WdfStringCreate(
[in, optional] PCUNICODE_STRING UnicodeString,
[in, optional] PWDF_OBJECT_ATTRIBUTES StringAttributes,
[out] WDFSTRING *String
);
参数
[in, optional] UnicodeString
指向包含 Unicode 字符串常量 UNICODE_STRING 结构的指针。 框架将字符串复制到新的框架字符串对象。 此指针是可选的,可以为 NULL。
[in, optional] StringAttributes
指向 WDF_OBJECT_ATTRIBUTES 结构的指针,该结构包含新字符串对象的驱动程序提供的属性。 此参数是可选的,可以WDF_NO_OBJECT_ATTRIBUTES。
[out] String
指向接收新字符串对象的句柄的位置的指针。
返回值
如果操作成功,WdfStringCreate 将返回STATUS_SUCCESS。 否则,方法可能会返回以下值之一:
返回代码 | 说明 |
---|---|
|
未在 IRQL = PASSIVE_LEVEL 调用 WdfStringCreate。 |
|
指定的参数无效。 |
|
无法分配字符串对象。 |
有关 WdfStringCreate 方法可能返回的其他返回值的列表,请参阅 框架对象创建错误。
此方法还可能返回其他 NTSTATUS 值。
注解
框架字符串对象的默认父级是驱动程序的框架驱动程序对象。 但是,除非字符串与驱动程序相关联,否则驱动程序应将 WDF_OBJECT_ATTRIBUTES 结构的 ParentObject 成员设置为表示字符串范围的对象。 通常,字符串特定于设备,其父对象应是框架设备对象。
如果驱动程序为框架字符串对象提供 EvtCleanupCallback 或 EvtDestroyCallback 回调函数,请注意,框架在 IRQL = PASSIVE_LEVEL 调用这些回调函数。
有关框架字符串对象的详细信息,请参阅 使用字符串对象。
示例
下面的代码示例初始化 WDF_OBJECT_ATTRIBUTES 结构,然后创建框架字符串对象。
NTSTATUS status;
WDFSTRING stringHandle = NULL;
WDF_OBJECT_ATTRIBUTES attributes;
WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = pDeviceContext->Device;
status = WdfStringCreate(
NULL,
&attributes,
&stringHandle
);
if (!NT_SUCCESS(status)){
return status;
}
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfstring.h (包括 Wdf.h) |
Library | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | DriverCreate (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf) |