Freigeben über


StorPortRegistryRead-Funktion (storport.h)

Die StorPortRegistryRead-Routine liest die Registrierungsdaten für das angegebene Gerät und den angegebenen Wert.

Syntax

BOOLEAN StorPortRegistryRead(
  PVOID  HwDeviceExtension,
  PUCHAR ValueName,
  ULONG  Global,
  ULONG  Type,
  PUCHAR Buffer,
  PULONG BufferLength
);

Parameter

HwDeviceExtension

Ein Zeiger auf die Hardwaregeräteerweiterung. Hierbei handelt es sich um einen HBA-Speicherbereich, den der Porttreiber im Auftrag des Miniporttreibers ordnet und initialisiert. Miniporttreiber speichern normalerweise HBA-spezifische Informationen in dieser Erweiterung, z. B. den Zustand des HBA und die zugeordneten Zugriffsbereiche für den HBA. Dieser Bereich steht dem Miniporttreiber unmittelbar nach dem Aufruf des Miniporttreibers StorPortInitialize zur Verfügung. Der Porttreiber gibt diesen Arbeitsspeicher frei, wenn er das Gerät entfernt. Der Miniporttreiber muss bei IRQL PASSIVE_LEVEL ausgeführt werden, wenn er diese Routine aufruft.

ValueName

Zeiger auf eine UCHAR, die den Registrierungswertnamen angibt, dessen Inhalt gelesen werden soll.

Global

Gibt an, wenn nonzero, dass der Porttreiber den Inhalt des Registrierungswerts liest, der von ValueName unter dem Unterschlüssel Parameters\Device angegeben wird. Die Werte unter dem Geräteschlüssel gelten für alle Adapter im System. Wenn Global 0 ist, liest der Porttreiber den Inhalt des von ValueName angegebenen Registrierungswerts unter dem Unterschlüssel Parameters\Device(d), wobei (d) ein Dezimalwert ist, der der Portnummer eines bestimmten Adapters entspricht. In diesem Fall sind die abgerufenen Daten adapterspezifisch.

Type

Gibt den Datentyp des Registrierungswerts an. Dieser Parameter muss über einen der Werte in der folgenden Tabelle verfügen.

Registrierungswertdatentyp Bedeutung
REG_NONE Kein Datentyp angegeben.
REG_SZ Gibt eine MIT NULL beendete Unicode-Zeichenfolge an.
REG_EXPAND_SZ Gibt eine MIT NULL beendete Unicode-Zeichenfolge an, die Umgebungsvariablen enthält, die erweitert werden müssen, um die vollständige Zeichenfolge abzurufen. Beispielsweise kann ein Pfadname als folgende Zeichenfolge gespeichert werden: "%USERPROFILE%\Anwendungsdaten". In diesem Beispiel muss die Umgebungsvariable USERPROFILE erweitert werden, um den tatsächlichen Pfadnamen abzurufen.
REG_BINARY Gibt unformatierte Binärdaten an.
REG_DWORD Gibt einen 32-Bit-Doppelwortwert an.
REG_DWORD_LITTLE_ENDIAN Gibt einen 32-Bit-Doppelwortwert in Little-Endian-Reihenfolge an. Dies ist identisch mit REG_DWORD.
REG_DWORD_BIG_ENDIAN Gibt einen 32-Bit-Doppelwortwert in big-endian-Reihenfolge an.
REG_LINK Gibt eine Unicode-Zeichenfolge an, die einen symbolischen Link enthält.
REG_MULTI_SZ Gibt eine Reihe von NULL-beendeten Zeichenfolgen an.
REG_RESOURCE_LIST Gibt an, dass der Registrierungswert eine Liste von Hardwareressourcen enthält, die auch als "Hardwareressourcenzuordnung" bezeichnet wird und unter der HKEY_LOCAL_MACHINE\HARDWARE\ResourceMap-Struktur gespeichert wird.
REG_FULL_RESOURCE_DESCRIPTOR Gibt an, dass der Registrierungswert eine Beschreibung der Hardwareressourcen enthält, die unter der HKEY_LOCAL_MACHINE\HARDWARE\Description-Struktur gespeichert sind.
REG_RESOURCE_REQUIREMENTS_LIST Gibt an, dass der Registrierungswert eine Liste der Hardwareressourcenanforderungen enthält, die in der HKEY_LOCAL_MACHINE\HARDWARE\ResourceMap-Struktur gespeichert sind.
REG_QWORD Gibt an, dass der Registrierungswert eine 64-Bit-Zahl enthält.
REG_QWORD_LITTLE_ENDIAN Gibt an, dass der Registrierungswert eine 64-Bit-Zahl enthält. Dies ist derselbe Datentyp wie REG_QWORD.

Buffer

Zeiger auf den Puffer, in dem die abgerufenen Registrierungsinformationen gemeldet werden sollen.

BufferLength

Zeiger auf eine ULONG, die die Größe der zurückgegebenen Registrierungsdaten in Bytes enthält.

Rückgabewert

StorPortRegistryRead gibt den booleschen Wert TRUE zurück, wenn die Daten, auf die von ValueName verwiesen wird, erfolgreich in ASCII konvertiert und in den Puffer kopiert wurden. Diese Routine gibt false im Fehlerfall zurück.

Hinweise

Wenn StorPortRegistryReadfalse mit einem nonzero-Wert im BufferLength-Parameter zurückgibt, war der übergebene Puffer zu klein, und der BufferLength-Parameter spiegelt die richtige Puffergröße wider, die verwendet werden sollte. Wenn die Routine FALSE zurückgibt und der BufferLength-Parameter auf null festgelegt ist, ist ein weiterer Fehler aufgetreten.

Der in dieser Routine verwendete Puffer wird durch Aufrufen von StorPortAllocateRegistryBuffer und durch Aufrufen von StorPortFreeRegistryBuffer zugewiesen.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header storport.h (einschließlich Storport.h)
Bibliothek Storport.lib
IRQL PASSIVE_LEVEL
DDI-Complianceregeln StorPortIrql(storport)

Weitere Informationen

StorPortAllocateRegistryBuffer

StorPortFreeRegistryBuffer

StorPortInitialize