I am writing Windows KMDF code in Visual Studio 2012. You can easily generate a simple KMDF project using the New Project wizard if you have Windows Driver Kit 8.0 installed.
When writing Windows driver code, one can annotate their functions using SAL. Example:
_IRQL_requires_(PASSIVE_LEVEL)
NTSTATUS
SimpleDriverCreateDevice(
_Inout_ PWDFDEVICE_INIT DeviceInit
);
The _IRQL_requires_(PASSIVE_LEVEL) is a SAL annotation on the function. In the presence of such annotations, when I go to the implementation file, and hit Alt-M to list the methods, what is listed is _IRQL_requires_(PASSIVE_LEVEL) instead of SimpleDriverCreateDevice. Unfortunately, this makes this feature completely useless in the presence of such code.