Freigeben über


IVdsOpenVDisk::Attach-Methode (vds.h)

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

Fügt einen virtuellen Datenträger an.

Syntax

HRESULT Attach(
  [in]  LPWSTR                   pStringSecurityDescriptor,
  [in]  ATTACH_VIRTUAL_DISK_FLAG Flags,
  [in]  ULONG                    ProviderSpecificFlags,
  [in]  ULONG                    TimeoutInMs,
  [out] IVdsAsync                **ppAsync
);

Parameter

[in] pStringSecurityDescriptor

Eine Zeichenfolge, die den Sicherheitsdeskriptor für den virtuellen Datenträger enthält. Wenn nicht angegeben, wird der verwendete Sicherheitsdeskriptor verwendet: "D:P(A;; GA;;; WD)" unter Windows 7 und "D:P(A;; GA;;; WD)(A;; GA;;; AC)" auf Windows 8.1 und höher.

[in] Flags

Eine Bitmaske mit ATTACH_VIRTUAL_DISK_FLAG Enumerationswerten, die angeben, wie der virtuelle Datenträger angefügt werden soll. Die folgenden Werte sind möglich.

Wert Bedeutung
ATTACH_VIRTUAL_DISK_FLAG_NONE
0x00000000
Es wurden keine Flags angegeben.
ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY
0x00000001
Fügen Sie den virtuellen Datenträger schreibgeschützt an.
ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER
0x00000002
Binden Sie alle Volumes auf dem angefügten virtuellen Datenträger ein, ohne ihnen Laufwerkbuchstaben zuzuweisen.
ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME
0x00000004
Der VDS-Dienst legt dieses Flag automatisch so fest, dass die VHD angefügt bleibt, bis die IVdsOpenVDisk::D etach-Methode aufgerufen wird, um sie zu trennen.
ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST
0x00000008
Reserviert. Darf nicht verwendet werden.

[in] ProviderSpecificFlags

Eine Bitmaske von Flags, die für den Typ des angefügten virtuellen Datenträgers spezifisch sind. Diese Flags sind anbieterspezifisch. Für den Anbieter virtueller Microsoft-Datenträger muss dieser Parameter 0 (null) sein.

[in] TimeoutInMs

Dieser Parameter ist für die zukünftige Verwendung reserviert.

[out] ppAsync

Ein Zeiger auf eine IVdsAsync-Schnittstelle , die nach erfolgreichem Abschluss die IVdsAsync-Schnittstelle empfängt, um diesen Vorgang zu überwachen und zu steuern. Aufrufer müssen die empfangene Schnittstelle freigeben, wenn sie damit fertig sind. Wenn die IVdsAsync::Wait-Methode für die Schnittstelle aufgerufen wird und ein erfolgreicher HRESULT-Wert zurückgegeben wird, müssen die in der VDS_ASYNC_OUTPUT-Struktur zurückgegebenen Schnittstellen durch Aufrufen der IUnknown::Release-Methode für jeden Schnittstellenzeiger freigegeben werden. Wenn Wait jedoch einen HRESULT-Fehlerwert zurückgibt oder der pHrResult-Parameter von Wait einen HRESULT-Fehlerwert empfängt, sind die Schnittstellenzeiger in der VDS_ASYNC_OUTPUT-StrukturNULL und müssen nicht freigegeben werden. Sie können HRESULT-Werte für Erfolg oder Fehler testen, indem Sie die in Winerror.h definierten Makros SUCCEEDED und FAILED verwenden.

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 makros HRESULT_FROM_WIN32 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 BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.

Bemerkungen

Wenn ein virtueller Datenträger angefügt ist, kann der Aufrufer eine oder alle der folgenden Benachrichtigungen erhalten:

  • Wenn der Anrufer für VDS-Benachrichtigungen registriert ist, erhält der Anrufer eine Datenträgerankunftsbenachrichtigung. Weitere Informationen finden Sie unter VDS-Benachrichtigungen.
  • Wenn der Aufrufer für PnP-Benachrichtigungen registriert ist, erhält der Anrufer eine PnP-Datenträgerankunftsbenachrichtigung. Weitere Informationen finden Sie unter RegisterDeviceNotification.
Anwendungen müssen die prozessweite Sicherheit durch Aufrufen der CoInitializeSecurity-Funktion initialisieren. Der dwImpLevel-Parameter sollte auf RPC_C_IMP_LEVEL_IMPERSONATE festgelegt werden.

Windows Server 2008, Windows Vista und Windows Server 2003: Diese Aktionen sind erst unter Windows 7 und Windows Server 2008 R2 erforderlich.

Anforderungen

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

Weitere Informationen

IVdsOpenVDisk