有人能解释UnmapDebugInformation中的SAL注释差异吗?
在MSDN库文档中,DebugInfo参数被注释为在:中传递
BOOL WINAPI UnmapDebugInformation(
_In_ PIMAGE_DEBUG_INFORMATION DebugInfo
);
然而,在DbgHelp.h中,参数被注释为被传递out:
BOOL IMAGEAPI UnmapDebugInformation(
_Out_writes_(_Inexpressible_(unknown)) PIMAGE_DEBUG_INFORMATION DebugInfo
);
为什么这个参数在SDK中会被注释为_Out_
?
(我知道这是一个不推荐使用的函数;我有兴趣了解SDK中使用的SAL注释。)
SAL注释与MSDN文档和SDK更新是分开发展的。MSDN文章往往是过时的,这很可能曾经在SDK中被注释为_In_
。我得到的最老的是SDK v6.0,它使用__out_xcount(unknown)
。
我认为传递的结构很可能会被函数更新,因为它包含一个列表,所以你看到的只是一个更好的版本。它只对代码分析器真正重要。