Windows 2000と XP のLsaICLookupNames の違い
ADVAPI32.dll の WINAPI LsaICLookupNames を解析してみました。
どうも、これの互換性が違うため XP の NETAPI32.DLL がこけてるらしい。
まず、Windows 2000
WINAPI int LsaICLookupNames(LSA_HANDLE PolicyHandle, ULONG Count, PLSA_UNICODE_STRING Names, PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, PLSA_TRANSLATED_SID *Sids, ULONG unknown,PVOID *unknown, ULONG unknown);
こうなってる模様。
一方の Windows XP
WINAPI int LsaICLookupNames(LSA_HANDLE PolicyHandle, ULONG Flags, ULONG Count, PLSA_UNICODE_STRING Names, PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, PVOID *ValSids, ULONG unknown ,ULONG flag2 ,PVOID *unknown, ULONG unknown);
flag2が0の時は ValSidsが PLSA_TRANSLATED_SID2
flag2が1の時は Windows 2000 互換の PLSA_TRANSLATED_SID(ただし、構造体のサイズは12バイトではなく16バイト)
Comments