On Thu Jul 11 09:52:04 2024 +0000, Egor Poleshko wrote:
Nevermind, I apologise. I misunderstood how do the username values work on local accounts. From your and my observations, GetUserNameExW(3) performs several checks before returning a result:
- If the user is connected to an Active Directory domain, return the
`displayName` value from the domain LDAP database.
- If the local user is linked to a Microsoft account, return the name
specified in it.
- Else, return `ERROR_NONE_MAPPED`.
The Microsoft Account part is tricky, because, as far as I know, Wine doesn't provide a way to link the local user to a Microsoft account... Maybe, my implementation will suffice?
I'd suggest to add a test. That test most likely will show that GetUserNameEx(NameDisplay) returns an error ERROR_NONE_MAPPED on every VM in the Testbot. That means that your assumptions about GetUserNameEx() behaviour are incorrect, and the code in your plugin software won't work on at least some (I'd guess on most) of the Windows computers. Therefore your implementation is incorrect as well.