Share via


estrutura VDS_HINTS (vds.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 do 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.

Valor Significado
VDS_HINT_FASTCRASHRECOVERYREQUIRED
0x000000000000001L
O provedor limita o tempo necessário para a recuperação. Para dar suporte à recuperação rápida, o provedor usa um log de alterações que permite que o provedor recupere o LUN sem comparar todo o conteúdo do LUN.
VDS_HINT_MOSTLYREADS
0x0000000000000002L
O provedor otimiza o LUN para um padrão de uso de leitura principal, normalmente usando espelhamento em vez de distribuição de paridade.
VDS_HINT_OPTIMIZEFORSEQUENTIALREADS
0x000000000000004L
O provedor otimiza o LUN para um padrão de uso de leitura sequencial. Se esse sinalizador não estiver definido e VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES também não estiver definido, o LUN será otimizado para E/S aleatória.
VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES
0x0000000000000008L
O provedor otimiza o LUN para um padrão de uso de gravação sequencial. Se esse sinalizador não estiver definido e VDS_HINT_OPTIMIZEFORSEQUENTIALREADS também não estiver definido, o LUN será otimizado para E/S aleatória.
VDS_HINT_READBACKVERIFYENABLED
0x000000000000010L
O provedor verifica as gravações no LUN usando o readback.
VDS_HINT_REMAPENABLED
0x0000000000000020L
O mapeamento de extensões LUN para extensões de unidade é criado e atualizado automaticamente pelo provedor. Se esse sinalizador não estiver definido, o mapeamento permanecerá fixo após a configuração, exceto quando ações proativas forem executadas para evitar falhas de unidade.
VDS_HINT_WRITETHROUGHCACHINGENABLED
0x000000000000040L
O provedor habilita a política de cache de gravação no LUN.
VDS_HINT_HARDWARECHECKSUMENABLED
0x000000000000080L
O provedor habilita uma soma de verificação de hardware no LUN.
VDS_HINT_ISYANKABLE
0x000000000000100L
O provedor configura o LUN para que as unidades que contribuem para ele possam ser removidas fisicamente com interrupção mínima do sistema. Isso normalmente é feito garantindo que o LUN ocupe o menor número possível de unidades.

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. 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 que 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 do espelho ou da faixa de 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 principalmente (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 nesse membro.

bOptimizeForSequentialReads

Para otimizar para 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 como false otimiza para E/S aleatória. Defina o sinalizador VDS_HINT_OPTIMIZEFORSEQUENTIALREADS no membro ullHintMask para indicar interesse nesse 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 como false otimiza para E/S aleatória. Defina o sinalizador VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES no membro ullHintMask para indicar interesse nesse membro.

bRemapEnabled

Se esse membro for TRUE, o provedor remapeá 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á fixo 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 for 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 nesse 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 write-through. Defina o sinalizador VDS_HINT_WRITETHROUGHCACHINGENABLED no membro ullHintMask para indicar interesse nesse 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 removidas fisicamente sem interrupções significativas no sistema (isso normalmente é verdadeiro 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 nesse 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

   
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 vds.h

Confira também

IVdsLun::ApplyHints

IVdsLun::QueryHints

IVdsLunPlex::ApplyHints

IVdsLunPlex::QueryHints

IVdsSubSystem::CreateLun

Estruturas VDS