Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Мониторинг активности HDD на Ассемблере

09.01.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter
В качестве предисловия коротенький анекдот из времен MS-DOS: "- Висим... - Не висим. - Висим! - Не висим, говорю - диском дpыгает." И действительно, активность жесткого диска, выражавшаяся в моргании соответствующего индикатора на корпусе, говорила о работе процесса, просто надо было подождать. Но иногда такие индикаторы отсутствовали или системник стоял в таком месте, что их не было видно. В этих случаях приходилось решать задачу различными программами, которые отображали активность жесткого диска как-нибудь иначе, например, морганием светодиода ScrollLock на клавиатуре.

Вот и мне захотелось сделать что-нибудь подобное. Естественно, на Ассемблере. Для начала некоторые данные, о которых не знает FASM.
  1. struct DISK_PERFORMANCE
  2.     BytesRead     dq ?
  3.     BytesWritten  dq ?
  4.     ReadTime      dq ?
  5.     WriteTime     dq ?
  6.     IdleTime      dq ?
  7.     ReadCount     dd ?
  8.     WriteCount    dd ?
  9.     QueueDepth    dd ?
  10.     SplitCount    dd ?
  11.     QueryTime     dd ?
  12.     StorageDeviceNumber dd ?
  13.     StorageManagerName  rd 8
  14. ends
  15.  
  16. IOCTL_DISK_PERFORMANCE = 0x70020
Дальше немного теории. Текущее состояние жесткого диска можно узнать при помощи функции DeviceIoControl с параметром IOCTL_DISK_PERFORMANCE. При удачном выполнении операции будет возвращена заполненная структура DISK_PERFORMANCE. В документации написано, что в полях ReadTime и WriteTime передаются счетчики времени, необходимые для выполнения операций чтения или записи. Сохранив текущее значение этих счетчиков и периодически сравнивая текущие значения с сохраненными данными, можно смело утверждать о выполнении операции жестким диском. И, соответственно, каким-то образом оповещать об этом пользователя.

Читать статью целиком »
Просмотров: 715 | Комментариев: 0

Получение кода HTML-страницы и отдельных тегов

21.12.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter

Получение кода HTML-страницы и отдельных тегов

Ранее мы уже познакомились с такой интересной штукой, как встроенный браузер на Ассемблере. Но его применение именно в таком виде весьма ограниченно. А вот работа с исходным текстом загруженной страницы, извлечение из нее данных, взаимодействие с элементами - это совершенно другой уровень полезности.

Читать статью целиком »
Просмотров: 844 | Комментариев: 3

Парсинг метаданных WAV-файлов на Ассемблере

23.11.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter

Парсинг метаданных WAV-файлов на Ассемблере

Формат WAV, разработанный совместно IBM и Microsoft, чаще всего используется для хранения несжатого потокового аудио. Несмотря на авторство MS и повсеместное использование WAV-файлов в Windows, системными средствами извлечь из них метаданные невозможно. Ну и ничего страшного, внутренний формат файлов достаточно простой, так что распарсим его самостоятельно.

Читать статью целиком »
Просмотров: 756 | Комментариев: 1

Парсинг метаданных APE-файлов на Ассемблере

18.11.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter

Парсинг метаданных APE-файлов на Ассемблере

APE - формат музыкальных файлов, обработанных при помощи популярного кодека Monkey's Audio. Он позволяет кодировать цифровой звук без потерь при неплохом уровне компрессии данных. Сегодня мы научимся извлекать из этих медиафайлов данные об исполнителе, названии трека и т.п.

Читать статью целиком »
Просмотров: 629 | Комментариев: 3

Получение метаданных WMA-файлов на Ассемблере

16.11.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter

Получение метаданных WMA-файлов на Ассемблере

В этой статье разберем способы, как можно получить информацию из метаданных Windows Media Files, к которым относятся такие форматы, как WMV, ASF и WMA. По структуре они все очень похожи, поэтому работать будем с чем-то одним, например, с Windows Media Audio. И хоть разбирать вручную внутренности файлов гораздо интереснее, это тот случай, когда лучше поручить всю грязную работу самой системе.

Читать статью целиком »
Просмотров: 498 | Комментариев: 0

01 ... 12 13 14 15 16 17 18 ... 75
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.09 сек. / MySQL: 3 (0.0173 сек.) / Память: 4.5 Mb
Наверх