Системные программы для работы с дисками это драйверы

При работе данных устройств под Windows, независимо от интерфейса подключения (SCSI или IDE), драйверы, безусловно, используются. Однако это вовсе не драйвер винчестера или CD-ROM (CD-RW, DVD и прочих дисководов), а драйвер контроллера.

Винчестеры способны работать без таких драйверов, однако их работа будет обеспечиваться BIOS-ом контроллера или материнской платы, и будут недоступны режимы 32-битного доступа к диску и DMA (прямой доступ к памяти). В случае с CD-ROM (и прочими устройствами с интерфейсом ATAPI) поддержки BIOS недостаточно, и при отсутствии драйвера контроллера (или его неправильно установке) данное устройство не будет обнаружено в системе. Далее рассмотрим случай с использованием самостоятельных PCI контроллеров и контроллеров, встроенных в чипсет материнской платы. К последним не относятся контроллеры, хоть и встроенные в материнскую плату, но являющиеся самостоятельными устройствами.
Контроллеры, входящие в чипсет. В составе операционной системы обычно имеется драйвер, обеспечивающий базовую функциональность IDE контроллеров, входящих в состав чипсетов материнской платы.

Лучшие программы для установки драйверов на Windows

Однако такой драйвер не всегда учитывает особенности работы контроллеров, в результате чего он может работать медленно, а режим DMA доступен не всегда (в случае с Win98SE и более старыми системами никогда). Поэтому рекомендуется установить драйвер от производителя чипсета. Установка драйвера обычно заключается в запуске программы Setup, находящейся в комплекте драйвера.

После его установки в свойствах накопителей появляется возможность включить режим DMA — галочку DMA if available (использовать DMA, если он имеется в наличии). При этом надо учитывать, что не все устройства могут работать в таком режиме.

К примеру, очень многие CD и DVD дисководы до сих пор не поддерживают его, а CD приводы в DMA режиме иногда перестают воспроизводить VideoCD или копировать аудиоданные. Достаточно странным свойство может проявиться у драйвера для чипсетов Intel: после его установки режим DMA по умолчанию включается, а «галка» DMA отсутствует. Проверить текущий режим работы дисков можно при помощи программы «Nero InfoTool» (закладка Configuration). Драйверы для чипсетов можно найти здесь. Важное замечание для владельцев системы WinNT и Win95: установка сторонних драйверов IDE контроллера в некоторых случаях может привести к отказу системы!
Самостоятельные контроллеры. Для таких контроллеров в составе операционной системы драйверов чаще всего нет, поэтому полная функциональность достигается только после установки драйвера от производителя контроллера. Установка производится стандартными средствами Windows — либо в момент обнаружения нового устройства, либо сменой (обновлением) драйвера для устройства, уже имеющегося в системе, но присутствующего в списке устройств с желтым восклицательным знаком либо знаком вопроса, либо (в основном это относится к WinNT) путем добавления нового устройства в разделе «SCSI контроллеры».

Установка ВСЕХ Драйверов на Windows 7/8/10 в Один Клик | UnderMind

Источник: www.nix.ru

Вопрос 8. Общие принципы разработки драйверов в ОС Windows . Общие принципы функционирования драйверов в ОС Windows .

Драйвер — системная программа, предназначенная для управления каким-либо физическим или виртуальным устройством компьютера.

Фактически, пользовательские программы либо системные утилиты не могут напрямую обращаться к аппаратуре, используя порты ввода-вывода, DMA либо подобные низкоуровневые механизмы напрямую. Все программы пользователя и часть ОС работают в 3-м кольце защиты компьютера (наименее привилегированном). При этом любая команда обращения к порту из данной программы может быть замаскирована и повлечет за собой аппаратное исключение ( Exception ). Напрямую к аппаратуре может обратится программа, работающая в самом приоритетном, 0-м кольце защиты.

В настоящее время практически все устройства используют технологию автоматического распределения ресурсов — Plug and Play ( PnP ). Когда новое устройство будет добавлено в систему, ему будут выделены свободные ресурсы — незадействованные линии запросов на прерывание ( IRQ ), свободные адреса портов ввода-вывода. Поэтому драйвер изначально «не знает», какие именно адреса портов и IRQ ему будут выделены — эти данные будут различными для разных компьютеров. При этом задача распределения ресурсов ложится на ОС.

Система ввода-вывода в Windows

Окружение Win 2000 включает компоненты, которые работают в режиме пользователя ( User mode ) и в режиме ядра ( Kernel mode ). В режиме пользователя работают подсистема защиты, подсистема Win 32-архитектуры (обеспечивает стандартные API — вызовы Windows ), подсистема POSIX (обеспечение кроссплатформенности ). В режиме ядра работают все основные компоненты системы: диспетчер ввода-вывода ( I / O manager ), диспетчер конфигурации ( Configuration Manager ), подсистема PnP , диспетчер управления энергопотреблением ( Power Manager ), диспетчер памяти ( Memory Manager ) и прочие жизненно необходимые службы. Драйвера в Win 2000 включены в подсистему ввода-вывода.

Читайте также:
Что будет за использование нелицензионных программ

При этом драйвера тесно взаимодействуют практически со всеми компонентами ядра. Драйвера взаимодействуют с аппаратурой при помощи HAL (уровень абстракции аппаратуры). HAL — программный компонент ядра Win 2000, который обеспечивает интерфейс ядра (в том числе и некоторых драйверов) с аппаратурой. Т.к.

Win 2000 — платформенно независимая система, то HAL избавляет ядро от непосредственного общения с кэшем , прерываниями, шинами ввода-вывода и большинством прочих устройств, оставляя эту работу драйверам, специально написанным для данной системы. Таким образом, ядро системы представляется набором отдельных изолированных модулей с четко определенными внешними интерфейсами.

Все драйвера NT имеют множество стандартных методов драйвера, определенных системой, и, возможно, несколько специфических методов, определенных разработчиком. Драйвера Windows 2000 используют архитектуру WDM ( Windows Driver Model ). В Windows 2000 драйвера бывают следующих типов:

  • Kernel mode drivers ( драйверы режима ядра ). Основной тип драйвера. Такие драйвера используются для решения общих задач: управление памятью, шинами, прерываниями, файловыми системами, устройствами хранения данных и т.п.
  • Graphics drivers ( драйверы видеокарт ). Как правило, создаются одновременно с самой видеокартой. Очень сложны в написании, так как должны учитывать множество противоречивых требований и поддерживать множество стандартов. Скорее всего, вам не потребуется создавать ничего подобного.
  • Multimedia drivers ( мультимедиа-драйверы ). Драйверы для : Аудиоустройств — считывание, воспроизведение и компресс ия ау диоданных. Устройств работы с видео — захват и компрессия видеоданных. Позиционных устройств — джойстики, световые перья, планшеты и пр.
  • Network drivers (сетевые драйвера) — работа с сетью и сетевыми протоколами на всех уровнях.
  • Virtual DOS Drivers — драйверы для виртуальных машин MS — DOS . Постепенно переходят в раздел рудиментарных .

В свою очередь, существует три типа драйверов ядра, каждый тип имеет четко определенные структуру и функциональность.

  • Device drivers (драйвера устройств), такие как драйвер клавиатуры или дисковый драйвер, напрямую общающийся с дисковым контроллером. Эти драйвера называются драйверами низкого уровня, т. к. они находятся в самом низу цепочки драйверов Windows NT .
  • Intermediate drivers (промежуточные драйвера), такие как драйвер виртуального диска. Они используют драйверы устрой ств дл я обращения к аппаратуре.
  • File system drivers ( FSDs ). Драйверы файловых систем , таких как FAT, NTFS, CDFS, для доступа к аппаратуре используют Intermediate drivers и Device drivers.

Драйвера Windows 2000 должны удовлетворять следующим требованиям:

  • Переносимы с одной платформы на другую.
  • Конфигурируемые программно.
  • Всегда прерываемые.
  • Поддерживающие мультипроцессорные платформы.
  • Объектно-ориентированные.
  • Поддерживать пакетный ввод-вывод с использванием I / O request packets ( IRPs , запросы ввода-вывода).
  • Поддерживать асинхронный ввод-вывод.

Система ввода-вывода Windows 2000 имеет следующие особенности:

Менеджер ввода-вывода NT представляет интерфейс для всех kernel — mode драйверов, включая драйвера физических устройств, драйвера логических устройств и драйвера файловых систем.

Операции ввода-вывода послойные. Это значит, что вызов, сделанный пользователем, проходит через несколько драйверов, генерируя несколько пакетов запросов на ввод-вывод и «по пути» обращаясь к необходимым драйверам. К примеру, когда приложение пытается открыть файл, подсистема ввода-вывода Windows делает запрос к драйверу файловой системы; драйвер файловой системы обращается к промежуточному драйверу; и лишь промежуточный драйвер обращается непосредственно к винчестеру. Такая архитектура построения системы существенно повышает ее гибкость и снижает общую стоимость разработки.

Системная служба Windows NT — это фоновый процесс, который может запускаться и работать без участия интерактивного пользователя. В этом смысле системные службы похожи на демоны Unix и резидентные программы MS-DOS. Как правило, системные службы стартуют при загрузке системы и продолжают работать, пока система не будет остановлена, хотя возможны запуск и остановка служб уже в процессе работы.

Основное отличие драйвера от службы заключается в том, что драйвер может работать в 0 кольце и в пользовательском режиме, а служба работает только в пользовательском режиме. Установка службы осуществляется через SCM менеджер, а драйвер через . inf файл, однако драйвер может быть установлен через SCM менеджер, но не все типы драйверов могут установлены через SCM менеджер.

Второй вариант ответа на вопрос

Драйвер устройства является файлом PE-формата, таким же как обычные exe и dll . Только загружается и работает по другим правилам. Драйверы можно рассматривать как DLL режима ядра, предназначенные для выполнения задач не решаемых из пользовательского режима. Принципиальная разница здесь (не считая уровня привилегий) в том, что мы не сможем напрямую обращаться к драйверу, ни к его коду, ни к его данным, а будем пользоваться специальным механизмом предоставляемым диспетчером ввода-вывода ( Input / Output Manager ). Диспетчер ввода-вывода обеспечивает среду для функционирования драйверов, а также предоставляет механизмы для их загрузки, выгрузки и управления ими.

Читайте также:
Программа окна это постановка

Большинство драйверов управляющих физическими устройствами являются многоуровневыми ( layered drivers ). Обработка запроса ввода-вывода разделяется между несколькими драйверами. Каждый выполняет свою часть работы. Например, запрос на чтение файла передается драйверу файловой системы, который, выполнив некоторые операции (например, разбиение запроса на несколько частей ), передает его «ниже» — драйверу диска, а тот, в свою очередь, отправляет запрос драйверу шины. Кроме того между этими драйверами можно добавить любое количество драйверов-фильтров (например, шифрующих данные). Выполнив запрос нижестоящий драйвер ( lower-level driver ) передает его результаты «наверх» — вышестоящему ( higher-level driver ).

Driver Development Kit

Первое, что необходимо для разработки драйвера — это Комплект разработки драйверов устройств ( Windows 2000 Driver Development Kit , 2KDDK ). В этот пакет входит документация, которая содержит информацию о внутренних структурах данных и внутрисистемных функциях используемых драйверами устройств. Помимо документации в DDK входит набор библиотечных файлов (*. lib ), которые необходимы при компоновке.

Отладчики драйвера – отладчики, которые позволяют отлаживать код режима ядра. Самым лучшим выбором будет SoftICE . Или можно воспользоваться Kernel Debugger входящим в состав DDK.

Существует два метода установки драйвера:

  1. При наличии . inf файла, установка драйвера производиться с помощью стандартного менеджера установки оборудования OC Windows . Инсталляция при помощи inf-файла позволяет выполнить все действия по копированию файлов, относящихся к драйверу, и внесению изменений в Системный Рее стр пр актически без участия пользователя.
  2. C помощью функций SCM Менеджера возможно установить драйвер непосредственно из приложения, которое также может выполнить как остановку, так и выгрузку драйвера. Следует, однако, признать, что не все драйверы поддаются работе через сервисы SCM Менеджера. Этот удобный (особенно при экспериментах по изучению системных вызовов режима ядра).

Порядок функционирования драйвера в ОС

Обычно принята двухуровневая схема организации драйверов виртуальных устройств. На самом нижнем уровне (уровень ядра операционной системы) работает собственно драйвер виртуального устройства. Который должен выполнять все операции ввода/вывода, которые может осуществлять устройство, реализовывать интерфейс IOCTL и взаимодействовать с системой. По возможности данная часть ПО должна быть небольшой и занимать минимум процессорного времени.

Рис. 1 Схема взаимодействия пользовательской программы с драйвером

Второй уровень – уровень DLL, предоставляющей API прикладным программам (далее уровень API). Под API понимается набор функций, которые могут вызывать клиентские программы, для доступа к нашему виртуальному устройству. Клиентские приложения, которые желают работать с драйвером, также могут использовать интерфейс IOCTL.

Третий уровень – уровень клиентских приложений он уже не относится к драйверу.

Пример простейшего драйвера:

Вид файла driver.h:

Текст init.cpp:

    #include «Driver.h»// Предварительные объявления функций:VOID UnloadRoutine(IN PDRIVER_OBJECT DriverObject);NTSTATUS Create_File_IRPprocessing(IN PDEVICE_OBJECT fdo, IN PIRP Irp);NTSTATUS Close_Handle_IRPprocessing(IN PDEVICE_OBJECT fdo, IN PIRP Irp);#pragma code_seg(«INIT») // начало секции INIT// DriverEntry — инициализация драйвера и необходимых объектов// Аргументы: указатель на объект драйвера// раздел реестра (driver service key) в UNICODE// Возвращает: STATUS_Xxxextern»C»NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath ){NTSTATUS status = STATUS_SUCCESS;PDEVICE_OBJECT fdo;UNICODE_STRING devName;// Экспорт точек входа в драйверDriverObject->DriverUnload = UnloadRoutine;DriverObject->MajorFunction[IRP_MJ_CREATE]= Create_File_IRPprocessing;DriverObject->MajorFunction[IRP_MJ_CLOSE] = Close_Handle_IRPprocessing;// Действия по созданию символьной ссылкиRtlInitUnicodeString( \Device\EXAMPLE»);// Создаем наш Functional Device Object (FDO) и получаем// указатель на созданный FDO в нашей переменной fdo.status = IoCreateDevice(DriverObject,sizeof(EXAMPLE_DEVICE_EXTENSION),fdo);if(!NT_SUCCESS(status))return status;// Получаем указатель на область, предназначенную под// структуру расширение устройстваPEXAMPLE_DEVICE_EXTENSION dx =(PEXAMPLE_DEVICE_EXTENSION)fdo->DeviceExtension;dx->fdo = fdo; // Сохраняем обратный указательUNICODE_STRING symLinkName; // Сформировать символьное имя:// Для того, чтобы ссылка работала в и Windows 98 и в NT,// необходимо поступать следующим образом :#define SYM_LINK_NAME L»\DosDevices\Example»RtlInitUnicodeString( dx->ustrSymLinkName = symLinkName;// Создаем символьную ссылкуstatus = IoCreateSymbolicLink( devName );if(!NT_SUCCESS(status)){// при неудаче — удалить Device Object и вернуть управлениеIoDeleteDevice( fdo );return status;}// Теперь можно вызывать CreateFile(«\\.\Example». );// в пользовательских приложенияхreturn status;}#pragma code_seg() // end INIT section// CompleteIrp: Устанавливает IoStatus и завершает обработку IRP// Первый аргумент — указатель на объект нашего FDO.
    NTSTATUS CompleteIrp( PIRP Irp, NTSTATUS status, ULONG info){Irp->IoStatus.Status = status;Irp->IoStatus.Information = info;IoCompleteRequest(Irp,IO_NO_INCREMENT);return status;}// Create_File_IRPprocessing: Берет на себя обработку запросов с// кодом IRP_MJ_CREATE.// Аргументы:// Указатель на объект нашего FDO// Указатель на структуру IRP, поступившего от Диспетчера ВВ//NTSTATUS Create_File_IRPprocessing(IN PDEVICE_OBJECT fdo,IN PIRP Irp){PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp);return CompleteIrp(Irp,STATUS_SUCCESS,0); // Успешное завершение}// Close_File_IRPprocessing: Берет на себя обработку запросов с кодом IRP_MJ_CLOSE.// Аргументы:// Указатель на объект нашего FDO// Указатель на структуру IRP, поступившего от Диспетчера// ввода/выводаNTSTATUS Close_Handle_IRPprocessing(IN PDEVICE_OBJECT fdo,IN PIRP Irp){return CompleteIrp(Irp,STATUS_SUCCESS,0);// Успешное завершение}// UnloadRoutine: Выгружает драйвер, освобождая оставшиеся объекты// Вызывается системой, когда необходимо выгрузить драйвер.// Arguments: указатель на объект драйвера#pragma code_seg(«PAGE»)// Допускает размещение в странично организованной памятиVOID UnloadRoutine(IN PDRIVER_OBJECT pDriverObject){PDEVICE_OBJECT pNextDevObj;int i;// Проходим по всем объектам устройств, контролируемым// драйверомpNextDevObj = pDriverObject->DeviceObject;for(i=0; pNextDevObj!=NULL; i++){PEXAMPLE_DEVICE_EXTENSION dx =(PEXAMPLE_DEVICE_EXTENSION)pNextDevObj->DeviceExtension;// Удаляем символьную ссылку и уничтожаем FDO:UNICODE_STRING *pLinkName = ustrSymLinkName);// сохраняем указатель:pNextDevObj = pNextDevObj->NextDevice;IoDeleteSymbolicLink(pLinkName);IoDeleteDevice( dx->fdo);}}#pragma code_seg()
Читайте также:
Какие вкладки с инструментами содержит программа Microsoft word информатика

Источник: dmtsoft.ru

3 способа использовать диски HFS+ в среде Windows

macOS и Windows имеют массу отличий, одно из главных — файловая система. И если на Mac NTFS-диски можно хотя бы читать, то Windows диски, отформатированные в HFS+, не видит вообще. Но если вам очень надо, то есть несколько обходных путей.

Ситуации, когда это может понадобиться, бывают разными. Самая распространённая — это доступ к вашим файлам из Windows, установленной через Boot Camp (по умолчанию доступно только чтение файлов). В таких случаях либо ставят драйвер HFS+, добавляющий поддержку файловой системы Apple в Windows, либо используют специальные утилиты, которые уже умеют работать с HFS+. Мы рассмотрим оба варианта плюс ещё один, бонусный.

Способ 1. Работаем с HFS+ через драйверы

Драйверы хороши тем, что добавляют поддержку HFS+ на системном уровне, а значит, Mac-диски будут отображаться в «Проводнике» и других приложениях. Драйвер загружается при старте Windows, и разница между файловыми системами попросту перестаёт существовать: вы можете работать с дисками любых форматов.

Главное преимущество драйверов — это поддержка как чтения, так и записи файлов. Кроме того, этот способ обеспечивает максимально возможную скорость передачи данных. В качестве минуса можно упомянуть высокую цену: все популярные драйверы, обеспечивающие стабильную работу, довольно дороги.

Paragon HFS+ for Windows

Самый популярный драйвер с полной поддержкой HFS+ на дисках любого типа (GPT и MBR) и набором дополнительных утилит. Отличается высокой производительностью при передаче файлов большого объёма по различным интерфейсам, включая SATA и USB. Совместим с Windows 10.

Лицензия стоит относительно недорого — 790 рублей. При этом есть 10-дневная пробная версия.

MacDrive

Более мощный драйвер с дополнительными возможностями. MacDrive умеет всё то же, что и драйвер от Paragon, но при этом позволяет открывать резервные копии Time Machine и копировать файлы из них на Windows-диски. Также драйвер работает в виртуальных машинах и позволяет монтировать Mac-диски в режиме Target Disk Mode для загрузки на других компьютерах.

MacDrive стоит дороже — целых 50 долларов. Пробная версия тоже есть, но на 5 дней.

Способ 2. Работаем с HFS+ через утилиты

Работа с Mac-дисками через специальные приложения предоставляет более ограниченную поддержку HFS+. Доступ к файловой системе при этом будет возможен только в них, а в «Проводнике» диски даже не будут отображаться. Обычно приложения позволяют только просматривать и копировать файлы, но не записывать.

Утилиты для работы с HFS+ стоят гораздо дешевле, причём встречаются даже бесплатные. Этот способ подойдёт тем, кому нужно только чтение файлов. Кроме того, с помощью не требующих установки утилит можно просматривать файлы с Mac-дисков на компьютерах, где нельзя установить драйвер или стороннее ПО.

HFSExplorer

Простая и, что немаловажно, бесплатная утилита, которая позволит просматривать файлы с дисков HFS+ в среде Windows. HFSExplorer открывает содержимое Mac-дисков в виде дерева каталогов, где можно выбрать нужные файлы. Для просмотра их нужно скопировать на диск Windows. Также есть возможность создания образов дисков HFS+ для последующей работы уже с ними.

Утилита HFSExplorer не так удобна, как драйверы, и умеет только просматривать файлы, зато не стоит ни копейки.

TransMac

Как и HFSExplorer, TransMac не устанавливает драйверы в систему, а открывает доступ к дискам HFS+ внутри своего окна. Более того, приложение вообще не нужно инсталлировать, благодаря чему его можно использовать на рабочем компьютере или в гостях. При этом доступны не только чтение, но и запись данных. Есть даже поддержка изменения и форматирования разделов на дисках HFS+.

Утилита будет полезна всем, кто по каким-либо причинам не хочет (или не может) установить драйверы, но нуждается в полноценной поддержке HFS+.

Стоимость лицензии — 59 долларов, ознакомительный период — 15 дней.

Бонус

Если вы не хотите тратиться и заморачиваться с установкой драйверов или дополнительных утилит, можно поступить по-другому: воспользоваться Live-USB-дистрибутивом Linux. Загрузившись с него, вы получите доступ ко всем вашим дискам, включая HFS+ и NTFS, а затем сможете просмотреть или скопировать любые файлы на них. Так умеет, например, Ubuntu.

Установочный образ обычно имеет и Live USB, поэтому всё, что вам останется сделать, — это скачать образ и записать его на флешку.

Источник: lifehacker.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru