On Thu, Apr 26, 2018 at 1:13 PM Alexandre Julliard <julliard(a)winehq.org> wrote:
Alex Henrie <alexhenrie24(a)gmail.com> writes:
@@ -266,8 +228,10 @@ static void test_noprivileges(void) recips = BSM_ALLDESKTOPS; ResetEvent(hevent); ret = BroadcastSystemMessageExW( BSF_QUERY, &recips, WM_NULL, 100, 0, NULL ); - ok(ret==1, "Returned: %d error %u\n", ret, GetLastError()); - ok(WaitForSingleObject(hevent, 0) != WAIT_TIMEOUT, "Asynchronous message sent instead\n"); + ok((ret == 1 && WaitForSingleObject(hevent, 0) != WAIT_TIMEOUT) || + (ret == 0 && WaitForSingleObject(hevent, 1000) == WAIT_TIMEOUT) /* win10 */, + "Asynchronous message sent instead of synchronous message or no message. Returned: %d error %08x\n", + ret, GetLastError());
These still look like hiding the problem. Why are these calls failing?
Lack of privileges. The test_noprivileges function calls AdjustTokenPrivileges to disable all privileges, then verifies that BroadcastSystemMessage can no longer send a message to BSM_ALLDESKTOPS, BSM_ALLCOMPONENTS, or BSM_APPLICATIONS. If I understand correctly, before Windows 10 BroadcastSystemMessage would still send the message to the current application. In Windows 10, BroadcastSystemMessage does not send the message at all. -Alex