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 的指標,指定要讀取其內容的登錄值名稱。
Global
表示當非零時,埠驅動程式會在 Parameters\Device 子機碼下讀取 ValueName 所指定的登錄值內容。 [裝置金鑰] 底下的值會套用至系統中的所有適配卡。 當 Global 為零時,埠驅動程式會讀取 ValueName 在 Parameters\Device (d) 子機碼下所指定的登錄值內容,其中 (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 hive 底下的硬體資源清單,也稱為「硬體資源對應」。 |
REG_FULL_RESOURCE_DESCRIPTOR | 指出登錄值包含儲存在 HKEY_LOCAL_MACHINE\HARDWARE\Description hive 下的硬體資源描述。 |
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 會傳回 Boolean 值 TRUE。 這個例程會在發生錯誤時傳回 FALSE 。
備註
如果 StorPortRegistryRead 以 BufferLength 參數中的非零值傳回 FALSE,則傳遞的緩衝區太小,而 BufferLength 參數會反映應該使用的正確緩衝區大小。 如果例程傳回 FALSE ,且 BufferLength 參數設定為零,則會發生另一個錯誤。
此例程中使用的緩衝區是藉由呼叫 StorPortAllocateRegistryBuffer 來配置,並藉由呼叫 StorPortFreeRegistryBuffer 釋放。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | storport.h (包含 Storport.h) |
程式庫 | Storport.lib |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | StorPortIrql (storport) |