HYBRID_INFORMATION-Struktur (ntddscsi.h)
Die HYBRID_INFORMATION-Struktur enthält Informationen zur Hybriddatenträgerfunktion. Die Struktur wird zurückgegeben, wenn die HYBRID_FUNCTION_GET_INFO-Funktion in einer IOCTL_SCSI_MINIPORT_HYBRID-Anforderung ausgewählt wird, die an einen HBA-Miniporttreiber gesendet wird.
Syntax
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;
Member
Version
Die Version dieser Struktur. Auf HYBRID_REQUEST_INFO_STRUCTURE_VERSION festgelegt.
Size
Die Größe dieser Struktur. Auf sizeof(HYBRID_INFORMATION) festgelegt.
HybridSupported
Miniport unterstützt Hybriddatenträger. Legen Sie auf TRUE fest, wenn Hybriddatenträger unterstützt werden. Andernfalls FALSE.
Status
Die status des Hybriddatenträgercaches. Dieser enthält einen der folgenden Werte.
CacheTypeEffective
Der derzeit für Hybriddatenträger festgelegte nicht flüchtige Cachetyp. Der effektive Cachetyp ist einer der folgenden Werte.
CacheTypeDefault
Der Standardcachetyp, der vom Hybriddatenträger verwendet wird. Die möglichen Werte sind identisch mit denen für CacheTypeEffective.
FractionBase
Der Basiswert für Bruchfelder in dieser Struktur. Dieser Wert ist auf 255 festgelegt.
CacheSize
Die Größe des nicht flüchtigen auf dem Hybriddatenträger in LBAs.
Attributes
Die Hybriddatenträgerattribute.
Attributes.WriteCacheChangeable
Unterstützung für Änderungen in der Schreibzwischenspeicherungsrichtlinie. Der Wert ist 1 Richtlinienänderungen sind zulässig. Andernfalls werden Änderungen ignoriert.
Attributes.WriteThroughIoSupported
Unterstützung für einzelne Schreibvorgänge, wenn zwischengespeicherte Schreibvorgänge verwendet werden. Der Wert ist 1, wenn einzelne Schreibvorgänge unterstützt werden. Andernfalls sind die Werte 0.
Attributes.FlushCacheSupported
Unterstützung für nicht flüchtige Cacheleerungen. Der Wert ist 1, wenn Leerungen unterstützt werden. Anderenfalls ist der Wert 0.
Attributes.Removable
Unterstützung der Entfernung des nicht flüchtigen Caches vom Datenträger. Der Wert ist 1, wenn der Cache entfernbar ist. Anderenfalls ist der Wert 0.
Attributes.ReservedBits
Reserviert.
Priorities
Prioritätseinstellungen für den Hybriddatenträger.
Priorities.PriorityLevelCount
Die Anzahl der Prioritätsstufen, die vom Cache unterstützt werden. Derzeit gibt ein Wert ungleich 0 (null) die Unterstützung für alle Prioritäten an.
Priorities.MaxPriorityBehavior
Bei TRUE kann die Datenträger-E/A bei maximaler Priorität fehlschlagen, wenn der Cache voll ist. Andernfalls wird der Vorgang bei FALSE auf dem Datenträger abgeschlossen.
Priorities.OptimalWriteGranularity
Priorities.Reserved
Priorities.DirtyThresholdLow
Der niedrige Schwellenwert für eine Cacheleerung. Dieser Wert ist das Verhältnis im Bereich von FractionBase.
Priorities.DirtyThresholdHigh
Der niedrige Schwellenwert für eine Cacheleerung. Dieser Wert ist das Verhältnis im Bereich von FractionBase.
Priorities.SupportedCommands
Unterstützung für nicht flüchtige Cachebefehle für den Hybriddatenträger.
Priorities.SupportedCommands.CacheDisable
Unterstützung für Änderungen in der Schreibzwischenspeicherungsrichtlinie. Der Wert ist 1 Richtlinienänderungen sind zulässig. Andernfalls werden Änderungen ignoriert.
Priorities.SupportedCommands.SetDirtyThreshold
Unterstützung für einzelne Schreibvorgänge, wenn zwischengespeicherte Schreibvorgänge verwendet werden. Der Wert ist 1, wenn einzelne Schreibvorgänge unterstützt werden. Andernfalls sind die Werte 0.
Priorities.SupportedCommands.PriorityDemoteBySize
Unterstützung für nicht flüchtige Cacheleerungen. Der Wert ist 1, wenn Leerungen unterstützt werden. Anderenfalls ist der Wert 0.
Priorities.SupportedCommands.PriorityChangeByLbaRange
Unterstützung für Änderungen der LBA-Bereichspriorität. Der Wert ist 1, wenn Prioritätsänderungen unterstützt werden. Anderenfalls ist der Wert 0.
Priorities.SupportedCommands.Evict
Unterstützung der Entfernung des nicht flüchtigen Caches vom Datenträger. Der Wert ist 1, wenn der Cache entfernbar ist. Anderenfalls ist der Wert 0.
Priorities.SupportedCommands.ReservedBits
Reserviert.
Priorities.SupportedCommands.MaxEvictCommands
Die maximal zulässigen gleichzeitigen Evict-Befehle, die ausstehend sind. Dieser Wert ist gültig, wenn Evict auf 1 festgelegt ist.
Priorities.SupportedCommands.MaxLbaRangeCountForEvict
Die maximale Anzahl von LBA-Bereichen, die einem Evict-Befehl zugeordnet werden können. Dieser Wert ist gültig, wenn Evict auf 1 festgelegt ist.
Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba
Die maximale Anzahl von LBA-Bereichen, die einem Prioritätsänderungsbefehl zugeordnet werden können. Dieser Wert ist gültig, wenn PriorityChangeByLbaRange auf 1 festgelegt ist.
Priorities.Priority[0]
Ein Array von Deskriptoren auf Prioritätsebene. Die Anzahl der im Array vorhandenen Deskriptoren wird in PriorityLevelCount festgelegt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 8.1. |
Kopfzeile | ntddscsi.h (einschließen von Ntddscsi.h) |