<?xml version='1.0' encoding='UTF-8'?>
<panic_category>
<category_name>WSERV</category_name>
<category_description> <p> 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&#8217;s requests. Instead it panics the client&#8217;s thread using <code class="ApiItem">CSession::Panic()</code>. These panics have a category of WSERV. </p> <p> These panics are defined in the enumeration <code>TClientPanic</code> in <code class="filename">w32cmd.h</code>. </p> <p> Note that some panics are raised in debug builds only. </p></category_description>
<panics>
<panic>
<panic_id>1</panic_id>
<panic_description><p> Out of range opcode. </p> <p> The client has sent a request opcode that wasn&#8217;t recognised. Each server-side object can only handle some of the requests defined in the window server, and if the request isn&#8217;t recognised, this panic is raised. </p> <p> Clients would normally only get this is if they bypass the normal Window Server API. </p></panic_description>
</panic>
<panic>
<panic_id>2</panic_id>
<panic_description><p> Invalid command buffer. </p> <p> 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. </p></panic_description>
</panic>
<panic>
<panic_id>3</panic_id>
<panic_description><p> Invalid handle. </p> <p> The server couldn&#8217;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. </p></panic_description>
</panic>
<panic>
<panic_id>4</panic_id>
<panic_description><p> A handle whose value was NULL was detected. </p> <p> For example, when Constructing one of the subclasses of the client-side <code class="ApiItem">RWindowBase</code> with a client handle argument of NULL. </p> <p> On the server side, a <code>TWsClCmdCreateWindow</code> with a client handle field of <code>NULL</code> passed as argument to <code>CWsClientWindow::ConstructL()</code> will raise this error. </p></panic_description>
</panic>
<panic>
<panic_id>5</panic_id>
<panic_description><p> A single drawing command was too big to fit into the client-side buffer. </p> <p> The size of the buffer may be increased. See <code class="ApiItem">RWsSession::SetBufferSizeL()</code> and <code class="ApiItem">RWsSession::SetMaxBufferSizeL()</code>. </p></panic_description>
</panic>
<panic>
<panic_id>6</panic_id>
<panic_description><p> Invalid window handle. </p> <p> 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&#8217;t recognise the handle. </p> <p> On the server side, this panic is ultimately raised by <code>CWsClient::HandleToWindow()</code> and <code>CWsClient::HandleToClientWindow()</code> during handle conversions. </p></panic_description>
</panic>
<panic>
<panic_id>7</panic_id>
<panic_description><p> Invalid bitmap handle. </p> <p> 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&#8217;t a bitmap. </p> <p> Also: </p> <p> In response to an <code>EWsGcOpUseBrushPattern</code> request if the bitmap parameter couldn&#8217;t be used. On the client side, <code class="ApiItem">CWindowGc::UseBrushPattern()</code> sends this request. </p> <p> In response to an <code>EWsSpriteOpAppendMember</code> request when the bitmaps for the sprite member can't be created on the server side. On the client side, <code class="ApiItem">RWsSpriteBase::AppendMember()</code> sends this request. </p> <p> Any failed attempt to duplicate a supplied bitmap. </p></panic_description>
</panic>
<panic>
<panic_id>8</panic_id>
<panic_description><p> Event read already outstanding. </p> <p> <code class="ApiItem">RWsSession::EventReady()</code>, <code class="ApiItem">RWsSession::RedrawReady()</code>, or <code class="ApiItem">RWsSession::PriorityKeyReady()</code> was called again when an event read was already outstanding, i.e.. when an event was waiting to be delivered by the window server. </p></panic_description>
</panic>
<panic>
<panic_id>9</panic_id>
<panic_description><p> Attempted to use a non-active graphics context. </p> <p> A drawing request was sent to a graphics context when the context was not active. </p> <p> On the server side, this panic is raised by <code>CWsGc::CommandL()</code> on all requests received when the context isn&#8217;t active except <code>EWsGcOpActivate</code>, <code>EWsGcOpDeactivate</code>, <code>EWsGcOpFree</code>, and <code>EWsGcOpTestInvariant</code>. </p></panic_description>
</panic>
<panic>
<panic_id>10</panic_id>
<panic_description><p> Attempted to activate an already active graphics context. </p> <p> On the server side, this is raised by <code>CWsGc::Activate()</code> as a response to a <code>EWsGcOpActivate </code> request. </p> <p> The request is sent by the client-side method <code class="ApiItem">CWindowGc::Activate()</code>. </p></panic_description>
</panic>
<panic>
<panic_id>11</panic_id>
<panic_description><p> Window already active. </p> <p> An attempt was made to reactivate an active window. The request is sent by the client-side method <code class="ApiItem">RWindowBase::Activate()</code>. </p> <p> On the server side, this panic is raised by <code>CWsClientWindow::Activate()</code> in response to an <code>EWsWinOpActivate</code> request. </p></panic_description>
</panic>
<panic>
<panic_id>12</panic_id>
<panic_description><p> Already inside a begin/end redraw pair. </p> <p> 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 <code class="ApiItem">RWindow::BeginRedraw()</code>, then <code>RWindow::BeginRedraw()</code> again before the corresponding <code class="ApiItem">RWindow::EndRedraw()</code> raises this panic. </p> <p> On the server side, this panic is raised if an <code>EWsWinOpBeginRedraw</code> request is sent twice before the closing <code>EWsWinOpEndRedraw </code>. </p></panic_description>
</panic>
<panic>
<panic_id>13</panic_id>
<panic_description><p> Invalid font handle. </p> <p> On the client-side is raised if <code class="ApiItem">CWindowGc::UseFont()</code> is called with an invalid font handle. </p> <p> On the server side, <code>CWsGc::SetGcAttribute()</code> raises this error in response to an <code>EWsGcOpUseFont</code> request. </p></panic_description>
</panic>
<panic>
<panic_id>14</panic_id>
<panic_description><p> Printing with no active font. </p> <p> A command to draw text to a window was sent to a graphics context when no font was set. Any of the overloads of <code class="ApiItem">CWindowGc::DrawTextVertical()</code> or <code class="ApiItem">CWindowGc::DrawText()</code> might cause the panic to be raised; the font should be set using <code class="ApiItem">CWindowGc::UseFont()</code> first. </p> <p> On the server side, this panic is raised by <code>CWsGc::DoDrawCommand()</code> in response to any of the requests to display text defined in <code>TWsGcOpcodes</code>. </p></panic_description>
</panic>
<panic>
<panic_id>15</panic_id>
<panic_description><p> Attempted to set an invalid text cursor type, see <code class="ApiItem">RWindowGroup::SetTextCursor()</code>. </p> <p> Valid types are defined in the <code class="ApiItem">TTextCursor</code> struct. </p></panic_description>
</panic>
<panic>
<panic_id>16</panic_id>
<panic_description><p> A drawing command was sent to a graphics context active on a group window. </p></panic_description>
</panic>
<panic>
<panic_id>17</panic_id>
<panic_description><p> Not used. </p></panic_description>
</panic>
<panic>
<panic_id>18</panic_id>
<panic_description><p> Not used. </p></panic_description>
</panic>
<panic>
<panic_id>19</panic_id>
<panic_description><p> Attempted to use a patterned brush when the pattern bitmap has not yet been set&#0160;&#8212; <code>UseBrushPattern()</code>. </p></panic_description>
</panic>
<panic>
<panic_id>20</panic_id>
<panic_description><p> Not used. </p></panic_description>
</panic>
<panic>
<panic_id>21</panic_id>
<panic_description><p> Attempted to do a client destroy function on an illegal handle. </p> <p> 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. </p> <p> This panic may be caused by the <code class="ApiItem">RWindowGroup::CancelCaptureKeyUpAndDowns()</code> or <code class="ApiItem">RWindowGroup::CancelCaptureKey()</code> methods. These correspond to the <code>EWsWinOpCancelCaptureKeyUpsAndDowns</code> and <code>EWsWinOpCancelCaptureKey</code> server requests. In this case, the panic means that there is no such capture key object in existence in the target window group. </p></panic_description>
</panic>
<panic>
<panic_id>22</panic_id>
<panic_description><p> Panic from the Anim DLL. </p> <p> An animation DLL tried either changing its default or next timing interval when its timing mode was set to <code>ESyncNone</code>, or activating a graphics context when the context was already activated. </p> <p> 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. </p></panic_description>
</panic>
<panic>
<panic_id>23</panic_id>
<panic_description><p> Invalid Anim object handle. </p> <p> 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 <code class="ApiItem">RAnim</code> calling <code class="ApiItem">RAnim::Command()</code> or <code class="ApiItem">RAnim::CommandReply()</code>. </p> <p> On the server side, the <code>EWsAnimDllOpCommandReply</code> and <code>EWsAnimDllOpCommand</code> requests can raise this panic in <code>CWsAnimDll </code>. </p></panic_description>
</panic>
<panic>
<panic_id>24</panic_id>
<panic_description><p> Leave from a non-leaving animation function. </p> <p> Code in an animated DLL called by the server invoked <code>Leave()</code>. Animated DLL code is provided by the client and run by the server, so unhandled leaves are trapped and the notification is passed on as a client panic. </p></panic_description>
</panic>
<panic>
<panic_id>25</panic_id>
<panic_description><p> Not used. </p></panic_description>
</panic>
<panic>
<panic_id>26</panic_id>
<panic_description><p> Not used. </p></panic_description>
</panic>
<panic>
<panic_id>27</panic_id>
<panic_description><p> Not used. </p></panic_description>
</panic>
<panic>
<panic_id>28</panic_id>
<panic_description><p> Inconsistent polygon or polyline data was supplied. For example when restarting without finishing an old polygon. </p></panic_description>
</panic>
<panic>
<panic_id>29</panic_id>
<panic_description><p> A client attempted to set a negative shadow height. </p> <p> This panic is caused by a call to <code class="ApiItem">RWindowBase::SetShadowHeight()</code> with a negative argument. </p> <p> On the server side, <code>CWsClientWindow::CommandL()</code> raises the panic in response to an invalid <code>EWsWinOpSetShadowHeight</code> request. </p></panic_description>
</panic>
<panic>
<panic_id>30</panic_id>
<panic_description><p> Not used. </p></panic_description>
</panic>
<panic>
<panic_id>31</panic_id>
<panic_description><p> The client tried to construct a window with an invalid redraw type. The valid redraw types defined in the enumeration <code>TWinTypes</code> of <code class="filename">w32cmd.h </code>. </p> <p> On the server side, this panic is raised by <code>CWsClientWindow::ConstructL()</code> in response to an initialisation message containing an invalid redraw type. </p></panic_description>
</panic>
<panic>
<panic_id>32</panic_id>
<panic_description><p> A server-side redraw region is almost certainly corrupt. </p> <p> This panic is raised when an <code>EWsWinOpGetInvalidRegion</code> is received by a <code>CWsRedrawMsgWindow</code> with a <code>TInt</code> parameter of zero or less. </p></panic_description>
</panic>
<panic>
<panic_id>33</panic_id>
<panic_description><p> The client failed to provide a reply buffer to a server-side function when one was needed. </p> <p> All server-side functions that need more space for their reply than a <code>TInt</code> use the client&#8217;s reply buffer. If the client fails to provide space for such replies, this panic will be emitted. </p> <p> This panic is raised by <code>CWsClient::ReplyBuf()</code> when <code>CWsClient</code>&#8217;s reply buffer is null. </p></panic_description>
</panic>
<panic>
<panic_id>34</panic_id>
<panic_description><p> Not used. </p></panic_description>
</panic>
<panic>
<panic_id>35</panic_id>
<panic_description><p> A client passed an invalid or unrecognised corner type or flag. </p> <p> This panic is raised in response to a client call to <code class="ApiItem">RWindowBase::SetCornerType()</code> when specifying inconsistent or non-existent flags. </p> <p> Valid flags are masked by <code class="ApiItem">ECornerTypeMask</code>, and recognised types are defined in <code class="ApiItem">TCornerType</code>. These are all defined in <code class="filename">w32std.h</code>. </p> <p> The server raises this panic as a response to <code>EWsWinOpSetCornerType</code> request with an undefined corner type or an unrecognised flag in its parameters. </p></panic_description>
</panic>
<panic>
<panic_id>36</panic_id>
<panic_description><p> The server was asked to update a region of a backed-up window which has not had MaintainBackup called on it. </p> <p> A client-side call to either form of <code class="ApiItem">RBackedUpWindow::UpdateScreen()</code> may raise this panic. </p> <p> On the server side, the panic is raised in response to an <code>EWsWinOpUpdateScreenRegion</code> or <code>EWsWinOpUpdateScreen </code> request when not maintaining a full backup of a backed-up window. </p></panic_description>
</panic>
<panic>
<panic_id>37</panic_id>
<panic_description><p> Panic raised when it was not possible to read or write data to the client thread. The data is usually contained in a descriptor. </p></panic_description>
</panic>
<panic>
<panic_id>38</panic_id>
<panic_description><p> The client attempted to access a sprite after the sprite's window was destroyed. Note that pointer cursors are implemented as sprites. </p></panic_description>
</panic>
<panic>
<panic_id>39</panic_id>
<panic_description><p> A client requested event data without having received an event telling it that the data was ready. </p></panic_description>
</panic>
<panic>
<panic_id>40</panic_id>
<panic_description><p> The mask for a sprite is smaller than the sprite&#8217;s bitmap. A mask is permitted to be larger than its bitmap. </p></panic_description>
</panic>
<panic>
<panic_id>41</panic_id>
<panic_description><p> Bad sprite handle. </p> <p> A null sprite handle was encountered, or a handle which was supposed to refer to a sprite referred to something else. </p> <p> The client-side methods <code class="ApiItem">RWindowTreeNode::SetCustomPointerCursor()</code> and <code class="ApiItem">RWsSession::SetSystemPointerCursor()</code>, amongst others, can cause this panic to be raised; they correspond to the server requests <code>EWsWinOpSetCustomPointerCursor</code> and <code>EWsClOpSetSystemPointerCursor</code>. </p></panic_description>
</panic>
<panic>
<panic_id>42</panic_id>
<panic_description><p> A client attempted to set or clear a system pointer cursor without first owning the list of system pointer cursors. </p> <p> <code class="ApiItem">RWsSession::SetSystemPointerCursor()</code> and <code class="ApiItem">RWsSession::ClearSystemPointerCursor()</code> can raise this panic. See also <code class="ApiItem">RWsSession::ClaimSystemPointerCursorList()</code> and <code class="ApiItem">RWsSession::FreeSystemPointerCursorList()</code>. </p> <p> The server requests which can raise this panic are <code>EWsClOpSetSystemPointerCursor</code> and <code>EWsClOpClearSystemPointerCursor</code>. </p></panic_description>
</panic>
<panic>
<panic_id>43</panic_id>
<panic_description><p> A client attempted to enable a pointer move buffer when none was allocated. </p> <p> <code class="ApiItem">RWindowBase::EnablePointerMoveBuffer()</code> can cause this panic to be emitted; the corresponding server request is <code>EWsWinOpEnablePointerMoveBuffer</code>. </p></panic_description>
</panic>
<panic>
<panic_id>44</panic_id>
<panic_description><p> Raised in response to commands that send a string, when the string has been incorrectly stored in the command buffer. </p></panic_description>
</panic>
<panic>
<panic_id>45</panic_id>
<panic_description><p> Not used. </p></panic_description>
</panic>
<panic>
<panic_id>46</panic_id>
<panic_description><p> An invalid call or request parameter was detected by <code>CWsPassword</code>. This can be caused: </p> <p> By <code class="ApiItem">RWindowBase::PasswordWindow()</code> sending an <code>EWsWinOpPasswordWindow</code> server request whose password mode parameter is not recognised. </p> <p> By an attempt to cancel the password window by a client which doesn&#8217;t own the window. </p> <p> By <code class="ApiItem">RWsSession::PasswordEntered()</code> sending a <code>EWsClOpPasswordEntered</code> server request when no password window has been set, or when the client does not own the password window. </p> <p> Valid password modes are defined in <code class="ApiItem">TPasswordMode</code> of <code class="filename">w32std.h</code>. </p></panic_description>
</panic>
<panic>
<panic_id>47</panic_id>
<panic_description><p> An invalid compute mode was sent to the window server. On the client side, <code class="ApiItem">RWsSession::ComputeMode()</code> can do this, the window server request is <code>EWsClOpComputeMode</code>. Valid compute modes are defined in the enumeration <code class="ApiItem">RWsSession::TComputeMode</code>, which is declared in <code class="filename">w32std.h</code>. </p></panic_description>
</panic>
<panic>
<panic_id>48</panic_id>
<panic_description><p> A client attempted to set the display mode of a backed-up window. This can be done with <code class="ApiItem">RWindowBase::SetRequiredDisplayMode()</code> or the <code>EWsWinOpRequiredDisplayMode</code> server request. </p></panic_description>
</panic>
<panic>
<panic_id>49</panic_id>
<panic_description><p> A client attempted to get a message when has not been signalled in the server. </p> <p> This panic can be raised on a client thread calling <code class="ApiItem">RWindowGroup::FetchMessage()</code> or sending the <code>EWsWinOpGetMessageSize</code> or <code>EWsWinOpGetMessage </code> messages. </p></panic_description>
</panic>
<panic>
<panic_id>50</panic_id>
<panic_description><p> A client tried to send a second initialisation message, i.e. to call <code class="ApiItem">RWsSession::Connect()</code> twice. </p></panic_description>
</panic>
<panic>
<panic_id>51</panic_id>
<panic_description><p> A client attempted to send a message without specifying a target window. </p> <p> This can be raised, for example, in response to <code class="ApiItem">RWsSession::RequestOffEvents()</code> </p></panic_description>
</panic>
<panic>
<panic_id>52</panic_id>
<panic_description><p> 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. </p> <p> Introduced in v5.1 </p></panic_description>
</panic>
<panic>
<panic_id>53</panic_id>
<panic_description><p> A client attempted to reset a window group&#8217;s default owning window. For example, by calling the function <code class="ApiItem">RWindowGroup::DefaultOwningWindow()</code> twice on the same window group. </p> <p> This is only raised in debug builds. </p></panic_description>
</panic>
<panic>
<panic_id>54</panic_id>
<panic_description><p> A client attempted to perform an operation on an invalid screen mode. </p> <p> For example, if the client called the functions <code class="ApiItem">CWsScreenDevice::GetScreenModeSizeAndRotation()</code> or <code class="ApiItem">CWsScreenDevice::SetScreenMode()</code> with an illegal index. </p> <p> Introduced in v5.1 </p></panic_description>
</panic>
<panic>
<panic_id>55</panic_id>
<panic_description><p> A client attempted to set an invalid screen enforcement mode. </p> <p> The valid screen mode enforcement modes are defined in <code class="ApiItem">TScreenModeEnforcement</code>. </p> <p> Introduced in v5.1 </p></panic_description>
</panic>
<panic>
<panic_id>56</panic_id>
<panic_description><p> A client specified an event type which was not a pointer event, when this is what was required by the operation. e.g. <code class="ApiItem">RWindowGroup::SimulatePointerEvent()</code>. </p> <p> Introduced in v5.1 </p></panic_description>
</panic>
<panic>
<panic_id>57</panic_id>
<panic_description><p> A client attempted to specify a screen rotation or orientation that is not allowed. Each screen size mode has a list of allowed rotations. </p> <p> Introduced in v5.1 </p></panic_description>
</panic>
<panic>
<panic_id>58</panic_id>
<panic_description><p> 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. <code class="ApiItem">RWindowBase::MoveToGroup()</code>. </p> <p> Introduced in v6.0 </p></panic_description>
</panic>
<panic>
<panic_id>59</panic_id>
<panic_description><p> A client attempted to use a <code class="ApiItem">RDirectScreenAccess</code> object's member functions in the wrong order. </p> <p> Introduced in v7.0 </p></panic_description>
</panic>
<panic>
<panic_id>60</panic_id>
<panic_description><p> The handle to a window server resource is already in use (debug builds only). </p> <p> Introduced in v7.0 </p></panic_description>
</panic>
<panic>
<panic_id>61</panic_id>
<panic_description><p> An attempt was made to set a custom text cursor (using <code class="ApiItem">RWindowGroup::SetTextCursor()</code>) but the cursor's type was not recognised. </p> <p> Introduced in v7.0s. </p></panic_description>
</panic>
<panic>
<panic_id>62</panic_id>
<panic_description><p> An attempt was made to set a custom text cursor (using <code class="ApiItem">RWindowGroup::SetTextCursor()</code>) whose alignment value is invalid. For valid alignment values see the <code class="ApiItem">TCustomTextCursorAlignment</code> enumeration in class <code class="ApiItem">RWsSession</code>. </p> <p> Introduced in v7.0s. </p></panic_description>
</panic>
<panic>
<panic_id>63</panic_id>
<panic_description><p> An attempt was made to set a custom text cursor (using <code class="ApiItem">RWindowGroup::SetTextCursor()</code>) that does not have any sprite members set. </p> <p> Introduced in v7.0s.</p></panic_description>
</panic>
</panics>
</panic_category>