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;

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.

Wert Bedeutung
NvCacheStatusUnknown
Der Miniporttreiber kann den Cache nicht status melden.
NvCacheStatusAktivierung
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 derzeit für Hybriddatenträger festgelegte nicht flüchtige Cachetyp. 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 flüchtigen Cache.
NvCacheTypeWriteBack
Das Zwischenspeichern von Rückschreibvorgängen wird von Hybriddatenträgern unterstützt.
NvCacheTypeWriteThrough
Das Zwischenspeichern von Schreibvorgängen wird von Hybriddatenträgern unterstützt.

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)

Weitere Informationen

IOCTL_SCSI_MINIPORT_HYBRID