Partager via


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.

Valeur Signification
NvCacheStatusUnknown
Le pilote miniport n’est pas en mesure de signaler le status du cache.
NvCacheStatusDisabling
Le cache passe actuellement à nvCacheStatusDisabled status.
NvCacheStatusDisabled
Le cache sur le disque hybride est désactivé.
NvCacheStatusEnabled
Le cache sur le disque hybride est activé.

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.

Valeur Signification
NvCacheTypeUnknown
Le pilote miniport n’est pas en mesure de signaler le type de cache
NvCacheNone
Le disque ne prend pas en charge un cache non volatile.
NvCacheTypeWriteBack
La mise en cache en écriture différée est prise en charge par le disque hybride.
NvCacheTypeWriteThrough
La mise en cache en écriture via le disque hybride est prise en charge.

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)

Voir aussi

IOCTL_SCSI_MINIPORT_HYBRID