64/32 битный перевод стандартного драйвера в Windows - PullRequest
1 голос
/ 25 марта 2009

Вопрос в основном является продолжением этой темы: Использование 64-битного драйвера в 32-битной программе. Windows

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

Что неясно, так это то, как происходит автоматический перевод 64 <-> 32 бит при использовании «стандартного устройства», такого как видеокарта. Любое 32-битное приложение в 64-битной ОС Windows должно иметь возможность использовать драйвер принтера или рисовать что-либо с помощью GDI с помощью некоторых библиотек DLL Windows. Иногда Microsoft должна сделать перевод с 32-битного на 64-битный драйвер для видеокарты или принтера. Я знаю, что WoW64 делает это для доступа к реестру и файловой системе, но переводит ли это также на стандартные драйверы?

Конкретный вопрос: есть ли у нас 64-битный драйвер WDM для аппаратного обеспечения, может ли это быть легко использовано 32-битным приложением, когда Windows выполняет перевод 64 <-> 32?

1 Ответ

2 голосов
/ 25 марта 2009

«Стандартные устройства» считаются «стандартными», поскольку Windows сама берет на себя ответственность за них. В случае 64-битной Windows это означает, что есть как 64-битная, так и 32-битная DLL. 32-битные DLL являются специальными и могут взаимодействовать с 64-битным ядром (включая драйверы в этом ядре). В целом, 32-битные DLL не взаимодействуют с 64-битными DLL, так как нет 64-битного процесса, в котором последние DLL могли бы загружаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...