Compartilhar via


estrutura VDS_HINTS2 (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.]

Contém as dicas automatizadas para um LUN em um pool de armazenamento.

Sintaxe

typedef struct _VDS_HINTS2 {
  ULONGLONG            ullHintMask;
  ULONGLONG            ullExpectedMaximumSize;
  ULONG                ulOptimalReadSize;
  ULONG                ulOptimalReadAlignment;
  ULONG                ulOptimalWriteSize;
  ULONG                ulOptimalWriteAlignment;
  ULONG                ulMaximumDriveCount;
  ULONG                ulStripeSize;
  ULONG                ulReserved1;
  ULONG                ulReserved2;
  ULONG                ulReserved3;
  BOOL                 bFastCrashRecoveryRequired;
  BOOL                 bMostlyReads;
  BOOL                 bOptimizeForSequentialReads;
  BOOL                 bOptimizeForSequentialWrites;
  BOOL                 bRemapEnabled;
  BOOL                 bReadBackVerifyEnabled;
  BOOL                 bWriteThroughCachingEnabled;
  BOOL                 bHardwareChecksumEnabled;
  BOOL                 bIsYankable;
  BOOL                 bAllocateHotSpare;
  BOOL                 bUseMirroredCache;
  BOOL                 bReadCachingEnabled;
  BOOL                 bWriteCachingEnabled;
  BOOL                 bMediaScanEnabled;
  BOOL                 bConsistencyCheckEnabled;
  VDS_STORAGE_BUS_TYPE BusType;
  BOOL                 bReserved1;
  BOOL                 bReserved2;
  BOOL                 bReserved3;
  SHORT                sRebuildPriority;
} VDS_HINTS2, *PVDS_HINTS2;

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.
VDS_HINT_ALLOCATEHOTSPARE
0x0000000000000200L
O provedor aloca um sobressalente frequente para o LUN. Para obter mais informações, consulte Moderação frequente, VDS_DRIVE_FLAG e VDS_DISK_FLAG.
VDS_HINT_BUSTYPE
0x000000000000400L
O provedor usa o tipo de barramento especificado no LUN. Para obter mais informações, consulte VDS_STORAGE_BUS_TYPE.
VDS_HINT_USEMIRROREDCACHE
0x000000000000800L
O provedor usa um cache espelhado no LUN. Consulte o valor VDS_SF_SUPPORTS_MIRRORED_CACHE da enumeração VDS_SUB_SYSTEM_FLAG .
VDS_HINT_READCACHINGENABLED
0x0000000000001000L
O provedor habilita o cache de leitura no LUN. Consulte o valor VDS_LF_READ_CACHE_ENABLED da enumeração VDS_LUN_FLAG e o valor VDS_SF_READ_CACHING_CAPABLE da enumeração VDS_SUB_SYSTEM_FLAG .
VDS_HINT_WRITECACHINGENABLED
0x0000000000002000L
O provedor habilita o cache de gravação no LUN. Consulte o valor VDS_LF_WRITE_CACHE_ENABLED da enumeração VDS_LUN_FLAG e o valor VDS_SF_WRITE_CACHING_CAPABLE da enumeração VDS_SUB_SYSTEM_FLAG .
VDS_HINT_MEDIASCANENABLED
0x0000000000004000L
O provedor habilita a verificação de mídia no LUN. Consulte o valor VDS_LF_MEDIA_SCAN_ENABLED da enumeração VDS_LUN_FLAG e o valor VDS_SF_MEDIA_SCAN_CAPABLE da enumeração VDS_SUB_SYSTEM_FLAG .
VDS_HINT_CONSISTENCYCHECKENABLED
0x000000000008000L
O provedor habilita a verificação de consistência no LUN. Consulte o valor VDS_LF_CONSISTENCY_CHECK_ENABLED da enumeração VDS_LUN_FLAG e o valor VDS_SF_CONSISTENCY_CHECK_CAPABLE da enumeração VDS_SUB_SYSTEM_FLAG .

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 no parâmetro ullSizeInBytes quando o método IVdsHwProviderStoragePools::CreateLunInStoragePool é 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

A espelho ou tamanho de intercalação de faixa de paridade, em bytes. Zero deixa o tamanho da faixa não especificado.

ulReserved1

Este membro é reservado para uso futuro. Não use.

ulReserved2

Este membro é reservado para uso futuro. Não use.

ulReserved3

Este membro é reservado para uso futuro. Não use.

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 um padrão de uso de gravações 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_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 for TRUE, o provedor verificará as gravações no LUN por readback. Se for 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.

bAllocateHotSpare

TRUE se o cliente quiser alocar uma unidade de reposição quente para esse LUN ou FALSE caso contrário. Defina o sinalizador VDS_HINT_ALLOCATEHOTSPARE no membro ullHintMask para indicar interesse neste membro.

bUseMirroredCache

TRUE se o cliente quiser que esse LUN use um cache espelhado ou FALSE caso contrário. Defina o sinalizador VDS_HINT_USEMIRROREDCACHE no membro ullHintMask para indicar interesse neste membro.

bReadCachingEnabled

TRUE se o cliente quiser que o LUN use o cache de leitura ou FALSE caso contrário. Defina o sinalizador VDS_HINT_READCACHINGENABLED no membro ullHintMask para indicar interesse neste membro.

bWriteCachingEnabled

TRUE se o cliente quiser que o LUN use cache de gravação ou FALSE caso contrário. Defina o sinalizador VDS_HINT_WRITECACHINGENABLED no membro ullHintMask para indicar interesse neste membro.

bMediaScanEnabled

TRUE se o cliente quiser habilitar a verificação de mídia para esse LUN ou FALSE caso contrário. Defina o sinalizador VDS_HINT_MEDIASCANENABLED no membro ullHintMask para indicar interesse neste membro.

bConsistencyCheckEnabled

TRUE se o cliente quiser habilitar a verificação de consistência para esse LUN ou FALSE caso contrário. Defina o sinalizador VDS_HINT_CONSISTENCYCHECKENABLED no membro ullHintMask para indicar interesse neste membro.

BusType

Um VDS_STORAGE_BUS_TYPE valor de enumeração que especifica o tipo de barramento para o LUN. Defina o sinalizador VDS_HINT_BUSTYPE no membro ullHintMask para indicar interesse neste membro.

bReserved1

Este membro é reservado para uso futuro. Não use.

bReserved2

Este membro é reservado para uso futuro. Não use.

bReserved3

Este membro é reservado para uso futuro. Não use.

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 IVdsHwProviderStoragePools::CreateLunInStoragePool passa essa estrutura como um parâmetro para fornecer dicas para criar um LUN em um pool de armazenamento. Ele é passado como um parâmetro no método IVdsLun2::ApplyHints2 para aplicar um novo conjunto de dicas a um LUN. Além disso, ele é retornado pelo método IVdsLun2::QueryHints2 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 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Cabeçalho vdshwprv.h

Confira também

IVdsLun2::ApplyHints2

IVdsLun2::QueryHints2