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バイト)

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です