Winapi ConvertStringSecurityDescriptor()仅在Windows 2000上返回错误\u无效\u SID

Winapi ConvertStringSecurityDescriptor()仅在Windows 2000上返回错误\u无效\u SID,winapi,advapi32,Winapi,Advapi32,我遇到了一个问题,我们的代码调用ConvertStringSecurityDescriptorToSecurityDescriptor(),(奇怪的是,MSDN说它只能从Windows XP开始使用,但我发现的所有其他内容都说它是在Windows 2000中引入的),返回错误\u INVALID\u SID 其中#定义错误_无效_SID1337L 仅适用于Windows 2000。无论操作系统如何,我们都使用相同的SecurityDescriptorString,因此我不确定为什么它在XP、Wi

我遇到了一个问题,我们的代码调用ConvertStringSecurityDescriptorToSecurityDescriptor(),(奇怪的是,MSDN说它只能从Windows XP开始使用,但我发现的所有其他内容都说它是在Windows 2000中引入的),返回错误\u INVALID\u SID

其中#定义错误_无效_SID1337L


仅适用于Windows 2000。无论操作系统如何,我们都使用相同的SecurityDescriptorString,因此我不确定为什么它在XP、Windows7等系统上运行良好。。这个问题让我很困惑。

文档中说它在Win2K上不起作用,而您发现它在Win2K上不起作用。我并不想粗鲁,但你的问题是什么?Carey Gregory,我认为这是MSDN上的一个错误,因为导出存在于Win2K上的advapi32.dll中。微软在一个操作系统中引入API,但在以后的操作系统中才真正实现其功能,这是常见的吗?当微软放弃对给定Windows版本的支持时,MSDN也倾向于放弃将该版本作为API最低支持版本的提述,这是很多人都不喜欢的做法,因为很难知道什么时候真正引入了一个给定的API。MS在一个操作系统中引入一个API,但在以后的版本中才能使其正常工作是不常见的,但我敢肯定他们已经做了一两次了。我不能举出一个具体的例子,因为我完全是从模糊的记忆中工作的,但将来我可能会举出ConvertStringSecurityDescriptorToSecurityDescriptor()作为例子。