structure HYBRID_INFORMATION (ntddscsi.h)
La structure HYBRID_INFORMATION contient des informations sur les capacités de disque hybride. La structure est retournée lorsque la fonction HYBRID_FUNCTION_GET_INFO est sélectionnée dans une requête IOCTL_SCSI_MINIPORT_HYBRID envoyée à un pilote miniport HBA.
Syntaxe
typedef struct _HYBRID_INFORMATION {
ULONG Version;
ULONG Size;
BOOLEAN HybridSupported;
NVCACHE_STATUS Status;
NVCACHE_TYPE CacheTypeEffective;
NVCACHE_TYPE CacheTypeDefault;
ULONG FractionBase;
ULONGLONG CacheSize;
struct {
ULONG WriteCacheChangeable : 1;
ULONG WriteThroughIoSupported : 1;
ULONG FlushCacheSupported : 1;
ULONG Removable : 1;
ULONG ReservedBits : 28;
} Attributes;
struct {
UCHAR PriorityLevelCount;
BOOLEAN MaxPriorityBehavior;
UCHAR OptimalWriteGranularity;
UCHAR Reserved;
ULONG DirtyThresholdLow;
ULONG DirtyThresholdHigh;
struct {
ULONG CacheDisable : 1;
ULONG SetDirtyThreshold : 1;
ULONG PriorityDemoteBySize : 1;
ULONG PriorityChangeByLbaRange : 1;
ULONG Evict : 1;
ULONG ReservedBits : 27;
ULONG MaxEvictCommands;
ULONG MaxLbaRangeCountForEvict;
ULONG MaxLbaRangeCountForChangeLba;
} SupportedCommands;
NVCACHE_PRIORITY_LEVEL_DESCRIPTOR Priority[0];
} Priorities;
} HYBRID_INFORMATION, *PHYBRID_INFORMATION;
Membres
Version
Version de cette structure. Définissez sur HYBRID_REQUEST_INFO_STRUCTURE_VERSION.
Size
La taille de cette structure. Définissez sur sizeof(HYBRID_INFORMATION).
HybridSupported
Miniport prend en charge les disques hybrides. Définissez sur TRUE si les disques hybrides sont pris en charge. Sinon, FALSE.
Status
Status du cache de disque hybride. Il contient l’une des valeurs suivantes.
CacheTypeEffective
Type de mise en cache non volatile actuellement défini pour le disque hybride. Le type de cache effectif est l’une des valeurs suivantes.
CacheTypeDefault
Type de mise en cache par défaut utilisé par le disque hybride. Les valeurs possibles sont les mêmes que pour CacheTypeEffective.
FractionBase
Valeur de base pour les champs fractionnaires dans cette structure. Cette valeur est définie sur 255.
CacheSize
Taille, en LBA, du non volatile sur le disque hybride.
Attributes
Attributs de disque hybride.
Attributes.WriteCacheChangeable
Prise en charge des modifications apportées à la stratégie de mise en cache en écriture. La valeur est 1 les modifications de stratégie sont autorisées. Sinon, les modifications sont ignorées.
Attributes.WriteThroughIoSupported
Prise en charge des opérations d’écriture individuelles lors de l’utilisation de la mise en cache en écriture directe. La valeur est 1 si les écritures individuelles sont prises en charge. Sinon, les valeurs sont 0.
Attributes.FlushCacheSupported
Prise en charge de la vidage du cache non volatile. La valeur est 1 si les vidages sont pris en charge. Dans le cas contraire, la valeur est 0.
Attributes.Removable
Prise en charge de la suppression du cache non volatile du disque. La valeur est 1 si le cache est amovible. Dans le cas contraire, la valeur est 0.
Attributes.ReservedBits
Réservé.
Priorities
Paramètres de priorité pour le disque hybride.
Priorities.PriorityLevelCount
Nombre de niveaux de priorité pris en charge par le cache. Actuellement, une valeur autre que zéro indique la prise en charge de toutes les priorités.
Priorities.MaxPriorityBehavior
Si la valeur est TRUE, l’E/S disque peut échouer à la priorité maximale si le cache est plein. Sinon, si la valeur EST FALSE, l’opération se termine sur le disque.
Priorities.OptimalWriteGranularity
Priorities.Reserved
Priorities.DirtyThresholdLow
Seuil bas pour une vidage du cache. Cette valeur est ratio dans la plage de FractionBase.
Priorities.DirtyThresholdHigh
Seuil bas pour une vidage du cache. Cette valeur est ratio dans la plage de FractionBase.
Priorities.SupportedCommands
Prise en charge des commandes spécifiques de cache non volatiles sur le disque hybride.
Priorities.SupportedCommands.CacheDisable
Prise en charge des modifications apportées à la stratégie de mise en cache en écriture. La valeur est 1 les modifications de stratégie sont autorisées. Sinon, les modifications sont ignorées.
Priorities.SupportedCommands.SetDirtyThreshold
Prise en charge des opérations d’écriture individuelles lors de l’utilisation de la mise en cache en écriture directe. La valeur est 1 si les écritures individuelles sont prises en charge. Sinon, les valeurs sont 0.
Priorities.SupportedCommands.PriorityDemoteBySize
Prise en charge de la vidage du cache non volatile. La valeur est 1 si les vidages sont pris en charge. Dans le cas contraire, la valeur est 0.
Priorities.SupportedCommands.PriorityChangeByLbaRange
Prise en charge des modifications de priorité de la plage LBA. La valeur est 1 si les modifications de priorité sont prises en charge. Dans le cas contraire, la valeur est 0.
Priorities.SupportedCommands.Evict
Prise en charge de la suppression du cache non volatile du disque. La valeur est 1 si le cache est amovible. Dans le cas contraire, la valeur est 0.
Priorities.SupportedCommands.ReservedBits
Réservé.
Priorities.SupportedCommands.MaxEvictCommands
Nombre maximal de commandes d’évictage simultanées autorisées qui sont en suspens. Cette valeur est valide lorsque Evict a la valeur 1.
Priorities.SupportedCommands.MaxLbaRangeCountForEvict
Nombre maximal de plages LBA possibles à associer à une commande Evict. Cette valeur est valide lorsque Evict a la valeur 1.
Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba
Nombre maximal de plages DBA possibles à associer à une commande De changement de priorité. Cette valeur est valide lorsque PriorityChangeByLbaRange a la valeur 1.
Priorities.Priority[0]
Tableau de descripteurs de niveau de priorité. Le nombre de descripteurs présents dans le tableau est défini dans PriorityLevelCount.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 8.1. |
En-tête | ntddscsi.h (inclure Ntddscsi.h) |