Partager via


structure VDS_HINTS (vdshwprv.h)

[À compter de Windows 8 et Windows Server 2012, l’interface COM du service de disque virtuel est remplacée par l’API Gestion du stockage Windows.]

Définit les indicateurs automagiques d’un LUN ou d’un plex de LUN.

Syntaxe

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;

Membres

ullHintMask

Masque d’indicateur DE LUN. Chacun des membres BOOL de cette structure a un indicateur d’indicateur correspondant qui peut être défini dans le masque. Si l’indicateur d’indicateur est défini, l’indicateur correspondant est pris en compte. Si l’indicateur d’indicateur n’est pas défini, l’indicateur est ignoré. Les indicateurs d’indicateur sont décrits dans le tableau suivant.

Valeur Signification
VDS_HINT_FASTCRASHRECOVERYREQUIRED
0x0000000000001L
Le fournisseur limite le temps nécessaire à la récupération. Pour prendre en charge la récupération rapide, le fournisseur utilise un journal des modifications qui permet au fournisseur de récupérer la LUN sans comparer le contenu entier de la LUN.
VDS_HINT_MOSTLYREADS
0x00000000000002L
Le fournisseur optimise la LUN pour un modèle d’utilisation en lecture principalement, généralement en utilisant la mise en miroir plutôt que la bande de parité.
VDS_HINT_OPTIMIZEFORSEQUENTIALREADS
0x0000000000004L
Le fournisseur optimise la LUN pour un modèle d’utilisation de lecture séquentielle. Si cet indicateur n’est pas défini et que VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES ne l’est pas non plus, le LUN est optimisé pour les E/S aléatoires.
VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES
0x0000000000008L
Le fournisseur optimise la LUN pour un modèle d’utilisation en écriture séquentielle. Si cet indicateur n’est pas défini et que VDS_HINT_OPTIMIZEFORSEQUENTIALREADS ne l’est pas non plus, le LUN est optimisé pour les E/S aléatoires.
VDS_HINT_READBACKVERIFYENABLED
0x0000000000010L
Le fournisseur vérifie les écritures dans la LUN à l’aide de la lecture différée.
VDS_HINT_REMAPENABLED
0x00000000000020L
Le mappage des étendues de LUN aux extensions de lecteur est créé et mis à jour automatiquement par le fournisseur. Si cet indicateur n’est pas défini, le mappage reste fixe après la configuration, sauf lorsque des actions proactives sont prises pour éviter les défaillances de lecteur.
VDS_HINT_WRITETHROUGHCACHINGENABLED
0x0000000000040L
Le fournisseur active la stratégie de mise en cache en écriture directe sur la LUN.
VDS_HINT_HARDWARECHECKSUMENABLED
0x0000000000080L
Le fournisseur active une somme de contrôle matérielle sur la LUN.
VDS_HINT_ISYANKABLE
0x00000000000100L
Le fournisseur configure la LUN pour que les lecteurs qui y contribuent puissent être supprimés physiquement avec une interruption minimale du système. Cela s’effectue normalement en veillant à ce que la LUN occupe le moins de lecteurs possible.

ullExpectedMaximumSize

Taille maximale à laquelle la LUN est censée augmenter, en octets. La valeur peut être égale à, supérieure ou inférieure à la valeur spécifiée dans ullSizeInBytes lorsque la méthode IVdsSubSystem ::CreateLun est appelée. Certains fournisseurs utilisent cette valeur pour réserver de l’espace pour la LUN. Les fournisseurs qui ne peuvent pas réserver d’espace ignorent généralement ce paramètre.

ulOptimalReadSize

Taille de lecture optimale pour la LUN, en octets. Zéro n’indique aucune taille de lecture optimale.

ulOptimalReadAlignment

Alignement de lecture optimal par rapport au premier bloc logique de la LUN. Zéro n’indique aucun alignement de lecture optimal.

ulOptimalWriteSize

Taille d’écriture optimale pour la LUN, en octets. Zéro n’indique aucune taille d’écriture optimale.

ulOptimalWriteAlignment

Alignement d’écriture optimal par rapport au premier bloc logique de la LUN. Zéro n’indique aucun alignement d’écriture optimal.

ulMaximumDriveCount

Nombre maximal de lecteurs à contribuer à la LUN. Zéro indique qu’il n’y a pas de nombre maximal de lecteurs. Cette valeur peut être utilisée pour limiter le nombre d’interleaves de bandes dans un jeu de bandes.

ulStripeSize

Taille de bande miroir ou parité entrelacé, en octets. Zéro laisse la taille de la bande non spécifiée.

bFastCrashRecoveryRequired

Si ce membre a la valeur TRUE, le temps de récupération est limité. Définissez l’indicateur VDS_HINT_FASTCRASHRECOVERYREQUIRED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.

bMostlyReads

Pour optimiser un modèle d’utilisation de la plupart des lectures (par exemple, par le biais de la mise en miroir plutôt que de la bande de parité), définissez ce membre sur TRUE. Sinon, définissez-le sur FALSE. Définissez l’indicateur VDS_HINT_MOSTLYREADS dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.

bOptimizeForSequentialReads

Pour optimiser un modèle d’utilisation de lectures séquentielles, définissez ce membre sur TRUE. Sinon, définissez-le sur FALSE. La définition des membres bOptimizeForSequentialReads et bOptimizeForSequentialWrites sur FALSE optimise les E/S aléatoires. Définissez l’indicateur VDS_HINT_OPTIMIZEFORSEQUENTIALREADS dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.

bOptimizeForSequentialWrites

Pour optimiser un modèle d’utilisation d’écriture séquentielle, affectez à ce membre la valeur TRUE. Sinon, définissez-le sur FALSE. La définition des membres bOptimizeForSequentialReads et bOptimizeForSequentialWrites sur FALSE optimise les E/S aléatoires. Définissez l’indicateur VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.

bRemapEnabled

Si ce membre a la valeur TRUE, le fournisseur remappage automatiquement les étendues de LUN pour les conduire automatiquement. S’il est FALSE, le mappage des étendues de LUN aux étendues du lecteur reste fixe après la configuration des LUN, sauf si les extensions sont explicitement réappées pour éviter les blocs endommagés. Définissez l’indicateur VDS_HINT_REMAPENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.

bReadBackVerifyEnabled

Si ce membre a la valeur TRUE, le fournisseur vérifie les écritures dans la LUN en lecture différée. S’il est défini sur FALSE, le fournisseur ne vérifie pas les écritures. Définissez l’indicateur VDS_HINT_READBACKVERIFYENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.

bWriteThroughCachingEnabled

Si ce membre a la valeur TRUE, le fournisseur active la mise en cache en écriture via le lun. S’il est FALSE, le fournisseur n’active pas la mise en cache en écriture via. Définissez l’indicateur VDS_HINT_WRITETHROUGHCACHINGENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.

bHardwareChecksumEnabled

Si ce membre a la valeur TRUE, le fournisseur active une somme de contrôle sur la LUN. Définissez l’indicateur VDS_HINT_HARDWARECHECKSUMENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.

bIsYankable

Si ce membre a la valeur TRUE, les lecteurs qui contribuent à la LUN peuvent être supprimés physiquement sans interruption significative du système (cela est généralement vrai lorsque la LUN est composée d’étendues provenant de quelques lecteurs seulement). S’il est FALSE, la LUN ne peut pas être supprimée sans interruption significative du système. Définissez l’indicateur VDS_HINT_ISYANKABLE dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.

sRebuildPriority

Priorité de reconstruction pour la LUN. La valeur peut être comprise entre 0 (priorité la plus faible) et 15 (priorité la plus élevée).

Remarques

La méthode IVdsSubSystem ::CreateLun transmet cette structure en tant que paramètre pour fournir des conseils pour la création d’une LUN. Il est passé en tant que paramètre dans la méthode ApplyHints sur les interfaces IVdsLun et IVdsLunPlex pour appliquer un nouvel ensemble d’indicateurs à un lun ou à un plex de LUN, respectivement. En outre, il est retourné par la méthode QueryHints sur les interfaces IVdsLun et IVdsLunPlex pour signaler les indicateurs actuellement appliqués à un lun ou à un plex de LUN, respectivement.

Les indicateurs ne sont pas des directives pour les implémenteurs. Bien que les implémenteurs soient généralement censés faire de leur mieux pour prendre en considération les conseils, ils ne sont pas obligés de les suivre. Les implémenteurs peuvent opter pour des alternatives lorsqu’ils ne peuvent pas suivre les conseils spécifiés pour des raisons techniques ou lorsqu’ils les suivent peuvent entraîner une configuration médiocre.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête vdshwprv.h

Voir aussi

IVdsLun ::ApplyHints

IVdsLun ::QueryHints

IVdsLunPlex ::ApplyHints

IVdsLunPlex ::QueryHints

IVdsSubSystem ::CreateLun

VDS Structures