IoGetDevicePropertyData 函数 (wdm.h)
IoGetDevicePropertyData 例程检索设备属性的当前设置。
语法
NTSTATUS IoGetDevicePropertyData(
[in] PDEVICE_OBJECT Pdo,
[in] const DEVPROPKEY *PropertyKey,
[in] LCID Lcid,
ULONG Flags,
[in] ULONG Size,
[out] PVOID Data,
[out] PULONG RequiredSize,
[out] PDEVPROPTYPE Type
);
参数
[in] Pdo
指向正在查询的设备的物理设备对象(PDO)的指针。
[in] PropertyKey
指向指定设备属性键的 DEVPROPKEY 结构的指针。
[in] Lcid
区域设置标识符。 将此参数设置为特定于语言的 LCID 值或 LOCALE_NEUTRAL。 LOCALE_NEUTRAL LCID 指定属性是非特定语言(即不特定于任何语言)。 不要将此参数设置为 LOCALE_SYSTEM_DEFAULT 或 LOCALE_USER_DEFAULT。 有关特定于语言的 LCID 值的详细信息,请参阅 LCID 结构。
Flags
保留供系统使用。 驱动程序应将此值设置为 0。
[in] Size
数据 指向的缓冲区的大小(以字节为单位)。
[out] Data
指向设备属性数据的指针。
[out] RequiredSize
指向 ULONG 的指针,用于接收在 Data返回的属性信息的大小。 如果 IoGetDevicePropertyData 返回STATUS_BUFFER_TOO_SMALL,则调用方可以使用此值分配大小正确的缓冲区。
[out] Type
指向 DEVPROPTYPE 值的指针。 如果 IoGetDevicePropertyData 成功完成,则例程使用 类型 来提供 数据 缓冲区中返回的数据类型。
返回值
IoGetDevicePropertyData 返回 NTSTATUS 值。 此例程可能返回以下值之一:
返回代码 | 描述 |
---|---|
|
作成功。 数据 缓冲区包含检索的数据。 **Type* 包含检索到的数据的类型。 |
|
数据 缓冲区太小。 **RequiredSize* 包含所需的缓冲区长度。 |
|
找不到指定的设备属性。 |
言论
内核模式驱动程序使用 IoGetDevicePropertyData 例程检索定义为统一设备属性模型的一部分的设备属性。
若要查看此例程可用的属性类型,请参阅 DEVPROP_TYPE_BYTE 和相邻页面以获取 DEVPROP_TYPE_*
。
驱动程序可以使用 IoSetDevicePropertyData 例程来修改设备属性。
IoGetDevicePropertyData 的调用方必须在 IRQL <= 系统线程上下文中APC_LEVEL运行。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows Vista 开始可用。 |
目标平台 | 普遍 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport),PowerIrpDDis(wdm) |