Partager via


StorPortRegistryRead, fonction (storport.h)

La routine StorPortRegistryRead lit les données de Registre pour l’appareil et la valeur indiqués.

Syntaxe

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

Paramètres

HwDeviceExtension

Pointeur vers l’extension de périphérique matériel. Il s’agit d’une zone de stockage par HBA que le pilote de port alloue et initialise pour le compte du pilote miniport. Les pilotes miniport stockent généralement des informations spécifiques à l’adaptateur HBA dans cette extension, telles que l’état de l’adaptateur HBA et les plages d’accès mappées pour l’adaptateur HBA. Cette zone est disponible pour le pilote miniport immédiatement après l’appel du pilote miniport StorPortInitialize. Le pilote de port libère cette mémoire lorsqu’il supprime l’appareil. Le pilote miniport doit s’exécuter au PASSIVE_LEVEL IRQL lorsqu’il appelle cette routine.

ValueName

Pointeur vers un UCHAR qui spécifie le nom de la valeur de Registre dont le contenu doit être lu.

Global

Indique, lorsqu’il n’est pas différent de zéro, que le pilote de port lit le contenu de la valeur de Registre spécifiée par ValueName sous la sous-clé Parameters\Device. Les valeurs sous la clé d’appareil s’appliquent à tous les adaptateurs du système. Lorsque global est égal à zéro, le pilote de port lit le contenu de la valeur de Registre spécifiée par ValueName sous la sous-clé Parameters\Device(d), où (d) est une valeur décimale qui correspond au numéro de port d’un adaptateur particulier. Dans ce cas, les données récupérées sont spécifiques à l’adaptateur.

Type

Indique le type de données de la valeur de Registre. Ce paramètre doit avoir l’une des valeurs du tableau suivant.

Type de données de valeur de Registre Signification
REG_NONE Aucun type de données spécifié.
REG_SZ Indique une chaîne Unicode NULL-terminated.
REG_EXPAND_SZ Indique une chaîne Unicode NULLqui inclut des variables d’environnement qui doivent être développées pour obtenir la chaîne complète. Par exemple, un nom de chemin d’accès peut être stocké en tant que chaîne suivante : «%USERPROFILE%\Application Data ». Dans cet exemple, la variable d’environnement USERPROFILE doit être développée pour obtenir le chemin d’accès réel.
REG_BINARY Indique une donnée binaire brute.
REG_DWORD Indique une valeur de mot double 32 bits.
REG_DWORD_LITTLE_ENDIAN Indique une valeur de mot double 32 bits, dans l’ordre little-endian. Cela est identique à REG_DWORD.
REG_DWORD_BIG_ENDIAN Indique une valeur de mot double 32 bits, dans l’ordre big-endian.
REG_LINK Indique une chaîne Unicode contenant un lien symbolique.
REG_MULTI_SZ Indique une série de chaînes NULL-terminated strings.
REG_RESOURCE_LIST Indique que la valeur de Registre contient une liste de ressources matérielles, également appelée « carte de ressources matérielles », qui est stockée sous la ruche HKEY_LOCAL_MACHINE\HARDWARE\ResourceMap.
REG_FULL_RESOURCE_DESCRIPTOR Indique que la valeur de Registre contient une description des ressources matérielles stockées sous la ruche HKEY_LOCAL_MACHINE\HARDWARE\Description.
REG_RESOURCE_REQUIREMENTS_LIST Indique que la valeur de Registre contient une liste des exigences de ressources matérielles stockées dans l’arborescence HKEY_LOCAL_MACHINE\HARDWARE\ResourceMap.
REG_QWORD Indique que la valeur de Registre contient un nombre 64 bits.
REG_QWORD_LITTLE_ENDIAN Indique que la valeur de Registre contient un nombre 64 bits. Il s’agit du même type de données que REG_QWORD.

Buffer

Pointeur vers la mémoire tampon où les informations de Registre récupérées doivent être signalées.

BufferLength

Pointeur vers un ULONG qui contient la taille, en octets, des données de Registre retournées.

Valeur de retour

StorPortRegistryRead retourne une valeur booléenne de TRUE si les données pointées par ValueName sont correctement converties en ASCII et copiées dans la mémoire tampon. Cette routine retourne FALSE en cas d’erreur.

Remarques

Si StorPortRegistryRead retourne FALSE avec une valeur différente de zéro dans le paramètre BufferLength, la mémoire tampon passée était trop petite et le paramètre BufferLength reflète la taille correcte de la mémoire tampon qui doit être utilisée. Si la routine retourne FALSE avec le paramètre BufferLength défini sur zéro, une autre erreur s’est produite.

La mémoire tampon utilisée dans cette routine est allouée en appelant StorPortAllocateRegistryBuffer et libérée en appelant StorPortFreeRegistryBuffer.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête storport.h (include Storport.h)
bibliothèque Storport.lib
IRQL PASSIVE_LEVEL
règles de conformité DDI StorPortIrql(storport)

Voir aussi

StorPortAllocateRegistryBuffer

StorPortFreeRegistryBuffer

StorPortInitialize