_SHELL_BroadcastSystemMessage

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.

dwFlags
Flags identifying the kind of broadcast to perform. See BroadcastSystemMessage() in the Win32 SDK for a list of valid values.
lpdwRecipients

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.

.

uMsg
Message number. The high 16 bits must be zero.
wParam
16-bit message parameter in the low 16 bits. The high 16 bits must be zero. Valid values for wParam depend on the message number in uMsg.
lParam
32-bit message parameter. The value of lParam depends on the message number in uMsg.

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.