|
||
The window server runs continuously and brings the machine down if it
crashes, so it cannot panic its own thread when it detects an error in one of
its client’s requests. Instead it panics the client’s thread using
CSession::Panic()
. These panics have a category of WSERV.
These panics are defined in the enumeration TClientPanic
in
w32cmd.h
.
Note that some panics are raised in debug builds only.
1 |
Out of range opcode. The client has sent a request opcode that wasn’t recognised. Each server-side object can only handle some of the requests defined in the window server, and if the request isn’t recognised, this panic is raised. Clients would normally only get this is if they bypass the normal Window Server API. |
2 |
Invalid command buffer. A corrupt buffer of requests was discovered by the server. This is raised when the buffer itself is noticeably broken, and not when the commands in it are wrong. |
3 |
Invalid handle. The server couldn’t find the target object for a request in the handle index. This can be raised when a command is sent to the handle for a window that has been closed, for example. |
4 |
A handle whose value was NULL was detected.
For example, when Constructing one of the subclasses of the
client-side
On the server side, a |
5 |
A single drawing command was too big to fit into the client-side buffer.
The size of the buffer may be increased. See
|
6 |
Invalid window handle. A handle which should have referred to a window of a particular type referred to a window of another type, or the object index didn’t recognise the handle.
On the server side, this panic is ultimately raised by
|
7 |
Invalid bitmap handle. A corrupt bitmap handle was encountered. This is a common panic uncovered when a bitmap handle refers to nothing, or to a server-side object that isn’t a bitmap. Also:
|
8 |
Event read already outstanding.
|
9 |
Attempted to use a non-active graphics context. A drawing request was sent to a graphics context when the context was not active.
On the server side, this panic is raised by
|
10 |
Attempted to activate an already active graphics context.
On the server side, this is raised by
The request is sent by the client-side method
|
11 |
Window already active.
An attempt was made to reactivate an active window. The request is
sent by the client-side method
On the server side, this panic is raised by
|
12 |
Already inside a begin/end redraw pair.
A begin-redraw window request was made when the window had already
begun redrawing. Begin-redraw messages are paired with end-redraw messages, and
ordering is important. Invoking
On the server side, this panic is raised if an
|
13 |
Invalid font handle.
On the client-side is raised if
On the server side, |
14 |
Printing with no active font.
A command to draw text to a window was sent to a graphics context
when no font was set. Any of the overloads of
On the server side, this panic is raised by
|
15 |
Attempted to set an invalid text cursor type, see
Valid types are defined in the |
16 |
A drawing command was sent to a graphics context active on a group window. |
17 |
Not used. |
18 |
Not used. |
19 |
Attempted to use a patterned brush when the pattern bitmap has not
yet been set — |
20 |
Not used. |
21 |
Attempted to do a client destroy function on an illegal handle. A client tried to destroy or cancel a server-side object by its handle on an unrecognised handle, or on a handle of the wrong type for the operation.
This panic may be caused by the
|
22 |
Panic from the Anim DLL.
An animation DLL tried either changing its default or next timing
interval when its timing mode was set to There are a variety of other reasons why this panic might be raised, all which are Anim DLL related. The Animation writer can also cause functions raise this panic. |
23 |
Invalid Anim object handle.
A null animation handle was detected in the server on receipt of an
animation command, possibly because the relevant animation has been deleted.
This panic may be raised by a subclass of
On the server side, the |
24 |
Leave from a non-leaving animation function.
Code in an animated DLL called by the server invoked
|
25 |
Not used. |
26 |
Not used. |
27 |
Not used. |
28 |
Inconsistent polygon or polyline data was supplied. For example when restarting without finishing an old polygon. |
29 |
A client attempted to set a negative shadow height.
This panic is caused by a call to
On the server side, |
30 |
Not used. |
31 |
The client tried to construct a window with an invalid redraw type.
The valid redraw types defined in the enumeration
On the server side, this panic is raised by
|
32 |
A server-side redraw region is almost certainly corrupt.
This panic is raised when an |
33 |
The client failed to provide a reply buffer to a server-side function when one was needed.
All server-side functions that need more space for their reply than
a
This panic is raised by |
34 |
Not used. |
35 |
A client passed an invalid or unrecognised corner type or flag.
This panic is raised in response to a client call to
Valid flags are masked by
The server raises this panic as a response to
|
36 |
The server was asked to update a region of a backed-up window which has not had MaintainBackup called on it.
A client-side call to either form of
On the server side, the panic is raised in response to an
|
37 |
Panic raised when it was not possible to read or write data to the client thread. The data is usually contained in a descriptor. |
38 |
The client attempted to access a sprite after the sprite's window was destroyed. Note that pointer cursors are implemented as sprites. |
39 |
A client requested event data without having received an event telling it that the data was ready. |
40 |
The mask for a sprite is smaller than the sprite’s bitmap. A mask is permitted to be larger than its bitmap. |
41 |
Bad sprite handle. A null sprite handle was encountered, or a handle which was supposed to refer to a sprite referred to something else.
The client-side methods
|
42 |
A client attempted to set or clear a system pointer cursor without first owning the list of system pointer cursors.
The server requests which can raise this panic are
|
43 |
A client attempted to enable a pointer move buffer when none was allocated.
|
44 |
Raised in response to commands that send a string, when the string has been incorrectly stored in the command buffer. |
45 |
Not used. |
46 |
An invalid call or request parameter was detected by
Valid password modes are defined in
|
47 |
An invalid compute mode was sent to the window server. On the
client side, |
48 |
A client attempted to set the display mode of a backed-up window.
This can be done with
|
49 |
A client attempted to get a message when has not been signalled in the server.
This panic can be raised on a client thread calling
|
50 |
A client tried to send a second initialisation message, i.e. to
call |
51 |
A client attempted to send a message without specifying a target window.
This can be raised, for example, in response to
|
52 |
A client attempted to perform and operation on a window that has had its parent or ancestor deleted. An operation which might raise this panic could be setting the window size, position or extent. Introduced in v5.1 |
53 |
A client attempted to reset a window group’s default owning window.
For example, by calling the function
This is only raised in debug builds. |
54 |
A client attempted to perform an operation on an invalid screen mode.
For example, if the client called the functions
Introduced in v5.1 |
55 |
A client attempted to set an invalid screen enforcement mode.
The valid screen mode enforcement modes are defined in
Introduced in v5.1 |
56 |
A client specified an event type which was not a pointer event,
when this is what was required by the operation. e.g.
Introduced in v5.1 |
57 |
A client attempted to specify a screen rotation or orientation that is not allowed. Each screen size mode has a list of allowed rotations. Introduced in v5.1 |
58 |
A client attempted to call a function that can only be called on a
top level client window on a lower level window. A top level client window is a
window with a window group as a parent, e.g.
Introduced in v6.0 |
59 |
A client attempted to use a
Introduced in v7.0 |
60 |
The handle to a window server resource is already in use (debug builds only). Introduced in v7.0 |
61 |
An attempt was made to set a custom text cursor (using
Introduced in v7.0s. |
62 |
An attempt was made to set a custom text cursor (using
Introduced in v7.0s. |
63 |
An attempt was made to set a custom text cursor (using
Introduced in v7.0s. |
66 |
An attempt was made to call an event API without specifying the
SwEvent capability, such as
Introduced in v8.1. |