IVdsLun::SetMask-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.]
Gibt die Demassierungsliste an. Dies ist die Liste der Computer, denen Zugriff auf die LUN gewährt werden soll.
Syntax
HRESULT SetMask(
[in] LPWSTR pwszUnmaskingList
);
Parameter
[in] pwszUnmaskingList
Eine Liste, die die Computer angibt, die Zugriff auf die LUN erhalten sollen. Die Liste ist eine durch Semikolons getrennte, NULL-endende, für Menschen lesbare Zeichenfolge.
Wenn der Wert "" ist, muss allen Computern, die über einen HBA-Port verfügen, der an das Speichersubsystem angefügt ist, Zugriff auf die LUN gewährt werden.
Wenn der Wert "" ist, wird der Zugriff für alle Computer widerrufen, denen zuvor Zugriff auf die LUN gewährt wurde.
Wenn "*" oder "" angegeben ist, kann kein anderer Wert angegeben werden.
Bei Fibre Channel-Netzwerken und serial angefügten SCSI-Netzwerken (SAS) ist jeder Eintrag ein 64-Bit World Wide Name (WWN) jedes Ports, an den die LUN entmasket ist, formatiert als hexadezimale Zeichenfolge (16 Zeichen lang), wobei zuerst das wichtigste Byte vorhanden ist. Beispielsweise wird eine WWN-Adresse von 01:23:45:67:89:AB:CD:EF als "0123456789ABCDEF" dargestellt. Weitere Informationen finden Sie in den T10-Spezifikationen für Fibre Channel und SAS.
Bei iSCSI-Netzwerken ist jeder Eintrag ein iSCSI-qualifizierter Name (IQN) jedes Initiators, für den die LUN entmasket ist. Eine LUN, die einem bestimmten Initiator entlarvt wurde, gilt als mit diesem Initiator verknüpft.
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/-wert | BESCHREIBUNG |
---|---|
|
Dieser Rückgabewert signalisiert ein Software- oder Kommunikationsproblem innerhalb eines Anbieters, der Informationen über das Array zwischenspeichert. Verwenden Sie die IVdsHwProvider::Reenumerate-Methode gefolgt von der IVdsHwProvider::Refresh-Methode , um den Cache wiederherzustellen. |
|
Das LUN-Objekt ist nicht mehr vorhanden. |
|
Die LUN weist einen Fehlerstatus auf und kann den angeforderten Vorgang nicht ausführen. |
|
Ein weiterer Vorgang wird ausgeführt; Dieser Vorgang kann erst fortgesetzt werden, wenn der vorherige Vorgang abgeschlossen ist. |
Hinweise
Vor dem Aufrufen der SetMask-Methode zum Maskieren einer LUN sollte der Aufrufer die entsprechenden Datenträger wie folgt deinstallieren. Rufen Sie zunächst die VDS-Objekt-ID des Datenträgers ab, der der zu maskierten LUN entspricht, indem Sie IVdsServiceUninstallDisk::GetDiskIdFromLunInfo aufrufen. Rufen Sie dann IVdsServiceUninstallDisk::UninstallDisks mit der VDS-Objekt-ID des Datenträgers auf.
Windows Server 2003 und Windows Server 2003 mit SP1: Führen Sie die folgenden Schritte aus, um die entsprechenden Datenträger zu deinstallieren. Beachten Sie, dass diese Schritte mit Windows Server 2003 R2 veraltet sind.
- Suchen Sie die Volumes auf den Datenträgern, die wie folgt maskiert werden sollen:
- Rufen Sie für jeden Datenträger die IVdsDisk::QueryExtents-Methode auf, um die Datenträgerblöcke aufzulisten. Diese Methode gibt eine Liste von VDS_DISK_EXTENT Strukturen zurück. Das volumeId-Element dieser Struktur enthält die Volume-GUID.
- Enumerieren Sie die vom Softwareanbieter verwalteten Volumes, indem Sie die IVdsSwProvider::QueryPacks-Methode aufrufen, um die Pakete aufzulisten, und rufen Sie IVdsPack::QueryVolumes auf, um die Volumes in jedem Paket aufzulisten. Rufen Sie IVdsVolume::GetProperties auf, um die VDS_VOLUME_PROP-Struktur für jedes Volume abzurufen. Der Id-Member dieser Struktur enthält die Volume-GUID. Das pwszName-Element enthält den Volumenamen, der an CreateFile übergeben werden soll, um ein Volumehandle zu erhalten.
- Verwenden Sie die Volume-GUIDs, die durch Aufrufen von IVdsDisk::QueryExtents abgerufen wurden, um zu bestimmen, welche volumenamen Sie aus der Liste der aufgezählten Volumes benötigen.
- Sperren Sie jedes Volume mithilfe des FSCTL_LOCK_VOLUME-Steuerungscodes. Wenn die LUN als intaktes Volume auf einen anderen Computer verschoben wird und eine andere Anwendung über eine Volumesperre verfügt, sollten Sie den FSCTL_LOCK_VOLUME Vorgang nach Möglichkeit wiederholen, bevor Sie mit dem nächsten Schritt fortfahren. Wenn das Volume jedoch nur gesperrt und die Bereitstellung aufgehoben wird, weil es gelöscht wird, ist es nicht erforderlich, den FSCTL_LOCK_VOLUME Vorgang erneut zu versuchen.
Hinweis Dieser Schritt ist optional. Der Zweck dieses Schritts besteht darin, anderen Anwendungen, die möglicherweise Sperren enthalten, das Freigeben zu ermöglichen. Auch wenn der Sperrvorgang fehlschlägt, sollten Sie mit dem nächsten Schritt fortfahren.
- Heben Sie die Bereitstellung jedes Volumes mithilfe des FSCTL_DISMOUNT_VOLUME-Steuerelementcodes auf.
- Wenn sich die Volumes auf Basisdatenträgern befinden, schalten Sie sie mithilfe des IOCTL_VOLUME_OFFLINE Steuercodes offline.
- Deinstallieren Sie jedes Volume mithilfe der SetupDiCallClassInstaller-Funktion , und übergeben Sie DIF_REMOVE für den InstallFunction-Parameter .
- Deinstallieren Sie jeden Datenträger mithilfe der SetupDiCallClassInstaller-Funktion , und übergeben Sie DIF_REMOVE für den InstallFunction-Parameter .
- Entfernen Sie Pfade im Benutzermodus, z. B. eingebundene Ordner und Laufwerkbuchstabenzuweisungen, aus der Registrierung, indem Sie die IVdsService::CleanupObsoleteMountPoints-Methode aufrufen.
Nachdem eine LUN auf einem Zielcomputer enttarnt oder von einem Zielcomputer maskiert wurde, ändert sich die Sichtbarkeit der LUN auf diesem Computer möglicherweise erst, wenn ein erneuter Busscan durchgeführt wird. Die VDS-Anwendung auf dem Zielcomputer initiiert den erneuten Busscan, indem IVdsService::Reenumerate aufgerufen wird. Die Einleitung der erneuten Überprüfung des Busses liegt in der Verantwortung der VDS-Anwendung, nicht des Hardwareanbieters.
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 |