Freigeben über


VDS_HINTS Struktur (vds.h)

[Ab Windows 8 und Windows Server 2012 wird die COM-Schnittstelle des Virtuellen Datenträgerdiensts durch die Windows Storage Management-API ersetzt.]

Definiert die automagischen Hinweise für einen LUN- oder LUN-Plex.

Syntax

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;

Member

ullHintMask

Die LUN-Hinweismaske. Jedes BOOL-Element dieser Struktur verfügt über ein entsprechendes Hinweisflag, das in der Maske festgelegt werden kann. Wenn das Hinweisflag festgelegt ist, wird der entsprechende Hinweis berücksichtigt. Wenn das Hinweisflag nicht festgelegt ist, wird der Hinweis ignoriert. Die Hinweisflags werden in der folgenden Tabelle beschrieben.

Wert Bedeutung
VDS_HINT_FASTCRASHRECOVERYREQUIRED
0x00000000000000000001L
Der Anbieter begrenzt die für die Wiederherstellung erforderliche Zeit. Zur Unterstützung der schnellen Wiederherstellung verwendet der Anbieter ein Änderungsprotokoll, mit dem der Anbieter die LUN wiederherstellen kann, ohne den gesamten Inhalt der LUN zu vergleichen.
VDS_HINT_MOSTLYREADS
0x0000000000000000002L
Der Anbieter optimiert die LUN für ein lesefähiges Nutzungsmuster, in der Regel durch Spiegelung anstelle von Paritätsstriping.
VDS_HINT_OPTIMIZEFORSEQUENTIALREADS
0x0000000000000000004L
Der Anbieter optimiert die LUN für ein sequenzielles Lesenutzungsmuster. Wenn dieses Flag nicht festgelegt ist und VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES ebenfalls nicht festgelegt ist, ist die LUN für zufällige E/A-Vorgänge optimiert.
VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES
0x00000000000000000008L
Der Anbieter optimiert die LUN für ein Sequenzielles Schreibverhalten. Wenn dieses Flag nicht festgelegt ist und VDS_HINT_OPTIMIZEFORSEQUENTIALREADS auch nicht festgelegt ist, wird die LUN für zufällige E/A-Vorgänge optimiert.
VDS_HINT_READBACKVERIFYENABLED
0x0000000000000000010L
Der Anbieter überprüft die Schreibvorgänge in die LUN mithilfe des Readbacks.
VDS_HINT_REMAPENABLED
0x000000000000000020L
Die Zuordnung von LUN-Erweiterungen zu Laufwerksausweitungen wird automatisch vom Anbieter erstellt und aktualisiert. Wenn dieses Flag nicht festgelegt ist, bleibt die Zuordnung nach der Konfiguration behoben, es sei denn, es werden proaktive Aktionen ergriffen, um Laufwerksfehler zu vermeiden.
VDS_HINT_WRITETHROUGHCACHINGENABLED
0x0000000000000000040L
Der Anbieter aktiviert die Write-Through-Zwischenspeicherungsrichtlinie für die LUN.
VDS_HINT_HARDWARECHECKSUMENABLED
0x0000000000000000080L
Der Anbieter aktiviert eine Hardwareprüfsumme für die LUN.
VDS_HINT_ISYANKABLE
0x000000000000000100L
Der Anbieter konfiguriert LUN so, dass die Laufwerke, die dazu beitragen, physisch mit minimalen Systemunterbrechungen entfernt werden können. Dies wird normalerweise erreicht, indem sichergestellt wird, dass die LUN so wenige Laufwerke wie möglich belegt.

ullExpectedMaximumSize

Die maximale Größe, auf die die LUN voraussichtlich wachsen wird, in Bytes. Der Wert kann gleich, größer oder kleiner als der in ullSizeInBytes angegebene Wert sein, wenn die IVdsSubSystem::CreateLun-Methode aufgerufen wird. Einige Anbieter verwenden diesen Wert, um Speicherplatz für die LUN zu reservieren. Anbieter, die keinen Speicherplatz reservieren können, ignorieren diesen Parameter in der Regel.

ulOptimalReadSize

Die optimale Lesegröße für die LUN in Bytes. Null gibt keine optimale Lesegröße an.

ulOptimalReadAlignment

Die optimale Leseausrichtung in Bezug auf den ersten logischen Block der LUN. Null gibt keine optimale Leseausrichtung an.

ulOptimalWriteSize

Die optimale Schreibgröße für die LUN in Bytes. Null gibt keine optimale Schreibgröße an.

ulOptimalWriteAlignment

Die optimale Schreibausrichtung in Bezug auf den ersten logischen Block der LUN. Null gibt keine optimale Schreibausrichtung an.

ulMaximumDriveCount

Die maximale Anzahl von Laufwerken, die zur LUN beitragen sollen. Null gibt keine maximale Laufwerkanzahl an. Dieser Wert kann verwendet werden, um die Anzahl der Stripe-Interleaves in einem Stripesatz zu begrenzen.

ulStripeSize

Die Größe des Spiegel- oder Paritätsstreifens in Bytes. Null lässt die Streifengröße nicht angegeben.

bFastCrashRecoveryRequired

Wenn dieser Member TRUE ist, ist die Wiederherstellungszeit begrenzt. Legen Sie das VDS_HINT_FASTCRASHRECOVERYREQUIRED-Flag im ullHintMask-Element fest, um das Interesse an diesem Element anzuzeigen.

bMostlyReads

Legen Sie dieses Element auf TRUE fest, um für ein Verwendungsmuster mit den meisten Lesevorgängen zu optimieren (z. B. durch Spiegelung statt Paritätsstriping). Legen Sie andernfalls auf FALSE fest. Legen Sie das VDS_HINT_MOSTLYREADS-Flag im ullHintMask-Element fest, um das Interesse an diesem Element anzuzeigen.

bOptimizeForSequentialReads

Um für ein Sequenzlesemuster zu optimieren, legen Sie dieses Element auf TRUE fest. Legen Sie andernfalls auf FALSE fest. Das Festlegen der Elemente bOptimizeForSequentialReads und bOptimizeForSequentialWrites auf FALSE optimiert für zufällige E/A. Legen Sie das VDS_HINT_OPTIMIZEFORSEQUENTIALREADS-Flag im ullHintMask-Element fest, um das Interesse an diesem Element anzuzeigen.

bOptimizeForSequentialWrites

Um für ein Verwendungsmuster sequenzieller Schreibvorgänge zu optimieren, legen Sie für dieses Element auf TRUE fest. Legen Sie andernfalls auf FALSE fest. Das Festlegen der Elemente bOptimizeForSequentialReads und bOptimizeForSequentialWrites auf FALSE optimiert für zufällige E/A. Legen Sie das VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES-Flag im ullHintMask-Element fest, um das Interesse an diesem Element anzuzeigen.

bRemapEnabled

Wenn dieses Element TRUE ist, ordnet der Anbieter LUN-Erweiterungen automatisch zu Laufwerkserweiterungen um. Wenn es FALSE ist, bleibt die Zuordnung von LUN-Erweiterungen zu Laufwerksausweitungen nach der LUN-Konfiguration behoben, es sei denn, Erweiterungen werden explizit neu zugeordnet, um beschädigte Blöcke zu vermeiden. Legen Sie das VDS_HINT_REMAPENABLED-Flag im ullHintMask-Element fest, um das Interesse an diesem Element anzuzeigen.

bReadBackVerifyEnabled

Wenn dieses Element auf TRUE festgelegt ist, überprüft der Anbieter die Schreibvorgänge in die LUN durch Rücklesen. Wenn sie auf FALSE festgelegt ist, überprüft der Anbieter keine Schreibvorgänge. Legen Sie das VDS_HINT_READBACKVERIFYENABLED-Flag im ullHintMask-Element fest, um das Interesse an diesem Element anzuzeigen.

bWriteThroughCachingEnabled

Wenn dieses Element TRUE ist, aktiviert der Anbieter die Zwischenspeicherung des Schreibvorgangs auf der LUN. Wenn es FALSE ist, aktiviert der Anbieter das Zwischenspeichern von Schreibvorgängen nicht. Legen Sie das VDS_HINT_WRITETHROUGHCACHINGENABLED-Flag im ullHintMask-Element fest, um das Interesse an diesem Element anzuzeigen.

bHardwareChecksumEnabled

Wenn dieses Element TRUE ist, aktiviert der Anbieter eine Prüfsumme für die LUN. Legen Sie das VDS_HINT_HARDWARECHECKSUMENABLED-Flag im ullHintMask-Element fest, um das Interesse an diesem Element anzuzeigen.

bIsYankable

Wenn dieser Member TRUE ist, können die Laufwerke, die zur LUN beitragen, physisch entfernt werden, ohne dass das System erheblich beeinträchtigt wird (dies gilt in der Regel, wenn die LUN aus Erweiterungen von nur wenigen Laufwerken besteht). Wenn es FALSE ist, kann die LUN nicht ohne erhebliche Störungen des Systems entfernt werden. Legen Sie das VDS_HINT_ISYANKABLE-Flag im ullHintMask-Element fest, um das Interesse an diesem Element anzuzeigen.

sRebuildPriority

Die Neuerstellungspriorität für die LUN. Der Wert kann zwischen 0 (niedrigste Priorität) und 15 (höchste Priorität) liegen.

Hinweise

Die IVdsSubSystem::CreateLun-Methode übergibt diese Struktur als Parameter, um Hinweise zum Erstellen einer LUN bereitzustellen. Es wird als Parameter in der ApplyHints-Methode sowohl für die IVdsLun - als auch für die IVdsLunPlex-Schnittstelle übergeben, um einen neuen Satz von Hinweisen auf einen LUN- bzw. LUN-Plex anzuwenden. Darüber hinaus wird sie von der QueryHints-Methode sowohl auf der IVdsLun - als auch auf der IVdsLunPlex-Schnittstelle zurückgegeben, um Hinweise zu melden, die derzeit auf einen LUN- bzw. LUN-Plex angewendet werden.

Hinweise sind keine Anweisungen für Implementierer. Obwohl von Den Implementierern im Allgemeinen erwartet wird, dass sie ihr Bestes geben, um Hinweise zu berücksichtigen, sind sie nicht verpflichtet, diese zu befolgen. Implementierer können sich für Alternativen entscheiden, wenn die angegebenen Hinweise aus technischen Gründen nicht befolgt werden können oder wenn sie diese befolgen, kann dies zu einer schlechten Konfiguration führen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile vds.h

Weitere Informationen

IVdsLun::ApplyHints

IVdsLun::QueryHints

IVdsLunPlex::ApplyHints

IVdsLunPlex::QueryHints

IVdsSubSystem::CreateLun

VDS-Strukturen