structure HYBRID_INFORMATION (ntdddscsi.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 demande de 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éfini sur HYBRID_REQUEST_INFO_STRUCTURE_VERSION.
Size
Taille de cette structure. Défini sur taille de(HYBRID_INFORMATION).
HybridSupported
Miniport prend en charge les disques hybrides. Définissez la valeur TRUE si les disques hybrides sont pris en charge. Sinon, FALSE.
Status
État 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 de cette structure. Cette valeur est définie sur 255.
CacheSize
Taille, en LBA, de l’élément 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 modification de stratégie autorisée. 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 des écritures individuelles sont prises en charge. Sinon, les valeurs sont 0.
Attributes.FlushCacheSupported
Prise en charge du vidage du cache non volatile. La valeur est 1 si les vidages sont pris en charge. Sinon, 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. Sinon, 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 non nulle indique la prise en charge de toutes les priorités.
Priorities.MaxPriorityBehavior
Si TRUE, les E/S de disque peuvent échouer au maximum si le cache est plein. Sinon, si FAUX, l’opération se termine sur le disque.
Priorities.OptimalWriteGranularity
Priorities.Reserved
Priorities.DirtyThresholdLow
Seuil bas pour un vidage du cache. Cette valeur est ratio dans la plage de fractionbase.
Priorities.DirtyThresholdHigh
Seuil bas pour un vidage du cache. Cette valeur est ratio dans la plage de fractionbase.
Priorities.SupportedCommands
Prise en charge des commandes spécifiques au cache non volatile 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 modification de stratégie autorisée. 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 des écritures individuelles sont prises en charge. Sinon, les valeurs sont 0.
Priorities.SupportedCommands.PriorityDemoteBySize
Prise en charge du vidage du cache non volatile. La valeur est 1 si les vidages sont pris en charge. Sinon, la valeur est 0.
Priorities.SupportedCommands.PriorityChangeByLbaRange
Prise en charge des modifications de priorité de plage LBA. La valeur est 1 si les modifications de priorité sont prises en charge. Sinon, 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. Sinon, la valeur est 0.
Priorities.SupportedCommands.ReservedBits
Réservé.
Priorities.SupportedCommands.MaxEvictCommands
Commandes evict simultanées maximales autorisées qui sont en attente. Cette valeur est valide lorsque est défini sur 1.
Priorities.SupportedCommands.MaxLbaRangeCountForEvict
Nombre maximal de plages LBA possibles à associer à une commande Evict. Cette valeur est valide lorsque est défini sur 1.
Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba
Nombre maximal de plages LBA 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 priorité. Le nombre de descripteurs présents dans le tableau est défini dans PriorityLevelCount.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows 8.1. |
d’en-tête | ntddscsi.h (include Ntddscsi.h) |