Partilhar via


estrutura HYBRID_INFORMATION (ntddscsi.h)

A estrutura HYBRID_INFORMATION contém informações de funcionalidade de disco híbrido. A estrutura é retornada quando a função HYBRID_FUNCTION_GET_INFO é selecionada em uma solicitação IOCTL_SCSI_MINIPORT_HYBRID enviada a um driver de miniporto HBA.

Sintaxe

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;

Membros

Version

A versão dessa estrutura. Defina como HYBRID_REQUEST_INFO_STRUCTURE_VERSION.

Size

O tamanho desta estrutura. Defina como sizeof(HYBRID_INFORMATION).

HybridSupported

O Miniport dá suporte a discos híbridos. Defina como TRUE se houver suporte para discos híbridos. Caso contrário, FALSE.

Status

O status do cache de disco híbrido. Isso contém um dos valores a seguir.

Valor Significado
NvCacheStatusUnknown
O driver de miniporte não é capaz de relatar o cache status.
NvCacheStatusDisabling
No momento, o cache está sendo alterado para NvCacheStatusDisabled status.
NvCacheStatusDisabled
O cache no disco híbrido está desabilitado.
NvCacheStatusEnabled
O cache no disco híbrido está habilitado.

CacheTypeEffective

O tipo de cache não volátil atualmente definido para disco híbrido. O tipo de cache efetivo é um dos valores a seguir.

Valor Significado
NvCacheTypeUnknown
O driver de miniporte não é capaz de relatar o tipo de cache
NvCacheNone
O disco não dá suporte a um cache não volátil.
NvCacheTypeWriteBack
O cache de write-back tem suporte no disco híbrido.
NvCacheTypeWriteThrough
O cache de gravação é compatível com o disco híbrido.

CacheTypeDefault

O tipo de cache padrão usado pelo disco híbrido. Os valores possíveis são os mesmos de CacheTypeEffective.

FractionBase

O valor base para campos fracionários nessa estrutura. Esse valor é definido como 255.

CacheSize

O tamanho, em LBAs, do não volátil no disco híbrido.

Attributes

Os atributos de disco híbrido.

Attributes.WriteCacheChangeable

Suporte para alterações na política de cache de gravação. O valor é 1 alteração de política permitida. Caso contrário, as alterações serão ignoradas.

Attributes.WriteThroughIoSupported

Suporte para operações de gravação individuais quando o cache de gravação é usado. O valor será 1 se houver suporte para gravações individuais. Caso contrário, os valores serão 0.

Attributes.FlushCacheSupported

Suporte para liberação de cache não volátil. O valor será 1 se houver suporte para liberações. Caso contrário, o valor será 0.

Attributes.Removable

Suporte à remoção do cache não volátil do disco. O valor será 1 se o cache for removível. Caso contrário, o valor será 0.

Attributes.ReservedBits

Reservado.

Priorities

Configurações de prioridade para o disco híbrido.

Priorities.PriorityLevelCount

O número de níveis de prioridade compatíveis com o cache. Atualmente, um valor diferente de zero indica suporte para todas as prioridades.

Priorities.MaxPriorityBehavior

Se TRUE, a E/S do disco poderá falhar com prioridade máxima se o cache estiver cheio. Caso contrário, se FALSE, a operação será concluída em disco.

Priorities.OptimalWriteGranularity

Priorities.Reserved

Priorities.DirtyThresholdLow

O limite baixo para uma liberação de cache. Esse valor é a taxa no intervalo de FractionBase.

Priorities.DirtyThresholdHigh

O limite baixo para uma liberação de cache. Esse valor é a taxa no intervalo de FractionBase.

Priorities.SupportedCommands

Suporte para comandos específicos de cache não volátil para o disco híbrido.

Priorities.SupportedCommands.CacheDisable

Suporte para alterações na política de cache de gravação. O valor é 1 alteração de política permitida. Caso contrário, as alterações serão ignoradas.

Priorities.SupportedCommands.SetDirtyThreshold

Suporte para operações de gravação individuais quando o cache de gravação é usado. O valor será 1 se houver suporte para gravações individuais. Caso contrário, os valores serão 0.

Priorities.SupportedCommands.PriorityDemoteBySize

Suporte para liberação de cache não volátil. O valor será 1 se houver suporte para liberações. Caso contrário, o valor será 0.

Priorities.SupportedCommands.PriorityChangeByLbaRange

Suporte para alterações de prioridade de intervalo LBA. O valor será 1 se houver suporte para alterações de prioridade. Caso contrário, o valor será 0.

Priorities.SupportedCommands.Evict

Suporte à remoção do cache não volátil do disco. O valor será 1 se o cache for removível. Caso contrário, o valor será 0.

Priorities.SupportedCommands.ReservedBits

Reservado.

Priorities.SupportedCommands.MaxEvictCommands

O máximo de comandos de despejo simultâneos permitidos que estão pendentes. Esse valor é válido quando Remove é definido como 1.

Priorities.SupportedCommands.MaxLbaRangeCountForEvict

O número máximo de intervalos de LBA possíveis para associar a um comando Remove. Esse valor é válido quando Remove é definido como 1.

Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba

O número máximo de intervalos LBA possíveis para associar a um comando de Alteração de Prioridade. Esse valor é válido quando PriorityChangeByLbaRange é definido como 1.

Priorities.Priority[0]

Uma matriz de descritores de nível de prioridade. O número de descritores presentes na matriz é definido em PriorityLevelCount.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 8.1.
Cabeçalho ntddscsi.h (inclua Ntddscsi.h)

Confira também

IOCTL_SCSI_MINIPORT_HYBRID