estrutura VDS_HINTS (vdshwprv.h)
[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]
Define as dicas automatizadas para um plex LUN ou LUN.
Sintaxe
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;
Membros
ullHintMask
A máscara de dica lun. Cada um dos membros BOOL dessa estrutura tem um sinalizador de dica correspondente que pode ser definido na máscara. Se o sinalizador de dica estiver definido, a dica correspondente será considerada. Se o sinalizador de dica não estiver definido, a dica será ignorada. Os sinalizadores de dica são descritos na tabela a seguir.
ullExpectedMaximumSize
O tamanho máximo para o qual o LUN deve crescer, em bytes. O valor pode ser igual a, maior ou menor que o valor especificado em ullSizeInBytes quando o método IVdsSubSystem::CreateLun é chamado. Alguns provedores usam esse valor para reservar espaço para o LUN. Os provedores que não conseguem reservar espaço normalmente ignoram esse parâmetro.
ulOptimalReadSize
O tamanho de leitura ideal para o LUN, em bytes. Zero indica que não há tamanho de leitura ideal.
ulOptimalReadAlignment
O alinhamento de leitura ideal em relação ao primeiro bloco lógico do LUN. Zero indica que não há alinhamento de leitura ideal.
ulOptimalWriteSize
O tamanho de gravação ideal para o LUN, em bytes. Zero indica nenhum tamanho de gravação ideal.
ulOptimalWriteAlignment
O alinhamento de gravação ideal em relação ao primeiro bloco lógico do LUN. Zero indica que não há alinhamento de gravação ideal.
ulMaximumDriveCount
O número máximo de unidades para contribuir com o LUN. Zero indica que não há contagem máxima de unidade. Esse valor pode ser usado para limitar o número de interlanças de faixa em um conjunto de distribuição.
ulStripeSize
O tamanho de intercalação entre faixas de espelho ou paridade, em bytes. Zero deixa o tamanho da faixa não especificado.
bFastCrashRecoveryRequired
Se esse membro for TRUE, o tempo de recuperação será limitado. Defina o sinalizador VDS_HINT_FASTCRASHRECOVERYREQUIRED no membro ullHintMask para indicar interesse nesse membro.
bMostlyReads
Para otimizar para um padrão de uso de leituras em sua maioria (por exemplo, por meio de espelhamento em vez de distribuição de paridade), defina esse membro como TRUE. Caso contrário, defina-o como FALSE. Defina o sinalizador VDS_HINT_MOSTLYREADS no membro ullHintMask para indicar interesse neste membro.
bOptimizeForSequentialReads
Para otimizar um padrão de uso de leituras sequenciais, defina esse membro como TRUE. Caso contrário, defina-o como FALSE. Definir os membros bOptimizeForSequentialReads e bOptimizeForSequentialWrites ambos como otimizações FALSE para E/S aleatória. Defina o sinalizador VDS_HINT_OPTIMIZEFORSEQUENTIALREADS no membro ullHintMask para indicar interesse neste membro.
bOptimizeForSequentialWrites
Para otimizar para um padrão de uso de gravações sequenciais, defina para esse membro como TRUE. Caso contrário, defina-o como FALSE. Definir os membros bOptimizeForSequentialReads e bOptimizeForSequentialWrites ambos como otimizações FALSE para E/S aleatória. Defina o sinalizador VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES no membro ullHintMask para indicar interesse neste membro.
bRemapEnabled
Se esse membro for TRUE, o provedor remapea as extensões lun para aumentar as extensões automaticamente. Se for FALSE, o mapeamento de extensões lun para extensões de unidade permanecerá corrigido após a configuração do LUN, a menos que as extensões sejam explicitamente remapeadas para evitar blocos corrompidos. Defina o sinalizador VDS_HINT_REMAPENABLED no membro ullHintMask para indicar interesse nesse membro.
bReadBackVerifyEnabled
Se esse membro estiver definido como TRUE, o provedor verificará as gravações no LUN por readback. Se estiver definido como FALSE, o provedor não verificará as gravações. Defina o sinalizador VDS_HINT_READBACKVERIFYENABLED no membro ullHintMask para indicar interesse neste membro.
bWriteThroughCachingEnabled
Se esse membro for TRUE, o provedor habilitará o cache de gravação no LUN. Se for FALSE, o provedor não habilitará o cache de gravação. Defina o sinalizador VDS_HINT_WRITETHROUGHCACHINGENABLED no membro ullHintMask para indicar interesse neste membro.
bHardwareChecksumEnabled
Se esse membro for TRUE, o provedor habilitará uma soma de verificação no LUN. Defina o sinalizador VDS_HINT_HARDWARECHECKSUMENABLED no membro ullHintMask para indicar interesse nesse membro.
bIsYankable
Se esse membro for TRUE, as unidades que contribuem para o LUN poderão ser fisicamente removidas sem interrupções significativas no sistema (isso normalmente é verdade quando o LUN é composto de extensões de apenas algumas unidades). Se for FALSE, o LUN não poderá ser removido sem interrupções significativas no sistema. Defina o sinalizador VDS_HINT_ISYANKABLE no membro ullHintMask para indicar interesse neste membro.
sRebuildPriority
A prioridade de recompilação para o LUN. O valor pode variar de 0 (prioridade mais baixa) a 15 (prioridade mais alta).
Comentários
O método IVdsSubSystem::CreateLun passa essa estrutura como um parâmetro para fornecer dicas para criar um LUN. Ele é passado como um parâmetro no método ApplyHints nas interfaces IVdsLun e IVdsLunPlex para aplicar um novo conjunto de dicas a um plex LUN ou LUN, respectivamente. Além disso, ele é retornado pelo método QueryHints nas interfaces IVdsLun e IVdsLunPlex para relatar dicas atualmente aplicadas a um plex LUN ou LUN, respectivamente.
Dicas não são diretivas para implementadores. Embora os implementadores sejam, em geral, esperados para fazer o seu melhor para levar em consideração dicas, eles não são obrigados a segui-los. Os implementadores podem optar por alternativas quando não é possível seguir as dicas especificadas por motivos técnicos ou ao segui-las pode resultar em uma configuração ruim.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | vdshwprv.h |