structure VDS_HINTS (vds.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 numéro d’unité logique. 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.
ullExpectedMaximumSize
Taille maximale à laquelle le numéro d’unité logique est censé croître, 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 le numéro d’unité logique. Les fournisseurs qui ne peuvent pas réserver d’espace ignorent généralement ce paramètre.
ulOptimalReadSize
Taille de lecture optimale pour le lun, en octets. Zéro n’indique aucune taille de lecture optimale.
ulOptimalReadAlignment
Alignement de lecture optimal par rapport au premier bloc logique du numéro d’unité logique. Zéro indique qu’aucun alignement de lecture optimal n’est indiqué.
ulOptimalWriteSize
Taille d’écriture optimale pour le lun, en octets. Zéro n’indique aucune taille d’écriture optimale.
ulOptimalWriteAlignment
Alignement d’écriture optimal par rapport au premier bloc logique du lun. Zéro indique qu’aucun alignement d’écriture n’est optimal.
ulMaximumDriveCount
Nombre maximal de lecteurs à contribuer au numéro d’unité logique. 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’entrelacements de bandes dans un jeu de bandes.
ulStripeSize
Taille d’entrelacement de la bande de miroir ou de parité, 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 principalement lu (par exemple, par le biais de la mise en miroir plutôt que de l’entrelacement 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 lecture séquentielle, 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 des écritures séquentielles, 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 les étendues de LUN pour générer automatiquement les extensions. S’il a la valeur FALSE, le mappage des extensions de LUN aux extensions de lecteur reste fixe après la configuration du numéro d’unité logique, sauf si les extensions sont explicitement remappé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 est défini sur TRUE, le fournisseur vérifie les écritures dans le numéro d’unité logique par 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 directe sur le numéro d’unité logique. S’il a la valeur FALSE, le fournisseur n’active pas la mise en cache en écriture directe. 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 le numéro d’unité logique. 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 au numéro d’unité logique peuvent être physiquement supprimés sans interruption significative du système (cela est généralement vrai lorsque le numéro d’unité logique est composé d’étendues provenant de quelques lecteurs seulement). S’il a la valeur FALSE, le numéro d’unité logique ne peut pas être supprimé 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 le numéro d’unité logique. La valeur peut aller de 0 (priorité la plus basse) à 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’un numéro d’unité logique. 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 plex de LUN ou de LUN, respectivement. En outre, elle est retournée par la méthode QueryHints sur les interfaces IVdsLun et IVdsLunPlex pour signaler les indicateurs actuellement appliqués à un plex de LUN ou 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 indications, ils ne sont pas obligés de les suivre. Les implémenteurs peuvent opter pour des alternatives lorsqu’ils ne peuvent pas suivre les indicateurs spécifiés pour des raisons techniques ou quand les suivre peut entraîner une configuration médiocre.
Configuration requise
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 | vds.h |