Функция StorPortRegistryRead (storport.h)
Подпрограмма StorPortRegistryRead считывает данные реестра для указанного устройства и значения.
Синтаксис
BOOLEAN StorPortRegistryRead(
PVOID HwDeviceExtension,
PUCHAR ValueName,
ULONG Global,
ULONG Type,
PUCHAR Buffer,
PULONG BufferLength
);
Параметры
HwDeviceExtension
Указатель на расширение аппаратного устройства. Это область хранения HBA, которую драйвер порта выделяет и инициализирует от имени драйвера мини-порта. Драйверы мини-портов обычно хранят сведения, относящиеся к HBA, в этом расширении, такие как состояние адаптера безопасности и сопоставленные диапазоны доступа для HBA. Эта область доступна драйверу мини-порта сразу после вызова драйвера минипорта StorPortInitialize. Драйвер порта освобождает эту память при удалении устройства. Драйвер мини-порта должен работать на PASSIVE_LEVEL IRQL при вызове этой подпрограммы.
ValueName
Указатель на UCHAR, указывающий имя значения реестра, содержимое которого должно быть прочитано.
Global
Указывает, если значение не равно нулю, драйвер порта считывает содержимое значения реестра, указанного параметром ValueName в подразделе Parameters\Device. Значения в разделе Ключ устройства применяются ко всем адаптерам в системе. Если значение Global равно нулю, драйвер порта считывает содержимое значения реестра, указанного параметром ValueName в подразделе Parameters\Device(d), где (d) — десятичное значение, соответствующее номеру порта конкретного адаптера. В этом случае извлекаемые данные зависят от адаптера.
Type
Указывает тип данных значения реестра. Этот параметр должен иметь одно из значений в следующей таблице.
Тип данных значения реестра | Значение |
---|---|
REG_NONE | Тип данных не указан. |
REG_SZ | Указывает строку Юникода, завершаемую null. |
REG_EXPAND_SZ | Указывает строку Юникода, завершающуюся null, которая включает переменные среды, которые необходимо развернуть для получения полной строки. Например, имя пути может храниться в следующей строке: "%USERPROFILE%\Application Data". В этом примере переменная среды USERPROFILE должна быть развернута, чтобы получить фактическое имя пути. |
REG_BINARY | Указывает необработанные двоичные данные. |
REG_DWORD | Указывает 32-разрядное значение двойного слова. |
REG_DWORD_LITTLE_ENDIAN | Указывает 32-разрядное значение двойного слова в порядке байтов. Это идентично REG_DWORD. |
REG_DWORD_BIG_ENDIAN | Указывает 32-разрядное значение двойного слова в порядке большого байта. |
REG_LINK | Указывает строку Юникода, содержащую символьную ссылку. |
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, содержащий размер возвращаемых данных реестра в байтах.
Возвращаемое значение
StorPortRegistryRead возвращает логическое значение TRUE , если данные, на которые указывает ValueName, успешно преобразуются в ASCII и копируются в буфер. Эта подпрограмма возвращает значение FALSE в случае ошибки.
Комментарии
Если StorPortRegistryRead возвращает значение FALSE с ненулевым значением в параметре BufferLength , переданный буфер был слишком мал, а параметр BufferLength отражает правильный размер буфера, который следует использовать. Если подпрограмма возвращает значение FALSE с параметром BufferLength , равным нулю, произошла другая ошибка.
Буфер, используемый в этой подпрограмме, выделяется путем вызова StorPortAllocateRegistryBuffer и освобождается путем вызова StorPortFreeRegistryBuffer.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | storport.h (включая Storport.h) |
Библиотека | Storport.lib |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | StorPortIrql(storport) |