Нужно поработать с железом, например получить список всех возможных pci устройств, управлять web-камерой, определить доступные режимы доступа к памяти(dma pio), реализовать хуки перехвата клавиатуры(тут кстати нужно программе сделать два режима скрытый и обычный в скрытом программа отсутствует на панели задач, в трее и в списке запущенных приложений диспетчера) и т.п., т.к. winapi использовал очень давно многое позабылось и не хочется в него заново вникать. Решил посмотреть в стоону wdk, вроде как он должен справляться с такими задачами. Платформа одна - windows. Есть ли смысл изучить wdk или придётся вспоминать winapi? Уточню причину выбора: хотелось бы изучить WDK, но нет уверенности, что он справится, а в winapi есть.
Все перечисленное вами делается на WinAPI и еще более высоком уровне, работу с Web-камерой лучше делать не на VFW (WinAPI) которая хорошо подходит только для Win 9k и камер 90-х годов выпуска, а на DirectShow (DirectX) и других более современных библиотеках, хуки - это WinAPI плюс понимание отладки и т.п. реверс-инжиринга, единственное для чего может понадобиться WinDDK - это скрыть запущенный процесс, причем для Win x64 вам придется купить цифровую подпись для своего драйвера, поэтому лучше искать другие пути, например маскировка под "чужие" процессы, внедрение в них кода.