IVdsLun::SetMask-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 die Entlarmungsliste an, d. h. die Liste der Computer, die Zugriff auf die LUN erhalten sollen.
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 semikolontrennende, NULL-beendete, für Menschen lesbare Zeichenfolge.
Wenn der Wert "" ist, soll 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.
Für Fibre Channel-Netzwerke und sas-Netzwerke (Serial Attached SCSI) ist jeder Eintrag ein 64-Bit World Wide Name (WWN) jedes Ports, an den die LUN entmasket ist, und formatiert als hexadezimale Zeichenfolge (16 Zeichen lang), wobei das wichtigste Byte zuerst 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 enttarnt wird. Eine LUN, die einem bestimmten Initiator enttarnt 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 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 |
---|---|
|
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. |
|
Das LUN-Objekt ist nicht mehr vorhanden. |
|
Die LUN ist fehlerhaft und kann den angeforderten Vorgang nicht ausführen. |
|
Ein weiterer Vorgang wird ausgeführt. Dieser Vorgang kann erst fortgesetzt werden, wenn der vorherige Vorgang oder die vorherigen Vorgänge abgeschlossen sind. |
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 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 maskiert werden sollen, wie folgt:
- Rufen Sie für jeden Datenträger die IVdsDisk::QueryExtents-Methode auf, um die Datenträgerausdehnungen aufzulisten. Diese Methode gibt eine Liste von VDS_DISK_EXTENT Strukturen zurück. Das volumeId-Element dieser Struktur enthält die Volume-GUID.
- Zählen Sie die vom Softwareanbieter verwalteten Volumes auf, indem Sie die IVdsSwProvider::QueryPacks-Methode aufrufen, um die Pakete aufzulisten, und rufen Sie IVdsPack::QueryVolumes auf, um die Volumes in jedem Pack aufzulisten. Rufen Sie IVdsVolume::GetProperties auf, um die VDS_VOLUME_PROP-Struktur für jedes Volume abzurufen. Das ID-Element dieser Struktur enthält die Volume-GUID. Das pwszName-Element enthält den Volumenamen, der an CreateFile übergeben werden soll, um ein Volumehandle abzurufen.
- Verwenden Sie die Volume-GUIDs, die durch aufrufen von IVdsDisk::QueryExtents abgerufen wurden, um zu bestimmen, welche der Volumenamen Sie aus der Liste der aufgezählten Volumes benötigen.
- Sperren Sie jedes Volume mithilfe des FSCTL_LOCK_VOLUME-Steuerelementcodes . Wenn die LUN als intaktes Volume auf einen anderen Computer verschoben wird und eine andere Anwendung eine Volumesperre enthält, 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 aufgehoben wird, weil es gelöscht wird, ist es nicht erforderlich, den vorgang FSCTL_LOCK_VOLUME erneut auszuführen.
Hinweis Dieser Schritt ist optional. Der Zweck dieses Schritts besteht darin, anderen Anwendungen, die möglicherweise Sperren enthalten, zu erlauben, sie freizugeben. 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, können Sie sie mithilfe des IOCTL_VOLUME_OFFLINE-Steuerungscodes offline schalten.
- 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 Benutzermoduspfade, 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 ausgeführt wird. Die VDS-Anwendung auf dem Zielcomputer initiiert den erneuten Busscan, indem sie IVdsService::Reenumerate aufruft. Die Einleitung des Busrescans 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 | vdshwprv.h |
Bibliothek | Uuid.lib |