<?xml version="1.0" encoding="windows-1251"?>
<rss version="0.92">
<channel>
<title>Sw4me - Winserv/Internals</title>
<link>http://www.sw4me.com/wiki/Winserv/Internals</link>
<description>History/revisions of Sw4me/Winserv/Internals</description>
<language>en-us</language>
<item>
<title>2004-11-06 18:54:21</title>
<link>http://www.sw4me.com/wiki/Winserv/Internals/show?time=2004-11-06+18%3A54%3A21</link>
<description>&lt;a name="p28-1">&lt;/a>&lt;p class="auto" id="p28-1">If&amp;nbsp;you want to&amp;nbsp;write a&amp;nbsp;&lt;span class="nobr">winserv-based&lt;/span> service in&amp;nbsp;a scripting language other than TCL, you&amp;nbsp;may want to&amp;nbsp;implement helper modules, similar to&amp;nbsp;TCL winserv support package. To&amp;nbsp;do it, you&amp;nbsp;have to&amp;nbsp;know what escape sequences winserv interprets when the&amp;nbsp;application writes to&amp;nbsp;its standard output or&amp;nbsp;the named pipe.&lt;/p>&lt;br />&lt;a name="p28-2">&lt;/a>&lt;p class="auto" id="p28-2">
Each string that winserv will parse must be&amp;nbsp;terminated by&amp;nbsp;a newline. If&amp;nbsp;you use&amp;nbsp;escape sequences, you&amp;nbsp;must put&amp;nbsp;each sequence on&amp;nbsp;a line by&amp;nbsp;itself.&lt;/p>&lt;br />
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell">\033 a&lt;/td>&lt;td  class="usercell">&lt;strong>accept/deny control codes: &lt;/strong>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 a&amp;nbsp;p&lt;/td>&lt;td  class="usercell">accept pause/continue control codes&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 a&amp;nbsp;c&lt;/td>&lt;td  class="usercell">accept PARAMCHANGE&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 a&amp;nbsp;s&lt;/td>&lt;td  class="usercell">accept SHUTDOWN&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 a&amp;nbsp;n&lt;/td>&lt;td  class="usercell">accept NETBIND... codes&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 a&amp;nbsp;r&lt;/td>&lt;td  class="usercell">reset; accept STOP and&amp;nbsp;nothing more&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 a&amp;nbsp;P &lt;/td>&lt;td  class="usercell">don't accept pause/continue&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 a&amp;nbsp;C &lt;/td>&lt;td  class="usercell">don't accept PARAMCHANGE&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 a&amp;nbsp;S &lt;/td>&lt;td  class="usercell">don't accept SHUTDOWN&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 a&amp;nbsp;N &lt;/td>&lt;td  class="usercell">don't accept NETBIND... codes&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 s&amp;nbsp;&lt;/td>&lt;td  class="usercell">&lt;strong>set service status&lt;/strong>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 s&amp;nbsp;p &lt;/td>&lt;td  class="usercell">the service is&amp;nbsp;now paused&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 s&amp;nbsp;P&lt;/td>&lt;td  class="usercell">the service is&amp;nbsp;going to&amp;nbsp;pause (PAUSE_PENDING)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 s&amp;nbsp;C&lt;/td>&lt;td  class="usercell">the service is&amp;nbsp;going to&amp;nbsp;continue (CONTINUE_PENDING)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 s&amp;nbsp;r &lt;/td>&lt;td  class="usercell">the service is&amp;nbsp;running&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 s&amp;nbsp;S&lt;/td>&lt;td  class="usercell">the service is&amp;nbsp;going to&amp;nbsp;stop (STOP_PENDING)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 e&amp;nbsp;&lt;/td>&lt;td  class="usercell">&lt;strong>add message to&amp;nbsp;the event log:&lt;/strong>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 e&amp;nbsp;i       &lt;/td>&lt;td  class="usercell">at the&amp;nbsp;information level&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 e&amp;nbsp;e       &lt;/td>&lt;td  class="usercell">at the&amp;nbsp;error level&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 e&amp;nbsp;s       &lt;/td>&lt;td  class="usercell">at the&amp;nbsp;success level&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 e&amp;nbsp;w       &lt;/td>&lt;td  class="usercell">at the&amp;nbsp;warning level&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 e&amp;nbsp;a       &lt;/td>&lt;td  class="usercell">at the&amp;nbsp;audit/success level&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\033 e&amp;nbsp;A       &lt;/td>&lt;td  class="usercell">at the&amp;nbsp;audit/failure level&lt;/td>&lt;/tr>
&lt;/table>
&lt;br />&lt;a name="p28-3">&lt;/a>&lt;p class="auto" id="p28-3">
For&amp;nbsp;eventlog escapes, the&amp;nbsp;message that will be&amp;nbsp;added must follow the&amp;nbsp;escape sequence on&amp;nbsp;the same line. If&amp;nbsp;the message contains embedded newlines, they must be&amp;nbsp;replaced with \014 (form feed) control character.&lt;/p>&lt;br />&lt;a name="p28-4">&lt;/a>&lt;p class="auto" id="p28-4">
When winserv receives a&amp;nbsp;control code from the&amp;nbsp;service manager, it&amp;nbsp;sends a&amp;nbsp;line to&amp;nbsp;the application's standard input. The&amp;nbsp;line is&amp;nbsp;just a&amp;nbsp;name like STOP or&amp;nbsp;CONTINUE. You&amp;nbsp;can get&amp;nbsp;all possible names if&amp;nbsp;you remove leading SERVICE_CONTROL_ from macros used for&amp;nbsp;the ControlService function. For&amp;nbsp;the user control codes (1&lt;span class="nobr">28&amp;ndash;255&lt;/span>), one&amp;nbsp;of&amp;nbsp;CODE128..CODE255 will be&amp;nbsp;sent.&lt;/p> </description>
</item>
<item>
<title>2004-11-06 18:54:03</title>
<link>http://www.sw4me.com/wiki/Winserv/Internals/show?time=2004-11-06+18%3A54%3A03</link>
<description>edited by AntonKovalenko</description>
</item>
<item>
<title>2004-11-06 18:49:16</title>
<link>http://www.sw4me.com/wiki/Winserv/Internals/show?time=2004-11-06+18%3A49%3A16</link>
<description>edited by AntonKovalenko</description>
</item>
<item>
<title>2004-11-06 18:48:55</title>
<link>http://www.sw4me.com/wiki/Winserv/Internals/show?time=2004-11-06+18%3A48%3A55</link>
<description>edited by AntonKovalenko</description>
</item>
</channel>
</rss>

