Windows SDK和MSDN文档之间的SAL注释存在差异



有人能解释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)

我认为传递的结构很可能会被函数更新,因为它包含一个列表,所以你看到的只是一个更好的版本。它只对代码分析器真正重要。

最新更新