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.
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.
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) |