|
||
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
w32cmd.h
.
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. Introduced in v6.0. |
6 |
Introduced in v7.0. |
7 |
Introduced in v7.0. |
8 |
A direct screen access function was called out of turn. Introduced in v7.0. |
9 |
An attempt was made to pass an invalid region to the window server. Debug builds only. Introduced in v7.0s. |
10 |
Raised when the client is trying to use a wrong IpcSlot. The first
slot if raised by Introduced in v7.0s. |
11 |
A function has been called with a Introduced in v8.1. |
12 |
Not used. |
13 |
The Introduced in v9.2. |
14 |
Raised when one of the Introduced in v9.2. |
15 |
Raised if Introduced in v9.2. |
16 |
Raised when trying to send an empty
Introduced in v9.2. |
17 |
Not used. |
18 |
Raised when an invalid parameter is passed to a function. Introduced in v9.4. |