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) |