Partager via


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.

Valeur Signification
NvCacheStatusUnknown
Le pilote miniport n’est pas en mesure de signaler l’état du cache.
NvCacheStatusDisabling
Le cache passe actuellement à l’état NvCacheStatusDisabled.
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 différée est prise en charge par le disque hybride.
NvCacheTypeWriteThrough
La mise en cache en écriture directe est prise en charge par le disque hybride.

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)

Voir aussi

IOCTL_SCSI_MINIPORT_HYBRID