Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na tej stronie opisano stałe DEVICE_DSM_ACTION, które mogą służyć do wykonywania akcji zarządzania zestawem danych (DSM) na zestawie danych urządzenia. Te stałe są definiowane w ntddstor.h. Akcje zidentyfikowane jako niezniszczalne nie spowodują zmiany żadnych danych. Aby uzyskać informacje na temat przetwarzania akcji DSM, zobacz Omówienie zarządzania zestawem danych.
| stała DEVICE_DSM_ACTION | Opis |
|---|---|
| DeviceDsmAction_None | Tylko do celów inicjowania struktury. |
| DeviceDsmAction_Trim | Sterownik wykona operację przycinania. |
| DeviceDsmAction_Notification | Bezpieczna. Sterownik wykona operację powiadamiania. W przypadku tej akcji blok parametru bezpośrednio po strukturze DEVICE_DSM_INPUT jest sformatowany jako struktura DEVICE_DSM_NOTIFICATION_PARAMETERS. Obsługiwane w systemie Windows 7 i nowszych wersjach. |
| DeviceDsmAction_OffloadRead | Bezpieczna. Sterownik wykonuje operację odciążania odczytu. W przypadku tej akcji blok parametrów bezpośrednio po strukturze DEVICE_DSM_INPUT jest sformatowany jako struktura DEVICE_DSM_OFFLOAD_READ_PARAMETERS. Dane wyjściowe składają się ze struktury DEVICE_DSM_OUTPUT, po której następuje struktura STORAGE_OFFLOAD_READ_OUTPUT. Obsługiwane w systemie Windows 8 i nowszych wersjach. |
| DeviceDsmAction_OffloadWrite | Sterownik wykona operację odciążania zapisu. W przypadku tej akcji blok parametrów bezpośrednio po strukturze DEVICE_DSM_INPUT jest sformatowany jako struktura DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS. Dane wyjściowe składają się ze struktury DEVICE_DSM_OUTPUT, po której następuje struktura STORAGE_OFFLOAD_WRITE_OUTPUT. Obsługiwane w systemie Windows 8 i nowszych wersjach. |
| DeviceDsmAction_Allocation | Bezpieczna. Sterownik wykona operację aprowizacji bloków logicznych. Zakres bloków logicznych jest określony w jednej strukturze DEVICE_DSM_RANGE. Obsługiwane w systemie Windows 8 i nowszych wersjach. |
| DeviceDsmAction_Repair | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_Scrub | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_DrtQuery | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_DrtClear | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_DrtDisable | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_TieringQuery | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_Map | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_RegenerateParity | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_NvCache_Change_Priority | Bezpieczna. Sterownik zmieni priorytet buforowania określonych zakresów bloków logicznych. Nowy priorytet docelowy jest ustawiany w strukturze DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS, która znajduje się w bloku parametrów bezpośrednio po strukturze DEVICE_DSM_INPUT. Zakresy bloków logicznych, dla których należy zmienić priorytet, są podane w co najmniej jednej strukturze DEVICE_DSM_RANGE. Obsługiwane w systemie Windows 8.1 i nowszych wersjach. |
| DeviceDsmAction_NvCache_Evict | Bezpieczna. Sterownik eksmituje dane ze nośnika buforowania. Aby wykluczyć wszystkie dane, ustaw flagę DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE w Flagi elementu członkowskiego DEVICE_DSM_INPUT i nie dołączaj żadnych struktur DEVICE_DSM_RANGE. Określone zakresy bloków logicznych do eksmisji są podane w co najmniej jednej strukturze DEVICE_DSM_RANGE. Akcja DeviceDsmAction_NvCache_Evict jest wykonywana synchronicznie. Żadne inne akcje nie są obsługiwane, dopóki akcja eksmitowana nie powiedzie się lub nie powiedzie się. Aby ograniczyć jego wpływ na aplikacje korzystające z urządzenia, każda akcja DeviceDsmAction_NvCache_Evict wydana powinna obejmować stosunkowo małe zakresy danych. Nie powinny przekraczać 10 MB i najlepiej być mniejsze niż 2 MB. Pozwoli to zminimalizować prawdopodobieństwo, że aplikacje na poziomie użytkownika będą doświadczać zauważalnych opóźnień podczas uzyskiwania dostępu do danych na urządzeniu. Obsługiwane w systemie Windows 8.1 i nowszych wersjach. |
| DeviceDsmAction_TopologyIdQuery | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_GetPhysicalAddresses | Bezpieczna. Sterownik zwróci zakresy adresów fizycznych, które odpowiadają co najmniej jednemu zakresowi bloków logicznych. Ta akcja jest obsługiwana tylko na dyskach pamięci trwałej. Zakresy bloków logicznych są określane jako seria struktur DEVICE_DSM_RANGE bezpośrednio po strukturze DEVICE_DSM_INPUT. Dane wyjściowe składają się z struktury DEVICE_DSM_OUTPUT, po której następuje wypełnienie, a następnie struktura DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT z fizycznymi zakresami adresów żądanymi w bloku wyjściowym. Każdy zakres adresów fizycznych jest zwracany w strukturze DEVICE_STORAGE_ADDRESS_RANGE. Jeśli bufor wyjściowy nie jest wystarczająco duży, aby przechowywać wszystkie dane, maszyna DSM zwraca STATUS_BUFFER_OVERFLOW, a TotalNumberOfRanges pole struktury DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT zawiera liczbę elementów DEVICE_STORAGE_ADDRESS_RANGE wymaganych do spełnienia żądania. Wszystkie zakresy adresów fizycznych, które zawierają błąd pamięci, będą miały DEVICE_DSM_PHYSICAL_ADDRESS_HAS_MEMORY_ERROR jako adres. Aplikacje mogą mapować zwracane zakresy adresów fizycznych na wejściowe zakresy bloków logicznych, śledząc długość każdego zwracanego zakresu adresów fizycznych. Należy pamiętać, że pojedynczy zakres bloków logicznych może odpowiadać wielu zakresom adresów fizycznych. Jeśli DEVICE_DSM_FLAG_PHYSICAL_ADDRESSES_OMIT_TOTAL_RANGES jest ustawiona w polu Flags struktury DEVICE_DSM_INPUT, sterownik nie będzie obliczał TotalNumberOfRanges. Jest to optymalizacja wydajności dla osób wywołujących, które nie muszą znać łącznej liczby zakresów. |
| DeviceDsmAction_ScopeRegen | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_ReportZones | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_OpenZone | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_FinishZone | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_CloseZone | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_ResetWritePointer | Tylko do użytku wewnętrznego. |
| DeviceDsmAction_GetRangeErrorInfo | Bezpieczna. Sterownik zwróci informacje o tym, czy jeden lub więcej zakresów bloków logicznych zawiera błędy nośnika. Jest to obsługiwane tylko na dyskach pamięci trwałej. Zakresy bloków logicznych są określane jako seria struktur DEVICE_DSM_RANGE bezpośrednio po strukturze DEVICE_DSM_INPUT. Dane wyjściowe składają się ze struktury DEVICE_DSM_OUTPUT, po której następuje wypełnienie i struktura DEVICE_DSM_RANGE_ERROR_OUTPUT), która zawiera tablicę DEVICE_STORAGE_RANGE_ATTRIBUTES. Jeśli bufor wyjściowy nie jest wystarczająco duży, aby pomieścić wszystkie dane, maszyna DSM zwraca STATUS_BUFFER_OVERFLOW, a totalNumberOfRanges pole struktury DEVICE_DSM_RANGE_ERROR_OUTPUT zawiera liczbę elementów DEVICE_STORAGE_RANGE_ATTRIBUTES wymaganych do spełnienia żądania. Każda struktura DEVICE_STORAGE_RANGE_ATTRIBUTES zawiera pole IsRangeBad. Sterownik ustawia to pole na 1, gdy zakres bloków logicznych zawiera błąd nośnika. Jeśli w żadnym z żądanych zakresów nie ma żadnych błędów multimedialnych, sterownik ustawia DEVICE_STORAGE_NO_ERRORS w polu Flagi DEVICE_DSM_RANGE_ERROR_OUTPUT. Elementy tablicy DEVICE_STORAGE_RANGE_ATTRIBUTES są sortowane tak, aby ich kolejność odpowiada kolejności zakresów wejściowych. Jeśli na przykład pierwszy zakres danych wejściowych został podzielony na 3 zakresy danych wyjściowych, będą to pierwsze 3 zakresy w tablicy. Obiekt wywołujący może dowiedzieć się, które zakresy danych wyjściowych odpowiadają zakresowi danych wejściowych, śledząc długość zakresów danych wyjściowych. |
| DeviceDsmAction_WriteZeroes | Tylko do użytku wewnętrznego. |
| DeviceDsmAction_LostQuery | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_GetFreeSpace | Bezpieczna. Tylko do użytku wewnętrznego. |
| DeviceDsmAction_ConversionQuery | Bezpieczna. Tylko do użytku wewnętrznego. |