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

注解

如果 StorPortRegistryReadBufferLength 参数中返回非零值的 FALSE,则传递的缓冲区太小,BufferLength 参数反映应使用的正确缓冲区大小。 如果例程返回 FALSEBufferLength 参数设置为零,则发生另一个错误。

此例程中使用的缓冲区通过调用 StorPortAllocateRegistryBuffer 进行分配,并通过调用 StorPortFreeRegistryBuffer 释放。

要求

要求
目标平台 通用
标头 storport.h (包括 Storport.h)
Library Storport.lib
IRQL PASSIVE_LEVEL
DDI 符合性规则 StorPortIrql (storport)

另请参阅

StorPortAllocateRegistryBuffer

StorPortFreeRegistryBuffer

StorPortInitialize