Condividi tramite


Funzione AttachVirtualDisk (virtdisk.h)

Collega un disco rigido virtuale (VHD) o un file di immagine CD o DVD (ISO) individuando un provider VHD appropriato per eseguire l'allegato.

Sintassi

DWORD AttachVirtualDisk(
  [in]           HANDLE                          VirtualDiskHandle,
  [in, optional] PSECURITY_DESCRIPTOR            SecurityDescriptor,
  [in]           ATTACH_VIRTUAL_DISK_FLAG        Flags,
  [in]           ULONG                           ProviderSpecificFlags,
  [in, optional] PATTACH_VIRTUAL_DISK_PARAMETERS Parameters,
  [in, optional] LPOVERLAPPED                    Overlapped
);

Parametri

[in] VirtualDiskHandle

Handle per un disco virtuale aperto. Per informazioni su come aprire un disco virtuale, vedere la funzione OpenVirtualDisk .

[in, optional] SecurityDescriptor

Puntatore facoltativo a un SECURITY_DESCRIPTOR da applicare al disco virtuale collegato. Se questo parametro è NULL, viene usato il descrittore di sicurezza del file di immagine del disco virtuale.

Assicurarsi che il descrittore di sicurezza che AttachVirtualDisk si applica al disco virtuale collegato concede l'autorizzazione degli attributi di scrittura per l'utente o che il descrittore di sicurezza del file di immagine del disco virtuale concede l'autorizzazione per gli attributi di scrittura per l'utente se si specifica NULL per questo parametro. Se il descrittore di sicurezza non concede autorizzazioni per gli attributi di scrittura per un utente, Shell visualizza l'errore seguente quando l'utente accede al disco virtuale collegato: il Cestino è danneggiato. Vuoi svuotare il Cestino per questa unità?

[in] Flags

Combinazione valida di valori dell'enumerazione ATTACH_VIRTUAL_DISK_FLAG .

[in] ProviderSpecificFlags

Flag specifici per il tipo di disco virtuale collegato. Può essere zero se non sono necessari.

[in, optional] Parameters

Puntatore a una struttura di ATTACH_VIRTUAL_DISK_PARAMETERS valida che contiene i dati dei parametri allegati.

[in, optional] Overlapped

Puntatore facoltativo a una struttura OVERLAPPED valida se si desidera un'operazione asincrona .

Valore restituito

Stato della richiesta.

Se la funzione ha esito positivo, il valore restituito è ERROR_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è un codice di errore. Per altre informazioni, vedere Codici di errore di sistema.

Commenti

La funzione AttachVirtualDisk non è supportata per i dischi rigidi virtuali o gli ISO ospitati nei supporti Secure Digital (SD) collegati a un controller SD in modalità nativa (per cui sffdisk.sys, sffp_sd.sys e sdbus.sys driver verranno caricati) e non riusciranno con l'errore ERROR_FILE_NOT_FOUND. Sono supportati dischi rigidi virtuali e ISO ospitati in supporti SD connessi a un lettore USB.

Se la funzione AttachVirtualDisk non riesce con un valore di codice di errore di ERROR_INVALID_PARAMETER, la causa potrebbe essere dovuta a una delle condizioni seguenti:

  • Il parametro VirtualDiskHandle non è un handle valido creato dalla funzione OpenVirtualDisk .
  • Il parametro Flags è impostato su un valore maggiore di 0x020.
  • Il membro Version del parametro Parameters non è impostato su ATTACH_VIRTUAL_DISK_VERSION_1.
Il volume host che contiene il file di immagine del disco virtuale non può essere compresso o crittografato EFS.

Questa funzione avrà esito negativo se non è possibile trovare un provider, se il file di immagine VHD o ISO non è valido, se l'immagine del disco rigido virtuale è già collegata o se il chiamante non dispone di diritti di accesso SE_MANAGE_VOLUME_PRIVILEGE . Per altre informazioni sulla sicurezza dei file, vedere Sicurezza file e diritti di accesso.

La modalità di accesso prevista del disco virtuale deve essere considerata quando si apre l'handle del disco virtuale. Ad esempio, se il disco virtuale viene collegato per l'accesso in lettura/scrittura, il parametro VirtualDiskHandle deve essere stato aperto usando il flag di accesso VIRTUAL_DISK_ACCESS_ATTACH_RW . Per altre informazioni, vedere VIRTUAL_DISK_ACCESS_MASK e OpenVirtualDisk.

I file di immagine CD e DVD (ISO) non sono supportati prima di Windows 8 e Windows Server 2012.

Requisiti

Requisito Valore
Client minimo supportato Windows 7
Server minimo supportato Windows Server 2008 R2
Piattaforma di destinazione Windows
Intestazione virtdisk.h
Libreria VirtDisk.lib
DLL VirtDisk.dll

Vedi anche

Informazioni sul disco rigido virtuale

Informazioni di riferimento sul disco rigido virtuale