Partager via


Fonction StorPortRegistryRead (storport.h)

La routine StorPortRegistryRead lit les données du 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 que le pilote miniport a appelé StorPortInitialize. Le pilote de port libère cette mémoire lorsqu’il supprime l’appareil. Le pilote miniport doit être en cours d’exécution 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 nul, 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 à toutes les cartes 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’une carte particulière. 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 du Registre. Ce paramètre doit avoir l’une des valeurs du tableau suivant.

Type de données valeur de Registre Signification
REG_NONE Aucun type de données spécifié.
REG_SZ Indique une chaîne Unicode terminée par NULL.
REG_EXPAND_SZ Indique une chaîne Unicode terminée par null qui 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é sous la forme de la 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. Ceci 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 terminées par NULL.
REG_RESOURCE_LIST Indique que la valeur de Registre contient une liste de ressources matérielles, également appelée « carte des 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 du Registre contient une liste de ressources matérielles requises stockées dans l’arborescence HKEY_LOCAL_MACHINE\HARDWARE\ResourceMap.
REG_QWORD Indique que la valeur du Registre contient un nombre 64 bits.
REG_QWORD_LITTLE_ENDIAN Indique que la valeur du 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 du Registre retournées.

Valeur retournée

StorPortRegistryRead retourne une valeur booléenne 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 de mémoire tampon appropriée à utiliser. 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.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête storport.h (inclure Storport.h)
Bibliothèque Storport.lib
IRQL PASSIVE_LEVEL
Règles de conformité DDI StorPortIrql(storport)

Voir aussi

StorPortAllocateRegistryBuffer

StorPortFreeRegistryBuffer

StorPortInitialize