Virtual device drivers can send and receive system broadcast messages under Windows 95. The notification services are provided by the shell VxD. To receive system broadcast messages, VxDs must call the SHELL_HookSystemBroadcast function.
Between the sending of Sys_Critial_Init and when a VxD receives the WM_STARTSESSION notification, application time events are not processed. Also, during this time, broadcasts are sent only to VxDs (since other Windows system components are not loaded). This rule also applies to the time between a successful WM_ENDSESSION notification and Sys_Critical_Exit. During these phases of system operations, VxDs must send notifications only during times when other VxDs can safely respond to them.
During all other times, SHELL_BroadcastSystemMessage must only be called at application time.