Freigeben über


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;

Angehörige

Version

Die Version dieser Struktur. Auf HYBRID_REQUEST_INFO_STRUCTURE_VERSION festgelegt.

Size

Die Größe dieser Struktur. Auf Größe(HYBRID_INFORMATION) festgelegt.

HybridSupported

Miniport unterstützt hybride Datenträger. Legen Sie auf TRUE- fest, wenn Hybriddatenträger unterstützt werden. Andernfalls FALSE-.

Status

Der Status des Hybriddatenträgercaches. Dies enthält einen der folgenden Werte.

Wert Bedeutung
NvCacheStatusUnknown-
Der Miniporttreiber kann den Cachestatus nicht melden.
NvCacheStatus-Deaktivierung
Der Cache wird derzeit in NvCacheStatusDisabled Status geändert.
NvCacheStatusDisabled-
Der Cache auf dem Hybriddatenträger ist deaktiviert.
NvCacheStatusEnabled-
Der Cache auf dem Hybriddatenträger ist aktiviert.

CacheTypeEffective

Der nicht veränderliche Cachetyp, der derzeit für den Hybriddatenträger festgelegt ist. Der effektive Cachetyp ist einer der folgenden Werte.

Wert Bedeutung
NvCacheTypeUnknown-
Der Miniporttreiber kann den Cachetyp nicht melden.
NvCacheNone-
Der Datenträger unterstützt keinen nicht veränderliche Cache.
NvCacheTypeWriteBack-
Das Zwischenspeichern von Schreibvorgängen wird vom Hybriddatenträger unterstützt.
NvCacheTypeWriteThrough-
Die Schreib-Through-Zwischenspeicherung wird von einem Hybriddatenträger unterstützt.

CacheTypeDefault

Der standardmäßige Zwischenspeicherungstyp, der vom Hybriddatenträger verwendet wird. Die möglichen Werte sind identisch mit CacheTypeEffective.

FractionBase

Der Basiswert für Bruchfelder in dieser Struktur. Dieser Wert ist auf 255 festgelegt.

CacheSize

Die Größe in LBAs des nicht veränderliche Datenträgers auf dem Hybriddatenträger.

Attributes

Die Attribute des Hybriddatenträgers.

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 beim Verwenden des Zwischenspeicherns durch Das Zwischenspeichern. Der Wert ist 1, wenn einzelne Schreibvorgänge unterstützt werden. Andernfalls sind die Werte 0.

Attributes.FlushCacheSupported

Unterstützung für nicht veränderliche Cacheleerungen. Der Wert ist 1, wenn Leerungen unterstützt werden. Andernfalls ist der Wert 0.

Attributes.Removable

Unterstützung des Entfernens des nicht veränderliche Caches vom Datenträger. Der Wert ist 1, wenn der Cache wechselbar ist. Andernfalls ist der Wert 0.

Attributes.ReservedBits

Reserviert.

Priorities

Prioritätseinstellungen für den Hybriddatenträger.

Priorities.PriorityLevelCount

Die Anzahl der vom Cache unterstützten Prioritätsstufen. Derzeit gibt ein Wert ungleich Null die Unterstützung für alle Prioritäten an.

Priorities.MaxPriorityBehavior

Wenn TRUE, kann die Datenträger-E/A bei voller Cachepriorität fehlschlagen. Andernfalls wird der Vorgang auf dem Datenträger abgeschlossen, wenn FALSE-.

Priorities.OptimalWriteGranularity

Priorities.Reserved

Priorities.DirtyThresholdLow

Der niedrige Schwellenwert für das Leeren eines Caches. Dieser Wert ist das Verhältnis im Bereich von FractionBase.

Priorities.DirtyThresholdHigh

Der niedrige Schwellenwert für das Leeren eines Caches. Dieser Wert ist das Verhältnis im Bereich von FractionBase.

Priorities.SupportedCommands

Unterstützung für nicht veränderliche Cache-spezifische Befehle auf dem 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 beim Verwenden des Zwischenspeicherns durch Das Zwischenspeichern. Der Wert ist 1, wenn einzelne Schreibvorgänge unterstützt werden. Andernfalls sind die Werte 0.

Priorities.SupportedCommands.PriorityDemoteBySize

Unterstützung für nicht veränderliche Cacheleerungen. Der Wert ist 1, wenn Leerungen unterstützt werden. Andernfalls ist der Wert 0.

Priorities.SupportedCommands.PriorityChangeByLbaRange

Unterstützung für LBA-Bereichsprioritätsänderungen. Der Wert ist 1, wenn Prioritätsänderungen unterstützt werden. Andernfalls ist der Wert 0.

Priorities.SupportedCommands.Evict

Unterstützung des Entfernens des nicht veränderliche Caches vom Datenträger. Der Wert ist 1, wenn der Cache wechselbar ist. Andernfalls ist der Wert 0.

Priorities.SupportedCommands.ReservedBits

Reserviert.

Priorities.SupportedCommands.MaxEvictCommands

Die maximal zulässigen gleichzeitigen Evict-Befehle sind ausstehende. 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 Befehl "Prioritätsänderung" 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 PriorityLevelCountfestgelegt.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows 8.1.
Header- ntddscsi.h (include Ntddscsi.h)

Siehe auch

IOCTL_SCSI_MINIPORT_HYBRID