Compartir a través de


estructura HYBRID_INFORMATION (ntddscsi.h)

La estructura HYBRID_INFORMATION contiene información sobre la funcionalidad del disco híbrido. La estructura se devuelve cuando se selecciona la función HYBRID_FUNCTION_GET_INFO en una solicitud de IOCTL_SCSI_MINIPORT_HYBRID enviada a un controlador de minipuerto de HBA.

Sintaxis

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;

Miembros

Version

Versión de esta estructura. Establezca en HYBRID_REQUEST_INFO_STRUCTURE_VERSION.

Size

Tamaño de esta estructura. Establezca en sizeof(HYBRID_INFORMATION).

HybridSupported

Miniport admite discos híbridos. Establézcalo en TRUE si se admiten discos híbridos. De lo contrario, FALSE.

Status

Estado de la caché de disco híbrido. Contiene uno de los siguientes valores.

Valor Significado
NvCacheStatusUnknown
El controlador de miniporte no puede notificar el estado de la memoria caché.
NvCacheStatusDisabling
La memoria caché cambia actualmente a estado nvCacheStatusDisabled.
nvCacheStatusDisabled
La memoria caché en el disco híbrido está deshabilitada.
NvCacheStatusEnabled
La memoria caché en el disco híbrido está habilitada.

CacheTypeEffective

El tipo de almacenamiento en caché no volátil establecido actualmente para el disco híbrido. El tipo de caché efectiva es uno de los siguientes valores.

Valor Significado
NvCacheTypeUnknown
El controlador de miniport no puede notificar el tipo de caché.
nvCacheNone de
El disco no admite una caché no volátil.
NvCacheTypeWriteBack
El almacenamiento en caché de reescritura es compatible con el disco híbrido.
nvCacheTypeWriteThrough
El almacenamiento en caché de escritura a través es compatible con el disco híbrido.

CacheTypeDefault

Tipo de almacenamiento en caché predeterminado usado por el disco híbrido. Los valores posibles son los mismos que para CacheTypeEffective.

FractionBase

Valor base de los campos fraccionarios de esta estructura. Este valor se establece en 255.

CacheSize

Tamaño, en LBA, del disco híbrido no volátil.

Attributes

Atributos de disco híbrido.

Attributes.WriteCacheChangeable

Compatibilidad con cambios en la directiva de almacenamiento en caché de escritura. El valor es 1 cambio de directiva. De lo contrario, se omiten los cambios.

Attributes.WriteThroughIoSupported

Compatibilidad con operaciones de escritura individuales cuando se usa el almacenamiento en caché de escritura a través. El valor es 1 si se admiten escrituras individuales. De lo contrario, los valores son 0.

Attributes.FlushCacheSupported

Compatibilidad con vaciado de caché no volátil. El valor es 1 si se admiten vaciados. De lo contrario, el valor es 0.

Attributes.Removable

Compatibilidad con la eliminación de la caché no volátil del disco. El valor es 1 si la memoria caché es extraíble. De lo contrario, el valor es 0.

Attributes.ReservedBits

Reservado.

Priorities

Configuración de prioridad para el disco híbrido.

Priorities.PriorityLevelCount

Número de niveles de prioridad admitidos por la memoria caché. Actualmente, un valor distinto de cero indica la compatibilidad con todas las prioridades.

Priorities.MaxPriorityBehavior

Si TRUE, la E/S del disco puede producir un error de prioridad máxima si la memoria caché está llena. De lo contrario, si FALSE, la operación se completará en el disco.

Priorities.OptimalWriteGranularity

Priorities.Reserved

Priorities.DirtyThresholdLow

Umbral bajo para un vaciado de caché. Este valor es la relación en el intervalo de FractionBase.

Priorities.DirtyThresholdHigh

Umbral bajo para un vaciado de caché. Este valor es la relación en el intervalo de FractionBase.

Priorities.SupportedCommands

Compatibilidad con comandos específicos de caché no volátiles en el disco híbrido.

Priorities.SupportedCommands.CacheDisable

Compatibilidad con cambios en la directiva de almacenamiento en caché de escritura. El valor es 1 cambio de directiva. De lo contrario, se omiten los cambios.

Priorities.SupportedCommands.SetDirtyThreshold

Compatibilidad con operaciones de escritura individuales cuando se usa el almacenamiento en caché de escritura a través. El valor es 1 si se admiten escrituras individuales. De lo contrario, los valores son 0.

Priorities.SupportedCommands.PriorityDemoteBySize

Compatibilidad con vaciado de caché no volátil. El valor es 1 si se admiten vaciados. De lo contrario, el valor es 0.

Priorities.SupportedCommands.PriorityChangeByLbaRange

Compatibilidad con los cambios de prioridad del intervalo LBA. El valor es 1 si se admiten cambios de prioridad. De lo contrario, el valor es 0.

Priorities.SupportedCommands.Evict

Compatibilidad con la eliminación de la caché no volátil del disco. El valor es 1 si la memoria caché es extraíble. De lo contrario, el valor es 0.

Priorities.SupportedCommands.ReservedBits

Reservado.

Priorities.SupportedCommands.MaxEvictCommands

Los comandos Evict simultáneos máximos permitidos que están pendientes. Este valor es válido cuando de salida se establece en 1.

Priorities.SupportedCommands.MaxLbaRangeCountForEvict

Número máximo de intervalos LBA posibles para asociarse a un comando de salida. Este valor es válido cuando de salida se establece en 1.

Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba

Número máximo de intervalos LBA posibles para asociarse a un comando Priority Change. Este valor es válido cuando PriorityChangeByLbaRange está establecido en 1.

Priorities.Priority[0]

Matriz de descriptores de nivel de prioridad. El número de descriptores presentes en la matriz se establece en PriorityLevelCount.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows 8.1.
encabezado de ntddscsi.h (incluya Ntddscsi.h)

Consulte también

IOCTL_SCSI_MINIPORT_HYBRID