Compartir a través de


estructura HYBRID_INFORMATION (ntddscsi.h)

La estructura de HYBRID_INFORMATION contiene información de funcionalidad de 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 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. Se establece en TRUE si se admiten discos híbridos. De lo contrario, FALSE.

Status

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

Valor Significado
NvCacheStatusUnknown
El controlador de minipuerto no puede notificar el estado de la memoria caché.
NvCacheStatusDisabling
La memoria caché está cambiando actualmente al 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 minipuerto no puede notificar el tipo de caché.
NvCacheNone
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 LBAs, 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 cambios de directiva permitidos. 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. En caso contrario, el valor es 0.

Attributes.Removable

Compatibilidad con la eliminación de la memoria caché no volátil del disco. El valor es 1 si la memoria caché es extraíble. En caso 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 compatibilidad con todas las prioridades.

Priorities.MaxPriorityBehavior

Si es TRUE, la E/S de disco puede producir un error en la prioridad máxima si la memoria caché está llena. De lo contrario, si es 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 cambios de directiva permitidos. 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. En caso contrario, el valor es 0.

Priorities.SupportedCommands.PriorityChangeByLbaRange

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

Priorities.SupportedCommands.Evict

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

Priorities.SupportedCommands.ReservedBits

Reservado.

Priorities.SupportedCommands.MaxEvictCommands

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

Priorities.SupportedCommands.MaxLbaRangeCountForEvict

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

Priorities.SupportedCommands.MaxLbaRangeCountForChangeLba

El número máximo de intervalos LBA posibles para asociar con 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 Value
Cliente mínimo compatible Disponible a partir de Windows 8.1.
Encabezado ntddscsi.h (incluya Ntddscsi.h)

Consulte también

IOCTL_SCSI_MINIPORT_HYBRID