Having worked at Microsoft where SAL is used extensively, I can tell you it's entirely inadequate for actually preventing memory safety issues. At best it can give you things in the category of better warnings. At worst, you can annotate incorrectly or not at all, so it doesn't even work with correct info.