W32 is a synchronous interface onto the window server that user
code can include, link to and invoke instead of sending low level
client-server requests to the window server. Some errors can be detected
before they are sent to the server and are raised as panics from W32.
Code in the W32 synchronous interface runs in the client’s thread,
so it raises panics in situations it can understand on the current
thread via User::Panic()
. These panics have a category
of W32.
To minimise strain on the system, W32 can cache several requests in order in a buffer and send them as a group to the server. This means that a panic might not be caused by a bug in the last client-side code to run, but by an earlier line that does not get its request serviced until later. To debug such a panic it is often useful to turn on auto flushing.
Window server synchronous interface (W32) panics are raised by the synchronous interface onto the window server when it realises a client has attempted an action the interface can’t legally pass on to the window server thread. Because the interface is synchronous, the current thread is panicked, and the request is never sent to the window server.
These panics are defined in the enumeration TW32Panic
in the w32cmd.h
file.
Note that some panics are raised in debug builds only.
0 |
An attempt was made to reconnect to the window server using |
1 |
Not used. |
2 |
Not used. |
3 |
Not used. |
4 |
Raised by |
5 |
Data is too long to fit into the window server's client side buffer, see Client-side buffer. |
6 |
|
7 |
|
8 |
A direct screen access function was called out of turn. |
9 |
An attempt was made to pass an invalid region to the window server. Debug builds only. |
10 |
Raised when the client is trying to use a wrong IpcSlot.
The first slot if raised by |
11 |
A function has been called with a |
12 |
Not used. |
13 |
The |
14 |
Raised when one of the |
15 |
Raised if |
16 |
Raised when trying to send an empty |
17 |
Not used. |
18 |
Raised when an invalid parameter is passed to a function. |
19 |
Raised when |
20 |
Debug: Raised when trying to use an interface that is not initialized. |
21 |
Debug: Raised when returned data does not match expected sizes or granularity. |
22 |
A string is longer than it is allowed to be. |