Freigeben über


IVdsDrive::QueryExtents-Methode (vdshwprv.h)

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

Gibt ein Array der Erweiterungen auf einem Laufwerk zurück, einschließlich zugeordneter und nicht zugeordneter Erweiterungen.

Syntax

HRESULT QueryExtents(
  [out] VDS_DRIVE_EXTENT **ppExtentArray,
  [out] LONG             *plNumberOfExtents
);

Parameter

[out] ppExtentArray

Ein Zeiger auf das Array von VDS_DRIVE_EXTENT Strukturen, die vom Aufrufer übergeben werden. Aufrufer müssen dieses Array mithilfe der Funktion CoTaskMemFree freigeben.

[out] plNumberOfExtents

Ein Zeiger auf die Anzahl der in der VDS_DRIVE_EXTENT-Struktur zurückgegebenen Laufwerkausdehnungen.

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 Erweiterungsinformationen wurden erfolgreich zurückgegeben. Für ein Laufwerk ohne Erweiterungen ist das Array leer, der Wert von plNumberOfExtents auf 0 und der Wert von ppExtentArray auf NULL festgelegt.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
Dieser Rückgabewert signalisiert ein Software- oder Kommunikationsproblem innerhalb eines Anbieters, der Informationen zum Array zwischenspeichert. Verwenden Sie die IVdsHwProvider::Reenumerate-Methode gefolgt von der IVdsHwProvider::Refresh-Methode , um den Cache wiederherzustellen.
VDS_E_OBJECT_DELETED
0x8004240BL
Das Laufwerkobjekt ist nicht mehr vorhanden.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
Das Laufwerk ist fehlerhaft und kann den angeforderten Vorgang nicht ausführen.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
Ein weiterer Vorgang wird ausgeführt. Dieser Vorgang kann erst fortgesetzt werden, wenn der vorherige Vorgang oder die vorherigen Vorgänge abgeschlossen sind.
VDS_E_NOT_SUPPORTED
0x80042400L
Diese Methode wird vom Subsystem nicht unterstützt.

Hinweise

Ein Laufwerk kann Erweiterungen zu einer beliebigen Anzahl von LUNs beitragen, und diese LUNs können für eine beliebige Anzahl unterschiedlicher Computer im Netzwerk enttarnt werden. Verwenden Sie die IVdsLunPlex::QueryExtents-Methode , um alle Ausdehnungen eines LUN-Plexs anzuzeigen.

Das LunId-Element jeder VDS_DRIVE_EXTENT-Struktur gibt die GUID für die LUN an, zu der die einzelnen zugeordneten Ausdehnungen beitragen. Folglich können Sie das Ergebnis dieser Methode verwenden, um die Anzahl der LUNs zu bestimmen, zu denen das Laufwerk beiträgt, indem Sie die Anzahl der in ppExtentArray zurückgegebenen unterschiedlichen LunId-Werte zählen.

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 vdshwprv.h
Bibliothek Uuid.lib

Weitere Informationen

IVdsDrive

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLunPlex::QueryExtents

VDS_DRIVE_EXTENT