------------ Дoбавленo в 16.37:
Ivann, продолжаю разбираться с проблемным Raw Input на WOW64 дебаггером и дизассемблером и могу сказать, что частично я оказался прав в своих предположениях. Как минимум на NT6.x x64, структура данных, формируемая системой по вызову GetRawInputBuffer выравнивается не под 32, а под 64 бита не зависимо от того, какой разрядности и в какой среде работает приложение


MSDN писал(а):
In most cases where the application needs to use low level hooks, it should monitor raw input instead. This is because raw input can asynchronously monitor mouse and keyboard messages that are targeted for other threads more effectively than low level hooks can. For more information on raw input, see Raw Input.То есть "Большинству приложений, которые работают с хуками настоятельно рекомендуется перейти на Raw Input, т.к. RI ловит чужие клавиши эффективнее LL. Идите и почитайте про RI". И это - правда, механизм LL хуков устроен так, что при определённых условиях нажатия на клавиши и кнопки мыши остаются незарегистрированными либо частично (До Windows 7), либо полностью (начиная с Windows 7 ядро оставляет за собой право снимать LL хук без уведомления приложения, его поставившего, в результате оно может ждать сообщений вечно).
На форумах Microsoft видел как минимум два багрепорта про ошибку с размерностью данных под x64, но никто до сих пор ничего не исправил (NT6.x SP1)