Windows r win 7 ddk provider что это

Обновлено: 07.07.2024

Шестое издание популярной серии "Внутреннее устройство Microsoft Windows".
Первый том переведен на русский язык, если кто не в курсе.

Это, фактически, настольное руководство по операционной системе Windows, с
картинками, выкладками и наглядными экспериментами. Если вы считаете себя
системным программистом, но до сих пор не прочитали эту книгу, то вы
многое потеряли.

Пакет системных утилит от Руссиновича, одного из авторов "Internals" и
очень уважаемого человека.

Одна из лучших (а может, самая лучшая) книг по драйверам.
Единственная известная мне книга по драйверам, в которой детально
разбирается тема обработки I/O и работа PnP-устройств.

Неплохая книга для начинающих, для общего развития вполне подойдет.

Цикл из шести статей, посвященных разработке драйверов.
Хорошее руководство для быстрого старта, рассматриваются некоторые
ключевые вопросы.

Старый, но до сих пор во многом актуальный туториал, для новичков самое то.
Все примеры на ассемблере, но с комментариями и подробным разбором каждого абзаца.

Очень солидная книга, хоть и старая.
Многие главы из этой книги впоследствии перекочевали в MSDN.

В этих документах описано, как следует строить взаимодействие драйвера с
юзермодным приложением, типовые ошибки, best practices и т.д.

Статья рассказывает о типовых и не очень ошибках, которые постоянно
допускаются разработчиками драйверов и которые позволяют эксплуатировать
драйвер "ненадлежащим образом", обходя систему безопасности Windows.

В документе описывается обработка IRP (запросы ввода-вывода) и все,
что каждому разработчику драйверов полагается знать на этот счет.

А здесь рассказывается, как отменять IRP и какие при этом могут быть проблемы.

"Роман" в двух частях об обработке IRP - создание синхронных и
асинхронных IRP, завершение IRP, отмена, постановка в очередь и т.д.

Еще одна "повесть" про отмену IRP и связанные с этим проблемы.

Здесь рассказывается, как работают cancel-safe-очереди (CSQ) и как с
их помощью можно избежать хлопот, связанных с синхронизацией отмены IRP.

Документация об устройстве памяти в Windows, а также о расширениях,
появившихся с выходом Windows Vista и Windows 7.

Статья объясняет, что такое MDL и как им пользоваться (работа с памятью).

Несколько десятков полезных советов, написанных в стиле "don't do this".

Чрезвычайно полезные документы по основам синхронизации в ядре.
Здесь описаны все основные примитивы синхронизации Windows,
мультипроцессорность, уровни запросов прерываний (IRQL), упорядочивание
доступа к памяти, барьеры, volatile, блокировки и тому подобное.
Must read !

Описаны основные рекомендации по созданию качественных драйверных
инсталляций для современных версий Windows, начиная с Vista.

Основы использования трассировки (WPP Tracing) в драйверах.

Сборник документов, описывающих различные новшества, пришедшие
вместе с Windows Vista, Windows 7 и Windows 8.

Внутреннее устройство архитектуры NT - процессы, каналы, оконные станции, объекты
ядра и многое другое. Составлено архитекторами NT, включая известного Д. Катлера.

Статьи рассказывают про APC - известный, но малодокументированный механизм,
который может использоваться (и используется) для самых разных задач.

Отличные ресурсы по недокументированным функциям и структурам NT.

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

Сайт посвящен в основном различным недокументированным особенностям -
структуры и объекты ядра, адресное пространство, специфика x64, и т.п.

"Второй MSDN". Здесь можно найти много интересного (а еще подписаться
на журнал "NT Insider"). Есть форум, где часто обсуждают интересные
технические вопросы и где мелькают известные личности из Microsoft.

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

Форумы, на которых собирается практически вся программерская братия рунета.
Есть поиск и тематические разделы, в которых можно найти все что угодно,
было бы желание.

Делал для себя, чтобы не таскать всякие гигабайтные установщики.

Пакет инструментов, заголовочных файлов и библиотек для разработчика драйверов.
Единственный на сегодняшний день пакет, позволяющий собирать драйверы для
всех современных версий Windows, начиная с XP и до новейших Windows 8.1.

Пакет инструментов, также известный под общим названием WinDBG.
Незаменимое средство для отладки, анализа крэш-дампов, поиска проблем и прочих расследований.

Расширение для WinDBG, позволяющее использовать скрипты на Python прямо в
консоли отладчика. Также имеет набор вспомогательных команд. Полезно для
автоматического разбора больших структур, написания сценариев отладки и т.д.

Расширение для WinDBG, реализующее несколько полезных функций: работа с
ядерными структурами памяти (PTE и address space layout), разбор сетевых
пакетов и подробный stack trace, который, например, умеет показывать
информацию о stack unwinding, non-volatile регистры, а еще переданные в
каждую функцию аргументы, в том числе на x64.

Просмотр драйверов загрузки
Добрый день, В Windows 7 была возможность просмотреть загружающиеся драйверы,притормозить.

Порядок загрузки драйверов и сервисов
Дарова! Есть ли возможность в поше узнать порядок загрузки сервисов и дров, как это реализовано в.

Работа для Java EE разработчика /WEB Разработчика Санкт-Петербург
Должностные обязанности: - Разработка клиент-серверного ПО; - Разработка интранет WEB-приложений;.

Черный экран после загрузки драйверов
На компьютере черный экран после загрузки windows 10. Читал разные форумы , и проделывал разные.

Примеры исходного кода.
Часть из них поставляется вместе с WDK, остальные только online.

Коллекция исходных кодов, собранная из разных выпусков DDK/WDK/IFS.
Состав архива:

Windows DDK 2600.1106 (Windows XP SP1)
Windows IFS DDK 3790 (Windows Server 2003)
Windows Driver Kit 6000 (Windows Vista)
Windows Driver Kit 7600.1 (Windows 7)
Windows Driver Kit 8.0 (Windows 8)
Windows Driver Kit 8.1 (Windows 8.1)

Исходные коды KMDF и UMDF v2.
Microsoft сделала приятный сюрприз разработчикам драйверов, выложив эти
исходники в открытый доступ. Используете ли вы WDF или нет, наверняка
найдете для себя много интересного и полезного, ведь реализации
KMDF/UMDF во многих отношениях считаются образцовыми.

Пачка полезных документов от Intel и AMD, описывающих архитектуру
современных процессорных систем, от общих принципов до реализации.

Две книги по программированию драйверов с использованием новой
драйверной модели WDF. Обе - очень хорошее дополнение к официальной
документации MSDN.

Название говорит само за себя: что нового в очередной версии WDF.

Книга по основам NTFS и драйверам файловой системы.
Старая, но до сих пор во многом актуальная. Рассматриваются ключевые
механизмы соответствующих подсистем - диспетчер кэша, виртуальной памяти,
Fast I/O, фильтрующие драйверы и т.п.


Блоги, в которых можно найти очень много интересного и полезного,
чего нет в официальной документации.

Windows Research Kernel (WRK)
Windows 2000 Source Code
Windows NT 4 Source Code

Исходные коды Windows. WRK распостраняется по специальной лицензии,
остальные два вообще не должны были увидеть свет, но это все-таки
произошло (2004 год). Ссылок по понятным причинам не даю, интересующихся
отсылаю в Гугл, на торренты и т.п.

Много материалов, книг, курсов и других публикаций на тему диагностики ошибок.
Отдельно советую обратить внимание на восьмитомник "Memory Dump
Analysis Anthology", это очень хорошее руководство по разбору крэш-дампов.

Последние версии WinDBG, взято из WDK 10 (build 10075, preview-версия).

Описаны изменения в политике цифрового подписывания драйверов,
появившиеся в Windows 10.

Вместе с официальным релизом Windows 10 вышел и Windows Driver Kit (WDK) 10.
Загрузить можно отсюда:

Номер сборки - 10.0.26639, предыдущая версия была 10.0.10075.

This section describes new features for driver development in Windows 10.

Universal Windows drivers

Starting in Windows 10, you can write a single driver that works on OneCoreUAP-based
editions of Windows, such as Windows 10 for desktop editions (Home, Pro, and Enterprise),
Windows 10 Mobile, and Windows 10 IoT Core. Such a driver is called a Universal Windows driver.
A Universal Windows driver calls a subset of the interfaces that are available to a Windows driver.
For information about how to build, install, deploy, and debug a Universal Windows driver for
Windows 10, see Getting Started with Universal Windows drivers.

When you build a Universal Windows driver using Microsoft Visual Studio 2015, Visual Studio
automatically checks if the APIs that your driver calls are valid for a Universal Windows driver.
You can also use the ApiValidator.exe as a standalone tool to perform this task.
The ApiValidator.exe tool is part of the Windows Driver Kit (WDK) for Windows 10. For info,
see Validating Universal Windows drivers.

Universal Windows drivers also require a special kind of INF file called a universal INF.
A universal INF can use a subset of the directives and sections available to a legacy INF file.
To learn more, see Using a Universal INF File. To see which sections and directives apply,
see INF File Sections and Directives.

When you're ready, use the InfVerif tool to test your driver's INF file. In addition to reporting
INF syntax problems, the tool reports if the INF file will work with a Universal Windows driver.

You can also find information about which APIs you can call from a Universal Windows driver.
This information is located in the Requirements block at the bottom of MSDN reference pages.

For example, you'll see a listing similar to this one that tells you if a given DDI is Universal.
Target Platform set to universal in Requirements block

For more info, see Target platform on MSDN driver reference pages.

New Microsoft-defined Bluetooth HCI extensions have been added.

Buses and Ports

Driver programming interfaces and in-box drivers for Simple Peripheral Bus (SPB) such
as I2C and SPI, and GPIO are part of OneCoreUAP-based editions of Windows.
Those drivers will run on both Windows 10 for desktop editions and Windows 10 Mobile,
as well as other Windows 10 versions.

The camera driver DDIs have converged into a Universal Windows driver model,
including new camera DDIs. Additional features include:

Digital video stabilization
Variable frame rate
Face detection
Video high dynamic range (HDR)
Optical stabilization
Scene analysis: photo HDR, flash no flash, ultra low light
Capture stats: metadata framework/attributes, histograms
Smooth zoom
Hardware optimization hints
Camera profiles

Cellular architecture and implementation for Windows 10 has been updated.

The display driver model from Windows 8.1 and Windows Phone have converged
into a unified model for Windows 10.

A new memory model is implemented that gives each GPU a per-process virtual
address space. Direct addressing of video memory is still supported by WDDMv2 for
graphics hardware that requires it, but that is considered a legacy case. IHVs are
expected to develop new hardware that supports virtual addressing. Significant
changes have been made to the DDI to enable this new memory model.

Debugging Tools for Windows

The following new commands are available in for the Windows debugger:

dx (Display NatVis Expression) - A new debugger command which displays object
information using the NatVis extension model.

.settings - A new command that sets, modifies, displays, loads and saves settings in
the Debugger.Settings namespace.

Driver Verifier

Driver verifier includes new driver validation rules for the following technologies:

New Rules for Audio Drivers
New Rules for AVStream Drivers
Four new Rules for KMDF Drivers
Three new Rules for NDIS Drivers

Human Interface Device (HID)

The new Virtual HID Framework (VHF) eliminates the need for writing a kernel-mode
transport minidriver. The framework comprises a Microsoft-provided static library
(Vhfkm.lib) that exposes programming elements used by your driver. It also includes a
Microsoft-provided in-box driver (Vhf.sys) that enumerates one or more child devices
and proceeds to build a virtual Human Interface Device (HID) tree.

The Global Navigation Satellite System (GNSS) driver DDIs have converged to a GNSS
Universal Windows driver model (UMDF 2.0).

Near Field Communication (NFC)

The NFC DDIs have a new converged driver model to support mobile and desktop solutions.

NFC Class Extension: A new NFC class extension driver is available. The NFC class extension
driver implements all of the Windows-defined DDIs to interact with the NFC controller,
secure elements, and remote RF endpoints.

The new PacketDirect Provider Interface (PDPI) is available as an extension to the existing NDIS
miniport driver model. The PDPI provides an I/O model that allows applications to manage their
own buffers, poll processors, and directly manage sending and receiving packets over a miniport
adapter. The combination of these capabilities allow the application to completely control its own
contexts leading to a much higher packet-per-second (pps) ratio.

Power Management Framework (PoFx)

The power management framework (PoFx) enables a driver to define one or more sets of
individually adjustable performance states for individual components within a device. The driver
can use performance states to throttle a component's workload to provide just enough
performance for its current needs. For more information, see Component-Level Performance
State Management.

The print driver is updated with v4 Print driver improvements and changes to support wireless
printing from mobile devices, as well as the following:

V4 Driver Manifest

Provides information on changes to the v4 print driver manifest to support the PWG Raster
rendering filter, including updated DriverConfig and DriverRender directives, and an updated
example manifest.

WS-Discovery Mobile Printing Support

Describes the WS-Discovery requirements to enable mobile printing from Windows 10 Mobile
devices to Windows 10 Mobile compatible printers.

Supports printer content conversion from XPS to PWG Raster using the XPS Rasterization Service.
PWG Raster supports non-square DPIs.

Print Pipeline Property Bag

Added the PrintDeviceCapabilities property to enable XPS rendering filters to retrieve the new
PrintDeviceCapabilities XML files from the Print filter pipeline property bag.

GetWithArgument Request and Response Schemas

Provides support for mobile printing with a formal definition and example for the GetWithArgument
request and response bidirectional communications schemas.

Adds support for mobile printing with the GetWithArgument bidirectional schema value.

In this release, there is a new class extension module, Wudfsmcclassext.dll, which handles complex
driver operations. Smart card hardware-specific tasks are handled by your client driver. There are
new programming interfaces that your client driver can use to send information about the card to the
class extension so that it can process requests. Those driver programming interfaces are part of
OneCoreUAP-based editions of Windows.

The new storage firmware update, updated storage protocol pass through, and expanded storage
query interfaces are available. The storage firmware update IOCTL interface allows partners to update
their storage device firmware. The updated storage pass through IOCTL interface supports newer
protocols including non-volatile memory express (NVMe). The expanded storage query interface
allows applications to query protocol-dependent information.

System-Supplied Driver Interfaces

The GUID_DEVICE_RESET_INTERFACE_STANDARD interface defines a standard way for function
drivers to attempt to reset and recover a malfunctioning device.

USB Dual Role controllers are now supported in Windows 10. The dual role feature allows a mobile
device, such as a phone, a phablet or a tablet, to designate itself as being a device or a host.
See USB Dual Role Driver Stack Architecture for more information.

Windows compatible hardware development boards

Windows is now supported on more affordable boards such as the Raspberry Pi 2. Become a part of
our early adopter community and load Windows on that board. For more information, see Windows
compatible hardware development boards.

WDI (WLAN Device Driver Interface) is a new WLAN Universal Windows driver model that converges
the WLAN drivers on Windows 10 for desktop editions and Windows 10 Mobile.

WPP Software Tracing

В данной статье описан процесс написания простейшего драйвера, который выводит скан-коды нажатых клавиш.
Также в данной статье описан процесс настройки рабочего места для написания драйверов.
Если Вам интересно, прошу под кат.

Подготовка стенда

Установка необходимого ПО для написания простейшего драйвера
  1. Windows DDK (Driver Development Kit);
  2. VMware Workstation или Virtual Box;
  3. Windows XP;
  4. Visual Studio 2005;
  5. DDKWizard;
  6. KmdManager
  7. DebugView;
Настройка рабочего места
Установка DDK

Установка предельно проста. Единственное на что необходимо обратить внимание — это диалог, в котором Вам предлагается выбрать компоненты, которые будут установлены. Настоятельно рекомендую отметить всю документацию и примеры.

Установка и настройка Microsoft® Visual Studio 2005

Установка Microsoft® Visual Studio 2005 ничем не сложнее установки DDK. Если Вы будете использовать её только для написания драйверов, то когда инсталлятор спросит какие компоненты необходимо установить, выберите только Visual C++.
Далее можно установить Visual Assist X. С помощью этой программы (аддона) можно будет легко настроить подсказки для удобного написания драйверов.
После установки Visual Assist X в Visual Studio 2005 появится новое меню VAssistX. Далее в этом меню: Visual Assist X Options -> Projects -> C/C++ Directories -> Platform: Custom, Show Directories for: Stable include files . Нажимаем Ins или на иконку добавить новую директорию и в появившейся строке, если у вас Windows XP вписываем %WXPBASE%\inc\ddk\wxp .

Установка и настройка DDKWizard
  • Создать системные (рекомендуется) или пользовательские переменные со следующими именами и значением, которое соответствует пути к DDK
    Версия DDK
    Имя переменной
    Путь по умолчанию
    Windows XP DDK
    WXPBASE
    C:\WINDDK\2600
    Windows 2003 Server DDK
    WNETBASE
    C:\WINDDK\3790.1830
    Windows Vista/Windows 2008 Server WDK
    WLHBASE
    Windows 7/Windows 2008 Server R2 WDK
    W7BASE

    Например, если я использую Windows XP DDK, то я должен создать переменную WXPBASE со значением, которое соответствует пути к DDK. Так как я не изменял путь установки, то значение у меня будет C:\WINDDK\2600.
  • Скопируйте скачанный скрипт ddkbuild.cmd, например, в папку с DDK. У меня это C:\WINDDK\.
  • Добавьте в конец системной переменной Path путь к скрипту ddkbuild.cmd.
Установка необходимого ПО для запуска драйверов
  • DebugView (link) — это утилитка, которая позволяет просматривать отладочный вывод как режима пользователя так и режима ядра.
  • KmdManager (link) — утилита динамической загрузки/выгрузки драйверов

Постановка задачи

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

Немного теории
  • драйверы классов;
  • минидрайверы;
  • функциональные драйверы;
  • фильтрующие драйверы.

Необязательно определять все возожные функции в своем драйвере, но он обязательно должен содержать DriverEntry и AddDevice .

IRP — это структура, которая используется драйверами для обмена данными.

  • верхние фильтрующие драйверы;
  • нижние фильтрующие драйверы.
Отличия между верхними и нижними фильтрующими драйверами

Через верхние фильтрующие драйверы проходят все запросы, а это значит, что они могут изменять и/или фильтровать информацию, идущую к функциональному драйверу, ну и далее, возможно, к устройству.
Пример использования верхних фильтрующих драйверов:
Фильтр-хук драйвер, который устанавливает свою хук-функцию для системного драйвера IpFilterDirver, для отслеживания и фильтрации траффика. Такие драйверы используются в брандмауэрах.

Через нижние фильтрующие драйверы проходит меньше запросов потому что большинство запросов выполняет и завершает функциональный драйвер.

Проблемы синхронизации

В драйвере, который мы будем писать, есть несколько «проблемных» секций. Для нашего драйвера вполне достаточно использования ассемблерных вставок:

Префикс lock позволяет безопасно выполнить идущую за ним команду. Она блокирует остальные процессоры, пока выполняется команда.

Экшен

Для начала необходимо включить заголовочные файлы «ntddk.h», «ntddkbd.h»


Также необходимо описать структуру DEVICE_EXTENSION

Объект pLowerDO это объект устройства, который находится ниже нас в стеке. Он нужен нам для того чтобы знать кому дальше отправлять IRP-пакеты.
Еще для работы нашего драйвера нам нужна переменная, в которой будет храниться количество не завершенных запросов.

Начнем с функции, которая является главной точкой входа нашего драйвера.

theDriverObject – объект драйвера, содержит указатели на все необходимые операционной системе функции, которые мы должны будем инициализировать.
ustrRegistryPath – имя раздела в реестре, где хранится информация о данном драйвере.
Для начала необходимо объявить и обнулить переменные:

Далее, как я и писал выше, нужно инициализировать указатели на функции

Функция DispatchRead будет обрабатывать запросы на чтение. Она будет вызываться, когда нажата или отпущена клавиша клавиатуры.
Функция DriverUnload вызывается, когда драйвер уже не нужен и его можно выгрузить из памяти, или когда пользователь сам выгружает драйвер. В данной функции должна производиться «зачистка», т.е. освобождаться ресурсы, которые использовались драйвером, завершаться все незавершенные запросы и т.д.
Функция DispatchThru это функция-заглушка. Все что она делает это передача IRP-пакета следующему драйверу (драйверу который находится под нашим в стеке, т.е. pLowerDO из DEVICE_EXTENSION ).
Далее мы вызываем нашу функцию, для создания и установки нашего устройства в стек устройств:

Эту функцию я опишу чуть ниже.
Возвращаем status , в котором, если функция InstallFilter завершилась удачей, хранится значение STATUS_SUCCESS .
Переходим к функции InstallFilter . Вот её прототип:

Эта функция создает объект устройства, настраивает его и включает в стек устройств поверх \\Device\\KeyboardClass0

pKeyboardDevice – это объект устройсва, которое мы должны создать.
Вызываем IoCreateDevice для создания нового устройства

  • Первый аргумент это объект драйвера, который мы получили как параметр функции InstallFilter. Он передается в IoCreateDevice для того чтобы установить связь между нашим драйвером и новым устройством.
  • Третий параметр это имя устройства
  • Четвертый параметр это тип устройства
  • Пятый параметр это флаги, которые обычно устанавливаются для запоминающих устройств.
  • Шестой параметр описывает можно ли открывать манипуляторы устройства в количестве больше одного. Если FALSE можно открыть только один манипулятор. Иначе можно открыть любое количество манипуляторов.
  • Седьмой параметр это память, в которой будем сохранен созданный объект устройства.

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

Функция IoAttachDevice внедряет наше устройство в стек. В pdx->pLowerDO будет храниться объект следующего (нижнего) устройства.

Далее разберем функцию DispatchRead с прототипом:

Данная функция будет вызываться операционной системой при нажатии или отпускании клавиши клавиатуры
Увеличиваем счетчик незавершенных запросов

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

где ReadCompletionRoutine наша функция.
Передаем IRP следующему драйверу:

Теперь разберем функцию, которая будет вызываться каждый раз при завершении IRP . Прототип:

Структура PKEYBOARD_INPUT_DATA используется для описания нажатой клавиши.

Проверяем, удачно завершен запрос или нет

Чтобы достать структуру KEYBOARD_INPUT_DATA нужно обратиться к системному буферу IRP -пакета.

Узнаем количество клавиш

И выводим каждую клавишу:

И не забываем уменьшать количество не обработанных запросов

Возвращаем статус запроса

Разберем функцию завершения работы. Прототип:

Извлекаем устройство из стека:

Проверяем есть незавершенные запросы или нет. Если мы выгрузим драйвер без этой проверки, при первом нажатии на клавишу после выгрузки будет БСоД.

Как запустить драйвер и просмотреть отладочную информацию

Для запуска драйвера я использовал утилиту KmdManager. Для просмотра отладочной информации использовалась утилита DbgView.

P. S. Статью писал давно, ещё на третьем курсе, сейчас уже почти ничего не помню. Но если есть вопросы, постараюсь ответить.
P. P. S. Прошу обратить внимание на комментарии, в частности на этот

Статьи этого раздела описывают примеры и технологию разработки драйверов для ОС Windows XP. Т.е. в каком-то смысле данный материал следует рассматривать как "археологический".

  • собственно сам компилятор, который из написанного нами кода сделает драйвер
  • файлов справки и примеров написанных драйверов (необольщайтесь, чтобы разобраться с каждым из примеров, уже подготовленному программисту надо потратить 1-2 недели, а лезть туда новичку вообще гиблое дело - желание изучать программирование драйверов пропадет сразу. Это обусловлено тем, что все примеры представляют из себя просто исходный код с коротеньким пояснением что этот драйвер делает.)
  • дополнительных программ, которые могут пригодиться при отладке и тестировании драйверов

Хочу сразу огорчить, сообщив что компилятор DDK не является удобной визуальной средой программирования, как например Visual Studio C++. Общение с ним выливается в работу с командной строкой. И вообще приготовтесь к тому, что программировать драйвера в DDK не самое простое и удобное занятие.

Если Вы еще не передумали бороться с драйверами, то продолжим дальше. Теперь надо этот DDK где-то достать. DDK можно найти в интеренете в свободном виде для скачивания. Однако, размер файла составляет

140 MБ, из-за чего этот путь добычи некоторых читателей может не устроить. В свое время он меня тоже не устроил (у меня тогда еще телефонный модем стоял) и я пошел копаться по рынкам. Найти диск DDK оказалось нет просто, как я думал. Слишком тематика узкая. Вот например, что-нибудь типа "Windows для начинающих" или "Office для чайников" - это пожалуйста, а DDK я пол дня искал - случайно на Савеловском нашел.

Обратите внимание! Нам нужен DDK XP, который предназначен для Windows 2000, XP а не DDK 98, который работает для 98, Me.

Итак, надеюсь, что Вы раздобыли диск DDK XP. Теперь давайте установим этот "чудо" программный продукт от Microsoft на свой компьютер.

Вставляем диск (распаковываем скаченный архив), запускаем установку. Должно появиться окошко, показанное ниже. Долго не раздумывая, нажимаем Далее.

Конечно же соглашаемся с лицензионным соглашением и опять нажимаем Далее.

Здесь выбираем путь установки DDK. По умолчанию комплекс уснанавливается в корневой каталог в папку WINDDK. Менять ничего не будем. Ставим как есть. Нажимаем Далее.

Здесь можно управлять комплектацией установки. Обязательно поставьте галочки во всех пунктах утсановки, поскольку исходная конфигурация не предусматривает установку примеров. Нажимаем Далее.

Услужливый инсталятор сообщает нам данные по установке и просит подтверждения. Не будем его задерживать и нажимаем Далее.

После этого начнется процесс копирования файлов.

Все. Установка прошла успешно. В меню Пуск по указанному пути должны появиться ссылки на консольные приложения, с помощью которых мы будем в дальнейшем компилировать наш драйвер.

В директории C:\WINDDK\2600.1106\help\ теперь можно найти справочные файлы по DDK, а в C:\WINDDK\2600.1106\src\ находятся примеры готовых драйверов. Можете попробовать на досуге покопаться там. Не волнуйтесь, если у Вас "глаза на лоб вылезли" после погружения в эти папки. Вы не первый и не последний.

Итак, мы сделали первый шаг на пути к освоению программирования драйверов Windows. Теперь у нас есть все необходимые инструменты для работы с драверами на начальном этапе. В следующей части статьи мы начнем писать наш первый драйвер под Windows XP для управления портами.

Файл devcon.exe считается разновидностью файла Windows Setup API. Наиболее часто он используется в ПО Windows (R) Win 7 DDK driver, разработанном компанией Steganos Software. Он использует расширение EXE и считается файлом Win32 EXE (Библиотека динамической компоновки).

Первая версия devcon.exe для Paragon Backup & Recovery 10.2.1.000 увидела свет 06/30/2017 в Windows 10. Последнее обновление для Steganos Online Shield VPN 2.0.4 состоялось 09/17/2018 [версия файла 6.1.7600.16385 built by: WinDDK].

Ниже приведены подробные сведения, порядок устранения неполадок, возникших с файлом EXE, и бесплатные загрузки различных версий файла devcon.exe.




Совместимость с Windows 10, 8, 7, Vista, XP и 2000

Средняя оценка пользователей

Сведения о разработчике и ПО
Разработчик ПО: Windows (R) Win 7 DDK provider
Программа: Windows (R) Win 7 DDK driver
Авторское право: © Microsoft Corporation. All rights reserved.
Сведения о файле
Набор символов: Unicode
Код языка: English (U.S.)
Флаги файлов: Private build
Маска флагов файлов: 0x003f
Точка входа: 0x66f3
Размер кода: 28160
Информация о файле Описание
Размер файла: 76 kB
Дата и время изменения файла: 2020:01:14 14:36:14+00:00
Тип файла: Win32 EXE
Тип MIME: application/octet-stream
Тип компьютера: Intel 386 or later, and compatibles
Метка времени: 2014:11:05 13:16:36+00:00
Тип PE: PE32
Версия компоновщика: 9.0
Размер кода: 28160
Размер инициализированных данных: 50688
Размер неинициализированных данных: 0
Точка входа: 0x66f3
Версия ОС: 6.1
Версия образа: 6.1
Версия подсистемы: 5.1
Подсистема: Windows command line
Номер версии файла: 6.1.7600.16385
Номер версии продукта: 6.1.7600.16385
Маска флагов файлов: 0x003f
Флаги файлов: Private build
Файловая ОС: Windows NT 32-bit
Тип объектного файла: Dynamic link library
Подтип файла: 0
Код языка: English (U.S.)
Набор символов: Unicode
Наименование компании: Windows (R) Win 7 DDK provider
Описание файла: Windows Setup API
Версия файла: 6.1.7600.16385 built by: WinDDK
Внутреннее имя: SETUPAPI.DLL
Авторское право: © Microsoft Corporation. All rights reserved.
Название продукта: Windows (R) Win 7 DDK driver
Версия продукта: 6.1.7600.16385

✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.

devcon.exe — ошибки выполнения

Ошибки выполнения — это ошибки Steganos Online Shield VPN, возникающие во время «выполнения». Термин «выполнение» говорит сам за себя; имеется в виду, что данные ошибки EXE возникают в момент, когда происходит попытка загрузки файла devcon.exe — либо при запуске приложения Steganos Online Shield VPN, либо, в некоторых случаях, во время его работы. Ошибки выполнения являются наиболее распространенной разновидностью ошибки EXE, которая встречается при использовании приложения Steganos Online Shield VPN.

К числу наиболее распространенных ошибок devcon.exe относятся:

Не удается запустить программу из-за отсутствия devcon.exe на компьютере. Попробуйте переустановить программу, чтобы устранить эту проблему.

Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Поиск причины ошибки devcon.exe является ключом к правильному разрешению таких ошибок. Несмотря на то что большинство этих ошибок EXE, влияющих на devcon.exe, происходят во время запуска, иногда ошибка выполнения возникает при использовании Windows (R) Win 7 DDK driver. Причиной этого может быть недостаточное качество программного кода со стороны Windows (R) Win 7 DDK provider, конфликты с другими приложениями, сторонние плагины или поврежденное и устаревшее оборудование. Кроме того, эти типы ошибок devcon.exe могут возникать в тех случаях, если файл был случайно перемещен, удален или поврежден вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.

Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):

Если на этапе 1 не удается устранить ошибку devcon.exe, перейдите к шагу 2 ниже.


Шаг 2. Если вы недавно установили приложение Steganos Online Shield VPN (или схожее программное обеспечение), удалите его, затем попробуйте переустановить Steganos Online Shield VPN.

Чтобы удалить программное обеспечение Steganos Online Shield VPN, выполните следующие инструкции (Windows XP, Vista, 7, 8 и 10):

После полного удаления приложения следует перезагрузить ПК и заново установить Steganos Online Shield VPN.

Если на этапе 2 также не удается устранить ошибку devcon.exe, перейдите к шагу 3 ниже.


Steganos Online Shield VPN 2.0.4

Шаг 3. Выполните обновление Windows.


Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла devcon.exe. Мы храним полную базу данных файлов devcon.exe со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии Steganos Online Shield VPN . Чтобы загрузить и правильно заменить файл, выполните следующие действия:

Windows 10: C:\Program Files\PowerISO\
Windows 10: C:\Program Files (x86)\Fake Webcam 7.4\7.4.0.0\
Windows 10: C:\Program Files (x86)\Steganos Online Shield\openvpn64\
Windows 10: C:\Program Files (x86)\Steganos Online Shield\openvpn\
Windows 10: C:\Program Files\Paragon Software\Universal Image Mounter\
Показать на 1 каталог больше + Windows 10: C:\Program Files (x86)\Elaborate Bytes\VirtualCloneDrive\

Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.

Читайте также: