В 64-битной системе:
- драйвер всегда должен быть 64-битным
- приложение может быть 32-битным или 64-битным
- DLL-библиотека, используемая приложением (то есть DLL-библиотека, с которой связывается приложение), должна быть 32-разрядной для 32-разрядного приложения и 64-разрядной для 64-разрядного приложения
Если библиотека DLL спроектирована для взаимодействия с драйвером устройства, ее следует тщательно написать, чтобы использовать те же определения типов данных, что и для драйвера. Лучше всего, если и драйвер, и DLL избегают использования типов данных, которые по-разному определены для 32-разрядных и 64-разрядных (например, size_t
) в структурах, которые используются для связи друг с другом.
Однако это не означает, что DLL должна быть построена как 64-битная DLL (т.е. с использованием набора инструкций x86-64). Он должен использовать любой набор инструкций, который будет использовать приложение, связанное с ним.