Цитата(spbroma @ Dec 11 2014, 18:20)

SM, насчет стандартов я имел в виду какой-то сценарий действий, который позволит быстрее прийти к решению, не изобретая велосипедов.
Опыта ни с PCI, ни с PCIe нет, так что, пожалуй, последую вашему совету насчет разбора примера сетевой карты и мигания диодом.
Не подскажете какой-нибудь ресурс или литературу (кроме msdn и спецификации PCIe), чтобы можно было проще разобраться и въехать в тему? Нашел много книг про WDM, а сейчас, как я понимаю, WDF -- есть ли принципиальная разница или можно для начала и то почитать?
Сценарий:
1) Сделайте железку с Slave I/O портом, который зажигает светодиод.
2) Сделайте простейший драйвер для нее.
3) Добавьте в железо, например, таймер с прерыванием.
4) Сделайте в драйвере мигалку в прерывании.
5) Сделайте простой мастер - передачу в DMA 4096 байт данных в комп.
6) Сделайте драйвер для этого.
7) ... Ну тут уже сами всем все советовать будете ...
Не изобретая велосипедов... Я забыл главное! В WDK 2600 - WinDDK\2600\src\kernel\serial - драйвер UART 16C550 и иже с ними... Эту микросхемы каждый школьник знает, как она работает, какие у нее порты, и т.п. Драйвер там прост как валенок. Вот его берите, и обрезайте сначала до минимума (убрав ВЕСЬ I/O - read, write, ioctl), и потом добавляя сначала свои IOCTL, а потом, может быть, и read/write, правда, последние часто не нужны. Так что сетевую карту - отставить! Вот с чего надо начинать.
Ресурс... Я ничем, кроме msdn, спецификаций, гугля и исходников (как и serial.sys, и сетевухи, так и верилог-исходников от китов), не пользовался, поэтому не знаю... Также не знаю, что такое WDF. Не лезьте в дебри, берите WDK 7600, берите serial.sys (из 2600!!! не из 7600!), и собирайте из него свой драйвер. Не пользуйтесь всякими WDF/UMDF/KMDF и прочими гнилыми соплями C++ными. Кстати, тот же serial в 7600 - уже WDF-ный, мне лично, даже лень вникать стало в эту мутоту... Поэтому за основу - именно serial из 2600 (он БУДЕТ работать и под win 8.1 - если соберете в Win 7 build environment, и будет и под XP).
Железо отлаживайте с виндрайвером. С ним и ДМА без проблем отлаживается (проходил). А потом уже на отлаженном железе - свой драйвер. Периода evaluation на это хватит, да и если что... В личке скажу

Цитата(spbroma @ Dec 11 2014, 18:20)

Имеет ли значение то, как сконфигурить корку (какое base class value и проч.), или если я сам буду писать драйвер, то указанный класс устройства мне не важен, так как я сам буду знать, как он отображается в дереве устройств и как к нему обращаться?
Имеет... Винда может начать обзывать Ваш девайс PCI-PCI мостом (когда там нули), каким угодно адаптером, и т.д., так что, задайте туда нечто, близкое к реальности. Ну и VID/PID такой, чтобы не попасть на готовый драйвер в недрах микрософта...