Изначально было на ОС win7 32: 32-х битное приложение и 32-х битный драйвер,
после портирования на ОС win7 64: 32-х битное приложение и 64-х битный драйвер и все работает, за исключением одного момента - когда из приложения передаю в драйвер указатель на буфер DMA. В приложении он 32-х битный, а в драйвере от уже воспринимается как 64-х битный, и при первойже записи в него получаю синий экран ( я так предпологаю что из за этого).
Как пиобразовать 32-х битный адрес из приложения в 64-х битный в драйвере?
В приложении веделяю буфер так:
AppBuffer=(PULONG)LocalAlloc(LPTR, 255*4096); //здесь адрес 32-х битный
А в драйвере его использую так (AppBuffer передаю через DeviceIoControl):
PULONG DrvBuffer=(PULONG)AppBuffer; // а здесь я предпологаю ошибку
p.Mdl = IoAllocateMdl(DrvBuffer,255*4096,FALSE,FALSE,NULL); // а здесь DrvBuffer уже 64-х битный