StorPortRegistryRead 函数 (storport.h)
StorPortRegistryRead 例程读取所指示设备和值的注册表数据。
语法
BOOLEAN StorPortRegistryRead(
PVOID HwDeviceExtension,
PUCHAR ValueName,
ULONG Global,
ULONG Type,
PUCHAR Buffer,
PULONG BufferLength
);
参数
HwDeviceExtension
指向硬件设备扩展的指针。 这是端口驱动程序代表微型端口驱动程序分配和初始化的每个 HBA 存储区域。 微型端口驱动程序通常在此扩展中存储特定于 HBA 的信息,例如 HBA 的状态和 HBA 的映射访问范围。 在微型端口驱动程序调用 StorPortInitialize 后,微型端口驱动程序立即可以使用此区域。 端口驱动程序在删除设备时释放此内存。 微型端口驱动程序在调用此例程时,必须在 IRQL PASSIVE_LEVEL 运行。
ValueName
指向 UCHAR 的指针,该 UCHAR 指定要读取其内容的注册表值名称。
Global
指示在非零值时,端口驱动程序在 Parameters\Device 子项下读取 ValueName 指定的注册表值的内容。 设备键下的值适用于系统中的所有适配器。 当 Global 为零时,端口驱动程序在 Parameters\Device (d) 子项下读取 ValueName 指定的注册表值的内容,其中 (d) 是对应于特定适配器端口号的十进制值。 在这种情况下,检索到的数据特定于适配器。
Type
指示注册表值的数据类型。 此参数必须具有下表中的值之一。
注册表值数据类型 | 含义 |
---|---|
REG_NONE | 未指定数据类型。 |
REG_SZ | 指示 以 NULL 结尾的 Unicode 字符串。 |
REG_EXPAND_SZ | 指示以 NULL 结尾的 Unicode 字符串,该字符串包含必须展开才能获取完整字符串的环境变量。 例如,路径名称可能存储为以下字符串:“%USERPROFILE%\Application Data”。 在此示例中,必须展开环境变量 USERPROFILE 才能获取实际路径名。 |
REG_BINARY | 指示原始二进制数据。 |
REG_DWORD | 指示 32 位双字值。 |
REG_DWORD_LITTLE_ENDIAN | 指示 32 位双字值,按小端顺序排列。 这与 REG_DWORD 相同。 |
REG_DWORD_BIG_ENDIAN | 指示 32 位双字值(以大端顺序排列)。 |
REG_LINK | 指示包含符号链接的 Unicode 字符串。 |
REG_MULTI_SZ | 指示一系列 以 NULL 结尾的字符串。 |
REG_RESOURCE_LIST | 指示注册表值包含存储在 HKEY_LOCAL_MACHINE\HARDWARE\ResourceMap 配置单元下的硬件资源列表,也称为“硬件资源映射”。 |
REG_FULL_RESOURCE_DESCRIPTOR | 指示注册表值包含存储在 HKEY_LOCAL_MACHINE\HARDWARE\Description 配置单元下的硬件资源的说明。 |
REG_RESOURCE_REQUIREMENTS_LIST | 指示注册表值包含存储在 HKEY_LOCAL_MACHINE\HARDWARE\ResourceMap 树下的硬件资源要求列表。 |
REG_QWORD | 指示注册表值包含 64 位数字。 |
REG_QWORD_LITTLE_ENDIAN | 指示注册表值包含 64 位数字。 此数据类型与 REG_QWORD 相同。 |
Buffer
指向要报告检索到的注册表信息的缓冲区的指针。
BufferLength
指向 ULONG 的指针,其中包含返回的注册表数据的大小(以字节为单位)。
返回值
如果将 ValueName 指向的数据成功转换为 ASCII 并复制到缓冲区中,StorPortRegistryRead 将返回布尔值 TRUE。 此例程在发生错误时返回 FALSE 。
注解
如果 StorPortRegistryRead 在 BufferLength 参数中返回非零值的 FALSE,则传递的缓冲区太小,BufferLength 参数反映应使用的正确缓冲区大小。 如果例程返回 FALSE 且 BufferLength 参数设置为零,则发生另一个错误。
此例程中使用的缓冲区通过调用 StorPortAllocateRegistryBuffer 进行分配,并通过调用 StorPortFreeRegistryBuffer 释放。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | storport.h (包括 Storport.h) |
Library | Storport.lib |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | StorPortIrql (storport) |