DEVICE_DSM_ACTION Beschreibungen
Auf dieser Seite werden die DEVICE_DSM_ACTION Konstanten beschrieben, die zum Ausführen einer DsM-Aktion (Data Set Management, Data Set Management) für das Dataset eines Geräts verwendet werden können. Diese Konstanten werden in ntddstor.h definiert. Aktionen, die als nicht zerstörungsfähig identifiziert werden, ändern keine Daten. Informationen zur Verarbeitung einer DSM-Aktion finden Sie unter Übersicht über die Datasetverwaltung .
DEVICE_DSM_ACTION-Konstante | BESCHREIBUNG |
---|---|
DeviceDsmAction_None | Nur zu Strukturinitialisierungszwecken. |
DeviceDsmAction_Trim | Der Treiber führt einen Trimmvorgang aus. |
DeviceDsmAction_Notification | Zerstörungsfreien. Der Treiber führt einen Benachrichtigungsvorgang aus. Für diese Aktion wird der Parameterblock, der unmittelbar auf die DEVICE_DSM_INPUT-Struktur folgt, als DEVICE_DSM_NOTIFICATION_PARAMETERS-Struktur formatiert. Unterstützt in Windows 7 und höheren Versionen. |
DeviceDsmAction_OffloadRead | Zerstörungsfreien. Der Treiber führt einen Auslagerungslesevorgang aus. Für diese Aktion wird der Parameterblock, der unmittelbar auf die DEVICE_DSM_INPUT-Struktur folgt, als DEVICE_DSM_OFFLOAD_READ_PARAMETERS-Struktur formatiert. Die Ausgabe besteht aus einer DEVICE_DSM_OUTPUT-Struktur , gefolgt von einer STORAGE_OFFLOAD_READ_OUTPUT-Struktur . Wird in Windows 8 und höheren Versionen unterstützt. |
DeviceDsmAction_OffloadWrite | Der Treiber führt einen Schreibvorgang aus. Für diese Aktion wird der Parameterblock, der unmittelbar auf die DEVICE_DSM_INPUT-Struktur folgt, als DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS-Struktur formatiert. Die Ausgabe besteht aus einer DEVICE_DSM_OUTPUT-Struktur , gefolgt von einer STORAGE_OFFLOAD_WRITE_OUTPUT-Struktur . Wird in Windows 8 und höheren Versionen unterstützt. |
DeviceDsmAction_Allocation | Zerstörungsfreien. Der Treiber führt einen logischen Blockbereitstellungsvorgang aus. Der logische Blockbereich wird in einer einzelnen DEVICE_DSM_RANGE-Struktur angegeben. Wird in Windows 8 und höheren Versionen unterstützt. |
DeviceDsmAction_Repair | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_Scrub | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_DrtQuery | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_DrtClear | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_DrtDisable | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_TieringQuery | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_Map | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_RegenerateParity | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_NvCache_Change_Priority | Zerstörungsfreien. Der Treiber ändert die Zwischenspeicherungspriorität der angegebenen Bereiche logischer Blöcke. Die neue Zielpriorität wird in einer DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS-Struktur festgelegt, die sich im Parameterblock direkt nach der DEVICE_DSM_INPUT-Struktur befindet. Die logischen Blockbereiche, für die die Priorität geändert werden soll, werden in einer oder mehreren DEVICE_DSM_RANGE-Strukturen angegeben. Unterstützt in Windows 8.1 und höheren Versionen. |
DeviceDsmAction_NvCache_Evict | Zerstörungsfreien. Der Treiber entfernt Daten aus dem Zwischenspeichermedium. Um alle Daten zu entfernen, legen Sie das DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE-Flag im Flags-Element von DEVICE_DSM_INPUT fest, und schließen Sie keine DEVICE_DSM_RANGE Strukturen ein. Bestimmte logische Blockbereiche, die entfernt werden sollen, werden in einer oder mehreren DEVICE_DSM_RANGE-Strukturen angegeben. Die DeviceDsmAction_NvCache_Evict-Aktion wird synchron ausgeführt. Keine anderen Aktionen werden gewartet, bis die Räumtaktion erfolgreich war oder fehlgeschlagen ist. Um die Auswirkungen auf Anwendungen zu begrenzen, die das Gerät verwenden, sollte jede DeviceDsmAction_NvCache_Evict ausgegebenen Aktion relativ kleine Datenbereiche umfassen. Sie sollten 10 MB nicht überschreiten und im Idealfall kleiner als 2 MB sein. Dadurch wird die Wahrscheinlichkeit minimiert, dass Anwendungen auf Benutzerebene spürbare Verzögerungen beim Zugriff auf Daten auf dem Gerät haben. Unterstützt in Windows 8.1 und höheren Versionen. |
DeviceDsmAction_TopologyIdQuery | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_GetPhysicalAddresses | Zerstörungsfreien. Der Treiber gibt die physischen Adressbereiche zurück, die einem oder mehreren logischen Blockbereichen entsprechen. Diese Aktion wird nur auf Datenträgern mit persistentem Arbeitsspeicher unterstützt. Die logischen Blockbereiche werden als Eine Reihe von DEVICE_DSM_RANGE Strukturen angegeben, die unmittelbar nach der DEVICE_DSM_INPUT-Struktur folgen. Die Ausgabe besteht aus einer DEVICE_DSM_OUTPUT-Struktur , gefolgt von einer Auffüllung und dann einer DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT Struktur mit den im Ausgabeblock angeforderten physischen Adressbereichen. Jeder physische Adressbereich wird in einer DEVICE_STORAGE_ADDRESS_RANGE-Struktur zurückgegeben. Wenn der Ausgabepuffer nicht groß genug ist, um alle Daten aufzunehmen, gibt der DSM STATUS_BUFFER_OVERFLOW zurück, und das Feld TotalNumberOfRanges der DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT-Struktur enthält die Anzahl von DEVICE_STORAGE_ADDRESS_RANGE Elementen, die zum Erfüllen der Anforderung erforderlich sind. Alle physischen Adressbereiche, die einen Speicherfehler enthalten, haben DEVICE_DSM_PHYSICAL_ADDRESS_HAS_MEMORY_ERROR als Adresse. Anwendungen können die zurückgegebenen physischen Adressbereiche den eingabelogischen Blockbereichen zuordnen, indem sie die Länge jedes zurückgegebenen physischen Adressbereichs nachverfolgen. Beachten Sie, dass ein einzelner logischer Blockbereich vielen physischen Adressbereichen entsprechen kann. Wenn DEVICE_DSM_FLAG_PHYSICAL_ADDRESSES_OMIT_TOTAL_RANGES im Feld Flags der DEVICE_DSM_INPUT-Struktur festgelegt ist, berechnet der Treiber TotalNumberOfRanges nicht. Dies ist eine Leistungsoptimierung für Anrufer, die die Gesamtzahl der Bereiche nicht kennen müssen. |
DeviceDsmAction_ScopeRegen | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_ReportZones | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_OpenZone | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_FinishZone | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_CloseZone | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_ResetWritePointer | Nur zur internen Verwendung. |
DeviceDsmAction_GetRangeErrorInfo | Zerstörungsfreien. Der Treiber gibt Informationen darüber zurück, ob ein oder mehrere logische Blockbereiche Medienfehler enthalten. Dies wird nur auf Datenträgern mit persistentem Arbeitsspeicher unterstützt. Die logischen Blockbereiche werden als Eine Reihe von DEVICE_DSM_RANGE Strukturen angegeben, die unmittelbar nach der DEVICE_DSM_INPUT-Struktur folgen. Die Ausgabe besteht aus einer DEVICE_DSM_OUTPUT-Struktur , gefolgt von einer Auffüllung und einer DEVICE_DSM_RANGE_ERROR_OUTPUT)-Struktur, die ein Array von DEVICE_STORAGE_RANGE_ATTRIBUTES enthält. Wenn der Ausgabepuffer nicht groß genug ist, um alle Daten aufzunehmen, gibt der DSM STATUS_BUFFER_OVERFLOW zurück, und das Feld TotalNumberOfRanges der DEVICE_DSM_RANGE_ERROR_OUTPUT-Struktur enthält die Anzahl DEVICE_STORAGE_RANGE_ATTRIBUTES Elemente, die zum Erfüllen der Anforderung erforderlich sind. Jede DEVICE_STORAGE_RANGE_ATTRIBUTES-Struktur enthält ein IsRangeBad-Feld . Der Treiber legt dieses Feld auf 1 fest, wenn der logische Blockbereich einen Medienfehler enthält. Wenn in einem der angeforderten Bereiche keine Medienfehler auftreten, legt der Treiber DEVICE_STORAGE_NO_ERRORS im Feld Flags von DEVICE_DSM_RANGE_ERROR_OUTPUT fest. Die Elemente des DEVICE_STORAGE_RANGE_ATTRIBUTES Arrays sind so sortiert, dass ihre Reihenfolge der Reihenfolge der Eingabebereiche entspricht. Wenn beispielsweise der erste Eingabebereich in 3 Ausgabebereiche unterteilt wurde, sind dies die ersten 3 Bereiche im Array. Der Aufrufer kann lernen, welche Ausgabebereiche einem Eingabebereich entsprechen, indem er die Länge der Ausgabebereiche nachverfolgt. |
DeviceDsmAction_WriteZeroes | Nur zur internen Verwendung. |
DeviceDsmAction_LostQuery | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_GetFreeSpace | Zerstörungsfreien. Nur zur internen Verwendung. |
DeviceDsmAction_ConversionQuery | Zerstörungsfreien. Nur für interne Verwendung. |