struttura HYBRID_INFORMATION (ntddscsi.h)
La struttura HYBRID_INFORMATION contiene informazioni sulle funzionalità del disco ibrido. La struttura viene restituita quando la funzione HYBRID_FUNCTION_GET_INFO viene selezionata in una richiesta di IOCTL_SCSI_MINIPORT_HYBRID inviata a un driver miniport HBA.
Sintassi
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;
Members
Version
Versione di questa struttura. Impostare su HYBRID_REQUEST_INFO_STRUCTURE_VERSION.
Size
Dimensione della struttura. Impostare su sizeof(HYBRID_INFORMATION).
HybridSupported
Miniport supporta per i dischi ibridi. Impostare su TRUE se sono supportati dischi ibridi. In caso contrario, FALSE.
Status
Stato della cache del disco ibrido. Contiene uno dei valori seguenti.
CacheTypeEffective
Tipo di memorizzazione nella cache non volatile attualmente impostato per il disco ibrido. Il tipo di cache effettivo è uno dei valori seguenti.
CacheTypeDefault
Tipo di memorizzazione nella cache predefinito usato dal disco ibrido. I valori possibili sono gli stessi di CacheTypeEffective.
FractionBase
Valore di base per i campi frazionari in questa struttura. Questo valore è impostato su 255.
CacheSize
Dimensioni, in LBA, del disco ibrido non volatile.
Attributes
Attributi del disco ibrido.
Attributes.WriteCacheChangeable
Supporto per le modifiche apportate ai criteri di memorizzazione nella cache di scrittura. Il valore è 1 sono consentite le modifiche ai criteri. In caso contrario, le modifiche vengono ignorate.
Attributes.WriteThroughIoSupported
Supporto per singole operazioni di scrittura quando viene usata la memorizzazione nella cache write-through. Il valore è 1 se sono supportate singole scritture. In caso contrario, i valori sono 0.
Attributes.FlushCacheSupported
Supporto per lo scaricamento della cache non volatile. Il valore è 1 se sono supportati gli scaricamenti. In caso contrario, il valore è 0.
Attributes.Removable
Supporto della rimozione della cache non volatile dal disco. Il valore è 1 se la cache è rimovibile. In caso contrario, il valore è 0.
Attributes.ReservedBits
Riservato.
Priorities
Impostazioni di priorità per il disco ibrido.
Priorities.PriorityLevelCount
Numero di livelli di priorità supportati dalla cache. Attualmente, un valore diverso da zero indica il supporto per tutte le priorità.
Priorities.MaxPriorityBehavior
Se TRUE, l'I/O del disco può avere esito negativo con priorità massima se la cache è piena. In caso contrario, se FALSE, l'operazione verrà completata su disco.
Priorities.OptimalWriteGranularity
Priorities.Reserved
Priorities.DirtyThresholdLow
Soglia bassa per lo scaricamento della cache. Questo valore è un rapporto nell'intervallo di FractionBase.
Priorities.DirtyThresholdHigh
Soglia bassa per lo scaricamento della cache. Questo valore è un rapporto nell'intervallo di FractionBase.
Priorities.SupportedCommands
Supporto per comandi specifici della cache non volatile per il disco ibrido.
Priorities.SupportedCommands.CacheDisable
Supporto per le modifiche apportate ai criteri di memorizzazione nella cache di scrittura. Il valore è 1 sono consentite le modifiche ai criteri. In caso contrario, le modifiche vengono ignorate.
Priorities.SupportedCommands.SetDirtyThreshold
Supporto per singole operazioni di scrittura quando viene usata la memorizzazione nella cache write-through. Il valore è 1 se sono supportate singole scritture. In caso contrario, i valori sono 0.
Priorities.SupportedCommands.PriorityDemoteBySize
Supporto per lo scaricamento della cache non volatile. Il valore è 1 se sono supportati gli scaricamenti. In caso contrario, il valore è 0.
Priorities.SupportedCommands.PriorityChangeByLbaRange
Supporto per le modifiche della priorità dell'intervallo LBA. Il valore è 1 se sono supportate le modifiche di priorità. In caso contrario, il valore è 0.
Priorities.SupportedCommands.Evict
Supporto della rimozione della cache non volatile dal disco. Il valore è 1 se la cache è rimovibile. In caso contrario, il valore è 0.
Priorities.SupportedCommands.ReservedBits
Riservato.
Priorities.SupportedCommands.MaxEvictCommands
I comandi Evict simultanei massimi consentiti in sospeso. Questo valore è valido quando Evict è impostato su 1.
Priorities.SupportedCommands.MaxLbaRangeCountForEvict
Numero massimo di intervalli LBA che è possibile associare a un comando Evict. Questo valore è valido quando Evict è impostato su 1.
Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba
Numero massimo di intervalli LBA che è possibile associare a un comando Di modifica priorità. Questo valore è valido quando PriorityChangeByVoltaRange è impostato su 1.
Priorities.Priority[0]
Matrice di descrittori a livello di priorità. Il numero di descrittori presenti nella matrice è impostato in PriorityLevelCount.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 8.1. |
Intestazione | ntddscsi.h (include Ntddscsi.h) |