include shell.inc
VxDcall SHELL_BroadcastSystemMessage, <dwFlags, \
<OFFSET32 lpdwRecipients>, uMsg, wParam, lParam>
mov [Result], eax ; 1 if success, 0 if some recipients failed
; broadcast, -1 if broadcast failed
Broadcasts a message to a specified list of top-level windows and devices. This is a ring 0 version of the Windows BroadcastSystemMessage function. Use C calling conventions.
0 | At least one recipient returned FALSE from the broadcast message. |
1 | All components returned TRUE from the broadcast message. |
-1 | The message could not be broadcast. Indicates an error, such as unable to allocate a selector alias for the lParam buffer or the broadcast was attempted at an inappropriate time. |
Pointer to a variable that contains and receives information about the recipients of the message. See BroadcastSystemMessage() in the Win32 SDK for a list of valid values. When the function returns, this variable receives a combination of these values identifying which recipients actually received the message. If this parameter is NULL, the function broadcasts to all recipients.
.
If Windows is active, the SHELL_BroadcastSystemMessage service can be called only during an application time event. Windows is active if application time is available; use the SHELL_QueryAppyTimeAvailable service to determine whether application time is available. If Windows is not active, SHELL_BroadcastSystemMessage sends the broadcast message only to VxDs. Attempting to broadcast a system message at an inappropriate time may result in unpredictable behavior on the part of the system.