estructura VDS_HINTS (vds.h)
[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]
Define las sugerencias de automagic para un LUN o lun plex.
Sintaxis
typedef struct _VDS_HINTS {
ULONGLONG ullHintMask;
ULONGLONG ullExpectedMaximumSize;
ULONG ulOptimalReadSize;
ULONG ulOptimalReadAlignment;
ULONG ulOptimalWriteSize;
ULONG ulOptimalWriteAlignment;
ULONG ulMaximumDriveCount;
ULONG ulStripeSize;
BOOL bFastCrashRecoveryRequired;
BOOL bMostlyReads;
BOOL bOptimizeForSequentialReads;
BOOL bOptimizeForSequentialWrites;
BOOL bRemapEnabled;
BOOL bReadBackVerifyEnabled;
BOOL bWriteThroughCachingEnabled;
BOOL bHardwareChecksumEnabled;
BOOL bIsYankable;
SHORT sRebuildPriority;
} VDS_HINTS, *PVDS_HINTS;
Members
ullHintMask
Máscara de sugerencia de LUN. Cada uno de los miembros BOOL de esta estructura tiene una marca de sugerencia correspondiente que se puede establecer en la máscara. Si se establece la marca de sugerencia, se considera la sugerencia correspondiente. Si no se establece la marca de sugerencia, se omite la sugerencia. Las marcas de sugerencia se describen en la tabla siguiente.
ullExpectedMaximumSize
Tamaño máximo al que se espera que crezca el LUN, en bytes. El valor puede ser igual a, mayor o menor que el valor especificado en ullSizeInBytes cuando se llama al método IVdsSubSystem::CreateLun . Algunos proveedores usan este valor para reservar espacio para el LUN. Los proveedores que no pueden reservar espacio normalmente omiten este parámetro.
ulOptimalReadSize
Tamaño de lectura óptimo para el LUN, en bytes. Cero indica que no hay ningún tamaño de lectura óptimo.
ulOptimalReadAlignment
Alineación óptima de lectura con respecto al primer bloque lógico del LUN. Cero indica que no hay alineación de lectura óptima.
ulOptimalWriteSize
Tamaño de escritura óptimo para el LUN, en bytes. Cero indica que no hay ningún tamaño de escritura óptimo.
ulOptimalWriteAlignment
Alineación óptima de escritura con respecto al primer bloque lógico del LUN. Cero indica que no hay alineación de escritura óptima.
ulMaximumDriveCount
Número máximo de unidades que se van a contribuir al LUN. Cero indica que no hay número máximo de unidades. Este valor se puede usar para limitar el número de interleaves de franjas en un conjunto de franjas.
ulStripeSize
Tamaño de intercalación de reflejo o paridad, en bytes. Cero deja sin especificar el tamaño de franja.
bFastCrashRecoveryRequired
Si este miembro es TRUE, el tiempo de recuperación es limitado. Establezca la marca VDS_HINT_FASTCRASHRECOVERYREQUIRED en el miembro ullHintMask para indicar interés en este miembro.
bMostlyReads
Para optimizar un patrón de uso de lecturas principalmente (por ejemplo, mediante la creación de reflejos en lugar de la seccionamiento de paridad), establezca este miembro en TRUE. De lo contrario, establézcalo en FALSE. Establezca la marca VDS_HINT_MOSTLYREADS en el miembro ullHintMask para indicar interés en este miembro.
bOptimizeForSequentialReads
Para optimizar un patrón de uso de lecturas secuenciales, establezca este miembro en TRUE. De lo contrario, establézcalo en FALSE. Establecer los miembros bOptimizeForSequentialReads y bOptimizeForSequentialWrites en FALSE se optimizan para E/S aleatorias. Establezca la marca VDS_HINT_OPTIMIZEFORSEQUENTIALREADS en el miembro ullHintMask para indicar interés en este miembro.
bOptimizeForSequentialWrites
Para optimizar un patrón de uso de escritura secuencial, establezca en TRUE para este miembro. De lo contrario, establézcalo en FALSE. Establecer los miembros bOptimizeForSequentialReads y bOptimizeForSequentialWrites en FALSE se optimizan para E/S aleatorias. Establezca la marca VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES en el miembro ullHintMask para indicar interés en este miembro.
bRemapEnabled
Si este miembro es TRUE, el proveedor reasigna las extensiones de LUN para impulsar las extensiones automáticamente. Si es FALSE, la asignación de extensiones de LUN a extensiones de unidad permanece fija después de la configuración de LUN, a menos que las extensiones se reasignan explícitamente para evitar bloques dañados. Establezca la marca VDS_HINT_REMAPENABLED en el miembro ullHintMask para indicar interés en este miembro.
bReadBackVerifyEnabled
Si este miembro se establece en TRUE, el proveedor comprueba las escrituras en el LUN por readback. Si se establece en FALSE, el proveedor no comprueba las escrituras. Establezca la marca VDS_HINT_READBACKVERIFYENABLED en el miembro ullHintMask para indicar interés en este miembro.
bWriteThroughCachingEnabled
Si este miembro es TRUE, el proveedor habilita el almacenamiento en caché de escritura en el LUN. Si es FALSE, el proveedor no habilita el almacenamiento en caché de escritura a través. Establezca la marca VDS_HINT_WRITETHROUGHCACHINGENABLED en el miembro ullHintMask para indicar interés en este miembro.
bHardwareChecksumEnabled
Si este miembro es TRUE, el proveedor habilita una suma de comprobación en el LUN. Establezca la marca VDS_HINT_HARDWARECHECKSUMENABLED en el miembro ullHintMask para indicar interés en este miembro.
bIsYankable
Si este miembro es TRUE, las unidades que contribuyen al LUN se pueden quitar físicamente sin interrupciones significativas en el sistema (esto suele ser cierto cuando el LUN se compone de extensiones de solo unas pocas unidades). Si es FALSE, el LUN no se puede quitar sin interrupciones significativas en el sistema. Establezca la marca VDS_HINT_ISYANKABLE en el miembro ullHintMask para indicar interés en este miembro.
sRebuildPriority
Prioridad de recompilación para el LUN. El valor puede oscilar entre 0 (prioridad más baja) y 15 (prioridad más alta).
Comentarios
El método IVdsSubSystem::CreateLun pasa esta estructura como parámetro para proporcionar sugerencias para crear un LUN. Se pasa como parámetro en el método ApplyHints en las interfaces IVdsLun e IVdsLunPlex para aplicar un nuevo conjunto de sugerencias a un LUN o lun plex, respectivamente. Además, el método QueryHints lo devuelve en las interfaces IVdsLun e IVdsLunPlex para notificar sugerencias aplicadas actualmente a un LUN o plex LUN, respectivamente.
Las sugerencias no son directivas para los implementadores. Aunque se espera que los implementadores hagan lo mejor posible para tener en cuenta las sugerencias, no están obligados a seguirlas. Los implementadores pueden optar por alternativas cuando no se pueden seguir sugerencias especificadas por motivos técnicos o cuando seguirlas pueden dar lugar a una configuración deficiente.
Requisitos
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado | vds.h |