Condividi tramite


Metodo IVdsVolume::SetFlags (vds.h)

[A partire da Windows 8 e Windows Server 2012, l'interfaccia COM del servizio disco virtuale viene sostituita dall'API gestione archiviazione di Windows.

Imposta i flag del volume.

Sintassi

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

Parametri

[in] ulFlags

Flag enumerati da VDS_VOLUME_FLAG. I chiamanti possono impostare i flag seguenti:

  • 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

Se TRUE, i flag vengono temporaneamente impostati. VDS reimposta ogni flag allo stato precedente quando il chiamante rilascia l'ultimo riferimento all'oggetto volume, chiama IVdsVolume::ClearFlags o smonta il volume, tranne quando il flag è impostato sull'intero disco (vedere la tabella nella sezione Osservazioni per informazioni dettagliate). Quando il flag è impostato sull'intero disco, il metodo IVdsVolume::ClearFlags deve essere chiamato per reimpostare i flag.

Valore restituito

Questo metodo può restituire valori HRESULT standard, ad esempio E_INVALIDARG o E_OUTOFMEMORY e valori restituiti specifici di VDS. Può anche restituire codici di errore di sistema convertiti usando la macro HRESULT_FROM_WIN32 . Gli errori possono derivare da VDS stesso o dal provider VDS sottostante usato. I valori restituiti possibili includono quanto segue.

Codice/valore restituito Descrizione
S_OK
I flag sono impostati.
VDS_E_LBN_REMAP_ENABLED_FLAG
0x80042456L
Il provider non supporta il flag del volume VDS_VF_LBN REMAP_ENABLED .
VDS_E_NO_DRIVELETTER_FLAG
0x80042457L
Il provider non supporta il flag del volume DRIVELETTER VDS_VF_NO .
VDS_E_REVERT_ON_CLOSE
0x80042458L
bRevertOnClose deve essere impostato solo su true se il flag del volume VDS_VF_HIDDEN o VDS_VF_READONLY è impostato.
VDS_E_REVERT_ON_CLOSE_SET
0x80042459L
Alcuni flag di volume sono già impostati su true. È necessario cancellare prima questi flag, quindi chiamare questo metodo e impostare nuovamente il parametro bRevertOnClose su true. Il valore restituito VDS_E_INVALID_OPERATION può anche indicare questa condizione.

Commenti

L'ambito VDS_VF_READONLY, VDS_VF_HIDDEN e VDS_VF_NO_DEFAULT_DRIVE_LETTER contrassegni in modo diverso a seconda del tipo di disco (basic o dinamico) e dello stile di partizione (MBR o GPT). L'ambito è basato su disco o basato su volume, come descritto dalle condizioni seguenti:

  • Se il disco è di base e MBR, impostare uno di questi flag su un volume influisce sul volume corrente e tutti i volumi futuri con l'attributo specificato creato sul disco.
  • Se il disco è di base e GPT, dinamico e MBR o dinamico e GPT, l'impostazione di uno dei flag in un volume si applica solo a tale volume specifico.
La tabella seguente identifica l'ambito di ogni flag di volume su dischi di base MBR, dischi di base GPT e dischi dinamici MBR o GPT.
Contrassegno Dischi di base MBR Dischi di base GPT Dischi dinamici MBR o GPT
VDS_VF_LBN_REMAP_ENABLED Non può essere impostato. Non può essere impostato. Impostare sul volume, se supportato da gestione volumi di terze parti.
VDS_VF_HIDDEN Impostare sull'intero disco. Impostare su volumi (solo partizioni di dati). Impostare sui volumi.
VDS_VF_READONLY Impostare sull'intero disco. Impostare su volumi (solo partizioni di dati). Impostare sui volumi.
VDS_VF_NO_DEFAULT_DRIVE_LETTER Impostare sull'intero disco. Impostare sulle partizioni. Vedere VDS_VOLUME_FLAG.
VDS_VF_SHADOW_COPY Impostare sull'intero disco. Impostare su volumi (solo partizioni di dati). Impostare sui volumi.
VDS_VF_INSTALLABLE Non può essere impostato. Non può essere impostato. Impostare sui volumi.
 

Se bRevertOnClose è TRUE e il disco è un disco di base MBR e il volume viene eliminato, i flag vengono ancora impostati sull'intero disco e i flag verranno applicati a tutti i nuovi volumi creati sul disco. IVdsAdvancedDisk::Clean deve quindi essere usato per cancellare i flag.

Per creare un volume di avvio in un disco dinamico, è necessario impostare il flag di VDS_VF_INSTALLABLE per il volume e quindi formattare il volume chiamando il metodo IVdsVolumeMF::Format .

Questo metodo ha esito negativo se il volume contiene uno o più flag seguenti:

  • VDS_VF_SYSTEM
  • VDS_VF_BOOT
  • VDS_VF_PAGEFILE
  • VDS_VF_HIBERNATION
  • VDS_VF_CRASHDUMP

Se si specifica VDS_VF_HIDDEN o VDS_VF_READONLY , il volume verrà rimontato e rimontato, a meno che bRevertOnClose sia TRUE.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione vds.h
Libreria Uuid.lib

Vedi anche

IVdsAdvancedDisk::Clean

IVdsVolume

IVdsVolume::ClearFlags

VDS_VOLUME_FLAG