DEVICE_DSM_ACTION Beschreibungen
Auf dieser Seite werden die DEVICE_DSM_ACTION Konstanten beschrieben, die zum Ausführen einer DsM-Aktion (Data Set Management) für die Datenmenge eines Geräts verwendet werden können. Diese Konstanten werden in ntddstor.hdefiniert. Als nicht destruktive Aktionen identifizierte Aktionen ändern keine Daten. Informationen zur Verarbeitung einer DSM-Aktion finden Sie unter Data Set Management Overview.
DEVICE_DSM_ACTION Konstante | BESCHREIBUNG |
---|---|
DeviceDsmAction_None | Nur für Strukturinitialisierungszwecke. |
DeviceDsmAction_Trim | Der Treiber führt einen Kürzungsvorgang aus. |
DeviceDsmAction_Notification | Zerstörungsfrei. Der Treiber führt einen Benachrichtigungsvorgang aus. Für diese Aktion wird der Parameterblock unmittelbar nach der DEVICE_DSM_INPUT Struktur als DEVICE_DSM_NOTIFICATION_PARAMETERS Struktur formatiert. Unterstützt in Windows 7 und höheren Versionen. |
DeviceDsmAction_OffloadRead | Zerstörungsfrei. Der Treiber führt einen Offload-Lesevorgang 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. Unterstützt in Windows 8 und höheren Versionen. |
DeviceDsmAction_OffloadWrite | Der Treiber führt einen Offload-Schreibvorgang aus. Für diese Aktion wird der Parameterblock unmittelbar nach der DEVICE_DSM_INPUT Struktur 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. Unterstützt in Windows 8 und höheren Versionen. |
DeviceDsmAction_Allocation | Zerstörungsfrei. Der Treiber führt einen logischen Blockbereitstellungsvorgang aus. Der logische Blockbereich wird in einer einzelnen DEVICE_DSM_RANGE Struktur angegeben. Unterstützt in Windows 8 und höheren Versionen. |
DeviceDsmAction_Repair | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_Scrub | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_DrtQuery | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_DrtClear | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_DrtDisable | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_TieringQuery | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_Map | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_RegenerateParity | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_NvCache_Change_Priority | Zerstörungsfrei. 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 befindet, unmittelbar nach der DEVICE_DSM_INPUT Struktur. 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örungsfrei. Der Treiber entfernt Daten aus dem Cachemedium. Um alle Daten zu entfernen, legen Sie das DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE Flag im Flags Mitglied von DEVICE_DSM_INPUT fest und enthalten keine DEVICE_DSM_RANGE Strukturen. Bestimmte logische Blockbereiche, die zu entfernen sind, werden in einer oder mehreren DEVICE_DSM_RANGE Strukturen angegeben. Die DeviceDsmAction_NvCache_Evict-Aktion wird synchron ausgeführt. Es werden keine anderen Aktionen gewartet, bis die Evict-Aktion erfolgreich war oder fehlgeschlagen ist. Um die Auswirkungen auf Anwendungen, die das Gerät verwenden, einzuschränken, sollte jede DeviceDsmAction_NvCache_Evict ausgegebene Aktion relativ kleine Datenbereiche enthalten. Sie sollten 10 MB nicht überschreiten und idealerweise kleiner als 2 MB sein. Dadurch wird die Wahrscheinlichkeit minimiert, dass Anwendungen auf Benutzerebene beim Zugriff auf Daten auf dem Gerät spürbare Verzögerungen erleben. Unterstützt in Windows 8.1 und höheren Versionen. |
DeviceDsmAction_TopologyIdQuery | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_GetPhysicalAddresses | Zerstörungsfrei. Der Treiber gibt die physischen Adressbereiche zurück, die einem oder mehreren logischen Blockbereichen entsprechen. Diese Aktion wird nur auf beständigen Speicherdatenträgern unterstützt. Die logischen Blockbereiche werden als Eine Reihe von DEVICE_DSM_RANGE Strukturen angegeben, die unmittelbar auf die DEVICE_DSM_INPUT Struktur folgen. Die Ausgabe besteht aus einer DEVICE_DSM_OUTPUT Struktur, gefolgt von Abstand 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 zu enthalten, gibt der DSM STATUS_BUFFER_OVERFLOW zurück, und das feld TotalNumberOfRanges Feld der DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT-Struktur enthält die Anzahl der DEVICE_STORAGE_ADDRESS_RANGE Elemente, die zur Erfüllung der Anforderung erforderlich sind. Alle physischen Adressbereiche, die einen Speicherfehler enthalten, weisen DEVICE_DSM_PHYSICAL_ADDRESS_HAS_MEMORY_ERROR als Adresse auf. 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, wird der Treiber nicht TotalNumberOfRanges-berechnet. Dies ist eine Leistungsoptimierung für Anrufer, die die Gesamtzahl der Bereiche nicht kennen müssen. |
DeviceDsmAction_ScopeRegen | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_ReportZones | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_OpenZone | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_FinishZone | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_CloseZone | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_ResetWritePointer | Nur für die interne Verwendung. |
DeviceDsmAction_GetRangeErrorInfo | Zerstörungsfrei. Der Treiber gibt Informationen darüber zurück, ob mindestens ein logischer Blockbereich Medienfehler enthält. Dies wird nur auf beständigen Speicherdatenträgern unterstützt. Die logischen Blockbereiche werden als Eine Reihe von DEVICE_DSM_RANGE Strukturen angegeben, die unmittelbar auf die DEVICE_DSM_INPUT Struktur folgen. Die Ausgabe besteht aus einer DEVICE_DSM_OUTPUT Struktur, gefolgt von Abstand und einer DEVICE_DSM_RANGE_ERROR_OUTPUT)-Struktur, die ein Array von DEVICE_STORAGE_RANGE_ATTRIBUTESenthält. Wenn der Ausgabepuffer nicht groß genug ist, um alle Daten zu enthalten, gibt der DSM STATUS_BUFFER_OVERFLOW zurück, und das feld TotalNumberOfRanges Feld der DEVICE_DSM_RANGE_ERROR_OUTPUT-Struktur enthält die Anzahl der DEVICE_STORAGE_RANGE_ATTRIBUTES Elemente, die zur Erfüllung 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 im Feld "Flags" von DEVICE_DSM_RANGE_ERROR_OUTPUT DEVICE_STORAGE_NO_ERRORS fest. Die Elemente des DEVICE_STORAGE_RANGE_ATTRIBUTES Arrays werden so sortiert, dass ihre Reihenfolge der Eingabebereiche entspricht. Wenn beispielsweise der erste Eingabebereich in drei Ausgabebereiche unterteilt wurde, sind dies die ersten drei Bereiche im Array. Der Aufrufer kann lernen, welche Ausgabebereiche einem Eingabebereich entsprechen, indem er die Länge der Ausgabebereiche nachverfolgt. |
DeviceDsmAction_WriteZeroes | Nur für die interne Verwendung. |
DeviceDsmAction_LostQuery | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_GetFreeSpace | Zerstörungsfrei. Nur für die interne Verwendung. |
DeviceDsmAction_ConversionQuery | Zerstörungsfrei. Nur für die interne Verwendung. |