IVdsVolume::SetFlags-Methode (vds.h)

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

Legt die Volumeflags fest.

Syntax

HRESULT SetFlags(
  [in] ULONG ulFlags,
  [in] BOOL  bRevertOnClose
);

Parameter

[in] ulFlags

Die von VDS_VOLUME_FLAG aufgelisteten Flags. Aufrufer können die folgenden Flags festlegen:

  • VDS_VF_LBN_REMAP_ENABLED
  • VDS_VF_HIDDEN
  • VDS_VF_READONLY
  • VDS_VF_NO_DEFAULT_DRIVE_LETTER
  • VDS_VF_INSTALLABLE
  • VDS_VF_SHADOW_COPY

[in] bRevertOnClose

Wenn TRUE, werden die Flags vorübergehend festgelegt. VDS setzt jedes Flag auf den vorherigen Zustand zurück, wenn der Aufrufer den letzten Verweis auf das Volumeobjekt freigibt, IVdsVolume::ClearFlags aufruft oder die Bereitstellung des Volumes auf hebt, außer wenn das Flag auf dem gesamten Datenträger festgelegt ist (ausführliche Informationen finden Sie in der Tabelle im Abschnitt Hinweise). Wenn das Flag auf dem gesamten Datenträger festgelegt ist, muss die IVdsVolume::ClearFlags-Methode aufgerufen werden, um die Flags zurückzusetzen.

Rückgabewert

Diese Methode kann HRESULT-Standardwerte wie E_INVALIDARG oder E_OUTOFMEMORY und VDS-spezifische Rückgabewerte zurückgeben. Es kann auch konvertierte Systemfehlercodes mithilfe des HRESULT_FROM_WIN32-Makros zurückgeben. Fehler können vom VDS selbst oder vom zugrunde liegenden VDS-Anbieter stammen, der verwendet wird. Folgende Rückgabewerte sind möglich.

Rückgabecode/-wert BESCHREIBUNG
S_OK
Die Flags sind festgelegt.
VDS_E_LBN_REMAP_ENABLED_FLAG
0x80042456L
Der Anbieter unterstützt das VDS_VF_LBN REMAP_ENABLED-Volumeflag nicht.
VDS_E_NO_DRIVELETTER_FLAG
0x80042457L
Der Anbieter unterstützt das VDS_VF_NO DRIVELETTER-Volumeflag nicht.
VDS_E_REVERT_ON_CLOSE
0x80042458L
bRevertOnClose sollte nur dann auf true festgelegt werden, wenn entweder das VDS_VF_HIDDEN - oder VDS_VF_READONLY Volumeflag festgelegt ist.
VDS_E_REVERT_ON_CLOSE_SET
0x80042459L
Einige Volumeflags sind bereits auf true festgelegt. Sie müssen diese Flags zuerst löschen, dann diese Methode aufrufen und den bRevertOnClose-Parameter erneut auf true festlegen. Der VDS_E_INVALID_OPERATION Rückgabewerts kann diese Bedingung auch angeben.

Hinweise

Der VDS_VF_READONLY-, VDS_VF_HIDDEN- und VDS_VF_NO_DEFAULT_DRIVE_LETTER-Flags sind je nach Datenträgertyp (einfach oder dynamisch) und Partitionsstil (MBR oder GPT) unterschiedlich. Der Bereich ist entweder datenträgerbasiert oder volumebasiert, wie in den folgenden Bedingungen beschrieben:

  • Wenn der Datenträger basic und MBR ist, wirkt sich das Festlegen eines dieser Flags für ein Volume auf das aktuelle Volume und alle zukünftigen Volumes mit dem angegebenen Attribut aus, das auf dem Datenträger erstellt wurde.
  • Wenn der Datenträger basic und GPT, dynamisch und MBR oder dynamisch und GPT ist, gilt das Festlegen eines der Flags auf einem Volume nur für dieses bestimmte Volume.
In der folgenden Tabelle wird der Bereich der einzelnen Volumeflags auf MBR-Basisdatenträgern, GPT-Basisdatenträgern und dynamischen MBR- oder GPT-Datenträgern angegeben.
Flag MBR-Basisdatenträger GPT-Basisdatenträger Dynamische MBR- oder GPT-Datenträger
VDS_VF_LBN_REMAP_ENABLED Kann nicht festgelegt werden. Kann nicht festgelegt werden. Legen Sie auf Volume fest, wenn vom Volume-Manager eines Drittanbieters unterstützt wird.
VDS_VF_HIDDEN Legen Sie auf dem gesamten Datenträger fest. Legen Sie auf Volumes fest (nur Datenpartitionen). Legen Sie auf Volumes fest.
VDS_VF_READONLY Legen Sie auf dem gesamten Datenträger fest. Legen Sie auf Volumes fest (nur Datenpartitionen). Legen Sie auf Volumes fest.
VDS_VF_NO_DEFAULT_DRIVE_LETTER Legen Sie auf dem gesamten Datenträger fest. Legen Sie auf Partitionen fest. Siehe VDS_VOLUME_FLAG.
VDS_VF_SHADOW_COPY Legen Sie auf dem gesamten Datenträger fest. Legen Sie auf Volumes fest (nur Datenpartitionen). Legen Sie auf Volumes fest.
VDS_VF_INSTALLABLE Kann nicht festgelegt werden. Kann nicht festgelegt werden. Legen Sie auf Volumes fest.
 

Wenn bRevertOnClosetrue ist und der Datenträger ein MBR-Basisdatenträger ist und das Volume dann gelöscht wird, werden die Flags weiterhin auf dem gesamten Datenträger festgelegt, und die Flags gelten für alle neuen Volumes, die auf dem Datenträger erstellt werden. IVdsAdvancedDisk::Clean muss dann verwendet werden, um die Flags zu löschen.

Um ein Startvolume auf einem dynamischen Datenträger zu erstellen, müssen Sie das VDS_VF_INSTALLABLE-Flag für das Volume festlegen und das Volume dann formatieren, indem Sie die IVdsVolumeMF::Format-Methode aufrufen.

Diese Methode schlägt fehl, wenn das Volume mindestens eines der folgenden Flags enthält:

  • VDS_VF_SYSTEM
  • VDS_VF_BOOT
  • VDS_VF_PAGEFILE
  • VDS_VF_HIBERNATION
  • VDS_VF_CRASHDUMP

Wenn Sie entweder VDS_VF_HIDDEN oder VDS_VF_READONLY angeben, wird eine Demontage und erneute Bereitstellung des Volumes erzwungen, es sei denn, bRevertOnClose ist TRUE.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile vds.h
Bibliothek Uuid.lib

Weitere Informationen

IVdsAdvancedDisk::Clean

IVdsVolume

IVdsVolume::ClearFlags

VDS_VOLUME_FLAG