logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Kasowanie pamięci flash - język wysokiego poziomu

Liberator1988 07 Lis 2010 11:25 2175 3
REKLAMA
  • #1 8712685
    Liberator1988
    Poziom 2  
    Posty: 2
    Witam.
    Mam do zrobienia pewien program, ale żeby ruszyć z górki potrzebuję porady. Chciałbym się dowiedzieć, czy da się z poziomu języka C# lub C++ fizycznie skasować pamięć typu flash (w przypadku mojego programu chodzi o pamięć CompactFlash o dowolnym rozmiarze) a następnie sflashowanie pewnej porcji danych za pomocą strumienia binarnego. Czy ktoś spotkał się z podobnym zagadnieniem? Wkurzające jest też że przy wyborze ścieżki w systemie Windows (a dla tego właśnie systemu pisany jest program) przy wyborze takiego niesformatowanego dysku ciągle wyskakuje irytujące okno iż należy sformatować dysk. Czy da się to jakoś wyłączyć, chodzi oczywiście o komponent OpenFileDialog w C#. Chyba że jest inna metoda wyboru ścieżki, która nie prowadzi na siłę za rączkę tak jak OpenFileDialog? Chodziłoby mi o proste wskazanie ścieżki zamontowanego dysku CompactFlash (albo nawet automatyczne wykrycie iż taki dysk jest zamontowany, ale sądzę że API systemowe daje dostęp do takich zdarzeń jak zamontowanie urządzenia flash i odczyt parametrów tego urządzenia) możliwość wyzerowania go i zapis binarny pliku, czy to jest możliwe do zrobienia językiem wysokiego poziomu jak C#? Będę wdzięczny za każdą wskazówkę :)
  • REKLAMA
  • #2 8714107
    Sam Sung
    Poziom 33  
    Posty: 2023
    Pomógł: 227
    Ocena: 602
    Może za dużo Ci to nie pomoże, ale język programowania nie ma tu nic do rzeczy; ważne, żeby mieć dostęp do odpowiedniego API. Na takim np. Linuksie, gdzie "wszystko jest plikiem" - wystarczy pisać do odpowiedniego pliku.
  • REKLAMA
  • #3 8716693
    sepako
    Poziom 15  
    Posty: 112
    Pomógł: 6
    Ocena: 28
    Jeśli chodzi tu o dostęp do danych na pamięci widzianej jako kolejna litera dysku z poziomu programu to da sie jak najbardziej. Jak odpalisz sobie jakies narzędzie do przeglądania pamięci np WinHEX to zobaczysz jak zorganizowana jest pamięć i tak samo dostajesz sie do niej z poziomu programu. Nie korzystasz wtedy ze standardowych komponetów dostępu do pliku bo te wykorzystują system plików, którego wogóle nie bierzerzesz pod uwage zapisując dany na pamiec w trybie RAW. Czytac taka pamiec tez mozesz tylko programowo bo system operacyjny bedzie zawsze chcial ja formatowac nie widzac poprawnego systemu plikow.
    http://paradiseprogramming.tripod.com w tym miejscu znajdziesz źródła.
  • #4 8716883
    Liberator1988
    Poziom 2  
    Posty: 2
    Super, właśnie o coś takiego mi chodziło :) Myślałem nad użyciem strumienia binarnego, bo jest do tego odpowiednia klasa w .NET ale tu rzeczywiście trzeba zejść do najniższego możliwego poziomu i sterować pamięcią w sposób programistyczny. Co do wykrywania, to już to rozpracowałem, przy wykorzystaniu klasy System.IO.DriveInfo można bezproblemowo obserwować i wyciągać wszystkie możliwe zdarzenia i informacje dotyczące nośników pamięci. Dzięki za linka, przydatny!
REKLAMA