4 Creates C code from a table of NCP type 0x2222 packet types.
5 (And 0x3333, which are the replies, but the packets are more commonly
6 refered to as type 0x2222; the 0x3333 replies are understood to be
7 part of the 0x2222 "family")
9 The data-munging code was written by Gilbert Ramirez.
10 The NCP data comes from Greg Morris <GMORRIS@novell.com>.
11 Many thanks to Novell for letting him work on this.
13 Additional data sources:
14 "Programmer's Guide to the NetWare Core Protocol" by Steve Conner and Dianne Conner.
16 Novell provides info at:
18 http://developer.novell.com/ndk (where you can download an *.exe file which
23 http://developer.novell.com/ndk/doc/docui/index.htm#../ncp/ncp__enu/data/
24 for a badly-formatted HTML version of the same PDF.
27 $Id: ncp2222.py,v 1.47 2003/02/05 20:52:48 guy Exp $
30 Copyright (c) 2000-2002 by Gilbert Ramirez <gram@alumni.rice.edu>
31 and Greg Morris <GMORRIS@novell.com>.
33 This program is free software; you can redistribute it and/or
34 modify it under the terms of the GNU General Public License
35 as published by the Free Software Foundation; either version 2
36 of the License, or (at your option) any later version.
38 This program is distributed in the hope that it will be useful,
39 but WITHOUT ANY WARRANTY; without even the implied warranty of
40 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
41 GNU General Public License for more details.
43 You should have received a copy of the GNU General Public License
44 along with this program; if not, write to the Free Software
45 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
75 PROTO_LENGTH_UNKNOWN = -1
77 global_highest_var = -1
81 REQ_COND_SIZE_VARIABLE = "REQ_COND_SIZE_VARIABLE"
82 REQ_COND_SIZE_CONSTANT = "REQ_COND_SIZE_CONSTANT"
84 ##############################################################################
86 ##############################################################################
88 class UniqueCollection:
89 """The UniqueCollection class stores objects which can be compared to other
90 objects of the same class. If two objects in the collection are equivalent,
91 only one is stored."""
93 def __init__(self, name):
97 self.member_reprs = {}
99 def Add(self, object):
100 """Add an object to the members lists, if a comparable object
101 doesn't already exist. The object that is in the member list, that is
102 either the object that was added or the comparable object that was
103 already in the member list, is returned."""
106 # Is 'object' a duplicate of some other member?
107 if self.member_reprs.has_key(r):
108 return self.member_reprs[r]
110 self.member_reprs[r] = object
111 self.members.append(object)
115 "Returns the list of members."
118 def HasMember(self, object):
119 "Does the list of members contain the object?"
120 if self.members_reprs.has_key(repr(object)):
125 # This list needs to be defined before the NCP types are defined,
126 # because the NCP types are defined in the global scope, not inside
127 # a function's scope.
128 ptvc_lists = UniqueCollection('PTVC Lists')
130 ##############################################################################
133 "NamedList's keep track of PTVC's and Completion Codes"
134 def __init__(self, name, list):
139 def __cmp__(self, other):
140 "Compare this NamedList to another"
142 if isinstance(other, NamedList):
143 return cmp(self.list, other.list)
148 def Name(self, new_name = None):
149 "Get/Set name of list"
155 "Returns record lists"
159 "Is there no list (different from an empty list)?"
160 return self.list == None
163 "It the list empty (different from a null list)?"
164 assert(not self.Null())
172 return repr(self.list)
174 class PTVC(NamedList):
175 """ProtoTree TVBuff Cursor List ("PTVC List") Class"""
177 def __init__(self, name, records):
179 NamedList.__init__(self, name, [])
181 global global_highest_var
183 expected_offset = None
188 # Make a PTVCRecord object for each list in 'records'
189 for record in records:
190 offset = record[REC_START]
191 length = record[REC_LENGTH]
192 field = record[REC_FIELD]
193 endianness = record[REC_ENDIANNESS]
196 var_name = record[REC_VAR]
198 # Did we already define this var?
199 if named_vars.has_key(var_name):
200 sys.exit("%s has multiple %s vars." % \
203 highest_var = highest_var + 1
205 if highest_var > global_highest_var:
206 global_highest_var = highest_var
207 named_vars[var_name] = var
212 repeat_name = record[REC_REPEAT]
214 # Do we have this var?
215 if not named_vars.has_key(repeat_name):
216 sys.exit("%s does not have %s var defined." % \
218 repeat = named_vars[repeat_name]
223 req_cond = record[REC_REQ_COND]
224 if req_cond != NO_REQ_COND:
225 global_req_cond[req_cond] = None
227 ptvc_rec = PTVCRecord(field, length, endianness, var, repeat, req_cond)
229 if expected_offset == None:
230 expected_offset = offset
232 elif expected_offset == -1:
235 elif expected_offset != offset and offset != -1:
236 msg.write("Expected offset in %s for %s to be %d\n" % \
237 (name, field.HFName(), expected_offset))
240 # We can't make a PTVC list from a variable-length
241 # packet, unless the fields can tell us at run time
242 # how long the packet is. That is, nstring8 is fine, since
243 # the field has an integer telling us how long the string is.
244 # Fields that don't have a length determinable at run-time
245 # cannot be variable-length.
246 if type(ptvc_rec.Length()) == type(()):
247 if isinstance(ptvc_rec.Field(), nstring):
250 elif isinstance(ptvc_rec.Field(), nbytes):
253 elif isinstance(ptvc_rec.Field(), struct):
257 field = ptvc_rec.Field()
258 assert 0, "Cannot make PTVC from %s, type %s" % \
259 (field.HFName(), field)
261 elif expected_offset > -1:
262 if ptvc_rec.Length() < 0:
265 expected_offset = expected_offset + ptvc_rec.Length()
268 self.list.append(ptvc_rec)
271 return "ett_%s" % (self.Name(),)
275 x = "static const ptvc_record %s[] = {\n" % (self.Name())
276 for ptvc_rec in self.list:
277 x = x + "\t%s,\n" % (ptvc_rec.Code())
278 x = x + "\t{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }\n"
284 for ptvc_rec in self.list:
285 x = x + repr(ptvc_rec)
289 class PTVCBitfield(PTVC):
290 def __init__(self, name, vars):
291 NamedList.__init__(self, name, [])
294 ptvc_rec = PTVCRecord(var, var.Length(), var.Endianness(),
295 NO_VAR, NO_REPEAT, NO_REQ_COND)
296 self.list.append(ptvc_rec)
299 ett_name = self.ETTName()
300 x = "static gint %s;\n" % (ett_name,)
302 x = x + "static const ptvc_record ptvc_%s[] = {\n" % (self.Name())
303 for ptvc_rec in self.list:
304 x = x + "\t%s,\n" % (ptvc_rec.Code())
305 x = x + "\t{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }\n"
308 x = x + "static const sub_ptvc_record %s = {\n" % (self.Name(),)
309 x = x + "\t&%s,\n" % (ett_name,)
311 x = x + "\tptvc_%s,\n" % (self.Name(),)
317 def __init__(self, field, length, endianness, var, repeat, req_cond):
321 self.endianness = endianness
324 self.req_cond = req_cond
326 def __cmp__(self, other):
327 "Comparison operator"
328 if self.field != other.field:
330 elif self.length < other.length:
332 elif self.length > other.length:
334 elif self.endianness != other.endianness:
340 # Nice textual representations
341 if self.var == NO_VAR:
346 if self.repeat == NO_REPEAT:
351 if self.req_cond == NO_REQ_COND:
352 req_cond = "NO_REQ_COND"
354 req_cond = global_req_cond[self.req_cond]
355 assert req_cond != None
357 if isinstance(self.field, struct):
358 return self.field.ReferenceString(var, repeat, req_cond)
360 return self.RegularCode(var, repeat, req_cond)
362 def RegularCode(self, var, repeat, req_cond):
363 "String representation"
365 if self.endianness == LE:
370 if type(self.length) == type(0):
373 # This is for cases where a length is needed
374 # in order to determine a following variable-length,
375 # like nstring8, where 1 byte is needed in order
376 # to determine the variable length.
377 var_length = self.field.Length()
381 if length == PROTO_LENGTH_UNKNOWN:
382 # XXX length = "PROTO_LENGTH_UNKNOWN"
385 assert length, "Length not handled for %s" % (self.field.HFName(),)
387 sub_ptvc_name = self.field.PTVCName()
388 if sub_ptvc_name != "NULL":
389 sub_ptvc_name = "&%s" % (sub_ptvc_name,)
392 return "{ &%s, %s, %s, %s, %s, %s, %s, %s }" % \
393 (self.field.HFName(), length, sub_ptvc_name,
394 endianness, var, repeat, req_cond,
395 self.field.SpecialFmt())
407 return "{%s len=%s end=%s var=%s rpt=%s rqc=%s}" % \
408 (self.field.HFName(), self.length,
409 self.endianness, self.var, self.repeat, self.req_cond)
411 ##############################################################################
415 def __init__(self, func_code, description, group, has_length=1):
417 self.func_code = func_code
418 self.description = description
421 self.request_records = None
422 self.reply_records = None
423 self.has_length = has_length
424 self.req_cond_size = None
425 self.req_info_str = None
427 if not groups.has_key(group):
428 msg.write("NCP 0x%x has invalid group '%s'\n" % \
429 (self.func_code, group))
432 if self.HasSubFunction():
433 # NCP Function with SubFunction
434 self.start_offset = 10
436 # Simple NCP Function
437 self.start_offset = 7
439 def ReqCondSize(self):
440 return self.req_cond_size
442 def ReqCondSizeVariable(self):
443 self.req_cond_size = REQ_COND_SIZE_VARIABLE
445 def ReqCondSizeConstant(self):
446 self.req_cond_size = REQ_COND_SIZE_CONSTANT
448 def FunctionCode(self, part=None):
449 "Returns the function code for this NCP packet."
451 return self.func_code
453 if self.HasSubFunction():
454 return (self.func_code & 0xff00) >> 8
456 return self.func_code
458 if self.HasSubFunction():
459 return self.func_code & 0x00ff
463 msg.write("Unknown directive '%s' for function_code()\n" % (part))
466 def HasSubFunction(self):
467 "Does this NPC packet require a subfunction field?"
468 if self.func_code <= 0xff:
474 return self.has_length
476 def Description(self):
477 return self.description
482 def PTVCRequest(self):
483 return self.ptvc_request
486 return self.ptvc_reply
488 def Request(self, size, records=[], **kwargs):
489 self.request_size = size
490 self.request_records = records
491 if self.HasSubFunction():
493 self.CheckRecords(size, records, "Request", 10)
495 self.CheckRecords(size, records, "Request", 8)
497 self.CheckRecords(size, records, "Request", 7)
498 self.ptvc_request = self.MakePTVC(records, "request")
500 if kwargs.has_key("info_str"):
501 self.req_info_str = kwargs["info_str"]
503 def Reply(self, size, records=[]):
504 self.reply_size = size
505 self.reply_records = records
506 self.CheckRecords(size, records, "Reply", 8)
507 self.ptvc_reply = self.MakePTVC(records, "reply")
509 def CheckRecords(self, size, records, descr, min_hdr_length):
510 "Simple sanity check"
511 if size == NO_LENGTH_CHECK:
515 if type(size) == type(()):
519 lower = min_hdr_length
520 upper = min_hdr_length
522 for record in records:
523 rec_size = record[REC_LENGTH]
526 if type(rec_size) == type(()):
527 rec_lower = rec_size[0]
528 rec_upper = rec_size[1]
530 lower = lower + rec_lower
531 upper = upper + rec_upper
535 msg.write("%s records for 2222/0x%x sum to %d bytes minimum, but param1 shows %d\n" \
536 % (descr, self.FunctionCode(), lower, min))
539 msg.write("%s records for 2222/0x%x sum to %d bytes maximum, but param1 shows %d\n" \
540 % (descr, self.FunctionCode(), upper, max))
547 def MakePTVC(self, records, name_suffix):
548 """Makes a PTVC out of a request or reply record list. Possibly adds
549 it to the global list of PTVCs (the global list is a UniqueCollection,
550 so an equivalent PTVC may already be in the global list)."""
552 name = "%s_%s" % (self.CName(), name_suffix)
553 ptvc = PTVC(name, records)
554 return ptvc_lists.Add(ptvc)
557 "Returns a C symbol based on the NCP function code"
558 return "ncp_0x%x" % (self.func_code)
560 def InfoStrName(self):
561 "Returns a C symbol based on the NCP function code, for the info_str"
562 return "info_str_0x%x" % (self.func_code)
565 """Returns a list of variables used in the request and reply records.
566 A variable is listed only once, even if it is used twice (once in
567 the request, once in the reply)."""
570 if self.request_records:
571 for record in self.request_records:
572 var = record[REC_FIELD]
573 variables[var.HFName()] = var
575 sub_vars = var.SubVariables()
577 variables[sv.HFName()] = sv
579 if self.reply_records:
580 for record in self.reply_records:
581 var = record[REC_FIELD]
582 variables[var.HFName()] = var
584 sub_vars = var.SubVariables()
586 variables[sv.HFName()] = sv
588 return variables.values()
590 def CalculateReqConds(self):
591 """Returns a list of request conditions (dfilter text) used
592 in the reply records. A request condition is listed only once,
593 even it it used twice. """
595 if self.reply_records:
596 for record in self.reply_records:
597 text = record[REC_REQ_COND]
598 if text != NO_REQ_COND:
602 self.req_conds = None
605 dfilter_texts = texts.keys()
607 name = "%s_req_cond_indexes" % (self.CName(),)
608 return NamedList(name, dfilter_texts)
610 def GetReqConds(self):
611 return self.req_conds
613 def SetReqConds(self, new_val):
614 self.req_conds = new_val
617 def CompletionCodes(self, codes=None):
618 """Sets or returns the list of completion
619 codes. Internally, a NamedList is used to store the
620 completion codes, but the caller of this function never
621 realizes that because Python lists are the input and
630 if not errors.has_key(code):
631 msg.write("Errors table does not have key 0x%04x for NCP=0x%x\n" % (code,
635 # Delay the exit until here so that the programmer can get
636 # the complete list of missing error codes
640 # Create CompletionCode (NamedList) object and possible
641 # add it to the global list of completion code lists.
642 name = "%s_errors" % (self.CName(),)
644 codes_list = NamedList(name, codes)
645 self.codes = compcode_lists.Add(codes_list)
650 """Adds the NCP object to the global collection of NCP
651 objects. This is done automatically after setting the
652 CompletionCode list. Yes, this is a shortcut, but it makes
653 our list of NCP packet definitions look neater, since an
654 explicit "add to global list of packets" is not needed."""
656 # Add packet to global collection of packets
659 def rec(start, length, field, endianness=None, **kw):
660 return _rec(start, length, field, endianness, kw)
662 def srec(field, endianness=None, **kw):
663 return _rec(-1, -1, field, endianness, kw)
665 def _rec(start, length, field, endianness, kw):
666 # If endianness not explicitly given, use the field's
668 if endianness == None:
669 endianness = field.Endianness()
672 if kw.has_key("var"):
673 # Is the field an INT ?
674 if not isinstance(field, CountingNumber):
675 sys.exit("Field %s used as count variable, but not integer." \
681 # If 'var' not used, 'repeat' can be used.
682 if not var and kw.has_key("repeat"):
683 repeat = kw["repeat"]
687 # Request-condition ?
688 if kw.has_key("req_cond"):
689 req_cond = kw["req_cond"]
691 req_cond = NO_REQ_COND
693 return [start, length, field, endianness, var, repeat, req_cond]
698 ##############################################################################
700 LE = 1 # Little-Endian
702 NA = -1 # Not Applicable
705 " Virtual class for NCP field types"
712 def __init__(self, abbrev, descr, bytes, endianness = NA):
716 self.endianness = endianness
717 self.hfname = "hf_ncp_" + self.abbrev
718 self.special_fmt = "NCP_FMT_NONE"
723 def Abbreviation(self):
726 def Description(self):
733 return "ncp." + self.abbrev
735 def EtherealFType(self):
738 def Display(self, newval=None):
743 def ValuesName(self):
749 def Endianness(self):
750 return self.endianness
752 def SubVariables(self):
759 self.special_fmt = "NCP_FMT_NW_DATE"
762 self.special_fmt = "NCP_FMT_NW_TIME"
765 self.special_fmt = "NCP_FMT_UNICODE"
767 def SpecialFmt(self):
768 return self.special_fmt
770 def __cmp__(self, other):
771 return cmp(self.hfname, other.hfname)
773 class struct(PTVC, Type):
774 def __init__(self, name, items, descr=None):
775 name = "struct_%s" % (name,)
776 NamedList.__init__(self, name, [])
781 if isinstance(item, Type):
783 length = field.Length()
784 endianness = field.Endianness()
787 req_cond = NO_REQ_COND
788 elif type(item) == type([]):
789 field = item[REC_FIELD]
790 length = item[REC_LENGTH]
791 endianness = item[REC_ENDIANNESS]
793 repeat = item[REC_REPEAT]
794 req_cond = item[REC_REQ_COND]
796 assert 0, "Item %s item not handled." % (item,)
798 ptvc_rec = PTVCRecord(field, length, endianness, var,
800 self.list.append(ptvc_rec)
801 self.bytes = self.bytes + field.Length()
803 self.hfname = self.name
807 for ptvc_rec in self.list:
808 vars.append(ptvc_rec.Field())
811 def ReferenceString(self, var, repeat, req_cond):
812 return "{ PTVC_STRUCT, NO_LENGTH, &%s, NO_ENDIANNESS, %s, %s, %s, NCP_FMT_NONE }" % \
813 (self.name, var, repeat, req_cond)
816 ett_name = self.ETTName()
817 x = "static gint %s;\n" % (ett_name,)
818 x = x + "static const ptvc_record ptvc_%s[] = {\n" % (self.name,)
819 for ptvc_rec in self.list:
820 x = x + "\t%s,\n" % (ptvc_rec.Code())
821 x = x + "\t{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }\n"
824 x = x + "static const sub_ptvc_record %s = {\n" % (self.name,)
825 x = x + "\t&%s,\n" % (ett_name,)
827 x = x + '\t"%s",\n' % (self.descr,)
830 x = x + "\tptvc_%s,\n" % (self.Name(),)
834 def __cmp__(self, other):
835 return cmp(self.HFName(), other.HFName())
841 def __init__(self, abbrev, descr):
842 Type.__init__(self, abbrev, descr, 1)
844 class CountingNumber:
847 # Same as above. Both are provided for convenience
848 class uint8(Type, CountingNumber):
852 def __init__(self, abbrev, descr):
853 Type.__init__(self, abbrev, descr, 1)
855 class uint16(Type, CountingNumber):
858 def __init__(self, abbrev, descr, endianness = LE):
859 Type.__init__(self, abbrev, descr, 2, endianness)
861 class uint24(Type, CountingNumber):
864 def __init__(self, abbrev, descr, endianness = LE):
865 Type.__init__(self, abbrev, descr, 3, endianness)
867 class uint32(Type, CountingNumber):
870 def __init__(self, abbrev, descr, endianness = LE):
871 Type.__init__(self, abbrev, descr, 4, endianness)
873 class boolean8(uint8):
877 class boolean16(uint16):
881 class boolean24(uint24):
885 class boolean32(uint32):
892 class nstring8(Type, nstring):
893 """A string of up to (2^8)-1 characters. The first byte
894 gives the string length."""
897 ftype = "FT_UINT_STRING"
898 def __init__(self, abbrev, descr):
899 Type.__init__(self, abbrev, descr, 1)
901 class nstring16(Type, nstring):
902 """A string of up to (2^16)-2 characters. The first 2 bytes
903 gives the string length."""
906 ftype = "FT_UINT_STRING"
907 def __init__(self, abbrev, descr, endianness = LE):
908 Type.__init__(self, abbrev, descr, 2, endianness)
910 class nstring32(Type, nstring):
911 """A string of up to (2^32)-4 characters. The first 4 bytes
912 gives the string length."""
915 ftype = "FT_UINT_STRING"
916 def __init__(self, abbrev, descr, endianness = LE):
917 Type.__init__(self, abbrev, descr, 4, endianness)
919 class fw_string(Type):
920 """A fixed-width string of n bytes."""
925 def __init__(self, abbrev, descr, bytes):
926 Type.__init__(self, abbrev, descr, bytes)
930 "NUL-terminated string, with a maximum length"
934 def __init__(self, abbrev, descr):
935 Type.__init__(self, abbrev, descr, PROTO_LENGTH_UNKNOWN)
937 class val_string(Type):
938 """Abstract class for val_stringN, where N is number
939 of bits that key takes up."""
944 def __init__(self, abbrev, descr, val_string_array, endianness = LE):
945 Type.__init__(self, abbrev, descr, self.bytes, endianness)
946 self.values = val_string_array
949 result = "static const value_string %s[] = {\n" \
950 % (self.ValuesCName())
951 for val_record in self.values:
952 value = val_record[0]
954 value_repr = self.value_format % value
955 result = result + '\t{ %s,\t"%s" },\n' \
958 value_repr = self.value_format % 0
959 result = result + "\t{ %s,\tNULL },\n" % (value_repr)
960 result = result + "};\n"
961 REC_VAL_STRING_RES = self.value_format % value
964 def ValuesCName(self):
965 return "ncp_%s_vals" % (self.abbrev)
967 def ValuesName(self):
968 return "VALS(%s)" % (self.ValuesCName())
970 class val_string8(val_string):
974 value_format = "0x%02x"
976 class val_string16(val_string):
977 type = "val_string16"
980 value_format = "0x%04x"
982 class val_string32(val_string):
983 type = "val_string32"
986 value_format = "0x%08x"
992 def __init__(self, abbrev, descr, bytes):
993 Type.__init__(self, abbrev, descr, bytes, NA)
998 class nbytes8(Type, nbytes):
999 """A series of up to (2^8)-1 bytes. The first byte
1000 gives the byte-string length."""
1003 ftype = "FT_UINT_BYTES"
1004 def __init__(self, abbrev, descr, endianness = LE):
1005 Type.__init__(self, abbrev, descr, 1, endianness)
1007 class nbytes16(Type, nbytes):
1008 """A series of up to (2^16)-2 bytes. The first 2 bytes
1009 gives the byte-string length."""
1012 ftype = "FT_UINT_BYTES"
1013 def __init__(self, abbrev, descr, endianness = LE):
1014 Type.__init__(self, abbrev, descr, 2, endianness)
1016 class nbytes32(Type, nbytes):
1017 """A series of up to (2^32)-4 bytes. The first 4 bytes
1018 gives the byte-string length."""
1021 ftype = "FT_UINT_BYTES"
1022 def __init__(self, abbrev, descr, endianness = LE):
1023 Type.__init__(self, abbrev, descr, 4, endianness)
1025 class bf_uint(Type):
1029 def __init__(self, bitmask, abbrev, descr, endianness=LE):
1030 Type.__init__(self, abbrev, descr, self.bytes, endianness)
1031 self.bitmask = bitmask
1036 class bf_val_str(bf_uint):
1040 def __init__(self, bitmask, abbrev, descr, val_string_array, endiannes=LE):
1041 bf_uint.__init__(self, bitmask, abbrev, descr, endiannes)
1042 self.values = val_string_array
1044 def ValuesName(self):
1045 return "VALS(%s)" % (self.ValuesCName())
1047 class bf_val_str8(bf_val_str, val_string8):
1048 type = "bf_val_str8"
1053 class bf_val_str16(bf_val_str, val_string16):
1054 type = "bf_val_str16"
1059 class bf_val_str32(bf_val_str, val_string32):
1060 type = "bf_val_str32"
1068 class bf_boolean8(bf_uint, boolean8, bf_boolean):
1069 type = "bf_boolean8"
1070 ftype = "FT_BOOLEAN"
1074 class bf_boolean16(bf_uint, boolean16, bf_boolean):
1075 type = "bf_boolean16"
1076 ftype = "FT_BOOLEAN"
1080 class bf_boolean24(bf_uint, boolean24, bf_boolean):
1081 type = "bf_boolean24"
1082 ftype = "FT_BOOLEAN"
1086 class bf_boolean32(bf_uint, boolean32, bf_boolean):
1087 type = "bf_boolean32"
1088 ftype = "FT_BOOLEAN"
1092 class bitfield(Type):
1096 def __init__(self, vars):
1099 if isinstance(var, bf_boolean):
1100 if not isinstance(var, self.bf_type):
1101 print "%s must be of type %s" % \
1102 (var.Abbreviation(),
1105 var_hash[var.bitmask] = var
1107 bitmasks = var_hash.keys()
1112 for bitmask in bitmasks:
1113 var = var_hash[bitmask]
1114 ordered_vars.append(var)
1116 self.vars = ordered_vars
1117 self.ptvcname = "ncp_%s_bitfield" % (self.abbrev,)
1118 self.hfname = "hf_ncp_%s" % (self.abbrev,)
1119 self.sub_ptvc = PTVCBitfield(self.PTVCName(), self.vars)
1121 def SubVariables(self):
1124 def SubVariablesPTVC(self):
1125 return self.sub_ptvc
1128 return self.ptvcname
1131 class bitfield8(bitfield, uint8):
1134 bf_type = bf_boolean8
1136 def __init__(self, abbrev, descr, vars):
1137 uint8.__init__(self, abbrev, descr)
1138 bitfield.__init__(self, vars)
1140 class bitfield16(bitfield, uint16):
1143 bf_type = bf_boolean16
1145 def __init__(self, abbrev, descr, vars, endianness=LE):
1146 uint16.__init__(self, abbrev, descr, endianness)
1147 bitfield.__init__(self, vars)
1149 class bitfield24(bitfield, uint24):
1152 bf_type = bf_boolean24
1154 def __init__(self, abbrev, descr, vars, endianness=LE):
1155 uint24.__init__(self, abbrev, descr, endianness)
1156 bitfield.__init__(self, vars)
1158 class bitfield32(bitfield, uint32):
1161 bf_type = bf_boolean32
1163 def __init__(self, abbrev, descr, vars, endianness=LE):
1164 uint32.__init__(self, abbrev, descr, endianness)
1165 bitfield.__init__(self, vars)
1168 ##############################################################################
1169 # NCP Field Types. Defined in Appendix A of "Programmer's Guide..."
1170 ##############################################################################
1171 AbortQueueFlag = val_string8("abort_q_flag", "Abort Queue Flag", [
1172 [ 0x00, "Place at End of Queue" ],
1173 [ 0x01, "Do Not Place Spool File, Examine Flags" ],
1175 AcceptedMaxSize = uint16("accepted_max_size", "Accepted Max Size")
1176 AccessControl = val_string8("access_control", "Access Control", [
1177 [ 0x00, "Open for read by this client" ],
1178 [ 0x01, "Open for write by this client" ],
1179 [ 0x02, "Deny read requests from other stations" ],
1180 [ 0x03, "Deny write requests from other stations" ],
1181 [ 0x04, "File detached" ],
1182 [ 0x05, "TTS holding detach" ],
1183 [ 0x06, "TTS holding open" ],
1185 AccessDate = uint16("access_date", "Access Date")
1187 AccessMode = bitfield8("access_mode", "Access Mode", [
1188 bf_boolean8(0x01, "acc_mode_read", "Read Access"),
1189 bf_boolean8(0x02, "acc_mode_write", "Write Access"),
1190 bf_boolean8(0x04, "acc_mode_deny_read", "Deny Read Access"),
1191 bf_boolean8(0x08, "acc_mode_deny_write", "Deny Write Access"),
1192 bf_boolean8(0x10, "acc_mode_comp", "Compatibility Mode"),
1194 AccessPrivileges = bitfield8("access_privileges", "Access Privileges", [
1195 bf_boolean8(0x01, "acc_priv_read", "Read Privileges (files only)"),
1196 bf_boolean8(0x02, "acc_priv_write", "Write Privileges (files only)"),
1197 bf_boolean8(0x04, "acc_priv_open", "Open Privileges (files only)"),
1198 bf_boolean8(0x08, "acc_priv_create", "Create Privileges (files only)"),
1199 bf_boolean8(0x10, "acc_priv_delete", "Delete Privileges (files only)"),
1200 bf_boolean8(0x20, "acc_priv_parent", "Parental Privileges (directories only for creating, deleting, and renaming)"),
1201 bf_boolean8(0x40, "acc_priv_search", "Search Privileges (directories only)"),
1202 bf_boolean8(0x80, "acc_priv_modify", "Modify File Status Flags Privileges (files and directories)"),
1204 AccessRightsMask = bitfield8("access_rights_mask", "Access Rights", [
1205 bf_boolean8(0x0001, "acc_rights_read", "Read Rights"),
1206 bf_boolean8(0x0002, "acc_rights_write", "Write Rights"),
1207 bf_boolean8(0x0004, "acc_rights_open", "Open Rights"),
1208 bf_boolean8(0x0008, "acc_rights_create", "Create Rights"),
1209 bf_boolean8(0x0010, "acc_rights_delete", "Delete Rights"),
1210 bf_boolean8(0x0020, "acc_rights_parent", "Parental Rights"),
1211 bf_boolean8(0x0040, "acc_rights_search", "Search Rights"),
1212 bf_boolean8(0x0080, "acc_rights_modify", "Modify Rights"),
1214 AccessRightsMaskWord = bitfield16("access_rights_mask_word", "Access Rights", [
1215 bf_boolean16(0x0001, "acc_rights1_read", "Read Rights"),
1216 bf_boolean16(0x0002, "acc_rights1_write", "Write Rights"),
1217 bf_boolean16(0x0004, "acc_rights1_open", "Open Rights"),
1218 bf_boolean16(0x0008, "acc_rights1_create", "Create Rights"),
1219 bf_boolean16(0x0010, "acc_rights1_delete", "Delete Rights"),
1220 bf_boolean16(0x0020, "acc_rights1_parent", "Parental Rights"),
1221 bf_boolean16(0x0040, "acc_rights1_search", "Search Rights"),
1222 bf_boolean16(0x0080, "acc_rights1_modify", "Modify Rights"),
1223 bf_boolean16(0x0100, "acc_rights1_supervisor", "Supervisor Access Rights"),
1225 AccountBalance = uint32("account_balance", "Account Balance")
1226 AccountVersion = uint8("acct_version", "Acct Version")
1227 ActionFlag = bitfield8("action_flag", "Action Flag", [
1228 bf_boolean8(0x01, "act_flag_open", "Open"),
1229 bf_boolean8(0x02, "act_flag_replace", "Replace"),
1230 bf_boolean8(0x10, "act_flag_create", "Create"),
1232 ActiveConnBitList = fw_string("active_conn_bit_list", "Active Connection List", 512)
1233 ActiveIndexedFiles = uint16("active_indexed_files", "Active Indexed Files")
1234 ActualMaxBinderyObjects = uint16("actual_max_bindery_objects", "Actual Max Bindery Objects")
1235 ActualMaxIndexedFiles = uint16("actual_max_indexed_files", "Actual Max Indexed Files")
1236 ActualMaxOpenFiles = uint16("actual_max_open_files", "Actual Max Open Files")
1237 ActualMaxSimultaneousTransactions = uint16("actual_max_sim_trans", "Actual Max Simultaneous Transactions")
1238 ActualMaxUsedDirectoryEntries = uint16("actual_max_used_directory_entries", "Actual Max Used Directory Entries")
1239 ActualMaxUsedRoutingBuffers = uint16("actual_max_used_routing_buffers", "Actual Max Used Routing Buffers")
1240 ActualResponseCount = uint16("actual_response_count", "Actual Response Count")
1241 AddNameSpaceAndVol = stringz("add_nm_spc_and_vol", "Add Name Space and Volume")
1242 AFPEntryID = uint32("afp_entry_id", "AFP Entry ID", BE)
1243 AFPEntryID.Display("BASE_HEX")
1244 AllocAvailByte = uint32("alloc_avail_byte", "Bytes Available for Allocation")
1245 AllocateMode = val_string16("allocate_mode", "Allocate Mode", [
1246 [ 0x0000, "Permanent Directory Handle" ],
1247 [ 0x0001, "Temporary Directory Handle" ],
1248 [ 0x0002, "Special Temporary Directory Handle" ],
1250 AllocationBlockSize = uint32("allocation_block_size", "Allocation Block Size")
1251 AllocFreeCount = uint32("alloc_free_count", "Reclaimable Free Bytes")
1252 ApplicationNumber = uint16("application_number", "Application Number")
1253 ArchivedTime = uint16("archived_time", "Archived Time")
1254 ArchivedTime.NWTime()
1255 ArchivedDate = uint16("archived_date", "Archived Date")
1256 ArchivedDate.NWDate()
1257 ArchiverID = uint32("archiver_id", "Archiver ID", BE)
1258 ArchiverID.Display("BASE_HEX")
1259 AssociatedNameSpace = uint8("associated_name_space", "Associated Name Space")
1260 AttachDuringProcessing = uint16("attach_during_processing", "Attach During Processing")
1261 AttachedIndexedFiles = uint8("attached_indexed_files", "Attached Indexed Files")
1262 AttachWhileProcessingAttach = uint16("attach_while_processing_attach", "Attach While Processing Attach")
1263 Attributes = uint32("attributes", "Attributes")
1264 AttributesDef = bitfield8("attr_def", "Attributes", [
1265 bf_boolean8(0x01, "att_def_ro", "Read Only"),
1266 bf_boolean8(0x02, "att_def_hidden", "Hidden"),
1267 bf_boolean8(0x04, "att_def_system", "System"),
1268 bf_boolean8(0x08, "att_def_execute", "Execute"),
1269 bf_boolean8(0x10, "att_def_sub_only", "Subdirectory"),
1270 bf_boolean8(0x20, "att_def_archive", "Archive"),
1271 bf_boolean8(0x80, "att_def_shareable", "Shareable"),
1273 AttributesDef16 = bitfield16("attr_def_16", "Attributes", [
1274 bf_boolean16(0x0001, "att_def16_ro", "Read Only"),
1275 bf_boolean16(0x0002, "att_def16_hidden", "Hidden"),
1276 bf_boolean16(0x0004, "att_def16_system", "System"),
1277 bf_boolean16(0x0008, "att_def16_execute", "Execute"),
1278 bf_boolean16(0x0010, "att_def16_sub_only", "Subdirectory"),
1279 bf_boolean16(0x0020, "att_def16_archive", "Archive"),
1280 bf_boolean16(0x0080, "att_def16_shareable", "Shareable"),
1281 bf_boolean16(0x1000, "att_def16_transaction", "Transactional"),
1282 bf_boolean16(0x4000, "att_def16_read_audit", "Read Audit"),
1283 bf_boolean16(0x8000, "att_def16_write_audit", "Write Audit"),
1285 AttributesDef32 = bitfield32("attr_def_32", "Attributes", [
1286 bf_boolean32(0x00000001, "att_def32_ro", "Read Only"),
1287 bf_boolean32(0x00000002, "att_def32_hidden", "Hidden"),
1288 bf_boolean32(0x00000004, "att_def32_system", "System"),
1289 bf_boolean32(0x00000008, "att_def32_execute", "Execute"),
1290 bf_boolean32(0x00000010, "att_def32_sub_only", "Subdirectory"),
1291 bf_boolean32(0x00000020, "att_def32_archive", "Archive"),
1292 bf_boolean32(0x00000080, "att_def32_shareable", "Shareable"),
1293 bf_boolean32(0x00001000, "att_def32_transaction", "Transactional"),
1294 bf_boolean32(0x00004000, "att_def32_read_audit", "Read Audit"),
1295 bf_boolean32(0x00008000, "att_def32_write_audit", "Write Audit"),
1296 bf_boolean32(0x00010000, "att_def_purge", "Purge"),
1297 bf_boolean32(0x00020000, "att_def_reninhibit", "Rename Inhibit"),
1298 bf_boolean32(0x00040000, "att_def_delinhibit", "Delete Inhibit"),
1299 bf_boolean32(0x00080000, "att_def_cpyinhibit", "Copy Inhibit"),
1300 bf_boolean32(0x02000000, "att_def_im_comp", "Immediate Compress"),
1301 bf_boolean32(0x04000000, "att_def_comp", "Compressed"),
1303 AttributeValidFlag = uint32("attribute_valid_flag", "Attribute Valid Flag")
1304 AuditFileVersionDate = uint16("audit_file_ver_date", "Audit File Version Date")
1305 AuditFileVersionDate.NWDate()
1306 AuditFlag = val_string8("audit_flag", "Audit Flag", [
1307 [ 0x00, "Do NOT audit object" ],
1308 [ 0x01, "Audit object" ],
1310 AuditHandle = uint32("audit_handle", "Audit File Handle")
1311 AuditHandle.Display("BASE_HEX")
1312 AuditID = uint32("audit_id", "Audit ID", BE)
1313 AuditID.Display("BASE_HEX")
1314 AuditIDType = val_string16("audit_id_type", "Audit ID Type", [
1315 [ 0x0000, "Volume" ],
1316 [ 0x0001, "Container" ],
1318 AuditVersionDate = uint16("audit_ver_date", "Auditing Version Date")
1319 AuditVersionDate.NWDate()
1320 AvailableBlocks = uint32("available_blocks", "Available Blocks")
1321 AvailableClusters = uint16("available_clusters", "Available Clusters")
1322 AvailableDirectorySlots = uint16("available_directory_slots", "Available Directory Slots")
1323 AvailableDirEntries = uint32("available_dir_entries", "Available Directory Entries")
1324 AvailableIndexedFiles = uint16("available_indexed_files", "Available Indexed Files")
1326 BackgroundAgedWrites = uint32("background_aged_writes", "Background Aged Writes")
1327 BackgroundDirtyWrites = uint32("background_dirty_writes", "Background Dirty Writes")
1328 BadLogicalConnectionCount = uint16("bad_logical_connection_count", "Bad Logical Connection Count")
1329 BannerName = fw_string("banner_name", "Banner Name", 14)
1330 BaseDirectoryID = uint32("base_directory_id", "Base Directory ID", BE)
1331 BaseDirectoryID.Display("BASE_HEX")
1332 binderyContext = nstring8("bindery_context", "Bindery Context")
1333 BitMap = bytes("bit_map", "Bit Map", 512)
1334 BlockNumber = uint32("block_number", "Block Number")
1335 BlockSize = uint16("block_size", "Block Size")
1336 BlockSizeInSectors = uint32("block_size_in_sectors", "Block Size in Sectors")
1337 BoardInstalled = uint8("board_installed", "Board Installed")
1338 BoardNumber = uint32("board_number", "Board Number")
1339 BoardNumbers = uint32("board_numbers", "Board Numbers")
1340 BufferSize = uint16("buffer_size", "Buffer Size")
1341 BusString = stringz("bus_string", "Bus String")
1342 BusType = val_string8("bus_type", "Bus Type", [
1344 [0x01, "Micro Channel" ],
1351 BytesActuallyTransferred = uint32("bytes_actually_transferred", "Bytes Actually Transferred")
1352 BytesRead = fw_string("bytes_read", "Bytes Read", 6)
1353 BytesToCopy = uint32("bytes_to_copy", "Bytes to Copy")
1354 BytesWritten = fw_string("bytes_written", "Bytes Written", 6)
1356 CacheAllocations = uint32("cache_allocations", "Cache Allocations")
1357 CacheBlockScrapped = uint16("cache_block_scrapped", "Cache Block Scrapped")
1358 CacheBufferCount = uint16("cache_buffer_count", "Cache Buffer Count")
1359 CacheBufferSize = uint16("cache_buffer_size", "Cache Buffer Size")
1360 CacheFullWriteRequests = uint32("cache_full_write_requests", "Cache Full Write Requests")
1361 CacheGetRequests = uint32("cache_get_requests", "Cache Get Requests")
1362 CacheHitOnUnavailableBlock = uint16("cache_hit_on_unavailable_block", "Cache Hit On Unavailable Block")
1363 CacheHits = uint32("cache_hits", "Cache Hits")
1364 CacheMisses = uint32("cache_misses", "Cache Misses")
1365 CachePartialWriteRequests = uint32("cache_partial_write_requests", "Cache Partial Write Requests")
1366 CacheReadRequests = uint32("cache_read_requests", "Cache Read Requests")
1367 CacheWriteRequests = uint32("cache_write_requests", "Cache Write Requests")
1368 CategoryName = stringz("category_name", "Category Name")
1369 CCFileHandle = uint32("cc_file_handle", "File Handle")
1370 CCFileHandle.Display("BASE_HEX")
1371 CCFunction = val_string8("cc_function", "OP-Lock Flag", [
1372 [ 0x01, "Clear OP-Lock" ],
1373 [ 0x02, "Acknowledge Callback" ],
1374 [ 0x03, "Decline Callback" ],
1376 ChangeBits = bitfield16("change_bits", "Change Bits", [
1377 bf_boolean16(0x0001, "change_bits_modify", "Modify Name"),
1378 bf_boolean16(0x0002, "change_bits_fatt", "File Attributes"),
1379 bf_boolean16(0x0004, "change_bits_cdate", "Creation Date"),
1380 bf_boolean16(0x0008, "change_bits_ctime", "Creation Time"),
1381 bf_boolean16(0x0010, "change_bits_owner", "Owner ID"),
1382 bf_boolean16(0x0020, "change_bits_adate", "Archive Date"),
1383 bf_boolean16(0x0040, "change_bits_atime", "Archive Time"),
1384 bf_boolean16(0x0080, "change_bits_aid", "Archiver ID"),
1385 bf_boolean16(0x0100, "change_bits_udate", "Update Date"),
1386 bf_boolean16(0x0200, "change_bits_utime", "Update Time"),
1387 bf_boolean16(0x0400, "change_bits_uid", "Update ID"),
1388 bf_boolean16(0x0800, "change_bits_acc_date", "Access Date"),
1389 bf_boolean16(0x1000, "change_bits_max_acc_mask", "Maximum Access Mask"),
1390 bf_boolean16(0x2000, "change_bits_max_space", "Maximum Space"),
1392 ChannelState = val_string8("channel_state", "Channel State", [
1393 [ 0x00, "Channel is running" ],
1394 [ 0x01, "Channel is stopping" ],
1395 [ 0x02, "Channel is stopped" ],
1396 [ 0x03, "Channel is not functional" ],
1398 ChannelSynchronizationState = val_string8("channel_synchronization_state", "Channel Synchronization State", [
1399 [ 0x00, "Channel is not being used" ],
1400 [ 0x02, "NetWare is using the channel; no one else wants it" ],
1401 [ 0x04, "NetWare is using the channel; someone else wants it" ],
1402 [ 0x06, "Someone else is using the channel; NetWare does not need it" ],
1403 [ 0x08, "Someone else is using the channel; NetWare needs it" ],
1404 [ 0x0A, "Someone else has released the channel; NetWare should use it" ],
1406 ChargeAmount = uint32("charge_amount", "Charge Amount")
1407 ChargeInformation = uint32("charge_information", "Charge Information")
1408 ClientCompFlag = val_string16("client_comp_flag", "Completion Flag", [
1409 [ 0x0000, "Successful" ],
1410 [ 0x0001, "Illegal Station Number" ],
1411 [ 0x0002, "Client Not Logged In" ],
1412 [ 0x0003, "Client Not Accepting Messages" ],
1413 [ 0x0004, "Client Already has a Message" ],
1414 [ 0x0096, "No Alloc Space for the Message" ],
1415 [ 0x00fd, "Bad Station Number" ],
1416 [ 0x00ff, "Failure" ],
1418 ClientIDNumber = uint32("client_id_number", "Client ID Number", BE)
1419 ClientIDNumber.Display("BASE_HEX")
1420 ClientList = uint32("client_list", "Client List")
1421 ClientListCount = uint16("client_list_cnt", "Client List Count")
1422 ClientListLen = uint8("client_list_len", "Client List Length")
1423 ClientName = nstring8("client_name", "Client Name")
1424 ClientRecordArea = fw_string("client_record_area", "Client Record Area", 152)
1425 ClientStation = uint8("client_station", "Client Station")
1426 ClientStationLong = uint32("client_station_long", "Client Station")
1427 ClientTaskNumber = uint8("client_task_number", "Client Task Number")
1428 ClientTaskNumberLong = uint32("client_task_number_long", "Client Task Number")
1429 ClusterCount = uint16("cluster_count", "Cluster Count")
1430 ClustersUsedByDirectories = uint32("clusters_used_by_directories", "Clusters Used by Directories")
1431 ClustersUsedByExtendedDirectories = uint32("clusters_used_by_extended_dirs", "Clusters Used by Extended Directories")
1432 ClustersUsedByFAT = uint32("clusters_used_by_fat", "Clusters Used by FAT")
1433 ComCnts = uint16("com_cnts", "Communication Counters")
1434 Comment = nstring8("comment", "Comment")
1435 CommentType = uint16("comment_type", "Comment Type")
1436 CompletionCode = uint32("ncompletion_code", "Completion Code")
1437 CompressedDataStreamsCount = uint32("compressed_data_streams_count", "Compressed Data Streams Count")
1438 CompressedLimboDataStreamsCount = uint32("compressed_limbo_data_streams_count", "Compressed Limbo Data Streams Count")
1439 CompressedSectors = uint32("compressed_sectors", "Compressed Sectors")
1440 compressionStage = uint32("compression_stage", "Compression Stage")
1441 compressVolume = uint32("compress_volume", "Volume Compression")
1442 ConfigMajorVN = uint8("config_major_vn", "Configuration Major Version Number")
1443 ConfigMinorVN = uint8("config_minor_vn", "Configuration Minor Version Number")
1444 ConfigurationDescription = fw_string("configuration_description", "Configuration Description", 80)
1445 ConfigurationText = fw_string("configuration_text", "Configuration Text", 160)
1446 ConfiguredMaxBinderyObjects = uint16("configured_max_bindery_objects", "Configured Max Bindery Objects")
1447 ConfiguredMaxOpenFiles = uint16("configured_max_open_files", "Configured Max Open Files")
1448 ConfiguredMaxRoutingBuffers = uint16("configured_max_routing_buffers", "Configured Max Routing Buffers")
1449 ConfiguredMaxSimultaneousTransactions = uint16("cfg_max_simultaneous_transactions", "Configured Max Simultaneous Transactions")
1450 ConnectedLAN = uint32("connected_lan", "LAN Adapter")
1451 ConnectionControlBits = bitfield8("conn_ctrl_bits", "Connection Control", [
1452 bf_boolean8(0x01, "enable_brdcasts", "Enable Broadcasts"),
1453 bf_boolean8(0x02, "enable_personal_brdcasts", "Enable Personal Broadcasts"),
1454 bf_boolean8(0x04, "enable_wdog_messages", "Enable Watchdog Message"),
1455 bf_boolean8(0x10, "disable_brdcasts", "Disable Broadcasts"),
1456 bf_boolean8(0x20, "disable_personal_brdcasts", "Disable Personal Broadcasts"),
1457 bf_boolean8(0x40, "disable_wdog_messages", "Disable Watchdog Message"),
1459 ConnectionListCount = uint32("conn_list_count", "Connection List Count")
1460 ConnectionList = uint32("connection_list", "Connection List")
1461 ConnectionNumber = uint32("connection_number", "Connection Number", BE)
1462 ConnectionNumberList = nstring8("connection_number_list", "Connection Number List")
1463 ConnectionNumberWord = uint16("conn_number_word", "Connection Number")
1464 ConnectionNumberByte = uint8("conn_number_byte", "Connection Number")
1465 ConnectionServiceType = val_string8("connection_service_type","Connection Service Type",[
1466 [ 0x01, "CLIB backward Compatibility" ],
1467 [ 0x02, "NCP Connection" ],
1468 [ 0x03, "NLM Connection" ],
1469 [ 0x04, "AFP Connection" ],
1470 [ 0x05, "FTAM Connection" ],
1471 [ 0x06, "ANCP Connection" ],
1472 [ 0x07, "ACP Connection" ],
1473 [ 0x08, "SMB Connection" ],
1474 [ 0x09, "Winsock Connection" ],
1476 ConnectionsInUse = uint16("connections_in_use", "Connections In Use")
1477 ConnectionsMaxUsed = uint16("connections_max_used", "Connections Max Used")
1478 ConnectionsSupportedMax = uint16("connections_supported_max", "Connections Supported Max")
1479 ConnectionType = val_string8("connection_type", "Connection Type", [
1480 [ 0x00, "Not in use" ],
1482 [ 0x11, "UDP (for IP)" ],
1484 ConnListLen = uint8("conn_list_len", "Connection List Length")
1485 Copyright = nstring8("copyright", "Copyright")
1486 connList = uint32("conn_list", "Connection List")
1487 ControlFlags = val_string8("control_flags", "Control Flags", [
1488 [ 0x00, "Forced Record Locking is Off" ],
1489 [ 0x01, "Forced Record Locking is On" ],
1491 ControllerDriveNumber = uint8("controller_drive_number", "Controller Drive Number")
1492 ControllerNumber = uint8("controller_number", "Controller Number")
1493 ControllerType = uint8("controller_type", "Controller Type")
1494 Cookie1 = uint32("cookie_1", "Cookie 1")
1495 Cookie2 = uint32("cookie_2", "Cookie 2")
1496 Copies = uint8( "copies", "Copies" )
1497 CoprocessorFlag = uint32("co_processor_flag", "CoProcessor Present Flag")
1498 CoProcessorString = stringz("co_proc_string", "CoProcessor String")
1499 CounterMask = val_string8("counter_mask", "Counter Mask", [
1500 [ 0x00, "Counter is Valid" ],
1501 [ 0x01, "Counter is not Valid" ],
1503 CPUNumber = uint32("cpu_number", "CPU Number")
1504 CPUString = stringz("cpu_string", "CPU String")
1505 CPUType = val_string8("cpu_type", "CPU Type", [
1508 [ 0x02, "Pentium" ],
1509 [ 0x03, "Pentium Pro" ],
1511 CreationDate = uint16("creation_date", "Creation Date")
1512 CreationDate.NWDate()
1513 CreationTime = uint16("creation_time", "Creation Time")
1514 CreationTime.NWTime()
1515 CreatorID = uint32("creator_id", "Creator ID", BE)
1516 CreatorID.Display("BASE_HEX")
1517 CreatorNameSpaceNumber = val_string8("creator_name_space_number", "Creator Name Space Number", [
1518 [ 0x00, "DOS Name Space" ],
1519 [ 0x01, "MAC Name Space" ],
1520 [ 0x02, "NFS Name Space" ],
1521 [ 0x04, "Long Name Space" ],
1523 CreditLimit = uint32("credit_limit", "Credit Limit")
1524 CtrlFlags = val_string16("ctrl_flags", "Control Flags", [
1525 [ 0x0000, "Do Not Return File Name" ],
1526 [ 0x0001, "Return File Name" ],
1528 curCompBlks = uint32("cur_comp_blks", "Current Compression Blocks")
1529 curInitialBlks = uint32("cur_initial_blks", "Current Initial Blocks")
1530 curIntermediateBlks = uint32("cur_inter_blks", "Current Intermediate Blocks")
1531 CurNumOfRTags = uint32("cur_num_of_r_tags", "Current Number of Resource Tags")
1532 CurrentBlockBeingDecompressed = uint32("cur_blk_being_dcompress", "Current Block Being Decompressed")
1533 CurrentChangedFATs = uint16("current_changed_fats", "Current Changed FAT Entries")
1534 CurrentEntries = uint32("current_entries", "Current Entries")
1535 CurrentFormType = uint8( "current_form_type", "Current Form Type" )
1536 CurrentLFSCounters = uint32("current_lfs_counters", "Current LFS Counters")
1537 CurrentlyUsedRoutingBuffers = uint16("currently_used_routing_buffers", "Currently Used Routing Buffers")
1538 CurrentOpenFiles = uint16("current_open_files", "Current Open Files")
1539 CurrentReferenceID = uint16("curr_ref_id", "Current Reference ID")
1540 CurrentServers = uint32("current_servers", "Current Servers")
1541 CurrentServerTime = uint32("current_server_time", "Time Elapsed Since Server Was Brought Up")
1542 CurrentSpace = uint32("current_space", "Current Space")
1543 CurrentTransactionCount = uint32("current_trans_count", "Current Transaction Count")
1544 CurrentUsedBinderyObjects = uint16("current_used_bindery_objects", "Current Used Bindery Objects")
1545 CurrentUsedDynamicSpace = uint32("current_used_dynamic_space", "Current Used Dynamic Space")
1546 CustomCnts = uint32("custom_cnts", "Custom Counters")
1547 CustomCount = uint32("custom_count", "Custom Count")
1548 CustomCounters = uint32("custom_counters", "Custom Counters")
1549 CustomString = nstring8("custom_string", "Custom String")
1550 CustomVariableValue = uint32("custom_var_value", "Custom Variable Value")
1552 Data = nstring8("data", "Data")
1553 DataForkFirstFAT = uint32("data_fork_first_fat", "Data Fork First FAT Entry")
1554 DataForkLen = uint32("data_fork_len", "Data Fork Len")
1555 DataForkSize = uint32("data_fork_size", "Data Fork Size")
1556 DataSize = uint32("data_size", "Data Size")
1557 DataStream = val_string8("data_stream", "Data Stream", [
1558 [ 0x00, "Resource Fork or DOS" ],
1559 [ 0x01, "Data Fork" ],
1561 DataStreamName = nstring8("data_stream_name", "Data Stream Name")
1562 DataStreamNumber = uint8("data_stream_number", "Data Stream Number")
1563 DataStreamsCount = uint32("data_streams_count", "Data Streams Count")
1564 DataStreamSize = uint32("data_stream_size", "Size")
1565 DataStreamSpaceAlloc = uint32( "data_stream_space_alloc", "Space Allocated for Data Stream" )
1566 Day = uint8("s_day", "Day")
1567 DayOfWeek = val_string8("s_day_of_week", "Day of Week", [
1570 [ 0x02, "Tuesday" ],
1571 [ 0x03, "Wednesday" ],
1572 [ 0x04, "Thursday" ],
1574 [ 0x06, "Saturday" ],
1576 DeadMirrorTable = bytes("dead_mirror_table", "Dead Mirror Table", 32)
1577 DefinedDataStreams = uint8("defined_data_streams", "Defined Data Streams")
1578 DefinedNameSpaces = uint8("definded_name_spaces", "Defined Name Spaces")
1579 DeletedDate = uint16("deleted_date", "Deleted Date")
1580 DeletedDate.NWDate()
1581 DeletedFileTime = uint32( "deleted_file_time", "Deleted File Time")
1582 DeletedFileTime.Display("BASE_HEX")
1583 DeletedTime = uint16("deleted_time", "Deleted Time")
1584 DeletedTime.NWTime()
1585 DeletedID = uint32( "delete_id", "Deleted ID", BE)
1586 DeletedID.Display("BASE_HEX")
1587 DeleteExistingFileFlag = val_string8("delete_existing_file_flag", "Delete Existing File Flag", [
1588 [ 0x00, "Do Not Delete Existing File" ],
1589 [ 0x01, "Delete Existing File" ],
1591 DenyReadCount = uint16("deny_read_count", "Deny Read Count")
1592 DenyWriteCount = uint16("deny_write_count", "Deny Write Count")
1593 DescriptionStrings = fw_string("description_string", "Description", 512)
1594 DesiredAccessRights = bitfield16("desired_access_rights", "Desired Access Rights", [
1595 bf_boolean16(0x0001, "dsired_acc_rights_read_o", "Read Only"),
1596 bf_boolean16(0x0002, "dsired_acc_rights_write_o", "Write Only"),
1597 bf_boolean16(0x0004, "dsired_acc_rights_deny_r", "Deny Read"),
1598 bf_boolean16(0x0008, "dsired_acc_rights_deny_w", "Deny Write"),
1599 bf_boolean16(0x0010, "dsired_acc_rights_compat", "Compatibility"),
1600 bf_boolean16(0x0040, "dsired_acc_rights_w_thru", "File Write Through"),
1601 bf_boolean16(0x0400, "dsired_acc_rights_del_file_cls", "Delete File Close"),
1603 DesiredResponseCount = uint16("desired_response_count", "Desired Response Count")
1604 DestDirHandle = uint8("dest_dir_handle", "Destination Directory Handle")
1605 DestNameSpace = val_string8("dest_name_space", "Destination Name Space", [
1606 [ 0x00, "DOS Name Space" ],
1607 [ 0x01, "MAC Name Space" ],
1608 [ 0x02, "NFS Name Space" ],
1609 [ 0x04, "Long Name Space" ],
1611 DestPathComponentCount = uint8("dest_component_count", "Destination Path Component Count")
1612 DestPath = nstring8("dest_path", "Destination Path")
1613 DetachDuringProcessing = uint16("detach_during_processing", "Detach During Processing")
1614 DetachForBadConnectionNumber = uint16("detach_for_bad_connection_number", "Detach For Bad Connection Number")
1615 DirHandle = uint8("dir_handle", "Directory Handle")
1616 DirHandleName = uint8("dir_handle_name", "Handle Name")
1617 DirHandleLong = uint32("dir_handle_long", "Directory Handle")
1618 DirectoryAccessRights = uint8("directory_access_rights", "Directory Access Rights")
1620 # XXX - what do the bits mean here?
1622 DirectoryAttributes = uint8("directory_attributes", "Directory Attributes")
1623 DirectoryBase = uint32("dir_base", "Directory Base")
1624 DirectoryBase.Display("BASE_HEX")
1625 DirectoryCount = uint16("dir_count", "Directory Count")
1626 DirectoryEntryNumber = uint32("directory_entry_number", "Directory Entry Number")
1627 DirectoryEntryNumber.Display('BASE_HEX')
1628 DirectoryEntryNumberWord = uint16("directory_entry_number_word", "Directory Entry Number")
1629 DirectoryID = uint16("directory_id", "Directory ID", BE)
1630 DirectoryID.Display("BASE_HEX")
1631 DirectoryName = fw_string("directory_name", "Directory Name",12)
1632 DirectoryName14 = fw_string("directory_name_14", "Directory Name", 14)
1633 DirectoryNameLen = uint8("directory_name_len", "Directory Name Length")
1634 DirectoryNumber = uint32("directory_number", "Directory Number")
1635 DirectoryNumber.Display("BASE_HEX")
1636 DirectoryPath = fw_string("directory_path", "Directory Path", 16)
1637 DirectoryServicesObjectID = uint32("directory_services_object_id", "Directory Services Object ID")
1638 DirectoryServicesObjectID.Display("BASE_HEX")
1639 DirectoryStamp = uint16("directory_stamp", "Directory Stamp (0xD1D1)")
1640 DirtyCacheBuffers = uint16("dirty_cache_buffers", "Dirty Cache Buffers")
1641 DiskChannelNumber = uint8("disk_channel_number", "Disk Channel Number")
1642 DiskChannelTable = val_string8("disk_channel_table", "Disk Channel Table", [
1646 [ 0x04, "Disk Coprocessor" ],
1648 DiskSpaceLimit = uint32("disk_space_limit", "Disk Space Limit")
1649 DMAChannelsUsed = uint32("dma_channels_used", "DMA Channels Used")
1650 DMInfoEntries = uint32("dm_info_entries", "DM Info Entries")
1651 DMInfoLevel = val_string8("dm_info_level", "DM Info Level", [
1652 [ 0x00, "Return Detailed DM Support Module Information" ],
1653 [ 0x01, "Return Number of DM Support Modules" ],
1654 [ 0x02, "Return DM Support Modules Names" ],
1656 DMFlags = val_string8("dm_flags", "DM Flags", [
1657 [ 0x00, "OnLine Media" ],
1658 [ 0x01, "OffLine Media" ],
1660 DMmajorVersion = uint32("dm_major_version", "DM Major Version")
1661 DMminorVersion = uint32("dm_minor_version", "DM Minor Version")
1662 DMPresentFlag = val_string8("dm_present_flag", "Data Migration Present Flag", [
1663 [ 0x00, "Data Migration NLM is not loaded" ],
1664 [ 0x01, "Data Migration NLM has been loaded and is running" ],
1666 DOSDirectoryBase = uint32("dos_directory_base", "DOS Directory Base")
1667 DOSDirectoryBase.Display("BASE_HEX")
1668 DOSDirectoryEntry = uint32("dos_directory_entry", "DOS Directory Entry")
1669 DOSDirectoryEntry.Display("BASE_HEX")
1670 DOSDirectoryEntryNumber = uint32("dos_directory_entry_number", "DOS Directory Entry Number")
1671 DOSDirectoryEntryNumber.Display('BASE_HEX')
1672 DOSFileAttributes = uint8("dos_file_attributes", "DOS File Attributes")
1673 DOSParentDirectoryEntry = uint32("dos_parent_directory_entry", "DOS Parent Directory Entry")
1674 DOSParentDirectoryEntry.Display('BASE_HEX')
1675 DOSSequence = uint32("dos_sequence", "DOS Sequence")
1676 DriveCylinders = uint16("drive_cylinders", "Drive Cylinders")
1677 DriveDefinitionString = fw_string("drive_definition_string", "Drive Definition", 64)
1678 DriveHeads = uint8("drive_heads", "Drive Heads")
1679 DriveMappingTable = bytes("drive_mapping_table", "Drive Mapping Table", 32)
1680 DriveMirrorTable = bytes("drive_mirror_table", "Drive Mirror Table", 32)
1681 DriverBoardName = stringz("driver_board_name", "Driver Board Name")
1682 DriveRemovableFlag = val_string8("drive_removable_flag", "Drive Removable Flag", [
1683 [ 0x00, "Nonremovable" ],
1684 [ 0xff, "Removable" ],
1686 DriverLogicalName = stringz("driver_log_name", "Driver Logical Name")
1687 DriverShortName = stringz("driver_short_name", "Driver Short Name")
1688 DriveSize = uint32("drive_size", "Drive Size")
1689 DstEAFlags = val_string16("dst_ea_flags", "Destination EA Flags", [
1690 [ 0x0000, "Return EAHandle,Information Level 0" ],
1691 [ 0x0001, "Return NetWareHandle,Information Level 0" ],
1692 [ 0x0002, "Return Volume/Directory Number,Information Level 0" ],
1693 [ 0x0004, "Return EAHandle,Close Handle on Error,Information Level 0" ],
1694 [ 0x0005, "Return NetWareHandle,Close Handle on Error,Information Level 0" ],
1695 [ 0x0006, "Return Volume/Directory Number,Close Handle on Error,Information Level 0" ],
1696 [ 0x0010, "Return EAHandle,Information Level 1" ],
1697 [ 0x0011, "Return NetWareHandle,Information Level 1" ],
1698 [ 0x0012, "Return Volume/Directory Number,Information Level 1" ],
1699 [ 0x0014, "Return EAHandle,Close Handle on Error,Information Level 1" ],
1700 [ 0x0015, "Return NetWareHandle,Close Handle on Error,Information Level 1" ],
1701 [ 0x0016, "Return Volume/Directory Number,Close Handle on Error,Information Level 1" ],
1702 [ 0x0020, "Return EAHandle,Information Level 2" ],
1703 [ 0x0021, "Return NetWareHandle,Information Level 2" ],
1704 [ 0x0022, "Return Volume/Directory Number,Information Level 2" ],
1705 [ 0x0024, "Return EAHandle,Close Handle on Error,Information Level 2" ],
1706 [ 0x0025, "Return NetWareHandle,Close Handle on Error,Information Level 2" ],
1707 [ 0x0026, "Return Volume/Directory Number,Close Handle on Error,Information Level 2" ],
1708 [ 0x0030, "Return EAHandle,Information Level 3" ],
1709 [ 0x0031, "Return NetWareHandle,Information Level 3" ],
1710 [ 0x0032, "Return Volume/Directory Number,Information Level 3" ],
1711 [ 0x0034, "Return EAHandle,Close Handle on Error,Information Level 3" ],
1712 [ 0x0035, "Return NetWareHandle,Close Handle on Error,Information Level 3" ],
1713 [ 0x0036, "Return Volume/Directory Number,Close Handle on Error,Information Level 3" ],
1714 [ 0x0040, "Return EAHandle,Information Level 4" ],
1715 [ 0x0041, "Return NetWareHandle,Information Level 4" ],
1716 [ 0x0042, "Return Volume/Directory Number,Information Level 4" ],
1717 [ 0x0044, "Return EAHandle,Close Handle on Error,Information Level 4" ],
1718 [ 0x0045, "Return NetWareHandle,Close Handle on Error,Information Level 4" ],
1719 [ 0x0046, "Return Volume/Directory Number,Close Handle on Error,Information Level 4" ],
1720 [ 0x0050, "Return EAHandle,Information Level 5" ],
1721 [ 0x0051, "Return NetWareHandle,Information Level 5" ],
1722 [ 0x0052, "Return Volume/Directory Number,Information Level 5" ],
1723 [ 0x0054, "Return EAHandle,Close Handle on Error,Information Level 5" ],
1724 [ 0x0055, "Return NetWareHandle,Close Handle on Error,Information Level 5" ],
1725 [ 0x0056, "Return Volume/Directory Number,Close Handle on Error,Information Level 5" ],
1726 [ 0x0060, "Return EAHandle,Information Level 6" ],
1727 [ 0x0061, "Return NetWareHandle,Information Level 6" ],
1728 [ 0x0062, "Return Volume/Directory Number,Information Level 6" ],
1729 [ 0x0064, "Return EAHandle,Close Handle on Error,Information Level 6" ],
1730 [ 0x0065, "Return NetWareHandle,Close Handle on Error,Information Level 6" ],
1731 [ 0x0066, "Return Volume/Directory Number,Close Handle on Error,Information Level 6" ],
1732 [ 0x0070, "Return EAHandle,Information Level 7" ],
1733 [ 0x0071, "Return NetWareHandle,Information Level 7" ],
1734 [ 0x0072, "Return Volume/Directory Number,Information Level 7" ],
1735 [ 0x0074, "Return EAHandle,Close Handle on Error,Information Level 7" ],
1736 [ 0x0075, "Return NetWareHandle,Close Handle on Error,Information Level 7" ],
1737 [ 0x0076, "Return Volume/Directory Number,Close Handle on Error,Information Level 7" ],
1738 [ 0x0080, "Return EAHandle,Information Level 0,Immediate Close Handle" ],
1739 [ 0x0081, "Return NetWareHandle,Information Level 0,Immediate Close Handle" ],
1740 [ 0x0082, "Return Volume/Directory Number,Information Level 0,Immediate Close Handle" ],
1741 [ 0x0084, "Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1742 [ 0x0085, "Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1743 [ 0x0086, "Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1744 [ 0x0090, "Return EAHandle,Information Level 1,Immediate Close Handle" ],
1745 [ 0x0091, "Return NetWareHandle,Information Level 1,Immediate Close Handle" ],
1746 [ 0x0092, "Return Volume/Directory Number,Information Level 1,Immediate Close Handle" ],
1747 [ 0x0094, "Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1748 [ 0x0095, "Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1749 [ 0x0096, "Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1750 [ 0x00a0, "Return EAHandle,Information Level 2,Immediate Close Handle" ],
1751 [ 0x00a1, "Return NetWareHandle,Information Level 2,Immediate Close Handle" ],
1752 [ 0x00a2, "Return Volume/Directory Number,Information Level 2,Immediate Close Handle" ],
1753 [ 0x00a4, "Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1754 [ 0x00a5, "Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1755 [ 0x00a6, "Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1756 [ 0x00b0, "Return EAHandle,Information Level 3,Immediate Close Handle" ],
1757 [ 0x00b1, "Return NetWareHandle,Information Level 3,Immediate Close Handle" ],
1758 [ 0x00b2, "Return Volume/Directory Number,Information Level 3,Immediate Close Handle" ],
1759 [ 0x00b4, "Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1760 [ 0x00b5, "Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1761 [ 0x00b6, "Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1762 [ 0x00c0, "Return EAHandle,Information Level 4,Immediate Close Handle" ],
1763 [ 0x00c1, "Return NetWareHandle,Information Level 4,Immediate Close Handle" ],
1764 [ 0x00c2, "Return Volume/Directory Number,Information Level 4,Immediate Close Handle" ],
1765 [ 0x00c4, "Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1766 [ 0x00c5, "Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1767 [ 0x00c6, "Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1768 [ 0x00d0, "Return EAHandle,Information Level 5,Immediate Close Handle" ],
1769 [ 0x00d1, "Return NetWareHandle,Information Level 5,Immediate Close Handle" ],
1770 [ 0x00d2, "Return Volume/Directory Number,Information Level 5,Immediate Close Handle" ],
1771 [ 0x00d4, "Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1772 [ 0x00d5, "Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1773 [ 0x00d6, "Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1774 [ 0x00e0, "Return EAHandle,Information Level 6,Immediate Close Handle" ],
1775 [ 0x00e1, "Return NetWareHandle,Information Level 6,Immediate Close Handle" ],
1776 [ 0x00e2, "Return Volume/Directory Number,Information Level 6,Immediate Close Handle" ],
1777 [ 0x00e4, "Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1778 [ 0x00e5, "Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1779 [ 0x00e6, "Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1780 [ 0x00f0, "Return EAHandle,Information Level 7,Immediate Close Handle" ],
1781 [ 0x00f1, "Return NetWareHandle,Information Level 7,Immediate Close Handle" ],
1782 [ 0x00f2, "Return Volume/Directory Number,Information Level 7,Immediate Close Handle" ],
1783 [ 0x00f4, "Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1784 [ 0x00f5, "Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1785 [ 0x00f6, "Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1787 dstNSIndicator = val_string16("dst_ns_indicator", "Destination Name Space Indicator", [
1788 [ 0x0000, "Return Source Name Space Information" ],
1789 [ 0x0001, "Return Destination Name Space Information" ],
1791 DstQueueID = uint32("dst_queue_id", "Destination Queue ID")
1792 DuplicateRepliesSent = uint16("duplicate_replies_sent", "Duplicate Replies Sent")
1794 EAAccessFlag = bitfield16("ea_access_flag", "EA Access Flag", [
1795 bf_boolean16(0x0001, "ea_permanent_memory", "Permanent Memory"),
1796 bf_boolean16(0x0002, "ea_deep_freeze", "Deep Freeze"),
1797 bf_boolean16(0x0004, "ea_in_progress", "In Progress"),
1798 bf_boolean16(0x0008, "ea_header_being_enlarged", "Header Being Enlarged"),
1799 bf_boolean16(0x0010, "ea_new_tally_used", "New Tally Used"),
1800 bf_boolean16(0x0020, "ea_tally_need_update", "Tally Need Update"),
1801 bf_boolean16(0x0040, "ea_score_card_present", "Score Card Present"),
1802 bf_boolean16(0x0080, "ea_need_bit_flag", "EA Need Bit Flag"),
1803 bf_boolean16(0x0100, "ea_write_privileges", "Write Privileges"),
1804 bf_boolean16(0x0200, "ea_read_privileges", "Read Privileges"),
1805 bf_boolean16(0x0400, "ea_delete_privileges", "Delete Privileges"),
1806 bf_boolean16(0x0800, "ea_system_ea_only", "System EA Only"),
1807 bf_boolean16(0x1000, "ea_write_in_progress", "Write In Progress"),
1809 EABytesWritten = uint32("ea_bytes_written", "Bytes Written")
1810 EACount = uint32("ea_count", "Count")
1811 EADataSize = uint32("ea_data_size", "Data Size")
1812 EADataSizeDuplicated = uint32("ea_data_size_duplicated", "Data Size Duplicated")
1813 EADuplicateCount = uint32("ea_duplicate_count", "Duplicate Count")
1814 EAErrorCodes = val_string16("ea_error_codes", "EA Error Codes", [
1815 [ 0x0000, "SUCCESSFUL" ],
1816 [ 0x00c8, "ERR_MISSING_EA_KEY" ],
1817 [ 0x00c9, "ERR_EA_NOT_FOUND" ],
1818 [ 0x00ca, "ERR_INVALID_EA_HANDLE_TYPE" ],
1819 [ 0x00cb, "ERR_EA_NO_KEY_NO_DATA" ],
1820 [ 0x00cc, "ERR_EA_NUMBER_MISMATCH" ],
1821 [ 0x00cd, "ERR_EXTENT_NUMBER_OUT_OF_RANGE" ],
1822 [ 0x00ce, "ERR_EA_BAD_DIR_NUM" ],
1823 [ 0x00cf, "ERR_INVALID_EA_HANDLE" ],
1824 [ 0x00d0, "ERR_EA_POSITION_OUT_OF_RANGE" ],
1825 [ 0x00d1, "ERR_EA_ACCESS_DENIED" ],
1826 [ 0x00d2, "ERR_DATA_PAGE_ODD_SIZE" ],
1827 [ 0x00d3, "ERR_EA_VOLUME_NOT_MOUNTED" ],
1828 [ 0x00d4, "ERR_BAD_PAGE_BOUNDARY" ],
1829 [ 0x00d5, "ERR_INSPECT_FAILURE" ],
1830 [ 0x00d6, "ERR_EA_ALREADY_CLAIMED" ],
1831 [ 0x00d7, "ERR_ODD_BUFFER_SIZE" ],
1832 [ 0x00d8, "ERR_NO_SCORECARDS" ],
1833 [ 0x00d9, "ERR_BAD_EDS_SIGNATURE" ],
1834 [ 0x00da, "ERR_EA_SPACE_LIMIT" ],
1835 [ 0x00db, "ERR_EA_KEY_CORRUPT" ],
1836 [ 0x00dc, "ERR_EA_KEY_LIMIT" ],
1837 [ 0x00dd, "ERR_TALLY_CORRUPT" ],
1839 EAFlags = val_string16("ea_flags", "EA Flags", [
1840 [ 0x0000, "Return EAHandle,Information Level 0" ],
1841 [ 0x0001, "Return NetWareHandle,Information Level 0" ],
1842 [ 0x0002, "Return Volume/Directory Number,Information Level 0" ],
1843 [ 0x0004, "Return EAHandle,Close Handle on Error,Information Level 0" ],
1844 [ 0x0005, "Return NetWareHandle,Close Handle on Error,Information Level 0" ],
1845 [ 0x0006, "Return Volume/Directory Number,Close Handle on Error,Information Level 0" ],
1846 [ 0x0010, "Return EAHandle,Information Level 1" ],
1847 [ 0x0011, "Return NetWareHandle,Information Level 1" ],
1848 [ 0x0012, "Return Volume/Directory Number,Information Level 1" ],
1849 [ 0x0014, "Return EAHandle,Close Handle on Error,Information Level 1" ],
1850 [ 0x0015, "Return NetWareHandle,Close Handle on Error,Information Level 1" ],
1851 [ 0x0016, "Return Volume/Directory Number,Close Handle on Error,Information Level 1" ],
1852 [ 0x0020, "Return EAHandle,Information Level 2" ],
1853 [ 0x0021, "Return NetWareHandle,Information Level 2" ],
1854 [ 0x0022, "Return Volume/Directory Number,Information Level 2" ],
1855 [ 0x0024, "Return EAHandle,Close Handle on Error,Information Level 2" ],
1856 [ 0x0025, "Return NetWareHandle,Close Handle on Error,Information Level 2" ],
1857 [ 0x0026, "Return Volume/Directory Number,Close Handle on Error,Information Level 2" ],
1858 [ 0x0030, "Return EAHandle,Information Level 3" ],
1859 [ 0x0031, "Return NetWareHandle,Information Level 3" ],
1860 [ 0x0032, "Return Volume/Directory Number,Information Level 3" ],
1861 [ 0x0034, "Return EAHandle,Close Handle on Error,Information Level 3" ],
1862 [ 0x0035, "Return NetWareHandle,Close Handle on Error,Information Level 3" ],
1863 [ 0x0036, "Return Volume/Directory Number,Close Handle on Error,Information Level 3" ],
1864 [ 0x0040, "Return EAHandle,Information Level 4" ],
1865 [ 0x0041, "Return NetWareHandle,Information Level 4" ],
1866 [ 0x0042, "Return Volume/Directory Number,Information Level 4" ],
1867 [ 0x0044, "Return EAHandle,Close Handle on Error,Information Level 4" ],
1868 [ 0x0045, "Return NetWareHandle,Close Handle on Error,Information Level 4" ],
1869 [ 0x0046, "Return Volume/Directory Number,Close Handle on Error,Information Level 4" ],
1870 [ 0x0050, "Return EAHandle,Information Level 5" ],
1871 [ 0x0051, "Return NetWareHandle,Information Level 5" ],
1872 [ 0x0052, "Return Volume/Directory Number,Information Level 5" ],
1873 [ 0x0054, "Return EAHandle,Close Handle on Error,Information Level 5" ],
1874 [ 0x0055, "Return NetWareHandle,Close Handle on Error,Information Level 5" ],
1875 [ 0x0056, "Return Volume/Directory Number,Close Handle on Error,Information Level 5" ],
1876 [ 0x0060, "Return EAHandle,Information Level 6" ],
1877 [ 0x0061, "Return NetWareHandle,Information Level 6" ],
1878 [ 0x0062, "Return Volume/Directory Number,Information Level 6" ],
1879 [ 0x0064, "Return EAHandle,Close Handle on Error,Information Level 6" ],
1880 [ 0x0065, "Return NetWareHandle,Close Handle on Error,Information Level 6" ],
1881 [ 0x0066, "Return Volume/Directory Number,Close Handle on Error,Information Level 6" ],
1882 [ 0x0070, "Return EAHandle,Information Level 7" ],
1883 [ 0x0071, "Return NetWareHandle,Information Level 7" ],
1884 [ 0x0072, "Return Volume/Directory Number,Information Level 7" ],
1885 [ 0x0074, "Return EAHandle,Close Handle on Error,Information Level 7" ],
1886 [ 0x0075, "Return NetWareHandle,Close Handle on Error,Information Level 7" ],
1887 [ 0x0076, "Return Volume/Directory Number,Close Handle on Error,Information Level 7" ],
1888 [ 0x0080, "Return EAHandle,Information Level 0,Immediate Close Handle" ],
1889 [ 0x0081, "Return NetWareHandle,Information Level 0,Immediate Close Handle" ],
1890 [ 0x0082, "Return Volume/Directory Number,Information Level 0,Immediate Close Handle" ],
1891 [ 0x0084, "Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1892 [ 0x0085, "Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1893 [ 0x0086, "Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1894 [ 0x0090, "Return EAHandle,Information Level 1,Immediate Close Handle" ],
1895 [ 0x0091, "Return NetWareHandle,Information Level 1,Immediate Close Handle" ],
1896 [ 0x0092, "Return Volume/Directory Number,Information Level 1,Immediate Close Handle" ],
1897 [ 0x0094, "Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1898 [ 0x0095, "Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1899 [ 0x0096, "Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1900 [ 0x00a0, "Return EAHandle,Information Level 2,Immediate Close Handle" ],
1901 [ 0x00a1, "Return NetWareHandle,Information Level 2,Immediate Close Handle" ],
1902 [ 0x00a2, "Return Volume/Directory Number,Information Level 2,Immediate Close Handle" ],
1903 [ 0x00a4, "Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1904 [ 0x00a5, "Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1905 [ 0x00a6, "Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1906 [ 0x00b0, "Return EAHandle,Information Level 3,Immediate Close Handle" ],
1907 [ 0x00b1, "Return NetWareHandle,Information Level 3,Immediate Close Handle" ],
1908 [ 0x00b2, "Return Volume/Directory Number,Information Level 3,Immediate Close Handle" ],
1909 [ 0x00b4, "Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1910 [ 0x00b5, "Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1911 [ 0x00b6, "Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1912 [ 0x00c0, "Return EAHandle,Information Level 4,Immediate Close Handle" ],
1913 [ 0x00c1, "Return NetWareHandle,Information Level 4,Immediate Close Handle" ],
1914 [ 0x00c2, "Return Volume/Directory Number,Information Level 4,Immediate Close Handle" ],
1915 [ 0x00c4, "Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1916 [ 0x00c5, "Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1917 [ 0x00c6, "Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1918 [ 0x00d0, "Return EAHandle,Information Level 5,Immediate Close Handle" ],
1919 [ 0x00d1, "Return NetWareHandle,Information Level 5,Immediate Close Handle" ],
1920 [ 0x00d2, "Return Volume/Directory Number,Information Level 5,Immediate Close Handle" ],
1921 [ 0x00d4, "Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1922 [ 0x00d5, "Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1923 [ 0x00d6, "Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1924 [ 0x00e0, "Return EAHandle,Information Level 6,Immediate Close Handle" ],
1925 [ 0x00e1, "Return NetWareHandle,Information Level 6,Immediate Close Handle" ],
1926 [ 0x00e2, "Return Volume/Directory Number,Information Level 6,Immediate Close Handle" ],
1927 [ 0x00e4, "Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1928 [ 0x00e5, "Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1929 [ 0x00e6, "Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1930 [ 0x00f0, "Return EAHandle,Information Level 7,Immediate Close Handle" ],
1931 [ 0x00f1, "Return NetWareHandle,Information Level 7,Immediate Close Handle" ],
1932 [ 0x00f2, "Return Volume/Directory Number,Information Level 7,Immediate Close Handle" ],
1933 [ 0x00f4, "Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1934 [ 0x00f5, "Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1935 [ 0x00f6, "Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1937 EAHandle = uint32("ea_handle", "EA Handle")
1938 EAHandle.Display("BASE_HEX")
1939 EAHandleOrNetWareHandleOrVolume = uint32("ea_handle_or_netware_handle_or_volume", "EAHandle or NetWare Handle or Volume (see EAFlags)")
1940 EAHandleOrNetWareHandleOrVolume.Display("BASE_HEX")
1941 EAKey = nstring16("ea_key", "EA Key")
1942 EAKeySize = uint32("ea_key_size", "Key Size")
1943 EAKeySizeDuplicated = uint32("ea_key_size_duplicated", "Key Size Duplicated")
1944 EAValue = nstring16("ea_value", "EA Value")
1945 EAValueRep = fw_string("ea_value_rep", "EA Value", 1)
1946 EAValueLength = uint16("ea_value_length", "Value Length")
1947 EchoSocket = uint16("echo_socket", "Echo Socket")
1948 EchoSocket.Display('BASE_HEX')
1949 EffectiveRights = bitfield8("effective_rights", "Effective Rights", [
1950 bf_boolean8(0x01, "effective_rights_read", "Read Rights"),
1951 bf_boolean8(0x02, "effective_rights_write", "Write Rights"),
1952 bf_boolean8(0x04, "effective_rights_open", "Open Rights"),
1953 bf_boolean8(0x08, "effective_rights_create", "Create Rights"),
1954 bf_boolean8(0x10, "effective_rights_delete", "Delete Rights"),
1955 bf_boolean8(0x20, "effective_rights_parental", "Parental Rights"),
1956 bf_boolean8(0x40, "effective_rights_search", "Search Rights"),
1957 bf_boolean8(0x80, "effective_rights_modify", "Modify Rights"),
1959 EnumInfoMask = bitfield8("enum_info_mask", "Return Information Mask", [
1960 bf_boolean8(0x01, "enum_info_transport", "Transport Information"),
1961 bf_boolean8(0x02, "enum_info_time", "Time Information"),
1962 bf_boolean8(0x04, "enum_info_name", "Name Information"),
1963 bf_boolean8(0x08, "enum_info_lock", "Lock Information"),
1964 bf_boolean8(0x10, "enum_info_print", "Print Information"),
1965 bf_boolean8(0x20, "enum_info_stats", "Statistical Information"),
1966 bf_boolean8(0x40, "enum_info_account", "Accounting Information"),
1967 bf_boolean8(0x80, "enum_info_auth", "Authentication Information"),
1970 eventOffset = bytes("event_offset", "Event Offset", 8)
1971 eventOffset.Display("BASE_HEX")
1972 eventTime = uint32("event_time", "Event Time")
1973 eventTime.Display("BASE_HEX")
1974 ExpirationTime = uint32("expiration_time", "Expiration Time")
1975 ExpirationTime.Display('BASE_HEX')
1976 ExtAttrDataSize = uint32("ext_attr_data_size", "Extended Attributes Data Size")
1977 ExtAttrCount = uint32("ext_attr_count", "Extended Attributes Count")
1978 ExtAttrKeySize = uint32("ext_attr_key_size", "Extended Attributes Key Size")
1979 ExtendedAttributesDefined = uint32("extended_attributes_defined", "Extended Attributes Defined")
1980 ExtendedAttributeExtantsUsed = uint32("extended_attribute_extants_used", "Extended Attribute Extants Used")
1981 ExtendedInfo = bitfield16("ext_info", "Extended Return Information", [
1982 bf_boolean16(0x0001, "ext_info_update", "Update"),
1983 bf_boolean16(0x0002, "ext_info_dos_name", "DOS Name"),
1984 bf_boolean16(0x0004, "ext_info_flush", "Flush"),
1985 bf_boolean16(0x0008, "ext_info_parental", "Parental"),
1986 bf_boolean16(0x0010, "ext_info_mac_finder", "MAC Finder"),
1987 bf_boolean16(0x0020, "ext_info_sibling", "Sibling"),
1988 bf_boolean16(0x0040, "ext_info_effective", "Effective"),
1989 bf_boolean16(0x0080, "ext_info_mac_date", "MAC Date"),
1990 bf_boolean16(0x0100, "ext_info_access", "Last Access"),
1991 bf_boolean16(0x0400, "ext_info_64_bit_fs", "64 Bit File Sizes"),
1992 bf_boolean16(0x8000, "ext_info_newstyle", "New Style"),
1994 ExtRouterActiveFlag = boolean8("ext_router_active_flag", "External Router Active Flag")
1996 FailedAllocReqCnt = uint32("failed_alloc_req", "Failed Alloc Request Count")
1997 FatalFATWriteErrors = uint16("fatal_fat_write_errors", "Fatal FAT Write Errors")
1998 FATScanErrors = uint16("fat_scan_errors", "FAT Scan Errors")
1999 FATWriteErrors = uint16("fat_write_errors", "FAT Write Errors")
2000 FieldsLenTable = bytes("fields_len_table", "Fields Len Table", 32)
2001 FileCount = uint16("file_count", "File Count")
2002 FileDate = uint16("file_date", "File Date")
2004 FileDirWindow = uint16("file_dir_win", "File/Dir Window")
2005 FileDirWindow.Display("BASE_HEX")
2006 FileExecuteType = uint8("file_execute_type", "File Execute Type")
2007 FileExtendedAttributes = val_string8("file_ext_attr", "File Extended Attributes", [
2008 [ 0x00, "Search On All Read Only Opens" ],
2009 [ 0x01, "Search On Read Only Opens With No Path" ],
2010 [ 0x02, "Shell Default Search Mode" ],
2011 [ 0x03, "Search On All Opens With No Path" ],
2012 [ 0x04, "Do Not Search" ],
2013 [ 0x05, "Reserved" ],
2014 [ 0x06, "Search On All Opens" ],
2015 [ 0x07, "Reserved" ],
2016 [ 0x08, "Search On All Read Only Opens/Indexed" ],
2017 [ 0x09, "Search On Read Only Opens With No Path/Indexed" ],
2018 [ 0x0a, "Shell Default Search Mode/Indexed" ],
2019 [ 0x0b, "Search On All Opens With No Path/Indexed" ],
2020 [ 0x0c, "Do Not Search/Indexed" ],
2021 [ 0x0d, "Indexed" ],
2022 [ 0x0e, "Search On All Opens/Indexed" ],
2023 [ 0x0f, "Indexed" ],
2024 [ 0x10, "Search On All Read Only Opens/Transactional" ],
2025 [ 0x11, "Search On Read Only Opens With No Path/Transactional" ],
2026 [ 0x12, "Shell Default Search Mode/Transactional" ],
2027 [ 0x13, "Search On All Opens With No Path/Transactional" ],
2028 [ 0x14, "Do Not Search/Transactional" ],
2029 [ 0x15, "Transactional" ],
2030 [ 0x16, "Search On All Opens/Transactional" ],
2031 [ 0x17, "Transactional" ],
2032 [ 0x18, "Search On All Read Only Opens/Indexed/Transactional" ],
2033 [ 0x19, "Search On Read Only Opens With No Path/Indexed/Transactional" ],
2034 [ 0x1a, "Shell Default Search Mode/Indexed/Transactional" ],
2035 [ 0x1b, "Search On All Opens With No Path/Indexed/Transactional" ],
2036 [ 0x1c, "Do Not Search/Indexed/Transactional" ],
2037 [ 0x1d, "Indexed/Transactional" ],
2038 [ 0x1e, "Search On All Opens/Indexed/Transactional" ],
2039 [ 0x1f, "Indexed/Transactional" ],
2040 [ 0x40, "Search On All Read Only Opens/Read Audit" ],
2041 [ 0x41, "Search On Read Only Opens With No Path/Read Audit" ],
2042 [ 0x42, "Shell Default Search Mode/Read Audit" ],
2043 [ 0x43, "Search On All Opens With No Path/Read Audit" ],
2044 [ 0x44, "Do Not Search/Read Audit" ],
2045 [ 0x45, "Read Audit" ],
2046 [ 0x46, "Search On All Opens/Read Audit" ],
2047 [ 0x47, "Read Audit" ],
2048 [ 0x48, "Search On All Read Only Opens/Indexed/Read Audit" ],
2049 [ 0x49, "Search On Read Only Opens With No Path/Indexed/Read Audit" ],
2050 [ 0x4a, "Shell Default Search Mode/Indexed/Read Audit" ],
2051 [ 0x4b, "Search On All Opens With No Path/Indexed/Read Audit" ],
2052 [ 0x4c, "Do Not Search/Indexed/Read Audit" ],
2053 [ 0x4d, "Indexed/Read Audit" ],
2054 [ 0x4e, "Search On All Opens/Indexed/Read Audit" ],
2055 [ 0x4f, "Indexed/Read Audit" ],
2056 [ 0x50, "Search On All Read Only Opens/Transactional/Read Audit" ],
2057 [ 0x51, "Search On Read Only Opens With No Path/Transactional/Read Audit" ],
2058 [ 0x52, "Shell Default Search Mode/Transactional/Read Audit" ],
2059 [ 0x53, "Search On All Opens With No Path/Transactional/Read Audit" ],
2060 [ 0x54, "Do Not Search/Transactional/Read Audit" ],
2061 [ 0x55, "Transactional/Read Audit" ],
2062 [ 0x56, "Search On All Opens/Transactional/Read Audit" ],
2063 [ 0x57, "Transactional/Read Audit" ],
2064 [ 0x58, "Search On All Read Only Opens/Indexed/Transactional/Read Audit" ],
2065 [ 0x59, "Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit" ],
2066 [ 0x5a, "Shell Default Search Mode/Indexed/Transactional/Read Audit" ],
2067 [ 0x5b, "Search On All Opens With No Path/Indexed/Transactional/Read Audit" ],
2068 [ 0x5c, "Do Not Search/Indexed/Transactional/Read Audit" ],
2069 [ 0x5d, "Indexed/Transactional/Read Audit" ],
2070 [ 0x5e, "Search On All Opens/Indexed/Transactional/Read Audit" ],
2071 [ 0x5f, "Indexed/Transactional/Read Audit" ],
2072 [ 0x80, "Search On All Read Only Opens/Write Audit" ],
2073 [ 0x81, "Search On Read Only Opens With No Path/Write Audit" ],
2074 [ 0x82, "Shell Default Search Mode/Write Audit" ],
2075 [ 0x83, "Search On All Opens With No Path/Write Audit" ],
2076 [ 0x84, "Do Not Search/Write Audit" ],
2077 [ 0x85, "Write Audit" ],
2078 [ 0x86, "Search On All Opens/Write Audit" ],
2079 [ 0x87, "Write Audit" ],
2080 [ 0x88, "Search On All Read Only Opens/Indexed/Write Audit" ],
2081 [ 0x89, "Search On Read Only Opens With No Path/Indexed/Write Audit" ],
2082 [ 0x8a, "Shell Default Search Mode/Indexed/Write Audit" ],
2083 [ 0x8b, "Search On All Opens With No Path/Indexed/Write Audit" ],
2084 [ 0x8c, "Do Not Search/Indexed/Write Audit" ],
2085 [ 0x8d, "Indexed/Write Audit" ],
2086 [ 0x8e, "Search On All Opens/Indexed/Write Audit" ],
2087 [ 0x8f, "Indexed/Write Audit" ],
2088 [ 0x90, "Search On All Read Only Opens/Transactional/Write Audit" ],
2089 [ 0x91, "Search On Read Only Opens With No Path/Transactional/Write Audit" ],
2090 [ 0x92, "Shell Default Search Mode/Transactional/Write Audit" ],
2091 [ 0x93, "Search On All Opens With No Path/Transactional/Write Audit" ],
2092 [ 0x94, "Do Not Search/Transactional/Write Audit" ],
2093 [ 0x95, "Transactional/Write Audit" ],
2094 [ 0x96, "Search On All Opens/Transactional/Write Audit" ],
2095 [ 0x97, "Transactional/Write Audit" ],
2096 [ 0x98, "Search On All Read Only Opens/Indexed/Transactional/Write Audit" ],
2097 [ 0x99, "Search On Read Only Opens With No Path/Indexed/Transactional/Write Audit" ],
2098 [ 0x9a, "Shell Default Search Mode/Indexed/Transactional/Write Audit" ],
2099 [ 0x9b, "Search On All Opens With No Path/Indexed/Transactional/Write Audit" ],
2100 [ 0x9c, "Do Not Search/Indexed/Transactional/Write Audit" ],
2101 [ 0x9d, "Indexed/Transactional/Write Audit" ],
2102 [ 0x9e, "Search On All Opens/Indexed/Transactional/Write Audit" ],
2103 [ 0x9f, "Indexed/Transactional/Write Audit" ],
2104 [ 0xa0, "Search On All Read Only Opens/Read Audit/Write Audit" ],
2105 [ 0xa1, "Search On Read Only Opens With No Path/Read Audit/Write Audit" ],
2106 [ 0xa2, "Shell Default Search Mode/Read Audit/Write Audit" ],
2107 [ 0xa3, "Search On All Opens With No Path/Read Audit/Write Audit" ],
2108 [ 0xa4, "Do Not Search/Read Audit/Write Audit" ],
2109 [ 0xa5, "Read Audit/Write Audit" ],
2110 [ 0xa6, "Search On All Opens/Read Audit/Write Audit" ],
2111 [ 0xa7, "Read Audit/Write Audit" ],
2112 [ 0xa8, "Search On All Read Only Opens/Indexed/Read Audit/Write Audit" ],
2113 [ 0xa9, "Search On Read Only Opens With No Path/Indexed/Read Audit/Write Audit" ],
2114 [ 0xaa, "Shell Default Search Mode/Indexed/Read Audit/Write Audit" ],
2115 [ 0xab, "Search On All Opens With No Path/Indexed/Read Audit/Write Audit" ],
2116 [ 0xac, "Do Not Search/Indexed/Read Audit/Write Audit" ],
2117 [ 0xad, "Indexed/Read Audit/Write Audit" ],
2118 [ 0xae, "Search On All Opens/Indexed/Read Audit/Write Audit" ],
2119 [ 0xaf, "Indexed/Read Audit/Write Audit" ],
2120 [ 0xb0, "Search On All Read Only Opens/Transactional/Read Audit/Write Audit" ],
2121 [ 0xb1, "Search On Read Only Opens With No Path/Transactional/Read Audit/Write Audit" ],
2122 [ 0xb2, "Shell Default Search Mode/Transactional/Read Audit/Write Audit" ],
2123 [ 0xb3, "Search On All Opens With No Path/Transactional/Read Audit/Write Audit" ],
2124 [ 0xb4, "Do Not Search/Transactional/Read Audit/Write Audit" ],
2125 [ 0xb5, "Transactional/Read Audit/Write Audit" ],
2126 [ 0xb6, "Search On All Opens/Transactional/Read Audit/Write Audit" ],
2127 [ 0xb7, "Transactional/Read Audit/Write Audit" ],
2128 [ 0xb8, "Search On All Read Only Opens/Indexed/Transactional/Read Audit/Write Audit" ],
2129 [ 0xb9, "Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" ],
2130 [ 0xba, "Shell Default Search Mode/Indexed/Transactional/Read Audit/Write Audit" ],
2131 [ 0xbb, "Search On All Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" ],
2132 [ 0xbc, "Do Not Search/Indexed/Transactional/Read Audit/Write Audit" ],
2133 [ 0xbd, "Indexed/Transactional/Read Audit/Write Audit" ],
2134 [ 0xbe, "Search On All Opens/Indexed/Transactional/Read Audit/Write Audit" ],
2135 [ 0xbf, "Indexed/Transactional/Read Audit/Write Audit" ],
2137 fileFlags = uint32("file_flags", "File Flags")
2138 FileHandle = bytes("file_handle", "File Handle", 6)
2139 FileLimbo = uint32("file_limbo", "File Limbo")
2140 FileListCount = uint32("file_list_count", "File List Count")
2141 FileLock = val_string8("file_lock", "File Lock", [
2142 [ 0x00, "Not Locked" ],
2143 [ 0xfe, "Locked by file lock" ],
2144 [ 0xff, "Unknown" ],
2146 FileLockCount = uint16("file_lock_count", "File Lock Count")
2147 FileMode = uint8("file_mode", "File Mode")
2148 FileName = nstring8("file_name", "Filename")
2149 FileName12 = fw_string("file_name_12", "Filename", 12)
2150 FileName14 = fw_string("file_name_14", "Filename", 14)
2151 FileNameLen = uint8("file_name_len", "Filename Length")
2152 FileOffset = uint32("file_offset", "File Offset")
2153 FilePath = nstring8("file_path", "File Path")
2154 FileSize = uint32("file_size", "File Size", BE)
2155 FileSystemID = uint8("file_system_id", "File System ID")
2156 FileTime = uint16("file_time", "File Time")
2158 FileWriteFlags = val_string8("file_write_flags", "File Write Flags", [
2159 [ 0x01, "Writing" ],
2160 [ 0x02, "Write aborted" ],
2162 FileWriteState = val_string8("file_write_state", "File Write State", [
2163 [ 0x00, "Not Writing" ],
2164 [ 0x01, "Write in Progress" ],
2165 [ 0x02, "Write Being Stopped" ],
2167 Filler = uint8("filler", "Filler")
2168 FinderAttr = bitfield16("finder_attr", "Finder Info Attributes", [
2169 bf_boolean16(0x0001, "finder_attr_desktop", "Object on Desktop"),
2170 bf_boolean16(0x2000, "finder_attr_invisible", "Object is Invisible"),
2171 bf_boolean16(0x4000, "finder_attr_bundle", "Object Has Bundle"),
2173 FixedBitMask = uint32("fixed_bit_mask", "Fixed Bit Mask")
2174 FixedBitsDefined = uint16("fixed_bits_defined", "Fixed Bits Defined")
2175 FlagBits = uint8("flag_bits", "Flag Bits")
2176 Flags = uint8("flags", "Flags")
2177 FlagsDef = uint16("flags_def", "Flags")
2178 FlushTime = uint32("flush_time", "Flush Time")
2179 FolderFlag = val_string8("folder_flag", "Folder Flag", [
2180 [ 0x00, "Not a Folder" ],
2183 ForkCount = uint8("fork_count", "Fork Count")
2184 ForkIndicator = val_string8("fork_indicator", "Fork Indicator", [
2185 [ 0x00, "Data Fork" ],
2186 [ 0x01, "Resource Fork" ],
2188 ForceFlag = val_string8("force_flag", "Force Server Down Flag", [
2189 [ 0x00, "Down Server if No Files Are Open" ],
2190 [ 0xff, "Down Server Immediately, Auto-Close Open Files" ],
2192 ForgedDetachedRequests = uint16("forged_detached_requests", "Forged Detached Requests")
2193 FormType = uint16( "form_type", "Form Type" )
2194 FormTypeCnt = uint32("form_type_count", "Form Types Count")
2195 FoundSomeMem = uint32("found_some_mem", "Found Some Memory")
2196 FractionalSeconds = uint32("fractional_time", "Fractional Time in Seconds")
2197 FraggerHandle = uint32("fragger_handle", "Fragment Handle")
2198 FraggerHandle.Display('BASE_HEX')
2199 FragmentWriteOccurred = uint16("fragment_write_occurred", "Fragment Write Occurred")
2200 FragSize = uint32("frag_size", "Fragment Size")
2201 FreeableLimboSectors = uint32("freeable_limbo_sectors", "Freeable Limbo Sectors")
2202 FreeBlocks = uint32("free_blocks", "Free Blocks")
2203 FreedClusters = uint32("freed_clusters", "Freed Clusters")
2204 FreeDirectoryEntries = uint16("free_directory_entries", "Free Directory Entries")
2205 FSEngineFlag = boolean8("fs_engine_flag", "FS Engine Flag")
2206 FullName = fw_string("full_name", "Full Name", 39)
2208 GetSetFlag = val_string8("get_set_flag", "Get Set Flag", [
2209 [ 0x00, "Get the default support module ID" ],
2210 [ 0x01, "Set the default support module ID" ],
2212 GUID = bytes("guid", "GUID", 16)
2213 GUID.Display("BASE_HEX")
2215 HandleFlag = val_string8("handle_flag", "Handle Flag", [
2216 [ 0x00, "Short Directory Handle" ],
2217 [ 0x01, "Directory Base" ],
2218 [ 0xFF, "No Handle Present" ],
2220 HandleInfoLevel = val_string8("handle_info_level", "Handle Info Level", [
2221 [ 0x00, "Get Limited Information from a File Handle" ],
2222 [ 0x01, "Get Limited Information from a File Handle Using a Name Space" ],
2223 [ 0x02, "Get Information from a File Handle" ],
2224 [ 0x03, "Get Information from a Directory Handle" ],
2225 [ 0x04, "Get Complete Information from a Directory Handle" ],
2226 [ 0x05, "Get Complete Information from a File Handle" ],
2228 HeldBytesRead = bytes("held_bytes_read", "Held Bytes Read", 6)
2229 HeldBytesWritten = bytes("held_bytes_write", "Held Bytes Written", 6)
2230 HeldConnectTimeInMinutes = uint32("held_conn_time", "Held Connect Time in Minutes")
2231 HeldRequests = uint32("user_info_held_req", "Held Requests")
2232 HoldAmount = uint32("hold_amount", "Hold Amount")
2233 HoldCancelAmount = uint32("hold_cancel_amount", "Hold Cancel Amount")
2234 HolderID = uint32("holder_id", "Holder ID")
2235 HolderID.Display("BASE_HEX")
2236 HoldTime = uint32("hold_time", "Hold Time")
2237 HopsToNet = uint16("hops_to_net", "Hop Count")
2238 HorizLocation = uint16("horiz_location", "Horizontal Location")
2239 HostAddress = bytes("host_address", "Host Address", 6)
2240 HotFixBlocksAvailable = uint16("hot_fix_blocks_available", "Hot Fix Blocks Available")
2241 HotFixDisabled = val_string8("hot_fix_disabled", "Hot Fix Disabled", [
2242 [ 0x00, "Enabled" ],
2243 [ 0x01, "Disabled" ],
2245 HotFixTableSize = uint16("hot_fix_table_size", "Hot Fix Table Size")
2246 HotFixTableStart = uint32("hot_fix_table_start", "Hot Fix Table Start")
2247 Hour = uint8("s_hour", "Hour")
2248 HugeBitMask = uint32("huge_bit_mask", "Huge Bit Mask")
2249 HugeBitsDefined = uint16("huge_bits_defined", "Huge Bits Defined")
2250 HugeData = nstring8("huge_data", "Huge Data")
2251 HugeDataUsed = uint32("huge_data_used", "Huge Data Used")
2252 HugeStateInfo = bytes("huge_state_info", "Huge State Info", 16)
2254 IdentificationNumber = uint32("identification_number", "Identification Number")
2255 IgnoredRxPkts = uint32("ignored_rx_pkts", "Ignored Receive Packets")
2256 IncomingPacketDiscardedNoDGroup = uint16("incoming_packet_discarded_no_dgroup", "Incoming Packet Discarded No DGroup")
2257 InfoCount = uint16("info_count", "Info Count")
2258 InfoFlags = bitfield32("info_flags", "Info Flags", [
2259 bf_boolean32(0x10000000, "info_flags_security", "Return Object Security"),
2260 bf_boolean32(0x20000000, "info_flags_flags", "Return Object Flags"),
2261 bf_boolean32(0x40000000, "info_flags_type", "Return Object Type"),
2262 bf_boolean32(0x80000000, "info_flags_name", "Return Object Name"),
2264 InfoLevelNumber = val_string8("info_level_num", "Information Level Number", [
2265 [ 0x01, "Volume Information Definition" ],
2266 [ 0x02, "Volume Information 2 Definition" ],
2268 InfoMask = bitfield32("info_mask", "Information Mask", [
2269 bf_boolean32(0x00000001, "info_flags_dos_time", "DOS Time"),
2270 bf_boolean32(0x00000002, "info_flags_ref_count", "Reference Count"),
2271 bf_boolean32(0x00000004, "info_flags_dos_attr", "DOS Attributes"),
2272 bf_boolean32(0x00000008, "info_flags_ids", "ID's"),
2273 bf_boolean32(0x00000010, "info_flags_ds_sizes", "Data Stream Sizes"),
2274 bf_boolean32(0x00000020, "info_flags_ns_attr", "Name Space Attributes"),
2275 bf_boolean32(0x00000040, "info_flags_ea_present", "EA Present Flag"),
2276 bf_boolean32(0x00000080, "info_flags_all_attr", "All Attributes"),
2277 bf_boolean32(0x00000100, "info_flags_all_dirbase_num", "All Directory Base Numbers"),
2278 bf_boolean32(0x00000200, "info_flags_max_access_mask", "Maximum Access Mask"),
2279 bf_boolean32(0x00000400, "info_flags_flush_time", "Flush Time"),
2280 bf_boolean32(0x00000800, "info_flags_prnt_base_id", "Parent Base ID"),
2281 bf_boolean32(0x00001000, "info_flags_mac_finder", "Mac Finder Information"),
2282 bf_boolean32(0x00002000, "info_flags_sibling_cnt", "Sibling Count"),
2283 bf_boolean32(0x00004000, "info_flags_effect_rights", "Effective Rights"),
2284 bf_boolean32(0x00008000, "info_flags_mac_time", "Mac Time"),
2285 bf_boolean32(0x20000000, "info_mask_dosname", "DOS Name"),
2286 bf_boolean32(0x40000000, "info_mask_c_name_space", "Creator Name Space & Name"),
2287 bf_boolean32(0x80000000, "info_mask_name", "Name"),
2289 InheritedRightsMask = bitfield16("inherited_rights_mask", "Inherited Rights Mask", [
2290 bf_boolean16(0x0001, "inh_rights_read", "Read Rights"),
2291 bf_boolean16(0x0002, "inh_rights_write", "Write Rights"),
2292 bf_boolean16(0x0004, "inh_rights_open", "Open Rights"),
2293 bf_boolean16(0x0008, "inh_rights_create", "Create Rights"),
2294 bf_boolean16(0x0010, "inh_rights_delete", "Delete Rights"),
2295 bf_boolean16(0x0020, "inh_rights_parent", "Change Access"),
2296 bf_boolean16(0x0040, "inh_rights_search", "See Files Flag"),
2297 bf_boolean16(0x0080, "inh_rights_modify", "Modify Rights"),
2298 bf_boolean16(0x0100, "inh_rights_supervisor", "Supervisor"),
2300 InheritanceRevokeMask = bitfield16("inheritance_revoke_mask", "Revoke Rights Mask", [
2301 bf_boolean16(0x0001, "inh_revoke_read", "Read Rights"),
2302 bf_boolean16(0x0002, "inh_revoke_write", "Write Rights"),
2303 bf_boolean16(0x0004, "inh_revoke_open", "Open Rights"),
2304 bf_boolean16(0x0008, "inh_revoke_create", "Create Rights"),
2305 bf_boolean16(0x0010, "inh_revoke_delete", "Delete Rights"),
2306 bf_boolean16(0x0020, "inh_revoke_parent", "Change Access"),
2307 bf_boolean16(0x0040, "inh_revoke_search", "See Files Flag"),
2308 bf_boolean16(0x0080, "inh_revoke_modify", "Modify Rights"),
2309 bf_boolean16(0x0100, "inh_revoke_supervisor", "Supervisor"),
2311 InitialSemaphoreValue = uint8("initial_semaphore_value", "Initial Semaphore Value")
2312 InspectSize = uint32("inspect_size", "Inspect Size")
2313 InternetBridgeVersion = uint8("internet_bridge_version", "Internet Bridge Version")
2314 InterruptNumbersUsed = uint32("interrupt_numbers_used", "Interrupt Numbers Used")
2315 InUse = uint32("in_use", "Bytes in Use")
2316 IOAddressesUsed = bytes("io_addresses_used", "IO Addresses Used", 8)
2317 IOErrorCount = uint16("io_error_count", "IO Error Count")
2318 IOEngineFlag = boolean8("io_engine_flag", "IO Engine Flag")
2319 IPXNotMyNetwork = uint16("ipx_not_my_network", "IPX Not My Network")
2320 ItemsChanged = uint32("items_changed", "Items Changed")
2321 ItemsChecked = uint32("items_checked", "Items Checked")
2322 ItemsCount = uint32("items_count", "Items Count")
2323 itemsInList = uint32("items_in_list", "Items in List")
2324 ItemsInPacket = uint32("items_in_packet", "Items in Packet")
2326 JobControlFlags = bitfield8("job_control_flags", "Job Control Flags", [
2327 bf_boolean8(0x08, "job_control_job_recovery", "Job Recovery"),
2328 bf_boolean8(0x10, "job_control_reservice", "ReService Job"),
2329 bf_boolean8(0x20, "job_control_file_open", "File Open"),
2330 bf_boolean8(0x40, "job_control_user_hold", "User Hold"),
2331 bf_boolean8(0x80, "job_control_operator_hold", "Operator Hold"),
2334 JobControlFlagsWord = bitfield16("job_control_flags_word", "Job Control Flags", [
2335 bf_boolean16(0x0008, "job_control1_job_recovery", "Job Recovery"),
2336 bf_boolean16(0x0010, "job_control1_reservice", "ReService Job"),
2337 bf_boolean16(0x0020, "job_control1_file_open", "File Open"),
2338 bf_boolean16(0x0040, "job_control1_user_hold", "User Hold"),
2339 bf_boolean16(0x0080, "job_control1_operator_hold", "Operator Hold"),
2342 JobCount = uint32("job_count", "Job Count")
2343 JobFileHandle = bytes("job_file_handle", "Job File Handle", 6)
2344 JobFileHandleLong = uint32("job_file_handle_long", "Job File Handle")
2345 JobFileHandleLong.Display("BASE_HEX")
2346 JobFileName = fw_string("job_file_name", "Job File Name", 14)
2347 JobPosition = uint8("job_position", "Job Position")
2348 JobPositionWord = uint16("job_position_word", "Job Position")
2349 JobNumber = uint16("job_number", "Job Number", BE )
2350 JobNumberLong = uint32("job_number_long", "Job Number", BE )
2351 JobNumberList = uint32("job_number_list", "Job Number List")
2352 JobType = uint16("job_type", "Job Type", BE )
2354 LANCustomVariablesCount = uint32("lan_cust_var_count", "LAN Custom Variables Count")
2355 LANdriverBoardInstance = uint16("lan_drv_bd_inst", "LAN Driver Board Instance")
2356 LANdriverBoardNumber = uint16("lan_drv_bd_num", "LAN Driver Board Number")
2357 LANdriverCardID = uint16("lan_drv_card_id", "LAN Driver Card ID")
2358 LANdriverCardName = fw_string("lan_drv_card_name", "LAN Driver Card Name", 28)
2359 LANdriverCFG_MajorVersion = uint8("lan_dvr_cfg_major_vrs", "LAN Driver Config - Major Version")
2360 LANdriverCFG_MinorVersion = uint8("lan_dvr_cfg_minor_vrs", "LAN Driver Config - Minor Version")
2361 LANdriverDMAUsage1 = uint8("lan_drv_dma_usage1", "Primary DMA Channel")
2362 LANdriverDMAUsage2 = uint8("lan_drv_dma_usage2", "Secondary DMA Channel")
2363 LANdriverFlags = uint16("lan_drv_flags", "LAN Driver Flags")
2364 LANdriverFlags.Display("BASE_HEX")
2365 LANdriverInterrupt1 = uint8("lan_drv_interrupt1", "Primary Interrupt Vector")
2366 LANdriverInterrupt2 = uint8("lan_drv_interrupt2", "Secondary Interrupt Vector")
2367 LANdriverIOPortsAndRanges1 = uint16("lan_drv_io_ports_and_ranges_1", "Primary Base I/O Port")
2368 LANdriverIOPortsAndRanges2 = uint16("lan_drv_io_ports_and_ranges_2", "Number of I/O Ports")
2369 LANdriverIOPortsAndRanges3 = uint16("lan_drv_io_ports_and_ranges_3", "Secondary Base I/O Port")
2370 LANdriverIOPortsAndRanges4 = uint16("lan_drv_io_ports_and_ranges_4", "Number of I/O Ports")
2371 LANdriverIOReserved = bytes("lan_drv_io_reserved", "LAN Driver IO Reserved", 14)
2372 LANdriverLineSpeed = uint16("lan_drv_line_speed", "LAN Driver Line Speed")
2373 LANdriverLink = uint32("lan_drv_link", "LAN Driver Link")
2374 LANdriverLogicalName = bytes("lan_drv_log_name", "LAN Driver Logical Name", 18)
2375 LANdriverMajorVersion = uint8("lan_drv_major_ver", "LAN Driver Major Version")
2376 LANdriverMaximumSize = uint32("lan_drv_max_size", "LAN Driver Maximum Size")
2377 LANdriverMaxRecvSize = uint32("lan_drv_max_rcv_size", "LAN Driver Maximum Receive Size")
2378 LANdriverMediaID = uint16("lan_drv_media_id", "LAN Driver Media ID")
2379 LANdriverMediaType = fw_string("lan_drv_media_type", "LAN Driver Media Type", 40)
2380 LANdriverMemoryDecode0 = uint32("lan_drv_mem_decode_0", "LAN Driver Memory Decode 0")
2381 LANdriverMemoryDecode1 = uint32("lan_drv_mem_decode_1", "LAN Driver Memory Decode 1")
2382 LANdriverMemoryLength0 = uint16("lan_drv_mem_length_0", "LAN Driver Memory Length 0")
2383 LANdriverMemoryLength1 = uint16("lan_drv_mem_length_1", "LAN Driver Memory Length 1")
2384 LANdriverMinorVersion = uint8("lan_drv_minor_ver", "LAN Driver Minor Version")
2385 LANdriverModeFlags = val_string8("lan_dvr_mode_flags", "LAN Driver Mode Flags", [
2386 [0x80, "Canonical Address" ],
2387 [0x81, "Canonical Address" ],
2388 [0x82, "Canonical Address" ],
2389 [0x83, "Canonical Address" ],
2390 [0x84, "Canonical Address" ],
2391 [0x85, "Canonical Address" ],
2392 [0x86, "Canonical Address" ],
2393 [0x87, "Canonical Address" ],
2394 [0x88, "Canonical Address" ],
2395 [0x89, "Canonical Address" ],
2396 [0x8a, "Canonical Address" ],
2397 [0x8b, "Canonical Address" ],
2398 [0x8c, "Canonical Address" ],
2399 [0x8d, "Canonical Address" ],
2400 [0x8e, "Canonical Address" ],
2401 [0x8f, "Canonical Address" ],
2402 [0x90, "Canonical Address" ],
2403 [0x91, "Canonical Address" ],
2404 [0x92, "Canonical Address" ],
2405 [0x93, "Canonical Address" ],
2406 [0x94, "Canonical Address" ],
2407 [0x95, "Canonical Address" ],
2408 [0x96, "Canonical Address" ],
2409 [0x97, "Canonical Address" ],
2410 [0x98, "Canonical Address" ],
2411 [0x99, "Canonical Address" ],
2412 [0x9a, "Canonical Address" ],
2413 [0x9b, "Canonical Address" ],
2414 [0x9c, "Canonical Address" ],
2415 [0x9d, "Canonical Address" ],
2416 [0x9e, "Canonical Address" ],
2417 [0x9f, "Canonical Address" ],
2418 [0xa0, "Canonical Address" ],
2419 [0xa1, "Canonical Address" ],
2420 [0xa2, "Canonical Address" ],
2421 [0xa3, "Canonical Address" ],
2422 [0xa4, "Canonical Address" ],
2423 [0xa5, "Canonical Address" ],
2424 [0xa6, "Canonical Address" ],
2425 [0xa7, "Canonical Address" ],
2426 [0xa8, "Canonical Address" ],
2427 [0xa9, "Canonical Address" ],
2428 [0xaa, "Canonical Address" ],
2429 [0xab, "Canonical Address" ],
2430 [0xac, "Canonical Address" ],
2431 [0xad, "Canonical Address" ],
2432 [0xae, "Canonical Address" ],
2433 [0xaf, "Canonical Address" ],
2434 [0xb0, "Canonical Address" ],
2435 [0xb1, "Canonical Address" ],
2436 [0xb2, "Canonical Address" ],
2437 [0xb3, "Canonical Address" ],
2438 [0xb4, "Canonical Address" ],
2439 [0xb5, "Canonical Address" ],
2440 [0xb6, "Canonical Address" ],
2441 [0xb7, "Canonical Address" ],
2442 [0xb8, "Canonical Address" ],
2443 [0xb9, "Canonical Address" ],
2444 [0xba, "Canonical Address" ],
2445 [0xbb, "Canonical Address" ],
2446 [0xbc, "Canonical Address" ],
2447 [0xbd, "Canonical Address" ],
2448 [0xbe, "Canonical Address" ],
2449 [0xbf, "Canonical Address" ],
2450 [0xc0, "Non-Canonical Address" ],
2451 [0xc1, "Non-Canonical Address" ],
2452 [0xc2, "Non-Canonical Address" ],
2453 [0xc3, "Non-Canonical Address" ],
2454 [0xc4, "Non-Canonical Address" ],
2455 [0xc5, "Non-Canonical Address" ],
2456 [0xc6, "Non-Canonical Address" ],
2457 [0xc7, "Non-Canonical Address" ],
2458 [0xc8, "Non-Canonical Address" ],
2459 [0xc9, "Non-Canonical Address" ],
2460 [0xca, "Non-Canonical Address" ],
2461 [0xcb, "Non-Canonical Address" ],
2462 [0xcc, "Non-Canonical Address" ],
2463 [0xcd, "Non-Canonical Address" ],
2464 [0xce, "Non-Canonical Address" ],
2465 [0xcf, "Non-Canonical Address" ],
2466 [0xd0, "Non-Canonical Address" ],
2467 [0xd1, "Non-Canonical Address" ],
2468 [0xd2, "Non-Canonical Address" ],
2469 [0xd3, "Non-Canonical Address" ],
2470 [0xd4, "Non-Canonical Address" ],
2471 [0xd5, "Non-Canonical Address" ],
2472 [0xd6, "Non-Canonical Address" ],
2473 [0xd7, "Non-Canonical Address" ],
2474 [0xd8, "Non-Canonical Address" ],
2475 [0xd9, "Non-Canonical Address" ],
2476 [0xda, "Non-Canonical Address" ],
2477 [0xdb, "Non-Canonical Address" ],
2478 [0xdc, "Non-Canonical Address" ],
2479 [0xdd, "Non-Canonical Address" ],
2480 [0xde, "Non-Canonical Address" ],
2481 [0xdf, "Non-Canonical Address" ],
2482 [0xe0, "Non-Canonical Address" ],
2483 [0xe1, "Non-Canonical Address" ],
2484 [0xe2, "Non-Canonical Address" ],
2485 [0xe3, "Non-Canonical Address" ],
2486 [0xe4, "Non-Canonical Address" ],
2487 [0xe5, "Non-Canonical Address" ],
2488 [0xe6, "Non-Canonical Address" ],
2489 [0xe7, "Non-Canonical Address" ],
2490 [0xe8, "Non-Canonical Address" ],
2491 [0xe9, "Non-Canonical Address" ],
2492 [0xea, "Non-Canonical Address" ],
2493 [0xeb, "Non-Canonical Address" ],
2494 [0xec, "Non-Canonical Address" ],
2495 [0xed, "Non-Canonical Address" ],
2496 [0xee, "Non-Canonical Address" ],
2497 [0xef, "Non-Canonical Address" ],
2498 [0xf0, "Non-Canonical Address" ],
2499 [0xf1, "Non-Canonical Address" ],
2500 [0xf2, "Non-Canonical Address" ],
2501 [0xf3, "Non-Canonical Address" ],
2502 [0xf4, "Non-Canonical Address" ],
2503 [0xf5, "Non-Canonical Address" ],
2504 [0xf6, "Non-Canonical Address" ],
2505 [0xf7, "Non-Canonical Address" ],
2506 [0xf8, "Non-Canonical Address" ],
2507 [0xf9, "Non-Canonical Address" ],
2508 [0xfa, "Non-Canonical Address" ],
2509 [0xfb, "Non-Canonical Address" ],
2510 [0xfc, "Non-Canonical Address" ],
2511 [0xfd, "Non-Canonical Address" ],
2512 [0xfe, "Non-Canonical Address" ],
2513 [0xff, "Non-Canonical Address" ],
2515 LANDriverNumber = uint8("lan_driver_number", "LAN Driver Number")
2516 LANdriverNodeAddress = bytes("lan_dvr_node_addr", "LAN Driver Node Address", 6)
2517 LANdriverRecvSize = uint32("lan_drv_rcv_size", "LAN Driver Receive Size")
2518 LANdriverReserved = uint16("lan_drv_reserved", "LAN Driver Reserved")
2519 LANdriverSendRetries = uint16("lan_drv_snd_retries", "LAN Driver Send Retries")
2520 LANdriverSharingFlags = uint16("lan_drv_share", "LAN Driver Sharing Flags")
2521 LANdriverShortName = fw_string("lan_drv_short_name", "LAN Driver Short Name", 40)
2522 LANdriverSlot = uint16("lan_drv_slot", "LAN Driver Slot")
2523 LANdriverSrcRouting = uint32("lan_drv_src_route", "LAN Driver Source Routing")
2524 LANdriverTransportTime = uint16("lan_drv_trans_time", "LAN Driver Transport Time")
2525 LastAccessedDate = uint16("last_access_date", "Last Accessed Date")
2526 LastAccessedDate.NWDate()
2527 LastAccessedTime = uint16("last_access_time", "Last Accessed Time")
2528 LastAccessedTime.NWTime()
2529 LastGarbCollect = uint32("last_garbage_collect", "Last Garbage Collection")
2530 LastInstance = uint32("last_instance", "Last Instance")
2531 LastRecordSeen = uint16("last_record_seen", "Last Record Seen")
2532 LastSearchIndex = uint16("last_search_index", "Search Index")
2533 LastSeen = uint32("last_seen", "Last Seen")
2534 LastSequenceNumber = uint16("last_sequence_number", "Sequence Number")
2535 Level = uint8("level", "Level")
2536 LFSCounters = uint32("lfs_counters", "LFS Counters")
2537 LimboDataStreamsCount = uint32("limbo_data_streams_count", "Limbo Data Streams Count")
2538 limbCount = uint32("limb_count", "Limb Count")
2539 LimboUsed = uint32("limbo_used", "Limbo Used")
2540 LocalConnectionID = uint32("local_connection_id", "Local Connection ID")
2541 LocalConnectionID.Display("BASE_HEX")
2542 LocalMaxPacketSize = uint32("local_max_packet_size", "Local Max Packet Size")
2543 LocalMaxSendSize = uint32("local_max_send_size", "Local Max Send Size")
2544 LocalMaxRecvSize = uint32("local_max_recv_size", "Local Max Recv Size")
2545 LocalLoginInfoCcode = uint8("local_login_info_ccode", "Local Login Info C Code")
2546 LocalTargetSocket = uint32("local_target_socket", "Local Target Socket")
2547 LocalTargetSocket.Display("BASE_HEX")
2548 LockAreaLen = uint32("lock_area_len", "Lock Area Length")
2549 LockAreasStartOffset = uint32("lock_areas_start_offset", "Lock Areas Start Offset")
2550 LockTimeout = uint16("lock_timeout", "Lock Timeout")
2551 Locked = val_string8("locked", "Locked Flag", [
2552 [ 0x00, "Not Locked Exclusively" ],
2553 [ 0x01, "Locked Exclusively" ],
2555 LockFlag = val_string8("lock_flag", "Lock Flag", [
2556 [ 0x00, "Not Locked, Log for Future Exclusive Lock" ],
2557 [ 0x01, "Exclusive Lock (Read/Write)" ],
2558 [ 0x02, "Log for Future Shared Lock"],
2559 [ 0x03, "Shareable Lock (Read-Only)" ],
2560 [ 0xfe, "Locked by a File Lock" ],
2561 [ 0xff, "Locked by Begin Share File Set" ],
2563 LockName = nstring8("lock_name", "Lock Name")
2564 LockStatus = val_string8("lock_status", "Lock Status", [
2565 [ 0x00, "Locked Exclusive" ],
2566 [ 0x01, "Locked Shareable" ],
2568 [ 0x06, "Lock is Held by TTS"],
2570 LockType = val_string8("lock_type", "Lock Type", [
2572 [ 0x01, "Open Shareable" ],
2574 [ 0x03, "Open Normal" ],
2575 [ 0x06, "TTS Holding Lock" ],
2576 [ 0x07, "Transaction Flag Set on This File" ],
2578 LogFileFlagHigh = bitfield8("log_file_flag_high", "Log File Flag (byte 2)", [
2579 bf_boolean8(0x80, "log_flag_call_back", "Call Back Requested" ),
2581 LogFileFlagLow = bitfield8("log_file_flag_low", "Log File Flag", [
2582 bf_boolean8(0x01, "log_flag_lock_file", "Lock File Immediately" ),
2584 LoggedObjectID = uint32("logged_object_id", "Logged in Object ID")
2585 LoggedObjectID.Display("BASE_HEX")
2586 LoggedCount = uint16("logged_count", "Logged Count")
2587 LogicalConnectionNumber = uint16("logical_connection_number", "Logical Connection Number", BE)
2588 LogicalDriveCount = uint8("logical_drive_count", "Logical Drive Count")
2589 LogicalDriveNumber = uint8("logical_drive_number", "Logical Drive Number")
2590 LogicalLockThreshold = uint8("logical_lock_threshold", "LogicalLockThreshold")
2591 LogicalRecordName = nstring8("logical_record_name", "Logical Record Name")
2592 LoginKey = bytes("login_key", "Login Key", 8)
2593 LogLockType = uint8("log_lock_type", "Log Lock Type")
2594 LogTtlRxPkts = uint32("log_ttl_rx_pkts", "Total Received Packets")
2595 LogTtlTxPkts = uint32("log_ttl_tx_pkts", "Total Transmitted Packets")
2596 LongName = fw_string("long_name", "Long Name", 32)
2597 LRUBlockWasDirty = uint16("lru_block_was_dirty", "LRU Block Was Dirty")
2599 MacAttr = bitfield16("mac_attr", "Attributes", [
2600 bf_boolean16(0x0001, "mac_attr_smode1", "Search Mode"),
2601 bf_boolean16(0x0002, "mac_attr_smode2", "Search Mode"),
2602 bf_boolean16(0x0004, "mac_attr_smode3", "Search Mode"),
2603 bf_boolean16(0x0010, "mac_attr_transaction", "Transaction"),
2604 bf_boolean16(0x0020, "mac_attr_index", "Index"),
2605 bf_boolean16(0x0040, "mac_attr_r_audit", "Read Audit"),
2606 bf_boolean16(0x0080, "mac_attr_w_audit", "Write Audit"),
2607 bf_boolean16(0x0100, "mac_attr_r_only", "Read Only"),
2608 bf_boolean16(0x0200, "mac_attr_hidden", "Hidden"),
2609 bf_boolean16(0x0400, "mac_attr_system", "System"),
2610 bf_boolean16(0x0800, "mac_attr_execute_only", "Execute Only"),
2611 bf_boolean16(0x1000, "mac_attr_subdirectory", "Subdirectory"),
2612 bf_boolean16(0x2000, "mac_attr_archive", "Archive"),
2613 bf_boolean16(0x8000, "mac_attr_share", "Shareable File"),
2615 MACBackupDate = uint16("mac_backup_date", "Mac Backup Date")
2616 MACBackupDate.NWDate()
2617 MACBackupTime = uint16("mac_backup_time", "Mac Backup Time")
2618 MACBackupTime.NWTime()
2619 MacBaseDirectoryID = uint32("mac_base_directory_id", "Mac Base Directory ID", BE)
2620 MacBaseDirectoryID.Display("BASE_HEX")
2621 MACCreateDate = uint16("mac_create_date", "Mac Create Date")
2622 MACCreateDate.NWDate()
2623 MACCreateTime = uint16("mac_create_time", "Mac Create Time")
2624 MACCreateTime.NWTime()
2625 MacDestinationBaseID = uint32("mac_destination_base_id", "Mac Destination Base ID")
2626 MacDestinationBaseID.Display("BASE_HEX")
2627 MacFinderInfo = bytes("mac_finder_info", "Mac Finder Information", 32)
2628 MacLastSeenID = uint32("mac_last_seen_id", "Mac Last Seen ID")
2629 MacLastSeenID.Display("BASE_HEX")
2630 MacSourceBaseID = uint32("mac_source_base_id", "Mac Source Base ID")
2631 MacSourceBaseID.Display("BASE_HEX")
2632 MajorVersion = uint32("major_version", "Major Version")
2633 MaxBytes = uint16("max_bytes", "Maximum Number of Bytes")
2634 MaxDataStreams = uint32("max_data_streams", "Maximum Data Streams")
2635 MaxDirDepth = uint32("max_dir_depth", "Maximum Directory Depth")
2636 MaximumSpace = uint16("max_space", "Maximum Space")
2637 MaxNumOfConn = uint32("max_num_of_conn", "Maximum Number of Connections")
2638 MaxNumOfLANS = uint32("max_num_of_lans", "Maximum Number Of LAN's")
2639 MaxNumOfMedias = uint32("max_num_of_medias", "Maximum Number Of Media's")
2640 MaxNumOfNmeSps = uint32("max_num_of_nme_sps", "Maximum Number Of Name Spaces")
2641 MaxNumOfSpoolPr = uint32("max_num_of_spool_pr", "Maximum Number Of Spool Printers")
2642 MaxNumOfStacks = uint32("max_num_of_stacks", "Maximum Number Of Stacks")
2643 MaxNumOfUsers = uint32("max_num_of_users", "Maximum Number Of Users")
2644 MaxNumOfVol = uint32("max_num_of_vol", "Maximum Number of Volumes")
2645 MaxSpace = uint32("maxspace", "Maximum Space")
2646 MaxUsedDynamicSpace = uint32("max_used_dynamic_space", "Max Used Dynamic Space")
2647 MediaList = uint32("media_list", "Media List")
2648 MediaListCount = uint32("media_list_count", "Media List Count")
2649 MediaName = nstring8("media_name", "Media Name")
2650 MediaNumber = uint32("media_number", "Media Number")
2651 MediaObjectType = val_string8("media_object_type", "Object Type", [
2652 [ 0x00, "Adapter" ],
2653 [ 0x01, "Changer" ],
2654 [ 0x02, "Removable Device" ],
2656 [ 0x04, "Removable Media" ],
2657 [ 0x05, "Partition" ],
2662 [ 0x0a, "Volume Segment" ],
2665 [ 0x0d, "Fixed Media" ],
2666 [ 0x0e, "Unknown" ],
2668 MemberName = nstring8("member_name", "Member Name")
2669 MemberType = val_string16("member_type", "Member Type", [
2670 [ 0x0000, "Unknown" ],
2672 [ 0x0002, "User group" ],
2673 [ 0x0003, "Print queue" ],
2674 [ 0x0004, "NetWare file server" ],
2675 [ 0x0005, "Job server" ],
2676 [ 0x0006, "Gateway" ],
2677 [ 0x0007, "Print server" ],
2678 [ 0x0008, "Archive queue" ],
2679 [ 0x0009, "Archive server" ],
2680 [ 0x000a, "Job queue" ],
2681 [ 0x000b, "Administration" ],
2682 [ 0x0021, "NAS SNA gateway" ],
2683 [ 0x0026, "Remote bridge server" ],
2684 [ 0x0027, "TCP/IP gateway" ],
2686 MessageLanguage = uint32("message_language", "NLM Language")
2687 MigratedFiles = uint32("migrated_files", "Migrated Files")
2688 MigratedSectors = uint32("migrated_sectors", "Migrated Sectors")
2689 MinorVersion = uint32("minor_version", "Minor Version")
2690 Minute = uint8("s_minute", "Minutes")
2691 MixedModePathFlag = uint8("mixed_mode_path_flag", "Mixed Mode Path Flag")
2692 ModifiedDate = uint16("modified_date", "Modified Date")
2693 ModifiedDate.NWDate()
2694 ModifiedTime = uint16("modified_time", "Modified Time")
2695 ModifiedTime.NWTime()
2696 ModifierID = uint32("modifier_id", "Modifier ID", BE)
2697 ModifierID.Display("BASE_HEX")
2698 ModifyDOSInfoMask = bitfield16("modify_dos_info_mask", "Modify DOS Info Mask", [
2699 bf_boolean16(0x0002, "modify_dos_read", "Attributes"),
2700 bf_boolean16(0x0004, "modify_dos_write", "Creation Date"),
2701 bf_boolean16(0x0008, "modify_dos_open", "Creation Time"),
2702 bf_boolean16(0x0010, "modify_dos_create", "Creator ID"),
2703 bf_boolean16(0x0020, "modify_dos_delete", "Archive Date"),
2704 bf_boolean16(0x0040, "modify_dos_parent", "Archive Time"),
2705 bf_boolean16(0x0080, "modify_dos_search", "Archiver ID"),
2706 bf_boolean16(0x0100, "modify_dos_mdate", "Modify Date"),
2707 bf_boolean16(0x0200, "modify_dos_mtime", "Modify Time"),
2708 bf_boolean16(0x0400, "modify_dos_mid", "Modifier ID"),
2709 bf_boolean16(0x0800, "modify_dos_laccess", "Last Access"),
2710 bf_boolean16(0x1000, "modify_dos_inheritance", "Inheritance"),
2711 bf_boolean16(0x2000, "modify_dos_max_space", "Maximum Space"),
2713 Month = val_string8("s_month", "Month", [
2722 [ 0x09, "September"],
2724 [ 0x0b, "November"],
2725 [ 0x0c, "December"],
2728 MoreFlag = val_string8("more_flag", "More Flag", [
2729 [ 0x00, "No More Segments/Entries Available" ],
2730 [ 0x01, "More Segments/Entries Available" ],
2731 [ 0xff, "More Segments/Entries Available" ],
2733 MoreProperties = val_string8("more_properties", "More Properties", [
2734 [ 0x00, "No More Properties Available" ],
2735 [ 0x01, "No More Properties Available" ],
2736 [ 0xff, "More Properties Available" ],
2739 Name = nstring8("name", "Name")
2740 Name12 = fw_string("name12", "Name", 12)
2741 NameLen = uint8("name_len", "Name Space Length")
2742 NameLength = uint8("name_length", "Name Length")
2743 NameList = uint32("name_list", "Name List")
2745 # XXX - should this value be used to interpret the characters in names,
2746 # search patterns, and the like?
2748 # We need to handle character sets better, e.g. translating strings
2749 # from whatever character set they are in the packet (DOS/Windows code
2750 # pages, ISO character sets, UNIX EUC character sets, UTF-8, UCS-2/Unicode,
2751 # Mac character sets, etc.) into UCS-4 or UTF-8 and storing them as such
2752 # in the protocol tree, and displaying them as best we can.
2754 NameSpace = val_string8("name_space", "Name Space", [
2759 [ 0x04, "OS/2, Long" ],
2761 NamesSpaceInfoMask = bitfield16("ns_info_mask", "Names Space Info Mask", [
2762 bf_boolean16(0x0001, "ns_info_mask_modify", "Modify Name"),
2763 bf_boolean16(0x0002, "ns_info_mask_fatt", "File Attributes"),
2764 bf_boolean16(0x0004, "ns_info_mask_cdate", "Creation Date"),
2765 bf_boolean16(0x0008, "ns_info_mask_ctime", "Creation Time"),
2766 bf_boolean16(0x0010, "ns_info_mask_owner", "Owner ID"),
2767 bf_boolean16(0x0020, "ns_info_mask_adate", "Archive Date"),
2768 bf_boolean16(0x0040, "ns_info_mask_atime", "Archive Time"),
2769 bf_boolean16(0x0080, "ns_info_mask_aid", "Archiver ID"),
2770 bf_boolean16(0x0100, "ns_info_mask_udate", "Update Date"),
2771 bf_boolean16(0x0200, "ns_info_mask_utime", "Update Time"),
2772 bf_boolean16(0x0400, "ns_info_mask_uid", "Update ID"),
2773 bf_boolean16(0x0800, "ns_info_mask_acc_date", "Access Date"),
2774 bf_boolean16(0x1000, "ns_info_mask_max_acc_mask", "Inheritance"),
2775 bf_boolean16(0x2000, "ns_info_mask_max_space", "Maximum Space"),
2777 NameSpaceName = nstring8("name_space_name", "Name Space Name")
2778 nameType = uint32("name_type", "nameType")
2779 NCPdataSize = uint32("ncp_data_size", "NCP Data Size")
2780 NCPextensionMajorVersion = uint8("ncp_extension_major_version", "NCP Extension Major Version")
2781 NCPextensionMinorVersion = uint8("ncp_extension_minor_version", "NCP Extension Minor Version")
2782 NCPextensionName = nstring8("ncp_extension_name", "NCP Extension Name")
2783 NCPextensionNumber = uint32("ncp_extension_number", "NCP Extension Number")
2784 NCPextensionNumber.Display("BASE_HEX")
2785 NCPExtensionNumbers = uint32("ncp_extension_numbers", "NCP Extension Numbers")
2786 NCPextensionRevisionNumber = uint8("ncp_extension_revision_number", "NCP Extension Revision Number")
2787 NCPPeakStaInUse = uint32("ncp_peak_sta_in_use", "Peak Number of Connections since Server was brought up")
2788 NCPStaInUseCnt = uint32("ncp_sta_in_use", "Number of Workstations Connected to Server")
2789 NDSRequestFlags = bitfield16("nds_request_flags", "NDS Request Flags", [
2790 bf_boolean16(0x0001, "nds_request_flags_output", "Output Fields"),
2791 bf_boolean16(0x0002, "nds_request_flags_no_such_entry", "No Such Entry"),
2792 bf_boolean16(0x0004, "nds_request_flags_local_entry", "Local Entry"),
2793 bf_boolean16(0x0008, "nds_request_flags_type_ref", "Type Referral"),
2794 bf_boolean16(0x0010, "nds_request_flags_alias_ref", "Alias Referral"),
2795 bf_boolean16(0x0020, "nds_request_flags_req_cnt", "Request Count"),
2796 bf_boolean16(0x0040, "nds_request_flags_req_data_size", "Request Data Size"),
2797 bf_boolean16(0x0080, "nds_request_flags_reply_data_size", "Reply Data Size"),
2798 bf_boolean16(0x0100, "nds_request_flags_trans_ref", "Transport Referral"),
2799 bf_boolean16(0x0200, "nds_request_flags_trans_ref2", "Transport Referral"),
2800 bf_boolean16(0x0400, "nds_request_flags_up_ref", "Up Referral"),
2801 bf_boolean16(0x0800, "nds_request_flags_dn_ref", "Down Referral"),
2803 NDSStatus = uint32("nds_status", "NDS Status")
2804 NetBIOSBroadcastWasPropogated = uint32("netbios_broadcast_was_propogated", "NetBIOS Broadcast Was Propogated")
2805 NetIDNumber = uint32("net_id_number", "Net ID Number")
2806 NetIDNumber.Display("BASE_HEX")
2807 NetAddress = nbytes32("address", "Address")
2808 NetStatus = uint16("net_status", "Network Status")
2809 NetWareAccessHandle = bytes("netware_access_handle", "NetWare Access Handle", 6)
2810 NetworkAddress = uint32("network_address", "Network Address")
2811 NetworkAddress.Display("BASE_HEX")
2812 NetworkNodeAddress = bytes("network_node_address", "Network Node Address", 6)
2813 NetworkNumber = uint32("network_number", "Network Number")
2814 NetworkNumber.Display("BASE_HEX")
2816 # XXX - this should have the "ipx_socket_vals" value_string table
2817 # from "packet-ipx.c".
2819 NetworkSocket = uint16("network_socket", "Network Socket")
2820 NetworkSocket.Display("BASE_HEX")
2821 NewAccessRights = bitfield16("new_access_rights_mask", "New Access Rights", [
2822 bf_boolean16(0x0001, "new_access_rights_read", "Read"),
2823 bf_boolean16(0x0002, "new_access_rights_write", "Write"),
2824 bf_boolean16(0x0004, "new_access_rights_open", "Open"),
2825 bf_boolean16(0x0008, "new_access_rights_create", "Create"),
2826 bf_boolean16(0x0010, "new_access_rights_delete", "Delete"),
2827 bf_boolean16(0x0020, "new_access_rights_parental", "Parental"),
2828 bf_boolean16(0x0040, "new_access_rights_search", "Search"),
2829 bf_boolean16(0x0080, "new_access_rights_modify", "Modify"),
2830 bf_boolean16(0x0100, "new_access_rights_supervisor", "Supervisor"),
2832 NewDirectoryID = uint32("new_directory_id", "New Directory ID", BE)
2833 NewDirectoryID.Display("BASE_HEX")
2834 NewEAHandle = uint32("new_ea_handle", "New EA Handle")
2835 NewEAHandle.Display("BASE_HEX")
2836 NewFileName = fw_string("new_file_name", "New File Name", 14)
2837 NewFileNameLen = nstring8("new_file_name_len", "New File Name")
2838 NewFileSize = uint32("new_file_size", "New File Size")
2839 NewPassword = nstring8("new_password", "New Password")
2840 NewPath = nstring8("new_path", "New Path")
2841 NewPosition = uint8("new_position", "New Position")
2842 NewObjectName = nstring8("new_object_name", "New Object Name")
2843 NextCntBlock = uint32("next_cnt_block", "Next Count Block")
2844 NextHugeStateInfo = bytes("next_huge_state_info", "Next Huge State Info", 16)
2845 nextLimbScanNum = uint32("next_limb_scan_num", "Next Limb Scan Number")
2846 NextObjectID = uint32("next_object_id", "Next Object ID", BE)
2847 NextObjectID.Display("BASE_HEX")
2848 NextRecord = uint32("next_record", "Next Record")
2849 NextRequestRecord = uint16("next_request_record", "Next Request Record")
2850 NextSearchIndex = uint16("next_search_index", "Next Search Index")
2851 NextSearchNumber = uint16("next_search_number", "Next Search Number")
2852 NextSearchNum = uint32("nxt_search_num", "Next Search Number")
2853 nextStartingNumber = uint32("next_starting_number", "Next Starting Number")
2854 NextTrusteeEntry = uint32("next_trustee_entry", "Next Trustee Entry")
2855 NextVolumeNumber = uint32("next_volume_number", "Next Volume Number")
2856 NLMBuffer = nstring8("nlm_buffer", "Buffer")
2857 NLMcount = uint32("nlm_count", "NLM Count")
2858 NLMFlags = bitfield8("nlm_flags", "Flags", [
2859 bf_boolean8(0x01, "nlm_flags_reentrant", "ReEntrant"),
2860 bf_boolean8(0x02, "nlm_flags_multiple", "Can Load Multiple Times"),
2861 bf_boolean8(0x04, "nlm_flags_synchronize", "Synchronize Start"),
2862 bf_boolean8(0x08, "nlm_flags_pseudo", "PseudoPreemption"),
2864 NLMLoadOptions = uint32("nlm_load_options", "NLM Load Options")
2865 NLMName = stringz("nlm_name_stringz", "NLM Name")
2866 NLMNumber = uint32("nlm_number", "NLM Number")
2867 NLMNumbers = uint32("nlm_numbers", "NLM Numbers")
2868 NLMsInList = uint32("nlms_in_list", "NLM's in List")
2869 NLMStartNumber = uint32("nlm_start_num", "NLM Start Number")
2870 NLMType = val_string8("nlm_type", "NLM Type", [
2871 [ 0x00, "Generic NLM (.NLM)" ],
2872 [ 0x01, "LAN Driver (.LAN)" ],
2873 [ 0x02, "Disk Driver (.DSK)" ],
2874 [ 0x03, "Name Space Support Module (.NAM)" ],
2875 [ 0x04, "Utility or Support Program (.NLM)" ],
2876 [ 0x05, "Mirrored Server Link (.MSL)" ],
2877 [ 0x06, "OS NLM (.NLM)" ],
2878 [ 0x07, "Paged High OS NLM (.NLM)" ],
2879 [ 0x08, "Host Adapter Module (.HAM)" ],
2880 [ 0x09, "Custom Device Module (.CDM)" ],
2881 [ 0x0a, "File System Engine (.NLM)" ],
2882 [ 0x0b, "Real Mode NLM (.NLM)" ],
2883 [ 0x0c, "Hidden NLM (.NLM)" ],
2884 [ 0x15, "NICI Support (.NLM)" ],
2885 [ 0x16, "NICI Support (.NLM)" ],
2886 [ 0x17, "Cryptography (.NLM)" ],
2887 [ 0x18, "Encryption (.NLM)" ],
2888 [ 0x19, "NICI Support (.NLM)" ],
2889 [ 0x1c, "NICI Support (.NLM)" ],
2891 nodeFlags = uint32("node_flags", "Node Flags")
2892 nodeFlags.Display("BASE_HEX")
2893 NoMoreMemAvlCnt = uint32("no_more_mem_avail", "No More Memory Available Count")
2894 NonDedFlag = boolean8("non_ded_flag", "Non Dedicated Flag")
2895 NonFreeableAvailableSubAllocSectors = uint32("non_freeable_avail_sub_alloc_sectors", "Non Freeable Available Sub Alloc Sectors")
2896 NonFreeableLimboSectors = uint32("non_freeable_limbo_sectors", "Non Freeable Limbo Sectors")
2897 NotUsableSubAllocSectors = uint32("not_usable_sub_alloc_sectors", "Not Usable Sub Alloc Sectors")
2898 NotYetPurgeableBlocks = uint32("not_yet_purgeable_blocks", "Not Yet Purgeable Blocks")
2899 NSInfoBitMask = uint32("ns_info_bit_mask", "Name Space Info Bit Mask")
2900 NSSOAllInFlags = bitfield32("nsso_all_in_flags", "SecretStore All Input Flags",[
2901 bf_boolean32(0x00000010, "nsso_all_unicode", "Unicode Data"),
2902 bf_boolean32(0x00000080, "nsso_set_tree", "Set Tree"),
2903 bf_boolean32(0x00000200, "nsso_destroy_ctx", "Destroy Context"),
2905 NSSOGetServiceInFlags = bitfield32("nsso_get_svc_in_flags", "SecretStore Get Service Flags",[
2906 bf_boolean32(0x00000100, "nsso_get_ctx", "Get Context"),
2908 NSSOReadInFlags = bitfield32("nsso_read_in_flags", "SecretStore Read Flags",[
2909 bf_boolean32(0x00000001, "nsso_rw_enh_prot", "Read/Write Enhanced Protection"),
2910 bf_boolean32(0x00000008, "nsso_repair", "Repair SecretStore"),
2912 NSSOReadOrUnlockInFlags = bitfield32("nsso_read_or_unlock_in_flags", "SecretStore Read or Unlock Flags",[
2913 bf_boolean32(0x00000004, "nsso_ep_master_pwd", "Master Password used instead of ENH Password"),
2915 NSSOUnlockInFlags = bitfield32("nsso_unlock_in_flags", "SecretStore Unlock Flags",[
2916 bf_boolean32(0x00000004, "nsso_rmv_lock", "Remove Lock from Store"),
2918 NSSOWriteInFlags = bitfield32("nsso_write_in_flags", "SecretStore Write Flags",[
2919 bf_boolean32(0x00000001, "nsso_enh_prot", "Enhanced Protection"),
2920 bf_boolean32(0x00000002, "nsso_create_id", "Create ID"),
2921 bf_boolean32(0x00000040, "nsso_ep_pwd_used", "Enhanced Protection Password Used"),
2923 NSSOContextOutFlags = bitfield32("nsso_cts_out_flags", "Type of Context",[
2924 bf_boolean32(0x00000001, "nsso_ds_ctx", "DSAPI Context"),
2925 bf_boolean32(0x00000080, "nsso_ldap_ctx", "LDAP Context"),
2926 bf_boolean32(0x00000200, "nsso_dc_ctx", "Reserved"),
2928 NSSOGetServiceOutFlags = bitfield32("nsso_get_svc_out_flags", "SecretStore Status Flags",[
2929 bf_boolean32(0x00400000, "nsso_mstr_pwd", "Master Password Present"),
2931 NSSOGetServiceReadOutFlags = bitfield32("nsso_get_svc_read_out_flags", "SecretStore Status Flags",[
2932 bf_boolean32(0x00800000, "nsso_mp_disabled", "Master Password Disabled"),
2934 NSSOReadOutFlags = bitfield32("nsso_read_out_flags", "SecretStore Read Flags",[
2935 bf_boolean32(0x00010000, "nsso_secret_locked", "Enhanced Protection Lock on Secret"),
2936 bf_boolean32(0x00020000, "nsso_secret_not_init", "Secret Not Yet Initialized"),
2937 bf_boolean32(0x00040000, "nsso_secret_marked", "Secret Marked for Enhanced Protection"),
2938 bf_boolean32(0x00080000, "nsso_secret_not_sync", "Secret Not Yet Synchronized in NDS"),
2939 bf_boolean32(0x00200000, "nsso_secret_enh_pwd", "Enhanced Protection Password on Secret"),
2941 NSSOReadOutStatFlags = bitfield32("nsso_read_out_stat_flags", "SecretStore Read Status Flags",[
2942 bf_boolean32(0x00100000, "nsso_admin_mod", "Admin Modified Secret Last"),
2944 NSSOVerb = val_string8("nsso_verb", "SecretStore Verb", [
2945 [ 0x00, "Query Server" ],
2946 [ 0x01, "Read App Secrets" ],
2947 [ 0x02, "Write App Secrets" ],
2948 [ 0x03, "Add Secret ID" ],
2949 [ 0x04, "Remove Secret ID" ],
2950 [ 0x05, "Remove SecretStore" ],
2951 [ 0x06, "Enumerate SecretID's" ],
2952 [ 0x07, "Unlock Store" ],
2953 [ 0x08, "Set Master Password" ],
2954 [ 0x09, "Get Service Information" ],
2956 NSSpecificInfo = fw_string("ns_specific_info", "Name Space Specific Info", 512)
2957 NumberOfAllocs = uint32("num_of_allocs", "Number of Allocations")
2958 NumberOfAttributes = uint32("number_of_attributes", "Number of Attributes")
2959 NumberOfCPUs = uint32("number_of_cpus", "Number of CPU's")
2960 NumberOfDataStreams = uint16("number_of_data_streams", "Number of Data Streams")
2961 NumberOfDynamicMemoryAreas = uint16("number_of_dynamic_memory_areas", "Number Of Dynamic Memory Areas")
2962 NumberOfEntries = uint8("number_of_entries", "Number of Entries")
2963 NumberOfLocks = uint8("number_of_locks", "Number of Locks")
2964 NumberOfMinutesToDelay = uint32("number_of_minutes_to_delay", "Number of Minutes to Delay")
2965 NumberOfNCPExtensions = uint32("number_of_ncp_extensions", "Number Of NCP Extensions")
2966 NumberOfNSLoaded = uint16("number_of_ns_loaded", "Number Of Name Spaces Loaded")
2967 NumberOfProtocols = uint8("number_of_protocols", "Number of Protocols")
2968 NumberOfRecords = uint16("number_of_records", "Number of Records")
2969 NumberOfReferencedPublics = uint32("num_of_ref_publics", "Number of Referenced Public Symbols")
2970 NumberOfSemaphores = uint16("number_of_semaphores", "Number Of Semaphores")
2971 NumberOfServiceProcesses = uint8("number_of_service_processes", "Number Of Service Processes")
2972 NumberOfSetCategories = uint32("number_of_set_categories", "Number Of Set Categories")
2973 NumberOfSMs = uint32("number_of_sms", "Number Of Storage Medias")
2974 NumberOfStations = uint8("number_of_stations", "Number of Stations")
2975 NumBytes = uint16("num_bytes", "Number of Bytes")
2976 NumOfCCinPkt = uint32("num_of_cc_in_pkt", "Number of Custom Counters in Packet")
2977 NumOfChecks = uint32("num_of_checks", "Number of Checks")
2978 NumOfEntries = uint32("num_of_entries", "Number of Entries")
2979 NumOfFilesMigrated = uint32("num_of_files_migrated", "Number Of Files Migrated")
2980 NumOfGarbageColl = uint32("num_of_garb_coll", "Number of Garbage Collections")
2981 NumOfNCPReqs = uint32("num_of_ncp_reqs", "Number of NCP Requests since Server was brought up")
2982 NumOfSegments = uint32("num_of_segments", "Number of Segments")
2984 ObjectCount = uint32("object_count", "Object Count")
2985 ObjectFlags = val_string8("object_flags", "Object Flags", [
2986 [ 0x00, "Dynamic object" ],
2987 [ 0x01, "Static object" ],
2989 ObjectHasProperties = val_string8("object_has_properites", "Object Has Properties", [
2990 [ 0x00, "No properties" ],
2991 [ 0xff, "One or more properties" ],
2993 ObjectID = uint32("object_id", "Object ID", BE)
2994 ObjectID.Display('BASE_HEX')
2995 ObjectIDCount = uint16("object_id_count", "Object ID Count")
2996 ObjectIDInfo = uint32("object_id_info", "Object Information")
2997 ObjectInfoReturnCount = uint32("object_info_rtn_count", "Object Information Count")
2998 ObjectName = nstring8("object_name", "Object Name")
2999 ObjectNameLen = fw_string("object_name_len", "Object Name", 48)
3000 ObjectNameStringz = stringz("object_name_stringz", "Object Name")
3001 ObjectNumber = uint32("object_number", "Object Number")
3002 ObjectSecurity = val_string8("object_security", "Object Security", [
3003 [ 0x00, "Object Read (Anyone) / Object Write (Anyone)" ],
3004 [ 0x01, "Object Read (Logged in) / Object Write (Anyone)" ],
3005 [ 0x02, "Object Read (Logged in as Object) / Object Write (Anyone)" ],
3006 [ 0x03, "Object Read (Supervisor) / Object Write (Anyone)" ],
3007 [ 0x04, "Object Read (Operating System Only) / Object Write (Anyone)" ],
3008 [ 0x10, "Object Read (Anyone) / Object Write (Logged in)" ],
3009 [ 0x11, "Object Read (Logged in) / Object Write (Logged in)" ],
3010 [ 0x12, "Object Read (Logged in as Object) / Object Write (Logged in)" ],
3011 [ 0x13, "Object Read (Supervisor) / Object Write (Logged in)" ],
3012 [ 0x14, "Object Read (Operating System Only) / Object Write (Logged in)" ],
3013 [ 0x20, "Object Read (Anyone) / Object Write (Logged in as Object)" ],
3014 [ 0x21, "Object Read (Logged in) / Object Write (Logged in as Object)" ],
3015 [ 0x22, "Object Read (Logged in as Object) / Object Write (Logged in as Object)" ],
3016 [ 0x23, "Object Read (Supervisor) / Object Write (Logged in as Object)" ],
3017 [ 0x24, "Object Read (Operating System Only) / Object Write (Logged in as Object)" ],
3018 [ 0x30, "Object Read (Anyone) / Object Write (Supervisor)" ],
3019 [ 0x31, "Object Read (Logged in) / Object Write (Supervisor)" ],
3020 [ 0x32, "Object Read (Logged in as Object) / Object Write (Supervisor)" ],
3021 [ 0x33, "Object Read (Supervisor) / Object Write (Supervisor)" ],
3022 [ 0x34, "Object Read (Operating System Only) / Object Write (Supervisor)" ],
3023 [ 0x40, "Object Read (Anyone) / Object Write (Operating System Only)" ],
3024 [ 0x41, "Object Read (Logged in) / Object Write (Operating System Only)" ],
3025 [ 0x42, "Object Read (Logged in as Object) / Object Write (Operating System Only)" ],
3026 [ 0x43, "Object Read (Supervisor) / Object Write (Operating System Only)" ],
3027 [ 0x44, "Object Read (Operating System Only) / Object Write (Operating System Only)" ],
3030 # XXX - should this use the "server_vals[]" value_string array from
3033 # XXX - should this list be merged with that list? There are some
3034 # oddities, e.g. this list has 0x03f5 for "Microsoft SQL Server", but
3035 # the list from "packet-ipx.c" has 0xf503 for that - is that just
3036 # byte-order confusion?
3038 ObjectType = val_string16("object_type", "Object Type", [
3039 [ 0x0000, "Unknown" ],
3041 [ 0x0002, "User group" ],
3042 [ 0x0003, "Print queue" ],
3043 [ 0x0004, "NetWare file server" ],
3044 [ 0x0005, "Job server" ],
3045 [ 0x0006, "Gateway" ],
3046 [ 0x0007, "Print server" ],
3047 [ 0x0008, "Archive queue" ],
3048 [ 0x0009, "Archive server" ],
3049 [ 0x000a, "Job queue" ],
3050 [ 0x000b, "Administration" ],
3051 [ 0x0021, "NAS SNA gateway" ],
3052 [ 0x0026, "Remote bridge server" ],
3053 [ 0x0027, "TCP/IP gateway" ],
3054 [ 0x0047, "Novell Print Server" ],
3055 [ 0x004b, "Btrieve Server" ],
3056 [ 0x004c, "NetWare SQL Server" ],
3057 [ 0x0064, "ARCserve" ],
3058 [ 0x0066, "ARCserve 3.0" ],
3059 [ 0x0076, "NetWare SQL" ],
3060 [ 0x00a0, "Gupta SQL Base Server" ],
3061 [ 0x00a1, "Powerchute" ],
3062 [ 0x0107, "NetWare Remote Console" ],
3063 [ 0x01cb, "Shiva NetModem/E" ],
3064 [ 0x01cc, "Shiva LanRover/E" ],
3065 [ 0x01cd, "Shiva LanRover/T" ],
3066 [ 0x01d8, "Castelle FAXPress Server" ],
3067 [ 0x01da, "Castelle Print Server" ],
3068 [ 0x01dc, "Castelle Fax Server" ],
3069 [ 0x0200, "Novell SQL Server" ],
3070 [ 0x023a, "NetWare Lanalyzer Agent" ],
3071 [ 0x023c, "DOS Target Service Agent" ],
3072 [ 0x023f, "NetWare Server Target Service Agent" ],
3073 [ 0x024f, "Appletalk Remote Access Service" ],
3074 [ 0x0263, "NetWare Management Agent" ],
3075 [ 0x0264, "Global MHS" ],
3077 [ 0x026a, "NetWare Management/NMS Console" ],
3078 [ 0x026b, "NetWare Time Synchronization" ],
3079 [ 0x0273, "Nest Device" ],
3080 [ 0x0274, "GroupWise Message Multiple Servers" ],
3081 [ 0x0278, "NDS Replica Server" ],
3082 [ 0x0282, "NDPS Service Registry Service" ],
3083 [ 0x028a, "MPR/IPX Address Mapping Gateway" ],
3084 [ 0x028b, "ManageWise" ],
3085 [ 0x0293, "NetWare 6" ],
3086 [ 0x030c, "HP JetDirect" ],
3087 [ 0x0328, "Watcom SQL Server" ],
3088 [ 0x0355, "Backup Exec" ],
3089 [ 0x039b, "Lotus Notes" ],
3090 [ 0x03e1, "Univel Server" ],
3091 [ 0x03f5, "Microsoft SQL Server" ],
3092 [ 0x055e, "Lexmark Print Server" ],
3093 [ 0x0640, "Microsoft Gateway Services for NetWare" ],
3094 [ 0x064e, "Microsoft Internet Information Server" ],
3095 [ 0x077b, "Advantage Database Server" ],
3096 [ 0x07a7, "Backup Exec Job Queue" ],
3097 [ 0x07a8, "Backup Exec Job Manager" ],
3098 [ 0x07a9, "Backup Exec Job Service" ],
3099 [ 0x5555, "Site Lock" ],
3100 [ 0x8202, "NDPS Broker" ],
3102 OCRetFlags = val_string8("o_c_ret_flags", "Open Create Return Flags", [
3103 [ 0x00, "No CallBack has been registered (No Op-Lock)" ],
3104 [ 0x01, "Request has been registered for CallBack (Op-Lock)" ],
3106 OldestDeletedFileAgeInTicks = uint32("oldest_deleted_file_age_in_ticks", "Oldest Deleted File Age in Ticks")
3107 OldFileName = bytes("old_file_name", "Old File Name", 15)
3108 OldFileSize = uint32("old_file_size", "Old File Size")
3109 OpenCount = uint16("open_count", "Open Count")
3110 OpenCreateAction = bitfield8("open_create_action", "Open Create Action", [
3111 bf_boolean8(0x01, "open_create_action_opened", "Opened"),
3112 bf_boolean8(0x02, "open_create_action_created", "Created"),
3113 bf_boolean8(0x04, "open_create_action_replaced", "Replaced"),
3114 bf_boolean8(0x08, "open_create_action_compressed", "Compressed"),
3115 bf_boolean8(0x80, "open_create_action_read_only", "Read Only"),
3117 OpenCreateMode = bitfield8("open_create_mode", "Open Create Mode", [
3118 bf_boolean8(0x01, "open_create_mode_open", "Open existing file (file must exist)"),
3119 bf_boolean8(0x02, "open_create_mode_replace", "Replace existing file"),
3120 bf_boolean8(0x08, "open_create_mode_create", "Create new file or subdirectory (file or subdirectory cannot exist)"),
3121 bf_boolean8(0x80, "open_create_mode_oplock", "Open Callback (Op-Lock)"),
3123 OpenForReadCount = uint16("open_for_read_count", "Open For Read Count")
3124 OpenForWriteCount = uint16("open_for_write_count", "Open For Write Count")
3125 OpenRights = bitfield8("open_rights", "Open Rights", [
3126 bf_boolean8(0x01, "open_rights_read_only", "Read Only"),
3127 bf_boolean8(0x02, "open_rights_write_only", "Write Only"),
3128 bf_boolean8(0x04, "open_rights_deny_read", "Deny Read"),
3129 bf_boolean8(0x08, "open_rights_deny_write", "Deny Write"),
3130 bf_boolean8(0x10, "open_rights_compat", "Compatibility"),
3131 bf_boolean8(0x40, "open_rights_write_thru", "Write Through"),
3133 OptionNumber = uint8("option_number", "Option Number")
3134 originalSize = uint32("original_size", "Original Size")
3135 OSLanguageID = uint8("os_language_id", "OS Language ID")
3136 OSMajorVersion = uint8("os_major_version", "OS Major Version")
3137 OSMinorVersion = uint8("os_minor_version", "OS Minor Version")
3138 OSRevision = uint8("os_revision", "OS Revision")
3139 OtherFileForkSize = uint32("other_file_fork_size", "Other File Fork Size")
3140 OtherFileForkFAT = uint32("other_file_fork_fat", "Other File Fork FAT Entry")
3141 OutgoingPacketDiscardedNoTurboBuffer = uint16("outgoing_packet_discarded_no_turbo_buffer", "Outgoing Packet Discarded No Turbo Buffer")
3143 PacketsDiscardedByHopCount = uint16("packets_discarded_by_hop_count", "Packets Discarded By Hop Count")
3144 PacketsDiscardedUnknownNet = uint16("packets_discarded_unknown_net", "Packets Discarded Unknown Net")
3145 PacketsFromInvalidConnection = uint16("packets_from_invalid_connection", "Packets From Invalid Connection")
3146 PacketsReceivedDuringProcessing = uint16("packets_received_during_processing", "Packets Received During Processing")
3147 PacketsWithBadRequestType = uint16("packets_with_bad_request_type", "Packets With Bad Request Type")
3148 PacketsWithBadSequenceNumber = uint16("packets_with_bad_sequence_number", "Packets With Bad Sequence Number")
3149 PageTableOwnerFlag = uint32("page_table_owner_flag", "Page Table Owner")
3150 ParentID = uint32("parent_id", "Parent ID")
3151 ParentID.Display("BASE_HEX")
3152 ParentBaseID = uint32("parent_base_id", "Parent Base ID")
3153 ParentBaseID.Display("BASE_HEX")
3154 ParentDirectoryBase = uint32("parent_directory_base", "Parent Directory Base")
3155 ParentDOSDirectoryBase = uint32("parent_dos_directory_base", "Parent DOS Directory Base")
3156 ParentObjectNumber = uint32("parent_object_number", "Parent Object Number")
3157 ParentObjectNumber.Display("BASE_HEX")
3158 Password = nstring8("password", "Password")
3159 PathBase = uint8("path_base", "Path Base")
3160 PathComponentCount = uint16("path_component_count", "Path Component Count")
3161 PathComponentSize = uint16("path_component_size", "Path Component Size")
3162 PathCookieFlags = val_string16("path_cookie_flags", "Path Cookie Flags", [
3163 [ 0x0000, "Last component is Not a File Name" ],
3164 [ 0x0001, "Last component is a File Name" ],
3166 PathCount = uint8("path_count", "Path Count")
3167 Path = nstring8("path", "Path")
3168 PathAndName = stringz("path_and_name", "Path and Name")
3169 PendingIOCommands = uint16("pending_io_commands", "Pending IO Commands")
3170 PhysicalDiskNumber = uint8("physical_disk_number", "Physical Disk Number")
3171 PhysicalDriveCount = uint8("physical_drive_count", "Physical Drive Count")
3172 PhysicalLockThreshold = uint8("physical_lock_threshold", "Physical Lock Threshold")
3173 PingVersion = uint16("ping_version", "Ping Version")
3174 PositiveAcknowledgesSent = uint16("positive_acknowledges_sent", "Positive Acknowledges Sent")
3175 PreCompressedSectors = uint32("pre_compressed_sectors", "Precompressed Sectors")
3176 PreviousRecord = uint32("previous_record", "Previous Record")
3177 PrimaryEntry = uint32("primary_entry", "Primary Entry")
3178 PrintFlags = bitfield8("print_flags", "Print Flags", [
3179 bf_boolean8(0x08, "print_flags_ff", "Suppress Form Feeds"),
3180 bf_boolean8(0x10, "print_flags_cr", "Create"),
3181 bf_boolean8(0x20, "print_flags_del_spool", "Delete Spool File after Printing"),
3182 bf_boolean8(0x40, "print_flags_exp_tabs", "Expand Tabs in the File"),
3183 bf_boolean8(0x80, "print_flags_banner", "Print Banner Page"),
3185 PrinterHalted = val_string8("printer_halted", "Printer Halted", [
3186 [ 0x00, "Printer is not Halted" ],
3187 [ 0xff, "Printer is Halted" ],
3189 PrinterOffLine = val_string8( "printer_offline", "Printer Off-Line", [
3190 [ 0x00, "Printer is On-Line" ],
3191 [ 0xff, "Printer is Off-Line" ],
3193 PrintServerVersion = uint8("print_server_version", "Print Server Version")
3194 Priority = uint32("priority", "Priority")
3195 Privileges = uint32("privileges", "Login Privileges")
3196 ProcessorType = val_string8("processor_type", "Processor Type", [
3197 [ 0x00, "Motorola 68000" ],
3198 [ 0x01, "Intel 8088 or 8086" ],
3199 [ 0x02, "Intel 80286" ],
3201 ProDOSInfo = bytes("pro_dos_info", "Pro DOS Info", 6)
3202 ProductMajorVersion = uint16("product_major_version", "Product Major Version")
3203 ProductMinorVersion = uint16("product_minor_version", "Product Minor Version")
3204 ProductRevisionVersion = uint8("product_revision_version", "Product Revision Version")
3205 projectedCompSize = uint32("projected_comp_size", "Projected Compression Size")
3206 PropertyHasMoreSegments = val_string8("property_has_more_segments",
3207 "Property Has More Segments", [
3208 [ 0x00, "Is last segment" ],
3209 [ 0xff, "More segments are available" ],
3211 PropertyName = nstring8("property_name", "Property Name")
3212 PropertyName16 = fw_string("property_name_16", "Property Name", 16)
3213 PropertyData = bytes("property_data", "Property Data", 128)
3214 PropertySegment = uint8("property_segment", "Property Segment")
3215 PropertyType = val_string8("property_type", "Property Type", [
3216 [ 0x00, "Display Static property" ],
3217 [ 0x01, "Display Dynamic property" ],
3218 [ 0x02, "Set Static property" ],
3219 [ 0x03, "Set Dynamic property" ],
3221 PropertyValue = fw_string("property_value", "Property Value", 128)
3222 ProposedMaxSize = uint16("proposed_max_size", "Proposed Max Size")
3223 protocolFlags = uint32("protocol_flags", "Protocol Flags")
3224 protocolFlags.Display("BASE_HEX")
3225 PurgeableBlocks = uint32("purgeable_blocks", "Purgeable Blocks")
3226 PurgeCcode = uint32("purge_c_code", "Purge Completion Code")
3227 PurgeCount = uint32("purge_count", "Purge Count")
3228 PurgeFlags = val_string16("purge_flags", "Purge Flags", [
3229 [ 0x0000, "Do not Purge All" ],
3230 [ 0x0001, "Purge All" ],
3231 [ 0xffff, "Do not Purge All" ],
3233 PurgeList = uint32("purge_list", "Purge List")
3234 PhysicalDiskChannel = uint8("physical_disk_channel", "Physical Disk Channel")
3235 PhysicalDriveType = val_string8("physical_drive_type", "Physical Drive Type", [
3239 [ 0x04, "Disk Coprocessor" ],
3240 [ 0x05, "PS/2 with MFM Controller" ],
3241 [ 0x06, "PS/2 with ESDI Controller" ],
3242 [ 0x07, "Convergent Technology SBIC" ],
3244 PhysicalReadErrors = uint16("physical_read_errors", "Physical Read Errors")
3245 PhysicalReadRequests = uint32("physical_read_requests", "Physical Read Requests")
3246 PhysicalWriteErrors = uint16("physical_write_errors", "Physical Write Errors")
3247 PhysicalWriteRequests = uint32("physical_write_requests", "Physical Write Requests")
3248 PrintToFileFlag = boolean8("print_to_file_flag", "Print to File Flag")
3250 QueueID = uint32("queue_id", "Queue ID")
3251 QueueID.Display("BASE_HEX")
3252 QueueName = nstring8("queue_name", "Queue Name")
3253 QueueStartPosition = uint32("queue_start_position", "Queue Start Position")
3254 QueueStatus = bitfield8("queue_status", "Queue Status", [
3255 bf_boolean8(0x01, "queue_status_new_jobs", "Operator does not want to add jobs to the queue"),
3256 bf_boolean8(0x02, "queue_status_pserver", "Operator does not want additional servers attaching"),
3257 bf_boolean8(0x04, "queue_status_svc_jobs", "Operator does not want servers to service jobs"),
3259 QueueType = uint16("queue_type", "Queue Type")
3260 QueueingVersion = uint8("qms_version", "QMS Version")
3262 ReadBeyondWrite = uint16("read_beyond_write", "Read Beyond Write")
3263 RecordLockCount = uint16("rec_lock_count", "Record Lock Count")
3264 RecordStart = uint32("record_start", "Record Start")
3265 RecordEnd = uint32("record_end", "Record End")
3266 RecordInUseFlag = val_string16("record_in_use", "Record in Use", [
3267 [ 0x0000, "Record In Use" ],
3268 [ 0xffff, "Record Not In Use" ],
3270 RedirectedPrinter = uint8( "redirected_printer", "Redirected Printer" )
3271 ReferenceCount = uint32("reference_count", "Reference Count")
3272 RelationsCount = uint16("relations_count", "Relations Count")
3273 ReMirrorCurrentOffset = uint32("re_mirror_current_offset", "ReMirror Current Offset")
3274 ReMirrorDriveNumber = uint8("re_mirror_drive_number", "ReMirror Drive Number")
3275 RemoteMaxPacketSize = uint32("remote_max_packet_size", "Remote Max Packet Size")
3276 RemoteTargetID = uint32("remote_target_id", "Remote Target ID")
3277 RemoteTargetID.Display("BASE_HEX")
3278 RemovableFlag = uint16("removable_flag", "Removable Flag")
3279 RemoveOpenRights = bitfield8("remove_open_rights", "Remove Open Rights", [
3280 bf_boolean8(0x01, "remove_open_rights_ro", "Read Only"),
3281 bf_boolean8(0x02, "remove_open_rights_wo", "Write Only"),
3282 bf_boolean8(0x04, "remove_open_rights_dr", "Deny Read"),
3283 bf_boolean8(0x08, "remove_open_rights_dw", "Deny Write"),
3284 bf_boolean8(0x10, "remove_open_rights_comp", "Compatibility"),
3285 bf_boolean8(0x40, "remove_open_rights_write_thru", "Write Through"),
3287 RenameFlag = bitfield8("rename_flag", "Rename Flag", [
3288 bf_boolean8(0x01, "rename_flag_ren", "Rename to Myself allows file to be renamed to it's original name"),
3289 bf_boolean8(0x02, "rename_flag_comp", "Compatability allows files that are marked read only to be opened with read/write access"),
3290 bf_boolean8(0x04, "rename_flag_no", "Name Only renames only the specified name space entry name"),
3292 RepliesCancelled = uint16("replies_cancelled", "Replies Cancelled")
3293 ReplyBuffer = nstring8("reply_buffer", "Reply Buffer")
3294 ReplyBufferSize = uint32("reply_buffer_size", "Reply Buffer Size")
3295 ReplyQueueJobNumbers = uint32("reply_queue_job_numbers", "Reply Queue Job Numbers")
3296 RequestBitMap = bitfield16("request_bit_map", "Request Bit Map", [
3297 bf_boolean16(0x0001, "request_bit_map_ret_afp_ent", "AFP Entry ID"),
3298 bf_boolean16(0x0002, "request_bit_map_ret_data_fork", "Data Fork Length"),
3299 bf_boolean16(0x0004, "request_bit_map_ret_res_fork", "Resource Fork Length"),
3300 bf_boolean16(0x0008, "request_bit_map_ret_num_off", "Number of Offspring"),
3301 bf_boolean16(0x0010, "request_bit_map_ret_owner", "Owner ID"),
3302 bf_boolean16(0x0020, "request_bit_map_ret_short", "Short Name"),
3303 bf_boolean16(0x0040, "request_bit_map_ret_acc_priv", "Access Privileges"),
3304 bf_boolean16(0x0100, "request_bit_map_ratt", "Return Attributes"),
3305 bf_boolean16(0x0200, "request_bit_map_ret_afp_parent", "AFP Parent Entry ID"),
3306 bf_boolean16(0x0400, "request_bit_map_ret_cr_date", "Creation Date"),
3307 bf_boolean16(0x0800, "request_bit_map_ret_acc_date", "Access Date"),
3308 bf_boolean16(0x1000, "request_bit_map_ret_mod_date", "Modify Date&Time"),
3309 bf_boolean16(0x2000, "request_bit_map_ret_bak_date", "Backup Date&Time"),
3310 bf_boolean16(0x4000, "request_bit_map_ret_finder", "Finder Info"),
3311 bf_boolean16(0x8000, "request_bit_map_ret_long_nm", "Long Name"),
3313 ResourceForkLen = uint32("resource_fork_len", "Resource Fork Len")
3314 RequestCode = val_string8("request_code", "Request Code", [
3315 [ 0x00, "Change Logged in to Temporary Authenticated" ],
3316 [ 0x01, "Change Temporary Authenticated to Logged in" ],
3318 RequestData = nstring8("request_data", "Request Data")
3319 RequestsReprocessed = uint16("requests_reprocessed", "Requests Reprocessed")
3320 Reserved = uint8( "reserved", "Reserved" )
3321 Reserved2 = bytes("reserved2", "Reserved", 2)
3322 Reserved3 = bytes("reserved3", "Reserved", 3)
3323 Reserved4 = bytes("reserved4", "Reserved", 4)
3324 Reserved6 = bytes("reserved6", "Reserved", 6)
3325 Reserved8 = bytes("reserved8", "Reserved", 8)
3326 Reserved10 = bytes("reserved10", "Reserved", 10)
3327 Reserved12 = bytes("reserved12", "Reserved", 12)
3328 Reserved16 = bytes("reserved16", "Reserved", 16)
3329 Reserved20 = bytes("reserved20", "Reserved", 20)
3330 Reserved28 = bytes("reserved28", "Reserved", 28)
3331 Reserved36 = bytes("reserved36", "Reserved", 36)
3332 Reserved44 = bytes("reserved44", "Reserved", 44)
3333 Reserved48 = bytes("reserved48", "Reserved", 48)
3334 Reserved51 = bytes("reserved51", "Reserved", 51)
3335 Reserved56 = bytes("reserved56", "Reserved", 56)
3336 Reserved64 = bytes("reserved64", "Reserved", 64)
3337 Reserved120 = bytes("reserved120", "Reserved", 120)
3338 ReservedOrDirectoryNumber = uint32("reserved_or_directory_number", "Reserved or Directory Number (see EAFlags)")
3339 ResourceCount = uint32("resource_count", "Resource Count")
3340 ResourceForkSize = uint32("resource_fork_size", "Resource Fork Size")
3341 ResourceName = stringz("resource_name", "Resource Name")
3342 ResourceSignature = fw_string("resource_sig", "Resource Signature", 4)
3343 RestoreTime = uint32("restore_time", "Restore Time")
3344 Restriction = uint32("restriction", "Disk Space Restriction")
3345 RestrictionsEnforced = val_string8("restrictions_enforced", "Disk Restrictions Enforce Flag", [
3346 [ 0x00, "Enforced" ],
3347 [ 0xff, "Not Enforced" ],
3349 ReturnInfoCount = uint32("return_info_count", "Return Information Count")
3350 ReturnInfoMask = bitfield16("ret_info_mask", "Return Information", [
3351 bf_boolean16(0x0001, "ret_info_mask_fname", "Return File Name Information"),
3352 bf_boolean16(0x0002, "ret_info_mask_alloc", "Return Allocation Space Information"),
3353 bf_boolean16(0x0004, "ret_info_mask_attr", "Return Attribute Information"),
3354 bf_boolean16(0x0008, "ret_info_mask_size", "Return Size Information"),
3355 bf_boolean16(0x0010, "ret_info_mask_tspace", "Return Total Space Information"),
3356 bf_boolean16(0x0020, "ret_info_mask_eattr", "Return Extended Attributes Information"),
3357 bf_boolean16(0x0040, "ret_info_mask_arch", "Return Archive Information"),
3358 bf_boolean16(0x0080, "ret_info_mask_mod", "Return Modify Information"),
3359 bf_boolean16(0x0100, "ret_info_mask_create", "Return Creation Information"),
3360 bf_boolean16(0x0200, "ret_info_mask_ns", "Return Name Space Information"),
3361 bf_boolean16(0x0400, "ret_info_mask_dir", "Return Directory Information"),
3362 bf_boolean16(0x0800, "ret_info_mask_rights", "Return Rights Information"),
3363 bf_boolean16(0x1000, "ret_info_mask_id", "Return ID Information"),
3364 bf_boolean16(0x2000, "ret_info_mask_ns_attr", "Return Name Space Attributes Information"),
3365 bf_boolean16(0x4000, "ret_info_mask_actual", "Return Actual Information"),
3366 bf_boolean16(0x8000, "ret_info_mask_logical", "Return Logical Information"),
3368 ReturnedListCount = uint32("returned_list_count", "Returned List Count")
3369 Revision = uint32("revision", "Revision")
3370 RevisionNumber = uint8("revision_number", "Revision")
3371 RevQueryFlag = val_string8("rev_query_flag", "Revoke Rights Query Flag", [
3372 [ 0x00, "Do not query the locks engine for access rights" ],
3373 [ 0x01, "Query the locks engine and return the access rights" ],
3375 RightsGrantMask = bitfield8("rights_grant_mask", "Grant Rights", [
3376 bf_boolean8(0x01, "rights_grant_mask_read", "Read"),
3377 bf_boolean8(0x02, "rights_grant_mask_write", "Write"),
3378 bf_boolean8(0x04, "rights_grant_mask_open", "Open"),
3379 bf_boolean8(0x08, "rights_grant_mask_create", "Create"),
3380 bf_boolean8(0x10, "rights_grant_mask_del", "Delete"),
3381 bf_boolean8(0x20, "rights_grant_mask_parent", "Parental"),
3382 bf_boolean8(0x40, "rights_grant_mask_search", "Search"),
3383 bf_boolean8(0x80, "rights_grant_mask_mod", "Modify"),
3385 RightsRevokeMask = bitfield8("rights_revoke_mask", "Revoke Rights", [
3386 bf_boolean8(0x01, "rights_revoke_mask_read", "Read"),
3387 bf_boolean8(0x02, "rights_revoke_mask_write", "Write"),
3388 bf_boolean8(0x04, "rights_revoke_mask_open", "Open"),
3389 bf_boolean8(0x08, "rights_revoke_mask_create", "Create"),
3390 bf_boolean8(0x10, "rights_revoke_mask_del", "Delete"),
3391 bf_boolean8(0x20, "rights_revoke_mask_parent", "Parental"),
3392 bf_boolean8(0x40, "rights_revoke_mask_search", "Search"),
3393 bf_boolean8(0x80, "rights_revoke_mask_mod", "Modify"),
3395 RIPSocketNumber = uint16("rip_socket_num", "RIP Socket Number")
3396 RIPSocketNumber.Display("BASE_HEX")
3397 RouterDownFlag = boolean8("router_dn_flag", "Router Down Flag")
3398 RPCccode = val_string16("rpc_c_code", "RPC Completion Code", [
3399 [ 0x0000, "Successful" ],
3401 RTagNumber = uint32("r_tag_num", "Resource Tag Number")
3402 RTagNumber.Display("BASE_HEX")
3403 RpyNearestSrvFlag = boolean8("rpy_nearest_srv_flag", "Reply to Nearest Server Flag")
3405 SalvageableFileEntryNumber = uint32("salvageable_file_entry_number", "Salvageable File Entry Number")
3406 SalvageableFileEntryNumber.Display("BASE_HEX")
3407 SAPSocketNumber = uint16("sap_socket_number", "SAP Socket Number")
3408 SAPSocketNumber.Display("BASE_HEX")
3409 ScanItems = uint32("scan_items", "Number of Items returned from Scan")
3410 SearchAttributes = bitfield8("sattr", "Search Attributes", [
3411 bf_boolean8(0x01, "sattr_ronly", "Read-Only Files Allowed"),
3412 bf_boolean8(0x02, "sattr_hid", "Hidden Files Allowed"),
3413 bf_boolean8(0x04, "sattr_sys", "System Files Allowed"),
3414 bf_boolean8(0x08, "sattr_exonly", "Execute-Only Files Allowed"),
3415 bf_boolean8(0x10, "sattr_sub", "Subdirectories Only"),
3416 bf_boolean8(0x20, "sattr_archive", "Archive"),
3417 bf_boolean8(0x40, "sattr_execute_confirm", "Execute Confirm"),
3418 bf_boolean8(0x80, "sattr_shareable", "Shareable"),
3420 SearchAttributesLow = bitfield16("search_att_low", "Search Attributes", [
3421 bf_boolean16(0x0001, "search_att_read_only", "Read-Only"),
3422 bf_boolean16(0x0002, "search_att_hidden", "Hidden Files Allowed"),
3423 bf_boolean16(0x0004, "search_att_system", "System"),
3424 bf_boolean16(0x0008, "search_att_execute_only", "Execute-Only"),
3425 bf_boolean16(0x0010, "search_att_sub", "Subdirectories Only"),
3426 bf_boolean16(0x0020, "search_att_archive", "Archive"),
3427 bf_boolean16(0x0040, "search_att_execute_confirm", "Execute Confirm"),
3428 bf_boolean16(0x0080, "search_att_shareable", "Shareable"),
3429 bf_boolean16(0x8000, "search_attr_all_files", "All Files and Directories"),
3431 SearchBitMap = bitfield8("search_bit_map", "Search Bit Map", [
3432 bf_boolean8(0x01, "search_bit_map_hidden", "Hidden"),
3433 bf_boolean8(0x02, "search_bit_map_sys", "System"),
3434 bf_boolean8(0x04, "search_bit_map_sub", "Subdirectory"),
3435 bf_boolean8(0x08, "search_bit_map_files", "Files"),
3437 SearchConnNumber = uint32("search_conn_number", "Search Connection Number")
3438 SearchInstance = uint32("search_instance", "Search Instance")
3439 SearchNumber = uint32("search_number", "Search Number")
3440 SearchPattern = nstring8("search_pattern", "Search Pattern")
3441 SearchSequence = bytes("search_sequence", "Search Sequence", 9)
3442 SearchSequenceWord = uint16("search_sequence_word", "Search Sequence", BE)
3443 Second = uint8("s_second", "Seconds")
3444 SecondsRelativeToTheYear2000 = uint32("sec_rel_to_y2k", "Seconds Relative to the Year 2000")
3445 SecretStoreVerb = val_string8("ss_verb", "Secret Store Verb",[
3446 [ 0x00, "Query Server" ],
3447 [ 0x01, "Read App Secrets" ],
3448 [ 0x02, "Write App Secrets" ],
3449 [ 0x03, "Add Secret ID" ],
3450 [ 0x04, "Remove Secret ID" ],
3451 [ 0x05, "Remove SecretStore" ],
3452 [ 0x06, "Enumerate Secret IDs" ],
3453 [ 0x07, "Unlock Store" ],
3454 [ 0x08, "Set Master Password" ],
3455 [ 0x09, "Get Service Information" ],
3457 SecurityEquivalentList = fw_string("security_equiv_list", "Security Equivalent List", 128)
3458 SecurityFlag = bitfield8("security_flag", "Security Flag", [
3459 bf_boolean8(0x01, "checksuming", "Checksumming"),
3460 bf_boolean8(0x02, "signature", "Signature"),
3461 bf_boolean8(0x04, "complete_signatures", "Complete Signatures"),
3462 bf_boolean8(0x08, "encryption", "Encryption"),
3463 bf_boolean8(0x80, "large_internet_packets", "Large Internet Packets (LIP) Disabled"),
3465 SecurityRestrictionVersion = uint8("security_restriction_version", "Security Restriction Version")
3466 SectorsPerBlock = uint8("sectors_per_block", "Sectors Per Block")
3467 SectorsPerCluster = uint16("sectors_per_cluster", "Sectors Per Cluster" )
3468 SectorsPerClusterLong = uint32("sectors_per_cluster_long", "Sectors Per Cluster" )
3469 SectorsPerTrack = uint8("sectors_per_track", "Sectors Per Track")
3470 SectorSize = uint32("sector_size", "Sector Size")
3471 SemaphoreHandle = uint32("semaphore_handle", "Semaphore Handle")
3472 SemaphoreName = nstring8("semaphore_name", "Semaphore Name")
3473 SemaphoreNameLen = uint8("semaphore_name_len", "Semaphore Name Len")
3474 SemaphoreOpenCount = uint8("semaphore_open_count", "Semaphore Open Count")
3475 SemaphoreShareCount = uint8("semaphore_share_count", "Semaphore Share Count")
3476 SemaphoreTimeOut = uint16("semaphore_time_out", "Semaphore Time Out")
3477 SemaphoreValue = uint16("semaphore_value", "Semaphore Value")
3478 SendStatus = val_string8("send_status", "Send Status", [
3479 [ 0x00, "Successful" ],
3480 [ 0x01, "Illegal Station Number" ],
3481 [ 0x02, "Client Not Logged In" ],
3482 [ 0x03, "Client Not Accepting Messages" ],
3483 [ 0x04, "Client Already has a Message" ],
3484 [ 0x96, "No Alloc Space for the Message" ],
3485 [ 0xfd, "Bad Station Number" ],
3486 [ 0xff, "Failure" ],
3488 SequenceByte = uint8("sequence_byte", "Sequence")
3489 SequenceNumber = uint32("sequence_number", "Sequence Number")
3490 SequenceNumber.Display("BASE_HEX")
3491 ServerAddress = bytes("server_address", "Server Address", 12)
3492 ServerAppNumber = uint16("server_app_num", "Server App Number")
3493 ServerIDList = uint32("server_id_list", "Server ID List")
3494 ServerID = uint32("server_id_number", "Server ID", BE )
3495 ServerID.Display("BASE_HEX")
3496 ServerInfoFlags = val_string16("server_info_flags", "Server Information Flags", [
3497 [ 0x0000, "This server is not a member of a Cluster" ],
3498 [ 0x0001, "This server is a member of a Cluster" ],
3500 serverListFlags = uint32("server_list_flags", "Server List Flags")
3501 ServerName = fw_string("server_name", "Server Name", 48)
3502 serverName50 = fw_string("server_name50", "Server Name", 50)
3503 ServerNameLen = nstring8("server_name_len", "Server Name")
3504 ServerNameStringz = stringz("server_name_stringz", "Server Name")
3505 ServerNetworkAddress = bytes("server_network_address", "Server Network Address", 10)
3506 ServerNode = bytes("server_node", "Server Node", 6)
3507 ServerSerialNumber = uint32("server_serial_number", "Server Serial Number")
3508 ServerStation = uint8("server_station", "Server Station")
3509 ServerStationLong = uint32("server_station_long", "Server Station")
3510 ServerStationList = uint8("server_station_list", "Server Station List")
3511 ServerStatusRecord = fw_string("server_status_record", "Server Status Record", 64)
3512 ServerTaskNumber = uint8("server_task_number", "Server Task Number")
3513 ServerTaskNumberLong = uint32("server_task_number_long", "Server Task Number")
3514 ServerType = uint16("server_type", "Server Type")
3515 ServerType.Display("BASE_HEX")
3516 ServerUtilization = uint32("server_utilization", "Server Utilization")
3517 ServerUtilizationPercentage = uint8("server_utilization_percentage", "Server Utilization Percentage")
3518 ServiceType = val_string16("Service_type", "Service Type", [
3519 [ 0x0000, "Unknown" ],
3521 [ 0x0002, "User group" ],
3522 [ 0x0003, "Print queue" ],
3523 [ 0x0004, "NetWare file server" ],
3524 [ 0x0005, "Job server" ],
3525 [ 0x0006, "Gateway" ],
3526 [ 0x0007, "Print server" ],
3527 [ 0x0008, "Archive queue" ],
3528 [ 0x0009, "Archive server" ],
3529 [ 0x000a, "Job queue" ],
3530 [ 0x000b, "Administration" ],
3531 [ 0x0021, "NAS SNA gateway" ],
3532 [ 0x0026, "Remote bridge server" ],
3533 [ 0x0027, "TCP/IP gateway" ],
3535 SetCmdCategory = val_string8("set_cmd_catagory", "Set Command Catagory", [
3536 [ 0x00, "Communications" ],
3538 [ 0x02, "File Cache" ],
3539 [ 0x03, "Directory Cache" ],
3540 [ 0x04, "File System" ],
3542 [ 0x06, "Transaction Tracking" ],
3546 [ 0x0a, "Miscellaneous" ],
3547 [ 0x0b, "Error Handling" ],
3548 [ 0x0c, "Directory Services" ],
3549 [ 0x0d, "MultiProcessor" ],
3550 [ 0x0e, "Service Location Protocol" ],
3551 [ 0x0f, "Licensing Services" ],
3553 SetCmdFlags = bitfield8("set_cmd_flags", "Set Command Flags", [
3554 bf_boolean8(0x01, "cmd_flags_startup_only", "Startup.ncf Only"),
3555 bf_boolean8(0x02, "cmd_flags_hidden", "Hidden"),
3556 bf_boolean8(0x04, "cmd_flags_advanced", "Advanced"),
3557 bf_boolean8(0x08, "cmd_flags_later", "Restart Server Required to Take Effect"),
3558 bf_boolean8(0x80, "cmd_flags_secure", "Console Secured"),
3560 SetCmdName = stringz("set_cmd_name", "Set Command Name")
3561 SetCmdType = val_string8("set_cmd_type", "Set Command Type", [
3562 [ 0x00, "Numeric Value" ],
3563 [ 0x01, "Boolean Value" ],
3564 [ 0x02, "Ticks Value" ],
3565 [ 0x04, "Time Value" ],
3566 [ 0x05, "String Value" ],
3567 [ 0x06, "Trigger Value" ],
3568 [ 0x07, "Numeric Value" ],
3570 SetCmdValueNum = uint32("set_cmd_value_num", "Set Command Value")
3571 SetCmdValueString = stringz("set_cmd_value_string", "Set Command Value")
3572 SetParmName = stringz("set_parm_name", "Set Parameter Name")
3573 SFTErrorTable = bytes("sft_error_table", "SFT Error Table", 60)
3574 SFTSupportLevel = val_string8("sft_support_level", "SFT Support Level", [
3575 [ 0x01, "Server Offers Hot Disk Error Fixing" ],
3576 [ 0x02, "Server Offers Disk Mirroring and Transaction Tracking" ],
3577 [ 0x03, "Server Offers Physical Server Mirroring" ],
3579 ShareableLockCount = uint16("shareable_lock_count", "Shareable Lock Count")
3580 SharedMemoryAddresses = bytes("shared_memory_addresses", "Shared Memory Addresses", 10)
3581 ShortName = fw_string("short_name", "Short Name", 12)
3582 ShortStkName = fw_string("short_stack_name", "Short Stack Name", 16)
3583 SiblingCount = uint32("sibling_count", "Sibling Count")
3584 SMIDs = uint32("smids", "Storage Media ID's")
3585 SoftwareDescription = fw_string("software_description", "Software Description", 65)
3586 SoftwareDriverType = uint8("software_driver_type", "Software Driver Type")
3587 SoftwareMajorVersionNumber = uint8("software_major_version_number", "Software Major Version Number")
3588 SoftwareMinorVersionNumber = uint8("software_minor_version_number", "Software Minor Version Number")
3589 SourceDirHandle = uint8("source_dir_handle", "Source Directory Handle")
3590 sourceOriginateTime = bytes("source_originate_time", "Source Originate Time", 8)
3591 sourceOriginateTime.Display("BASE_HEX")
3592 SourcePath = nstring8("source_path", "Source Path")
3593 SourcePathComponentCount = uint8("source_component_count", "Source Path Component Count")
3594 sourceReturnTime = bytes("source_return_time", "Source Return Time", 8)
3595 sourceReturnTime.Display("BASE_HEX")
3596 SpaceUsed = uint32("space_used", "Space Used")
3597 SpaceMigrated = uint32("space_migrated", "Space Migrated")
3598 SrcNameSpace = val_string8("src_name_space", "Source Name Space", [
3599 [ 0x00, "DOS Name Space" ],
3600 [ 0x01, "MAC Name Space" ],
3601 [ 0x02, "NFS Name Space" ],
3602 [ 0x04, "Long Name Space" ],
3604 SupModID = uint32("sup_mod_id", "Sup Mod ID")
3605 StackCount = uint32("stack_count", "Stack Count")
3606 StackFullNameStr = nstring8("stack_full_name_str", "Stack Full Name")
3607 StackMajorVN = uint8("stack_major_vn", "Stack Major Version Number")
3608 StackMinorVN = uint8("stack_minor_vn", "Stack Minor Version Number")
3609 StackNumber = uint32("stack_number", "Stack Number")
3610 StartConnNumber = uint32("start_conn_num", "Starting Connection Number")
3611 StartingBlock = uint16("starting_block", "Starting Block")
3612 StartingNumber = uint32("starting_number", "Starting Number")
3613 StartingSearchNumber = uint16("start_search_number", "Start Search Number")
3614 StartNumber = uint32("start_number", "Start Number")
3615 startNumberFlag = uint16("start_number_flag", "Start Number Flag")
3616 StartVolumeNumber = uint32("start_volume_number", "Starting Volume Number")
3617 StationList = uint32("station_list", "Station List")
3618 StationNumber = bytes("station_number", "Station Number", 3)
3619 StatMajorVersion = uint8("stat_major_version", "Statistics Table Major Version")
3620 StatMinorVersion = uint8("stat_minor_version", "Statistics Table Minor Version")
3621 Status = bitfield16("status", "Status", [
3622 bf_boolean16(0x0001, "user_info_logged_in", "Logged In"),
3623 bf_boolean16(0x0002, "user_info_being_abort", "Being Aborted"),
3624 bf_boolean16(0x0004, "user_info_audited", "Audited"),
3625 bf_boolean16(0x0008, "user_info_need_sec", "Needs Security Change"),
3626 bf_boolean16(0x0010, "user_info_mac_station", "MAC Station"),
3627 bf_boolean16(0x0020, "user_info_temp_authen", "Temporary Authenticated"),
3628 bf_boolean16(0x0040, "user_info_audit_conn", "Audit Connection Recorded"),
3629 bf_boolean16(0x0080, "user_info_dsaudit_conn", "DS Audit Connection Recorded"),
3630 bf_boolean16(0x0100, "user_info_logout", "Logout in Progress"),
3631 bf_boolean16(0x0200, "user_info_int_login", "Internal Login"),
3632 bf_boolean16(0x0400, "user_info_bindery", "Bindery Connection"),
3634 StatusFlagBits = bitfield32("status_flag_bits", "Status Flag", [
3635 bf_boolean32(0x00000001, "status_flag_bits_suballoc", "Sub Allocation"),
3636 bf_boolean32(0x00000002, "status_flag_bits_comp", "Compression"),
3637 bf_boolean32(0x00000004, "status_flag_bits_migrate", "Migration"),
3638 bf_boolean32(0x00000008, "status_flag_bits_audit", "Audit"),
3639 bf_boolean32(0x00000010, "status_flag_bits_ro", "Read Only"),
3640 bf_boolean32(0x00000020, "status_flag_bits_im_purge", "Immediate Purge"),
3641 bf_boolean32(0x80000000, "status_flag_bits_nss", "NSS Volume"),
3643 SubAllocClusters = uint32("sub_alloc_clusters", "Sub Alloc Clusters")
3644 SubAllocFreeableClusters = uint32("sub_alloc_freeable_clusters", "Sub Alloc Freeable Clusters")
3645 Subdirectory = uint32("sub_directory", "Subdirectory")
3646 Subdirectory.Display("BASE_HEX")
3647 SuggestedFileSize = uint32("suggested_file_size", "Suggested File Size")
3648 SupportModuleID = uint32("support_module_id", "Support Module ID")
3649 SynchName = nstring8("synch_name", "Synch Name")
3650 SystemIntervalMarker = uint32("system_interval_marker", "System Interval Marker")
3652 TabSize = uint8( "tab_size", "Tab Size" )
3653 TargetClientList = uint8("target_client_list", "Target Client List")
3654 TargetConnectionNumber = uint16("target_connection_number", "Target Connection Number")
3655 TargetDirectoryBase = uint32("target_directory_base", "Target Directory Base")
3656 TargetDirHandle = uint8("target_dir_handle", "Target Directory Handle")
3657 TargetEntryID = uint32("target_entry_id", "Target Entry ID")
3658 TargetEntryID.Display("BASE_HEX")
3659 TargetExecutionTime = bytes("target_execution_time", "Target Execution Time", 6)
3660 TargetFileHandle = bytes("target_file_handle", "Target File Handle", 6)
3661 TargetFileOffset = uint32("target_file_offset", "Target File Offset")
3662 TargetMessage = nstring8("target_message", "Message")
3663 TargetPrinter = uint8( "target_ptr", "Target Printer" )
3664 targetReceiveTime = bytes("target_receive_time", "Target Receive Time", 8)
3665 targetReceiveTime.Display("BASE_HEX")
3666 TargetServerIDNumber = uint32("target_server_id_number", "Target Server ID Number", BE )
3667 TargetServerIDNumber.Display("BASE_HEX")
3668 targetTransmitTime = bytes("target_transmit_time", "Target Transmit Time", 8)
3669 targetTransmitTime.Display("BASE_HEX")
3670 TaskNumByte = uint8("task_num_byte", "Task Number")
3671 TaskNumber = uint32("task_number", "Task Number")
3672 TaskNumberWord = uint16("task_number_word", "Task Number")
3673 TextJobDescription = fw_string("text_job_description", "Text Job Description", 50)
3674 ThrashingCount = uint16("thrashing_count", "Thrashing Count")
3675 TimeoutLimit = uint16("timeout_limit", "Timeout Limit")
3676 TimesyncStatus = bitfield32("timesync_status_flags", "Timesync Status", [
3677 bf_boolean32(0x00000001, "timesync_status_sync", "Time is Synchronized"),
3678 bf_boolean32(0x00000002, "timesync_status_net_sync", "Time is Synchronized to the Network"),
3679 bf_boolean32(0x00000004, "timesync_status_active", "Time Synchronization is Active"),
3680 bf_boolean32(0x00000008, "timesync_status_external", "External Time Synchronization Active"),
3681 bf_val_str32(0x00000700, "timesync_status_server_type", "Time Server Type", [
3682 [ 0x01, "Client Time Server" ],
3683 [ 0x02, "Secondary Time Server" ],
3684 [ 0x03, "Primary Time Server" ],
3685 [ 0x04, "Reference Time Server" ],
3686 [ 0x05, "Single Reference Time Server" ],
3688 bf_boolean32(0x000f0000, "timesync_status_ext_sync", "External Clock Status"),
3690 TimeToNet = uint16("time_to_net", "Time To Net")
3691 TotalBlocks = uint32("total_blocks", "Total Blocks")
3692 TotalBlocksToDecompress = uint32("total_blks_to_dcompress", "Total Blocks To Decompress")
3693 TotalBytesRead = bytes("user_info_ttl_bytes_rd", "Total Bytes Read", 6)
3694 TotalBytesWritten = bytes("user_info_ttl_bytes_wrt", "Total Bytes Written", 6)
3695 TotalCacheWrites = uint32("total_cache_writes", "Total Cache Writes")
3696 TotalChangedFATs = uint32("total_changed_fats", "Total Changed FAT Entries")
3697 TotalCommonCnts = uint32("total_common_cnts", "Total Common Counts")
3698 TotalCntBlocks = uint32("total_cnt_blocks", "Total Count Blocks")
3699 TotalDataStreamDiskSpaceAlloc = uint32("total_stream_size_struct_space_alloc", "Total Data Stream Disk Space Alloc")
3700 TotalDirectorySlots = uint16("total_directory_slots", "Total Directory Slots")
3701 TotalDirectoryEntries = uint32("total_dir_entries", "Total Directory Entries")
3702 TotalDynamicSpace = uint32("total_dynamic_space", "Total Dynamic Space")
3703 TotalExtendedDirectoryExtants = uint32("total_extended_directory_extants", "Total Extended Directory Extants")
3704 TotalFileServicePackets = uint32("total_file_service_packets", "Total File Service Packets")
3705 TotalFilesOpened = uint32("total_files_opened", "Total Files Opened")
3706 TotalLFSCounters = uint32("total_lfs_counters", "Total LFS Counters")
3707 TotalOffspring = uint16("total_offspring", "Total Offspring")
3708 TotalOtherPackets = uint32("total_other_packets", "Total Other Packets")
3709 TotalQueueJobs = uint32("total_queue_jobs", "Total Queue Jobs")
3710 TotalReadRequests = uint32("total_read_requests", "Total Read Requests")
3711 TotalRequest = uint32("total_request", "Total Requests")
3712 TotalRequestPackets = uint32("total_request_packets", "Total Request Packets")
3713 TotalRoutedPackets = uint32("total_routed_packets", "Total Routed Packets")
3714 TotalRxPkts = uint32("total_rx_pkts", "Total Receive Packets")
3715 TotalServerMemory = uint16("total_server_memory", "Total Server Memory", BE)
3716 TotalTransactionsBackedOut = uint32("total_trans_backed_out", "Total Transactions Backed Out")
3717 TotalTransactionsPerformed = uint32("total_trans_performed", "Total Transactions Performed")
3718 TotalTxPkts = uint32("total_tx_pkts", "Total Transmit Packets")
3719 TotalUnfilledBackoutRequests = uint16("total_unfilled_backout_requests", "Total Unfilled Backout Requests")
3720 TotalVolumeClusters = uint16("total_volume_clusters", "Total Volume Clusters")
3721 TotalWriteRequests = uint32("total_write_requests", "Total Write Requests")
3722 TotalWriteTransactionsPerformed = uint32("total_write_trans_performed", "Total Write Transactions Performed")
3723 TrackOnFlag = boolean8("track_on_flag", "Track On Flag")
3724 TransactionDiskSpace = uint16("transaction_disk_space", "Transaction Disk Space")
3725 TransactionFATAllocations = uint32("transaction_fat_allocations", "Transaction FAT Allocations")
3726 TransactionFileSizeChanges = uint32("transaction_file_size_changes", "Transaction File Size Changes")
3727 TransactionFilesTruncated = uint32("transaction_files_truncated", "Transaction Files Truncated")
3728 TransactionNumber = uint32("transaction_number", "Transaction Number")
3729 TransactionTrackingEnabled = uint8("transaction_tracking_enabled", "Transaction Tracking Enabled")
3730 TransactionTrackingFlag = uint16("tts_flag", "Transaction Tracking Flag")
3731 TransactionTrackingSupported = uint8("transaction_tracking_supported", "Transaction Tracking Supported")
3732 TransactionVolumeNumber = uint16("transaction_volume_number", "Transaction Volume Number")
3733 TransportType = val_string8("transport_type", "Communications Type", [
3734 [ 0x01, "Internet Packet Exchange (IPX)" ],
3735 [ 0x05, "User Datagram Protocol (UDP)" ],
3736 [ 0x06, "Transmission Control Protocol (TCP)" ],
3738 TreeLength = uint32("tree_length", "Tree Length")
3739 TreeName = nstring32("tree_name", "Tree Name")
3740 TreeName.NWUnicode()
3741 TrusteeRights = bitfield16("trustee_rights_low", "Trustee Rights", [
3742 bf_boolean16(0x0001, "trustee_rights_read", "Read"),
3743 bf_boolean16(0x0002, "trustee_rights_write", "Write"),
3744 bf_boolean16(0x0004, "trustee_rights_open", "Open"),
3745 bf_boolean16(0x0008, "trustee_rights_create", "Create"),
3746 bf_boolean16(0x0010, "trustee_rights_del", "Delete"),
3747 bf_boolean16(0x0020, "trustee_rights_parent", "Parental"),
3748 bf_boolean16(0x0040, "trustee_rights_search", "Search"),
3749 bf_boolean16(0x0080, "trustee_rights_modify", "Modify"),
3750 bf_boolean16(0x0100, "trustee_rights_super", "Supervisor"),
3752 TTSLevel = uint8("tts_level", "TTS Level")
3753 TrusteeSetNumber = uint8("trustee_set_number", "Trustee Set Number")
3754 TrusteeID = uint32("trustee_id_set", "Trustee ID")
3755 TrusteeID.Display("BASE_HEX")
3756 ttlCompBlks = uint32("ttl_comp_blks", "Total Compression Blocks")
3757 TtlDSDskSpaceAlloc = uint32("ttl_ds_disk_space_alloc", "Total Streams Space Allocated")
3758 TtlEAs = uint32("ttl_eas", "Total EA's")
3759 TtlEAsDataSize = uint32("ttl_eas_data_size", "Total EA's Data Size")
3760 TtlEAsKeySize = uint32("ttl_eas_key_size", "Total EA's Key Size")
3761 ttlIntermediateBlks = uint32("ttl_inter_blks", "Total Intermediate Blocks")
3762 TtlMigratedSize = uint32("ttl_migrated_size", "Total Migrated Size")
3763 TtlNumOfRTags = uint32("ttl_num_of_r_tags", "Total Number of Resource Tags")
3764 TtlNumOfSetCmds = uint32("ttl_num_of_set_cmds", "Total Number of Set Commands")
3765 TtlValuesLength = uint32("ttl_values_length", "Total Values Length")
3766 TtlWriteDataSize = uint32("ttl_write_data_size", "Total Write Data Size")
3767 TurboUsedForFileService = uint16("turbo_used_for_file_service", "Turbo Used For File Service")
3769 UnclaimedPkts = uint32("un_claimed_packets", "Unclaimed Packets")
3770 UnCompressableDataStreamsCount = uint32("un_compressable_data_streams_count", "Uncompressable Data Streams Count")
3771 Undefined8 = bytes("undefined_8", "Undefined", 8)
3772 Undefined28 = bytes("undefined_28", "Undefined", 28)
3773 UndefinedWord = uint16("undefined_word", "Undefined")
3774 UniqueID = uint8("unique_id", "Unique ID")
3775 UnknownByte = uint8("unknown_byte", "Unknown Byte")
3776 Unused = uint8("un_used", "Unused")
3777 UnusedBlocks = uint32("unused_blocks", "Unused Blocks")
3778 UnUsedDirectoryEntries = uint32("un_used_directory_entries", "Unused Directory Entries")
3779 UnusedDiskBlocks = uint32("unused_disk_blocks", "Unused Disk Blocks")
3780 UnUsedExtendedDirectoryExtants = uint32("un_used_extended_directory_extants", "Unused Extended Directory Extants")
3781 UpdateDate = uint16("update_date", "Update Date")
3783 UpdateID = uint32("update_id", "Update ID", BE)
3784 UpdateID.Display("BASE_HEX")
3785 UpdateTime = uint16("update_time", "Update Time")
3787 UseCount = val_string16("user_info_use_count", "Use Count", [
3788 [ 0x0000, "Connection is not in use" ],
3789 [ 0x0001, "Connection is in use" ],
3791 UsedBlocks = uint32("used_blocks", "Used Blocks")
3792 UserID = uint32("user_id", "User ID", BE)
3793 UserID.Display("BASE_HEX")
3794 UserLoginAllowed = val_string8("user_login_allowed", "Login Status", [
3795 [ 0x00, "Client Login Disabled" ],
3796 [ 0x01, "Client Login Enabled" ],
3799 UserName = nstring8("user_name", "User Name")
3800 UserName16 = fw_string("user_name_16", "User Name", 16)
3801 UserName48 = fw_string("user_name_48", "User Name", 48)
3802 UserType = uint16("user_type", "User Type")
3803 UTCTimeInSeconds = uint32("uts_time_in_seconds", "UTC Time in Seconds")
3805 ValueAvailable = val_string8("value_available", "Value Available", [
3806 [ 0x00, "Has No Value" ],
3807 [ 0xff, "Has Value" ],
3809 VAPVersion = uint8("vap_version", "VAP Version")
3810 VariableBitMask = uint32("variable_bit_mask", "Variable Bit Mask")
3811 VariableBitsDefined = uint16("variable_bits_defined", "Variable Bits Defined")
3812 VConsoleRevision = uint8("vconsole_rev", "Console Revision")
3813 VConsoleVersion = uint8("vconsole_ver", "Console Version")
3814 Verb = uint32("verb", "Verb")
3815 VerbData = uint8("verb_data", "Verb Data")
3816 version = uint32("version", "Version")
3817 VersionNumber = uint8("version_number", "Version")
3818 VertLocation = uint16("vert_location", "Vertical Location")
3819 VirtualConsoleVersion = uint8("virtual_console_version", "Virtual Console Version")
3820 VolumeID = uint32("volume_id", "Volume ID")
3821 VolumeID.Display("BASE_HEX")
3822 VolInfoReplyLen = uint16("vol_info_reply_len", "Volume Information Reply Length")
3823 VolumeCachedFlag = val_string8("volume_cached_flag", "Volume Cached Flag", [
3824 [ 0x00, "Volume is Not Cached" ],
3825 [ 0xff, "Volume is Cached" ],
3827 VolumeHashedFlag = val_string8("volume_hashed_flag", "Volume Hashed Flag", [
3828 [ 0x00, "Volume is Not Hashed" ],
3829 [ 0xff, "Volume is Hashed" ],
3831 VolumeLastModifiedDate = uint16("volume_last_modified_date", "Volume Last Modified Date")
3832 VolumeLastModifiedDate.NWDate()
3833 VolumeLastModifiedTime = uint16("volume_last_modified_time", "Volume Last Modified Time")
3834 VolumeLastModifiedTime.NWTime()
3835 VolumeMountedFlag = val_string8("volume_mounted_flag", "Volume Mounted Flag", [
3836 [ 0x00, "Volume is Not Mounted" ],
3837 [ 0xff, "Volume is Mounted" ],
3839 VolumeName = fw_string("volume_name", "Volume Name", 16)
3840 VolumeNameLen = nstring8("volume_name_len", "Volume Name")
3841 VolumeNameStringz = stringz("volume_name_stringz", "Volume Name")
3842 VolumeNumber = uint8("volume_number", "Volume Number")
3843 VolumeNumberLong = uint32("volume_number_long", "Volume Number")
3844 VolumeRemovableFlag = val_string8("volume_removable_flag", "Volume Removable Flag", [
3845 [ 0x00, "Disk Cannot be Removed from Server" ],
3846 [ 0xff, "Disk Can be Removed from Server" ],
3848 VolumeRequestFlags = val_string16("volume_request_flags", "Volume Request Flags", [
3849 [ 0x0000, "Return name with volume number" ],
3850 [ 0x0001, "Do not return name with volume number" ],
3852 VolumeSizeInClusters = uint32("volume_size_in_clusters", "Volume Size in Clusters")
3853 VolumesSupportedMax = uint16("volumes_supported_max", "Volumes Supported Max")
3854 VolumeType = val_string16("volume_type", "Volume Type", [
3855 [ 0x0000, "NetWare 386" ],
3856 [ 0x0001, "NetWare 286" ],
3857 [ 0x0002, "NetWare 386 Version 30" ],
3858 [ 0x0003, "NetWare 386 Version 31" ],
3860 WastedServerMemory = uint16("wasted_server_memory", "Wasted Server Memory", BE)
3861 WaitTime = uint32("wait_time", "Wait Time")
3863 Year = val_string8("year", "Year",[
3945 ##############################################################################
3947 ##############################################################################
3950 acctngInfo = struct("acctng_info_struct", [
3954 HeldConnectTimeInMinutes,
3958 ],"Accounting Information")
3959 AFP10Struct = struct("afp_10_struct", [
3983 ], "AFP Information" )
3984 AFP20Struct = struct("afp_20_struct", [
4010 ], "AFP Information" )
4011 ArchiveDateStruct = struct("archive_date_struct", [
4014 ArchiveIdStruct = struct("archive_id_struct", [
4017 ArchiveInfoStruct = struct("archive_info_struct", [
4021 ], "Archive Information")
4022 ArchiveTimeStruct = struct("archive_time_struct", [
4025 AttributesStruct = struct("attributes_struct", [
4029 authInfo = struct("auth_info_struct", [
4034 BoardNameStruct = struct("board_name_struct", [
4039 CacheInfo = struct("cache_info", [
4040 uint32("max_byte_cnt", "Maximum Byte Count"),
4041 uint32("min_num_of_cache_buff", "Minimum Number Of Cache Buffers"),
4042 uint32("min_cache_report_thresh", "Minimum Cache Report Threshold"),
4043 uint32("alloc_waiting", "Allocate Waiting Count"),
4044 uint32("ndirty_blocks", "Number of Dirty Blocks"),
4045 uint32("cache_dirty_wait_time", "Cache Dirty Wait Time"),
4046 uint32("cache_max_concur_writes", "Cache Maximum Concurrent Writes"),
4047 uint32("max_dirty_time", "Maximum Dirty Time"),
4048 uint32("num_dir_cache_buff", "Number Of Directory Cache Buffers"),
4049 uint32("cache_byte_to_block", "Cache Byte To Block Shift Factor"),
4050 ], "Cache Information")
4051 CommonLanStruc = struct("common_lan_struct", [
4052 boolean8("not_supported_mask", "Bit Counter Supported"),
4054 uint32("total_tx_packet_count", "Total Transmit Packet Count"),
4055 uint32("total_rx_packet_count", "Total Receive Packet Count"),
4056 uint32("no_ecb_available_count", "No ECB Available Count"),
4057 uint32("packet_tx_too_big_count", "Transmit Packet Too Big Count"),
4058 uint32("packet_tx_too_small_count", "Transmit Packet Too Small Count"),
4059 uint32("packet_rx_overflow_count", "Receive Packet Overflow Count"),
4060 uint32("packet_rx_too_big_count", "Receive Packet Too Big Count"),
4061 uint32("packet_rs_too_small_count", "Receive Packet Too Small Count"),
4062 uint32("packet_tx_misc_error_count", "Transmit Packet Misc Error Count"),
4063 uint32("packet_rx_misc_error_count", "Receive Packet Misc Error Count"),
4064 uint32("retry_tx_count", "Transmit Retry Count"),
4065 uint32("checksum_error_count", "Checksum Error Count"),
4066 uint32("hardware_rx_mismatch_count", "Hardware Receive Mismatch Count"),
4067 ], "Common LAN Information")
4068 CompDeCompStat = struct("comp_d_comp_stat", [
4069 uint32("cmphitickhigh", "Compress High Tick"),
4070 uint32("cmphitickcnt", "Compress High Tick Count"),
4071 uint32("cmpbyteincount", "Compress Byte In Count"),
4072 uint32("cmpbyteoutcnt", "Compress Byte Out Count"),
4073 uint32("cmphibyteincnt", "Compress High Byte In Count"),
4074 uint32("cmphibyteoutcnt", "Compress High Byte Out Count"),
4075 uint32("decphitickhigh", "DeCompress High Tick"),
4076 uint32("decphitickcnt", "DeCompress High Tick Count"),
4077 uint32("decpbyteincount", "DeCompress Byte In Count"),
4078 uint32("decpbyteoutcnt", "DeCompress Byte Out Count"),
4079 uint32("decphibyteincnt", "DeCompress High Byte In Count"),
4080 uint32("decphibyteoutcnt", "DeCompress High Byte Out Count"),
4081 ], "Compression/Decompression Information")
4082 ConnFileStruct = struct("conn_file_struct", [
4083 ConnectionNumberWord,
4088 ], "File Connection Information")
4089 ConnStruct = struct("conn_struct", [
4095 DirectoryEntryNumberWord,
4097 ], "Connection Information")
4098 ConnTaskStruct = struct("conn_task_struct", [
4099 ConnectionNumberByte,
4101 ], "Task Information")
4102 Counters = struct("counters_struct", [
4103 uint32("read_exist_blck", "Read Existing Block Count"),
4104 uint32("read_exist_write_wait", "Read Existing Write Wait Count"),
4105 uint32("read_exist_part_read", "Read Existing Partial Read Count"),
4106 uint32("read_exist_read_err", "Read Existing Read Error Count"),
4107 uint32("wrt_blck_cnt", "Write Block Count"),
4108 uint32("wrt_entire_blck", "Write Entire Block Count"),
4109 uint32("internl_dsk_get", "Internal Disk Get Count"),
4110 uint32("internl_dsk_get_need_to_alloc", "Internal Disk Get Need To Allocate Count"),
4111 uint32("internl_dsk_get_someone_beat", "Internal Disk Get Someone Beat My Count"),
4112 uint32("internl_dsk_get_part_read", "Internal Disk Get Partial Read Count"),
4113 uint32("internl_dsk_get_read_err", "Internal Disk Get Read Error Count"),
4114 uint32("async_internl_dsk_get", "Async Internal Disk Get Count"),
4115 uint32("async_internl_dsk_get_need_to_alloc", "Async Internal Disk Get Need To Alloc"),
4116 uint32("async_internl_dsk_get_someone_beat", "Async Internal Disk Get Someone Beat Me"),
4117 uint32("err_doing_async_read", "Error Doing Async Read Count"),
4118 uint32("internl_dsk_get_no_read", "Internal Disk Get No Read Count"),
4119 uint32("internl_dsk_get_no_read_alloc", "Internal Disk Get No Read Allocate Count"),
4120 uint32("internl_dsk_get_no_read_someone_beat", "Internal Disk Get No Read Someone Beat Me Count"),
4121 uint32("internl_dsk_write", "Internal Disk Write Count"),
4122 uint32("internl_dsk_write_alloc", "Internal Disk Write Allocate Count"),
4123 uint32("internl_dsk_write_someone_beat", "Internal Disk Write Someone Beat Me Count"),
4124 uint32("write_err", "Write Error Count"),
4125 uint32("wait_on_sema", "Wait On Semaphore Count"),
4126 uint32("alloc_blck_i_had_to_wait_for", "Allocate Block I Had To Wait For Someone Count"),
4127 uint32("alloc_blck", "Allocate Block Count"),
4128 uint32("alloc_blck_i_had_to_wait", "Allocate Block I Had To Wait Count"),
4129 ], "Disk Counter Information")
4130 CPUInformation = struct("cpu_information", [
4146 ], "CPU Information")
4147 CreationDateStruct = struct("creation_date_struct", [
4150 CreationInfoStruct = struct("creation_info_struct", [
4154 ], "Creation Information")
4155 CreationTimeStruct = struct("creation_time_struct", [
4158 CustomCntsInfo = struct("custom_cnts_info", [
4159 CustomVariableValue,
4161 ], "Custom Counters" )
4162 DataStreamSizeStruct = struct("data_stream_size_struct", [
4165 DirCacheInfo = struct("dir_cache_info", [
4166 uint32("min_time_since_file_delete", "Minimum Time Since File Delete"),
4167 uint32("abs_min_time_since_file_delete", "Absolute Minimum Time Since File Delete"),
4168 uint32("min_num_of_dir_cache_buff", "Minimum Number Of Directory Cache Buffers"),
4169 uint32("max_num_of_dir_cache_buff", "Maximum Number Of Directory Cache Buffers"),
4170 uint32("num_of_dir_cache_buff", "Number Of Directory Cache Buffers"),
4171 uint32("dc_min_non_ref_time", "DC Minimum Non-Referenced Time"),
4172 uint32("dc_wait_time_before_new_buff", "DC Wait Time Before New Buffer"),
4173 uint32("dc_max_concurrent_writes", "DC Maximum Concurrent Writes"),
4174 uint32("dc_dirty_wait_time", "DC Dirty Wait Time"),
4175 uint32("dc_double_read_flag", "DC Double Read Flag"),
4176 uint32("map_hash_node_count", "Map Hash Node Count"),
4177 uint32("space_restriction_node_count", "Space Restriction Node Count"),
4178 uint32("trustee_list_node_count", "Trustee List Node Count"),
4179 uint32("percent_of_vol_used_by_dirs", "Percent Of Volume Used By Directories"),
4180 ], "Directory Cache Information")
4181 DirEntryStruct = struct("dir_entry_struct", [
4182 DirectoryEntryNumber,
4183 DOSDirectoryEntryNumber,
4185 ], "Directory Entry Information")
4187 # XXX - CreationDate and CreationTime here appear to be big-endian,
4188 # but there's no way to say that *this* instance of a field is
4189 # big-endian but *other* instances are little-endian.
4191 DirectoryInstance = struct("directory_instance", [
4195 DirectoryAttributes,
4196 DirectoryAccessRights,
4202 ], "Directory Information")
4203 DMInfoLevel0 = struct("dm_info_level_0", [
4204 uint32("io_flag", "IO Flag"),
4205 uint32("sm_info_size", "Storage Module Information Size"),
4206 uint32("avail_space", "Available Space"),
4207 uint32("used_space", "Used Space"),
4208 stringz("s_module_name", "Storage Module Name"),
4209 uint8("s_m_info", "Storage Media Information"),
4211 DMInfoLevel1 = struct("dm_info_level_1", [
4215 DMInfoLevel2 = struct("dm_info_level_2", [
4218 DOSDirectoryEntryStruct = struct("dos_directory_entry_struct", [
4235 InheritedRightsMask,
4236 ], "DOS Directory Information")
4237 DOSFileEntryStruct = struct("dos_file_entry_struct", [
4257 InheritedRightsMask,
4262 ], "DOS File Information")
4263 DSSpaceAllocateStruct = struct("ds_space_alloc_struct", [
4264 DataStreamSpaceAlloc,
4266 DynMemStruct = struct("dyn_mem_struct", [
4267 uint32("dyn_mem_struct_total", "Total Dynamic Space" ),
4268 uint32("dyn_mem_struct_max", "Max Used Dynamic Space" ),
4269 uint32("dyn_mem_struct_cur", "Current Used Dynamic Space" ),
4270 ], "Dynamic Memory Information")
4271 EAInfoStruct = struct("ea_info_struct", [
4275 ], "Extended Attribute Information")
4276 ExtraCacheCntrs = struct("extra_cache_cntrs", [
4277 uint32("internl_dsk_get_no_wait", "Internal Disk Get No Wait Count"),
4278 uint32("internl_dsk_get_no_wait_need", "Internal Disk Get No Wait Need To Allocate Count"),
4279 uint32("internl_dsk_get_no_wait_no_blk", "Internal Disk Get No Wait No Block Count"),
4280 uint32("id_get_no_read_no_wait", "ID Get No Read No Wait Count"),
4281 uint32("id_get_no_read_no_wait_sema", "ID Get No Read No Wait Semaphored Count"),
4282 uint32("id_get_no_read_no_wait_buffer", "ID Get No Read No Wait No Buffer Count"),
4283 uint32("id_get_no_read_no_wait_alloc", "ID Get No Read No Wait Allocate Count"),
4284 uint32("id_get_no_read_no_wait_no_alloc", "ID Get No Read No Wait No Alloc Count"),
4285 uint32("id_get_no_read_no_wait_no_alloc_sema", "ID Get No Read No Wait No Alloc Semaphored Count"),
4286 uint32("id_get_no_read_no_wait_no_alloc_alloc", "ID Get No Read No Wait No Alloc Allocate Count"),
4287 ], "Extra Cache Counters Information")
4290 ReferenceIDStruct = struct("ref_id_struct", [
4293 NSAttributeStruct = struct("ns_attrib_struct", [
4296 DStreamActual = struct("d_stream_actual", [
4298 # Need to look into how to format this correctly
4300 DStreamLogical = struct("d_string_logical", [
4302 # Need to look into how to format this correctly
4304 LastUpdatedInSecondsStruct = struct("last_update_in_seconds_struct", [
4305 SecondsRelativeToTheYear2000,
4307 DOSNameStruct = struct("dos_name_struct", [
4310 FlushTimeStruct = struct("flush_time_struct", [
4313 ParentBaseIDStruct = struct("parent_base_id_struct", [
4316 MacFinderInfoStruct = struct("mac_finder_info_struct", [
4319 SiblingCountStruct = struct("sibling_count_struct", [
4322 EffectiveRightsStruct = struct("eff_rights_struct", [
4326 MacTimeStruct = struct("mac_time_struct", [
4332 LastAccessedTimeStruct = struct("last_access_time_struct", [
4338 FileAttributesStruct = struct("file_attributes_struct", [
4341 FileInfoStruct = struct("file_info_struct", [
4343 DirectoryEntryNumber,
4344 TotalBlocksToDecompress,
4345 CurrentBlockBeingDecompressed,
4346 ], "File Information")
4348 # XXX - CreationDate, CreationTime, UpdateDate, and UpdateTime here
4349 # appear to be big-endian, but there's no way to say that *this*
4350 # instance of a field is big-endian but *other* instances are
4353 FileInstance = struct("file_instance", [
4365 FileNameStruct = struct("file_name_struct", [
4368 FileServerCounters = struct("file_server_counters", [
4369 uint16("too_many_hops", "Too Many Hops"),
4370 uint16("unknown_network", "Unknown Network"),
4371 uint16("no_space_for_service", "No Space For Service"),
4372 uint16("no_receive_buff", "No Receive Buffers"),
4373 uint16("not_my_network", "Not My Network"),
4374 uint32("netbios_progated", "NetBIOS Propagated Count"),
4375 uint32("ttl_pckts_srvcd", "Total Packets Serviced"),
4376 uint32("ttl_pckts_routed", "Total Packets Routed"),
4377 ], "File Server Counters")
4378 FileSystemInfo = struct("file_system_info", [
4379 uint32("fat_moved", "Number of times the OS has move the location of FAT"),
4380 uint32("fat_write_err", "Number of write errors in both original and mirrored copies of FAT"),
4381 uint32("someone_else_did_it_0", "Someone Else Did It Count 0"),
4382 uint32("someone_else_did_it_1", "Someone Else Did It Count 1"),
4383 uint32("someone_else_did_it_2", "Someone Else Did It Count 2"),
4384 uint32("i_ran_out_someone_else_did_it_0", "I Ran Out Someone Else Did It Count 0"),
4385 uint32("i_ran_out_someone_else_did_it_1", "I Ran Out Someone Else Did It Count 1"),
4386 uint32("i_ran_out_someone_else_did_it_2", "I Ran Out Someone Else Did It Count 2"),
4387 uint32("turbo_fat_build_failed", "Turbo FAT Build Failed Count"),
4388 uint32("extra_use_count_node_count", "Errors allocating a use count node for TTS"),
4389 uint32("extra_extra_use_count_node_count", "Errors allocating an additional use count node for TTS"),
4390 uint32("error_read_last_fat", "Error Reading Last FAT Count"),
4391 uint32("someone_else_using_this_file", "Someone Else Using This File Count"),
4392 ], "File System Information")
4393 GenericInfoDef = struct("generic_info_def", [
4394 fw_string("generic_label", "Label", 64),
4395 uint32("generic_ident_type", "Identification Type"),
4396 uint32("generic_ident_time", "Identification Time"),
4397 uint32("generic_media_type", "Media Type"),
4398 uint32("generic_cartridge_type", "Cartridge Type"),
4399 uint32("generic_unit_size", "Unit Size"),
4400 uint32("generic_block_size", "Block Size"),
4401 uint32("generic_capacity", "Capacity"),
4402 uint32("generic_pref_unit_size", "Preferred Unit Size"),
4403 fw_string("generic_name", "Name",64),
4404 uint32("generic_type", "Type"),
4405 uint32("generic_status", "Status"),
4406 uint32("generic_func_mask", "Function Mask"),
4407 uint32("generic_ctl_mask", "Control Mask"),
4408 uint32("generic_parent_count", "Parent Count"),
4409 uint32("generic_sib_count", "Sibling Count"),
4410 uint32("generic_child_count", "Child Count"),
4411 uint32("generic_spec_info_sz", "Specific Information Size"),
4412 uint32("generic_object_uniq_id", "Unique Object ID"),
4413 uint32("generic_media_slot", "Media Slot"),
4414 ], "Generic Information")
4415 HandleInfoLevel0 = struct("handle_info_level_0", [
4418 HandleInfoLevel1 = struct("handle_info_level_1", [
4421 HandleInfoLevel2 = struct("handle_info_level_2", [
4426 HandleInfoLevel3 = struct("handle_info_level_3", [
4430 HandleInfoLevel4 = struct("handle_info_level_4", [
4433 ParentDirectoryBase,
4434 ParentDOSDirectoryBase,
4436 HandleInfoLevel5 = struct("handle_info_level_5", [
4440 ParentDirectoryBase,
4441 ParentDOSDirectoryBase,
4443 IPXInformation = struct("ipx_information", [
4444 uint32("ipx_send_pkt", "IPX Send Packet Count"),
4445 uint16("ipx_malform_pkt", "IPX Malformed Packet Count"),
4446 uint32("ipx_get_ecb_req", "IPX Get ECB Request Count"),
4447 uint32("ipx_get_ecb_fail", "IPX Get ECB Fail Count"),
4448 uint32("ipx_aes_event", "IPX AES Event Count"),
4449 uint16("ipx_postponed_aes", "IPX Postponed AES Count"),
4450 uint16("ipx_max_conf_sock", "IPX Max Configured Socket Count"),
4451 uint16("ipx_max_open_sock", "IPX Max Open Socket Count"),
4452 uint16("ipx_open_sock_fail", "IPX Open Socket Fail Count"),
4453 uint32("ipx_listen_ecb", "IPX Listen ECB Count"),
4454 uint16("ipx_ecb_cancel_fail", "IPX ECB Cancel Fail Count"),
4455 uint16("ipx_get_lcl_targ_fail", "IPX Get Local Target Fail Count"),
4456 ], "IPX Information")
4457 JobEntryTime = struct("job_entry_time", [
4464 ], "Job Entry Time")
4465 JobStruct = struct("job_struct", [
4469 TargetServerIDNumber,
4470 TargetExecutionTime,
4483 ], "Job Information")
4484 JobStructNew = struct("job_struct_new", [
4489 ClientTaskNumberLong,
4491 TargetServerIDNumber,
4492 TargetExecutionTime,
4497 JobControlFlagsWord,
4501 ServerTaskNumberLong,
4503 ], "Job Information")
4504 KnownRoutes = struct("known_routes", [
4510 KnownServStruc = struct("known_server_struct", [
4515 LANConfigInfo = struct("lan_cfg_info", [
4516 LANdriverCFG_MajorVersion,
4517 LANdriverCFG_MinorVersion,
4518 LANdriverNodeAddress,
4521 LANdriverBoardNumber,
4522 LANdriverBoardInstance,
4523 LANdriverMaximumSize,
4524 LANdriverMaxRecvSize,
4528 LANdriverTransportTime,
4529 LANdriverSrcRouting,
4532 LANdriverMajorVersion,
4533 LANdriverMinorVersion,
4535 LANdriverSendRetries,
4537 LANdriverSharingFlags,
4539 LANdriverIOPortsAndRanges1,
4540 LANdriverIOPortsAndRanges2,
4541 LANdriverIOPortsAndRanges3,
4542 LANdriverIOPortsAndRanges4,
4543 LANdriverMemoryDecode0,
4544 LANdriverMemoryLength0,
4545 LANdriverMemoryDecode1,
4546 LANdriverMemoryLength1,
4547 LANdriverInterrupt1,
4548 LANdriverInterrupt2,
4551 LANdriverLogicalName,
4552 LANdriverIOReserved,
4554 ], "LAN Configuration Information")
4555 LastAccessStruct = struct("last_access_struct", [
4558 lockInfo = struct("lock_info_struct", [
4559 LogicalLockThreshold,
4560 PhysicalLockThreshold,
4563 ], "Lock Information")
4564 LockStruct = struct("lock_struct", [
4570 LoginTime = struct("login_time", [
4579 LogLockStruct = struct("log_lock_struct", [
4584 LogRecStruct = struct("log_rec_struct", [
4585 ConnectionNumberWord,
4588 ], "Logical Record Locks")
4589 LSLInformation = struct("lsl_information", [
4590 uint32("rx_buffers", "Receive Buffers"),
4591 uint32("rx_buffers_75", "Receive Buffers Warning Level"),
4592 uint32("rx_buffers_checked_out", "Receive Buffers Checked Out Count"),
4593 uint32("rx_buffer_size", "Receive Buffer Size"),
4594 uint32("max_phy_packet_size", "Maximum Physical Packet Size"),
4595 uint32("last_time_rx_buff_was_alloc", "Last Time a Receive Buffer was Allocated"),
4596 uint32("max_num_of_protocols", "Maximum Number of Protocols"),
4597 uint32("max_num_of_media_types", "Maximum Number of Media Types"),
4598 uint32("total_tx_packets", "Total Transmit Packets"),
4599 uint32("get_ecb_buf", "Get ECB Buffers"),
4600 uint32("get_ecb_fails", "Get ECB Failures"),
4601 uint32("aes_event_count", "AES Event Count"),
4602 uint32("post_poned_events", "Postponed Events"),
4603 uint32("ecb_cxl_fails", "ECB Cancel Failures"),
4604 uint32("valid_bfrs_reused", "Valid Buffers Reused"),
4605 uint32("enqueued_send_cnt", "Enqueued Send Count"),
4606 uint32("total_rx_packets", "Total Receive Packets"),
4607 uint32("unclaimed_packets", "Unclaimed Packets"),
4608 uint8("stat_table_major_version", "Statistics Table Major Version"),
4609 uint8("stat_table_minor_version", "Statistics Table Minor Version"),
4610 ], "LSL Information")
4611 MaximumSpaceStruct = struct("max_space_struct", [
4614 MemoryCounters = struct("memory_counters", [
4615 uint32("orig_num_cache_buff", "Original Number Of Cache Buffers"),
4616 uint32("curr_num_cache_buff", "Current Number Of Cache Buffers"),
4617 uint32("cache_dirty_block_thresh", "Cache Dirty Block Threshold"),
4618 uint32("wait_node", "Wait Node Count"),
4619 uint32("wait_node_alloc_fail", "Wait Node Alloc Failure Count"),
4620 uint32("move_cache_node", "Move Cache Node Count"),
4621 uint32("move_cache_node_from_avai", "Move Cache Node From Avail Count"),
4622 uint32("accel_cache_node_write", "Accelerate Cache Node Write Count"),
4623 uint32("rem_cache_node", "Remove Cache Node Count"),
4624 uint32("rem_cache_node_from_avail", "Remove Cache Node From Avail Count"),
4625 ], "Memory Counters")
4626 MLIDBoardInfo = struct("mlid_board_info", [
4627 uint32("protocol_board_num", "Protocol Board Number"),
4628 uint16("protocol_number", "Protocol Number"),
4629 bytes("protocol_id", "Protocol ID", 6),
4630 nstring8("protocol_name", "Protocol Name"),
4631 ], "MLID Board Information")
4632 ModifyInfoStruct = struct("modify_info_struct", [
4637 ], "Modification Information")
4638 nameInfo = struct("name_info_struct", [
4640 nstring8("login_name", "Login Name"),
4641 ], "Name Information")
4642 NCPNetworkAddress = struct("ncp_network_address_struct", [
4646 ], "Network Address")
4648 netAddr = struct("net_addr_struct", [
4650 nbytes32("transport_addr", "Transport Address"),
4651 ], "Network Address")
4653 NetWareInformationStruct = struct("netware_information_struct", [
4654 DataStreamSpaceAlloc, # (Data Stream Alloc Bit)
4655 AttributesDef32, # (Attributes Bit)
4657 DataStreamSize, # (Data Stream Size Bit)
4658 TotalDataStreamDiskSpaceAlloc, # (Total Stream Size Bit)
4659 NumberOfDataStreams,
4660 CreationTime, # (Creation Bit)
4663 ModifiedTime, # (Modify Bit)
4667 ArchivedTime, # (Archive Bit)
4670 InheritedRightsMask, # (Rights Bit)
4671 DirectoryEntryNumber, # (Directory Entry Bit)
4672 DOSDirectoryEntryNumber,
4674 EADataSize, # (Extended Attribute Bit)
4677 CreatorNameSpaceNumber, # (Name Space Bit)
4679 ], "NetWare Information")
4680 NLMInformation = struct("nlm_information", [
4681 IdentificationNumber,
4700 NumberOfReferencedPublics,
4701 ], "NLM Information")
4702 NSInfoStruct = struct("ns_info_struct", [
4706 NWAuditStatus = struct("nw_audit_status", [
4708 AuditFileVersionDate,
4709 val_string16("audit_enable_flag", "Auditing Enabled Flag", [
4710 [ 0x0000, "Auditing Disabled" ],
4711 [ 0x0100, "Auditing Enabled" ],
4714 uint32("audit_file_size", "Audit File Size"),
4715 uint32("modified_counter", "Modified Counter"),
4716 uint32("audit_file_max_size", "Audit File Maximum Size"),
4717 uint32("audit_file_size_threshold", "Audit File Size Threshold"),
4718 uint32("audit_record_count", "Audit Record Count"),
4719 uint32("auditing_flags", "Auditing Flags"),
4720 ], "NetWare Audit Status")
4721 ObjectSecurityStruct = struct("object_security_struct", [
4724 ObjectFlagsStruct = struct("object_flags_struct", [
4727 ObjectTypeStruct = struct("object_type_struct", [
4731 ObjectNameStruct = struct("object_name_struct", [
4734 ObjectIDStruct = struct("object_id_struct", [
4738 OpnFilesStruct = struct("opn_files_struct", [
4744 DOSParentDirectoryEntry,
4749 ], "Open Files Information")
4750 OwnerIDStruct = struct("owner_id_struct", [
4753 PacketBurstInformation = struct("packet_burst_information", [
4754 uint32("big_invalid_slot", "Big Invalid Slot Count"),
4755 uint32("big_forged_packet", "Big Forged Packet Count"),
4756 uint32("big_invalid_packet", "Big Invalid Packet Count"),
4757 uint32("big_still_transmitting", "Big Still Transmitting Count"),
4758 uint32("still_doing_the_last_req", "Still Doing The Last Request Count"),
4759 uint32("invalid_control_req", "Invalid Control Request Count"),
4760 uint32("control_invalid_message_number", "Control Invalid Message Number Count"),
4761 uint32("control_being_torn_down", "Control Being Torn Down Count"),
4762 uint32("big_repeat_the_file_read", "Big Repeat the File Read Count"),
4763 uint32("big_send_extra_cc_count", "Big Send Extra CC Count"),
4764 uint32("big_return_abort_mess", "Big Return Abort Message Count"),
4765 uint32("big_read_invalid_mess", "Big Read Invalid Message Number Count"),
4766 uint32("big_read_do_it_over", "Big Read Do It Over Count"),
4767 uint32("big_read_being_torn_down", "Big Read Being Torn Down Count"),
4768 uint32("previous_control_packet", "Previous Control Packet Count"),
4769 uint32("send_hold_off_message", "Send Hold Off Message Count"),
4770 uint32("big_read_no_data_avail", "Big Read No Data Available Count"),
4771 uint32("big_read_trying_to_read", "Big Read Trying To Read Too Much Count"),
4772 uint32("async_read_error", "Async Read Error Count"),
4773 uint32("big_read_phy_read_err", "Big Read Physical Read Error Count"),
4774 uint32("ctl_bad_ack_frag_list", "Control Bad ACK Fragment List Count"),
4775 uint32("ctl_no_data_read", "Control No Data Read Count"),
4776 uint32("write_dup_req", "Write Duplicate Request Count"),
4777 uint32("shouldnt_be_ack_here", "Shouldn't Be ACKing Here Count"),
4778 uint32("write_incon_packet_len", "Write Inconsistent Packet Lengths Count"),
4779 uint32("first_packet_isnt_a_write", "First Packet Isn't A Write Count"),
4780 uint32("write_trash_dup_req", "Write Trashed Duplicate Request Count"),
4781 uint32("big_write_inv_message_num", "Big Write Invalid Message Number Count"),
4782 uint32("big_write_being_torn_down", "Big Write Being Torn Down Count"),
4783 uint32("big_write_being_abort", "Big Write Being Aborted Count"),
4784 uint32("zero_ack_frag", "Zero ACK Fragment Count"),
4785 uint32("write_curr_trans", "Write Currently Transmitting Count"),
4786 uint32("try_to_write_too_much", "Trying To Write Too Much Count"),
4787 uint32("write_out_of_mem_for_ctl_nodes", "Write Out Of Memory For Control Nodes Count"),
4788 uint32("write_didnt_need_this_frag", "Write Didn't Need This Fragment Count"),
4789 uint32("write_too_many_buf_check", "Write Too Many Buffers Checked Out Count"),
4790 uint32("write_timeout", "Write Time Out Count"),
4791 uint32("write_got_an_ack0", "Write Got An ACK Count 0"),
4792 uint32("write_got_an_ack1", "Write Got An ACK Count 1"),
4793 uint32("poll_abort_conn", "Poller Aborted The Connnection Count"),
4794 uint32("may_had_out_of_order", "Maybe Had Out Of Order Writes Count"),
4795 uint32("had_an_out_of_order", "Had An Out Of Order Write Count"),
4796 uint32("moved_the_ack_bit_dn", "Moved The ACK Bit Down Count"),
4797 uint32("bumped_out_of_order", "Bumped Out Of Order Write Count"),
4798 uint32("poll_rem_old_out_of_order", "Poller Removed Old Out Of Order Count"),
4799 uint32("write_didnt_need_but_req_ack", "Write Didn't Need But Requested ACK Count"),
4800 uint32("write_trash_packet", "Write Trashed Packet Count"),
4801 uint32("too_many_ack_frag", "Too Many ACK Fragments Count"),
4802 uint32("saved_an_out_of_order_packet", "Saved An Out Of Order Packet Count"),
4803 uint32("conn_being_aborted", "Connection Being Aborted Count"),
4804 ], "Packet Burst Information")
4806 PadDSSpaceAllocate = struct("pad_ds_space_alloc", [
4809 PadAttributes = struct("pad_attributes", [
4812 PadDataStreamSize = struct("pad_data_stream_size", [
4815 PadTotalStreamSize = struct("pad_total_stream_size", [
4818 PadCreationInfo = struct("pad_creation_info", [
4821 PadModifyInfo = struct("pad_modify_info", [
4824 PadArchiveInfo = struct("pad_archive_info", [
4827 PadRightsInfo = struct("pad_rights_info", [
4830 PadDirEntry = struct("pad_dir_entry", [
4833 PadEAInfo = struct("pad_ea_info", [
4836 PadNSInfo = struct("pad_ns_info", [
4839 PhyLockStruct = struct("phy_lock_struct", [
4844 LogicalConnectionNumber,
4847 ], "Physical Locks")
4848 printInfo = struct("print_info_struct", [
4856 ], "Print Information")
4857 RightsInfoStruct = struct("rights_info_struct", [
4858 InheritedRightsMask,
4860 RoutersInfo = struct("routers_info", [
4861 bytes("node", "Node", 6),
4863 uint16("route_hops", "Hop Count"),
4864 uint16("route_time", "Route Time"),
4865 ], "Router Information")
4866 RTagStructure = struct("r_tag_struct", [
4872 ScanInfoFileName = struct("scan_info_file_name", [
4873 SalvageableFileEntryNumber,
4876 ScanInfoFileNoName = struct("scan_info_file_no_name", [
4877 SalvageableFileEntryNumber,
4879 Segments = struct("segments", [
4880 uint32("volume_segment_dev_num", "Volume Segment Device Number"),
4881 uint32("volume_segment_offset", "Volume Segment Offset"),
4882 uint32("volume_segment_size", "Volume Segment Size"),
4883 ], "Volume Segment Information")
4884 SemaInfoStruct = struct("sema_info_struct", [
4885 LogicalConnectionNumber,
4888 SemaStruct = struct("sema_struct", [
4893 ], "Semaphore Information")
4894 ServerInfo = struct("server_info", [
4895 uint32("reply_canceled", "Reply Canceled Count"),
4896 uint32("write_held_off", "Write Held Off Count"),
4897 uint32("write_held_off_with_dup", "Write Held Off With Duplicate Request"),
4898 uint32("invalid_req_type", "Invalid Request Type Count"),
4899 uint32("being_aborted", "Being Aborted Count"),
4900 uint32("already_doing_realloc", "Already Doing Re-Allocate Count"),
4901 uint32("dealloc_invalid_slot", "De-Allocate Invalid Slot Count"),
4902 uint32("dealloc_being_proc", "De-Allocate Being Processed Count"),
4903 uint32("dealloc_forged_packet", "De-Allocate Forged Packet Count"),
4904 uint32("dealloc_still_transmit", "De-Allocate Still Transmitting Count"),
4905 uint32("start_station_error", "Start Station Error Count"),
4906 uint32("invalid_slot", "Invalid Slot Count"),
4907 uint32("being_processed", "Being Processed Count"),
4908 uint32("forged_packet", "Forged Packet Count"),
4909 uint32("still_transmitting", "Still Transmitting Count"),
4910 uint32("reexecute_request", "Re-Execute Request Count"),
4911 uint32("invalid_sequence_number", "Invalid Sequence Number Count"),
4912 uint32("dup_is_being_sent", "Duplicate Is Being Sent Already Count"),
4913 uint32("sent_pos_ack", "Sent Positive Acknowledge Count"),
4914 uint32("sent_a_dup_reply", "Sent A Duplicate Reply Count"),
4915 uint32("no_mem_for_station", "No Memory For Station Control Count"),
4916 uint32("no_avail_conns", "No Available Connections Count"),
4917 uint32("realloc_slot", "Re-Allocate Slot Count"),
4918 uint32("realloc_slot_came_too_soon", "Re-Allocate Slot Came Too Soon Count"),
4919 ], "Server Information")
4920 ServersSrcInfo = struct("servers_src_info", [
4924 ], "Source Server Information")
4925 SpaceStruct = struct("space_struct", [
4929 ], "Space Information")
4930 SPXInformation = struct("spx_information", [
4931 uint16("spx_max_conn", "SPX Max Connections Count"),
4932 uint16("spx_max_used_conn", "SPX Max Used Connections"),
4933 uint16("spx_est_conn_req", "SPX Establish Connection Requests"),
4934 uint16("spx_est_conn_fail", "SPX Establish Connection Fail"),
4935 uint16("spx_listen_con_req", "SPX Listen Connect Request"),
4936 uint16("spx_listen_con_fail", "SPX Listen Connect Fail"),
4937 uint32("spx_send", "SPX Send Count"),
4938 uint32("spx_window_choke", "SPX Window Choke Count"),
4939 uint16("spx_bad_send", "SPX Bad Send Count"),
4940 uint16("spx_send_fail", "SPX Send Fail Count"),
4941 uint16("spx_abort_conn", "SPX Aborted Connection"),
4942 uint32("spx_listen_pkt", "SPX Listen Packet Count"),
4943 uint16("spx_bad_listen", "SPX Bad Listen Count"),
4944 uint32("spx_incoming_pkt", "SPX Incoming Packet Count"),
4945 uint16("spx_bad_in_pkt", "SPX Bad In Packet Count"),
4946 uint16("spx_supp_pkt", "SPX Suppressed Packet Count"),
4947 uint16("spx_no_ses_listen", "SPX No Session Listen ECB Count"),
4948 uint16("spx_watch_dog", "SPX Watch Dog Destination Session Count"),
4949 ], "SPX Information")
4950 StackInfo = struct("stack_info", [
4952 fw_string("stack_short_name", "Stack Short Name", 16),
4953 ], "Stack Information")
4954 statsInfo = struct("stats_info_struct", [
4959 theTimeStruct = struct("the_time_struct", [
4964 timeInfo = struct("time_info", [
4972 uint32("login_expiration_time", "Login Expiration Time"),
4974 TotalStreamSizeStruct = struct("total_stream_size_struct", [
4975 TotalDataStreamDiskSpaceAlloc,
4976 NumberOfDataStreams,
4978 TrendCounters = struct("trend_counters", [
4979 uint32("num_of_cache_checks", "Number Of Cache Checks"),
4980 uint32("num_of_cache_hits", "Number Of Cache Hits"),
4981 uint32("num_of_dirty_cache_checks", "Number Of Dirty Cache Checks"),
4982 uint32("num_of_cache_dirty_checks", "Number Of Cache Dirty Checks"),
4983 uint32("cache_used_while_check", "Cache Used While Checking"),
4984 uint32("wait_till_dirty_blcks_dec", "Wait Till Dirty Blocks Decrease Count"),
4985 uint32("alloc_blck_frm_avail", "Allocate Block From Available Count"),
4986 uint32("alloc_blck_frm_lru", "Allocate Block From LRU Count"),
4987 uint32("alloc_blck_already_wait", "Allocate Block Already Waiting"),
4988 uint32("lru_sit_time", "LRU Sitting Time"),
4989 uint32("num_of_cache_check_no_wait", "Number Of Cache Check No Wait"),
4990 uint32("num_of_cache_hits_no_wait", "Number Of Cache Hits No Wait"),
4991 ], "Trend Counters")
4992 TrusteeStruct = struct("trustee_struct", [
4994 AccessRightsMaskWord,
4996 UpdateDateStruct = struct("update_date_struct", [
4999 UpdateIDStruct = struct("update_id_struct", [
5002 UpdateTimeStruct = struct("update_time_struct", [
5005 UserInformation = struct("user_info", [
5009 ConnectionServiceType,
5022 TransactionTrackingFlag,
5023 LogicalLockThreshold,
5035 ], "User Information")
5036 VolInfoStructure = struct("vol_info_struct", [
5041 SectorsPerClusterLong,
5042 VolumeSizeInClusters,
5044 SubAllocFreeableClusters,
5045 FreeableLimboSectors,
5046 NonFreeableLimboSectors,
5047 NonFreeableAvailableSubAllocSectors,
5048 NotUsableSubAllocSectors,
5051 LimboDataStreamsCount,
5052 OldestDeletedFileAgeInTicks,
5053 CompressedDataStreamsCount,
5054 CompressedLimboDataStreamsCount,
5055 UnCompressableDataStreamsCount,
5056 PreCompressedSectors,
5061 ClustersUsedByDirectories,
5062 ClustersUsedByExtendedDirectories,
5063 TotalDirectoryEntries,
5064 UnUsedDirectoryEntries,
5065 TotalExtendedDirectoryExtants,
5066 UnUsedExtendedDirectoryExtants,
5067 ExtendedAttributesDefined,
5068 ExtendedAttributeExtantsUsed,
5069 DirectoryServicesObjectID,
5070 VolumeLastModifiedTime,
5071 VolumeLastModifiedDate,
5072 ], "Volume Information")
5073 VolInfo2Struct = struct("vol_info_struct_2", [
5074 uint32("volume_active_count", "Volume Active Count"),
5075 uint32("volume_use_count", "Volume Use Count"),
5076 uint32("mac_root_ids", "MAC Root IDs"),
5077 VolumeLastModifiedTime,
5078 VolumeLastModifiedDate,
5079 uint32("volume_reference_count", "Volume Reference Count"),
5080 uint32("compression_lower_limit", "Compression Lower Limit"),
5081 uint32("outstanding_ios", "Outstanding IOs"),
5082 uint32("outstanding_compression_ios", "Outstanding Compression IOs"),
5083 uint32("compression_ios_limit", "Compression IOs Limit"),
5084 ], "Extended Volume Information")
5085 VolumeStruct = struct("volume_struct", [
5091 ##############################################################################
5093 ##############################################################################
5094 def define_groups():
5095 groups['accounting'] = "Accounting"
5096 groups['afp'] = "AFP"
5097 groups['auditing'] = "Auditing"
5098 groups['bindery'] = "Bindery"
5099 groups['comm'] = "Communication"
5100 groups['connection'] = "Connection"
5101 groups['directory'] = "Directory"
5102 groups['extended'] = "Extended Attribute"
5103 groups['file'] = "File"
5104 groups['fileserver'] = "File Server"
5105 groups['message'] = "Message"
5106 groups['migration'] = "Data Migration"
5107 groups['misc'] = "Miscellaneous"
5108 groups['name'] = "Name Space"
5109 groups['nds'] = "NetWare Directory"
5110 groups['print'] = "Print"
5111 groups['queue'] = "Queue"
5112 groups['sync'] = "Synchronization"
5113 groups['tts'] = "Transaction Tracking"
5114 groups['qms'] = "Queue Management System (QMS)"
5115 groups['stats'] = "Server Statistics"
5116 groups['unknown'] = "Unknown"
5118 ##############################################################################
5120 ##############################################################################
5121 def define_errors():
5122 errors[0x0000] = "Ok"
5123 errors[0x0001] = "Transaction tracking is available"
5124 errors[0x0002] = "Ok. The data has been written"
5125 errors[0x0003] = "Calling Station is a Manager"
5127 errors[0x0100] = "One or more of the ConnectionNumbers in the send list are invalid"
5128 errors[0x0101] = "Invalid space limit"
5129 errors[0x0102] = "Insufficient disk space"
5130 errors[0x0103] = "Queue server cannot add jobs"
5131 errors[0x0104] = "Out of disk space"
5132 errors[0x0105] = "Semaphore overflow"
5133 errors[0x0106] = "Invalid Parameter"
5134 errors[0x0107] = "Invalid Number of Minutes to Delay"
5135 errors[0x0108] = "Invalid Start or Network Number"
5136 errors[0x0109] = "Cannot Obtain License"
5138 errors[0x0200] = "One or more clients in the send list are not logged in"
5139 errors[0x0201] = "Queue server cannot attach"
5141 errors[0x0300] = "One or more clients in the send list are not accepting messages"
5143 errors[0x0400] = "Client already has message"
5144 errors[0x0401] = "Queue server cannot service job"
5146 errors[0x7300] = "Revoke Handle Rights Not Found"
5147 errors[0x7900] = "Invalid Parameter in Request Packet"
5148 errors[0x7901] = "Nothing being Compressed"
5149 errors[0x7a00] = "Connection Already Temporary"
5150 errors[0x7b00] = "Connection Already Logged in"
5151 errors[0x7c00] = "Connection Not Authenticated"
5153 errors[0x7e00] = "NCP failed boundary check"
5154 errors[0x7e01] = "Invalid Length"
5156 errors[0x7f00] = "Lock Waiting"
5157 errors[0x8000] = "Lock fail"
5158 errors[0x8001] = "File in Use"
5160 errors[0x8100] = "A file handle could not be allocated by the file server"
5161 errors[0x8101] = "Out of File Handles"
5163 errors[0x8200] = "Unauthorized to open the file"
5164 errors[0x8300] = "Unable to read/write the volume. Possible bad sector on the file server"
5165 errors[0x8301] = "Hard I/O Error"
5167 errors[0x8400] = "Unauthorized to create the directory"
5168 errors[0x8401] = "Unauthorized to create the file"
5170 errors[0x8500] = "Unauthorized to delete the specified file"
5171 errors[0x8501] = "Unauthorized to overwrite an existing file in this directory"
5173 errors[0x8700] = "An unexpected character was encountered in the filename"
5174 errors[0x8701] = "Create Filename Error"
5176 errors[0x8800] = "Invalid file handle"
5177 errors[0x8900] = "Unauthorized to search this file/directory"
5178 errors[0x8a00] = "Unauthorized to delete this file/directory"
5179 errors[0x8b00] = "Unauthorized to rename a file in this directory"
5181 errors[0x8c00] = "No set privileges"
5182 errors[0x8c01] = "Unauthorized to modify a file in this directory"
5183 errors[0x8c02] = "Unauthorized to change the restriction on this volume"
5185 errors[0x8d00] = "Some of the affected files are in use by another client"
5186 errors[0x8d01] = "The affected file is in use"
5188 errors[0x8e00] = "All of the affected files are in use by another client"
5189 errors[0x8f00] = "Some of the affected files are read-only"
5191 errors[0x9000] = "An attempt to modify a read-only volume occurred"
5192 errors[0x9001] = "All of the affected files are read-only"
5193 errors[0x9002] = "Read Only Access to Volume"
5195 errors[0x9100] = "Some of the affected files already exist"
5196 errors[0x9101] = "Some Names Exist"
5198 errors[0x9200] = "Directory with the new name already exists"
5199 errors[0x9201] = "All of the affected files already exist"
5201 errors[0x9300] = "Unauthorized to read from this file"
5202 errors[0x9400] = "Unauthorized to write to this file"
5203 errors[0x9500] = "The affected file is detached"
5205 errors[0x9600] = "The file server has run out of memory to service this request"
5206 errors[0x9601] = "No alloc space for message"
5207 errors[0x9602] = "Server Out of Space"
5209 errors[0x9800] = "The affected volume is not mounted"
5210 errors[0x9801] = "The volume associated with Volume Number is not mounted"
5211 errors[0x9802] = "The resulting volume does not exist"
5212 errors[0x9803] = "The destination volume is not mounted"
5213 errors[0x9804] = "Disk Map Error"
5215 errors[0x9900] = "The file server has run out of directory space on the affected volume"
5216 errors[0x9a00] = "The request attempted to rename the affected file to another volume"
5218 errors[0x9b00] = "DirHandle is not associated with a valid directory path"
5219 errors[0x9b01] = "A resulting directory handle is not associated with a valid directory path"
5220 errors[0x9b02] = "The directory associated with DirHandle does not exist"
5221 errors[0x9b03] = "Bad directory handle"
5223 errors[0x9c00] = "The resulting path is not valid"
5224 errors[0x9c01] = "The resulting file path is not valid"
5225 errors[0x9c02] = "The resulting directory path is not valid"
5226 errors[0x9c03] = "Invalid path"
5228 errors[0x9d00] = "A directory handle was not available for allocation"
5230 errors[0x9e00] = "The name of the directory does not conform to a legal name for this name space"
5231 errors[0x9e01] = "The new directory name does not conform to a legal name for this name space"
5232 errors[0x9e02] = "Bad File Name"
5234 errors[0x9f00] = "The request attempted to delete a directory that is in use by another client"
5236 errors[0xa000] = "The request attempted to delete a directory that is not empty"
5237 errors[0xa100] = "An unrecoverable error occured on the affected directory"
5239 errors[0xa200] = "The request attempted to read from a file region that is physically locked"
5240 errors[0xa201] = "I/O Lock Error"
5242 errors[0xa400] = "Invalid directory rename attempted"
5243 errors[0xa500] = "Invalid open create mode"
5244 errors[0xa600] = "Auditor Access has been Removed"
5245 errors[0xa700] = "Error Auditing Version"
5247 errors[0xa800] = "Invalid Support Module ID"
5248 errors[0xa801] = "No Auditing Access Rights"
5250 errors[0xbe00] = "Invalid Data Stream"
5251 errors[0xbf00] = "Requests for this name space are not valid on this volume"
5253 errors[0xc000] = "Unauthorized to retrieve accounting data"
5255 errors[0xc100] = "The ACCOUNT_BALANCE property does not exist"
5256 errors[0xc101] = "No Account Balance"
5258 errors[0xc200] = "The object has exceeded its credit limit"
5259 errors[0xc300] = "Too many holds have been placed against this account"
5260 errors[0xc400] = "The client account has been disabled"
5262 errors[0xc500] = "Access to the account has been denied because of intruder detection"
5263 errors[0xc501] = "Login lockout"
5264 errors[0xc502] = "Server Login Locked"
5266 errors[0xc600] = "The caller does not have operator priviliges"
5267 errors[0xc601] = "The client does not have operator priviliges"
5269 errors[0xc800] = "Missing EA Key"
5270 errors[0xc900] = "EA Not Found"
5271 errors[0xca00] = "Invalid EA Handle Type"
5272 errors[0xcb00] = "EA No Key No Data"
5273 errors[0xcc00] = "EA Number Mismatch"
5274 errors[0xcd00] = "Extent Number Out of Range"
5275 errors[0xce00] = "EA Bad Directory Number"
5276 errors[0xcf00] = "Invalid EA Handle"
5278 errors[0xd000] = "Queue error"
5279 errors[0xd001] = "EA Position Out of Range"
5281 errors[0xd100] = "The queue does not exist"
5282 errors[0xd101] = "EA Access Denied"
5284 errors[0xd200] = "A queue server is not associated with this queue"
5285 errors[0xd201] = "A queue server is not associated with the selected queue"
5286 errors[0xd202] = "No queue server"
5287 errors[0xd203] = "Data Page Odd Size"
5289 errors[0xd300] = "No queue rights"
5290 errors[0xd301] = "EA Volume Not Mounted"
5292 errors[0xd400] = "The queue is full and cannot accept another request"
5293 errors[0xd401] = "The queue associated with ObjectId is full and cannot accept another request"
5294 errors[0xd402] = "Bad Page Boundary"
5296 errors[0xd500] = "A job does not exist in this queue"
5297 errors[0xd501] = "No queue job"
5298 errors[0xd502] = "The job associated with JobNumber does not exist in this queue"
5299 errors[0xd503] = "Inspect Failure"
5301 errors[0xd600] = "The file server does not allow unencrypted passwords"
5302 errors[0xd601] = "No job right"
5303 errors[0xd602] = "EA Already Claimed"
5305 errors[0xd700] = "Bad account"
5306 errors[0xd701] = "The old and new password strings are identical"
5307 errors[0xd702] = "The job is currently being serviced"
5308 errors[0xd703] = "The queue is currently servicing a job"
5309 errors[0xd704] = "Queue servicing"
5310 errors[0xd705] = "Odd Buffer Size"
5312 errors[0xd800] = "Queue not active"
5313 errors[0xd801] = "No Scorecards"
5315 errors[0xd900] = "The file server cannot accept another connection as it has reached its limit"
5316 errors[0xd901] = "The client is not security equivalent to one of the objects in the Q_SERVERS group property of the target queue"
5317 errors[0xd902] = "Station is not a server"
5318 errors[0xd903] = "Bad EDS Signature"
5320 errors[0xda00] = "Attempted to login to the file server during a restricted time period"
5321 errors[0xda01] = "Queue halted"
5322 errors[0xda02] = "EA Space Limit"
5324 errors[0xdb00] = "Attempted to login to the file server from an unauthorized workstation or network"
5325 errors[0xdb01] = "The queue cannot attach another queue server"
5326 errors[0xdb02] = "Maximum queue servers"
5327 errors[0xdb03] = "EA Key Corrupt"
5329 errors[0xdc00] = "Account Expired"
5330 errors[0xdc01] = "EA Key Limit"
5332 errors[0xdd00] = "Tally Corrupt"
5333 errors[0xde00] = "Attempted to login to the file server with an incorrect password"
5334 errors[0xdf00] = "Attempted to login to the file server with a password that has expired"
5336 errors[0xe000] = "No Login Connections Available"
5337 errors[0xe700] = "No disk track"
5338 errors[0xe800] = "Write to group"
5339 errors[0xe900] = "The object is already a member of the group property"
5341 errors[0xea00] = "No such member"
5342 errors[0xea01] = "The bindery object is not a member of the set"
5343 errors[0xea02] = "Non-existent member"
5345 errors[0xeb00] = "The property is not a set property"
5347 errors[0xec00] = "No such set"
5348 errors[0xec01] = "The set property does not exist"
5350 errors[0xed00] = "Property exists"
5351 errors[0xed01] = "The property already exists"
5352 errors[0xed02] = "An attempt was made to create a bindery object property that already exists"
5354 errors[0xee00] = "The object already exists"
5355 errors[0xee01] = "The bindery object already exists"
5357 errors[0xef00] = "Illegal name"
5358 errors[0xef01] = "Illegal characters in ObjectName field"
5359 errors[0xef02] = "Invalid name"
5361 errors[0xf000] = "A wildcard was detected in a field that does not support wildcards"
5362 errors[0xf001] = "An illegal wildcard was detected in ObjectName"
5364 errors[0xf100] = "The client does not have the rights to access this bindery object"
5365 errors[0xf101] = "Bindery security"
5366 errors[0xf102] = "Invalid bindery security"
5368 errors[0xf200] = "Unauthorized to read from this object"
5369 errors[0xf300] = "Unauthorized to rename this object"
5371 errors[0xf400] = "Unauthorized to delete this object"
5372 errors[0xf401] = "No object delete privileges"
5373 errors[0xf402] = "Unauthorized to delete this queue"
5375 errors[0xf500] = "Unauthorized to create this object"
5376 errors[0xf501] = "No object create"
5378 errors[0xf600] = "No property delete"
5379 errors[0xf601] = "Unauthorized to delete the property of this object"
5380 errors[0xf602] = "Unauthorized to delete this property"
5382 errors[0xf700] = "Unauthorized to create this property"
5383 errors[0xf701] = "No property create privilege"
5385 errors[0xf800] = "Unauthorized to write to this property"
5386 errors[0xf900] = "Unauthorized to read this property"
5387 errors[0xfa00] = "Temporary remap error"
5389 errors[0xfb00] = "No such property"
5390 errors[0xfb01] = "The file server does not support this request"
5391 errors[0xfb02] = "The specified property does not exist"
5392 errors[0xfb03] = "The PASSWORD property does not exist for this bindery object"
5393 errors[0xfb04] = "NDS NCP not available"
5394 errors[0xfb05] = "Bad Directory Handle"
5395 errors[0xfb06] = "Unknown Request"
5396 errors[0xfb07] = "Invalid Subfunction Request"
5397 errors[0xfb08] = "Attempt to use an invalid parameter (drive number, path, or flag value) during a set drive path call"
5398 errors[0xfb09] = "NMAS not installed on this server, NCP NOT Supported"
5399 errors[0xfb0a] = "Station Not Logged In"
5401 errors[0xfc00] = "The message queue cannot accept another message"
5402 errors[0xfc01] = "The trustee associated with ObjectId does not exist"
5403 errors[0xfc02] = "The specified bindery object does not exist"
5404 errors[0xfc03] = "The bindery object associated with ObjectID does not exist"
5405 errors[0xfc04] = "A bindery object does not exist that matches"
5406 errors[0xfc05] = "The specified queue does not exist"
5407 errors[0xfc06] = "No such object"
5408 errors[0xfc07] = "The queue associated with ObjectID does not exist"
5410 errors[0xfd00] = "Bad station number"
5411 errors[0xfd01] = "The connection associated with ConnectionNumber is not active"
5412 errors[0xfd02] = "Lock collision"
5413 errors[0xfd03] = "Transaction tracking is disabled"
5415 errors[0xfe00] = "I/O failure"
5416 errors[0xfe01] = "The files containing the bindery on the file server are locked"
5417 errors[0xfe02] = "A file with the specified name already exists in this directory"
5418 errors[0xfe03] = "No more restrictions were found"
5419 errors[0xfe04] = "The file server was unable to lock the file within the specified time limit"
5420 errors[0xfe05] = "The file server was unable to lock all files within the specified time limit"
5421 errors[0xfe06] = "The bindery object associated with ObjectID is not a valid trustee"
5422 errors[0xfe07] = "Directory locked"
5423 errors[0xfe08] = "Bindery locked"
5424 errors[0xfe09] = "Invalid semaphore name length"
5425 errors[0xfe0a] = "The file server was unable to complete the operation within the specified time limit"
5426 errors[0xfe0b] = "Transaction restart"
5427 errors[0xfe0c] = "Bad packet"
5428 errors[0xfe0d] = "Timeout"
5429 errors[0xfe0e] = "User Not Found"
5430 errors[0xfe0f] = "Trustee Not Found"
5432 errors[0xff00] = "Failure"
5433 errors[0xff01] = "Lock error"
5434 errors[0xff02] = "File not found"
5435 errors[0xff03] = "The file not found or cannot be unlocked"
5436 errors[0xff04] = "Record not found"
5437 errors[0xff05] = "The logical record was not found"
5438 errors[0xff06] = "The printer associated with Printer Number does not exist"
5439 errors[0xff07] = "No such printer"
5440 errors[0xff08] = "Unable to complete the request"
5441 errors[0xff09] = "Unauthorized to change privileges of this trustee"
5442 errors[0xff0a] = "No files matching the search criteria were found"
5443 errors[0xff0b] = "A file matching the search criteria was not found"
5444 errors[0xff0c] = "Verification failed"
5445 errors[0xff0d] = "Object associated with ObjectID is not a manager"
5446 errors[0xff0e] = "Invalid initial semaphore value"
5447 errors[0xff0f] = "The semaphore handle is not valid"
5448 errors[0xff10] = "SemaphoreHandle is not associated with a valid sempahore"
5449 errors[0xff11] = "Invalid semaphore handle"
5450 errors[0xff12] = "Transaction tracking is not available"
5451 errors[0xff13] = "The transaction has not yet been written to disk"
5452 errors[0xff14] = "Directory already exists"
5453 errors[0xff15] = "The file already exists and the deletion flag was not set"
5454 errors[0xff16] = "No matching files or directories were found"
5455 errors[0xff17] = "A file or directory matching the search criteria was not found"
5456 errors[0xff18] = "The file already exists"
5457 errors[0xff19] = "Failure, No files found"
5458 errors[0xff1a] = "Unlock Error"
5459 errors[0xff1b] = "I/O Bound Error"
5460 errors[0xff1c] = "Not Accepting Messages"
5461 errors[0xff1d] = "No More Salvageable Files in Directory"
5462 errors[0xff1e] = "Calling Station is Not a Manager"
5463 errors[0xff1f] = "Bindery Failure"
5464 errors[0xff20] = "NCP Extension Not Found"
5466 ##############################################################################
5468 ##############################################################################
5469 def ExamineVars(vars, structs_hash, vars_hash):
5471 if isinstance(var, struct):
5472 structs_hash[var.HFName()] = var
5473 struct_vars = var.Variables()
5474 ExamineVars(struct_vars, structs_hash, vars_hash)
5476 vars_hash[repr(var)] = var
5477 if isinstance(var, bitfield):
5478 sub_vars = var.SubVariables()
5479 ExamineVars(sub_vars, structs_hash, vars_hash)
5486 print " * Generated automatically from %s" % (sys.argv[0])
5487 print " * Do not edit this file manually, as all changes will be lost."
5492 * This program is free software; you can redistribute it and/or
5493 * modify it under the terms of the GNU General Public License
5494 * as published by the Free Software Foundation; either version 2
5495 * of the License, or (at your option) any later version.
5497 * This program is distributed in the hope that it will be useful,
5498 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5499 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5500 * GNU General Public License for more details.
5502 * You should have received a copy of the GNU General Public License
5503 * along with this program; if not, write to the Free Software
5504 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
5507 #ifdef HAVE_CONFIG_H
5508 # include "config.h"
5513 #include <epan/packet.h>
5514 #include <epan/conversation.h>
5515 #include "ptvcursor.h"
5516 #include "packet-ncp-int.h"
5518 /* Function declarations for functions used in proto_register_ncp2222() */
5519 static void ncp_init_protocol(void);
5520 static void ncp_postseq_cleanup(void);
5522 /* Endianness macros */
5525 #define NO_ENDIANNESS 0
5527 #define NO_LENGTH -1
5529 /* We use this int-pointer as a special flag in ptvc_record's */
5530 static int ptvc_struct_int_storage;
5531 #define PTVC_STRUCT (&ptvc_struct_int_storage)
5533 /* Values used in the count-variable ("var"/"repeat") logic. */"""
5536 if global_highest_var > -1:
5537 print "#define NUM_REPEAT_VARS\t%d" % (global_highest_var + 1)
5538 print "guint repeat_vars[NUM_REPEAT_VARS];",
5540 print "#define NUM_REPEAT_VARS\t0"
5541 print "guint *repeat_vars = NULL;",
5544 #define NO_VAR NUM_REPEAT_VARS
5545 #define NO_REPEAT NUM_REPEAT_VARS
5547 #define REQ_COND_SIZE_CONSTANT 0
5548 #define REQ_COND_SIZE_VARIABLE 1
5549 #define NO_REQ_COND_SIZE 0
5552 #define NTREE 0x00020000
5553 #define NDEPTH 0x00000002
5554 #define NREV 0x00000004
5555 #define NFLAGS 0x00000008
5559 static int hf_ncp_func = -1;
5560 static int hf_ncp_length = -1;
5561 static int hf_ncp_subfunc = -1;
5562 static int hf_ncp_fragment_handle = -1;
5563 static int hf_ncp_completion_code = -1;
5564 static int hf_ncp_connection_status = -1;
5565 static int hf_ncp_req_frame_num = -1;
5566 static int hf_ncp_req_frame_time = -1;
5567 static int hf_ncp_fragment_size = -1;
5568 static int hf_ncp_message_size = -1;
5569 static int hf_ncp_nds_flag = -1;
5570 static int hf_ncp_nds_verb = -1;
5571 static int hf_ping_version = -1;
5572 static int hf_nds_version = -1;
5573 static int hf_nds_flags = -1;
5574 static int hf_nds_reply_depth = -1;
5575 static int hf_nds_reply_rev = -1;
5576 static int hf_nds_reply_flags = -1;
5577 static int hf_nds_p1type = -1;
5578 static int hf_nds_uint32value = -1;
5579 static int hf_nds_bit1 = -1;
5580 static int hf_nds_bit2 = -1;
5581 static int hf_nds_bit3 = -1;
5582 static int hf_nds_bit4 = -1;
5583 static int hf_nds_bit5 = -1;
5584 static int hf_nds_bit6 = -1;
5585 static int hf_nds_bit7 = -1;
5586 static int hf_nds_bit8 = -1;
5587 static int hf_nds_bit9 = -1;
5588 static int hf_nds_bit10 = -1;
5589 static int hf_nds_bit11 = -1;
5590 static int hf_nds_bit12 = -1;
5591 static int hf_nds_bit13 = -1;
5592 static int hf_nds_bit14 = -1;
5593 static int hf_nds_bit15 = -1;
5594 static int hf_nds_bit16 = -1;
5595 static int hf_bit1outflags = -1;
5596 static int hf_bit2outflags = -1;
5597 static int hf_bit3outflags = -1;
5598 static int hf_bit4outflags = -1;
5599 static int hf_bit5outflags = -1;
5600 static int hf_bit6outflags = -1;
5601 static int hf_bit7outflags = -1;
5602 static int hf_bit8outflags = -1;
5603 static int hf_bit9outflags = -1;
5604 static int hf_bit10outflags = -1;
5605 static int hf_bit11outflags = -1;
5606 static int hf_bit12outflags = -1;
5607 static int hf_bit13outflags = -1;
5608 static int hf_bit14outflags = -1;
5609 static int hf_bit15outflags = -1;
5610 static int hf_bit16outflags = -1;
5611 static int hf_bit1nflags = -1;
5612 static int hf_bit2nflags = -1;
5613 static int hf_bit3nflags = -1;
5614 static int hf_bit4nflags = -1;
5615 static int hf_bit5nflags = -1;
5616 static int hf_bit6nflags = -1;
5617 static int hf_bit7nflags = -1;
5618 static int hf_bit8nflags = -1;
5619 static int hf_bit9nflags = -1;
5620 static int hf_bit10nflags = -1;
5621 static int hf_bit11nflags = -1;
5622 static int hf_bit12nflags = -1;
5623 static int hf_bit13nflags = -1;
5624 static int hf_bit14nflags = -1;
5625 static int hf_bit15nflags = -1;
5626 static int hf_bit16nflags = -1;
5627 static int hf_bit1rflags = -1;
5628 static int hf_bit2rflags = -1;
5629 static int hf_bit3rflags = -1;
5630 static int hf_bit4rflags = -1;
5631 static int hf_bit5rflags = -1;
5632 static int hf_bit6rflags = -1;
5633 static int hf_bit7rflags = -1;
5634 static int hf_bit8rflags = -1;
5635 static int hf_bit9rflags = -1;
5636 static int hf_bit10rflags = -1;
5637 static int hf_bit11rflags = -1;
5638 static int hf_bit12rflags = -1;
5639 static int hf_bit13rflags = -1;
5640 static int hf_bit14rflags = -1;
5641 static int hf_bit15rflags = -1;
5642 static int hf_bit16rflags = -1;
5643 static int hf_bit1cflags = -1;
5644 static int hf_bit2cflags = -1;
5645 static int hf_bit3cflags = -1;
5646 static int hf_bit4cflags = -1;
5647 static int hf_bit5cflags = -1;
5648 static int hf_bit6cflags = -1;
5649 static int hf_bit7cflags = -1;
5650 static int hf_bit8cflags = -1;
5651 static int hf_bit9cflags = -1;
5652 static int hf_bit10cflags = -1;
5653 static int hf_bit11cflags = -1;
5654 static int hf_bit12cflags = -1;
5655 static int hf_bit13cflags = -1;
5656 static int hf_bit14cflags = -1;
5657 static int hf_bit15cflags = -1;
5658 static int hf_bit16cflags = -1;
5659 static int hf_bit1acflags = -1;
5660 static int hf_bit2acflags = -1;
5661 static int hf_bit3acflags = -1;
5662 static int hf_bit4acflags = -1;
5663 static int hf_bit5acflags = -1;
5664 static int hf_bit6acflags = -1;
5665 static int hf_bit7acflags = -1;
5666 static int hf_bit8acflags = -1;
5667 static int hf_bit9acflags = -1;
5668 static int hf_bit10acflags = -1;
5669 static int hf_bit11acflags = -1;
5670 static int hf_bit12acflags = -1;
5671 static int hf_bit13acflags = -1;
5672 static int hf_bit14acflags = -1;
5673 static int hf_bit15acflags = -1;
5674 static int hf_bit16acflags = -1;
5675 static int hf_bit1vflags = -1;
5676 static int hf_bit2vflags = -1;
5677 static int hf_bit3vflags = -1;
5678 static int hf_bit4vflags = -1;
5679 static int hf_bit5vflags = -1;
5680 static int hf_bit6vflags = -1;
5681 static int hf_bit7vflags = -1;
5682 static int hf_bit8vflags = -1;
5683 static int hf_bit9vflags = -1;
5684 static int hf_bit10vflags = -1;
5685 static int hf_bit11vflags = -1;
5686 static int hf_bit12vflags = -1;
5687 static int hf_bit13vflags = -1;
5688 static int hf_bit14vflags = -1;
5689 static int hf_bit15vflags = -1;
5690 static int hf_bit16vflags = -1;
5691 static int hf_bit1eflags = -1;
5692 static int hf_bit2eflags = -1;
5693 static int hf_bit3eflags = -1;
5694 static int hf_bit4eflags = -1;
5695 static int hf_bit5eflags = -1;
5696 static int hf_bit6eflags = -1;
5697 static int hf_bit7eflags = -1;
5698 static int hf_bit8eflags = -1;
5699 static int hf_bit9eflags = -1;
5700 static int hf_bit10eflags = -1;
5701 static int hf_bit11eflags = -1;
5702 static int hf_bit12eflags = -1;
5703 static int hf_bit13eflags = -1;
5704 static int hf_bit14eflags = -1;
5705 static int hf_bit15eflags = -1;
5706 static int hf_bit16eflags = -1;
5707 static int hf_bit1infoflagsl = -1;
5708 static int hf_bit2infoflagsl = -1;
5709 static int hf_bit3infoflagsl = -1;
5710 static int hf_bit4infoflagsl = -1;
5711 static int hf_bit5infoflagsl = -1;
5712 static int hf_bit6infoflagsl = -1;
5713 static int hf_bit7infoflagsl = -1;
5714 static int hf_bit8infoflagsl = -1;
5715 static int hf_bit9infoflagsl = -1;
5716 static int hf_bit10infoflagsl = -1;
5717 static int hf_bit11infoflagsl = -1;
5718 static int hf_bit12infoflagsl = -1;
5719 static int hf_bit13infoflagsl = -1;
5720 static int hf_bit14infoflagsl = -1;
5721 static int hf_bit15infoflagsl = -1;
5722 static int hf_bit16infoflagsl = -1;
5723 static int hf_bit1infoflagsh = -1;
5724 static int hf_bit2infoflagsh = -1;
5725 static int hf_bit3infoflagsh = -1;
5726 static int hf_bit4infoflagsh = -1;
5727 static int hf_bit5infoflagsh = -1;
5728 static int hf_bit6infoflagsh = -1;
5729 static int hf_bit7infoflagsh = -1;
5730 static int hf_bit8infoflagsh = -1;
5731 static int hf_bit9infoflagsh = -1;
5732 static int hf_bit10infoflagsh = -1;
5733 static int hf_bit11infoflagsh = -1;
5734 static int hf_bit12infoflagsh = -1;
5735 static int hf_bit13infoflagsh = -1;
5736 static int hf_bit14infoflagsh = -1;
5737 static int hf_bit15infoflagsh = -1;
5738 static int hf_bit16infoflagsh = -1;
5739 static int hf_bit1lflags = -1;
5740 static int hf_bit2lflags = -1;
5741 static int hf_bit3lflags = -1;
5742 static int hf_bit4lflags = -1;
5743 static int hf_bit5lflags = -1;
5744 static int hf_bit6lflags = -1;
5745 static int hf_bit7lflags = -1;
5746 static int hf_bit8lflags = -1;
5747 static int hf_bit9lflags = -1;
5748 static int hf_bit10lflags = -1;
5749 static int hf_bit11lflags = -1;
5750 static int hf_bit12lflags = -1;
5751 static int hf_bit13lflags = -1;
5752 static int hf_bit14lflags = -1;
5753 static int hf_bit15lflags = -1;
5754 static int hf_bit16lflags = -1;
5755 static int hf_bit1l1flagsl = -1;
5756 static int hf_bit2l1flagsl = -1;
5757 static int hf_bit3l1flagsl = -1;
5758 static int hf_bit4l1flagsl = -1;
5759 static int hf_bit5l1flagsl = -1;
5760 static int hf_bit6l1flagsl = -1;
5761 static int hf_bit7l1flagsl = -1;
5762 static int hf_bit8l1flagsl = -1;
5763 static int hf_bit9l1flagsl = -1;
5764 static int hf_bit10l1flagsl = -1;
5765 static int hf_bit11l1flagsl = -1;
5766 static int hf_bit12l1flagsl = -1;
5767 static int hf_bit13l1flagsl = -1;
5768 static int hf_bit14l1flagsl = -1;
5769 static int hf_bit15l1flagsl = -1;
5770 static int hf_bit16l1flagsl = -1;
5771 static int hf_bit1l1flagsh = -1;
5772 static int hf_bit2l1flagsh = -1;
5773 static int hf_bit3l1flagsh = -1;
5774 static int hf_bit4l1flagsh = -1;
5775 static int hf_bit5l1flagsh = -1;
5776 static int hf_bit6l1flagsh = -1;
5777 static int hf_bit7l1flagsh = -1;
5778 static int hf_bit8l1flagsh = -1;
5779 static int hf_bit9l1flagsh = -1;
5780 static int hf_bit10l1flagsh = -1;
5781 static int hf_bit11l1flagsh = -1;
5782 static int hf_bit12l1flagsh = -1;
5783 static int hf_bit13l1flagsh = -1;
5784 static int hf_bit14l1flagsh = -1;
5785 static int hf_bit15l1flagsh = -1;
5786 static int hf_bit16l1flagsh = -1;
5787 static int hf_nds_tree_name = -1;
5788 static int hf_nds_reply_error = -1;
5789 static int hf_nds_net = -1;
5790 static int hf_nds_node = -1;
5791 static int hf_nds_socket = -1;
5792 static int hf_add_ref_ip = -1;
5793 static int hf_add_ref_udp = -1;
5794 static int hf_add_ref_tcp = -1;
5795 static int hf_referral_record = -1;
5796 static int hf_referral_addcount = -1;
5797 static int hf_nds_port = -1;
5798 static int hf_mv_string = -1;
5799 static int hf_nds_syntax = -1;
5800 static int hf_value_string = -1;
5801 static int hf_nds_buffer_size = -1;
5802 static int hf_nds_ver = -1;
5803 static int hf_nds_nflags = -1;
5804 static int hf_nds_scope = -1;
5805 static int hf_nds_name = -1;
5806 static int hf_nds_comm_trans = -1;
5807 static int hf_nds_tree_trans = -1;
5808 static int hf_nds_iteration = -1;
5809 static int hf_nds_eid = -1;
5810 static int hf_nds_info_type = -1;
5811 static int hf_nds_all_attr = -1;
5812 static int hf_nds_req_flags = -1;
5813 static int hf_nds_attr = -1;
5814 static int hf_nds_crc = -1;
5815 static int hf_nds_referrals = -1;
5816 static int hf_nds_result_flags = -1;
5817 static int hf_nds_tag_string = -1;
5818 static int hf_value_bytes = -1;
5819 static int hf_replica_type = -1;
5820 static int hf_replica_state = -1;
5821 static int hf_replica_number = -1;
5822 static int hf_min_nds_ver = -1;
5823 static int hf_nds_ver_include = -1;
5824 static int hf_nds_ver_exclude = -1;
5825 static int hf_nds_es = -1;
5826 static int hf_es_type = -1;
5827 static int hf_delim_string = -1;
5828 static int hf_rdn_string = -1;
5829 static int hf_nds_revent = -1;
5830 static int hf_nds_rnum = -1;
5831 static int hf_nds_name_type = -1;
5832 static int hf_nds_rflags = -1;
5833 static int hf_nds_eflags = -1;
5834 static int hf_nds_depth = -1;
5835 static int hf_nds_class_def_type = -1;
5836 static int hf_nds_classes = -1;
5837 static int hf_nds_return_all_classes = -1;
5838 static int hf_nds_stream_flags = -1;
5839 static int hf_nds_stream_name = -1;
5840 static int hf_nds_file_handle = -1;
5841 static int hf_nds_file_size = -1;
5842 static int hf_nds_dn_output_type = -1;
5843 static int hf_nds_nested_output_type = -1;
5844 static int hf_nds_output_delimiter = -1;
5845 static int hf_nds_output_entry_specifier = -1;
5846 static int hf_es_value = -1;
5847 static int hf_es_rdn_count = -1;
5848 static int hf_nds_replica_num = -1;
5849 static int hf_nds_event_num = -1;
5850 static int hf_es_seconds = -1;
5851 static int hf_nds_compare_results = -1;
5852 static int hf_nds_parent = -1;
5853 static int hf_nds_name_filter = -1;
5854 static int hf_nds_class_filter = -1;
5855 static int hf_nds_time_filter = -1;
5856 static int hf_nds_partition_root_id = -1;
5857 static int hf_nds_replicas = -1;
5858 static int hf_nds_purge = -1;
5859 static int hf_nds_local_partition = -1;
5860 static int hf_partition_busy = -1;
5861 static int hf_nds_number_of_changes = -1;
5862 static int hf_sub_count = -1;
5863 static int hf_nds_revision = -1;
5864 static int hf_nds_base_class = -1;
5865 static int hf_nds_relative_dn = -1;
5866 static int hf_nds_root_dn = -1;
5867 static int hf_nds_parent_dn = -1;
5868 static int hf_deref_base = -1;
5869 static int hf_nds_entry_info = -1;
5870 static int hf_nds_base = -1;
5871 static int hf_nds_privileges = -1;
5872 static int hf_nds_vflags = -1;
5873 static int hf_nds_value_len = -1;
5874 static int hf_nds_cflags = -1;
5875 static int hf_nds_acflags = -1;
5876 static int hf_nds_asn1 = -1;
5877 static int hf_nds_upper = -1;
5878 static int hf_nds_lower = -1;
5879 static int hf_nds_trustee_dn = -1;
5880 static int hf_nds_attribute_dn = -1;
5881 static int hf_nds_acl_add = -1;
5882 static int hf_nds_acl_del = -1;
5883 static int hf_nds_att_add = -1;
5884 static int hf_nds_att_del = -1;
5885 static int hf_nds_keep = -1;
5886 static int hf_nds_new_rdn = -1;
5887 static int hf_nds_time_delay = -1;
5888 static int hf_nds_root_name = -1;
5889 static int hf_nds_new_part_id = -1;
5890 static int hf_nds_child_part_id = -1;
5891 static int hf_nds_master_part_id = -1;
5892 static int hf_nds_target_name = -1;
5893 static int hf_nds_super = -1;
5894 static int hf_bit1pingflags2 = -1;
5895 static int hf_bit2pingflags2 = -1;
5896 static int hf_bit3pingflags2 = -1;
5897 static int hf_bit4pingflags2 = -1;
5898 static int hf_bit5pingflags2 = -1;
5899 static int hf_bit6pingflags2 = -1;
5900 static int hf_bit7pingflags2 = -1;
5901 static int hf_bit8pingflags2 = -1;
5902 static int hf_bit9pingflags2 = -1;
5903 static int hf_bit10pingflags2 = -1;
5904 static int hf_bit11pingflags2 = -1;
5905 static int hf_bit12pingflags2 = -1;
5906 static int hf_bit13pingflags2 = -1;
5907 static int hf_bit14pingflags2 = -1;
5908 static int hf_bit15pingflags2 = -1;
5909 static int hf_bit16pingflags2 = -1;
5910 static int hf_bit1pingflags1 = -1;
5911 static int hf_bit2pingflags1 = -1;
5912 static int hf_bit3pingflags1 = -1;
5913 static int hf_bit4pingflags1 = -1;
5914 static int hf_bit5pingflags1 = -1;
5915 static int hf_bit6pingflags1 = -1;
5916 static int hf_bit7pingflags1 = -1;
5917 static int hf_bit8pingflags1 = -1;
5918 static int hf_bit9pingflags1 = -1;
5919 static int hf_bit10pingflags1 = -1;
5920 static int hf_bit11pingflags1 = -1;
5921 static int hf_bit12pingflags1 = -1;
5922 static int hf_bit13pingflags1 = -1;
5923 static int hf_bit14pingflags1 = -1;
5924 static int hf_bit15pingflags1 = -1;
5925 static int hf_bit16pingflags1 = -1;
5926 static int hf_bit1pingpflags1 = -1;
5927 static int hf_bit2pingpflags1 = -1;
5928 static int hf_bit3pingpflags1 = -1;
5929 static int hf_bit4pingpflags1 = -1;
5930 static int hf_bit5pingpflags1 = -1;
5931 static int hf_bit6pingpflags1 = -1;
5932 static int hf_bit7pingpflags1 = -1;
5933 static int hf_bit8pingpflags1 = -1;
5934 static int hf_bit9pingpflags1 = -1;
5935 static int hf_bit10pingpflags1 = -1;
5936 static int hf_bit11pingpflags1 = -1;
5937 static int hf_bit12pingpflags1 = -1;
5938 static int hf_bit13pingpflags1 = -1;
5939 static int hf_bit14pingpflags1 = -1;
5940 static int hf_bit15pingpflags1 = -1;
5941 static int hf_bit16pingpflags1 = -1;
5942 static int hf_bit1pingvflags1 = -1;
5943 static int hf_bit2pingvflags1 = -1;
5944 static int hf_bit3pingvflags1 = -1;
5945 static int hf_bit4pingvflags1 = -1;
5946 static int hf_bit5pingvflags1 = -1;
5947 static int hf_bit6pingvflags1 = -1;
5948 static int hf_bit7pingvflags1 = -1;
5949 static int hf_bit8pingvflags1 = -1;
5950 static int hf_bit9pingvflags1 = -1;
5951 static int hf_bit10pingvflags1 = -1;
5952 static int hf_bit11pingvflags1 = -1;
5953 static int hf_bit12pingvflags1 = -1;
5954 static int hf_bit13pingvflags1 = -1;
5955 static int hf_bit14pingvflags1 = -1;
5956 static int hf_bit15pingvflags1 = -1;
5957 static int hf_bit16pingvflags1 = -1;
5958 static int hf_nds_letter_ver = -1;
5959 static int hf_nds_os_ver = -1;
5960 static int hf_nds_lic_flags = -1;
5961 static int hf_nds_ds_time = -1;
5962 static int hf_nds_ping_version = -1;
5967 # Look at all packet types in the packets collection, and cull information
5969 errors_used_list = []
5970 errors_used_hash = {}
5971 groups_used_list = []
5972 groups_used_hash = {}
5973 variables_used_hash = {}
5974 structs_used_hash = {}
5977 # Determine which error codes are used.
5978 codes = pkt.CompletionCodes()
5979 for code in codes.Records():
5980 if not errors_used_hash.has_key(code):
5981 errors_used_hash[code] = len(errors_used_list)
5982 errors_used_list.append(code)
5984 # Determine which groups are used.
5986 if not groups_used_hash.has_key(group):
5987 groups_used_hash[group] = len(groups_used_list)
5988 groups_used_list.append(group)
5990 # Determine which variables are used.
5991 vars = pkt.Variables()
5992 ExamineVars(vars, structs_used_hash, variables_used_hash)
5995 # Print the hf variable declarations
5996 sorted_vars = variables_used_hash.values()
5998 for var in sorted_vars:
5999 print "static int " + var.HFName() + " = -1;"
6002 # Print the value_string's
6003 for var in sorted_vars:
6004 if isinstance(var, val_string):
6008 # Determine which error codes are not used
6009 errors_not_used = {}
6010 # Copy the keys from the error list...
6011 for code in errors.keys():
6012 errors_not_used[code] = 1
6013 # ... and remove the ones that *were* used.
6014 for code in errors_used_list:
6015 del errors_not_used[code]
6017 # Print a remark showing errors not used
6018 list_errors_not_used = errors_not_used.keys()
6019 list_errors_not_used.sort()
6020 for code in list_errors_not_used:
6021 print "/* Error 0x%04x not used: %s */" % (code, errors[code])
6024 # Print the errors table
6025 print "/* Error strings. */"
6026 print "static const char *ncp_errors[] = {"
6027 for code in errors_used_list:
6028 print '\t/* %02d (0x%04x) */ "%s",' % (errors_used_hash[code], code, errors[code])
6034 # Determine which groups are not used
6035 groups_not_used = {}
6036 # Copy the keys from the group list...
6037 for group in groups.keys():
6038 groups_not_used[group] = 1
6039 # ... and remove the ones that *were* used.
6040 for group in groups_used_list:
6041 del groups_not_used[group]
6043 # Print a remark showing groups not used
6044 list_groups_not_used = groups_not_used.keys()
6045 list_groups_not_used.sort()
6046 for group in list_groups_not_used:
6047 print "/* Group not used: %s = %s */" % (group, groups[group])
6050 # Print the groups table
6051 print "/* Group strings. */"
6052 print "static const char *ncp_groups[] = {"
6053 for group in groups_used_list:
6054 print '\t/* %02d (%s) */ "%s",' % (groups_used_hash[group], group, groups[group])
6057 # Print the group macros
6058 for group in groups_used_list:
6059 name = string.upper(group)
6060 print "#define NCP_GROUP_%s\t%d" % (name, groups_used_hash[group])
6064 # Print the conditional_records for all Request Conditions.
6066 print "/* Request-Condition dfilter records. The NULL pointer"
6067 print " is replaced by a pointer to the created dfilter_t. */"
6068 if len(global_req_cond) == 0:
6069 print "static conditional_record req_conds = NULL;"
6071 print "static conditional_record req_conds[] = {"
6072 for req_cond in global_req_cond.keys():
6073 print "\t{ \"%s\", NULL }," % (req_cond,)
6074 global_req_cond[req_cond] = num
6077 print "#define NUM_REQ_CONDS %d" % (num,)
6078 print "#define NO_REQ_COND NUM_REQ_CONDS\n\n"
6082 # Print PTVC's for bitfields
6084 print "/* PTVC records for bit-fields. */"
6085 for var in sorted_vars:
6086 if isinstance(var, bitfield):
6087 sub_vars_ptvc = var.SubVariablesPTVC()
6088 print "/* %s */" % (sub_vars_ptvc.Name())
6089 print sub_vars_ptvc.Code()
6090 ett_list.append(sub_vars_ptvc.ETTName())
6093 # Print the PTVC's for structures
6094 print "/* PTVC records for structs. */"
6097 for svar in structs_used_hash.values():
6098 svhash[svar.HFName()] = svar
6100 ett_list.append(svar.ETTName())
6102 struct_vars = svhash.keys()
6104 for varname in struct_vars:
6105 var = svhash[varname]
6110 # Print regular PTVC's
6111 print "/* PTVC records. These are re-used to save space. */"
6112 for ptvc in ptvc_lists.Members():
6113 if not ptvc.Null() and not ptvc.Empty():
6116 # Print error_equivalency tables
6117 print "/* Error-Equivalency Tables. These are re-used to save space. */"
6118 for compcodes in compcode_lists.Members():
6119 errors = compcodes.Records()
6120 # Make sure the record for error = 0x00 comes last.
6121 print "static const error_equivalency %s[] = {" % (compcodes.Name())
6122 for error in errors:
6123 error_in_packet = error >> 8;
6124 ncp_error_index = errors_used_hash[error]
6125 print "\t{ 0x%02x, %d }, /* 0x%04x */" % (error_in_packet,
6126 ncp_error_index, error)
6127 print "\t{ 0x00, -1 }\n};\n"
6131 # Print integer arrays for all ncp_records that need
6132 # a list of req_cond_indexes. Do it "uniquely" to save space;
6133 # if multiple packets share the same set of req_cond's,
6134 # then they'll share the same integer array
6135 print "/* Request Condition Indexes */"
6136 # First, make them unique
6137 req_cond_collection = UniqueCollection("req_cond_collection")
6139 req_conds = pkt.CalculateReqConds()
6141 unique_list = req_cond_collection.Add(req_conds)
6142 pkt.SetReqConds(unique_list)
6144 pkt.SetReqConds(None)
6147 for req_cond in req_cond_collection.Members():
6148 print "static const int %s[] = {" % (req_cond.Name(),)
6151 for text in req_cond.Records():
6152 vals.append(global_req_cond[text])
6155 print "%s, " % (val,),
6162 # Functions without length parameter
6163 funcs_without_length = {}
6165 # Print info string structures
6166 print "/* Info Strings */"
6168 if pkt.req_info_str:
6169 name = pkt.InfoStrName() + "_req"
6170 var = pkt.req_info_str[0]
6171 print "static const info_string_t %s = {" % (name,)
6172 print "\t&%s," % (var.HFName(),)
6173 print '\t"%s",' % (pkt.req_info_str[1],)
6174 print '\t"%s"' % (pkt.req_info_str[2],)
6179 # Print ncp_record packet records
6180 print "#define SUBFUNC_WITH_LENGTH 0x02"
6181 print "#define SUBFUNC_NO_LENGTH 0x01"
6182 print "#define NO_SUBFUNC 0x00"
6184 print "/* ncp_record structs for packets */"
6185 print "static const ncp_record ncp_packets[] = {"
6187 if pkt.HasSubFunction():
6188 func = pkt.FunctionCode('high')
6190 subfunc_string = "SUBFUNC_WITH_LENGTH"
6191 # Ensure that the function either has a length param or not
6192 if funcs_without_length.has_key(func):
6193 sys.exit("Function 0x%04x sometimes has length param, sometimes not." \
6194 % (pkt.FunctionCode(),))
6196 subfunc_string = "SUBFUNC_NO_LENGTH"
6197 funcs_without_length[func] = 1
6199 subfunc_string = "NO_SUBFUNC"
6200 print '\t{ 0x%02x, 0x%02x, %s, "%s",' % (pkt.FunctionCode('high'),
6201 pkt.FunctionCode('low'), subfunc_string, pkt.Description()),
6203 print '\t%d /* %s */,' % (groups_used_hash[pkt.Group()], pkt.Group())
6205 ptvc = pkt.PTVCRequest()
6206 if not ptvc.Null() and not ptvc.Empty():
6207 ptvc_request = ptvc.Name()
6209 ptvc_request = 'NULL'
6211 ptvc = pkt.PTVCReply()
6212 if not ptvc.Null() and not ptvc.Empty():
6213 ptvc_reply = ptvc.Name()
6217 errors = pkt.CompletionCodes()
6219 req_conds_obj = pkt.GetReqConds()
6221 req_conds = req_conds_obj.Name()
6225 if not req_conds_obj:
6226 req_cond_size = "NO_REQ_COND_SIZE"
6228 req_cond_size = pkt.ReqCondSize()
6229 if req_cond_size == None:
6230 msg.write("NCP packet %s nees a ReqCondSize*() call\n" \
6234 if pkt.req_info_str:
6235 req_info_str = "&" + pkt.InfoStrName() + "_req"
6237 req_info_str = "NULL"
6239 print '\t\t%s, %s, %s, %s, %s, %s },\n' % \
6240 (ptvc_request, ptvc_reply, errors.Name(), req_conds,
6241 req_cond_size, req_info_str)
6243 print '\t{ 0, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NO_REQ_COND_SIZE, NULL }'
6246 print "/* ncp funcs that require a subfunc */"
6247 print "static const guint8 ncp_func_requires_subfunc[] = {"
6250 if pkt.HasSubFunction():
6251 hi_func = pkt.FunctionCode('high')
6252 if not hi_seen.has_key(hi_func):
6253 print "\t0x%02x," % (hi_func)
6254 hi_seen[hi_func] = 1
6259 print "/* ncp funcs that have no length parameter */"
6260 print "static const guint8 ncp_func_has_no_length_parameter[] = {"
6261 funcs = funcs_without_length.keys()
6264 print "\t0x%02x," % (func,)
6268 # final_registration_ncp2222()
6271 final_registration_ncp2222(void)
6276 # Create dfilter_t's for conditional_record's
6278 for (i = 0; i < NUM_REQ_CONDS; i++) {
6279 if (!dfilter_compile((const gchar*)req_conds[i].dfilter_text,
6280 &req_conds[i].dfilter)) {
6281 g_message("NCP dissector failed to compiler dfilter: %s\\n",
6282 req_conds[i].dfilter_text);
6283 g_assert_not_reached();
6289 # proto_register_ncp2222()
6291 static const value_string ncp_nds_verb_vals[] = {
6292 { 1, "Resolve Name" },
6293 { 2, "Read Entry Information" },
6297 { 6, "Search Entries" },
6299 { 8, "Remove Entry" },
6300 { 9, "Modify Entry" },
6301 { 10, "Modify RDN" },
6302 { 11, "Create Attribute" },
6303 { 12, "Read Attribute Definition" },
6304 { 13, "Remove Attribute Definition" },
6305 { 14, "Define Class" },
6306 { 15, "Read Class Definition" },
6307 { 16, "Modify Class Definition" },
6308 { 17, "Remove Class Definition" },
6309 { 18, "List Containable Classes" },
6310 { 19, "Get Effective Rights" },
6311 { 20, "Add Partition" },
6312 { 21, "Remove Partition" },
6313 { 22, "List Partitions" },
6314 { 23, "Split Partition" },
6315 { 24, "Join Partitions" },
6316 { 25, "Add Replica" },
6317 { 26, "Remove Replica" },
6318 { 27, "Open Stream" },
6319 { 28, "Search Filter" },
6320 { 29, "Create Subordinate Reference" },
6321 { 30, "Link Replica" },
6322 { 31, "Change Replica Type" },
6323 { 32, "Start Update Schema" },
6324 { 33, "End Update Schema" },
6325 { 34, "Update Schema" },
6326 { 35, "Start Update Replica" },
6327 { 36, "End Update Replica" },
6328 { 37, "Update Replica" },
6329 { 38, "Synchronize Partition" },
6330 { 39, "Synchronize Schema" },
6331 { 40, "Read Syntaxes" },
6332 { 41, "Get Replica Root ID" },
6333 { 42, "Begin Move Entry" },
6334 { 43, "Finish Move Entry" },
6335 { 44, "Release Moved Entry" },
6336 { 45, "Backup Entry" },
6337 { 46, "Restore Entry" },
6339 { 50, "Close Iteration" },
6341 { 52, "Audit Skulking" },
6342 { 53, "Get Server Address" },
6344 { 55, "Change Password" },
6345 { 56, "Verify Password" },
6346 { 57, "Begin Login" },
6347 { 58, "Finish Login" },
6348 { 59, "Begin Authentication" },
6349 { 60, "Finish Authentication" },
6351 { 62, "Repair Ring" },
6352 { 63, "Repair Timestamps" },
6353 { 64, "Create Back Link" },
6354 { 65, "Delete External Reference" },
6355 { 66, "Rename External Reference" },
6356 { 67, "Create Directory Entry" },
6357 { 68, "Remove Directory Entry" },
6358 { 69, "Designate New Master" },
6359 { 70, "Change Tree Name" },
6360 { 71, "Partition Entry Count" },
6361 { 72, "Check Login Restrictions" },
6362 { 73, "Start Join" },
6363 { 74, "Low Level Split" },
6364 { 75, "Low Level Join" },
6365 { 76, "Abort Low Level Join" },
6366 { 77, "Get All Servers" },
6367 { 255, "EDirectory Call" },
6372 proto_register_ncp2222(void)
6375 static hf_register_info hf[] = {
6377 { "Function", "ncp.func", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6380 { "Packet Length", "ncp.length", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
6383 { "SubFunction", "ncp.subfunc", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6385 { &hf_ncp_completion_code,
6386 { "Completion Code", "ncp.completion_code", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6388 { &hf_ncp_fragment_handle,
6389 { "NDS Fragment Handle", "ncp.ndsfrag", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6391 { &hf_ncp_fragment_size,
6392 { "NDS Fragment Size", "ncp.ndsfragsize", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6394 { &hf_ncp_message_size,
6395 { "Message Size", "ncp.ndsmessagesize", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6398 { "Flags", "ncp.ndsflag", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6401 { "NDS Verb", "ncp.ndsverb", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6404 { "NDS Version", "ncp.ping_version", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
6407 { "NDS Version", "ncp.nds_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6409 { &hf_nds_tree_name,
6410 { "Tree Name", "ncp.nds_tree_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
6415 * http://www.odyssea.com/whats_new/tcpipnet/tcpipnet.html
6417 * says of the connection status "The Connection Code field may
6418 * contain values that indicate the status of the client host to
6419 * server connection. A value of 1 in the fourth bit of this data
6420 * byte indicates that the server is unavailable (server was
6425 * http://www.unm.edu/~network/presentations/course/appendix/appendix_f/tsld088.htm
6427 * says that bit 0 is "bad service", bit 2 is "no connection
6428 * available", bit 4 is "service down", and bit 6 is "server
6429 * has a broadcast message waiting for the client".
6431 * Should it be displayed in hex, and should those bits (and any
6432 * other bits with significance) be displayed as bitfields
6435 { &hf_ncp_connection_status,
6436 { "Connection Status", "ncp.connection_status", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
6438 { &hf_ncp_req_frame_num,
6439 { "Response to Request in Frame Number", "ncp.req_frame_num", FT_UINT32, BASE_DEC,
6440 NULL, 0x0, "", HFILL }},
6442 { &hf_ncp_req_frame_time,
6443 { "Time from Request", "ncp.time", FT_RELATIVE_TIME, BASE_NONE,
6444 NULL, 0x0, "Time between request and response in seconds", HFILL }},
6447 { "NDS Return Flags", "ncp.nds_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6450 { &hf_nds_reply_depth,
6451 { "Distance from Root", "ncp.ndsdepth", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6453 { &hf_nds_reply_rev,
6454 { "NDS Revision", "ncp.ndsrev", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6456 { &hf_nds_reply_flags,
6457 { "Flags", "ncp.ndsflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6460 { "NDS Parameter Type", "ncp.p1type", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
6462 { &hf_nds_uint32value,
6463 { "NDS Value", "ncp.uint32value", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6466 { "Typeless", "ncp.nds_bit1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6469 { "All Containers", "ncp.nds_bit2", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6472 { "Slashed", "ncp.nds_bit3", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6475 { "Dotted", "ncp.nds_bit4", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6478 { "Tuned", "ncp.nds_bit5", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6481 { "Not Defined", "ncp.nds_bit6", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6484 { "Not Defined", "ncp.nds_bit7", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6487 { "Not Defined", "ncp.nds_bit8", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6490 { "Not Defined", "ncp.nds_bit9", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6493 { "Not Defined", "ncp.nds_bit10", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6496 { "Not Defined", "ncp.nds_bit11", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6499 { "Not Defined", "ncp.nds_bit12", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6502 { "Not Defined", "ncp.nds_bit13", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6505 { "Not Defined", "ncp.nds_bit14", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6508 { "Not Defined", "ncp.nds_bit15", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6511 { "Not Defined", "ncp.nds_bit16", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6514 { "Output Flags", "ncp.bit1outflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6517 { "Entry ID", "ncp.bit2outflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6520 { "Replica State", "ncp.bit3outflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6523 { "Modification Timestamp", "ncp.bit4outflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6526 { "Purge Time", "ncp.bit5outflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6529 { "Local Partition ID", "ncp.bit6outflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6532 { "Distinguished Name", "ncp.bit7outflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6535 { "Replica Type", "ncp.bit8outflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6538 { "Partition Busy", "ncp.bit9outflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6540 { &hf_bit10outflags,
6541 { "Not Defined", "ncp.bit10outflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6543 { &hf_bit11outflags,
6544 { "Not Defined", "ncp.bit11outflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6546 { &hf_bit12outflags,
6547 { "Not Defined", "ncp.bit12outflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6549 { &hf_bit13outflags,
6550 { "Not Defined", "ncp.bit13outflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6552 { &hf_bit14outflags,
6553 { "Not Defined", "ncp.bit14outflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6555 { &hf_bit15outflags,
6556 { "Not Defined", "ncp.bit15outflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6558 { &hf_bit16outflags,
6559 { "Not Defined", "ncp.bit16outflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6562 { "Entry ID", "ncp.bit1nflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6565 { "Readable", "ncp.bit2nflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6568 { "Writeable", "ncp.bit3nflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6571 { "Master", "ncp.bit4nflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6574 { "Create ID", "ncp.bit5nflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6577 { "Walk Tree", "ncp.bit6nflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6580 { "Dereference Alias", "ncp.bit7nflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6583 { "Not Defined", "ncp.bit8nflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6586 { "Not Defined", "ncp.bit9nflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6589 { "Not Defined", "ncp.bit10nflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6592 { "Not Defined", "ncp.bit11nflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6595 { "Not Defined", "ncp.bit12nflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6598 { "Not Defined", "ncp.bit13nflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6601 { "Prefer Referrals", "ncp.bit14nflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6604 { "Prefer Only Referrals", "ncp.bit15nflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6607 { "Not Defined", "ncp.bit16nflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6610 { "Typeless", "ncp.bit1rflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6613 { "Slashed", "ncp.bit2rflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6616 { "Dotted", "ncp.bit3rflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6619 { "Tuned", "ncp.bit4rflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6622 { "Not Defined", "ncp.bit5rflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6625 { "Not Defined", "ncp.bit6rflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6628 { "Not Defined", "ncp.bit7rflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6631 { "Not Defined", "ncp.bit8rflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6634 { "Not Defined", "ncp.bit9rflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6637 { "Not Defined", "ncp.bit10rflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6640 { "Not Defined", "ncp.bit11rflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6643 { "Not Defined", "ncp.bit12rflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6646 { "Not Defined", "ncp.bit13rflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6649 { "Not Defined", "ncp.bit14rflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6652 { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6655 { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6658 { "Alias Entry", "ncp.bit1eflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6661 { "Partition Root", "ncp.bit2eflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6664 { "Container Entry", "ncp.bit3eflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6667 { "Container Alias", "ncp.bit4eflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6670 { "Matches List Filter", "ncp.bit5eflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6673 { "Reference Entry", "ncp.bit6eflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6676 { "40x Reference Entry", "ncp.bit7eflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6679 { "Back Linked", "ncp.bit8eflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6682 { "New Entry", "ncp.bit9eflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6685 { "Temporary Reference", "ncp.bit10eflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6688 { "Audited", "ncp.bit11eflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6691 { "Entry Not Present", "ncp.bit12eflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6694 { "Entry Verify CTS", "ncp.bit13eflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6697 { "Entry Damaged", "ncp.bit14eflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6700 { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6703 { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6705 { &hf_bit1infoflagsl,
6706 { "Output Flags", "ncp.bit1infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6708 { &hf_bit2infoflagsl,
6709 { "Entry ID", "ncp.bit2infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6711 { &hf_bit3infoflagsl,
6712 { "Entry Flags", "ncp.bit3infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6714 { &hf_bit4infoflagsl,
6715 { "Subordinate Count", "ncp.bit4infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6717 { &hf_bit5infoflagsl,
6718 { "Modification Time", "ncp.bit5infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6720 { &hf_bit6infoflagsl,
6721 { "Modification Timestamp", "ncp.bit6infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6723 { &hf_bit7infoflagsl,
6724 { "Creation Timestamp", "ncp.bit7infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6726 { &hf_bit8infoflagsl,
6727 { "Partition Root ID", "ncp.bit8infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6729 { &hf_bit9infoflagsl,
6730 { "Parent ID", "ncp.bit9infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6732 { &hf_bit10infoflagsl,
6733 { "Revision Count", "ncp.bit10infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6735 { &hf_bit11infoflagsl,
6736 { "Replica Type", "ncp.bit11infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6738 { &hf_bit12infoflagsl,
6739 { "Base Class", "ncp.bit12infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6741 { &hf_bit13infoflagsl,
6742 { "Relative Distinguished Name", "ncp.bit13infoflagsl", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6744 { &hf_bit14infoflagsl,
6745 { "Distinguished Name", "ncp.bit14infoflagsl", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6747 { &hf_bit15infoflagsl,
6748 { "Root Distinguished Name", "ncp.bit15infoflagsl", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6750 { &hf_bit16infoflagsl,
6751 { "Parent Distinguished Name", "ncp.bit16infoflagsl", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6753 { &hf_bit1infoflagsh,
6754 { "Purge Time", "ncp.bit1infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6756 { &hf_bit2infoflagsh,
6757 { "Dereference Base Class", "ncp.bit2infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6759 { &hf_bit3infoflagsh,
6760 { "Not Defined", "ncp.bit3infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6762 { &hf_bit4infoflagsh,
6763 { "Not Defined", "ncp.bit4infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6765 { &hf_bit5infoflagsh,
6766 { "Not Defined", "ncp.bit5infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6768 { &hf_bit6infoflagsh,
6769 { "Not Defined", "ncp.bit6infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6771 { &hf_bit7infoflagsh,
6772 { "Not Defined", "ncp.bit7infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6774 { &hf_bit8infoflagsh,
6775 { "Not Defined", "ncp.bit8infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6777 { &hf_bit9infoflagsh,
6778 { "Not Defined", "ncp.bit9infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6780 { &hf_bit10infoflagsh,
6781 { "Not Defined", "ncp.bit10infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6783 { &hf_bit11infoflagsh,
6784 { "Not Defined", "ncp.bit11infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6786 { &hf_bit12infoflagsh,
6787 { "Not Defined", "ncp.bit12infoflagshs", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6789 { &hf_bit13infoflagsh,
6790 { "Not Defined", "ncp.bit13infoflagsh", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6792 { &hf_bit14infoflagsh,
6793 { "Not Defined", "ncp.bit14infoflagsh", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6795 { &hf_bit15infoflagsh,
6796 { "Not Defined", "ncp.bit15infoflagsh", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6798 { &hf_bit16infoflagsh,
6799 { "Not Defined", "ncp.bit16infoflagsh", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6802 { "List Typeless", "ncp.bit1lflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6805 { "List Containers", "ncp.bit2lflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6808 { "List Slashed", "ncp.bit3lflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6811 { "List Dotted", "ncp.bit4lflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6814 { "Dereference Alias", "ncp.bit5lflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6817 { "List All Containers", "ncp.bit6lflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6820 { "List Obsolete", "ncp.bit7lflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6823 { "List Tuned Output", "ncp.bit8lflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6826 { "List External Reference", "ncp.bit9lflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6829 { "Not Defined", "ncp.bit10lflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6832 { "Not Defined", "ncp.bit11lflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6835 { "Not Defined", "ncp.bit12lflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6838 { "Not Defined", "ncp.bit13lflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6841 { "Not Defined", "ncp.bit14lflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6844 { "Not Defined", "ncp.bit15lflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6847 { "Not Defined", "ncp.bit16lflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6850 { "Output Flags", "ncp.bit1l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6853 { "Entry ID", "ncp.bit2l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6856 { "Replica State", "ncp.bit3l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6859 { "Modification Timestamp", "ncp.bit4l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6862 { "Purge Time", "ncp.bit5l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6865 { "Local Partition ID", "ncp.bit6l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6868 { "Distinguished Name", "ncp.bit7l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6871 { "Replica Type", "ncp.bit8l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6874 { "Partition Busy", "ncp.bit9l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6876 { &hf_bit10l1flagsl,
6877 { "Not Defined", "ncp.bit10l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6879 { &hf_bit11l1flagsl,
6880 { "Not Defined", "ncp.bit11l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6882 { &hf_bit12l1flagsl,
6883 { "Not Defined", "ncp.bit12l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6885 { &hf_bit13l1flagsl,
6886 { "Not Defined", "ncp.bit13l1flagsl", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6888 { &hf_bit14l1flagsl,
6889 { "Not Defined", "ncp.bit14l1flagsl", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6891 { &hf_bit15l1flagsl,
6892 { "Not Defined", "ncp.bit15l1flagsl", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6894 { &hf_bit16l1flagsl,
6895 { "Not Defined", "ncp.bit16l1flagsl", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6898 { "Not Defined", "ncp.bit1l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6901 { "Not Defined", "ncp.bit2l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6904 { "Not Defined", "ncp.bit3l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6907 { "Not Defined", "ncp.bit4l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6910 { "Not Defined", "ncp.bit5l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6913 { "Not Defined", "ncp.bit6l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6916 { "Not Defined", "ncp.bit7l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6919 { "Not Defined", "ncp.bit8l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6922 { "Not Defined", "ncp.bit9l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6924 { &hf_bit10l1flagsh,
6925 { "Not Defined", "ncp.bit10l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6927 { &hf_bit11l1flagsh,
6928 { "Not Defined", "ncp.bit11l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6930 { &hf_bit12l1flagsh,
6931 { "Not Defined", "ncp.bit12l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6933 { &hf_bit13l1flagsh,
6934 { "Not Defined", "ncp.bit13l1flagsh", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6936 { &hf_bit14l1flagsh,
6937 { "Not Defined", "ncp.bit14l1flagsh", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6939 { &hf_bit15l1flagsh,
6940 { "Not Defined", "ncp.bit15l1flagsh", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6942 { &hf_bit16l1flagsh,
6943 { "Not Defined", "ncp.bit16l1flagsh", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6946 { "Naming", "ncp.bit1vflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6949 { "Base Class", "ncp.bit2vflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6952 { "Present", "ncp.bit3vflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6955 { "Value Damaged", "ncp.bit4vflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6958 { "Not Defined", "ncp.bit5vflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6961 { "Not Defined", "ncp.bit6vflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6964 { "Not Defined", "ncp.bit7vflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6967 { "Not Defined", "ncp.bit8vflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6970 { "Not Defined", "ncp.bit9vflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6973 { "Not Defined", "ncp.bit10vflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6976 { "Not Defined", "ncp.bit11vflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6979 { "Not Defined", "ncp.bit12vflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6982 { "Not Defined", "ncp.bit13vflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6985 { "Not Defined", "ncp.bit14vflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6988 { "Not Defined", "ncp.bit15vflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6991 { "Not Defined", "ncp.bit16vflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6994 { "Ambiguous Containment", "ncp.bit1cflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6997 { "Ambiguous Naming", "ncp.bit2cflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7000 { "Class Definition Cannot be Removed", "ncp.bit3cflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7003 { "Effective Class", "ncp.bit4cflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7006 { "Container Class", "ncp.bit5cflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7009 { "Not Defined", "ncp.bit6cflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7012 { "Not Defined", "ncp.bit7cflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7015 { "Not Defined", "ncp.bit8cflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7018 { "Not Defined", "ncp.bit9cflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7021 { "Not Defined", "ncp.bit10cflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7024 { "Not Defined", "ncp.bit11cflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7027 { "Not Defined", "ncp.bit12cflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7030 { "Not Defined", "ncp.bit13cflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7033 { "Not Defined", "ncp.bit14cflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7036 { "Not Defined", "ncp.bit15cflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7039 { "Not Defined", "ncp.bit16cflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7042 { "Single Valued", "ncp.bit1acflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7045 { "Sized", "ncp.bit2acflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7048 { "Non-Removable", "ncp.bit3acflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7051 { "Read Only", "ncp.bit4acflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7054 { "Hidden", "ncp.bit5acflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7057 { "String", "ncp.bit6acflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7060 { "Synchronize Immediate", "ncp.bit7acflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7063 { "Public Read", "ncp.bit8acflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7066 { "Server Read", "ncp.bit9acflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7069 { "Write Managed", "ncp.bit10acflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7072 { "Per Replica", "ncp.bit11acflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7075 { "Never Schedule Synchronization", "ncp.bit12acflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7078 { "Operational", "ncp.bit13acflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7081 { "Not Defined", "ncp.bit14acflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7084 { "Not Defined", "ncp.bit15acflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7087 { "Not Defined", "ncp.bit16acflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7090 { &hf_nds_reply_error,
7091 { "NDS Error", "ncp.ndsreplyerror", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7094 { "Network","ncp.ndsnet", FT_IPXNET, BASE_NONE, NULL, 0x0, "", HFILL }},
7097 { "Node", "ncp.ndsnode", FT_ETHER, BASE_NONE, NULL, 0x0, "", HFILL }},
7100 { "Socket", "ncp.ndssocket", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
7103 { "Address Referral", "ncp.ipref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7106 { "Address Referral", "ncp.udpref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7109 { "Address Referral", "ncp.tcpref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7111 { &hf_referral_record,
7112 { "Referral Record", "ncp.ref_rec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7114 { &hf_referral_addcount,
7115 { "Address Count", "ncp.ref_addcount", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7118 { "Port", "ncp.ndsport", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7121 { "Attribute Name ", "ncp.mv_string", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7124 { "Attribute Syntax ", "ncp.nds_syntax", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7127 { "Value ", "ncp.value_string", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7129 { &hf_nds_stream_name,
7130 { "Stream Name ", "ncp.nds_stream_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7132 { &hf_nds_buffer_size,
7133 { "NDS Reply Buffer Size", "ncp.nds_reply_buf", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7136 { "NDS Version", "ncp.nds_ver", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7139 { "Flags", "ncp.nds_nflags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7142 { "Request Flags", "ncp.nds_rflags", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7145 { "Entry Flags", "ncp.nds_eflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7148 { "Scope", "ncp.nds_scope", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7151 { "Name", "ncp.nds_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7153 { &hf_nds_name_type,
7154 { "Name Type", "ncp.nds_name_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7156 { &hf_nds_comm_trans,
7157 { "Communications Transport", "ncp.nds_comm_trans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7159 { &hf_nds_tree_trans,
7160 { "Tree Walker Transport", "ncp.nds_tree_trans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7162 { &hf_nds_iteration,
7163 { "Iteration Handle", "ncp.nds_iteration", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7165 { &hf_nds_file_handle,
7166 { "File Handle", "ncp.nds_file_handle", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7168 { &hf_nds_file_size,
7169 { "File Size", "ncp.nds_file_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7172 { "NDS EID", "ncp.nds_eid", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7175 { "Distance object is from Root", "ncp.nds_depth", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7177 { &hf_nds_info_type,
7178 { "Info Type", "ncp.nds_info_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7180 { &hf_nds_class_def_type,
7181 { "Class Definition Type", "ncp.nds_class_def_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7184 { "All Attributes", "ncp.nds_all_attr", FT_UINT32, BASE_DEC, NULL, 0x0, "Return all Attributes?", HFILL }},
7186 { &hf_nds_return_all_classes,
7187 { "All Classes", "ncp.nds_return_all_classes", FT_STRING, BASE_NONE, NULL, 0x0, "Return all Classes?", HFILL }},
7189 { &hf_nds_req_flags,
7190 { "Request Flags", "ncp.nds_req_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7193 { "Attributes", "ncp.nds_attributes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7196 { "Classes", "ncp.nds_classes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7199 { "CRC", "ncp.nds_crc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7201 { &hf_nds_referrals,
7202 { "Referrals", "ncp.nds_referrals", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7204 { &hf_nds_result_flags,
7205 { "Result Flags", "ncp.nds_result_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7207 { &hf_nds_stream_flags,
7208 { "Streams Flags", "ncp.nds_stream_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7210 { &hf_nds_tag_string,
7211 { "Tags", "ncp.nds_tags", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7214 { "Bytes", "ncp.value_bytes", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
7217 { "Replica Type", "ncp.rtype", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7219 { &hf_replica_state,
7220 { "Replica State", "ncp.rstate", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7223 { "Replica Number", "ncp.rnum", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7226 { "Event", "ncp.revent", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7228 { &hf_replica_number,
7229 { "Replica Number", "ncp.rnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7232 { "Minimum NDS Version", "ncp.min_nds_version", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7234 { &hf_nds_ver_include,
7235 { "Include NDS Version", "ncp.inc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7237 { &hf_nds_ver_exclude,
7238 { "Exclude NDS Version", "ncp.exc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7241 { "Input Entry Specifier", "ncp.nds_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7244 { "Entry Specifier Type", "ncp.nds_es_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7247 { "RDN", "ncp.nds_rdn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7250 { "Delimeter", "ncp.nds_delim", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7252 { &hf_nds_dn_output_type,
7253 { "Output Entry Specifier Type", "ncp.nds_out_es_type", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7255 { &hf_nds_nested_output_type,
7256 { "Nested Output Entry Specifier Type", "ncp.nds_nested_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7258 { &hf_nds_output_delimiter,
7259 { "Output Delimiter", "ncp.nds_out_delimiter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7261 { &hf_nds_output_entry_specifier,
7262 { "Output Entry Specifier", "ncp.nds_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7265 { "Entry Specifier Value", "ncp.nds_es_value", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7268 { "RDN Count", "ncp.nds_es_rdn_count", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7270 { &hf_nds_replica_num,
7271 { "Replica Number", "ncp.nds_replica_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7274 { "Seconds", "ncp.nds_es_seconds", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7276 { &hf_nds_event_num,
7277 { "Event Number", "ncp.nds_event_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7279 { &hf_nds_compare_results,
7280 { "Compare Results", "ncp.nds_compare_results", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7283 { "Parent ID", "ncp.nds_parent", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7285 { &hf_nds_name_filter,
7286 { "Name Filter", "ncp.nds_name_filter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7288 { &hf_nds_class_filter,
7289 { "Class Filter", "ncp.nds_class_filter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7291 { &hf_nds_time_filter,
7292 { "Time Filter", "ncp.nds_time_filter", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7294 { &hf_nds_partition_root_id,
7295 { "Partition Root ID", "ncp.nds_partition_root_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7298 { "Replicas", "ncp.nds_replicas", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7301 { "Purge Time", "ncp.nds_purge", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7303 { &hf_nds_local_partition,
7304 { "Local Partition ID", "ncp.nds_local_partition", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7306 { &hf_partition_busy,
7307 { "Partition Busy", "ncp.nds_partition_busy", FT_BOOLEAN, 16, NULL, 0x0, "", HFILL }},
7309 { &hf_nds_number_of_changes,
7310 { "Number of Attribute Changes", "ncp.nds_number_of_changes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7313 { "Subordinate Count", "ncp.sub_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7316 { "Revision Count", "ncp.nds_rev_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7318 { &hf_nds_base_class,
7319 { "Base Class", "ncp.nds_base_class", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7321 { &hf_nds_relative_dn,
7322 { "Relative Distinguished Name", "ncp.nds_relative_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7325 { "Root Distinguished Name", "ncp.nds_root_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7327 { &hf_nds_parent_dn,
7328 { "Parent Distinguished Name", "ncp.nds_parent_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7331 { "Dereference Base Class", "ncp.nds_deref_base", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7334 { "Base Class", "ncp.nds_base", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7337 { "Super Class", "ncp.nds_super", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7339 { &hf_nds_entry_info,
7340 { "Entry Information", "ncp.nds_entry_info", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7342 { &hf_nds_privileges,
7343 { "Privileges", "ncp.nds_privileges", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7346 { "Value Flags", "ncp.nds_vflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7348 { &hf_nds_value_len,
7349 { "Value Length", "ncp.nds_vlength", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7352 { "Class Flags", "ncp.nds_cflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7355 { "ASN.1 ID", "ncp.nds_asn1", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
7358 { "Attribute Constraint Flags", "ncp.nds_acflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7361 { "Upper Limit Value", "ncp.nds_upper", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7364 { "Lower Limit Value", "ncp.nds_lower", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7366 { &hf_nds_trustee_dn,
7367 { "Trustee Distinguished Name", "ncp.nds_trustee_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7369 { &hf_nds_attribute_dn,
7370 { "Attribute Name", "ncp.nds_attribute_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7373 { "Access Control Lists to Add", "ncp.nds_acl_add", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7376 { "Access Control Lists to Delete", "ncp.nds_acl_del", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7379 { "Attribute to Add", "ncp.nds_att_add", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7382 { "Attribute to Delete", "ncp.nds_att_del", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7385 { "Delete Original RDN", "ncp.nds_keep", FT_BOOLEAN, 32, NULL, 0x0, "", HFILL }},
7388 { "New Relative Distinguished Name", "ncp.nds_new_rdn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7390 { &hf_nds_time_delay,
7391 { "Time Delay", "ncp.nds_time_delay", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7393 { &hf_nds_root_name,
7394 { "Root Most Object Name", "ncp.nds_root_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7396 { &hf_nds_new_part_id,
7397 { "New Partition Root ID", "ncp.nds_new_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7399 { &hf_nds_child_part_id,
7400 { "Child Partition Root ID", "ncp.nds_child_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7402 { &hf_nds_master_part_id,
7403 { "Master Partition Root ID", "ncp.nds_master_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7405 { &hf_nds_target_name,
7406 { "Target Server Name", "ncp.nds_target_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7409 { &hf_bit1pingflags1,
7410 { "Supported Fields", "ncp.bit1pingflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7412 { &hf_bit2pingflags1,
7413 { "Depth", "ncp.bit2pingflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7415 { &hf_bit3pingflags1,
7416 { "Revision", "ncp.bit3pingflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7418 { &hf_bit4pingflags1,
7419 { "Flags", "ncp.bit4pingflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7421 { &hf_bit5pingflags1,
7422 { "Verification Flags", "ncp.bit5pingflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7424 { &hf_bit6pingflags1,
7425 { "Letter Version", "ncp.bit6pingflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7427 { &hf_bit7pingflags1,
7428 { "OS Version", "ncp.bit7pingflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7430 { &hf_bit8pingflags1,
7431 { "License Flags", "ncp.bit8pingflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7433 { &hf_bit9pingflags1,
7434 { "DS Time", "ncp.bit9pingflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7436 { &hf_bit10pingflags1,
7437 { "Not Defined", "ncp.bit10pingflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7439 { &hf_bit11pingflags1,
7440 { "Not Defined", "ncp.bit11pingflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7442 { &hf_bit12pingflags1,
7443 { "Not Defined", "ncp.bit12pingflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7445 { &hf_bit13pingflags1,
7446 { "Not Defined", "ncp.bit13pingflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7448 { &hf_bit14pingflags1,
7449 { "Not Defined", "ncp.bit14pingflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7451 { &hf_bit15pingflags1,
7452 { "Not Defined", "ncp.bit15pingflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7454 { &hf_bit16pingflags1,
7455 { "Not Defined", "ncp.bit16pingflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7457 { &hf_bit1pingflags2,
7458 { "Sap Name", "ncp.bit1pingflags2", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7460 { &hf_bit2pingflags2,
7461 { "Tree Name", "ncp.bit2pingflags2", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7463 { &hf_bit3pingflags2,
7464 { "OS Name", "ncp.bit3pingflags2", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7466 { &hf_bit4pingflags2,
7467 { "Hardware Name", "ncp.bit4pingflags2", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7469 { &hf_bit5pingflags2,
7470 { "Vendor Name", "ncp.bit5pingflags2", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7472 { &hf_bit6pingflags2,
7473 { "Not Defined", "ncp.bit6pingflags2", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7475 { &hf_bit7pingflags2,
7476 { "Not Defined", "ncp.bit7pingflags2", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7478 { &hf_bit8pingflags2,
7479 { "Not Defined", "ncp.bit8pingflags2", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7481 { &hf_bit9pingflags2,
7482 { "Not Defined", "ncp.bit9pingflags2", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7484 { &hf_bit10pingflags2,
7485 { "Not Defined", "ncp.bit10pingflags2", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7487 { &hf_bit11pingflags2,
7488 { "Not Defined", "ncp.bit11pingflags2", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7490 { &hf_bit12pingflags2,
7491 { "Not Defined", "ncp.bit12pingflags2", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7493 { &hf_bit13pingflags2,
7494 { "Not Defined", "ncp.bit13pingflags2", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7496 { &hf_bit14pingflags2,
7497 { "Not Defined", "ncp.bit14pingflags2", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7499 { &hf_bit15pingflags2,
7500 { "Not Defined", "ncp.bit15pingflags2", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7502 { &hf_bit16pingflags2,
7503 { "Not Defined", "ncp.bit16pingflags2", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7505 { &hf_bit1pingpflags1,
7506 { "Root Most Master Replica", "ncp.bit1pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7508 { &hf_bit2pingpflags1,
7509 { "Time Synchronized", "ncp.bit2pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7511 { &hf_bit3pingpflags1,
7512 { "Not Defined", "ncp.bit3pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7514 { &hf_bit4pingpflags1,
7515 { "Not Defined", "ncp.bit4pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7517 { &hf_bit5pingpflags1,
7518 { "Not Defined", "ncp.bit5pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7520 { &hf_bit6pingpflags1,
7521 { "Not Defined", "ncp.bit6pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7523 { &hf_bit7pingpflags1,
7524 { "Not Defined", "ncp.bit7pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7526 { &hf_bit8pingpflags1,
7527 { "Not Defined", "ncp.bit8pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7529 { &hf_bit9pingpflags1,
7530 { "Not Defined", "ncp.bit9pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7532 { &hf_bit10pingpflags1,
7533 { "Not Defined", "ncp.bit10pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7535 { &hf_bit11pingpflags1,
7536 { "Not Defined", "ncp.bit11pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7538 { &hf_bit12pingpflags1,
7539 { "Not Defined", "ncp.bit12pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7541 { &hf_bit13pingpflags1,
7542 { "Not Defined", "ncp.bit13pingpflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7544 { &hf_bit14pingpflags1,
7545 { "Not Defined", "ncp.bit14pingpflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7547 { &hf_bit15pingpflags1,
7548 { "Not Defined", "ncp.bit15pingpflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7550 { &hf_bit16pingpflags1,
7551 { "Not Defined", "ncp.bit16pingpflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7553 { &hf_bit1pingvflags1,
7554 { "Checksum", "ncp.bit1pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7556 { &hf_bit2pingvflags1,
7557 { "CRC32", "ncp.bit2pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7559 { &hf_bit3pingvflags1,
7560 { "Not Defined", "ncp.bit3pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7562 { &hf_bit4pingvflags1,
7563 { "Not Defined", "ncp.bit4pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7565 { &hf_bit5pingvflags1,
7566 { "Not Defined", "ncp.bit5pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7568 { &hf_bit6pingvflags1,
7569 { "Not Defined", "ncp.bit6pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7571 { &hf_bit7pingvflags1,
7572 { "Not Defined", "ncp.bit7pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7574 { &hf_bit8pingvflags1,
7575 { "Not Defined", "ncp.bit8pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7577 { &hf_bit9pingvflags1,
7578 { "Not Defined", "ncp.bit9pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7580 { &hf_bit10pingvflags1,
7581 { "Not Defined", "ncp.bit10pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7583 { &hf_bit11pingvflags1,
7584 { "Not Defined", "ncp.bit11pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7586 { &hf_bit12pingvflags1,
7587 { "Not Defined", "ncp.bit12pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7589 { &hf_bit13pingvflags1,
7590 { "Not Defined", "ncp.bit13pingvflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7592 { &hf_bit14pingvflags1,
7593 { "Not Defined", "ncp.bit14pingvflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7595 { &hf_bit15pingvflags1,
7596 { "Not Defined", "ncp.bit15pingvflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7598 { &hf_bit16pingvflags1,
7599 { "Not Defined", "ncp.bit16pingvflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7601 { &hf_nds_letter_ver,
7602 { "Letter Version", "ncp.nds_letter_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7605 { "OS Version", "ncp.nds_os_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7607 { &hf_nds_lic_flags,
7608 { "License Flags", "ncp.nds_lic_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7611 { "DS Time", "ncp.nds_ds_time", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7613 { &hf_nds_ping_version,
7614 { "Ping Version", "ncp.nds_ping_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7619 # Print the registration code for the hf variables
7620 for var in sorted_vars:
7621 print "\t{ &%s," % (var.HFName())
7622 print "\t{ \"%s\", \"%s\", %s, %s, %s, 0x%x, \"\", HFILL }},\n" % \
7623 (var.Description(), var.DFilter(),
7624 var.EtherealFType(), var.Display(), var.ValuesName(),
7630 print "\tstatic gint *ett[] = {"
7632 for ett in ett_list:
7633 print "\t\t&%s," % (ett,)
7638 proto_register_field_array(proto_ncp, hf, array_length(hf));
7643 proto_register_subtree_array(ett, array_length(ett));
7647 register_init_routine(&ncp_init_protocol);
7648 register_postseq_cleanup_routine(&ncp_postseq_cleanup);
7649 register_final_registration_routine(final_registration_ncp2222);
7653 # End of proto_register_ncp2222()
7656 print '#include "packet-ncp2222.inc"'
7659 print "Usage: ncp2222.py -o output_file"
7663 global compcode_lists
7671 opts, args = getopt.getopt(sys.argv[1:], optstring)
7672 except getopt.error:
7675 for opt, arg in opts:
7684 if not out_filename:
7687 # Create the output file
7689 out_file = open(out_filename, "w")
7690 except IOError, err:
7691 sys.exit("Could not open %s for writing: %s" % (out_filename,
7694 # Set msg to current stdout
7697 # Set stdout to the output file
7698 sys.stdout = out_file
7700 msg.write("Processing NCP definitions...\n")
7701 # Run the code, and if we catch any exception,
7702 # erase the output file.
7704 compcode_lists = UniqueCollection('Completion Code Lists')
7705 ptvc_lists = UniqueCollection('PTVC Lists')
7712 msg.write("Defined %d NCP types.\n" % (len(packets),))
7715 traceback.print_exc(20, msg)
7718 except IOError, err:
7719 msg.write("Could not close %s: %s\n" % (out_filename, err))
7722 if os.path.exists(out_filename):
7723 os.remove(out_filename)
7724 except OSError, err:
7725 msg.write("Could not remove %s: %s\n" % (out_filename, err))
7731 def define_ncp2222():
7732 ##############################################################################
7733 # NCP Packets. Here I list functions and subfunctions in hexadecimal like the
7734 # NCP book (and I believe LanAlyzer does this too).
7735 # However, Novell lists these in decimal in their on-line documentation.
7736 ##############################################################################
7738 pkt = NCP(0x01, "File Set Lock", 'file')
7741 pkt.CompletionCodes([0x0000])
7743 pkt = NCP(0x02, "File Release Lock", 'file')
7746 pkt.CompletionCodes([0x0000, 0xff00])
7748 pkt = NCP(0x03, "Log File Exclusive", 'file')
7749 pkt.Request( (12, 267), [
7750 rec( 7, 1, DirHandle ),
7751 rec( 8, 1, LockFlag ),
7752 rec( 9, 2, TimeoutLimit, BE ),
7753 rec( 11, (1, 256), FilePath ),
7756 pkt.CompletionCodes([0x0000, 0x8200, 0x9600, 0xfe0d, 0xff01])
7758 pkt = NCP(0x04, "Lock File Set", 'file')
7760 rec( 7, 2, TimeoutLimit ),
7763 pkt.CompletionCodes([0x0000, 0xfe0d, 0xff01])
7765 pkt = NCP(0x05, "Release File", 'file')
7766 pkt.Request( (9, 264), [
7767 rec( 7, 1, DirHandle ),
7768 rec( 8, (1, 256), FilePath ),
7771 pkt.CompletionCodes([0x0000, 0x9b00, 0x9c03, 0xff1a])
7773 pkt = NCP(0x06, "Release File Set", 'file')
7775 rec( 7, 1, LockFlag ),
7778 pkt.CompletionCodes([0x0000])
7780 pkt = NCP(0x07, "Clear File", 'file')
7781 pkt.Request( (9, 264), [
7782 rec( 7, 1, DirHandle ),
7783 rec( 8, (1, 256), FilePath ),
7786 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03,
7787 0xa100, 0xfd00, 0xff1a])
7789 pkt = NCP(0x08, "Clear File Set", 'file')
7791 rec( 7, 1, LockFlag ),
7794 pkt.CompletionCodes([0x0000])
7796 pkt = NCP(0x09, "Log Logical Record", 'file')
7797 pkt.Request( (11, 138), [
7798 rec( 7, 1, LockFlag ),
7799 rec( 8, 2, TimeoutLimit, BE ),
7800 rec( 10, (1, 128), LogicalRecordName ),
7801 ], info_str=(LogicalRecordName, "Log Logical Record: %s", ", %s"))
7803 pkt.CompletionCodes([0x0000, 0x9600, 0xfe0d, 0xff1a])
7805 pkt = NCP(0x0A, "Lock Logical Record Set", 'file')
7807 rec( 7, 1, LockFlag ),
7808 rec( 8, 2, TimeoutLimit ),
7811 pkt.CompletionCodes([0x0000, 0xfe0d, 0xff1a])
7813 pkt = NCP(0x0B, "Clear Logical Record", 'file')
7814 pkt.Request( (8, 135), [
7815 rec( 7, (1, 128), LogicalRecordName ),
7816 ], info_str=(LogicalRecordName, "Clear Logical Record: %s", ", %s"))
7818 pkt.CompletionCodes([0x0000, 0xff1a])
7820 pkt = NCP(0x0C, "Release Logical Record", 'file')
7821 pkt.Request( (8, 135), [
7822 rec( 7, (1, 128), LogicalRecordName ),
7823 ], info_str=(LogicalRecordName, "Release Logical Record: %s", ", %s"))
7825 pkt.CompletionCodes([0x0000, 0xff1a])
7827 pkt = NCP(0x0D, "Release Logical Record Set", 'file')
7829 rec( 7, 1, LockFlag ),
7832 pkt.CompletionCodes([0x0000])
7834 pkt = NCP(0x0E, "Clear Logical Record Set", 'file')
7836 rec( 7, 1, LockFlag ),
7839 pkt.CompletionCodes([0x0000])
7841 pkt = NCP(0x1100, "Write to Spool File", 'qms')
7842 pkt.Request( (11, 16), [
7843 rec( 10, ( 1, 6 ), Data ),
7844 ], info_str=(Data, "Write to Spool File: %s", ", %s"))
7846 pkt.CompletionCodes([0x0000, 0x0104, 0x8000, 0x8101, 0x8701, 0x8800,
7847 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9400, 0x9500,
7848 0x9600, 0x9804, 0x9900, 0xa100, 0xa201, 0xff19])
7850 pkt = NCP(0x1101, "Close Spool File", 'qms')
7852 rec( 10, 1, AbortQueueFlag ),
7855 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8701, 0x8800, 0x8d00,
7856 0x8e00, 0x8f00, 0x9001, 0x9300, 0x9400, 0x9500,
7857 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03, 0x9d00,
7858 0xa100, 0xd000, 0xd100, 0xd202, 0xd300, 0xd400,
7859 0xda01, 0xe800, 0xea00, 0xeb00, 0xec00, 0xfc06,
7860 0xfd00, 0xfe07, 0xff06])
7862 pkt = NCP(0x1102, "Set Spool File Flags", 'qms')
7864 rec( 10, 1, PrintFlags ),
7865 rec( 11, 1, TabSize ),
7866 rec( 12, 1, TargetPrinter ),
7867 rec( 13, 1, Copies ),
7868 rec( 14, 1, FormType ),
7869 rec( 15, 1, Reserved ),
7870 rec( 16, 14, BannerName ),
7873 pkt.CompletionCodes([0x0000, 0x9600, 0xd202, 0xd300, 0xe800, 0xea00,
7874 0xeb00, 0xec00, 0xfc06, 0xfe07, 0xff06])
7877 pkt = NCP(0x1103, "Spool A Disk File", 'qms')
7878 pkt.Request( (12, 23), [
7879 rec( 10, 1, DirHandle ),
7880 rec( 11, (1, 12), Data ),
7881 ], info_str=(Data, "Spool a Disk File: %s", ", %s"))
7883 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8701, 0x8800, 0x8d00,
7884 0x8e00, 0x8f00, 0x9001, 0x9300, 0x9400, 0x9500,
7885 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03, 0x9d00,
7886 0xa100, 0xd000, 0xd100, 0xd202, 0xd300, 0xd400,
7887 0xda01, 0xe800, 0xea00, 0xeb00, 0xec00, 0xfc06,
7888 0xfd00, 0xfe07, 0xff06])
7891 pkt = NCP(0x1106, "Get Printer Status", 'qms')
7893 rec( 10, 1, TargetPrinter ),
7896 rec( 8, 1, PrinterHalted ),
7897 rec( 9, 1, PrinterOffLine ),
7898 rec( 10, 1, CurrentFormType ),
7899 rec( 11, 1, RedirectedPrinter ),
7901 pkt.CompletionCodes([0x0000, 0x9600, 0xfb05, 0xfd00, 0xff06])
7904 pkt = NCP(0x1109, "Create Spool File", 'qms')
7905 pkt.Request( (12, 23), [
7906 rec( 10, 1, DirHandle ),
7907 rec( 11, (1, 12), Data ),
7908 ], info_str=(Data, "Create Spool File: %s", ", %s"))
7910 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8400, 0x8701, 0x8d00,
7911 0x8f00, 0x9001, 0x9400, 0x9600, 0x9804, 0x9900,
7912 0x9b03, 0x9c03, 0xa100, 0xd000, 0xd100, 0xd202,
7913 0xd300, 0xd400, 0xda01, 0xe800, 0xea00, 0xeb00,
7914 0xec00, 0xfc06, 0xfd00, 0xfe07, 0xff06])
7917 pkt = NCP(0x110A, "Get Printer's Queue", 'qms')
7919 rec( 10, 1, TargetPrinter ),
7922 rec( 8, 4, ObjectID, BE ),
7924 pkt.CompletionCodes([0x0000, 0x9600, 0xff06])
7927 pkt = NCP(0x12, "Get Volume Info with Number", 'file')
7929 rec( 7, 1, VolumeNumber )
7930 ],info_str=(VolumeNumber, "Get Volume Information for Volume %d", ", %d"))
7932 rec( 8, 2, SectorsPerCluster, BE ),
7933 rec( 10, 2, TotalVolumeClusters, BE ),
7934 rec( 12, 2, AvailableClusters, BE ),
7935 rec( 14, 2, TotalDirectorySlots, BE ),
7936 rec( 16, 2, AvailableDirectorySlots, BE ),
7937 rec( 18, 16, VolumeName ),
7938 rec( 34, 2, RemovableFlag, BE ),
7940 pkt.CompletionCodes([0x0000, 0x9804])
7943 pkt = NCP(0x13, "Get Station Number", 'connection')
7946 rec( 8, 3, StationNumber )
7948 pkt.CompletionCodes([0x0000, 0xff00])
7951 pkt = NCP(0x14, "Get File Server Date And Time", 'fileserver')
7958 rec( 12, 1, Minute ),
7959 rec( 13, 1, Second ),
7960 rec( 14, 1, DayOfWeek ),
7962 pkt.CompletionCodes([0x0000])
7965 pkt = NCP(0x1500, "Send Broadcast Message", 'message')
7966 pkt.Request((13, 70), [
7967 rec( 10, 1, ClientListLen, var="x" ),
7968 rec( 11, 1, TargetClientList, repeat="x" ),
7969 rec( 12, (1, 58), TargetMessage ),
7970 ], info_str=(TargetMessage, "Send Broadcast Message: %s", ", %s"))
7972 rec( 8, 1, ClientListLen, var="x" ),
7973 rec( 9, 1, SendStatus, repeat="x" )
7975 pkt.CompletionCodes([0x0000, 0xfd00])
7978 pkt = NCP(0x1501, "Get Broadcast Message", 'message')
7981 rec( 8, (1, 58), TargetMessage )
7983 pkt.CompletionCodes([0x0000, 0xfd00])
7986 pkt = NCP(0x1502, "Disable Broadcasts", 'message')
7989 pkt.CompletionCodes([0x0000])
7992 pkt = NCP(0x1503, "Enable Broadcasts", 'message')
7995 pkt.CompletionCodes([0x0000])
7998 pkt = NCP(0x1509, "Broadcast To Console", 'message')
7999 pkt.Request((11, 68), [
8000 rec( 10, (1, 58), TargetMessage )
8001 ], info_str=(TargetMessage, "Broadcast to Console: %s", ", %s"))
8003 pkt.CompletionCodes([0x0000])
8005 pkt = NCP(0x150A, "Send Broadcast Message", 'message')
8006 pkt.Request((17, 74), [
8007 rec( 10, 2, ClientListCount, LE, var="x" ),
8008 rec( 12, 4, ClientList, LE, repeat="x" ),
8009 rec( 16, (1, 58), TargetMessage ),
8010 ], info_str=(TargetMessage, "Send Broadcast Message: %s", ", %s"))
8012 rec( 8, 2, ClientListCount, LE, var="x" ),
8013 rec( 10, 4, ClientCompFlag, LE, repeat="x" ),
8015 pkt.CompletionCodes([0x0000, 0xfd00])
8018 pkt = NCP(0x150B, "Get Broadcast Message", 'message')
8021 rec( 8, (1, 58), TargetMessage )
8023 pkt.CompletionCodes([0x0000, 0xfd00])
8026 pkt = NCP(0x150C, "Connection Message Control", 'message')
8028 rec( 10, 1, ConnectionControlBits ),
8029 rec( 11, 3, Reserved3 ),
8030 rec( 14, 4, ConnectionListCount, LE, var="x" ),
8031 rec( 18, 4, ConnectionList, LE, repeat="x" ),
8034 pkt.CompletionCodes([0x0000, 0xff00])
8037 pkt = NCP(0x1600, "Set Directory Handle", 'fileserver')
8038 pkt.Request((13,267), [
8039 rec( 10, 1, TargetDirHandle ),
8040 rec( 11, 1, DirHandle ),
8041 rec( 12, (1, 255), Path ),
8042 ], info_str=(Path, "Set Directory Handle to: %s", ", %s"))
8044 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8049 pkt = NCP(0x1601, "Get Directory Path", 'fileserver')
8051 rec( 10, 1, DirHandle ),
8052 ],info_str=(DirHandle, "Get Directory Path for Directory Handle %d", ", %d"))
8053 pkt.Reply((9,263), [
8054 rec( 8, (1,255), Path ),
8056 pkt.CompletionCodes([0x0000, 0x9600, 0x9b00, 0x9c00, 0xa100])
8059 pkt = NCP(0x1602, "Scan Directory Information", 'fileserver')
8060 pkt.Request((14,268), [
8061 rec( 10, 1, DirHandle ),
8062 rec( 11, 2, StartingSearchNumber, BE ),
8063 rec( 13, (1, 255), Path ),
8064 ], info_str=(Path, "Scan Directory Information: %s", ", %s"))
8066 rec( 8, 16, DirectoryPath ),
8067 rec( 24, 2, CreationDate, BE ),
8068 rec( 26, 2, CreationTime, BE ),
8069 rec( 28, 4, CreatorID, BE ),
8070 rec( 32, 1, AccessRightsMask ),
8071 rec( 33, 1, Reserved ),
8072 rec( 34, 2, NextSearchNumber, BE ),
8074 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8078 pkt = NCP(0x1603, "Get Effective Directory Rights", 'fileserver')
8079 pkt.Request((14,268), [
8080 rec( 10, 1, DirHandle ),
8081 rec( 11, 2, StartingSearchNumber ),
8082 rec( 13, (1, 255), Path ),
8083 ], info_str=(Path, "Get Effective Directory Rights: %s", ", %s"))
8085 rec( 8, 1, AccessRightsMask ),
8087 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8091 pkt = NCP(0x1604, "Modify Maximum Rights Mask", 'fileserver')
8092 pkt.Request((14,268), [
8093 rec( 10, 1, DirHandle ),
8094 rec( 11, 1, RightsGrantMask ),
8095 rec( 12, 1, RightsRevokeMask ),
8096 rec( 13, (1, 255), Path ),
8097 ], info_str=(Path, "Modify Maximum Rights Mask: %s", ", %s"))
8099 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8103 pkt = NCP(0x1605, "Get Volume Number", 'fileserver')
8104 pkt.Request((11, 265), [
8105 rec( 10, (1,255), VolumeNameLen ),
8106 ], info_str=(VolumeNameLen, "Get Volume Number for: %s", ", %s"))
8108 rec( 8, 1, VolumeNumber ),
8110 pkt.CompletionCodes([0x0000, 0x9600, 0x9804])
8113 pkt = NCP(0x1606, "Get Volume Name", 'fileserver')
8115 rec( 10, 1, VolumeNumber ),
8116 ],info_str=(VolumeNumber, "Get Name for Volume %d", ", %d"))
8117 pkt.Reply((9, 263), [
8118 rec( 8, (1,255), VolumeNameLen ),
8120 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0xff00])
8123 pkt = NCP(0x160A, "Create Directory", 'fileserver')
8124 pkt.Request((13,267), [
8125 rec( 10, 1, DirHandle ),
8126 rec( 11, 1, AccessRightsMask ),
8127 rec( 12, (1, 255), Path ),
8128 ], info_str=(Path, "Create Directory: %s", ", %s"))
8130 pkt.CompletionCodes([0x0000, 0x8400, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8131 0x9e00, 0xa100, 0xfd00, 0xff00])
8134 pkt = NCP(0x160B, "Delete Directory", 'fileserver')
8135 pkt.Request((13,267), [
8136 rec( 10, 1, DirHandle ),
8137 rec( 11, 1, Reserved ),
8138 rec( 12, (1, 255), Path ),
8139 ], info_str=(Path, "Delete Directory: %s", ", %s"))
8141 pkt.CompletionCodes([0x0000, 0x8a00, 0x9600, 0x9804, 0x9b03, 0x9c03,
8142 0x9f00, 0xa000, 0xa100, 0xfd00, 0xff00])
8145 pkt = NCP(0x160C, "Scan Directory for Trustees", 'fileserver')
8146 pkt.Request((13,267), [
8147 rec( 10, 1, DirHandle ),
8148 rec( 11, 1, TrusteeSetNumber ),
8149 rec( 12, (1, 255), Path ),
8150 ], info_str=(Path, "Scan Directory for Trustees: %s", ", %s"))
8152 rec( 8, 16, DirectoryPath ),
8153 rec( 24, 2, CreationDate, BE ),
8154 rec( 26, 2, CreationTime, BE ),
8155 rec( 28, 4, CreatorID ),
8156 rec( 32, 4, TrusteeID, BE ),
8157 rec( 36, 4, TrusteeID, BE ),
8158 rec( 40, 4, TrusteeID, BE ),
8159 rec( 44, 4, TrusteeID, BE ),
8160 rec( 48, 4, TrusteeID, BE ),
8161 rec( 52, 1, AccessRightsMask ),
8162 rec( 53, 1, AccessRightsMask ),
8163 rec( 54, 1, AccessRightsMask ),
8164 rec( 55, 1, AccessRightsMask ),
8165 rec( 56, 1, AccessRightsMask ),
8167 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c03,
8168 0xa100, 0xfd00, 0xff00])
8171 pkt = NCP(0x160D, "Add Trustee to Directory", 'fileserver')
8172 pkt.Request((17,271), [
8173 rec( 10, 1, DirHandle ),
8174 rec( 11, 4, TrusteeID, BE ),
8175 rec( 15, 1, AccessRightsMask ),
8176 rec( 16, (1, 255), Path ),
8177 ], info_str=(Path, "Add Trustee to Directory: %s", ", %s"))
8179 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8180 0xa100, 0xfc06, 0xfd00, 0xff00])
8183 pkt = NCP(0x160E, "Delete Trustee from Directory", 'fileserver')
8184 pkt.Request((17,271), [
8185 rec( 10, 1, DirHandle ),
8186 rec( 11, 4, TrusteeID, BE ),
8187 rec( 15, 1, Reserved ),
8188 rec( 16, (1, 255), Path ),
8189 ], info_str=(Path, "Delete Trustee from Directory: %s", ", %s"))
8191 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8192 0xa100, 0xfc06, 0xfd00, 0xfe07, 0xff00])
8195 pkt = NCP(0x160F, "Rename Directory", 'fileserver')
8196 pkt.Request((13, 521), [
8197 rec( 10, 1, DirHandle ),
8198 rec( 11, (1, 255), Path ),
8199 rec( -1, (1, 255), NewPath ),
8200 ], info_str=(Path, "Rename Directory: %s", ", %s"))
8202 pkt.CompletionCodes([0x0000, 0x8b00, 0x9200, 0x9600, 0x9804, 0x9b03, 0x9c03,
8203 0x9e00, 0xa100, 0xef00, 0xfd00, 0xff00])
8206 pkt = NCP(0x1610, "Purge Erased Files", 'file')
8209 pkt.CompletionCodes([0x0000, 0x8100, 0x9600, 0x9804, 0xa100, 0xff00])
8212 pkt = NCP(0x1611, "Recover Erased File", 'fileserver')
8214 rec( 10, 1, DirHandle ),
8215 ],info_str=(DirHandle, "Recover Erased File from Directory Handle %d", ", %d"))
8217 rec( 8, 15, OldFileName ),
8218 rec( 23, 15, NewFileName ),
8220 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03,
8221 0xa100, 0xfd00, 0xff00])
8223 pkt = NCP(0x1612, "Alloc Permanent Directory Handle", 'fileserver')
8224 pkt.Request((13, 267), [
8225 rec( 10, 1, DirHandle ),
8226 rec( 11, 1, DirHandleName ),
8227 rec( 12, (1,255), Path ),
8228 ], info_str=(Path, "Allocate Permanent Directory Handle: %s", ", %s"))
8230 rec( 8, 1, DirHandle ),
8231 rec( 9, 1, AccessRightsMask ),
8233 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8234 0xa100, 0xfd00, 0xff00])
8236 pkt = NCP(0x1613, "Alloc Temporary Directory Handle", 'fileserver')
8237 pkt.Request((13, 267), [
8238 rec( 10, 1, DirHandle ),
8239 rec( 11, 1, DirHandleName ),
8240 rec( 12, (1,255), Path ),
8241 ], info_str=(Path, "Allocate Temporary Directory Handle: %s", ", %s"))
8243 rec( 8, 1, DirHandle ),
8244 rec( 9, 1, AccessRightsMask ),
8246 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8247 0xa100, 0xfd00, 0xff00])
8249 pkt = NCP(0x1614, "Deallocate Directory Handle", 'fileserver')
8251 rec( 10, 1, DirHandle ),
8252 ],info_str=(DirHandle, "Deallocate Directory Handle %d", ", %d"))
8254 pkt.CompletionCodes([0x0000, 0x9b03])
8256 pkt = NCP(0x1615, "Get Volume Info with Handle", 'file')
8258 rec( 10, 1, DirHandle )
8259 ],info_str=(DirHandle, "Get Volume Information with Handle %d", ", %d"))
8261 rec( 8, 2, SectorsPerCluster, BE ),
8262 rec( 10, 2, TotalVolumeClusters, BE ),
8263 rec( 12, 2, AvailableClusters, BE ),
8264 rec( 14, 2, TotalDirectorySlots, BE ),
8265 rec( 16, 2, AvailableDirectorySlots, BE ),
8266 rec( 18, 16, VolumeName ),
8267 rec( 34, 2, RemovableFlag, BE ),
8269 pkt.CompletionCodes([0x0000, 0xff00])
8271 pkt = NCP(0x1616, "Alloc Special Temporary Directory Handle", 'fileserver')
8272 pkt.Request((13, 267), [
8273 rec( 10, 1, DirHandle ),
8274 rec( 11, 1, DirHandleName ),
8275 rec( 12, (1,255), Path ),
8276 ], info_str=(Path, "Allocate Special Temporary Directory Handle: %s", ", %s"))
8278 rec( 8, 1, DirHandle ),
8279 rec( 9, 1, AccessRightsMask ),
8281 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8282 0xa100, 0xfd00, 0xff00])
8284 pkt = NCP(0x1617, "Extract a Base Handle", 'fileserver')
8286 rec( 10, 1, DirHandle ),
8287 ],info_str=(DirHandle, "Extract a Base Handle from Directory Handle %d", ", %d"))
8289 rec( 8, 10, ServerNetworkAddress ),
8290 rec( 18, 4, DirHandleLong ),
8292 pkt.CompletionCodes([0x0000, 0x9600, 0x9b03])
8294 pkt = NCP(0x1618, "Restore an Extracted Base Handle", 'fileserver')
8296 rec( 10, 10, ServerNetworkAddress ),
8297 rec( 20, 4, DirHandleLong ),
8300 rec( 8, 1, DirHandle ),
8301 rec( 9, 1, AccessRightsMask ),
8303 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c00, 0x9d00, 0xa100,
8306 pkt = NCP(0x1619, "Set Directory Information", 'fileserver')
8307 pkt.Request((21, 275), [
8308 rec( 10, 1, DirHandle ),
8309 rec( 11, 2, CreationDate ),
8310 rec( 13, 2, CreationTime ),
8311 rec( 15, 4, CreatorID, BE ),
8312 rec( 19, 1, AccessRightsMask ),
8313 rec( 20, (1,255), Path ),
8314 ], info_str=(Path, "Set Directory Information: %s", ", %s"))
8316 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c00, 0xa100,
8319 pkt = NCP(0x161A, "Get Path Name of a Volume-Directory Number Pair", 'fileserver')
8321 rec( 10, 1, VolumeNumber ),
8322 rec( 11, 2, DirectoryEntryNumberWord ),
8324 pkt.Reply((9,263), [
8325 rec( 8, (1,255), Path ),
8327 pkt.CompletionCodes([0x0000, 0x9804, 0x9c00, 0xa100])
8329 pkt = NCP(0x161B, "Scan Salvageable Files", 'fileserver')
8331 rec( 10, 1, DirHandle ),
8332 rec( 11, 4, SequenceNumber ),
8335 rec( 8, 4, SequenceNumber ),
8336 rec( 12, 2, Subdirectory ),
8337 rec( 14, 2, Reserved2 ),
8338 rec( 16, 4, AttributesDef32 ),
8339 rec( 20, 1, UniqueID ),
8340 rec( 21, 1, FlagsDef ),
8341 rec( 22, 1, DestNameSpace ),
8342 rec( 23, 1, FileNameLen ),
8343 rec( 24, 12, FileName12 ),
8344 rec( 36, 2, CreationTime ),
8345 rec( 38, 2, CreationDate ),
8346 rec( 40, 4, CreatorID, BE ),
8347 rec( 44, 2, ArchivedTime ),
8348 rec( 46, 2, ArchivedDate ),
8349 rec( 48, 4, ArchiverID, BE ),
8350 rec( 52, 2, UpdateTime ),
8351 rec( 54, 2, UpdateDate ),
8352 rec( 56, 4, UpdateID, BE ),
8353 rec( 60, 4, FileSize, BE ),
8354 rec( 64, 44, Reserved44 ),
8355 rec( 108, 2, InheritedRightsMask ),
8356 rec( 110, 2, LastAccessedDate ),
8357 rec( 112, 4, DeletedFileTime ),
8358 rec( 116, 2, DeletedTime ),
8359 rec( 118, 2, DeletedDate ),
8360 rec( 120, 4, DeletedID, BE ),
8361 rec( 124, 16, Reserved16 ),
8363 pkt.CompletionCodes([0x0000, 0xfb01, 0xff1d])
8365 pkt = NCP(0x161C, "Recover Salvageable File", 'fileserver')
8366 pkt.Request((17,525), [
8367 rec( 10, 1, DirHandle ),
8368 rec( 11, 4, SequenceNumber ),
8369 rec( 15, (1, 255), FileName ),
8370 rec( -1, (1, 255), NewFileNameLen ),
8371 ], info_str=(FileName, "Recover File: %s", ", %s"))
8373 pkt.CompletionCodes([0x0000, 0x8401, 0x9c03, 0xfe02])
8375 pkt = NCP(0x161D, "Purge Salvageable File", 'fileserver')
8377 rec( 10, 1, DirHandle ),
8378 rec( 11, 4, SequenceNumber ),
8381 pkt.CompletionCodes([0x0000, 0x8500, 0x9c03])
8383 pkt = NCP(0x161E, "Scan a Directory", 'fileserver')
8384 pkt.Request((17, 271), [
8385 rec( 10, 1, DirHandle ),
8386 rec( 11, 1, DOSFileAttributes ),
8387 rec( 12, 4, SequenceNumber ),
8388 rec( 16, (1, 255), SearchPattern ),
8389 ], info_str=(SearchPattern, "Scan a Directory: %s", ", %s"))
8391 rec( 8, 4, SequenceNumber ),
8392 rec( 12, 4, Subdirectory ),
8393 rec( 16, 4, AttributesDef32 ),
8394 rec( 20, 1, UniqueID, LE ),
8395 rec( 21, 1, PurgeFlags ),
8396 rec( 22, 1, DestNameSpace ),
8397 rec( 23, 1, NameLen ),
8398 rec( 24, 12, Name12 ),
8399 rec( 36, 2, CreationTime ),
8400 rec( 38, 2, CreationDate ),
8401 rec( 40, 4, CreatorID, BE ),
8402 rec( 44, 2, ArchivedTime ),
8403 rec( 46, 2, ArchivedDate ),
8404 rec( 48, 4, ArchiverID, BE ),
8405 rec( 52, 2, UpdateTime ),
8406 rec( 54, 2, UpdateDate ),
8407 rec( 56, 4, UpdateID, BE ),
8408 rec( 60, 4, FileSize, BE ),
8409 rec( 64, 44, Reserved44 ),
8410 rec( 108, 2, InheritedRightsMask ),
8411 rec( 110, 2, LastAccessedDate ),
8412 rec( 112, 28, Reserved28 ),
8414 pkt.CompletionCodes([0x0000, 0x8500, 0x9c03])
8416 pkt = NCP(0x161F, "Get Directory Entry", 'fileserver')
8418 rec( 10, 1, DirHandle ),
8421 rec( 8, 4, Subdirectory ),
8422 rec( 12, 4, AttributesDef32 ),
8423 rec( 16, 1, UniqueID, LE ),
8424 rec( 17, 1, PurgeFlags ),
8425 rec( 18, 1, DestNameSpace ),
8426 rec( 19, 1, NameLen ),
8427 rec( 20, 12, Name12 ),
8428 rec( 32, 2, CreationTime ),
8429 rec( 34, 2, CreationDate ),
8430 rec( 36, 4, CreatorID, BE ),
8431 rec( 40, 2, ArchivedTime ),
8432 rec( 42, 2, ArchivedDate ),
8433 rec( 44, 4, ArchiverID, BE ),
8434 rec( 48, 2, UpdateTime ),
8435 rec( 50, 2, UpdateDate ),
8436 rec( 52, 4, NextTrusteeEntry, BE ),
8437 rec( 56, 48, Reserved48 ),
8438 rec( 104, 2, MaximumSpace ),
8439 rec( 106, 2, InheritedRightsMask ),
8440 rec( 108, 28, Undefined28 ),
8442 pkt.CompletionCodes([0x0000, 0x8900, 0xbf00, 0xfb00])
8444 pkt = NCP(0x1620, "Scan Volume's User Disk Restrictions", 'fileserver')
8446 rec( 10, 1, VolumeNumber ),
8447 rec( 11, 4, SequenceNumber ),
8450 rec( 8, 1, NumberOfEntries, var="x" ),
8451 rec( 9, 8, ObjectIDStruct, repeat="x" ),
8453 pkt.CompletionCodes([0x0000, 0x9800])
8455 pkt = NCP(0x1621, "Add User Disk Space Restriction", 'fileserver')
8457 rec( 10, 1, VolumeNumber ),
8458 rec( 11, 4, ObjectID ),
8459 rec( 15, 4, DiskSpaceLimit ),
8462 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9800])
8464 pkt = NCP(0x1622, "Remove User Disk Space Restrictions", 'fileserver')
8466 rec( 10, 1, VolumeNumber ),
8467 rec( 11, 4, ObjectID ),
8470 pkt.CompletionCodes([0x0000, 0x8c00, 0xfe0e])
8472 pkt = NCP(0x1623, "Get Directory Disk Space Restriction", 'fileserver')
8474 rec( 10, 1, DirHandle ),
8477 rec( 8, 1, NumberOfEntries ),
8479 rec( 10, 4, MaxSpace ),
8480 rec( 14, 4, CurrentSpace ),
8482 pkt.CompletionCodes([0x0000])
8484 pkt = NCP(0x1624, "Set Directory Disk Space Restriction", 'fileserver')
8486 rec( 10, 1, DirHandle ),
8487 rec( 11, 4, DiskSpaceLimit ),
8490 pkt.CompletionCodes([0x0000, 0x0101, 0x8c00, 0xbf00])
8492 pkt = NCP(0x1625, "Set Directory Entry Information", 'fileserver')
8493 pkt.Request(NO_LENGTH_CHECK, [
8495 # XXX - this didn't match what was in the spec for 22/37
8496 # on the Novell Web site.
8498 rec( 10, 1, DirHandle ),
8499 rec( 11, 1, SearchAttributes ),
8500 rec( 12, 4, SequenceNumber ),
8501 rec( 16, 2, ChangeBits ),
8502 rec( 18, 2, Reserved2 ),
8503 rec( 20, 4, Subdirectory ),
8504 srec(DOSDirectoryEntryStruct, req_cond="ncp.search_att_sub == TRUE"),
8505 srec(DOSFileEntryStruct, req_cond="ncp.search_att_sub == FALSE"),
8508 pkt.ReqCondSizeConstant()
8509 pkt.CompletionCodes([0x0000, 0x0106, 0x8c00, 0xbf00])
8511 pkt = NCP(0x1626, "Scan File or Directory for Extended Trustees", 'fileserver')
8512 pkt.Request((13,267), [
8513 rec( 10, 1, DirHandle ),
8514 rec( 11, 1, SequenceByte ),
8515 rec( 12, (1, 255), Path ),
8516 ], info_str=(Path, "Scan for Extended Trustees: %s", ", %s"))
8518 rec( 8, 1, NumberOfEntries, var="x" ),
8519 rec( 9, 4, ObjectID ),
8520 rec( 13, 4, ObjectID ),
8521 rec( 17, 4, ObjectID ),
8522 rec( 21, 4, ObjectID ),
8523 rec( 25, 4, ObjectID ),
8524 rec( 29, 4, ObjectID ),
8525 rec( 33, 4, ObjectID ),
8526 rec( 37, 4, ObjectID ),
8527 rec( 41, 4, ObjectID ),
8528 rec( 45, 4, ObjectID ),
8529 rec( 49, 4, ObjectID ),
8530 rec( 53, 4, ObjectID ),
8531 rec( 57, 4, ObjectID ),
8532 rec( 61, 4, ObjectID ),
8533 rec( 65, 4, ObjectID ),
8534 rec( 69, 4, ObjectID ),
8535 rec( 73, 4, ObjectID ),
8536 rec( 77, 4, ObjectID ),
8537 rec( 81, 4, ObjectID ),
8538 rec( 85, 4, ObjectID ),
8539 rec( 89, 2, AccessRightsMaskWord, repeat="x" ),
8541 pkt.CompletionCodes([0x0000, 0x9800, 0x9b00, 0x9c00])
8543 pkt = NCP(0x1627, "Add Extended Trustee to Directory or File", 'fileserver')
8544 pkt.Request((18,272), [
8545 rec( 10, 1, DirHandle ),
8546 rec( 11, 4, ObjectID, BE ),
8547 rec( 15, 2, TrusteeRights ),
8548 rec( 17, (1, 255), Path ),
8549 ], info_str=(Path, "Add Extended Trustee: %s", ", %s"))
8551 pkt.CompletionCodes([0x0000, 0x9000])
8553 pkt = NCP(0x1628, "Scan Directory Disk Space", 'fileserver')
8554 pkt.Request((17,271), [
8556 # XXX - this didn't match what was in the spec for 22/40
8557 # on the Novell Web site.
8559 rec( 10, 1, DirHandle ),
8560 rec( 11, 1, SearchAttributes ),
8561 rec( 12, 4, SequenceNumber ),
8562 rec( 16, (1, 255), SearchPattern ),
8563 ], info_str=(SearchPattern, "Scan Directory Disk Space: %s", ", %s"))
8565 rec( 8, 4, SequenceNumber ),
8566 rec( 12, 4, Subdirectory ),
8567 rec( 16, 4, AttributesDef32 ),
8568 rec( 20, 1, UniqueID ),
8569 rec( 21, 1, PurgeFlags ),
8570 rec( 22, 1, DestNameSpace ),
8571 rec( 23, 1, NameLen ),
8572 rec( 24, 12, Name12 ),
8573 rec( 36, 2, CreationTime ),
8574 rec( 38, 2, CreationDate ),
8575 rec( 40, 4, CreatorID, BE ),
8576 rec( 44, 2, ArchivedTime ),
8577 rec( 46, 2, ArchivedDate ),
8578 rec( 48, 4, ArchiverID, BE ),
8579 rec( 52, 2, UpdateTime ),
8580 rec( 54, 2, UpdateDate ),
8581 rec( 56, 4, UpdateID, BE ),
8582 rec( 60, 4, DataForkSize, BE ),
8583 rec( 64, 4, DataForkFirstFAT, BE ),
8584 rec( 68, 4, NextTrusteeEntry, BE ),
8585 rec( 72, 36, Reserved36 ),
8586 rec( 108, 2, InheritedRightsMask ),
8587 rec( 110, 2, LastAccessedDate ),
8588 rec( 112, 4, DeletedFileTime ),
8589 rec( 116, 2, DeletedTime ),
8590 rec( 118, 2, DeletedDate ),
8591 rec( 120, 4, DeletedID, BE ),
8592 rec( 124, 8, Undefined8 ),
8593 rec( 132, 4, PrimaryEntry, LE ),
8594 rec( 136, 4, NameList, LE ),
8595 rec( 140, 4, OtherFileForkSize, BE ),
8596 rec( 144, 4, OtherFileForkFAT, BE ),
8598 pkt.CompletionCodes([0x0000, 0x8900, 0x9c03, 0xfb01, 0xff00])
8600 pkt = NCP(0x1629, "Get Object Disk Usage and Restrictions", 'fileserver')
8602 rec( 10, 1, VolumeNumber ),
8603 rec( 11, 4, ObjectID, BE ),
8606 rec( 8, 4, Restriction ),
8607 rec( 12, 4, InUse ),
8609 pkt.CompletionCodes([0x0000, 0x9802])
8611 pkt = NCP(0x162A, "Get Effective Rights for Directory Entry", 'fileserver')
8612 pkt.Request((12,266), [
8613 rec( 10, 1, DirHandle ),
8614 rec( 11, (1, 255), Path ),
8615 ], info_str=(Path, "Get Effective Rights: %s", ", %s"))
8617 rec( 8, 2, AccessRightsMaskWord ),
8619 pkt.CompletionCodes([0x0000, 0x9804, 0x9c03])
8621 pkt = NCP(0x162B, "Remove Extended Trustee from Dir or File", 'fileserver')
8622 pkt.Request((17,271), [
8623 rec( 10, 1, DirHandle ),
8624 rec( 11, 4, ObjectID, BE ),
8625 rec( 15, 1, Unused ),
8626 rec( 16, (1, 255), Path ),
8627 ], info_str=(Path, "Remove Extended Trustee from %s", ", %s"))
8629 pkt.CompletionCodes([0x0000, 0x9002, 0x9c03, 0xfe0f, 0xff09])
8631 pkt = NCP(0x162C, "Get Volume and Purge Information", 'file')
8633 rec( 10, 1, VolumeNumber )
8634 ],info_str=(VolumeNumber, "Get Volume and Purge Information for Volume %d", ", %d"))
8635 pkt.Reply( (38,53), [
8636 rec( 8, 4, TotalBlocks ),
8637 rec( 12, 4, FreeBlocks ),
8638 rec( 16, 4, PurgeableBlocks ),
8639 rec( 20, 4, NotYetPurgeableBlocks ),
8640 rec( 24, 4, TotalDirectoryEntries ),
8641 rec( 28, 4, AvailableDirEntries ),
8642 rec( 32, 4, Reserved4 ),
8643 rec( 36, 1, SectorsPerBlock ),
8644 rec( 37, (1,16), VolumeNameLen ),
8646 pkt.CompletionCodes([0x0000])
8648 pkt = NCP(0x162D, "Get Directory Information", 'file')
8650 rec( 10, 1, DirHandle )
8652 pkt.Reply( (30, 45), [
8653 rec( 8, 4, TotalBlocks ),
8654 rec( 12, 4, AvailableBlocks ),
8655 rec( 16, 4, TotalDirectoryEntries ),
8656 rec( 20, 4, AvailableDirEntries ),
8657 rec( 24, 4, Reserved4 ),
8658 rec( 28, 1, SectorsPerBlock ),
8659 rec( 29, (1,16), VolumeNameLen ),
8661 pkt.CompletionCodes([0x0000, 0x9b03])
8663 pkt = NCP(0x162E, "Rename Or Move", 'file')
8664 pkt.Request( (17,525), [
8665 rec( 10, 1, SourceDirHandle ),
8666 rec( 11, 1, SearchAttributes ),
8667 rec( 12, 1, SourcePathComponentCount ),
8668 rec( 13, (1,255), SourcePath ),
8669 rec( -1, 1, DestDirHandle ),
8670 rec( -1, 1, DestPathComponentCount ),
8671 rec( -1, (1,255), DestPath ),
8672 ], info_str=(SourcePath, "Rename or Move: %s", ", %s"))
8674 pkt.CompletionCodes([0x0000, 0x0102, 0x8701, 0x8b00, 0x8d00, 0x8e00,
8675 0x8f00, 0x9001, 0x9101, 0x9201, 0x9a00, 0x9b03,
8676 0x9c03, 0xa400, 0xff17])
8678 pkt = NCP(0x162F, "Get Name Space Information", 'file')
8680 rec( 10, 1, VolumeNumber )
8681 ],info_str=(VolumeNumber, "Get Name Space Information for Volume %d", ", %d"))
8682 pkt.Reply( (13,521), [
8683 rec( 8, 1, DefinedNameSpaces ),
8685 # XXX - there's actually a sequence of DefinedNameSpaces
8686 # NameSpaceNames here, not just one.
8688 rec( 9, (1,255), NameSpaceName ),
8689 rec( -1, 1, DefinedDataStreams ),
8690 rec( -1, 1, AssociatedNameSpace ),
8692 # XXX - there's actually a sequence of DefinedDataStreams
8693 # DataStreamNames here, not just one.
8695 rec( -1, (1,255), DataStreamName ),
8697 pkt.CompletionCodes([0x0000])
8699 pkt = NCP(0x1630, "Get Name Space Directory Entry", 'file')
8701 rec( 10, 1, VolumeNumber ),
8702 rec( 11, 4, DOSSequence ),
8703 rec( 15, 1, SrcNameSpace ),
8706 rec( 8, 4, SequenceNumber ),
8707 rec( 12, 4, Subdirectory ),
8708 rec( 16, 4, AttributesDef32 ),
8709 rec( 20, 1, UniqueID ),
8710 rec( 21, 1, Flags ),
8711 rec( 22, 1, SrcNameSpace ),
8712 rec( 23, 1, NameLength ),
8713 rec( 24, 12, Name12 ),
8714 rec( 36, 2, CreationTime ),
8715 rec( 38, 2, CreationDate ),
8716 rec( 40, 4, CreatorID, BE ),
8717 rec( 44, 2, ArchivedTime ),
8718 rec( 46, 2, ArchivedDate ),
8719 rec( 48, 4, ArchiverID ),
8720 rec( 52, 2, UpdateTime ),
8721 rec( 54, 2, UpdateDate ),
8722 rec( 56, 4, UpdateID ),
8723 rec( 60, 4, FileSize ),
8724 rec( 64, 44, Reserved44 ),
8725 rec( 108, 2, InheritedRightsMask ),
8726 rec( 110, 2, LastAccessedDate ),
8728 pkt.CompletionCodes([0x0000, 0x8900, 0x9802, 0xbf00])
8730 pkt = NCP(0x1631, "Open Data Stream", 'file')
8731 pkt.Request( (15,269), [
8732 rec( 10, 1, DataStream ),
8733 rec( 11, 1, DirHandle ),
8734 rec( 12, 1, AttributesDef ),
8735 rec( 13, 1, OpenRights ),
8736 rec( 14, (1, 255), FileName ),
8737 ], info_str=(FileName, "Open Data Stream: %s", ", %s"))
8739 rec( 8, 4, CCFileHandle, BE ),
8741 pkt.CompletionCodes([0x0000, 0x8000, 0x8200, 0x9002, 0xbe00, 0xff00])
8743 pkt = NCP(0x1632, "Get Object Effective Rights for Directory Entry", 'file')
8744 pkt.Request( (16,270), [
8745 rec( 10, 4, ObjectID, BE ),
8746 rec( 14, 1, DirHandle ),
8747 rec( 15, (1, 255), Path ),
8748 ], info_str=(Path, "Get Object Effective Rights: %s", ", %s"))
8750 rec( 8, 2, TrusteeRights ),
8752 pkt.CompletionCodes([0x0000, 0x7e01, 0x9b00, 0x9c03])
8754 pkt = NCP(0x1633, "Get Extended Volume Information", 'file')
8756 rec( 10, 1, VolumeNumber ),
8757 ],info_str=(VolumeNumber, "Get Extended Volume Information for Volume %d", ", %d"))
8758 pkt.Reply( (139,266), [
8759 rec( 8, 2, VolInfoReplyLen ),
8760 rec( 10, 128, VolInfoStructure),
8761 rec( 138, (1,128), VolumeNameLen ),
8763 pkt.CompletionCodes([0x0000, 0x7e01, 0x9804, 0xfb08, 0xff00])
8765 pkt = NCP(0x1634, "Get Mount Volume List", 'file')
8767 rec( 10, 4, StartVolumeNumber ),
8768 rec( 14, 4, VolumeRequestFlags, LE ),
8769 rec( 18, 4, SrcNameSpace ),
8772 rec( 8, 4, ItemsInPacket, var="x" ),
8773 rec( 12, 4, NextVolumeNumber ),
8774 rec( 16, 18, VolumeStruct, repeat="x"),
8776 pkt.CompletionCodes([0x0000])
8778 pkt = NCP(0x1700, "Login User", 'file')
8779 pkt.Request( (12, 58), [
8780 rec( 10, (1,16), UserName ),
8781 rec( -1, (1,32), Password ),
8782 ], info_str=(UserName, "Login User: %s", ", %s"))
8784 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc501, 0xd700,
8785 0xd900, 0xda00, 0xdb00, 0xde00, 0xdf00, 0xe800,
8786 0xec00, 0xed00, 0xef00, 0xf001, 0xf100, 0xf200,
8787 0xf600, 0xfb00, 0xfc06, 0xfe07, 0xff00])
8789 pkt = NCP(0x1701, "Change User Password", 'file')
8790 pkt.Request( (13, 90), [
8791 rec( 10, (1,16), UserName ),
8792 rec( -1, (1,32), Password ),
8793 rec( -1, (1,32), NewPassword ),
8794 ], info_str=(UserName, "Change Password for User: %s", ", %s"))
8796 pkt.CompletionCodes([0x0000, 0x9600, 0xd600, 0xf001, 0xf101, 0xf501,
8797 0xfc06, 0xfe07, 0xff00])
8799 pkt = NCP(0x1702, "Get User Connection List", 'file')
8800 pkt.Request( (11, 26), [
8801 rec( 10, (1,16), UserName ),
8802 ], info_str=(UserName, "Get User Connection: %s", ", %s"))
8803 pkt.Reply( (9, 136), [
8804 rec( 8, (1, 128), ConnectionNumberList ),
8806 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
8808 pkt = NCP(0x1703, "Get User Number", 'file')
8809 pkt.Request( (11, 26), [
8810 rec( 10, (1,16), UserName ),
8811 ], info_str=(UserName, "Get User Number: %s", ", %s"))
8813 rec( 8, 4, ObjectID, BE ),
8815 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
8817 pkt = NCP(0x1705, "Get Station's Logged Info", 'file')
8819 rec( 10, 1, TargetConnectionNumber ),
8820 ],info_str=(TargetConnectionNumber, "Get Station's Logged Information on Connection %d", ", %d"))
8822 rec( 8, 16, UserName16 ),
8823 rec( 24, 7, LoginTime ),
8824 rec( 31, 39, FullName ),
8825 rec( 70, 4, UserID, BE ),
8826 rec( 74, 128, SecurityEquivalentList ),
8827 rec( 202, 64, Reserved64 ),
8829 pkt.CompletionCodes([0x0000, 0x9602, 0xfc06, 0xfd00, 0xfe07, 0xff00])
8831 pkt = NCP(0x1707, "Get Group Number", 'file')
8833 rec( 10, 4, ObjectID, BE ),
8836 rec( 8, 4, ObjectID, BE ),
8837 rec( 12, 2, ObjectType, BE ),
8838 rec( 14, 48, ObjectNameLen ),
8840 pkt.CompletionCodes([0x0000, 0x9602, 0xf101, 0xfc06, 0xfe07, 0xff00])
8842 pkt = NCP(0x170C, "Verify Serialization", 'file')
8844 rec( 10, 4, ServerSerialNumber ),
8847 pkt.CompletionCodes([0x0000, 0xff00])
8849 pkt = NCP(0x170D, "Log Network Message", 'file')
8850 pkt.Request( (11, 68), [
8851 rec( 10, (1, 58), TargetMessage ),
8852 ], info_str=(TargetMessage, "Log Network Message: %s", ", %s"))
8854 pkt.CompletionCodes([0x0000, 0x8000, 0x8100, 0x8800, 0x8d00, 0x8e00, 0x8f00,
8855 0x9001, 0x9400, 0x9600, 0x9804, 0x9900, 0x9b00, 0xa100,
8858 pkt = NCP(0x170E, "Get Disk Utilization", 'file')
8860 rec( 10, 1, VolumeNumber ),
8861 rec( 11, 4, TrusteeID, BE ),
8864 rec( 8, 1, VolumeNumber ),
8865 rec( 9, 4, TrusteeID, BE ),
8866 rec( 13, 2, DirectoryCount, BE ),
8867 rec( 15, 2, FileCount, BE ),
8868 rec( 17, 2, ClusterCount, BE ),
8870 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0xa100, 0xf200])
8872 pkt = NCP(0x170F, "Scan File Information", 'file')
8873 pkt.Request((15,269), [
8874 rec( 10, 2, LastSearchIndex ),
8875 rec( 12, 1, DirHandle ),
8876 rec( 13, 1, SearchAttributes ),
8877 rec( 14, (1, 255), FileName ),
8878 ], info_str=(FileName, "Scan File Information: %s", ", %s"))
8880 rec( 8, 2, NextSearchIndex ),
8881 rec( 10, 14, FileName14 ),
8882 rec( 24, 2, AttributesDef16 ),
8883 rec( 26, 4, FileSize, BE ),
8884 rec( 30, 2, CreationDate, BE ),
8885 rec( 32, 2, LastAccessedDate, BE ),
8886 rec( 34, 2, ModifiedDate, BE ),
8887 rec( 36, 2, ModifiedTime, BE ),
8888 rec( 38, 4, CreatorID, BE ),
8889 rec( 42, 2, ArchivedDate, BE ),
8890 rec( 44, 2, ArchivedTime, BE ),
8891 rec( 46, 56, Reserved56 ),
8893 pkt.CompletionCodes([0x0000, 0x8800, 0x8900, 0x9300, 0x9400, 0x9804, 0x9b00, 0x9c00,
8894 0xa100, 0xfd00, 0xff17])
8896 pkt = NCP(0x1710, "Set File Information", 'file')
8897 pkt.Request((91,345), [
8898 rec( 10, 2, AttributesDef16 ),
8899 rec( 12, 4, FileSize, BE ),
8900 rec( 16, 2, CreationDate, BE ),
8901 rec( 18, 2, LastAccessedDate, BE ),
8902 rec( 20, 2, ModifiedDate, BE ),
8903 rec( 22, 2, ModifiedTime, BE ),
8904 rec( 24, 4, CreatorID, BE ),
8905 rec( 28, 2, ArchivedDate, BE ),
8906 rec( 30, 2, ArchivedTime, BE ),
8907 rec( 32, 56, Reserved56 ),
8908 rec( 88, 1, DirHandle ),
8909 rec( 89, 1, SearchAttributes ),
8910 rec( 90, (1, 255), FileName ),
8911 ], info_str=(FileName, "Set Information for File: %s", ", %s"))
8913 pkt.CompletionCodes([0x0000, 0x8800, 0x8c00, 0x8e00, 0x9400, 0x9600, 0x9804,
8914 0x9b03, 0x9c00, 0xa100, 0xa201, 0xfc06, 0xfd00, 0xfe07,
8917 pkt = NCP(0x1711, "Get File Server Information", 'fileserver')
8920 rec( 8, 48, ServerName ),
8921 rec( 56, 1, OSMajorVersion ),
8922 rec( 57, 1, OSMinorVersion ),
8923 rec( 58, 2, ConnectionsSupportedMax, BE ),
8924 rec( 60, 2, ConnectionsInUse, BE ),
8925 rec( 62, 2, VolumesSupportedMax, BE ),
8926 rec( 64, 1, OSRevision ),
8927 rec( 65, 1, SFTSupportLevel ),
8928 rec( 66, 1, TTSLevel ),
8929 rec( 67, 2, ConnectionsMaxUsed, BE ),
8930 rec( 69, 1, AccountVersion ),
8931 rec( 70, 1, VAPVersion ),
8932 rec( 71, 1, QueueingVersion ),
8933 rec( 72, 1, PrintServerVersion ),
8934 rec( 73, 1, VirtualConsoleVersion ),
8935 rec( 74, 1, SecurityRestrictionVersion ),
8936 rec( 75, 1, InternetBridgeVersion ),
8937 rec( 76, 1, MixedModePathFlag ),
8938 rec( 77, 1, LocalLoginInfoCcode ),
8939 rec( 78, 2, ProductMajorVersion, BE ),
8940 rec( 80, 2, ProductMinorVersion, BE ),
8941 rec( 82, 2, ProductRevisionVersion, BE ),
8942 rec( 84, 1, OSLanguageID, LE ),
8943 rec( 85, 51, Reserved51 ),
8945 pkt.CompletionCodes([0x0000, 0x9600])
8947 pkt = NCP(0x1712, "Get Network Serial Number", 'fileserver')
8950 rec( 8, 4, ServerSerialNumber ),
8951 rec( 12, 2, ApplicationNumber ),
8953 pkt.CompletionCodes([0x0000, 0x9600])
8955 pkt = NCP(0x1713, "Get Internet Address", 'fileserver')
8957 rec( 10, 1, TargetConnectionNumber ),
8958 ],info_str=(TargetConnectionNumber, "Get Internet Address for Connection %d", ", %d"))
8960 rec( 8, 4, NetworkAddress, BE ),
8961 rec( 12, 6, NetworkNodeAddress ),
8962 rec( 18, 2, NetworkSocket, BE ),
8964 pkt.CompletionCodes([0x0000, 0xff00])
8966 pkt = NCP(0x1714, "Login Object", 'file')
8967 pkt.Request( (14, 60), [
8968 rec( 10, 2, ObjectType, BE ),
8969 rec( 12, (1,16), ClientName ),
8970 rec( -1, (1,32), Password ),
8971 ], info_str=(UserName, "Login Object: %s", ", %s"))
8973 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc501, 0xd600, 0xd700,
8974 0xd900, 0xda00, 0xdb00, 0xde00, 0xdf00, 0xe800, 0xec00,
8975 0xed00, 0xef00, 0xf001, 0xf100, 0xf200, 0xf600, 0xfb00,
8976 0xfc06, 0xfe07, 0xff00])
8978 pkt = NCP(0x1715, "Get Object Connection List", 'file')
8979 pkt.Request( (13, 28), [
8980 rec( 10, 2, ObjectType, BE ),
8981 rec( 12, (1,16), ObjectName ),
8982 ], info_str=(UserName, "Get Object Connection List: %s", ", %s"))
8983 pkt.Reply( (9, 136), [
8984 rec( 8, (1, 128), ConnectionNumberList ),
8986 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
8988 pkt = NCP(0x1716, "Get Station's Logged Info", 'file')
8990 rec( 10, 1, TargetConnectionNumber ),
8993 rec( 8, 4, UserID, BE ),
8994 rec( 12, 2, ObjectType, BE ),
8995 rec( 14, 48, ObjectNameLen ),
8996 rec( 62, 7, LoginTime ),
8997 rec( 69, 1, Reserved ),
8999 pkt.CompletionCodes([0x0000, 0x9602, 0xfb0a, 0xfc06, 0xfd00, 0xfe07, 0xff00])
9001 pkt = NCP(0x1717, "Get Login Key", 'file')
9004 rec( 8, 8, LoginKey ),
9006 pkt.CompletionCodes([0x0000, 0x9602])
9008 pkt = NCP(0x1718, "Keyed Object Login", 'file')
9009 pkt.Request( (21, 68), [
9010 rec( 10, 8, LoginKey ),
9011 rec( 18, 2, ObjectType, BE ),
9012 rec( 20, (1,48), ObjectName ),
9013 ], info_str=(ObjectName, "Keyed Object Login: %s", ", %s"))
9015 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc500, 0xd900, 0xda00,
9016 0xdb00, 0xdc00, 0xde00])
9019 # XXX - for NCP-over-IP, the NetworkAddress field appears to be
9020 # an IP address, rather than an IPX network address, and should
9021 # be dissected as an FT_IPv4 value; the NetworkNodeAddress and
9022 # NetworkSocket are 0.
9024 # For NCP-over-IPX, it should probably be dissected as an
9027 pkt = NCP(0x171A, "Get Internet Address", 'fileserver')
9029 rec( 10, 1, TargetConnectionNumber ),
9032 rec( 8, 4, NetworkAddress, BE ),
9033 rec( 12, 6, NetworkNodeAddress ),
9034 rec( 18, 2, NetworkSocket, BE ),
9035 rec( 20, 1, ConnectionType ),
9037 pkt.CompletionCodes([0x0000])
9039 pkt = NCP(0x171B, "Get Object Connection List", 'file')
9040 pkt.Request( (17,64), [
9041 rec( 10, 4, SearchConnNumber ),
9042 rec( 14, 2, ObjectType, BE ),
9043 rec( 16, (1,48), ObjectName ),
9044 ], info_str=(ObjectName, "Get Object Connection List: %s", ", %s"))
9045 pkt.Reply( (10,137), [
9046 rec( 8, 1, ConnListLen, var="x" ),
9047 rec( 9, (1,128), ConnectionNumberList, repeat="x" ),
9049 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9051 pkt = NCP(0x171C, "Get Station's Logged Info", 'file')
9053 rec( 10, 4, TargetConnectionNumber ),
9056 rec( 8, 4, UserID, BE ),
9057 rec( 12, 2, ObjectType, BE ),
9058 rec( 14, 48, ObjectNameLen ),
9059 rec( 62, 7, LoginTime ),
9060 rec( 69, 1, Reserved ),
9062 pkt.CompletionCodes([0x0000, 0x9602, 0xfb02, 0xfc06, 0xfd00, 0xfe07, 0xff00])
9064 pkt = NCP(0x171D, "Change Connection State", 'file')
9066 rec( 10, 1, RequestCode ),
9069 pkt.CompletionCodes([0x0000, 0x0109, 0x7a00, 0x7b00, 0x7c00, 0xe000, 0xfb06, 0xfd00])
9071 pkt = NCP(0x171E, "Set Watchdog Delay Interval", 'file')
9073 rec( 10, 4, NumberOfMinutesToDelay ),
9076 pkt.CompletionCodes([0x0000, 0x0107])
9078 pkt = NCP(0x171F, "Get Connection List From Object", 'file')
9080 rec( 10, 4, ObjectID, BE ),
9081 rec( 14, 4, ConnectionNumber ),
9083 pkt.Reply( (9, 136), [
9084 rec( 8, (1, 128), ConnectionNumberList ),
9086 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9088 pkt = NCP(0x1720, "Scan Bindery Object (List)", 'bindery')
9089 pkt.Request((23,70), [
9090 rec( 10, 4, NextObjectID, BE ),
9091 rec( 14, 4, ObjectType, BE ),
9092 rec( 18, 4, InfoFlags ),
9093 rec( 22, (1,48), ObjectName ),
9094 ], info_str=(ObjectName, "Scan Bindery Object: %s", ", %s"))
9095 pkt.Reply(NO_LENGTH_CHECK, [
9096 rec( 8, 4, ObjectInfoReturnCount ),
9097 rec( 12, 4, NextObjectID, BE ),
9098 rec( 16, 4, ObjectIDInfo ),
9099 srec(ObjectTypeStruct, req_cond="ncp.info_flags_type == TRUE"),
9100 srec(ObjectSecurityStruct, req_cond="ncp.info_flags_security == TRUE"),
9101 srec(ObjectFlagsStruct, req_cond="ncp.info_flags_flags == TRUE"),
9102 srec(ObjectNameStruct, req_cond="ncp.info_flags_name == TRUE"),
9104 pkt.ReqCondSizeVariable()
9105 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xfc02, 0xfe01, 0xff00])
9107 pkt = NCP(0x1721, "Generate GUIDs", 'nds')
9109 rec( 10, 4, ReturnInfoCount ),
9112 rec( 8, 4, ReturnInfoCount, var="x" ),
9113 rec( 12, 16, GUID, repeat="x" ),
9115 pkt.CompletionCodes([0x0000])
9117 pkt = NCP(0x1732, "Create Bindery Object", 'bindery')
9118 pkt.Request( (15,62), [
9119 rec( 10, 1, ObjectFlags ),
9120 rec( 11, 1, ObjectSecurity ),
9121 rec( 12, 2, ObjectType, BE ),
9122 rec( 14, (1,48), ObjectName ),
9123 ], info_str=(ObjectName, "Create Bindery Object: %s", ", %s"))
9125 pkt.CompletionCodes([0x0000, 0x9600, 0xe700, 0xee00, 0xef00, 0xf101, 0xf501,
9126 0xfc06, 0xfe07, 0xff00])
9128 pkt = NCP(0x1733, "Delete Bindery Object", 'bindery')
9129 pkt.Request( (13,60), [
9130 rec( 10, 2, ObjectType, BE ),
9131 rec( 12, (1,48), ObjectName ),
9132 ], info_str=(ObjectName, "Delete Bindery Object: %s", ", %s"))
9134 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf200, 0xf400, 0xf600, 0xfb00,
9135 0xfc06, 0xfe07, 0xff00])
9137 pkt = NCP(0x1734, "Rename Bindery Object", 'bindery')
9138 pkt.Request( (14,108), [
9139 rec( 10, 2, ObjectType, BE ),
9140 rec( 12, (1,48), ObjectName ),
9141 rec( -1, (1,48), NewObjectName ),
9142 ], info_str=(ObjectName, "Rename Bindery Object: %s", ", %s"))
9144 pkt.CompletionCodes([0x0000, 0x9600, 0xee00, 0xf000, 0xf300, 0xfc06, 0xfe07, 0xff00])
9146 pkt = NCP(0x1735, "Get Bindery Object ID", 'bindery')
9147 pkt.Request((13,60), [
9148 rec( 10, 2, ObjectType, BE ),
9149 rec( 12, (1,48), ObjectName ),
9150 ], info_str=(ObjectName, "Get Bindery Object: %s", ", %s"))
9152 rec( 8, 4, ObjectID, BE ),
9153 rec( 12, 2, ObjectType, BE ),
9154 rec( 14, 48, ObjectNameLen ),
9156 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xf000, 0xfc02, 0xfe01, 0xff00])
9158 pkt = NCP(0x1736, "Get Bindery Object Name", 'bindery')
9160 rec( 10, 4, ObjectID, BE ),
9163 rec( 8, 4, ObjectID, BE ),
9164 rec( 12, 2, ObjectType, BE ),
9165 rec( 14, 48, ObjectNameLen ),
9167 pkt.CompletionCodes([0x0000, 0x9600, 0xf101, 0xfc02, 0xfe01, 0xff00])
9169 pkt = NCP(0x1737, "Scan Bindery Object", 'bindery')
9170 pkt.Request((17,64), [
9171 rec( 10, 4, ObjectID, BE ),
9172 rec( 14, 2, ObjectType, BE ),
9173 rec( 16, (1,48), ObjectName ),
9174 ], info_str=(ObjectName, "Scan Bindery Object: %s", ", %s"))
9176 rec( 8, 4, ObjectID, BE ),
9177 rec( 12, 2, ObjectType, BE ),
9178 rec( 14, 48, ObjectNameLen ),
9179 rec( 62, 1, ObjectFlags ),
9180 rec( 63, 1, ObjectSecurity ),
9181 rec( 64, 1, ObjectHasProperties ),
9183 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xfc02,
9186 pkt = NCP(0x1738, "Change Bindery Object Security", 'bindery')
9187 pkt.Request((14,61), [
9188 rec( 10, 1, ObjectSecurity ),
9189 rec( 11, 2, ObjectType, BE ),
9190 rec( 13, (1,48), ObjectName ),
9191 ], info_str=(ObjectName, "Change Bindery Object Security: %s", ", %s"))
9193 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf501, 0xfc02, 0xfe01, 0xff00])
9195 pkt = NCP(0x1739, "Create Property", 'bindery')
9196 pkt.Request((16,78), [
9197 rec( 10, 2, ObjectType, BE ),
9198 rec( 12, (1,48), ObjectName ),
9199 rec( -1, 1, PropertyType ),
9200 rec( -1, 1, ObjectSecurity ),
9201 rec( -1, (1,16), PropertyName ),
9202 ], info_str=(PropertyName, "Create Property: %s", ", %s"))
9204 pkt.CompletionCodes([0x0000, 0x9600, 0xed00, 0xef00, 0xf000, 0xf101,
9205 0xf200, 0xf600, 0xf700, 0xfb00, 0xfc02, 0xfe01,
9208 pkt = NCP(0x173A, "Delete Property", 'bindery')
9209 pkt.Request((14,76), [
9210 rec( 10, 2, ObjectType, BE ),
9211 rec( 12, (1,48), ObjectName ),
9212 rec( -1, (1,16), PropertyName ),
9213 ], info_str=(PropertyName, "Delete Property: %s", ", %s"))
9215 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf600, 0xfb00, 0xfc02,
9218 pkt = NCP(0x173B, "Change Property Security", 'bindery')
9219 pkt.Request((15,77), [
9220 rec( 10, 2, ObjectType, BE ),
9221 rec( 12, (1,48), ObjectName ),
9222 rec( -1, 1, ObjectSecurity ),
9223 rec( -1, (1,16), PropertyName ),
9224 ], info_str=(PropertyName, "Change Property Security: %s", ", %s"))
9226 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf200, 0xf600, 0xfb00,
9227 0xfc02, 0xfe01, 0xff00])
9229 pkt = NCP(0x173C, "Scan Property", 'bindery')
9230 pkt.Request((18,80), [
9231 rec( 10, 2, ObjectType, BE ),
9232 rec( 12, (1,48), ObjectName ),
9233 rec( -1, 4, LastInstance, BE ),
9234 rec( -1, (1,16), PropertyName ),
9235 ], info_str=(PropertyName, "Scan Property: %s", ", %s"))
9237 rec( 8, 16, PropertyName16 ),
9238 rec( 24, 1, ObjectFlags ),
9239 rec( 25, 1, ObjectSecurity ),
9240 rec( 26, 4, SearchInstance, BE ),
9241 rec( 30, 1, ValueAvailable ),
9242 rec( 31, 1, MoreProperties ),
9244 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf200, 0xf600, 0xfb00,
9245 0xfc02, 0xfe01, 0xff00])
9247 pkt = NCP(0x173D, "Read Property Value", 'bindery')
9248 pkt.Request((15,77), [
9249 rec( 10, 2, ObjectType, BE ),
9250 rec( 12, (1,48), ObjectName ),
9251 rec( -1, 1, PropertySegment ),
9252 rec( -1, (1,16), PropertyName ),
9253 ], info_str=(PropertyName, "Read Property Value: %s", ", %s"))
9255 rec( 8, 128, PropertyData ),
9256 rec( 136, 1, PropertyHasMoreSegments ),
9257 rec( 137, 1, PropertyType ),
9259 pkt.CompletionCodes([0x0000, 0x8800, 0x9300, 0x9600, 0xec01,
9260 0xf000, 0xf100, 0xf900, 0xfb02, 0xfc02,
9263 pkt = NCP(0x173E, "Write Property Value", 'bindery')
9264 pkt.Request((144,206), [
9265 rec( 10, 2, ObjectType, BE ),
9266 rec( 12, (1,48), ObjectName ),
9267 rec( -1, 1, PropertySegment ),
9268 rec( -1, 1, MoreFlag ),
9269 rec( -1, (1,16), PropertyName ),
9270 rec( -1, 128, PropertyValue ),
9271 ], info_str=(PropertyName, "Write Property Value: %s", ", %s"))
9273 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xec01, 0xf000, 0xf800,
9274 0xfb02, 0xfc03, 0xfe01, 0xff00 ])
9276 pkt = NCP(0x173F, "Verify Bindery Object Password", 'bindery')
9277 pkt.Request((14,92), [
9278 rec( 10, 2, ObjectType, BE ),
9279 rec( 12, (1,48), ObjectName ),
9280 rec( -1, (1,32), Password ),
9281 ], info_str=(ObjectName, "Verify Bindery Object Password: %s", ", %s"))
9283 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xec01, 0xf000, 0xf101,
9284 0xfb02, 0xfc03, 0xfe01, 0xff00 ])
9286 pkt = NCP(0x1740, "Change Bindery Object Password", 'bindery')
9287 pkt.Request((15,124), [
9288 rec( 10, 2, ObjectType, BE ),
9289 rec( 12, (1,48), ObjectName ),
9290 rec( -1, (1,32), Password ),
9291 rec( -1, (1,32), NewPassword ),
9292 ], info_str=(ObjectName, "Change Bindery Object Password: %s", ", %s"))
9294 pkt.CompletionCodes([0x0000, 0x9600, 0xc501, 0xd701, 0xe800, 0xec01, 0xf001,
9295 0xf100, 0xf800, 0xfb02, 0xfc03, 0xfe01, 0xff00])
9297 pkt = NCP(0x1741, "Add Bindery Object To Set", 'bindery')
9298 pkt.Request((17,126), [
9299 rec( 10, 2, ObjectType, BE ),
9300 rec( 12, (1,48), ObjectName ),
9301 rec( -1, (1,16), PropertyName ),
9302 rec( -1, 2, MemberType, BE ),
9303 rec( -1, (1,48), MemberName ),
9304 ], info_str=(MemberName, "Add Bindery Object to Set: %s", ", %s"))
9306 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xe900, 0xea00, 0xeb00,
9307 0xec01, 0xf000, 0xf800, 0xfb02, 0xfc03, 0xfe01,
9310 pkt = NCP(0x1742, "Delete Bindery Object From Set", 'bindery')
9311 pkt.Request((17,126), [
9312 rec( 10, 2, ObjectType, BE ),
9313 rec( 12, (1,48), ObjectName ),
9314 rec( -1, (1,16), PropertyName ),
9315 rec( -1, 2, MemberType, BE ),
9316 rec( -1, (1,48), MemberName ),
9317 ], info_str=(MemberName, "Delete Bindery Object from Set: %s", ", %s"))
9319 pkt.CompletionCodes([0x0000, 0x9600, 0xeb00, 0xf000, 0xf800, 0xfb02,
9320 0xfc03, 0xfe01, 0xff00])
9322 pkt = NCP(0x1743, "Is Bindery Object In Set", 'bindery')
9323 pkt.Request((17,126), [
9324 rec( 10, 2, ObjectType, BE ),
9325 rec( 12, (1,48), ObjectName ),
9326 rec( -1, (1,16), PropertyName ),
9327 rec( -1, 2, MemberType, BE ),
9328 rec( -1, (1,48), MemberName ),
9329 ], info_str=(MemberName, "Is Bindery Object in Set: %s", ", %s"))
9331 pkt.CompletionCodes([0x0000, 0x9600, 0xea00, 0xeb00, 0xec01, 0xf000,
9332 0xfb02, 0xfc03, 0xfe01, 0xff00])
9334 pkt = NCP(0x1744, "Close Bindery", 'bindery')
9337 pkt.CompletionCodes([0x0000, 0xff00])
9339 pkt = NCP(0x1745, "Open Bindery", 'bindery')
9342 pkt.CompletionCodes([0x0000, 0xff00])
9344 pkt = NCP(0x1746, "Get Bindery Access Level", 'bindery')
9347 rec( 8, 1, ObjectSecurity ),
9348 rec( 9, 4, LoggedObjectID, BE ),
9350 pkt.CompletionCodes([0x0000, 0x9600])
9352 pkt = NCP(0x1747, "Scan Bindery Object Trustee Paths", 'bindery')
9354 rec( 10, 1, VolumeNumber ),
9355 rec( 11, 2, LastSequenceNumber, BE ),
9356 rec( 13, 4, ObjectID, BE ),
9358 pkt.Reply((16,270), [
9359 rec( 8, 2, LastSequenceNumber, BE),
9360 rec( 10, 4, ObjectID, BE ),
9361 rec( 14, 1, ObjectSecurity ),
9362 rec( 15, (1,255), Path ),
9364 pkt.CompletionCodes([0x0000, 0x9300, 0x9600, 0xa100, 0xf000, 0xf100,
9365 0xf200, 0xfc02, 0xfe01, 0xff00])
9367 pkt = NCP(0x1748, "Get Bindery Object Access Level", 'bindery')
9369 rec( 10, 4, ObjectID, BE ),
9372 rec( 8, 1, ObjectSecurity ),
9374 pkt.CompletionCodes([0x0000, 0x9600])
9376 pkt = NCP(0x1749, "Is Calling Station a Manager", 'bindery')
9379 pkt.CompletionCodes([0x0003, 0xff1e])
9381 pkt = NCP(0x174A, "Keyed Verify Password", 'bindery')
9382 pkt.Request((21,68), [
9383 rec( 10, 8, LoginKey ),
9384 rec( 18, 2, ObjectType, BE ),
9385 rec( 20, (1,48), ObjectName ),
9386 ], info_str=(ObjectName, "Keyed Verify Password: %s", ", %s"))
9388 pkt.CompletionCodes([0x0000, 0xc500, 0xfe01, 0xff0c])
9390 pkt = NCP(0x174B, "Keyed Change Password", 'bindery')
9391 pkt.Request((22,100), [
9392 rec( 10, 8, LoginKey ),
9393 rec( 18, 2, ObjectType, BE ),
9394 rec( 20, (1,48), ObjectName ),
9395 rec( -1, (1,32), Password ),
9396 ], info_str=(ObjectName, "Keyed Change Password: %s", ", %s"))
9398 pkt.CompletionCodes([0x0000, 0xc500, 0xfe01, 0xff0c])
9400 pkt = NCP(0x174C, "List Relations Of an Object", 'bindery')
9401 pkt.Request((18,80), [
9402 rec( 10, 4, LastSeen, BE ),
9403 rec( 14, 2, ObjectType, BE ),
9404 rec( 16, (1,48), ObjectName ),
9405 rec( -1, (1,16), PropertyName ),
9406 ], info_str=(ObjectName, "List Relations of an Object: %s", ", %s"))
9408 rec( 8, 2, RelationsCount, BE, var="x" ),
9409 rec( 10, 4, ObjectID, BE, repeat="x" ),
9411 pkt.CompletionCodes([0x0000, 0xf000, 0xf200, 0xfe01, 0xff00])
9413 pkt = NCP(0x1764, "Create Queue", 'qms')
9414 pkt.Request((15,316), [
9415 rec( 10, 2, QueueType, BE ),
9416 rec( 12, (1,48), QueueName ),
9417 rec( -1, 1, PathBase ),
9418 rec( -1, (1,255), Path ),
9419 ], info_str=(QueueName, "Create Queue: %s", ", %s"))
9421 rec( 8, 4, QueueID, BE ),
9423 pkt.CompletionCodes([0x0000, 0x9600, 0x9900, 0xd000, 0xd100,
9424 0xd200, 0xd300, 0xd400, 0xd500, 0xd601,
9425 0xd703, 0xd800, 0xd902, 0xda01, 0xdb02,
9428 pkt = NCP(0x1765, "Destroy Queue", 'qms')
9430 rec( 10, 4, QueueID, BE ),
9433 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9434 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9435 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9437 pkt = NCP(0x1766, "Read Queue Current Status", 'qms')
9439 rec( 10, 4, QueueID, BE ),
9442 rec( 8, 4, QueueID, BE ),
9443 rec( 12, 1, QueueStatus ),
9444 rec( 13, 1, CurrentEntries ),
9445 rec( 14, 1, CurrentServers, var="x" ),
9446 rec( 15, 4, ServerIDList, repeat="x" ),
9447 rec( 19, 1, ServerStationList, repeat="x" ),
9449 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9450 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9451 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9453 pkt = NCP(0x1767, "Set Queue Current Status", 'qms')
9455 rec( 10, 4, QueueID, BE ),
9456 rec( 14, 1, QueueStatus ),
9459 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9460 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9461 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07,
9464 pkt = NCP(0x1768, "Create Queue Job And File", 'qms')
9466 rec( 10, 4, QueueID, BE ),
9467 rec( 14, 250, JobStruct ),
9470 rec( 8, 1, ClientStation ),
9471 rec( 9, 1, ClientTaskNumber ),
9472 rec( 10, 4, ClientIDNumber, BE ),
9473 rec( 14, 4, TargetServerIDNumber, BE ),
9474 rec( 18, 6, TargetExecutionTime ),
9475 rec( 24, 6, JobEntryTime ),
9476 rec( 30, 2, JobNumber, BE ),
9477 rec( 32, 2, JobType, BE ),
9478 rec( 34, 1, JobPosition ),
9479 rec( 35, 1, JobControlFlags ),
9480 rec( 36, 14, JobFileName ),
9481 rec( 50, 6, JobFileHandle ),
9482 rec( 56, 1, ServerStation ),
9483 rec( 57, 1, ServerTaskNumber ),
9484 rec( 58, 4, ServerID, BE ),
9486 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9487 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9488 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07,
9491 pkt = NCP(0x1769, "Close File And Start Queue Job", 'qms')
9493 rec( 10, 4, QueueID, BE ),
9494 rec( 14, 2, JobNumber, BE ),
9497 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9498 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9499 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9501 pkt = NCP(0x176A, "Remove Job From Queue", 'qms')
9503 rec( 10, 4, QueueID, BE ),
9504 rec( 14, 2, JobNumber, BE ),
9507 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9508 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9509 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9511 pkt = NCP(0x176B, "Get Queue Job List", 'qms')
9513 rec( 10, 4, QueueID, BE ),
9516 rec( 8, 2, JobCount, BE, var="x" ),
9517 rec( 10, 2, JobNumber, BE, repeat="x" ),
9519 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9520 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9521 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9523 pkt = NCP(0x176C, "Read Queue Job Entry", 'qms')
9525 rec( 10, 4, QueueID, BE ),
9526 rec( 14, 2, JobNumber, BE ),
9529 rec( 8, 250, JobStruct ),
9531 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9532 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9533 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9535 pkt = NCP(0x176D, "Change Queue Job Entry", 'qms')
9537 rec( 14, 250, JobStruct ),
9540 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9541 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9542 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9544 pkt = NCP(0x176E, "Change Queue Job Position", 'qms')
9546 rec( 10, 4, QueueID, BE ),
9547 rec( 14, 2, JobNumber, BE ),
9548 rec( 16, 1, NewPosition ),
9551 pkt.CompletionCodes([0x0000, 0x9600, 0xd000, 0xd100, 0xd500,
9552 0xd601, 0xfe07, 0xff1f])
9554 pkt = NCP(0x176F, "Attach Queue Server To Queue", 'qms')
9556 rec( 10, 4, QueueID, BE ),
9559 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9560 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9561 0xd800, 0xd902, 0xda01, 0xdb02, 0xea00,
9564 pkt = NCP(0x1770, "Detach Queue Server From Queue", 'qms')
9566 rec( 10, 4, QueueID, BE ),
9569 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9570 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9571 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9573 pkt = NCP(0x1771, "Service Queue Job", 'qms')
9575 rec( 10, 4, QueueID, BE ),
9576 rec( 14, 2, ServiceType, BE ),
9579 rec( 8, 1, ClientStation ),
9580 rec( 9, 1, ClientTaskNumber ),
9581 rec( 10, 4, ClientIDNumber, BE ),
9582 rec( 14, 4, TargetServerIDNumber, BE ),
9583 rec( 18, 6, TargetExecutionTime ),
9584 rec( 24, 6, JobEntryTime ),
9585 rec( 30, 2, JobNumber, BE ),
9586 rec( 32, 2, JobType, BE ),
9587 rec( 34, 1, JobPosition ),
9588 rec( 35, 1, JobControlFlags ),
9589 rec( 36, 14, JobFileName ),
9590 rec( 50, 6, JobFileHandle ),
9591 rec( 56, 1, ServerStation ),
9592 rec( 57, 1, ServerTaskNumber ),
9593 rec( 58, 4, ServerID, BE ),
9595 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9596 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9597 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9599 pkt = NCP(0x1772, "Finish Servicing Queue Job", 'qms')
9601 rec( 10, 4, QueueID, BE ),
9602 rec( 14, 2, JobNumber, BE ),
9603 rec( 16, 4, ChargeInformation, BE ),
9606 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9607 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9608 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9610 pkt = NCP(0x1773, "Abort Servicing Queue Job", 'qms')
9612 rec( 10, 4, QueueID, BE ),
9613 rec( 14, 2, JobNumber, BE ),
9616 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9617 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9618 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9620 pkt = NCP(0x1774, "Change To Client Rights", 'qms')
9622 rec( 10, 4, QueueID, BE ),
9623 rec( 14, 2, JobNumber, BE ),
9626 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9627 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9628 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9630 pkt = NCP(0x1775, "Restore Queue Server Rights", 'qms')
9633 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9634 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9635 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9637 pkt = NCP(0x1776, "Read Queue Server Current Status", 'qms')
9639 rec( 10, 4, QueueID, BE ),
9640 rec( 14, 4, ServerID, BE ),
9641 rec( 18, 1, ServerStation ),
9644 rec( 8, 64, ServerStatusRecord ),
9646 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9647 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9648 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9650 pkt = NCP(0x1777, "Set Queue Server Current Status", 'qms')
9652 rec( 10, 4, QueueID, BE ),
9653 rec( 14, 64, ServerStatusRecord ),
9656 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9657 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9658 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9660 pkt = NCP(0x1778, "Get Queue Job File Size", 'qms')
9662 rec( 10, 4, QueueID, BE ),
9663 rec( 14, 2, JobNumber, BE ),
9666 rec( 8, 4, QueueID, BE ),
9667 rec( 12, 4, JobNumberLong ),
9668 rec( 16, 4, FileSize, BE ),
9670 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9671 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9672 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9674 pkt = NCP(0x1779, "Create Queue Job And File", 'qms')
9676 rec( 10, 4, QueueID, BE ),
9677 rec( 14, 250, JobStruct ),
9680 rec( 8, 86, JobStructNew ),
9682 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9683 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9684 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9686 pkt = NCP(0x177A, "Read Queue Job Entry", 'qms')
9688 rec( 10, 4, QueueID, BE ),
9689 rec( 14, 4, JobNumberLong ),
9692 rec( 8, 250, JobStruct ),
9694 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9695 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9696 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9698 pkt = NCP(0x177B, "Change Queue Job Entry", 'qms')
9700 rec( 10, 4, QueueID, BE ),
9701 rec( 14, 250, JobStruct ),
9704 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9705 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9706 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00])
9708 pkt = NCP(0x177C, "Service Queue Job", 'qms')
9710 rec( 10, 4, QueueID, BE ),
9711 rec( 14, 2, ServiceType ),
9714 rec( 8, 86, JobStructNew ),
9716 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9717 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9718 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9720 pkt = NCP(0x177D, "Read Queue Current Status", 'qms')
9722 rec( 10, 4, QueueID, BE ),
9725 rec( 8, 4, QueueID, BE ),
9726 rec( 12, 1, QueueStatus ),
9727 rec( 13, 3, Reserved3 ),
9728 rec( 16, 4, CurrentEntries ),
9729 rec( 20, 4, CurrentServers, var="x" ),
9730 rec( 24, 4, ServerIDList, repeat="x" ),
9731 rec( 28, 4, ServerStationList, repeat="x" ),
9733 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9734 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9735 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9737 pkt = NCP(0x177E, "Set Queue Current Status", 'qms')
9739 rec( 10, 4, QueueID, BE ),
9740 rec( 14, 1, QueueStatus ),
9743 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9744 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9745 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9747 pkt = NCP(0x177F, "Close File And Start Queue Job", 'qms')
9749 rec( 10, 4, QueueID, BE ),
9750 rec( 14, 4, JobNumberLong ),
9753 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9754 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9755 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9757 pkt = NCP(0x1780, "Remove Job From Queue", 'qms')
9759 rec( 10, 4, QueueID, BE ),
9760 rec( 14, 4, JobNumberLong ),
9763 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9764 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9765 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9767 pkt = NCP(0x1781, "Get Queue Job List", 'qms')
9769 rec( 10, 4, QueueID, BE ),
9770 rec( 14, 4, JobNumberLong ),
9773 rec( 8, 4, TotalQueueJobs ),
9774 rec( 12, 4, ReplyQueueJobNumbers, var="x" ),
9775 rec( 16, 4, JobNumberList, repeat="x" ),
9777 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9778 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9779 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9781 pkt = NCP(0x1782, "Change Job Priority", 'qms')
9783 rec( 10, 4, QueueID, BE ),
9784 rec( 14, 4, JobNumberLong ),
9785 rec( 18, 4, Priority ),
9788 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9789 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9790 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9792 pkt = NCP(0x1783, "Finish Servicing Queue Job", 'qms')
9794 rec( 10, 4, QueueID, BE ),
9795 rec( 14, 4, JobNumberLong ),
9796 rec( 18, 4, ChargeInformation ),
9799 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9800 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9801 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9803 pkt = NCP(0x1784, "Abort Servicing Queue Job", 'qms')
9805 rec( 10, 4, QueueID, BE ),
9806 rec( 14, 4, JobNumberLong ),
9809 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9810 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9811 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9813 pkt = NCP(0x1785, "Change To Client Rights", 'qms')
9815 rec( 10, 4, QueueID, BE ),
9816 rec( 14, 4, JobNumberLong ),
9819 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9820 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9821 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9823 pkt = NCP(0x1786, "Read Queue Server Current Status", 'qms')
9825 rec( 10, 4, QueueID, BE ),
9826 rec( 14, 4, ServerID, BE ),
9827 rec( 18, 4, ServerStation ),
9830 rec( 8, 64, ServerStatusRecord ),
9832 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9833 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9834 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9836 pkt = NCP(0x1787, "Get Queue Job File Size", 'qms')
9838 rec( 10, 4, QueueID, BE ),
9839 rec( 14, 4, JobNumberLong ),
9842 rec( 8, 4, QueueID, BE ),
9843 rec( 12, 4, JobNumberLong ),
9844 rec( 16, 4, FileSize, BE ),
9846 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9847 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9848 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9850 pkt = NCP(0x1788, "Move Queue Job From Src Q to Dst Q", 'qms')
9852 rec( 10, 4, QueueID, BE ),
9853 rec( 14, 4, JobNumberLong ),
9854 rec( 18, 4, DstQueueID, BE ),
9857 rec( 8, 4, JobNumberLong ),
9859 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
9861 pkt = NCP(0x1789, "Get Queue Jobs From Form List", 'qms')
9863 rec( 10, 4, QueueID, BE ),
9864 rec( 14, 4, QueueStartPosition ),
9865 rec( 18, 4, FormTypeCnt, var="x" ),
9866 rec( 22, 2, FormType, repeat="x" ),
9869 rec( 8, 4, TotalQueueJobs ),
9870 rec( 12, 4, JobCount, var="x" ),
9871 rec( 16, 4, JobNumberList, repeat="x" ),
9873 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
9875 pkt = NCP(0x178A, "Service Queue Job By Form List", 'qms')
9877 rec( 10, 4, QueueID, BE ),
9878 rec( 14, 4, QueueStartPosition ),
9879 rec( 18, 4, FormTypeCnt, var= "x" ),
9880 rec( 22, 2, FormType, repeat="x" ),
9883 rec( 8, 86, JobStructNew ),
9885 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
9887 pkt = NCP(0x1796, "Get Current Account Status", 'accounting')
9888 pkt.Request((13,60), [
9889 rec( 10, 2, ObjectType, BE ),
9890 rec( 12, (1,48), ObjectName ),
9891 ], info_str=(ObjectName, "Get Current Account Status: %s", ", %s"))
9893 rec( 8, 4, AccountBalance, BE ),
9894 rec( 12, 4, CreditLimit, BE ),
9895 rec( 16, 120, Reserved120 ),
9896 rec( 136, 4, HolderID, BE ),
9897 rec( 140, 4, HoldAmount, BE ),
9898 rec( 144, 4, HolderID, BE ),
9899 rec( 148, 4, HoldAmount, BE ),
9900 rec( 152, 4, HolderID, BE ),
9901 rec( 156, 4, HoldAmount, BE ),
9902 rec( 160, 4, HolderID, BE ),
9903 rec( 164, 4, HoldAmount, BE ),
9904 rec( 168, 4, HolderID, BE ),
9905 rec( 172, 4, HoldAmount, BE ),
9906 rec( 176, 4, HolderID, BE ),
9907 rec( 180, 4, HoldAmount, BE ),
9908 rec( 184, 4, HolderID, BE ),
9909 rec( 188, 4, HoldAmount, BE ),
9910 rec( 192, 4, HolderID, BE ),
9911 rec( 196, 4, HoldAmount, BE ),
9912 rec( 200, 4, HolderID, BE ),
9913 rec( 204, 4, HoldAmount, BE ),
9914 rec( 208, 4, HolderID, BE ),
9915 rec( 212, 4, HoldAmount, BE ),
9916 rec( 216, 4, HolderID, BE ),
9917 rec( 220, 4, HoldAmount, BE ),
9918 rec( 224, 4, HolderID, BE ),
9919 rec( 228, 4, HoldAmount, BE ),
9920 rec( 232, 4, HolderID, BE ),
9921 rec( 236, 4, HoldAmount, BE ),
9922 rec( 240, 4, HolderID, BE ),
9923 rec( 244, 4, HoldAmount, BE ),
9924 rec( 248, 4, HolderID, BE ),
9925 rec( 252, 4, HoldAmount, BE ),
9926 rec( 256, 4, HolderID, BE ),
9927 rec( 260, 4, HoldAmount, BE ),
9929 pkt.CompletionCodes([0x0000, 0x9600, 0xc000, 0xc101, 0xc400, 0xe800,
9930 0xea00, 0xeb00, 0xec00, 0xfc06, 0xfe07, 0xff00])
9932 pkt = NCP(0x1797, "Submit Account Charge", 'accounting')
9933 pkt.Request((26,327), [
9934 rec( 10, 2, ServiceType, BE ),
9935 rec( 12, 4, ChargeAmount, BE ),
9936 rec( 16, 4, HoldCancelAmount, BE ),
9937 rec( 20, 2, ObjectType, BE ),
9938 rec( 22, 2, CommentType, BE ),
9939 rec( 24, (1,48), ObjectName ),
9940 rec( -1, (1,255), Comment ),
9941 ], info_str=(ObjectName, "Submit Account Charge: %s", ", %s"))
9943 pkt.CompletionCodes([0x0000, 0x0102, 0x8800, 0x9400, 0x9600, 0xa201,
9944 0xc000, 0xc101, 0xc200, 0xc400, 0xe800, 0xea00,
9945 0xeb00, 0xec00, 0xfe07, 0xff00])
9947 pkt = NCP(0x1798, "Submit Account Hold", 'accounting')
9948 pkt.Request((17,64), [
9949 rec( 10, 4, HoldCancelAmount, BE ),
9950 rec( 14, 2, ObjectType, BE ),
9951 rec( 16, (1,48), ObjectName ),
9952 ], info_str=(ObjectName, "Submit Account Hold: %s", ", %s"))
9954 pkt.CompletionCodes([0x0000, 0x0102, 0x8800, 0x9400, 0x9600, 0xa201,
9955 0xc000, 0xc101, 0xc200, 0xc400, 0xe800, 0xea00,
9956 0xeb00, 0xec00, 0xfe07, 0xff00])
9958 pkt = NCP(0x1799, "Submit Account Note", 'accounting')
9959 pkt.Request((18,319), [
9960 rec( 10, 2, ServiceType, BE ),
9961 rec( 12, 2, ObjectType, BE ),
9962 rec( 14, 2, CommentType, BE ),
9963 rec( 16, (1,48), ObjectName ),
9964 rec( -1, (1,255), Comment ),
9965 ], info_str=(ObjectName, "Submit Account Note: %s", ", %s"))
9967 pkt.CompletionCodes([0x0000, 0x0102, 0x9600, 0xc000, 0xc101, 0xc400,
9968 0xe800, 0xea00, 0xeb00, 0xec00, 0xf000, 0xfc06,
9971 pkt = NCP(0x17c8, "Check Console Privileges", 'stats')
9974 pkt.CompletionCodes([0x0000, 0xc601])
9976 pkt = NCP(0x17c9, "Get File Server Description Strings", 'stats')
9979 rec( 8, 512, DescriptionStrings ),
9981 pkt.CompletionCodes([0x0000, 0x9600])
9983 pkt = NCP(0x17CA, "Set File Server Date And Time", 'stats')
9986 rec( 11, 1, Month ),
9989 rec( 14, 1, Minute ),
9990 rec( 15, 1, Second ),
9993 pkt.CompletionCodes([0x0000, 0xc601])
9995 pkt = NCP(0x17CB, "Disable File Server Login", 'stats')
9998 pkt.CompletionCodes([0x0000, 0xc601])
10000 pkt = NCP(0x17CC, "Enable File Server Login", 'stats')
10003 pkt.CompletionCodes([0x0000, 0xc601])
10004 # 2222/17CD, 23/205
10005 pkt = NCP(0x17CD, "Get File Server Login Status", 'stats')
10008 rec( 8, 4, UserLoginAllowed ),
10010 pkt.CompletionCodes([0x0000, 0x9600, 0xfb01])
10011 # 2222/17CF, 23/207
10012 pkt = NCP(0x17CF, "Disable Transaction Tracking", 'stats')
10015 pkt.CompletionCodes([0x0000, 0xc601])
10016 # 2222/17D0, 23/208
10017 pkt = NCP(0x17D0, "Enable Transaction Tracking", 'stats')
10020 pkt.CompletionCodes([0x0000, 0xc601])
10021 # 2222/17D1, 23/209
10022 pkt = NCP(0x17D1, "Send Console Broadcast", 'stats')
10023 pkt.Request((13,267), [
10024 rec( 10, 1, NumberOfStations, var="x" ),
10025 rec( 11, 1, StationList, repeat="x" ),
10026 rec( 12, (1, 255), TargetMessage ),
10027 ], info_str=(TargetMessage, "Send Console Broadcast: %s", ", %s"))
10029 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10030 # 2222/17D2, 23/210
10031 pkt = NCP(0x17D2, "Clear Connection Number", 'stats')
10033 rec( 10, 1, ConnectionNumber ),
10034 ],info_str=(ConnectionNumber, "Clear Connection Number %d", ", %d"))
10036 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10037 # 2222/17D3, 23/211
10038 pkt = NCP(0x17D3, "Down File Server", 'stats')
10040 rec( 10, 1, ForceFlag ),
10043 pkt.CompletionCodes([0x0000, 0xc601, 0xff00])
10044 # 2222/17D4, 23/212
10045 pkt = NCP(0x17D4, "Get File System Statistics", 'stats')
10048 rec( 8, 4, SystemIntervalMarker, BE ),
10049 rec( 12, 2, ConfiguredMaxOpenFiles ),
10050 rec( 14, 2, ActualMaxOpenFiles ),
10051 rec( 16, 2, CurrentOpenFiles ),
10052 rec( 18, 4, TotalFilesOpened ),
10053 rec( 22, 4, TotalReadRequests ),
10054 rec( 26, 4, TotalWriteRequests ),
10055 rec( 30, 2, CurrentChangedFATs ),
10056 rec( 32, 4, TotalChangedFATs ),
10057 rec( 36, 2, FATWriteErrors ),
10058 rec( 38, 2, FatalFATWriteErrors ),
10059 rec( 40, 2, FATScanErrors ),
10060 rec( 42, 2, ActualMaxIndexedFiles ),
10061 rec( 44, 2, ActiveIndexedFiles ),
10062 rec( 46, 2, AttachedIndexedFiles ),
10063 rec( 48, 2, AvailableIndexedFiles ),
10065 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10066 # 2222/17D5, 23/213
10067 pkt = NCP(0x17D5, "Get Transaction Tracking Statistics", 'stats')
10068 pkt.Request((13,267), [
10069 rec( 10, 2, LastRecordSeen ),
10070 rec( 12, (1,255), SemaphoreName ),
10073 rec( 8, 4, SystemIntervalMarker, BE ),
10074 rec( 12, 1, TransactionTrackingSupported ),
10075 rec( 13, 1, TransactionTrackingEnabled ),
10076 rec( 14, 2, TransactionVolumeNumber ),
10077 rec( 16, 2, ConfiguredMaxSimultaneousTransactions ),
10078 rec( 18, 2, ActualMaxSimultaneousTransactions ),
10079 rec( 20, 2, CurrentTransactionCount ),
10080 rec( 22, 4, TotalTransactionsPerformed ),
10081 rec( 26, 4, TotalWriteTransactionsPerformed ),
10082 rec( 30, 4, TotalTransactionsBackedOut ),
10083 rec( 34, 2, TotalUnfilledBackoutRequests ),
10084 rec( 36, 2, TransactionDiskSpace ),
10085 rec( 38, 4, TransactionFATAllocations ),
10086 rec( 42, 4, TransactionFileSizeChanges ),
10087 rec( 46, 4, TransactionFilesTruncated ),
10088 rec( 50, 1, NumberOfEntries, var="x" ),
10089 rec( 51, 2, ConnTaskStruct, repeat="x" ),
10091 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10092 # 2222/17D6, 23/214
10093 pkt = NCP(0x17D6, "Read Disk Cache Statistics", 'stats')
10096 rec( 8, 4, SystemIntervalMarker, BE ),
10097 rec( 12, 2, CacheBufferCount ),
10098 rec( 14, 2, CacheBufferSize ),
10099 rec( 16, 2, DirtyCacheBuffers ),
10100 rec( 18, 4, CacheReadRequests ),
10101 rec( 22, 4, CacheWriteRequests ),
10102 rec( 26, 4, CacheHits ),
10103 rec( 30, 4, CacheMisses ),
10104 rec( 34, 4, PhysicalReadRequests ),
10105 rec( 38, 4, PhysicalWriteRequests ),
10106 rec( 42, 2, PhysicalReadErrors ),
10107 rec( 44, 2, PhysicalWriteErrors ),
10108 rec( 46, 4, CacheGetRequests ),
10109 rec( 50, 4, CacheFullWriteRequests ),
10110 rec( 54, 4, CachePartialWriteRequests ),
10111 rec( 58, 4, BackgroundDirtyWrites ),
10112 rec( 62, 4, BackgroundAgedWrites ),
10113 rec( 66, 4, TotalCacheWrites ),
10114 rec( 70, 4, CacheAllocations ),
10115 rec( 74, 2, ThrashingCount ),
10116 rec( 76, 2, LRUBlockWasDirty ),
10117 rec( 78, 2, ReadBeyondWrite ),
10118 rec( 80, 2, FragmentWriteOccurred ),
10119 rec( 82, 2, CacheHitOnUnavailableBlock ),
10120 rec( 84, 2, CacheBlockScrapped ),
10122 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10123 # 2222/17D7, 23/215
10124 pkt = NCP(0x17D7, "Get Drive Mapping Table", 'stats')
10127 rec( 8, 4, SystemIntervalMarker, BE ),
10128 rec( 12, 1, SFTSupportLevel ),
10129 rec( 13, 1, LogicalDriveCount ),
10130 rec( 14, 1, PhysicalDriveCount ),
10131 rec( 15, 1, DiskChannelTable ),
10132 rec( 16, 4, Reserved4 ),
10133 rec( 20, 2, PendingIOCommands, BE ),
10134 rec( 22, 32, DriveMappingTable ),
10135 rec( 54, 32, DriveMirrorTable ),
10136 rec( 86, 32, DeadMirrorTable ),
10137 rec( 118, 1, ReMirrorDriveNumber ),
10138 rec( 119, 1, Filler ),
10139 rec( 120, 4, ReMirrorCurrentOffset, BE ),
10140 rec( 124, 60, SFTErrorTable ),
10142 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10143 # 2222/17D8, 23/216
10144 pkt = NCP(0x17D8, "Read Physical Disk Statistics", 'stats')
10146 rec( 10, 1, PhysicalDiskNumber ),
10149 rec( 8, 4, SystemIntervalMarker, BE ),
10150 rec( 12, 1, PhysicalDiskChannel ),
10151 rec( 13, 1, DriveRemovableFlag ),
10152 rec( 14, 1, PhysicalDriveType ),
10153 rec( 15, 1, ControllerDriveNumber ),
10154 rec( 16, 1, ControllerNumber ),
10155 rec( 17, 1, ControllerType ),
10156 rec( 18, 4, DriveSize ),
10157 rec( 22, 2, DriveCylinders ),
10158 rec( 24, 1, DriveHeads ),
10159 rec( 25, 1, SectorsPerTrack ),
10160 rec( 26, 64, DriveDefinitionString ),
10161 rec( 90, 2, IOErrorCount ),
10162 rec( 92, 4, HotFixTableStart ),
10163 rec( 96, 2, HotFixTableSize ),
10164 rec( 98, 2, HotFixBlocksAvailable ),
10165 rec( 100, 1, HotFixDisabled ),
10167 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10168 # 2222/17D9, 23/217
10169 pkt = NCP(0x17D9, "Get Disk Channel Statistics", 'stats')
10171 rec( 10, 1, DiskChannelNumber ),
10174 rec( 8, 4, SystemIntervalMarker, BE ),
10175 rec( 12, 2, ChannelState, BE ),
10176 rec( 14, 2, ChannelSynchronizationState, BE ),
10177 rec( 16, 1, SoftwareDriverType ),
10178 rec( 17, 1, SoftwareMajorVersionNumber ),
10179 rec( 18, 1, SoftwareMinorVersionNumber ),
10180 rec( 19, 65, SoftwareDescription ),
10181 rec( 84, 8, IOAddressesUsed ),
10182 rec( 92, 10, SharedMemoryAddresses ),
10183 rec( 102, 4, InterruptNumbersUsed ),
10184 rec( 106, 4, DMAChannelsUsed ),
10185 rec( 110, 1, FlagBits ),
10186 rec( 111, 1, Reserved ),
10187 rec( 112, 80, ConfigurationDescription ),
10189 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10190 # 2222/17DB, 23/219
10191 pkt = NCP(0x17DB, "Get Connection's Open Files", 'file')
10193 rec( 10, 2, ConnectionNumber ),
10194 rec( 12, 2, LastRecordSeen, BE ),
10197 rec( 8, 2, NextRequestRecord ),
10198 rec( 10, 1, NumberOfRecords, var="x" ),
10199 rec( 11, 21, ConnStruct, repeat="x" ),
10201 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10202 # 2222/17DC, 23/220
10203 pkt = NCP(0x17DC, "Get Connection Using A File", 'file')
10204 pkt.Request((14,268), [
10205 rec( 10, 2, LastRecordSeen, BE ),
10206 rec( 12, 1, DirHandle ),
10207 rec( 13, (1,255), Path ),
10208 ], info_str=(Path, "Get Connection Using File: %s", ", %s"))
10210 rec( 8, 2, UseCount, BE ),
10211 rec( 10, 2, OpenCount, BE ),
10212 rec( 12, 2, OpenForReadCount, BE ),
10213 rec( 14, 2, OpenForWriteCount, BE ),
10214 rec( 16, 2, DenyReadCount, BE ),
10215 rec( 18, 2, DenyWriteCount, BE ),
10216 rec( 20, 2, NextRequestRecord, BE ),
10217 rec( 22, 1, Locked ),
10218 rec( 23, 1, NumberOfRecords, var="x" ),
10219 rec( 24, 6, ConnFileStruct, repeat="x" ),
10221 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10222 # 2222/17DD, 23/221
10223 pkt = NCP(0x17DD, "Get Physical Record Locks By Connection And File", 'file')
10225 rec( 10, 2, TargetConnectionNumber ),
10226 rec( 12, 2, LastRecordSeen, BE ),
10227 rec( 14, 1, VolumeNumber ),
10228 rec( 15, 2, DirectoryID ),
10229 rec( 17, 14, FileName14 ),
10230 ], info_str=(FileName14, "Get Physical Record Locks by Connection and File: %s", ", %s"))
10232 rec( 8, 2, NextRequestRecord ),
10233 rec( 10, 1, NumberOfLocks, var="x" ),
10234 rec( 11, 1, Reserved ),
10235 rec( 12, 10, LockStruct, repeat="x" ),
10237 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10238 # 2222/17DE, 23/222
10239 pkt = NCP(0x17DE, "Get Physical Record Locks By File", 'file')
10240 pkt.Request((14,268), [
10241 rec( 10, 2, TargetConnectionNumber ),
10242 rec( 12, 1, DirHandle ),
10243 rec( 13, (1,255), Path ),
10244 ], info_str=(Path, "Get Physical Record Locks by File: %s", ", %s"))
10246 rec( 8, 2, NextRequestRecord ),
10247 rec( 10, 1, NumberOfLocks, var="x" ),
10248 rec( 11, 1, Reserved ),
10249 rec( 12, 16, PhyLockStruct, repeat="x" ),
10251 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10252 # 2222/17DF, 23/223
10253 pkt = NCP(0x17DF, "Get Logical Records By Connection", 'file')
10255 rec( 10, 2, TargetConnectionNumber ),
10256 rec( 12, 2, LastRecordSeen, BE ),
10258 pkt.Reply((14,268), [
10259 rec( 8, 2, NextRequestRecord ),
10260 rec( 10, 1, NumberOfRecords, var="x" ),
10261 rec( 11, (3, 257), LogLockStruct, repeat="x" ),
10263 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10264 # 2222/17E0, 23/224
10265 pkt = NCP(0x17E0, "Get Logical Record Information", 'file')
10266 pkt.Request((13,267), [
10267 rec( 10, 2, LastRecordSeen ),
10268 rec( 12, (1,255), LogicalRecordName ),
10269 ], info_str=(LogicalRecordName, "Get Logical Record Information: %s", ", %s"))
10271 rec( 8, 2, UseCount, BE ),
10272 rec( 10, 2, ShareableLockCount, BE ),
10273 rec( 12, 2, NextRequestRecord ),
10274 rec( 14, 1, Locked ),
10275 rec( 15, 1, NumberOfRecords, var="x" ),
10276 rec( 16, 4, LogRecStruct, repeat="x" ),
10278 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10279 # 2222/17E1, 23/225
10280 pkt = NCP(0x17E1, "Get Connection's Semaphores", 'file')
10282 rec( 10, 2, ConnectionNumber ),
10283 rec( 12, 2, LastRecordSeen ),
10285 pkt.Reply((18,272), [
10286 rec( 8, 2, NextRequestRecord ),
10287 rec( 10, 2, NumberOfSemaphores, var="x" ),
10288 rec( 12, (6,260), SemaStruct, repeat="x" ),
10290 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10291 # 2222/17E2, 23/226
10292 pkt = NCP(0x17E2, "Get Semaphore Information", 'file')
10293 pkt.Request((13,267), [
10294 rec( 10, 2, LastRecordSeen ),
10295 rec( 12, (1,255), SemaphoreName ),
10296 ], info_str=(SemaphoreName, "Get Semaphore Information: %s", ", %s"))
10298 rec( 8, 2, NextRequestRecord, BE ),
10299 rec( 10, 2, OpenCount, BE ),
10300 rec( 12, 1, SemaphoreValue ),
10301 rec( 13, 1, NumberOfRecords, var="x" ),
10302 rec( 14, 3, SemaInfoStruct, repeat="x" ),
10304 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10305 # 2222/17E3, 23/227
10306 pkt = NCP(0x17E3, "Get LAN Driver Configuration Information", 'stats')
10308 rec( 10, 1, LANDriverNumber ),
10311 rec( 8, 4, NetworkAddress, BE ),
10312 rec( 12, 6, HostAddress ),
10313 rec( 18, 1, BoardInstalled ),
10314 rec( 19, 1, OptionNumber ),
10315 rec( 20, 160, ConfigurationText ),
10317 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10318 # 2222/17E5, 23/229
10319 pkt = NCP(0x17E5, "Get Connection Usage Statistics", 'stats')
10321 rec( 10, 2, ConnectionNumber ),
10324 rec( 8, 2, NextRequestRecord ),
10325 rec( 10, 6, BytesRead ),
10326 rec( 16, 6, BytesWritten ),
10327 rec( 22, 4, TotalRequestPackets ),
10329 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10330 # 2222/17E6, 23/230
10331 pkt = NCP(0x17E6, "Get Object's Remaining Disk Space", 'stats')
10333 rec( 10, 4, ObjectID, BE ),
10336 rec( 8, 4, SystemIntervalMarker, BE ),
10337 rec( 12, 4, ObjectID ),
10338 rec( 16, 4, UnusedDiskBlocks, BE ),
10339 rec( 20, 1, RestrictionsEnforced ),
10341 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10342 # 2222/17E7, 23/231
10343 pkt = NCP(0x17E7, "Get File Server LAN I/O Statistics", 'stats')
10346 rec( 8, 4, SystemIntervalMarker, BE ),
10347 rec( 12, 2, ConfiguredMaxRoutingBuffers ),
10348 rec( 14, 2, ActualMaxUsedRoutingBuffers ),
10349 rec( 16, 2, CurrentlyUsedRoutingBuffers ),
10350 rec( 18, 4, TotalFileServicePackets ),
10351 rec( 22, 2, TurboUsedForFileService ),
10352 rec( 24, 2, PacketsFromInvalidConnection ),
10353 rec( 26, 2, BadLogicalConnectionCount ),
10354 rec( 28, 2, PacketsReceivedDuringProcessing ),
10355 rec( 30, 2, RequestsReprocessed ),
10356 rec( 32, 2, PacketsWithBadSequenceNumber ),
10357 rec( 34, 2, DuplicateRepliesSent ),
10358 rec( 36, 2, PositiveAcknowledgesSent ),
10359 rec( 38, 2, PacketsWithBadRequestType ),
10360 rec( 40, 2, AttachDuringProcessing ),
10361 rec( 42, 2, AttachWhileProcessingAttach ),
10362 rec( 44, 2, ForgedDetachedRequests ),
10363 rec( 46, 2, DetachForBadConnectionNumber ),
10364 rec( 48, 2, DetachDuringProcessing ),
10365 rec( 50, 2, RepliesCancelled ),
10366 rec( 52, 2, PacketsDiscardedByHopCount ),
10367 rec( 54, 2, PacketsDiscardedUnknownNet ),
10368 rec( 56, 2, IncomingPacketDiscardedNoDGroup ),
10369 rec( 58, 2, OutgoingPacketDiscardedNoTurboBuffer ),
10370 rec( 60, 2, IPXNotMyNetwork ),
10371 rec( 62, 4, NetBIOSBroadcastWasPropogated ),
10372 rec( 66, 4, TotalOtherPackets ),
10373 rec( 70, 4, TotalRoutedPackets ),
10375 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10376 # 2222/17E8, 23/232
10377 pkt = NCP(0x17E8, "Get File Server Misc Information", 'stats')
10380 rec( 8, 4, SystemIntervalMarker, BE ),
10381 rec( 12, 1, ProcessorType ),
10382 rec( 13, 1, Reserved ),
10383 rec( 14, 1, NumberOfServiceProcesses ),
10384 rec( 15, 1, ServerUtilizationPercentage ),
10385 rec( 16, 2, ConfiguredMaxBinderyObjects ),
10386 rec( 18, 2, ActualMaxBinderyObjects ),
10387 rec( 20, 2, CurrentUsedBinderyObjects ),
10388 rec( 22, 2, TotalServerMemory ),
10389 rec( 24, 2, WastedServerMemory ),
10390 rec( 26, 2, NumberOfDynamicMemoryAreas, var="x" ),
10391 rec( 28, 12, DynMemStruct, repeat="x" ),
10393 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10394 # 2222/17E9, 23/233
10395 pkt = NCP(0x17E9, "Get Volume Information", 'stats')
10397 rec( 10, 1, VolumeNumber ),
10398 ],info_str=(VolumeNumber, "Get Information on Volume %d", ", %d"))
10400 rec( 8, 4, SystemIntervalMarker, BE ),
10401 rec( 12, 1, VolumeNumber ),
10402 rec( 13, 1, LogicalDriveNumber ),
10403 rec( 14, 2, BlockSize ),
10404 rec( 16, 2, StartingBlock ),
10405 rec( 18, 2, TotalBlocks ),
10406 rec( 20, 2, FreeBlocks ),
10407 rec( 22, 2, TotalDirectoryEntries ),
10408 rec( 24, 2, FreeDirectoryEntries ),
10409 rec( 26, 2, ActualMaxUsedDirectoryEntries ),
10410 rec( 28, 1, VolumeHashedFlag ),
10411 rec( 29, 1, VolumeCachedFlag ),
10412 rec( 30, 1, VolumeRemovableFlag ),
10413 rec( 31, 1, VolumeMountedFlag ),
10414 rec( 32, 16, VolumeName ),
10416 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10417 # 2222/17EA, 23/234
10418 pkt = NCP(0x17EA, "Get Connection's Task Information", 'stats')
10420 rec( 10, 2, ConnectionNumber ),
10423 rec( 8, 2, NextRequestRecord ),
10424 rec( 10, 4, NumberOfAttributes, var="x" ),
10425 rec( 14, 4, Attributes, repeat="x" ),
10427 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10428 # 2222/17EB, 23/235
10429 pkt = NCP(0x17EB, "Get Connection's Open Files", 'file')
10431 rec( 10, 2, ConnectionNumber ),
10432 rec( 12, 2, LastRecordSeen ),
10434 pkt.Reply((29,283), [
10435 rec( 8, 2, NextRequestRecord ),
10436 rec( 10, 2, NumberOfRecords, var="x" ),
10437 rec( 12, (17, 271), OpnFilesStruct, repeat="x" ),
10439 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10440 # 2222/17EC, 23/236
10441 pkt = NCP(0x17EC, "Get Connection Using A File", 'file')
10443 rec( 10, 1, DataStreamNumber ),
10444 rec( 11, 1, VolumeNumber ),
10445 rec( 12, 4, DirectoryBase, LE ),
10446 rec( 16, 2, LastRecordSeen ),
10449 rec( 8, 2, NextRequestRecord ),
10450 rec( 10, 2, UseCount ),
10451 rec( 12, 2, OpenCount ),
10452 rec( 14, 2, OpenForReadCount ),
10453 rec( 16, 2, OpenForWriteCount ),
10454 rec( 18, 2, DenyReadCount ),
10455 rec( 20, 2, DenyWriteCount ),
10456 rec( 22, 1, Locked ),
10457 rec( 23, 1, ForkCount ),
10458 rec( 24, 2, NumberOfRecords, var="x" ),
10459 rec( 26, 7, ConnStruct, repeat="x" ),
10461 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10462 # 2222/17ED, 23/237
10463 pkt = NCP(0x17ED, "Get Physical Record Locks By Connection And File", 'file')
10465 rec( 10, 2, TargetConnectionNumber ),
10466 rec( 12, 1, DataStreamNumber ),
10467 rec( 13, 1, VolumeNumber ),
10468 rec( 14, 4, DirectoryBase, LE ),
10469 rec( 18, 2, LastRecordSeen ),
10472 rec( 8, 2, NextRequestRecord ),
10473 rec( 10, 2, NumberOfLocks, var="x" ),
10474 rec( 12, 11, LockStruct, repeat="x" ),
10476 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10477 # 2222/17EE, 23/238
10478 pkt = NCP(0x17EE, "Get Physical Record Locks By File", 'file')
10480 rec( 10, 1, DataStreamNumber ),
10481 rec( 11, 1, VolumeNumber ),
10482 rec( 12, 4, DirectoryBase ),
10483 rec( 16, 2, LastRecordSeen ),
10486 rec( 8, 2, NextRequestRecord ),
10487 rec( 10, 2, NumberOfLocks, var="x" ),
10488 rec( 12, 18, PhyLockStruct, repeat="x" ),
10490 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10491 # 2222/17EF, 23/239
10492 pkt = NCP(0x17EF, "Get Logical Records By Connection", 'file')
10494 rec( 10, 2, TargetConnectionNumber ),
10495 rec( 12, 2, LastRecordSeen ),
10497 pkt.Reply((16,270), [
10498 rec( 8, 2, NextRequestRecord ),
10499 rec( 10, 2, NumberOfRecords, var="x" ),
10500 rec( 12, (4, 258), LogLockStruct, repeat="x" ),
10502 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10503 # 2222/17F0, 23/240
10504 pkt = NCP(0x17F0, "Get Logical Record Information (old)", 'file')
10505 pkt.Request((13,267), [
10506 rec( 10, 2, LastRecordSeen ),
10507 rec( 12, (1,255), LogicalRecordName ),
10510 rec( 8, 2, ShareableLockCount ),
10511 rec( 10, 2, UseCount ),
10512 rec( 12, 1, Locked ),
10513 rec( 13, 2, NextRequestRecord ),
10514 rec( 15, 2, NumberOfRecords, var="x" ),
10515 rec( 17, 5, LogRecStruct, repeat="x" ),
10517 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10518 # 2222/17F1, 23/241
10519 pkt = NCP(0x17F1, "Get Connection's Semaphores", 'file')
10521 rec( 10, 2, ConnectionNumber ),
10522 rec( 12, 2, LastRecordSeen ),
10524 pkt.Reply((19,273), [
10525 rec( 8, 2, NextRequestRecord ),
10526 rec( 10, 2, NumberOfSemaphores, var="x" ),
10527 rec( 12, (7, 261), SemaStruct, repeat="x" ),
10529 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10530 # 2222/17F2, 23/242
10531 pkt = NCP(0x17F2, "Get Semaphore Information", 'file')
10532 pkt.Request((13,267), [
10533 rec( 10, 2, LastRecordSeen ),
10534 rec( 12, (1,255), SemaphoreName ),
10535 ], info_str=(SemaphoreName, "Get Semaphore Information: %s", ", %s"))
10537 rec( 8, 2, NextRequestRecord ),
10538 rec( 10, 2, OpenCount ),
10539 rec( 12, 2, SemaphoreValue ),
10540 rec( 14, 2, NumberOfRecords, var="x" ),
10541 rec( 16, 4, SemaInfoStruct, repeat="x" ),
10543 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10544 # 2222/17F3, 23/243
10545 pkt = NCP(0x17F3, "Map Directory Number to Path", 'file')
10547 rec( 10, 1, VolumeNumber ),
10548 rec( 11, 4, DirectoryNumber ),
10549 rec( 15, 1, NameSpace ),
10551 pkt.Reply((9,263), [
10552 rec( 8, (1,255), Path ),
10554 pkt.CompletionCodes([0x0000, 0x9600, 0x9c00, 0xc601, 0xfd00, 0xff00])
10555 # 2222/17F4, 23/244
10556 pkt = NCP(0x17F4, "Convert Path to Dir Entry", 'file')
10557 pkt.Request((12,266), [
10558 rec( 10, 1, DirHandle ),
10559 rec( 11, (1,255), Path ),
10560 ], info_str=(Path, "Convert Path to Directory Entry: %s", ", %s"))
10562 rec( 8, 1, VolumeNumber ),
10563 rec( 9, 4, DirectoryNumber ),
10565 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10566 # 2222/17FD, 23/253
10567 pkt = NCP(0x17FD, "Send Console Broadcast", 'stats')
10568 pkt.Request((16, 270), [
10569 rec( 10, 1, NumberOfStations, var="x" ),
10570 rec( 11, 4, StationList, repeat="x" ),
10571 rec( 15, (1, 255), TargetMessage ),
10572 ], info_str=(TargetMessage, "Send Console Broadcast: %s", ", %s"))
10574 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10575 # 2222/17FE, 23/254
10576 pkt = NCP(0x17FE, "Clear Connection Number", 'stats')
10578 rec( 10, 4, ConnectionNumber ),
10581 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10583 pkt = NCP(0x18, "End of Job", 'connection')
10586 pkt.CompletionCodes([0x0000])
10588 pkt = NCP(0x19, "Logout", 'connection')
10591 pkt.CompletionCodes([0x0000])
10593 pkt = NCP(0x1A, "Log Physical Record", 'file')
10595 rec( 7, 1, LockFlag ),
10596 rec( 8, 6, FileHandle ),
10597 rec( 14, 4, LockAreasStartOffset, BE ),
10598 rec( 18, 4, LockAreaLen, BE ),
10599 rec( 22, 2, LockTimeout ),
10602 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
10604 pkt = NCP(0x1B, "Lock Physical Record Set", 'file')
10606 rec( 7, 1, LockFlag ),
10607 rec( 8, 2, LockTimeout ),
10610 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
10612 pkt = NCP(0x1C, "Release Physical Record", 'file')
10614 rec( 7, 1, Reserved ),
10615 rec( 8, 6, FileHandle ),
10616 rec( 14, 4, LockAreasStartOffset ),
10617 rec( 18, 4, LockAreaLen ),
10620 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10622 pkt = NCP(0x1D, "Release Physical Record Set", 'file')
10624 rec( 7, 1, LockFlag ),
10627 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10628 # 2222/1E, 30 #Tested and fixed 6-14-02 GM
10629 pkt = NCP(0x1E, "Clear Physical Record", 'file')
10631 rec( 7, 1, Reserved ),
10632 rec( 8, 6, FileHandle ),
10633 rec( 14, 4, LockAreasStartOffset, BE ),
10634 rec( 18, 4, LockAreaLen, BE ),
10637 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10639 pkt = NCP(0x1F, "Clear Physical Record Set", 'file')
10641 rec( 7, 1, LockFlag ),
10644 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10646 pkt = NCP(0x2000, "Open Semaphore", 'file', has_length=0)
10648 rec( 8, 1, InitialSemaphoreValue ),
10649 rec( 9, 1, SemaphoreNameLen ),
10652 rec( 8, 4, SemaphoreHandle, BE ),
10653 rec( 12, 1, SemaphoreOpenCount ),
10655 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10657 pkt = NCP(0x2001, "Examine Semaphore", 'file', has_length=0)
10659 rec( 8, 4, SemaphoreHandle, BE ),
10662 rec( 8, 1, SemaphoreValue ),
10663 rec( 9, 1, SemaphoreOpenCount ),
10665 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10667 pkt = NCP(0x2002, "Wait On Semaphore", 'file', has_length=0)
10669 rec( 8, 4, SemaphoreHandle, BE ),
10670 rec( 12, 2, SemaphoreTimeOut, BE ),
10673 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10675 pkt = NCP(0x2003, "Signal Semaphore", 'file', has_length=0)
10677 rec( 8, 4, SemaphoreHandle, BE ),
10680 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10682 pkt = NCP(0x2004, "Close Semaphore", 'file', has_length=0)
10684 rec( 8, 4, SemaphoreHandle, BE ),
10687 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10689 pkt = NCP(0x21, "Negotiate Buffer Size", 'connection')
10691 rec( 7, 2, BufferSize, BE ),
10694 rec( 8, 2, BufferSize, BE ),
10696 pkt.CompletionCodes([0x0000])
10698 pkt = NCP(0x2200, "TTS Is Available", 'tts', has_length=0)
10701 pkt.CompletionCodes([0x0001, 0xfd03, 0xff12])
10703 pkt = NCP(0x2201, "TTS Begin Transaction", 'tts', has_length=0)
10706 pkt.CompletionCodes([0x0000])
10708 pkt = NCP(0x2202, "TTS End Transaction", 'tts', has_length=0)
10711 rec( 8, 4, TransactionNumber, BE ),
10713 pkt.CompletionCodes([0x0000, 0xff01])
10715 pkt = NCP(0x2203, "TTS Abort Transaction", 'tts', has_length=0)
10718 pkt.CompletionCodes([0x0000, 0xfd03, 0xfe0b, 0xff01])
10720 pkt = NCP(0x2204, "TTS Transaction Status", 'tts', has_length=0)
10722 rec( 8, 4, TransactionNumber, BE ),
10725 pkt.CompletionCodes([0x0000])
10727 pkt = NCP(0x2205, "TTS Get Application Thresholds", 'tts', has_length=0)
10730 rec( 8, 1, LogicalLockThreshold ),
10731 rec( 9, 1, PhysicalLockThreshold ),
10733 pkt.CompletionCodes([0x0000])
10735 pkt = NCP(0x2206, "TTS Set Application Thresholds", 'tts', has_length=0)
10737 rec( 8, 1, LogicalLockThreshold ),
10738 rec( 9, 1, PhysicalLockThreshold ),
10741 pkt.CompletionCodes([0x0000, 0x9600])
10743 pkt = NCP(0x2207, "TTS Get Workstation Thresholds", 'tts', has_length=0)
10745 rec( 8, 1, LogicalLockThreshold ),
10746 rec( 9, 1, PhysicalLockThreshold ),
10749 pkt.CompletionCodes([0x0000])
10751 pkt = NCP(0x2208, "TTS Set Workstation Thresholds", 'tts', has_length=0)
10753 rec( 8, 1, LogicalLockThreshold ),
10754 rec( 9, 1, PhysicalLockThreshold ),
10757 pkt.CompletionCodes([0x0000])
10759 pkt = NCP(0x2209, "TTS Get Transaction Bits", 'tts', has_length=0)
10762 rec( 8, 1, ControlFlags ),
10764 pkt.CompletionCodes([0x0000])
10766 pkt = NCP(0x220A, "TTS Set Transaction Bits", 'tts', has_length=0)
10768 rec( 8, 1, ControlFlags ),
10771 pkt.CompletionCodes([0x0000])
10773 pkt = NCP(0x2301, "AFP Create Directory", 'afp')
10774 pkt.Request((49, 303), [
10775 rec( 10, 1, VolumeNumber ),
10776 rec( 11, 4, BaseDirectoryID ),
10777 rec( 15, 1, Reserved ),
10778 rec( 16, 4, CreatorID ),
10779 rec( 20, 4, Reserved4 ),
10780 rec( 24, 2, FinderAttr ),
10781 rec( 26, 2, HorizLocation ),
10782 rec( 28, 2, VertLocation ),
10783 rec( 30, 2, FileDirWindow ),
10784 rec( 32, 16, Reserved16 ),
10785 rec( 48, (1,255), Path ),
10786 ], info_str=(Path, "AFP Create Directory: %s", ", %s"))
10788 rec( 8, 4, NewDirectoryID ),
10790 pkt.CompletionCodes([0x0000, 0x8301, 0x8400, 0x8800, 0x9300, 0x9600, 0x9804,
10791 0x9900, 0x9c03, 0x9e02, 0xa100, 0xa201, 0xfd00, 0xff18])
10793 pkt = NCP(0x2302, "AFP Create File", 'afp')
10794 pkt.Request((49, 303), [
10795 rec( 10, 1, VolumeNumber ),
10796 rec( 11, 4, BaseDirectoryID ),
10797 rec( 15, 1, DeleteExistingFileFlag ),
10798 rec( 16, 4, CreatorID, BE ),
10799 rec( 20, 4, Reserved4 ),
10800 rec( 24, 2, FinderAttr ),
10801 rec( 26, 2, HorizLocation, BE ),
10802 rec( 28, 2, VertLocation, BE ),
10803 rec( 30, 2, FileDirWindow, BE ),
10804 rec( 32, 16, Reserved16 ),
10805 rec( 48, (1,255), Path ),
10806 ], info_str=(Path, "AFP Create File: %s", ", %s"))
10808 rec( 8, 4, NewDirectoryID ),
10810 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8400, 0x8701, 0x8800,
10811 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9300, 0x9600, 0x9804,
10812 0x9900, 0x9b03, 0x9c03, 0x9e02, 0xa100, 0xa201, 0xfd00,
10815 pkt = NCP(0x2303, "AFP Delete", 'afp')
10816 pkt.Request((16,270), [
10817 rec( 10, 1, VolumeNumber ),
10818 rec( 11, 4, BaseDirectoryID ),
10819 rec( 15, (1,255), Path ),
10820 ], info_str=(Path, "AFP Delete: %s", ", %s"))
10822 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x8a00, 0x8d00, 0x8e00, 0x8f00,
10823 0x9000, 0x9300, 0x9600, 0x9804, 0x9b03, 0x9c03, 0x9e02,
10824 0xa000, 0xa100, 0xa201, 0xfd00, 0xff19])
10826 pkt = NCP(0x2304, "AFP Get Entry ID From Name", 'afp')
10827 pkt.Request((16,270), [
10828 rec( 10, 1, VolumeNumber ),
10829 rec( 11, 4, BaseDirectoryID ),
10830 rec( 15, (1,255), Path ),
10831 ], info_str=(Path, "AFP Get Entry from Name: %s", ", %s"))
10833 rec( 8, 4, TargetEntryID, BE ),
10835 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
10836 0xa100, 0xa201, 0xfd00, 0xff19])
10838 pkt = NCP(0x2305, "AFP Get File Information", 'afp')
10839 pkt.Request((18,272), [
10840 rec( 10, 1, VolumeNumber ),
10841 rec( 11, 4, BaseDirectoryID ),
10842 rec( 15, 2, RequestBitMap, BE ),
10843 rec( 17, (1,255), Path ),
10844 ], info_str=(Path, "AFP Get File Information: %s", ", %s"))
10846 rec( 8, 4, AFPEntryID, BE ),
10847 rec( 12, 4, ParentID, BE ),
10848 rec( 16, 2, AttributesDef16, LE ),
10849 rec( 18, 4, DataForkLen, BE ),
10850 rec( 22, 4, ResourceForkLen, BE ),
10851 rec( 26, 2, TotalOffspring, BE ),
10852 rec( 28, 2, CreationDate, BE ),
10853 rec( 30, 2, LastAccessedDate, BE ),
10854 rec( 32, 2, ModifiedDate, BE ),
10855 rec( 34, 2, ModifiedTime, BE ),
10856 rec( 36, 2, ArchivedDate, BE ),
10857 rec( 38, 2, ArchivedTime, BE ),
10858 rec( 40, 4, CreatorID, BE ),
10859 rec( 44, 4, Reserved4 ),
10860 rec( 48, 2, FinderAttr ),
10861 rec( 50, 2, HorizLocation ),
10862 rec( 52, 2, VertLocation ),
10863 rec( 54, 2, FileDirWindow ),
10864 rec( 56, 16, Reserved16 ),
10865 rec( 72, 32, LongName ),
10866 rec( 104, 4, CreatorID, BE ),
10867 rec( 108, 12, ShortName ),
10868 rec( 120, 1, AccessPrivileges ),
10870 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
10871 0xa100, 0xa201, 0xfd00, 0xff19])
10873 pkt = NCP(0x2306, "AFP Get Entry ID From NetWare Handle", 'afp')
10875 rec( 10, 6, FileHandle ),
10878 rec( 8, 1, VolumeID ),
10879 rec( 9, 4, TargetEntryID, BE ),
10880 rec( 13, 1, ForkIndicator ),
10882 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0xa201])
10884 pkt = NCP(0x2307, "AFP Rename", 'afp')
10885 pkt.Request((21, 529), [
10886 rec( 10, 1, VolumeNumber ),
10887 rec( 11, 4, MacSourceBaseID, BE ),
10888 rec( 15, 4, MacDestinationBaseID, BE ),
10889 rec( 19, (1,255), Path ),
10890 rec( -1, (1,255), NewFileNameLen ),
10891 ], info_str=(Path, "AFP Rename: %s", ", %s"))
10893 pkt.CompletionCodes([0x0000, 0x8301, 0x8401, 0x8800, 0x8b00, 0x8e00,
10894 0x9001, 0x9201, 0x9300, 0x9600, 0x9804, 0x9900,
10895 0x9c03, 0x9e00, 0xa100, 0xa201, 0xfd00, 0xff0a])
10897 pkt = NCP(0x2308, "AFP Open File Fork", 'afp')
10898 pkt.Request((18, 272), [
10899 rec( 10, 1, VolumeNumber ),
10900 rec( 11, 4, MacBaseDirectoryID ),
10901 rec( 15, 1, ForkIndicator ),
10902 rec( 16, 1, AccessMode ),
10903 rec( 17, (1,255), Path ),
10904 ], info_str=(Path, "AFP Open File Fork: %s", ", %s"))
10906 rec( 8, 4, AFPEntryID, BE ),
10907 rec( 12, 4, DataForkLen, BE ),
10908 rec( 16, 6, NetWareAccessHandle ),
10910 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8800, 0x9300,
10911 0x9400, 0x9600, 0x9804, 0x9900, 0x9c03, 0xa100,
10912 0xa201, 0xfd00, 0xff16])
10914 pkt = NCP(0x2309, "AFP Set File Information", 'afp')
10915 pkt.Request((64, 318), [
10916 rec( 10, 1, VolumeNumber ),
10917 rec( 11, 4, MacBaseDirectoryID ),
10918 rec( 15, 2, RequestBitMap, BE ),
10919 rec( 17, 2, MacAttr, BE ),
10920 rec( 19, 2, CreationDate, BE ),
10921 rec( 21, 2, LastAccessedDate, BE ),
10922 rec( 23, 2, ModifiedDate, BE ),
10923 rec( 25, 2, ModifiedTime, BE ),
10924 rec( 27, 2, ArchivedDate, BE ),
10925 rec( 29, 2, ArchivedTime, BE ),
10926 rec( 31, 4, CreatorID, BE ),
10927 rec( 35, 4, Reserved4 ),
10928 rec( 39, 2, FinderAttr ),
10929 rec( 41, 2, HorizLocation ),
10930 rec( 43, 2, VertLocation ),
10931 rec( 45, 2, FileDirWindow ),
10932 rec( 47, 16, Reserved16 ),
10933 rec( 63, (1,255), Path ),
10934 ], info_str=(Path, "AFP Set File Information: %s", ", %s"))
10936 pkt.CompletionCodes([0x0000, 0x0104, 0x8301, 0x8800, 0x9300, 0x9400,
10937 0x9500, 0x9600, 0x9804, 0x9c03, 0xa100, 0xa201,
10940 pkt = NCP(0x230A, "AFP Scan File Information", 'afp')
10941 pkt.Request((26, 280), [
10942 rec( 10, 1, VolumeNumber ),
10943 rec( 11, 4, MacBaseDirectoryID ),
10944 rec( 15, 4, MacLastSeenID, BE ),
10945 rec( 19, 2, DesiredResponseCount, BE ),
10946 rec( 21, 2, SearchBitMap, BE ),
10947 rec( 23, 2, RequestBitMap, BE ),
10948 rec( 25, (1,255), Path ),
10949 ], info_str=(Path, "AFP Scan File Information: %s", ", %s"))
10951 rec( 8, 2, ActualResponseCount, BE, var="x" ),
10952 rec( 10, 113, AFP10Struct, repeat="x" ),
10954 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804,
10955 0x9c03, 0xa100, 0xa201, 0xfd00, 0xff16])
10957 pkt = NCP(0x230B, "AFP Alloc Temporary Directory Handle", 'afp')
10958 pkt.Request((16,270), [
10959 rec( 10, 1, VolumeNumber ),
10960 rec( 11, 4, MacBaseDirectoryID ),
10961 rec( 15, (1,255), Path ),
10962 ], info_str=(Path, "AFP Allocate Temporary Directory Handle: %s", ", %s"))
10964 rec( 8, 1, DirHandle ),
10965 rec( 9, 1, AccessRightsMask ),
10967 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600,
10968 0x9804, 0x9b03, 0x9c03, 0x9d00, 0xa100,
10969 0xa201, 0xfd00, 0xff00])
10971 pkt = NCP(0x230C, "AFP Get Entry ID From Path Name", 'afp')
10972 pkt.Request((12,266), [
10973 rec( 10, 1, DirHandle ),
10974 rec( 11, (1,255), Path ),
10975 ], info_str=(Path, "AFP Get Entry ID from Path Name: %s", ", %s"))
10977 rec( 8, 4, AFPEntryID, BE ),
10979 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600,
10980 0x9804, 0x9b03, 0x9c03, 0xa100, 0xa201,
10983 pkt = NCP(0x230D, "AFP 2.0 Create Directory", 'afp')
10984 pkt.Request((55,309), [
10985 rec( 10, 1, VolumeNumber ),
10986 rec( 11, 4, BaseDirectoryID ),
10987 rec( 15, 1, Reserved ),
10988 rec( 16, 4, CreatorID, BE ),
10989 rec( 20, 4, Reserved4 ),
10990 rec( 24, 2, FinderAttr ),
10991 rec( 26, 2, HorizLocation ),
10992 rec( 28, 2, VertLocation ),
10993 rec( 30, 2, FileDirWindow ),
10994 rec( 32, 16, Reserved16 ),
10995 rec( 48, 6, ProDOSInfo ),
10996 rec( 54, (1,255), Path ),
10997 ], info_str=(Path, "AFP 2.0 Create Directory: %s", ", %s"))
10999 rec( 8, 4, NewDirectoryID ),
11001 pkt.CompletionCodes([0x0000, 0x8301, 0x8400, 0x8800, 0x9300,
11002 0x9600, 0x9804, 0x9900, 0x9c03, 0x9e00,
11003 0xa100, 0xa201, 0xfd00, 0xff00])
11005 pkt = NCP(0x230E, "AFP 2.0 Create File", 'afp')
11006 pkt.Request((55,309), [
11007 rec( 10, 1, VolumeNumber ),
11008 rec( 11, 4, BaseDirectoryID ),
11009 rec( 15, 1, DeleteExistingFileFlag ),
11010 rec( 16, 4, CreatorID, BE ),
11011 rec( 20, 4, Reserved4 ),
11012 rec( 24, 2, FinderAttr ),
11013 rec( 26, 2, HorizLocation ),
11014 rec( 28, 2, VertLocation ),
11015 rec( 30, 2, FileDirWindow ),
11016 rec( 32, 16, Reserved16 ),
11017 rec( 48, 6, ProDOSInfo ),
11018 rec( 54, (1,255), Path ),
11019 ], info_str=(Path, "AFP 2.0 Create File: %s", ", %s"))
11021 rec( 8, 4, NewDirectoryID ),
11023 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8400,
11024 0x8701, 0x8800, 0x8a00, 0x8d00, 0x8e00,
11025 0x8f00, 0x9001, 0x9300, 0x9600, 0x9804,
11026 0x9900, 0x9b03, 0x9c03, 0x9e00, 0xa100,
11027 0xa201, 0xfd00, 0xff00])
11029 pkt = NCP(0x230F, "AFP 2.0 Get File Or Directory Information", 'afp')
11030 pkt.Request((18,272), [
11031 rec( 10, 1, VolumeNumber ),
11032 rec( 11, 4, BaseDirectoryID ),
11033 rec( 15, 2, RequestBitMap, BE ),
11034 rec( 17, (1,255), Path ),
11035 ], info_str=(Path, "AFP 2.0 Get Information: %s", ", %s"))
11037 rec( 8, 4, AFPEntryID, BE ),
11038 rec( 12, 4, ParentID, BE ),
11039 rec( 16, 2, AttributesDef16 ),
11040 rec( 18, 4, DataForkLen, BE ),
11041 rec( 22, 4, ResourceForkLen, BE ),
11042 rec( 26, 2, TotalOffspring, BE ),
11043 rec( 28, 2, CreationDate, BE ),
11044 rec( 30, 2, LastAccessedDate, BE ),
11045 rec( 32, 2, ModifiedDate, BE ),
11046 rec( 34, 2, ModifiedTime, BE ),
11047 rec( 36, 2, ArchivedDate, BE ),
11048 rec( 38, 2, ArchivedTime, BE ),
11049 rec( 40, 4, CreatorID, BE ),
11050 rec( 44, 4, Reserved4 ),
11051 rec( 48, 2, FinderAttr ),
11052 rec( 50, 2, HorizLocation ),
11053 rec( 52, 2, VertLocation ),
11054 rec( 54, 2, FileDirWindow ),
11055 rec( 56, 16, Reserved16 ),
11056 rec( 72, 32, LongName ),
11057 rec( 104, 4, CreatorID, BE ),
11058 rec( 108, 12, ShortName ),
11059 rec( 120, 1, AccessPrivileges ),
11060 rec( 121, 1, Reserved ),
11061 rec( 122, 6, ProDOSInfo ),
11063 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
11064 0xa100, 0xa201, 0xfd00, 0xff19])
11066 pkt = NCP(0x2310, "AFP 2.0 Set File Information", 'afp')
11067 pkt.Request((70, 324), [
11068 rec( 10, 1, VolumeNumber ),
11069 rec( 11, 4, MacBaseDirectoryID ),
11070 rec( 15, 2, RequestBitMap, BE ),
11071 rec( 17, 2, AttributesDef16 ),
11072 rec( 19, 2, CreationDate, BE ),
11073 rec( 21, 2, LastAccessedDate, BE ),
11074 rec( 23, 2, ModifiedDate, BE ),
11075 rec( 25, 2, ModifiedTime, BE ),
11076 rec( 27, 2, ArchivedDate, BE ),
11077 rec( 29, 2, ArchivedTime, BE ),
11078 rec( 31, 4, CreatorID, BE ),
11079 rec( 35, 4, Reserved4 ),
11080 rec( 39, 2, FinderAttr ),
11081 rec( 41, 2, HorizLocation ),
11082 rec( 43, 2, VertLocation ),
11083 rec( 45, 2, FileDirWindow ),
11084 rec( 47, 16, Reserved16 ),
11085 rec( 63, 6, ProDOSInfo ),
11086 rec( 69, (1,255), Path ),
11087 ], info_str=(Path, "AFP 2.0 Set File Information: %s", ", %s"))
11089 pkt.CompletionCodes([0x0000, 0x0104, 0x8301, 0x8800, 0x9300, 0x9400,
11090 0x9500, 0x9600, 0x9804, 0x9c03, 0xa100, 0xa201,
11093 pkt = NCP(0x2311, "AFP 2.0 Scan File Information", 'afp')
11094 pkt.Request((26, 280), [
11095 rec( 10, 1, VolumeNumber ),
11096 rec( 11, 4, MacBaseDirectoryID ),
11097 rec( 15, 4, MacLastSeenID, BE ),
11098 rec( 19, 2, DesiredResponseCount, BE ),
11099 rec( 21, 2, SearchBitMap, BE ),
11100 rec( 23, 2, RequestBitMap, BE ),
11101 rec( 25, (1,255), Path ),
11102 ], info_str=(Path, "AFP 2.0 Scan File Information: %s", ", %s"))
11104 rec( 8, 2, ActualResponseCount, var="x" ),
11105 rec( 10, 4, AFP20Struct, repeat="x" ),
11107 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804,
11108 0x9c03, 0xa100, 0xa201, 0xfd00, 0xff16])
11110 pkt = NCP(0x2312, "AFP Get DOS Name From Entry ID", 'afp')
11112 rec( 10, 1, VolumeNumber ),
11113 rec( 11, 4, AFPEntryID, BE ),
11115 pkt.Reply((9,263), [
11116 rec( 8, (1,255), Path ),
11118 pkt.CompletionCodes([0x0000, 0x8900, 0x9600, 0xbf00])
11120 pkt = NCP(0x2313, "AFP Get Macintosh Info On Deleted File", 'afp')
11122 rec( 10, 1, VolumeNumber ),
11123 rec( 11, 4, DirectoryNumber, BE ),
11125 pkt.Reply((51,305), [
11126 rec( 8, 4, CreatorID, BE ),
11127 rec( 12, 4, Reserved4 ),
11128 rec( 16, 2, FinderAttr ),
11129 rec( 18, 2, HorizLocation ),
11130 rec( 20, 2, VertLocation ),
11131 rec( 22, 2, FileDirWindow ),
11132 rec( 24, 16, Reserved16 ),
11133 rec( 40, 6, ProDOSInfo ),
11134 rec( 46, 4, ResourceForkSize, BE ),
11135 rec( 50, (1,255), FileName ),
11137 pkt.CompletionCodes([0x0000, 0x9c03, 0xbf00])
11139 pkt = NCP(0x2400, "Get NCP Extension Information", 'fileserver')
11141 rec( 10, 4, NCPextensionNumber, LE ),
11143 pkt.Reply((16,270), [
11144 rec( 8, 4, NCPextensionNumber ),
11145 rec( 12, 1, NCPextensionMajorVersion ),
11146 rec( 13, 1, NCPextensionMinorVersion ),
11147 rec( 14, 1, NCPextensionRevisionNumber ),
11148 rec( 15, (1, 255), NCPextensionName ),
11150 pkt.CompletionCodes([0x0000, 0xfe00])
11152 pkt = NCP(0x2401, "Get NCP Extension Maximum Data Size", 'fileserver')
11155 rec( 8, 2, NCPdataSize ),
11157 pkt.CompletionCodes([0x0000, 0xfe00])
11159 pkt = NCP(0x2402, "Get NCP Extension Information by Name", 'fileserver')
11160 pkt.Request((11, 265), [
11161 rec( 10, (1,255), NCPextensionName ),
11162 ], info_str=(NCPextensionName, "Get NCP Extension Information by Name: %s", ", %s"))
11163 pkt.Reply((16,270), [
11164 rec( 8, 4, NCPextensionNumber ),
11165 rec( 12, 1, NCPextensionMajorVersion ),
11166 rec( 13, 1, NCPextensionMinorVersion ),
11167 rec( 14, 1, NCPextensionRevisionNumber ),
11168 rec( 15, (1, 255), NCPextensionName ),
11170 pkt.CompletionCodes([0x0000, 0xfe00, 0xff20])
11172 pkt = NCP(0x2403, "Get Number of Registered NCP Extensions", 'fileserver')
11175 rec( 8, 4, NumberOfNCPExtensions ),
11177 pkt.CompletionCodes([0x0000, 0xfe00])
11179 pkt = NCP(0x2404, "Get NCP Extension Registered Verbs List", 'fileserver')
11181 rec( 10, 4, StartingNumber ),
11184 rec( 8, 4, ReturnedListCount, var="x" ),
11185 rec( 12, 4, nextStartingNumber ),
11186 rec( 16, 4, NCPExtensionNumbers, repeat="x" ),
11188 pkt.CompletionCodes([0x0000, 0xfe00])
11190 pkt = NCP(0x2405, "Return NCP Extension Information", 'fileserver')
11192 rec( 10, 4, NCPextensionNumber ),
11194 pkt.Reply((16,270), [
11195 rec( 8, 4, NCPextensionNumber ),
11196 rec( 12, 1, NCPextensionMajorVersion ),
11197 rec( 13, 1, NCPextensionMinorVersion ),
11198 rec( 14, 1, NCPextensionRevisionNumber ),
11199 rec( 15, (1, 255), NCPextensionName ),
11201 pkt.CompletionCodes([0x0000, 0xfe00])
11203 pkt = NCP(0x2406, "Return NCP Extension Maximum Data Size", 'fileserver')
11206 rec( 8, 4, NCPdataSize ),
11208 pkt.CompletionCodes([0x0000, 0xfe00])
11210 pkt = NCP(0x25, "Execute NCP Extension", 'fileserver')
11212 rec( 7, 4, NCPextensionNumber ),
11213 # The following value is Unicode
11214 #rec[ 13, (1,255), RequestData ],
11217 # The following value is Unicode
11218 #[ 8, (1, 255), ReplyBuffer ],
11219 pkt.CompletionCodes([0x0000, 0xee00, 0xfe00])
11221 pkt = NCP(0x3B, "Commit File", 'file', has_length=0 )
11223 rec( 7, 1, Reserved ),
11224 rec( 8, 6, FileHandle ),
11227 pkt.CompletionCodes([0x0000, 0x8800, 0x9804, 0xff00])
11229 pkt = NCP(0x3E, "File Search Initialize", 'file', has_length=0 )
11230 pkt.Request((9, 263), [
11231 rec( 7, 1, DirHandle ),
11232 rec( 8, (1,255), Path ),
11233 ], info_str=(Path, "Initialize File Search: %s", ", %s"))
11235 rec( 8, 1, VolumeNumber ),
11236 rec( 9, 2, DirectoryID ),
11237 rec( 11, 2, SequenceNumber, BE ),
11238 rec( 13, 1, AccessRightsMask ),
11240 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100,
11243 pkt = NCP(0x3F, "File Search Continue", 'file', has_length=0 )
11244 pkt.Request((14, 268), [
11245 rec( 7, 1, VolumeNumber ),
11246 rec( 8, 2, DirectoryID ),
11247 rec( 10, 2, SequenceNumber, BE ),
11248 rec( 12, 1, SearchAttributes ),
11249 rec( 13, (1,255), Path ),
11250 ], info_str=(Path, "File Search Continue: %s", ", %s"))
11251 pkt.Reply( NO_LENGTH_CHECK, [
11253 # XXX - don't show this if we got back a non-zero
11254 # completion code? For example, 255 means "No
11255 # matching files or directories were found", so
11256 # presumably it can't show you a matching file or
11257 # directory instance - it appears to just leave crap
11260 srec( DirectoryInstance, req_cond="ncp.sattr_sub==TRUE"),
11261 srec( FileInstance, req_cond="ncp.sattr_sub!=TRUE"),
11263 pkt.ReqCondSizeVariable()
11264 pkt.CompletionCodes([0x0000, 0xff16])
11266 pkt = NCP(0x40, "Search for a File", 'file')
11267 pkt.Request((12, 266), [
11268 rec( 7, 2, SequenceNumber, BE ),
11269 rec( 9, 1, DirHandle ),
11270 rec( 10, 1, SearchAttributes ),
11271 rec( 11, (1,255), FileName ),
11272 ], info_str=(FileName, "Search for File: %s", ", %s"))
11274 rec( 8, 2, SequenceNumber, BE ),
11275 rec( 10, 2, Reserved2 ),
11276 rec( 12, 14, FileName14 ),
11277 rec( 26, 1, AttributesDef ),
11278 rec( 27, 1, FileExecuteType ),
11279 rec( 28, 4, FileSize ),
11280 rec( 32, 2, CreationDate, BE ),
11281 rec( 34, 2, LastAccessedDate, BE ),
11282 rec( 36, 2, ModifiedDate, BE ),
11283 rec( 38, 2, ModifiedTime, BE ),
11285 pkt.CompletionCodes([0x0000, 0x8900, 0x9600, 0x9804, 0x9b03,
11286 0x9c03, 0xa100, 0xfd00, 0xff16])
11288 pkt = NCP(0x41, "Open File", 'file')
11289 pkt.Request((10, 264), [
11290 rec( 7, 1, DirHandle ),
11291 rec( 8, 1, SearchAttributes ),
11292 rec( 9, (1,255), FileName ),
11293 ], info_str=(FileName, "Open File: %s", ", %s"))
11295 rec( 8, 6, FileHandle ),
11296 rec( 14, 2, Reserved2 ),
11297 rec( 16, 14, FileName14 ),
11298 rec( 30, 1, AttributesDef ),
11299 rec( 31, 1, FileExecuteType ),
11300 rec( 32, 4, FileSize, BE ),
11301 rec( 36, 2, CreationDate, BE ),
11302 rec( 38, 2, LastAccessedDate, BE ),
11303 rec( 40, 2, ModifiedDate, BE ),
11304 rec( 42, 2, ModifiedTime, BE ),
11306 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8200, 0x9400,
11307 0x9600, 0x9804, 0x9c03, 0xa100, 0xfd00,
11310 pkt = NCP(0x42, "Close File", 'file')
11312 rec( 7, 1, Reserved ),
11313 rec( 8, 6, FileHandle ),
11316 pkt.CompletionCodes([0x0000, 0x8800, 0xff1a])
11318 pkt = NCP(0x43, "Create File", 'file')
11319 pkt.Request((10, 264), [
11320 rec( 7, 1, DirHandle ),
11321 rec( 8, 1, AttributesDef ),
11322 rec( 9, (1,255), FileName ),
11323 ], info_str=(FileName, "Create File: %s", ", %s"))
11325 rec( 8, 6, FileHandle ),
11326 rec( 14, 2, Reserved2 ),
11327 rec( 16, 14, FileName14 ),
11328 rec( 30, 1, AttributesDef ),
11329 rec( 31, 1, FileExecuteType ),
11330 rec( 32, 4, FileSize, BE ),
11331 rec( 36, 2, CreationDate, BE ),
11332 rec( 38, 2, LastAccessedDate, BE ),
11333 rec( 40, 2, ModifiedDate, BE ),
11334 rec( 42, 2, ModifiedTime, BE ),
11336 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11337 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11338 0x9804, 0x9900, 0x9b03, 0x9c03, 0xfd00,
11341 pkt = NCP(0x44, "Erase File", 'file')
11342 pkt.Request((10, 264), [
11343 rec( 7, 1, DirHandle ),
11344 rec( 8, 1, SearchAttributes ),
11345 rec( 9, (1,255), FileName ),
11346 ], info_str=(FileName, "Erase File: %s", ", %s"))
11348 pkt.CompletionCodes([0x0000, 0x8a00, 0x8d00, 0x8e00, 0x8f00,
11349 0x9001, 0x9600, 0x9804, 0x9b03, 0x9c03,
11350 0xa100, 0xfd00, 0xff00])
11352 pkt = NCP(0x45, "Rename File", 'file')
11353 pkt.Request((12, 520), [
11354 rec( 7, 1, DirHandle ),
11355 rec( 8, 1, SearchAttributes ),
11356 rec( 9, (1,255), FileName ),
11357 rec( -1, 1, TargetDirHandle ),
11358 rec( -1, (1, 255), NewFileNameLen ),
11359 ], info_str=(FileName, "Rename File: %s", ", %s"))
11361 pkt.CompletionCodes([0x0000, 0x8701, 0x8b00, 0x8d00, 0x8e00,
11362 0x8f00, 0x9001, 0x9101, 0x9201, 0x9600,
11363 0x9804, 0x9a00, 0x9b03, 0x9c03, 0xa100,
11366 pkt = NCP(0x46, "Set File Attributes", 'file')
11367 pkt.Request((11, 265), [
11368 rec( 7, 1, AttributesDef ),
11369 rec( 8, 1, DirHandle ),
11370 rec( 9, 1, SearchAttributes ),
11371 rec( 10, (1,255), FileName ),
11372 ], info_str=(FileName, "Set File Attributes: %s", ", %s"))
11374 pkt.CompletionCodes([0x0000, 0x8c00, 0x8d00, 0x8e00, 0x9600,
11375 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfd00,
11378 pkt = NCP(0x47, "Get Current Size of File", 'file')
11380 rec( 7, 6, FileHandle ),
11383 rec( 8, 4, FileSize, BE ),
11385 pkt.CompletionCodes([0x0000, 0x8800])
11387 pkt = NCP(0x48, "Read From A File", 'file')
11389 rec( 7, 1, Reserved ),
11390 rec( 8, 6, FileHandle ),
11391 rec( 14, 4, FileOffset, BE ),
11392 rec( 18, 2, MaxBytes, BE ),
11395 rec( 8, 2, NumBytes, BE ),
11397 pkt.CompletionCodes([0x0000, 0x8300, 0x8800, 0x9300, 0xff00])
11399 pkt = NCP(0x49, "Write to a File", 'file')
11401 rec( 7, 1, Reserved ),
11402 rec( 8, 6, FileHandle ),
11403 rec( 14, 4, FileOffset, BE ),
11404 rec( 18, 2, MaxBytes, BE ),
11407 pkt.CompletionCodes([0x0000, 0x0104, 0x8300, 0x8800, 0x9400, 0x9500, 0xa201, 0xff1b])
11409 pkt = NCP(0x4A, "Copy from One File to Another", 'file')
11411 rec( 7, 1, Reserved ),
11412 rec( 8, 6, FileHandle ),
11413 rec( 14, 6, TargetFileHandle ),
11414 rec( 20, 4, FileOffset, BE ),
11415 rec( 24, 4, TargetFileOffset, BE ),
11416 rec( 28, 2, BytesToCopy, BE ),
11419 rec( 8, 4, BytesActuallyTransferred, BE ),
11421 pkt.CompletionCodes([0x0000, 0x0104, 0x8300, 0x8800, 0x9300, 0x9400,
11422 0x9500, 0x9600, 0xa201, 0xff1b])
11424 pkt = NCP(0x4B, "Set File Time Date Stamp", 'file')
11426 rec( 7, 1, Reserved ),
11427 rec( 8, 6, FileHandle ),
11428 rec( 14, 2, FileTime, BE ),
11429 rec( 16, 2, FileDate, BE ),
11432 pkt.CompletionCodes([0x0000, 0x8800, 0x9600])
11434 pkt = NCP(0x4C, "Open File", 'file')
11435 pkt.Request((11, 265), [
11436 rec( 7, 1, DirHandle ),
11437 rec( 8, 1, SearchAttributes ),
11438 rec( 9, 1, AccessRightsMask ),
11439 rec( 10, (1,255), FileName ),
11440 ], info_str=(FileName, "Open File: %s", ", %s"))
11442 rec( 8, 6, FileHandle ),
11443 rec( 14, 2, Reserved2 ),
11444 rec( 16, 14, FileName14 ),
11445 rec( 30, 1, AttributesDef ),
11446 rec( 31, 1, FileExecuteType ),
11447 rec( 32, 4, FileSize, BE ),
11448 rec( 36, 2, CreationDate, BE ),
11449 rec( 38, 2, LastAccessedDate, BE ),
11450 rec( 40, 2, ModifiedDate, BE ),
11451 rec( 42, 2, ModifiedTime, BE ),
11453 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8200, 0x9400,
11454 0x9600, 0x9804, 0x9c03, 0xa100, 0xfd00,
11457 pkt = NCP(0x4D, "Create File", 'file')
11458 pkt.Request((10, 264), [
11459 rec( 7, 1, DirHandle ),
11460 rec( 8, 1, AttributesDef ),
11461 rec( 9, (1,255), FileName ),
11462 ], info_str=(FileName, "Create File: %s", ", %s"))
11464 rec( 8, 6, FileHandle ),
11465 rec( 14, 2, Reserved2 ),
11466 rec( 16, 14, FileName14 ),
11467 rec( 30, 1, AttributesDef ),
11468 rec( 31, 1, FileExecuteType ),
11469 rec( 32, 4, FileSize, BE ),
11470 rec( 36, 2, CreationDate, BE ),
11471 rec( 38, 2, LastAccessedDate, BE ),
11472 rec( 40, 2, ModifiedDate, BE ),
11473 rec( 42, 2, ModifiedTime, BE ),
11475 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11476 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11477 0x9804, 0x9900, 0x9b03, 0x9c03, 0xfd00,
11480 pkt = NCP(0x4F, "Set File Extended Attributes", 'file')
11481 pkt.Request((11, 265), [
11482 rec( 7, 1, AttributesDef ),
11483 rec( 8, 1, DirHandle ),
11484 rec( 9, 1, AccessRightsMask ),
11485 rec( 10, (1,255), FileName ),
11486 ], info_str=(FileName, "Set File Extended Attributes: %s", ", %s"))
11488 pkt.CompletionCodes([0x0000, 0x8c00, 0x8d00, 0x8e00, 0x9600,
11489 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfd00,
11492 pkt = NCP(0x54, "Open/Create File", 'file')
11493 pkt.Request((12, 266), [
11494 rec( 7, 1, DirHandle ),
11495 rec( 8, 1, AttributesDef ),
11496 rec( 9, 1, AccessRightsMask ),
11497 rec( 10, 1, ActionFlag ),
11498 rec( 11, (1,255), FileName ),
11499 ], info_str=(FileName, "Open/Create File: %s", ", %s"))
11501 rec( 8, 6, FileHandle ),
11502 rec( 14, 2, Reserved2 ),
11503 rec( 16, 14, FileName14 ),
11504 rec( 30, 1, AttributesDef ),
11505 rec( 31, 1, FileExecuteType ),
11506 rec( 32, 4, FileSize, BE ),
11507 rec( 36, 2, CreationDate, BE ),
11508 rec( 38, 2, LastAccessedDate, BE ),
11509 rec( 40, 2, ModifiedDate, BE ),
11510 rec( 42, 2, ModifiedTime, BE ),
11512 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11513 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11514 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
11516 pkt = NCP(0x55, "Get Sparse File Data Block Bit Map", 'file')
11518 rec( 7, 6, FileHandle ),
11519 rec( 13, 4, FileOffset ),
11522 rec( 8, 4, AllocationBlockSize ),
11523 rec( 12, 4, Reserved4 ),
11524 rec( 16, 512, BitMap ),
11526 pkt.CompletionCodes([0x0000, 0x8800])
11528 pkt = NCP(0x5601, "Close Extended Attribute Handle", 'file', has_length=0 )
11530 rec( 8, 2, Reserved2 ),
11531 rec( 10, 4, EAHandle ),
11534 pkt.CompletionCodes([0x0000, 0xcf00, 0xd301])
11536 pkt = NCP(0x5602, "Write Extended Attribute", 'file', has_length=0 )
11537 pkt.Request((35,97), [
11538 rec( 8, 2, EAFlags ),
11539 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11540 rec( 14, 4, ReservedOrDirectoryNumber ),
11541 rec( 18, 4, TtlWriteDataSize ),
11542 rec( 22, 4, FileOffset ),
11543 rec( 26, 4, EAAccessFlag ),
11544 rec( 30, 2, EAValueLength, var='x' ),
11545 rec( 32, (2,64), EAKey ),
11546 rec( -1, 1, EAValueRep, repeat='x' ),
11547 ], info_str=(EAKey, "Write Extended Attribute: %s", ", %s"))
11549 rec( 8, 4, EAErrorCodes ),
11550 rec( 12, 4, EABytesWritten ),
11551 rec( 16, 4, NewEAHandle ),
11553 pkt.CompletionCodes([0x0000, 0xc800, 0xc900, 0xcb00, 0xce00, 0xcf00, 0xd101,
11554 0xd203, 0xd301, 0xd402])
11556 pkt = NCP(0x5603, "Read Extended Attribute", 'file', has_length=0 )
11557 pkt.Request((28,538), [
11558 rec( 8, 2, EAFlags ),
11559 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11560 rec( 14, 4, ReservedOrDirectoryNumber ),
11561 rec( 18, 4, FileOffset ),
11562 rec( 22, 4, InspectSize ),
11563 rec( 26, (2,512), EAKey ),
11564 ], info_str=(EAKey, "Read Extended Attribute: %s", ", %s"))
11565 pkt.Reply((26,536), [
11566 rec( 8, 4, EAErrorCodes ),
11567 rec( 12, 4, TtlValuesLength ),
11568 rec( 16, 4, NewEAHandle ),
11569 rec( 20, 4, EAAccessFlag ),
11570 rec( 24, (2,512), EAValue ),
11572 pkt.CompletionCodes([0x0000, 0xc900, 0xce00, 0xcf00, 0xd101,
11575 pkt = NCP(0x5604, "Enumerate Extended Attribute", 'file', has_length=0 )
11576 pkt.Request((26,536), [
11577 rec( 8, 2, EAFlags ),
11578 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11579 rec( 14, 4, ReservedOrDirectoryNumber ),
11580 rec( 18, 4, InspectSize ),
11581 rec( 22, 2, SequenceNumber ),
11582 rec( 24, (2,512), EAKey ),
11583 ], info_str=(EAKey, "Enumerate Extended Attribute: %s", ", %s"))
11585 rec( 8, 4, EAErrorCodes ),
11586 rec( 12, 4, TtlEAs ),
11587 rec( 16, 4, TtlEAsDataSize ),
11588 rec( 20, 4, TtlEAsKeySize ),
11589 rec( 24, 4, NewEAHandle ),
11591 pkt.CompletionCodes([0x0000, 0x8800, 0xc900, 0xce00, 0xcf00, 0xd101,
11594 pkt = NCP(0x5605, "Duplicate Extended Attributes", 'file', has_length=0 )
11596 rec( 8, 2, EAFlags ),
11597 rec( 10, 2, DstEAFlags ),
11598 rec( 12, 4, EAHandleOrNetWareHandleOrVolume ),
11599 rec( 16, 4, ReservedOrDirectoryNumber ),
11600 rec( 20, 4, EAHandleOrNetWareHandleOrVolume ),
11601 rec( 24, 4, ReservedOrDirectoryNumber ),
11604 rec( 8, 4, EADuplicateCount ),
11605 rec( 12, 4, EADataSizeDuplicated ),
11606 rec( 16, 4, EAKeySizeDuplicated ),
11608 pkt.CompletionCodes([0x0000, 0xd101])
11610 pkt = NCP(0x5701, "Open/Create File or Subdirectory", 'file', has_length=0)
11611 pkt.Request((30, 284), [
11612 rec( 8, 1, NameSpace ),
11613 rec( 9, 1, OpenCreateMode ),
11614 rec( 10, 2, SearchAttributesLow ),
11615 rec( 12, 2, ReturnInfoMask ),
11616 rec( 14, 2, ExtendedInfo ),
11617 rec( 16, 4, AttributesDef32 ),
11618 rec( 20, 2, DesiredAccessRights ),
11619 rec( 22, 1, VolumeNumber ),
11620 rec( 23, 4, DirectoryBase ),
11621 rec( 27, 1, HandleFlag ),
11622 rec( 28, 1, PathCount, var="x" ),
11623 rec( 29, (1,255), Path, repeat="x" ),
11624 ], info_str=(Path, "Open or Create: %s", "/%s"))
11625 pkt.Reply( NO_LENGTH_CHECK, [
11626 rec( 8, 4, FileHandle ),
11627 rec( 12, 1, OpenCreateAction ),
11628 rec( 13, 1, Reserved ),
11629 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11630 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11631 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11632 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11633 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11634 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11635 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11636 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11637 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11638 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11639 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11640 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11641 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11642 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11643 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11644 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11645 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11646 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11647 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11648 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
11649 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
11650 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
11651 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
11652 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
11653 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
11654 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
11655 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
11656 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
11657 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
11658 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
11659 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
11660 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
11661 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
11662 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
11663 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
11664 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
11665 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
11666 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
11667 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
11668 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
11669 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
11670 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
11671 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
11672 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
11673 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
11674 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
11675 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
11677 pkt.ReqCondSizeVariable()
11678 pkt.CompletionCodes([0x0000, 0x8001, 0x8101, 0x8401, 0x8501,
11679 0x8701, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
11680 0x9804, 0x9b03, 0x9c03, 0xa500, 0xbf00, 0xfd00, 0xff16])
11682 pkt = NCP(0x5702, "Initialize Search", 'file', has_length=0)
11683 pkt.Request( (18,272), [
11684 rec( 8, 1, NameSpace ),
11685 rec( 9, 1, Reserved ),
11686 rec( 10, 1, VolumeNumber ),
11687 rec( 11, 4, DirectoryBase ),
11688 rec( 15, 1, HandleFlag ),
11689 rec( 16, 1, PathCount, var="x" ),
11690 rec( 17, (1,255), Path, repeat="x" ),
11691 ], info_str=(Path, "Set Search Pointer to: %s", "/%s"))
11693 rec( 8, 1, VolumeNumber ),
11694 rec( 9, 4, DirectoryNumber ),
11695 rec( 13, 4, DirectoryEntryNumber ),
11697 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11698 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11699 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11701 pkt = NCP(0x5703, "Search for File or Subdirectory", 'file', has_length=0)
11702 pkt.Request((26, 280), [
11703 rec( 8, 1, NameSpace ),
11704 rec( 9, 1, DataStream ),
11705 rec( 10, 2, SearchAttributesLow ),
11706 rec( 12, 2, ReturnInfoMask ),
11707 rec( 14, 2, ExtendedInfo ),
11708 rec( 16, 9, SearchSequence ),
11709 rec( 25, (1,255), SearchPattern ),
11710 ], info_str=(SearchPattern, "Search for: %s", "/%s"))
11711 pkt.Reply( NO_LENGTH_CHECK, [
11712 rec( 8, 9, SearchSequence ),
11713 rec( 17, 1, Reserved ),
11714 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11715 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11716 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11717 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11718 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11719 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11720 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11721 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11722 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11723 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11724 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11725 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11726 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11727 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11728 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11729 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11730 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11731 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11732 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11733 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
11734 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
11735 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
11736 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
11737 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
11738 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
11739 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
11740 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
11741 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
11742 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
11743 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
11744 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
11745 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
11746 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
11747 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
11748 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
11749 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
11750 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
11751 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
11752 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
11753 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
11754 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
11755 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
11756 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
11757 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
11758 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
11759 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
11760 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
11762 pkt.ReqCondSizeVariable()
11763 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11764 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11765 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11767 pkt = NCP(0x5704, "Rename Or Move a File or Subdirectory", 'file', has_length=0)
11768 pkt.Request((28, 536), [
11769 rec( 8, 1, NameSpace ),
11770 rec( 9, 1, RenameFlag ),
11771 rec( 10, 2, SearchAttributesLow ),
11772 rec( 12, 1, VolumeNumber ),
11773 rec( 13, 4, DirectoryBase ),
11774 rec( 17, 1, HandleFlag ),
11775 rec( 18, 1, PathCount, var="x" ),
11776 rec( 19, 1, VolumeNumber ),
11777 rec( 20, 4, DirectoryBase ),
11778 rec( 24, 1, HandleFlag ),
11779 rec( 25, 1, PathCount, var="y" ),
11780 rec( 26, (1, 255), Path, repeat="x" ),
11781 rec( -1, (1,255), Path, repeat="y" ),
11782 ], info_str=(Path, "Rename or Move: %s", "/%s"))
11784 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11785 0x8701, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9200, 0x9600,
11786 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11788 pkt = NCP(0x5705, "Scan File or Subdirectory for Trustees", 'file', has_length=0)
11789 pkt.Request((24, 278), [
11790 rec( 8, 1, NameSpace ),
11791 rec( 9, 1, Reserved ),
11792 rec( 10, 2, SearchAttributesLow ),
11793 rec( 12, 4, SequenceNumber ),
11794 rec( 16, 1, VolumeNumber ),
11795 rec( 17, 4, DirectoryBase ),
11796 rec( 21, 1, HandleFlag ),
11797 rec( 22, 1, PathCount, var="x" ),
11798 rec( 23, (1, 255), Path, repeat="x" ),
11799 ], info_str=(Path, "Scan Trustees for: %s", "/%s"))
11801 rec( 8, 4, SequenceNumber ),
11802 rec( 12, 2, ObjectIDCount, var="x" ),
11803 rec( 14, 6, TrusteeStruct, repeat="x" ),
11805 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11806 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11807 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11809 pkt = NCP(0x5706, "Obtain File or SubDirectory Information", 'file', has_length=0)
11810 pkt.Request((24,278), [
11811 rec( 10, 1, SrcNameSpace ),
11812 rec( 11, 1, DestNameSpace ),
11813 rec( 12, 2, SearchAttributesLow ),
11814 rec( 14, 2, ReturnInfoMask, LE ),
11815 rec( 16, 2, ExtendedInfo ),
11816 rec( 18, 1, VolumeNumber ),
11817 rec( 19, 4, DirectoryBase ),
11818 rec( 23, 1, HandleFlag ),
11819 rec( 24, 1, PathCount, var="x" ),
11820 rec( 25, (1,255), Path, repeat="x",),
11821 ], info_str=(Path, "Obtain Info for: %s", "/%s"))
11822 pkt.Reply(NO_LENGTH_CHECK, [
11823 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11824 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11825 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11826 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11827 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11828 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11829 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11830 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11831 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11832 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11833 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11834 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11835 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11836 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11837 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11838 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11839 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11840 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11841 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11842 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
11843 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
11844 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
11845 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
11846 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
11847 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
11848 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
11849 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
11850 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
11851 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
11852 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
11853 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
11854 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
11855 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
11856 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
11857 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
11858 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
11859 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
11860 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
11861 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
11862 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
11863 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
11864 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
11865 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
11866 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
11867 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
11868 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
11869 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
11871 pkt.ReqCondSizeVariable()
11872 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11873 0x8701, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
11874 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11876 pkt = NCP(0x5707, "Modify File or Subdirectory DOS Information", 'file', has_length=0)
11877 pkt.Request((62,316), [
11878 rec( 8, 1, NameSpace ),
11879 rec( 9, 1, Reserved ),
11880 rec( 10, 2, SearchAttributesLow ),
11881 rec( 12, 2, ModifyDOSInfoMask ),
11882 rec( 14, 2, Reserved2 ),
11883 rec( 16, 2, AttributesDef16 ),
11884 rec( 18, 1, FileMode ),
11885 rec( 19, 1, FileExtendedAttributes ),
11886 rec( 20, 2, CreationDate ),
11887 rec( 22, 2, CreationTime ),
11888 rec( 24, 4, CreatorID, BE ),
11889 rec( 28, 2, ModifiedDate ),
11890 rec( 30, 2, ModifiedTime ),
11891 rec( 32, 4, ModifierID, BE ),
11892 rec( 36, 2, ArchivedDate ),
11893 rec( 38, 2, ArchivedTime ),
11894 rec( 40, 4, ArchiverID, BE ),
11895 rec( 44, 2, LastAccessedDate ),
11896 rec( 46, 2, InheritedRightsMask ),
11897 rec( 48, 2, InheritanceRevokeMask ),
11898 rec( 50, 4, MaxSpace ),
11899 rec( 54, 1, VolumeNumber ),
11900 rec( 55, 4, DirectoryBase ),
11901 rec( 59, 1, HandleFlag ),
11902 rec( 60, 1, PathCount, var="x" ),
11903 rec( 61, (1,255), Path, repeat="x" ),
11904 ], info_str=(Path, "Modify DOS Information for: %s", "/%s"))
11906 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11907 0x8701, 0x8c01, 0x8d00, 0x8f00, 0x9001, 0x9600,
11908 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11910 pkt = NCP(0x5708, "Delete a File or Subdirectory", 'file', has_length=0)
11911 pkt.Request((20,274), [
11912 rec( 8, 1, NameSpace ),
11913 rec( 9, 1, Reserved ),
11914 rec( 10, 2, SearchAttributesLow ),
11915 rec( 12, 1, VolumeNumber ),
11916 rec( 13, 4, DirectoryBase ),
11917 rec( 17, 1, HandleFlag ),
11918 rec( 18, 1, PathCount, var="x" ),
11919 rec( 19, (1,255), Path, repeat="x" ),
11920 ], info_str=(Path, "Delete: %s", "/%s"))
11922 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11923 0x8701, 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
11924 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11926 pkt = NCP(0x5709, "Set Short Directory Handle", 'file', has_length=0)
11927 pkt.Request((20,274), [
11928 rec( 8, 1, NameSpace ),
11929 rec( 9, 1, DataStream ),
11930 rec( 10, 1, DestDirHandle ),
11931 rec( 11, 1, Reserved ),
11932 rec( 12, 1, VolumeNumber ),
11933 rec( 13, 4, DirectoryBase ),
11934 rec( 17, 1, HandleFlag ),
11935 rec( 18, 1, PathCount, var="x" ),
11936 rec( 19, (1,255), Path, repeat="x" ),
11937 ], info_str=(Path, "Set Short Directory Handle to: %s", "/%s"))
11939 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11940 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11941 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11943 pkt = NCP(0x570A, "Add Trustee Set to File or Subdirectory", 'file', has_length=0)
11944 pkt.Request((31,285), [
11945 rec( 8, 1, NameSpace ),
11946 rec( 9, 1, Reserved ),
11947 rec( 10, 2, SearchAttributesLow ),
11948 rec( 12, 2, AccessRightsMaskWord ),
11949 rec( 14, 2, ObjectIDCount, var="y" ),
11950 rec( 16, 1, VolumeNumber ),
11951 rec( 17, 4, DirectoryBase ),
11952 rec( 21, 1, HandleFlag ),
11953 rec( 22, 1, PathCount, var="x" ),
11954 rec( 23, (1,255), Path, repeat="x" ),
11955 rec( -1, 7, TrusteeStruct, repeat="y" ),
11956 ], info_str=(Path, "Add Trustee Set to: %s", "/%s"))
11958 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11959 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11960 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfc01, 0xfd00, 0xff16])
11962 pkt = NCP(0x570B, "Delete Trustee Set from File or SubDirectory", 'file', has_length=0)
11963 pkt.Request((27,281), [
11964 rec( 8, 1, NameSpace ),
11965 rec( 9, 1, Reserved ),
11966 rec( 10, 2, ObjectIDCount, var="y" ),
11967 rec( 12, 1, VolumeNumber ),
11968 rec( 13, 4, DirectoryBase ),
11969 rec( 17, 1, HandleFlag ),
11970 rec( 18, 1, PathCount, var="x" ),
11971 rec( 19, (1,255), Path, repeat="x" ),
11972 rec( -1, 7, TrusteeStruct, repeat="y" ),
11973 ], info_str=(Path, "Delete Trustee Set from: %s", "/%s"))
11975 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11976 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11977 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11979 pkt = NCP(0x570C, "Allocate Short Directory Handle", 'file', has_length=0)
11980 pkt.Request((20,274), [
11981 rec( 8, 1, NameSpace ),
11982 rec( 9, 1, Reserved ),
11983 rec( 10, 2, AllocateMode ),
11984 rec( 12, 1, VolumeNumber ),
11985 rec( 13, 4, DirectoryBase ),
11986 rec( 17, 1, HandleFlag ),
11987 rec( 18, 1, PathCount, var="x" ),
11988 rec( 19, (1,255), Path, repeat="x" ),
11989 ], info_str=(Path, "Allocate Short Directory Handle to: %s", "/%s"))
11991 rec( 8, 1, DirHandle ),
11992 rec( 9, 1, VolumeNumber ),
11993 rec( 10, 4, Reserved4 ),
11995 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11996 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11997 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11999 pkt = NCP(0x5710, "Scan Salvageable Files", 'file', has_length=0)
12000 pkt.Request((26,280), [
12001 rec( 8, 1, NameSpace ),
12002 rec( 9, 1, DataStream ),
12003 rec( 10, 2, ReturnInfoMask ),
12004 rec( 12, 2, ExtendedInfo ),
12005 rec( 14, 4, SequenceNumber ),
12006 rec( 18, 1, VolumeNumber ),
12007 rec( 19, 4, DirectoryBase ),
12008 rec( 23, 1, HandleFlag ),
12009 rec( 24, 1, PathCount, var="x" ),
12010 rec( 25, (1,255), Path, repeat="x" ),
12011 ], info_str=(Path, "Scan for Deleted Files in: %s", "/%s"))
12012 pkt.Reply(NO_LENGTH_CHECK, [
12013 rec( 8, 4, SequenceNumber ),
12014 rec( 12, 2, DeletedTime ),
12015 rec( 14, 2, DeletedDate ),
12016 rec( 16, 4, DeletedID, BE ),
12017 rec( 20, 4, VolumeID ),
12018 rec( 24, 4, DirectoryBase ),
12019 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12020 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12021 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12022 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12023 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12024 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12025 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12026 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12027 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12028 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12029 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12030 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12031 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12032 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12033 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12034 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12035 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12036 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12037 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12038 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12039 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12040 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12041 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12042 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12043 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12044 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12045 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12046 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12047 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12048 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12049 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12050 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12051 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12052 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12053 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12055 pkt.ReqCondSizeVariable()
12056 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12057 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12058 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12060 pkt = NCP(0x5711, "Recover Salvageable File", 'file', has_length=0)
12061 pkt.Request((23,277), [
12062 rec( 8, 1, NameSpace ),
12063 rec( 9, 1, Reserved ),
12064 rec( 10, 4, SequenceNumber ),
12065 rec( 14, 4, VolumeID ),
12066 rec( 18, 4, DirectoryBase ),
12067 rec( 22, (1,255), FileName ),
12068 ], info_str=(FileName, "Recover Deleted File: %s", ", %s"))
12070 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12071 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12072 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12074 pkt = NCP(0x5712, "Purge Salvageable Files", 'file', has_length=0)
12076 rec( 8, 1, NameSpace ),
12077 rec( 9, 1, Reserved ),
12078 rec( 10, 4, SequenceNumber ),
12079 rec( 14, 4, VolumeID ),
12080 rec( 18, 4, DirectoryBase ),
12083 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12084 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12085 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12087 pkt = NCP(0x5713, "Get Name Space Information", 'file', has_length=0)
12089 rec( 8, 1, SrcNameSpace ),
12090 rec( 9, 1, DestNameSpace ),
12091 rec( 10, 1, Reserved ),
12092 rec( 11, 1, VolumeNumber ),
12093 rec( 12, 4, DirectoryBase ),
12094 rec( 16, 2, NamesSpaceInfoMask ),
12096 pkt.Reply(NO_LENGTH_CHECK, [
12097 srec( FileNameStruct, req_cond="ncp.ns_info_mask_modify == TRUE" ),
12098 srec( FileAttributesStruct, req_cond="ncp.ns_info_mask_fatt == TRUE" ),
12099 srec( CreationDateStruct, req_cond="ncp.ns_info_mask_cdate == TRUE" ),
12100 srec( CreationTimeStruct, req_cond="ncp.ns_info_mask_ctime == TRUE" ),
12101 srec( OwnerIDStruct, req_cond="ncp.ns_info_mask_owner == TRUE" ),
12102 srec( ArchiveDateStruct, req_cond="ncp.ns_info_mask_adate == TRUE" ),
12103 srec( ArchiveTimeStruct, req_cond="ncp.ns_info_mask_atime == TRUE" ),
12104 srec( ArchiveIdStruct, req_cond="ncp.ns_info_mask_aid == TRUE" ),
12105 srec( UpdateDateStruct, req_cond="ncp.ns_info_mask_udate == TRUE" ),
12106 srec( UpdateTimeStruct, req_cond="ncp.ns_info_mask_utime == TRUE" ),
12107 srec( UpdateIDStruct, req_cond="ncp.ns_info_mask_uid == TRUE" ),
12108 srec( LastAccessStruct, req_cond="ncp.ns_info_mask_acc_date == TRUE" ),
12109 srec( RightsInfoStruct, req_cond="ncp.ns_info_mask_max_acc_mask == TRUE" ),
12111 pkt.ReqCondSizeVariable()
12112 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12113 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12114 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12116 pkt = NCP(0x5714, "Search for File or Subdirectory Set", 'file', has_length=0)
12117 pkt.Request((28, 282), [
12118 rec( 8, 1, NameSpace ),
12119 rec( 9, 1, DataStream ),
12120 rec( 10, 2, SearchAttributesLow ),
12121 rec( 12, 2, ReturnInfoMask ),
12122 rec( 14, 2, ExtendedInfo ),
12123 rec( 16, 2, ReturnInfoCount ),
12124 rec( 18, 9, SearchSequence ),
12125 rec( 27, (1,255), SearchPattern ),
12126 ], info_str=(SearchPattern, "Search for: %s", ", %s"))
12127 pkt.Reply(NO_LENGTH_CHECK, [
12128 rec( 8, 9, SearchSequence ),
12129 rec( 17, 1, MoreFlag ),
12130 rec( 18, 2, InfoCount ),
12131 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12132 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12133 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12134 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12135 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12136 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12137 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12138 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12139 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12140 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12141 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12142 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12143 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12144 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12145 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12146 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12147 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12148 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12149 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12150 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12151 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12152 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12153 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12154 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12155 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12156 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12157 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12158 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12159 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12160 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12161 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12162 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12163 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12164 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12165 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12166 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
12167 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
12168 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12169 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12170 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12171 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12172 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12173 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12174 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12175 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12176 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12177 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12179 pkt.ReqCondSizeVariable()
12180 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12181 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12182 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12184 pkt = NCP(0x5715, "Get Path String from Short Directory Handle", 'file', has_length=0)
12186 rec( 8, 1, NameSpace ),
12187 rec( 9, 1, DirHandle ),
12189 pkt.Reply((9,263), [
12190 rec( 8, (1,255), Path ),
12192 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12193 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12194 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
12196 pkt = NCP(0x5716, "Generate Directory Base and Volume Number", 'file', has_length=0)
12197 pkt.Request((20,274), [
12198 rec( 8, 1, SrcNameSpace ),
12199 rec( 9, 1, DestNameSpace ),
12200 rec( 10, 2, dstNSIndicator ),
12201 rec( 12, 1, VolumeNumber ),
12202 rec( 13, 4, DirectoryBase ),
12203 rec( 17, 1, HandleFlag ),
12204 rec( 18, 1, PathCount, var="x" ),
12205 rec( 19, (1,255), Path, repeat="x" ),
12206 ], info_str=(Path, "Get Volume and Directory Base from: %s", "/%s"))
12208 rec( 8, 4, DirectoryBase ),
12209 rec( 12, 4, DOSDirectoryBase ),
12210 rec( 16, 1, VolumeNumber ),
12212 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12213 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12214 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12216 pkt = NCP(0x5717, "Query Name Space Information Format", 'file', has_length=0)
12218 rec( 8, 1, NameSpace ),
12219 rec( 9, 1, VolumeNumber ),
12222 rec( 8, 4, FixedBitMask ),
12223 rec( 12, 4, VariableBitMask ),
12224 rec( 16, 4, HugeBitMask ),
12225 rec( 20, 2, FixedBitsDefined ),
12226 rec( 22, 2, VariableBitsDefined ),
12227 rec( 24, 2, HugeBitsDefined ),
12228 rec( 26, 32, FieldsLenTable ),
12230 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12231 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12232 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12234 pkt = NCP(0x5718, "Get Name Spaces Loaded List from Volume Number", 'file', has_length=0)
12236 rec( 8, 1, Reserved ),
12237 rec( 9, 1, VolumeNumber ),
12240 rec( 8, 2, NumberOfNSLoaded, var="x" ),
12241 rec( 10, 1, NameSpace, repeat="x" ),
12243 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12244 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12245 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12247 pkt = NCP(0x5719, "Set Name Space Information", 'file', has_length=0)
12249 rec( 8, 1, SrcNameSpace ),
12250 rec( 9, 1, DestNameSpace ),
12251 rec( 10, 1, VolumeNumber ),
12252 rec( 11, 4, DirectoryBase ),
12253 rec( 15, 2, NamesSpaceInfoMask ),
12254 rec( 17, 2, Reserved2 ),
12255 rec( 19, 512, NSSpecificInfo ),
12258 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12259 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12260 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12263 pkt = NCP(0x571A, "Get Huge Name Space Information", 'file', has_length=0)
12265 rec( 8, 1, NameSpace ),
12266 rec( 9, 1, VolumeNumber ),
12267 rec( 10, 4, DirectoryBase ),
12268 rec( 14, 4, HugeBitMask ),
12269 rec( 18, 16, HugeStateInfo ),
12271 pkt.Reply((25,279), [
12272 rec( 8, 16, NextHugeStateInfo ),
12273 rec( 24, (1,255), HugeData ),
12275 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12276 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12277 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12280 pkt = NCP(0x571B, "Set Huge Name Space Information", 'file', has_length=0)
12281 pkt.Request((35,289), [
12282 rec( 8, 1, NameSpace ),
12283 rec( 9, 1, VolumeNumber ),
12284 rec( 10, 4, DirectoryBase ),
12285 rec( 14, 4, HugeBitMask ),
12286 rec( 18, 16, HugeStateInfo ),
12287 rec( 34, (1,255), HugeData ),
12290 rec( 8, 16, NextHugeStateInfo ),
12291 rec( 24, 4, HugeDataUsed ),
12293 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12294 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12295 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12298 pkt = NCP(0x571C, "Get Full Path String", 'file', has_length=0)
12299 pkt.Request((28,282), [
12300 rec( 8, 1, SrcNameSpace ),
12301 rec( 9, 1, DestNameSpace ),
12302 rec( 10, 2, PathCookieFlags ),
12303 rec( 12, 4, Cookie1 ),
12304 rec( 16, 4, Cookie2 ),
12305 rec( 20, 1, VolumeNumber ),
12306 rec( 21, 4, DirectoryBase ),
12307 rec( 25, 1, HandleFlag ),
12308 rec( 26, 1, PathCount, var="x" ),
12309 rec( 27, (1,255), Path, repeat="x" ),
12310 ], info_str=(Path, "Get Full Path from: %s", "/%s"))
12311 pkt.Reply((23,277), [
12312 rec( 8, 2, PathCookieFlags ),
12313 rec( 10, 4, Cookie1 ),
12314 rec( 14, 4, Cookie2 ),
12315 rec( 18, 2, PathComponentSize ),
12316 rec( 20, 2, PathComponentCount, var='x' ),
12317 rec( 22, (1,255), Path, repeat='x' ),
12319 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12320 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12321 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12324 pkt = NCP(0x571D, "Get Effective Directory Rights", 'file', has_length=0)
12325 pkt.Request((24, 278), [
12326 rec( 8, 1, NameSpace ),
12327 rec( 9, 1, DestNameSpace ),
12328 rec( 10, 2, SearchAttributesLow ),
12329 rec( 12, 2, ReturnInfoMask ),
12330 rec( 14, 2, ExtendedInfo ),
12331 rec( 16, 1, VolumeNumber ),
12332 rec( 17, 4, DirectoryBase ),
12333 rec( 21, 1, HandleFlag ),
12334 rec( 22, 1, PathCount, var="x" ),
12335 rec( 23, (1,255), Path, repeat="x" ),
12336 ], info_str=(Path, "Get Effective Rights for: %s", "/%s"))
12337 pkt.Reply(NO_LENGTH_CHECK, [
12338 rec( 8, 2, EffectiveRights ),
12339 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12340 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12341 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12342 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12343 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12344 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12345 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12346 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12347 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12348 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12349 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12350 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12351 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12352 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12353 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12354 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12355 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12356 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12357 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12358 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12359 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12360 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12361 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12362 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12363 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12364 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12365 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12366 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12367 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12368 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12369 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12370 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12371 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12372 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12373 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12375 pkt.ReqCondSizeVariable()
12376 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12377 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12378 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12380 pkt = NCP(0x571E, "Open/Create File or Subdirectory", 'file', has_length=0)
12381 pkt.Request((34, 288), [
12382 rec( 8, 1, NameSpace ),
12383 rec( 9, 1, DataStream ),
12384 rec( 10, 1, OpenCreateMode ),
12385 rec( 11, 1, Reserved ),
12386 rec( 12, 2, SearchAttributesLow ),
12387 rec( 14, 2, Reserved2 ),
12388 rec( 16, 2, ReturnInfoMask ),
12389 rec( 18, 2, ExtendedInfo ),
12390 rec( 20, 4, AttributesDef32 ),
12391 rec( 24, 2, DesiredAccessRights ),
12392 rec( 26, 1, VolumeNumber ),
12393 rec( 27, 4, DirectoryBase ),
12394 rec( 31, 1, HandleFlag ),
12395 rec( 32, 1, PathCount, var="x" ),
12396 rec( 33, (1,255), Path, repeat="x" ),
12397 ], info_str=(Path, "Open or Create File: %s", "/%s"))
12398 pkt.Reply(NO_LENGTH_CHECK, [
12399 rec( 8, 4, FileHandle, BE ),
12400 rec( 12, 1, OpenCreateAction ),
12401 rec( 13, 1, Reserved ),
12402 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12403 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12404 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12405 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12406 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12407 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12408 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12409 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12410 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12411 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12412 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12413 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12414 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12415 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12416 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12417 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12418 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12419 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12420 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12421 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12422 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12423 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12424 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12425 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12426 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12427 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12428 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12429 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12430 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12431 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12432 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12433 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12434 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12435 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12436 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12438 pkt.ReqCondSizeVariable()
12439 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12440 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12441 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12443 pkt = NCP(0x571F, "Get File Information", 'file', has_length=0)
12445 rec( 8, 6, FileHandle ),
12446 rec( 14, 1, HandleInfoLevel ),
12447 rec( 15, 1, NameSpace ),
12449 pkt.Reply(NO_LENGTH_CHECK, [
12450 rec( 8, 4, VolumeNumberLong ),
12451 rec( 12, 4, DirectoryBase ),
12452 srec(HandleInfoLevel0, req_cond="ncp.handle_info_level==0x00" ),
12453 srec(HandleInfoLevel1, req_cond="ncp.handle_info_level==0x01" ),
12454 srec(HandleInfoLevel2, req_cond="ncp.handle_info_level==0x02" ),
12455 srec(HandleInfoLevel3, req_cond="ncp.handle_info_level==0x03" ),
12456 srec(HandleInfoLevel4, req_cond="ncp.handle_info_level==0x04" ),
12457 srec(HandleInfoLevel5, req_cond="ncp.handle_info_level==0x05" ),
12459 pkt.ReqCondSizeVariable()
12460 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12461 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12462 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12464 pkt = NCP(0x5720, "Open/Create File or Subdirectory with Callback", 'file', has_length=0)
12465 pkt.Request((30, 284), [
12466 rec( 8, 1, NameSpace ),
12467 rec( 9, 1, OpenCreateMode ),
12468 rec( 10, 2, SearchAttributesLow ),
12469 rec( 12, 2, ReturnInfoMask ),
12470 rec( 14, 2, ExtendedInfo ),
12471 rec( 16, 4, AttributesDef32 ),
12472 rec( 20, 2, DesiredAccessRights ),
12473 rec( 22, 1, VolumeNumber ),
12474 rec( 23, 4, DirectoryBase ),
12475 rec( 27, 1, HandleFlag ),
12476 rec( 28, 1, PathCount, var="x" ),
12477 rec( 29, (1,255), Path, repeat="x" ),
12478 ], info_str=(Path, "Open or Create with Op-Lock: %s", "/%s"))
12479 pkt.Reply( NO_LENGTH_CHECK, [
12480 rec( 8, 4, FileHandle, BE ),
12481 rec( 12, 1, OpenCreateAction ),
12482 rec( 13, 1, OCRetFlags ),
12483 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12484 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12485 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12486 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12487 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12488 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12489 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12490 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12491 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12492 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12493 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12494 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12495 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12496 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12497 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12498 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12499 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12500 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12501 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12502 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12503 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12504 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12505 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12506 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12507 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12508 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12509 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12510 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12511 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12512 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12513 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12514 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12515 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12516 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12517 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12518 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
12519 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
12520 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12521 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12522 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12523 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12524 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12525 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12526 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12527 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12528 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12529 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12531 pkt.ReqCondSizeVariable()
12532 pkt.CompletionCodes([0x0000, 0x7f00, 0x8000, 0x8101, 0x8401, 0x8501,
12533 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12534 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12536 pkt = NCP(0x5721, "Open/Create File or Subdirectory II with Callback", 'file', has_length=0)
12537 pkt.Request((34, 288), [
12538 rec( 8, 1, NameSpace ),
12539 rec( 9, 1, DataStream ),
12540 rec( 10, 1, OpenCreateMode ),
12541 rec( 11, 1, Reserved ),
12542 rec( 12, 2, SearchAttributesLow ),
12543 rec( 14, 2, Reserved2 ),
12544 rec( 16, 2, ReturnInfoMask ),
12545 rec( 18, 2, ExtendedInfo ),
12546 rec( 20, 4, AttributesDef32 ),
12547 rec( 24, 2, DesiredAccessRights ),
12548 rec( 26, 1, VolumeNumber ),
12549 rec( 27, 4, DirectoryBase ),
12550 rec( 31, 1, HandleFlag ),
12551 rec( 32, 1, PathCount, var="x" ),
12552 rec( 33, (1,255), Path, repeat="x" ),
12553 ], info_str=(FilePath, "Open or Create II with Op-Lock: %s", "/%s"))
12554 pkt.Reply((91,345), [
12555 rec( 8, 4, FileHandle ),
12556 rec( 12, 1, OpenCreateAction ),
12557 rec( 13, 1, OCRetFlags ),
12558 rec( 14, 4, DataStreamSpaceAlloc ),
12559 rec( 18, 6, AttributesStruct ),
12560 rec( 24, 4, DataStreamSize ),
12561 rec( 28, 4, TtlDSDskSpaceAlloc ),
12562 rec( 32, 2, NumberOfDataStreams ),
12563 rec( 34, 2, CreationTime ),
12564 rec( 36, 2, CreationDate ),
12565 rec( 38, 4, CreatorID, BE ),
12566 rec( 42, 2, ModifiedTime ),
12567 rec( 44, 2, ModifiedDate ),
12568 rec( 46, 4, ModifierID, BE ),
12569 rec( 50, 2, LastAccessedDate ),
12570 rec( 52, 2, ArchivedTime ),
12571 rec( 54, 2, ArchivedDate ),
12572 rec( 56, 4, ArchiverID, BE ),
12573 rec( 60, 2, InheritedRightsMask ),
12574 rec( 62, 4, DirectoryEntryNumber ),
12575 rec( 66, 4, DOSDirectoryEntryNumber ),
12576 rec( 70, 4, VolumeNumberLong ),
12577 rec( 74, 4, EADataSize ),
12578 rec( 78, 4, EACount ),
12579 rec( 82, 4, EAKeySize ),
12580 rec( 86, 1, CreatorNameSpaceNumber ),
12581 rec( 87, 3, Reserved3 ),
12582 rec( 90, (1,255), FileName ),
12584 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12585 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12586 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12588 pkt = NCP(0x5722, "Open CallBack Control (Op-Lock)", 'file', has_length=0)
12590 rec( 10, 4, CCFileHandle ),
12591 rec( 14, 1, CCFunction ),
12594 pkt.CompletionCodes([0x0000, 0x8800])
12596 pkt = NCP(0x5723, "Modify DOS Attributes on a File or Subdirectory", 'file', has_length=0)
12597 pkt.Request((28, 282), [
12598 rec( 8, 1, NameSpace ),
12599 rec( 9, 1, Flags ),
12600 rec( 10, 2, SearchAttributesLow ),
12601 rec( 12, 2, ReturnInfoMask ),
12602 rec( 14, 2, ExtendedInfo ),
12603 rec( 16, 4, AttributesDef32 ),
12604 rec( 20, 1, VolumeNumber ),
12605 rec( 21, 4, DirectoryBase ),
12606 rec( 25, 1, HandleFlag ),
12607 rec( 26, 1, PathCount, var="x" ),
12608 rec( 27, (1,255), Path, repeat="x" ),
12609 ], info_str=(Path, "Modify DOS Attributes for: %s", "/%s"))
12611 rec( 8, 4, ItemsChecked ),
12612 rec( 12, 4, ItemsChanged ),
12613 rec( 16, 4, AttributeValidFlag ),
12614 rec( 20, 4, AttributesDef32 ),
12616 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12617 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12618 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12620 pkt = NCP(0x5724, "Log File", 'file', has_length=0)
12621 pkt.Request((28, 282), [
12622 rec( 8, 1, NameSpace ),
12623 rec( 9, 1, Reserved ),
12624 rec( 10, 2, Reserved2 ),
12625 rec( 12, 1, LogFileFlagLow ),
12626 rec( 13, 1, LogFileFlagHigh ),
12627 rec( 14, 2, Reserved2 ),
12628 rec( 16, 4, WaitTime ),
12629 rec( 20, 1, VolumeNumber ),
12630 rec( 21, 4, DirectoryBase ),
12631 rec( 25, 1, HandleFlag ),
12632 rec( 26, 1, PathCount, var="x" ),
12633 rec( 27, (1,255), Path, repeat="x" ),
12634 ], info_str=(Path, "Lock File: %s", "/%s"))
12636 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12637 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12638 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12640 pkt = NCP(0x5725, "Release File", 'file', has_length=0)
12641 pkt.Request((20, 274), [
12642 rec( 8, 1, NameSpace ),
12643 rec( 9, 1, Reserved ),
12644 rec( 10, 2, Reserved2 ),
12645 rec( 12, 1, VolumeNumber ),
12646 rec( 13, 4, DirectoryBase ),
12647 rec( 17, 1, HandleFlag ),
12648 rec( 18, 1, PathCount, var="x" ),
12649 rec( 19, (1,255), Path, repeat="x" ),
12650 ], info_str=(Path, "Release Lock on: %s", "/%s"))
12652 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12653 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12654 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12656 pkt = NCP(0x5726, "Clear File", 'file', has_length=0)
12657 pkt.Request((20, 274), [
12658 rec( 8, 1, NameSpace ),
12659 rec( 9, 1, Reserved ),
12660 rec( 10, 2, Reserved2 ),
12661 rec( 12, 1, VolumeNumber ),
12662 rec( 13, 4, DirectoryBase ),
12663 rec( 17, 1, HandleFlag ),
12664 rec( 18, 1, PathCount, var="x" ),
12665 rec( 19, (1,255), Path, repeat="x" ),
12666 ], info_str=(Path, "Clear File: %s", "/%s"))
12668 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12669 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12670 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12672 pkt = NCP(0x5727, "Get Directory Disk Space Restriction", 'file', has_length=0)
12673 pkt.Request((19, 273), [
12674 rec( 8, 1, NameSpace ),
12675 rec( 9, 2, Reserved2 ),
12676 rec( 11, 1, VolumeNumber ),
12677 rec( 12, 4, DirectoryBase ),
12678 rec( 16, 1, HandleFlag ),
12679 rec( 17, 1, PathCount, var="x" ),
12680 rec( 18, (1,255), Path, repeat="x" ),
12681 ], info_str=(Path, "Get Disk Space Restriction for: %s", "/%s"))
12683 rec( 8, 1, NumberOfEntries, var="x" ),
12684 rec( 9, 9, SpaceStruct, repeat="x" ),
12686 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12687 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12688 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12691 pkt = NCP(0x5728, "Search for File or Subdirectory Set (Extended Errors)", 'file', has_length=0)
12692 pkt.Request((28, 282), [
12693 rec( 8, 1, NameSpace ),
12694 rec( 9, 1, DataStream ),
12695 rec( 10, 2, SearchAttributesLow ),
12696 rec( 12, 2, ReturnInfoMask ),
12697 rec( 14, 2, ExtendedInfo ),
12698 rec( 16, 2, ReturnInfoCount ),
12699 rec( 18, 9, SearchSequence ),
12700 rec( 27, (1,255), SearchPattern ),
12701 ], info_str=(SearchPattern, "Search for: %s", ", %s"))
12702 pkt.Reply(NO_LENGTH_CHECK, [
12703 rec( 8, 9, SearchSequence ),
12704 rec( 17, 1, MoreFlag ),
12705 rec( 18, 2, InfoCount ),
12706 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12707 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12708 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12709 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12710 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12711 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12712 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12713 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12714 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12715 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12716 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12717 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12718 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12719 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12720 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12721 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12722 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12723 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12724 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12725 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12726 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12727 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12728 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12729 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12730 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12731 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12732 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12733 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12734 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12735 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12736 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12737 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12738 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12739 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12740 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12742 pkt.ReqCondSizeVariable()
12743 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12744 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12745 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12747 pkt = NCP(0x5729, "Scan Salvageable Files", 'file', has_length=0)
12748 pkt.Request((24,278), [
12749 rec( 8, 1, NameSpace ),
12750 rec( 9, 1, Reserved ),
12751 rec( 10, 2, CtrlFlags, LE ),
12752 rec( 12, 4, SequenceNumber ),
12753 rec( 16, 1, VolumeNumber ),
12754 rec( 17, 4, DirectoryBase ),
12755 rec( 21, 1, HandleFlag ),
12756 rec( 22, 1, PathCount, var="x" ),
12757 rec( 23, (1,255), Path, repeat="x" ),
12758 ], info_str=(Path, "Scan Deleted Files: %s", "/%s"))
12759 pkt.Reply(NO_LENGTH_CHECK, [
12760 rec( 8, 4, SequenceNumber ),
12761 rec( 12, 4, DirectoryBase ),
12762 rec( 16, 4, ScanItems, var="x" ),
12763 srec(ScanInfoFileName, req_cond="ncp.ctrl_flags==0x0001", repeat="x" ),
12764 srec(ScanInfoFileNoName, req_cond="ncp.ctrl_flags==0x0000", repeat="x" ),
12766 pkt.ReqCondSizeVariable()
12767 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12768 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12769 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12771 pkt = NCP(0x572A, "Purge Salvageable File List", 'file', has_length=0)
12773 rec( 8, 1, NameSpace ),
12774 rec( 9, 1, Reserved ),
12775 rec( 10, 2, PurgeFlags ),
12776 rec( 12, 4, VolumeNumberLong ),
12777 rec( 16, 4, DirectoryBase ),
12778 rec( 20, 4, PurgeCount, var="x" ),
12779 rec( 24, 4, PurgeList, repeat="x" ),
12782 rec( 8, 4, PurgeCount, var="x" ),
12783 rec( 12, 4, PurgeCcode, repeat="x" ),
12785 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12786 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12787 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12789 pkt = NCP(0x572B, "Revoke File Handle Rights", 'file', has_length=0)
12791 rec( 8, 3, Reserved3 ),
12792 rec( 11, 1, RevQueryFlag ),
12793 rec( 12, 4, FileHandle ),
12794 rec( 16, 1, RemoveOpenRights ),
12797 rec( 8, 4, FileHandle ),
12798 rec( 12, 1, OpenRights ),
12800 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12801 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12802 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12804 pkt = NCP(0x572C, "Update File Handle Rights", 'file', has_length=0)
12806 rec( 8, 2, Reserved2 ),
12807 rec( 10, 1, VolumeNumber ),
12808 rec( 11, 1, NameSpace ),
12809 rec( 12, 4, DirectoryNumber ),
12810 rec( 16, 2, AccessRightsMaskWord ),
12811 rec( 18, 2, NewAccessRights ),
12812 rec( 20, 4, FileHandle, BE ),
12815 rec( 8, 4, FileHandle, BE ),
12816 rec( 12, 4, EffectiveRights ),
12818 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12819 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12820 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12822 pkt = NCP(0x5742, "Novell Advanced Auditing Service (NAAS)", 'auditing', has_length=0)
12825 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12826 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12827 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12829 pkt = NCP(0x5801, "Query Volume Audit Status", "auditing", has_length=0)
12831 rec( 8, 4, ConnectionNumber ),
12834 rec(8, 32, NWAuditStatus ),
12836 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12837 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12838 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12840 pkt = NCP(0x5802, "Add User Audit Property", "auditing", has_length=0)
12842 rec(8, 4, AuditIDType ),
12843 rec(12, 4, AuditID ),
12844 rec(16, 4, AuditHandle ),
12845 rec(20, 4, ObjectID ),
12846 rec(24, 1, AuditFlag ),
12849 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12850 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12851 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12853 pkt = NCP(0x5803, "Add Auditor Access", "auditing", has_length=0)
12856 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12857 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12858 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12860 pkt = NCP(0x5804, "Change Auditor Volume Password", "auditing", has_length=0)
12863 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12864 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12865 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12867 pkt = NCP(0x5805, "Check Auditor Access", "auditing", has_length=0)
12870 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12871 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12872 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12874 pkt = NCP(0x5806, "Delete User Audit Property", "auditing", has_length=0)
12877 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12878 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12879 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12881 pkt = NCP(0x5807, "Disable Auditing On A Volume", "auditing", has_length=0)
12884 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12885 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12886 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12888 pkt = NCP(0x5808, "Enable Auditing On A Volume", "auditing", has_length=0)
12891 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12892 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12893 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12895 pkt = NCP(0x5809, "Query User Being Audited", "auditing", has_length=0)
12898 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12899 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12900 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12902 pkt = NCP(0x580A, "Read Audit Bit Map", "auditing", has_length=0)
12905 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12906 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12907 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12909 pkt = NCP(0x580B, "Read Audit File Configuration Header", "auditing", has_length=0)
12912 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12913 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12914 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12916 pkt = NCP(0x580D, "Remove Auditor Access", "auditing", has_length=0)
12919 pkt.CompletionCodes([0x0000, 0x300, 0x8000, 0x8101, 0x8401, 0x8501,
12920 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12921 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12923 pkt = NCP(0x580E, "Reset Audit File", "auditing", has_length=0)
12926 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12927 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12928 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12931 pkt = NCP(0x580F, "Auditing NCP", "auditing", has_length=0)
12934 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12935 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12936 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12938 pkt = NCP(0x5810, "Write Audit Bit Map", "auditing", has_length=0)
12941 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12942 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12943 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12945 pkt = NCP(0x5811, "Write Audit File Configuration Header", "auditing", has_length=0)
12948 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12949 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12950 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12952 pkt = NCP(0x5812, "Change Auditor Volume Password2", "auditing", has_length=0)
12955 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12956 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12957 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12959 pkt = NCP(0x5813, "Return Audit Flags", "auditing", has_length=0)
12962 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12963 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12964 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12966 pkt = NCP(0x5814, "Close Old Audit File", "auditing", has_length=0)
12969 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12970 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12971 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12973 pkt = NCP(0x5816, "Check Level Two Access", "auditing", has_length=0)
12976 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12977 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12978 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12980 pkt = NCP(0x5817, "Return Old Audit File List", "auditing", has_length=0)
12983 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12984 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12985 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12987 pkt = NCP(0x5818, "Init Audit File Reads", "auditing", has_length=0)
12990 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12991 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12992 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12994 pkt = NCP(0x5819, "Read Auditing File", "auditing", has_length=0)
12997 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12998 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12999 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13001 pkt = NCP(0x581A, "Delete Old Audit File", "auditing", has_length=0)
13004 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13005 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13006 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13008 pkt = NCP(0x581E, "Restart Volume auditing", "auditing", has_length=0)
13011 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13012 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13013 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13015 pkt = NCP(0x581F, "Set Volume Password", "auditing", has_length=0)
13018 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13019 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13020 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13022 pkt = NCP(0x5A01, "Parse Tree", 'file')
13024 rec( 10, 4, InfoMask ),
13025 rec( 14, 4, Reserved4 ),
13026 rec( 18, 4, Reserved4 ),
13027 rec( 22, 4, limbCount ),
13030 rec( 8, 4, limbCount ),
13031 rec( 12, 4, ItemsCount ),
13032 rec( 16, 4, nextLimbScanNum ),
13033 rec( 20, 4, CompletionCode ),
13034 rec( 24, 1, FolderFlag ),
13035 rec( 25, 3, Reserved ),
13036 rec( 28, 4, DirectoryBase ),
13038 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13039 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13040 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13042 pkt = NCP(0x5A0A, "Get Reference Count from Dir Entry Number", 'file')
13044 rec( 10, 4, VolumeNumberLong ),
13045 rec( 14, 4, DirectoryBase ),
13046 rec( 18, 1, NameSpace ),
13049 rec( 8, 4, ReferenceCount ),
13051 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13052 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13053 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13055 pkt = NCP(0x5A0B, "Get Reference Count from Dir Handle", 'file')
13057 rec( 10, 4, DirHandle ),
13060 rec( 8, 4, ReferenceCount ),
13062 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13063 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13064 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13066 pkt = NCP(0x5A0C, "Set Compressed File Size", 'file')
13068 rec( 10, 6, FileHandle ),
13069 rec( 16, 4, SuggestedFileSize ),
13072 rec( 8, 4, OldFileSize ),
13073 rec( 12, 4, NewFileSize ),
13075 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13076 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13077 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13078 # 2222/5A80, 90/128
13079 pkt = NCP(0x5A80, "Move File Data To Data Migration", 'file')
13081 rec( 10, 4, VolumeNumberLong ),
13082 rec( 14, 4, DirectoryEntryNumber ),
13083 rec( 18, 1, NameSpace ),
13084 rec( 19, 3, Reserved ),
13085 rec( 22, 4, SupportModuleID ),
13086 rec( 26, 1, DMFlags ),
13089 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13090 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13091 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13092 # 2222/5A81, 90/129
13093 pkt = NCP(0x5A81, "Data Migration File Information", 'file')
13095 rec( 10, 4, VolumeNumberLong ),
13096 rec( 14, 4, DirectoryEntryNumber ),
13097 rec( 18, 1, NameSpace ),
13100 rec( 8, 4, SupportModuleID ),
13101 rec( 12, 4, RestoreTime ),
13102 rec( 16, 4, DMInfoEntries, var="x" ),
13103 rec( 20, 4, DataSize, repeat="x" ),
13105 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13106 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13107 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13108 # 2222/5A82, 90/130
13109 pkt = NCP(0x5A82, "Volume Data Migration Status", 'file')
13111 rec( 10, 4, VolumeNumberLong ),
13112 rec( 14, 4, SupportModuleID ),
13115 rec( 8, 4, NumOfFilesMigrated ),
13116 rec( 12, 4, TtlMigratedSize ),
13117 rec( 16, 4, SpaceUsed ),
13118 rec( 20, 4, LimboUsed ),
13119 rec( 24, 4, SpaceMigrated ),
13120 rec( 28, 4, FileLimbo ),
13122 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13123 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13124 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13125 # 2222/5A83, 90/131
13126 pkt = NCP(0x5A83, "Migrator Status Info", 'file')
13129 rec( 8, 1, DMPresentFlag ),
13130 rec( 9, 3, Reserved3 ),
13131 rec( 12, 4, DMmajorVersion ),
13132 rec( 16, 4, DMminorVersion ),
13134 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13135 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13136 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13137 # 2222/5A84, 90/132
13138 pkt = NCP(0x5A84, "Data Migration Support Module Information", 'file')
13140 rec( 10, 1, DMInfoLevel ),
13141 rec( 11, 3, Reserved3),
13142 rec( 14, 4, SupportModuleID ),
13144 pkt.Reply(NO_LENGTH_CHECK, [
13145 srec( DMInfoLevel0, req_cond="ncp.dm_info_level == 0x00" ),
13146 srec( DMInfoLevel1, req_cond="ncp.dm_info_level == 0x01" ),
13147 srec( DMInfoLevel2, req_cond="ncp.dm_info_level == 0x02" ),
13149 pkt.ReqCondSizeVariable()
13150 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13151 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13152 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13153 # 2222/5A85, 90/133
13154 pkt = NCP(0x5A85, "Move File Data From Data Migration", 'file')
13156 rec( 10, 4, VolumeNumberLong ),
13157 rec( 14, 4, DirectoryEntryNumber ),
13158 rec( 18, 1, NameSpace ),
13161 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13162 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13163 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13164 # 2222/5A86, 90/134
13165 pkt = NCP(0x5A86, "Get/Set Default Read-Write Support Module ID", 'file')
13167 rec( 10, 1, GetSetFlag ),
13168 rec( 11, 3, Reserved3 ),
13169 rec( 14, 4, SupportModuleID ),
13172 rec( 8, 4, SupportModuleID ),
13174 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13175 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13176 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13177 # 2222/5A87, 90/135
13178 pkt = NCP(0x5A87, "Data Migration Support Module Capacity Request", 'file')
13180 rec( 10, 4, SupportModuleID ),
13181 rec( 14, 4, VolumeNumberLong ),
13182 rec( 18, 4, DirectoryBase ),
13185 rec( 8, 4, BlockSizeInSectors ),
13186 rec( 12, 4, TotalBlocks ),
13187 rec( 16, 4, UsedBlocks ),
13189 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13190 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13191 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13192 # 2222/5A88, 90/136
13193 pkt = NCP(0x5A88, "RTDM Request", 'file')
13195 rec( 10, 4, Verb ),
13196 rec( 14, 1, VerbData ),
13199 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13200 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13201 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13203 pkt = NCP(0x5C, "SecretStore Services", 'file')
13204 #Need info on this packet structure and SecretStore Verbs
13207 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13208 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13209 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13212 pkt = NCP(0x5e, "NMAS Communications Packet", 'comm')
13215 pkt.CompletionCodes([0x0000, 0xfb09])
13217 pkt = NCP(0x61, "Get Big Packet NCP Max Packet Size", 'comm')
13219 rec( 7, 2, ProposedMaxSize, BE ),
13220 rec( 9, 1, SecurityFlag ),
13221 ],info_str=(ProposedMaxSize, "Get Big Max Packet Size - %d", ", %d"))
13223 rec( 8, 2, AcceptedMaxSize, BE ),
13224 rec( 10, 2, EchoSocket, BE ),
13225 rec( 12, 1, SecurityFlag ),
13227 pkt.CompletionCodes([0x0000])
13229 pkt = NCP(0x63, "Undocumented Packet Burst", 'comm')
13232 pkt.CompletionCodes([0x0000])
13234 pkt = NCP(0x64, "Undocumented Packet Burst", 'comm')
13237 pkt.CompletionCodes([0x0000])
13239 pkt = NCP(0x65, "Packet Burst Connection Request", 'comm')
13241 rec( 7, 4, LocalConnectionID ),
13242 rec( 11, 4, LocalMaxPacketSize ),
13243 rec( 15, 2, LocalTargetSocket ),
13244 rec( 17, 4, LocalMaxSendSize ),
13245 rec( 21, 4, LocalMaxRecvSize ),
13248 rec( 8, 4, RemoteTargetID ),
13249 rec( 12, 4, RemoteMaxPacketSize ),
13251 pkt.CompletionCodes([0x0000])
13253 pkt = NCP(0x66, "Undocumented Packet Burst", 'comm')
13256 pkt.CompletionCodes([0x0000])
13258 pkt = NCP(0x67, "Undocumented Packet Burst", 'comm')
13261 pkt.CompletionCodes([0x0000])
13262 # 2222/6801, 104/01
13263 pkt = NCP(0x6801, "Ping for NDS NCP", "nds", has_length=0)
13266 pkt.ReqCondSizeVariable()
13267 pkt.CompletionCodes([0x0000, 0x8100, 0xfb04, 0xfe0c])
13268 # 2222/6802, 104/02
13270 # XXX - if FraggerHandle is not 0xffffffff, this is not the
13271 # first fragment, so we can only dissect this by reassembling;
13272 # the fields after "Fragment Handle" are bogus for non-0xffffffff
13273 # fragments, so we shouldn't dissect them.
13275 # XXX - are there TotalRequest requests in the packet, and
13276 # does each of them have NDSFlags and NDSVerb fields, or
13277 # does only the first one have it?
13279 pkt = NCP(0x6802, "Send NDS Fragmented Request/Reply", "nds", has_length=0)
13282 pkt.ReqCondSizeVariable()
13283 pkt.CompletionCodes([0x0000])
13284 # 2222/6803, 104/03
13285 pkt = NCP(0x6803, "Fragment Close", "nds", has_length=0)
13287 rec( 8, 4, FraggerHandle ),
13290 pkt.CompletionCodes([0x0000, 0xff00])
13291 # 2222/6804, 104/04
13292 pkt = NCP(0x6804, "Return Bindery Context", "nds", has_length=0)
13294 pkt.Reply((9, 263), [
13295 rec( 8, (1,255), binderyContext ),
13297 pkt.CompletionCodes([0x0000, 0xfe0c, 0xff00])
13298 # 2222/6805, 104/05
13299 pkt = NCP(0x6805, "Monitor NDS Connection", "nds", has_length=0)
13302 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13303 # 2222/6806, 104/06
13304 pkt = NCP(0x6806, "Return NDS Statistics", "nds", has_length=0)
13306 rec( 8, 2, NDSRequestFlags ),
13309 #Need to investigate how to decode Statistics Return Value
13310 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13311 # 2222/6807, 104/07
13312 pkt = NCP(0x6807, "Clear NDS Statistics", "nds", has_length=0)
13315 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13316 # 2222/6808, 104/08
13317 pkt = NCP(0x6808, "Reload NDS Software", "nds", has_length=0)
13320 rec( 8, 4, NDSStatus ),
13322 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13323 # 2222/68C8, 104/200
13324 pkt = NCP(0x68C8, "Query Container Audit Status", "auditing", has_length=0)
13326 rec( 8, 4, ConnectionNumber ),
13327 # rec( 12, 4, AuditIDType, LE ),
13328 # rec( 16, 4, AuditID ),
13329 # rec( 20, 2, BufferSize ),
13332 rec(8, 32, NWAuditStatus ),
13334 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13335 # 2222/68CA, 104/202
13336 pkt = NCP(0x68CA, "Add Auditor Access", "auditing", has_length=0)
13339 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13340 # 2222/68CB, 104/203
13341 pkt = NCP(0x68CB, "Change Auditor Container Password", "auditing", has_length=0)
13344 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13345 # 2222/68CC, 104/204
13346 pkt = NCP(0x68CC, "Check Auditor Access", "auditing", has_length=0)
13349 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13350 # 2222/68CE, 104/206
13351 pkt = NCP(0x680CE, "Disable Container Auditing", "auditing", has_length=0)
13354 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13355 # 2222/68CF, 104/207
13356 pkt = NCP(0x68CF, "Enable Container Auditing", "auditing", has_length=0)
13359 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13360 # 2222/68D1, 104/209
13361 pkt = NCP(0x68D1, "Read Audit File Header", "auditing", has_length=0)
13364 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13365 # 2222/68D3, 104/211
13366 pkt = NCP(0x68D3, "Remove Auditor Access", "auditing", has_length=0)
13369 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13370 # 2222/68D4, 104/212
13371 pkt = NCP(0x68D4, "Reset Audit File", "auditing", has_length=0)
13374 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13375 # 2222/68D6, 104/214
13376 pkt = NCP(0x68D6, "Write Audit File Configuration Header", "auditing", has_length=0)
13379 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13380 # 2222/68D7, 104/215
13381 pkt = NCP(0x68D7, "Change Auditor Container Password2", "auditing", has_length=0)
13384 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13385 # 2222/68D8, 104/216
13386 pkt = NCP(0x68D8, "Return Audit Flags", "auditing", has_length=0)
13389 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13390 # 2222/68D9, 104/217
13391 pkt = NCP(0x68D9, "Close Old Audit File", "auditing", has_length=0)
13394 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13395 # 2222/68DB, 104/219
13396 pkt = NCP(0x68DB, "Check Level Two Access", "auditing", has_length=0)
13399 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13400 # 2222/68DC, 104/220
13401 pkt = NCP(0x68DC, "Check Object Audited", "auditing", has_length=0)
13404 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13405 # 2222/68DD, 104/221
13406 pkt = NCP(0x68DD, "Change Object Audited", "auditing", has_length=0)
13409 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13410 # 2222/68DE, 104/222
13411 pkt = NCP(0x68DE, "Return Old Audit File List", "auditing", has_length=0)
13414 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13415 # 2222/68DF, 104/223
13416 pkt = NCP(0x68DF, "Init Audit File Reads", "auditing", has_length=0)
13419 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13420 # 2222/68E0, 104/224
13421 pkt = NCP(0x68E0, "Read Auditing File", "auditing", has_length=0)
13424 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13425 # 2222/68E1, 104/225
13426 pkt = NCP(0x68E1, "Delete Old Audit File", "auditing", has_length=0)
13429 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13430 # 2222/68E5, 104/229
13431 pkt = NCP(0x68E5, "Set Audit Password", "auditing", has_length=0)
13434 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13435 # 2222/68E7, 104/231
13436 pkt = NCP(0x68E7, "External Audit Append To File", "auditing", has_length=0)
13439 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13441 pkt = NCP(0x69, "Log File", 'file')
13442 pkt.Request( (12, 267), [
13443 rec( 7, 1, DirHandle ),
13444 rec( 8, 1, LockFlag ),
13445 rec( 9, 2, TimeoutLimit ),
13446 rec( 11, (1, 256), FilePath ),
13447 ], info_str=(FilePath, "Log File: %s", "/%s"))
13449 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x9600, 0xfe0d, 0xff01])
13451 pkt = NCP(0x6A, "Lock File Set", 'file')
13453 rec( 7, 2, TimeoutLimit ),
13456 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x9600, 0xfe0d, 0xff01])
13458 pkt = NCP(0x6B, "Log Logical Record", 'file')
13459 pkt.Request( (11, 266), [
13460 rec( 7, 1, LockFlag ),
13461 rec( 8, 2, TimeoutLimit ),
13462 rec( 10, (1, 256), SynchName ),
13463 ], info_str=(SynchName, "Log Logical Record: %s", ", %s"))
13465 pkt.CompletionCodes([0x0000, 0x7f00, 0x9600, 0xfe0d, 0xff01])
13467 pkt = NCP(0x6C, "Log Logical Record", 'file')
13469 rec( 7, 1, LockFlag ),
13470 rec( 8, 2, TimeoutLimit ),
13473 pkt.CompletionCodes([0x0000, 0x7f00, 0x9600, 0xfe0d, 0xff01])
13475 pkt = NCP(0x6D, "Log Physical Record", 'file')
13477 rec( 7, 1, LockFlag ),
13478 rec( 8, 6, FileHandle ),
13479 rec( 14, 4, LockAreasStartOffset ),
13480 rec( 18, 4, LockAreaLen ),
13481 rec( 22, 2, LockTimeout ),
13484 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
13486 pkt = NCP(0x6E, "Lock Physical Record Set", 'file')
13488 rec( 7, 1, LockFlag ),
13489 rec( 8, 2, LockTimeout ),
13492 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
13493 # 2222/6F00, 111/00
13494 pkt = NCP(0x6F00, "Open/Create a Semaphore", 'file', has_length=0)
13495 pkt.Request((10,521), [
13496 rec( 8, 1, InitialSemaphoreValue ),
13497 rec( 9, (1, 512), SemaphoreName ),
13498 ], info_str=(SemaphoreName, "Open/Create Semaphore: %s", ", %s"))
13500 rec( 8, 4, SemaphoreHandle ),
13501 rec( 12, 1, SemaphoreOpenCount ),
13503 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
13504 # 2222/6F01, 111/01
13505 pkt = NCP(0x6F01, "Examine Semaphore", 'file', has_length=0)
13507 rec( 8, 4, SemaphoreHandle ),
13510 rec( 8, 1, SemaphoreValue ),
13511 rec( 9, 1, SemaphoreOpenCount ),
13513 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
13514 # 2222/6F02, 111/02
13515 pkt = NCP(0x6F02, "Wait On (P) Semaphore", 'file', has_length=0)
13517 rec( 8, 4, SemaphoreHandle ),
13518 rec( 12, 2, LockTimeout ),
13521 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13522 # 2222/6F03, 111/03
13523 pkt = NCP(0x6F03, "Signal (V) Semaphore", 'file', has_length=0)
13525 rec( 8, 4, SemaphoreHandle ),
13528 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13529 # 2222/6F04, 111/04
13530 pkt = NCP(0x6F04, "Close Semaphore", 'file', has_length=0)
13532 rec( 8, 4, SemaphoreHandle ),
13535 rec( 8, 1, SemaphoreOpenCount ),
13536 rec( 9, 1, SemaphoreShareCount ),
13538 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13539 # 2222/7201, 114/01
13540 pkt = NCP(0x7201, "Timesync Get Time", 'file')
13543 rec( 8, 12, theTimeStruct ),
13544 rec(20, 8, eventOffset ),
13545 rec(28, 4, eventTime ),
13547 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13548 # 2222/7202, 114/02
13549 pkt = NCP(0x7202, "Timesync Exchange Time", 'file')
13550 pkt.Request((63,112), [
13551 rec( 10, 4, protocolFlags ),
13552 rec( 14, 4, nodeFlags ),
13553 rec( 18, 8, sourceOriginateTime ),
13554 rec( 26, 8, targetReceiveTime ),
13555 rec( 34, 8, targetTransmitTime ),
13556 rec( 42, 8, sourceReturnTime ),
13557 rec( 50, 8, eventOffset ),
13558 rec( 58, 4, eventTime ),
13559 rec( 62, (1,50), ServerNameLen ),
13560 ], info_str=(ServerNameLen, "Timesync Exchange Time: %s", ", %s"))
13561 pkt.Reply((64,113), [
13562 rec( 8, 3, Reserved3 ),
13563 rec( 11, 4, protocolFlags ),
13564 rec( 15, 4, nodeFlags ),
13565 rec( 19, 8, sourceOriginateTime ),
13566 rec( 27, 8, targetReceiveTime ),
13567 rec( 35, 8, targetTransmitTime ),
13568 rec( 43, 8, sourceReturnTime ),
13569 rec( 51, 8, eventOffset ),
13570 rec( 59, 4, eventTime ),
13571 rec( 63, (1,50), ServerNameLen ),
13573 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13574 # 2222/7205, 114/05
13575 pkt = NCP(0x7205, "Timesync Get Server List", 'file')
13577 rec( 10, 4, StartNumber ),
13580 rec( 8, 4, nameType ),
13581 rec( 12, 48, ServerName ),
13582 rec( 60, 4, serverListFlags ),
13583 rec( 64, 2, startNumberFlag ),
13585 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13586 # 2222/7206, 114/06
13587 pkt = NCP(0x7206, "Timesync Set Server List", 'file')
13589 rec( 10, 4, StartNumber ),
13592 rec( 8, 4, nameType ),
13593 rec( 12, 48, ServerName ),
13594 rec( 60, 4, serverListFlags ),
13595 rec( 64, 2, startNumberFlag ),
13597 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13598 # 2222/720C, 114/12
13599 pkt = NCP(0x720C, "Timesync Get Version", 'file')
13602 rec( 8, 4, version ),
13604 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13605 # 2222/7B01, 123/01
13606 pkt = NCP(0x7B01, "Get Cache Information", 'stats')
13608 rec(10, 1, VersionNumber),
13609 rec(11, 1, RevisionNumber),
13612 rec(8, 4, CurrentServerTime, LE),
13613 rec(12, 1, VConsoleVersion ),
13614 rec(13, 1, VConsoleRevision ),
13615 rec(14, 2, Reserved2 ),
13616 rec(16, 104, Counters ),
13617 rec(120, 40, ExtraCacheCntrs ),
13618 rec(160, 40, MemoryCounters ),
13619 rec(200, 48, TrendCounters ),
13620 rec(248, 40, CacheInfo ),
13622 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xff00])
13623 # 2222/7B02, 123/02
13624 pkt = NCP(0x7B02, "Get File Server Information", 'stats')
13627 rec(8, 4, CurrentServerTime ),
13628 rec(12, 1, VConsoleVersion ),
13629 rec(13, 1, VConsoleRevision ),
13630 rec(14, 2, Reserved2 ),
13631 rec(16, 4, NCPStaInUseCnt ),
13632 rec(20, 4, NCPPeakStaInUse ),
13633 rec(24, 4, NumOfNCPReqs ),
13634 rec(28, 4, ServerUtilization ),
13635 rec(32, 96, ServerInfo ),
13636 rec(128, 22, FileServerCounters ),
13638 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13639 # 2222/7B03, 123/03
13640 pkt = NCP(0x7B03, "NetWare File System Information", 'stats')
13642 rec(10, 1, FileSystemID ),
13645 rec(8, 4, CurrentServerTime ),
13646 rec(12, 1, VConsoleVersion ),
13647 rec(13, 1, VConsoleRevision ),
13648 rec(14, 2, Reserved2 ),
13649 rec(16, 52, FileSystemInfo ),
13651 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13652 # 2222/7B04, 123/04
13653 pkt = NCP(0x7B04, "User Information", 'stats')
13655 rec(10, 4, ConnectionNumber ),
13657 pkt.Reply((85, 132), [
13658 rec(8, 4, CurrentServerTime ),
13659 rec(12, 1, VConsoleVersion ),
13660 rec(13, 1, VConsoleRevision ),
13661 rec(14, 2, Reserved2 ),
13662 rec(16, 68, UserInformation ),
13663 rec(84, (1, 48), UserName ),
13665 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13666 # 2222/7B05, 123/05
13667 pkt = NCP(0x7B05, "Packet Burst Information", 'stats')
13670 rec(8, 4, CurrentServerTime ),
13671 rec(12, 1, VConsoleVersion ),
13672 rec(13, 1, VConsoleRevision ),
13673 rec(14, 2, Reserved2 ),
13674 rec(16, 200, PacketBurstInformation ),
13676 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13677 # 2222/7B06, 123/06
13678 pkt = NCP(0x7B06, "IPX SPX Information", 'stats')
13681 rec(8, 4, CurrentServerTime ),
13682 rec(12, 1, VConsoleVersion ),
13683 rec(13, 1, VConsoleRevision ),
13684 rec(14, 2, Reserved2 ),
13685 rec(16, 34, IPXInformation ),
13686 rec(50, 44, SPXInformation ),
13688 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13689 # 2222/7B07, 123/07
13690 pkt = NCP(0x7B07, "Garbage Collection Information", 'stats')
13693 rec(8, 4, CurrentServerTime ),
13694 rec(12, 1, VConsoleVersion ),
13695 rec(13, 1, VConsoleRevision ),
13696 rec(14, 2, Reserved2 ),
13697 rec(16, 4, FailedAllocReqCnt ),
13698 rec(20, 4, NumberOfAllocs ),
13699 rec(24, 4, NoMoreMemAvlCnt ),
13700 rec(28, 4, NumOfGarbageColl ),
13701 rec(32, 4, FoundSomeMem ),
13702 rec(36, 4, NumOfChecks ),
13704 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13705 # 2222/7B08, 123/08
13706 pkt = NCP(0x7B08, "CPU Information", 'stats')
13708 rec(10, 4, CPUNumber ),
13711 rec(8, 4, CurrentServerTime ),
13712 rec(12, 1, VConsoleVersion ),
13713 rec(13, 1, VConsoleRevision ),
13714 rec(14, 2, Reserved2 ),
13715 rec(16, 4, NumberOfCPUs ),
13716 rec(20, 31, CPUInformation ),
13718 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13719 # 2222/7B09, 123/09
13720 pkt = NCP(0x7B09, "Volume Switch Information", 'stats')
13722 rec(10, 4, StartNumber )
13725 rec(8, 4, CurrentServerTime ),
13726 rec(12, 1, VConsoleVersion ),
13727 rec(13, 1, VConsoleRevision ),
13728 rec(14, 2, Reserved2 ),
13729 rec(16, 4, TotalLFSCounters ),
13730 rec(20, 4, CurrentLFSCounters, var="x"),
13731 rec(24, 4, LFSCounters, repeat="x"),
13733 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13734 # 2222/7B0A, 123/10
13735 pkt = NCP(0x7B0A, "Get NLM Loaded List", 'stats')
13737 rec(10, 4, StartNumber )
13740 rec(8, 4, CurrentServerTime ),
13741 rec(12, 1, VConsoleVersion ),
13742 rec(13, 1, VConsoleRevision ),
13743 rec(14, 2, Reserved2 ),
13744 rec(16, 4, NLMcount ),
13745 rec(20, 4, NLMsInList, var="x" ),
13746 rec(24, 4, NLMNumbers, repeat="x" ),
13748 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13749 # 2222/7B0B, 123/11
13750 pkt = NCP(0x7B0B, "NLM Information", 'stats')
13752 rec(10, 4, NLMNumber ),
13754 pkt.Reply((79,841), [
13755 rec(8, 4, CurrentServerTime ),
13756 rec(12, 1, VConsoleVersion ),
13757 rec(13, 1, VConsoleRevision ),
13758 rec(14, 2, Reserved2 ),
13759 rec(16, 60, NLMInformation ),
13760 rec(76, (1,255), FileName ),
13761 rec(-1, (1,255), Name ),
13762 rec(-1, (1,255), Copyright ),
13764 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13765 # 2222/7B0C, 123/12
13766 pkt = NCP(0x7B0C, "Get Directory Cache Information", 'stats')
13769 rec(8, 4, CurrentServerTime ),
13770 rec(12, 1, VConsoleVersion ),
13771 rec(13, 1, VConsoleRevision ),
13772 rec(14, 2, Reserved2 ),
13773 rec(16, 56, DirCacheInfo ),
13775 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13776 # 2222/7B0D, 123/13
13777 pkt = NCP(0x7B0D, "Get Operating System Version Information", 'stats')
13780 rec(8, 4, CurrentServerTime ),
13781 rec(12, 1, VConsoleVersion ),
13782 rec(13, 1, VConsoleRevision ),
13783 rec(14, 2, Reserved2 ),
13784 rec(16, 1, OSMajorVersion ),
13785 rec(17, 1, OSMinorVersion ),
13786 rec(18, 1, OSRevision ),
13787 rec(19, 1, AccountVersion ),
13788 rec(20, 1, VAPVersion ),
13789 rec(21, 1, QueueingVersion ),
13790 rec(22, 1, SecurityRestrictionVersion ),
13791 rec(23, 1, InternetBridgeVersion ),
13792 rec(24, 4, MaxNumOfVol ),
13793 rec(28, 4, MaxNumOfConn ),
13794 rec(32, 4, MaxNumOfUsers ),
13795 rec(36, 4, MaxNumOfNmeSps ),
13796 rec(40, 4, MaxNumOfLANS ),
13797 rec(44, 4, MaxNumOfMedias ),
13798 rec(48, 4, MaxNumOfStacks ),
13799 rec(52, 4, MaxDirDepth ),
13800 rec(56, 4, MaxDataStreams ),
13801 rec(60, 4, MaxNumOfSpoolPr ),
13802 rec(64, 4, ServerSerialNumber ),
13803 rec(68, 2, ServerAppNumber ),
13805 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13806 # 2222/7B0E, 123/14
13807 pkt = NCP(0x7B0E, "Get Active Connection List by Type", 'stats')
13809 rec(10, 4, StartConnNumber ),
13810 rec(14, 1, ConnectionType ),
13813 rec(8, 4, CurrentServerTime ),
13814 rec(12, 1, VConsoleVersion ),
13815 rec(13, 1, VConsoleRevision ),
13816 rec(14, 2, Reserved2 ),
13817 rec(16, 512, ActiveConnBitList ),
13819 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfd01, 0xff00])
13820 # 2222/7B0F, 123/15
13821 pkt = NCP(0x7B0F, "Get NLM Resource Tag List", 'stats')
13823 rec(10, 4, NLMNumber ),
13824 rec(14, 4, NLMStartNumber ),
13827 rec(8, 4, CurrentServerTime ),
13828 rec(12, 1, VConsoleVersion ),
13829 rec(13, 1, VConsoleRevision ),
13830 rec(14, 2, Reserved2 ),
13831 rec(16, 4, TtlNumOfRTags ),
13832 rec(20, 4, CurNumOfRTags ),
13833 rec(24, 13, RTagStructure ),
13835 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13836 # 2222/7B10, 123/16
13837 pkt = NCP(0x7B10, "Enumerate Connection Information from Connection List", 'stats')
13839 rec(10, 1, EnumInfoMask),
13840 rec(11, 3, Reserved3),
13841 rec(14, 4, itemsInList, var="x"),
13842 rec(18, 4, connList, repeat="x"),
13844 pkt.Reply(NO_LENGTH_CHECK, [
13845 rec(8, 4, CurrentServerTime ),
13846 rec(12, 1, VConsoleVersion ),
13847 rec(13, 1, VConsoleRevision ),
13848 rec(14, 2, Reserved2 ),
13849 rec(16, 4, ItemsInPacket ),
13850 srec(netAddr, req_cond="ncp.enum_info_transport==TRUE"),
13851 srec(timeInfo, req_cond="ncp.enum_info_time==TRUE"),
13852 srec(nameInfo, req_cond="ncp.enum_info_name==TRUE"),
13853 srec(lockInfo, req_cond="ncp.enum_info_lock==TRUE"),
13854 srec(printInfo, req_cond="ncp.enum_info_print==TRUE"),
13855 srec(statsInfo, req_cond="ncp.enum_info_stats==TRUE"),
13856 srec(acctngInfo, req_cond="ncp.enum_info_account==TRUE"),
13857 srec(authInfo, req_cond="ncp.enum_info_auth==TRUE"),
13859 pkt.ReqCondSizeVariable()
13860 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13861 # 2222/7B11, 123/17
13862 pkt = NCP(0x7B11, "Enumerate NCP Service Network Addresses", 'stats')
13864 rec(10, 4, SearchNumber ),
13867 rec(8, 4, CurrentServerTime ),
13868 rec(12, 1, VConsoleVersion ),
13869 rec(13, 1, VConsoleRevision ),
13870 rec(14, 2, ServerInfoFlags ),
13871 rec(16, 16, GUID ),
13872 rec(32, 4, NextSearchNum ),
13873 rec(36, 4, ItemsInPacket, var="x"),
13874 rec(40, 20, NCPNetworkAddress, repeat="x" ),
13876 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13877 # 2222/7B14, 123/20
13878 pkt = NCP(0x7B14, "Active LAN Board List", 'stats')
13880 rec(10, 4, StartNumber ),
13883 rec(8, 4, CurrentServerTime ),
13884 rec(12, 1, VConsoleVersion ),
13885 rec(13, 1, VConsoleRevision ),
13886 rec(14, 2, Reserved2 ),
13887 rec(16, 4, MaxNumOfLANS ),
13888 rec(20, 4, ItemsInPacket, var="x"),
13889 rec(24, 4, BoardNumbers, repeat="x"),
13891 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13892 # 2222/7B15, 123/21
13893 pkt = NCP(0x7B15, "LAN Configuration Information", 'stats')
13895 rec(10, 4, BoardNumber ),
13898 rec(8, 4, CurrentServerTime ),
13899 rec(12, 1, VConsoleVersion ),
13900 rec(13, 1, VConsoleRevision ),
13901 rec(14, 2, Reserved2 ),
13902 rec(16,136, LANConfigInfo ),
13904 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13905 # 2222/7B16, 123/22
13906 pkt = NCP(0x7B16, "LAN Common Counters Information", 'stats')
13908 rec(10, 4, BoardNumber ),
13909 rec(14, 4, BlockNumber ),
13912 rec(8, 4, CurrentServerTime ),
13913 rec(12, 1, VConsoleVersion ),
13914 rec(13, 1, VConsoleRevision ),
13915 rec(14, 1, StatMajorVersion ),
13916 rec(15, 1, StatMinorVersion ),
13917 rec(16, 4, TotalCommonCnts ),
13918 rec(20, 4, TotalCntBlocks ),
13919 rec(24, 4, CustomCounters ),
13920 rec(28, 4, NextCntBlock ),
13921 rec(32, 54, CommonLanStruc ),
13923 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13924 # 2222/7B17, 123/23
13925 pkt = NCP(0x7B17, "LAN Custom Counters Information", 'stats')
13927 rec(10, 4, BoardNumber ),
13928 rec(14, 4, StartNumber ),
13931 rec(8, 4, CurrentServerTime ),
13932 rec(12, 1, VConsoleVersion ),
13933 rec(13, 1, VConsoleRevision ),
13934 rec(14, 2, Reserved2 ),
13935 rec(16, 4, NumOfCCinPkt, var="x"),
13936 rec(20, 5, CustomCntsInfo, repeat="x"),
13938 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13939 # 2222/7B18, 123/24
13940 pkt = NCP(0x7B18, "LAN Name Information", 'stats')
13942 rec(10, 4, BoardNumber ),
13945 rec(8, 4, CurrentServerTime ),
13946 rec(12, 1, VConsoleVersion ),
13947 rec(13, 1, VConsoleRevision ),
13948 rec(14, 2, Reserved2 ),
13949 rec(16, 3, BoardNameStruct ),
13951 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13952 # 2222/7B19, 123/25
13953 pkt = NCP(0x7B19, "LSL Information", 'stats')
13956 rec(8, 4, CurrentServerTime ),
13957 rec(12, 1, VConsoleVersion ),
13958 rec(13, 1, VConsoleRevision ),
13959 rec(14, 2, Reserved2 ),
13960 rec(16, 74, LSLInformation ),
13962 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13963 # 2222/7B1A, 123/26
13964 pkt = NCP(0x7B1A, "LSL Logical Board Statistics", 'stats')
13966 rec(10, 4, BoardNumber ),
13969 rec(8, 4, CurrentServerTime ),
13970 rec(12, 1, VConsoleVersion ),
13971 rec(13, 1, VConsoleRevision ),
13972 rec(14, 2, Reserved2 ),
13973 rec(16, 4, LogTtlTxPkts ),
13974 rec(20, 4, LogTtlRxPkts ),
13975 rec(24, 4, UnclaimedPkts ),
13977 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13978 # 2222/7B1B, 123/27
13979 pkt = NCP(0x7B1B, "MLID Board Information", 'stats')
13981 rec(10, 4, BoardNumber ),
13984 rec(8, 4, CurrentServerTime ),
13985 rec(12, 1, VConsoleVersion ),
13986 rec(13, 1, VConsoleRevision ),
13987 rec(14, 1, Reserved ),
13988 rec(15, 1, NumberOfProtocols ),
13989 rec(16, 28, MLIDBoardInfo ),
13991 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13992 # 2222/7B1E, 123/30
13993 pkt = NCP(0x7B1E, "Get Media Manager Object Information", 'stats')
13995 rec(10, 4, ObjectNumber ),
13998 rec(8, 4, CurrentServerTime ),
13999 rec(12, 1, VConsoleVersion ),
14000 rec(13, 1, VConsoleRevision ),
14001 rec(14, 2, Reserved2 ),
14002 rec(16, 196, GenericInfoDef ),
14004 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14005 # 2222/7B1F, 123/31
14006 pkt = NCP(0x7B1F, "Get Media Manager Objects List", 'stats')
14008 rec(10, 4, StartNumber ),
14009 rec(14, 1, MediaObjectType ),
14012 rec(8, 4, CurrentServerTime ),
14013 rec(12, 1, VConsoleVersion ),
14014 rec(13, 1, VConsoleRevision ),
14015 rec(14, 2, Reserved2 ),
14016 rec(16, 4, nextStartingNumber ),
14017 rec(20, 4, ObjectCount, var="x"),
14018 rec(24, 4, ObjectID, repeat="x"),
14020 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14021 # 2222/7B20, 123/32
14022 pkt = NCP(0x7B20, "Get Media Manager Object Childrens List", 'stats')
14024 rec(10, 4, StartNumber ),
14025 rec(14, 1, MediaObjectType ),
14026 rec(15, 3, Reserved3 ),
14027 rec(18, 4, ParentObjectNumber ),
14030 rec(8, 4, CurrentServerTime ),
14031 rec(12, 1, VConsoleVersion ),
14032 rec(13, 1, VConsoleRevision ),
14033 rec(14, 2, Reserved2 ),
14034 rec(16, 4, nextStartingNumber ),
14035 rec(20, 4, ObjectCount, var="x" ),
14036 rec(24, 4, ObjectID, repeat="x" ),
14038 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14039 # 2222/7B21, 123/33
14040 pkt = NCP(0x7B21, "Get Volume Segment List", 'stats')
14042 rec(10, 4, VolumeNumberLong ),
14045 rec(8, 4, CurrentServerTime ),
14046 rec(12, 1, VConsoleVersion ),
14047 rec(13, 1, VConsoleRevision ),
14048 rec(14, 2, Reserved2 ),
14049 rec(16, 4, NumOfSegments, var="x" ),
14050 rec(20, 12, Segments, repeat="x" ),
14052 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14053 # 2222/7B22, 123/34
14054 pkt = NCP(0x7B22, "Get Volume Information by Level", 'stats')
14056 rec(10, 4, VolumeNumberLong ),
14057 rec(14, 1, InfoLevelNumber ),
14059 pkt.Reply(NO_LENGTH_CHECK, [
14060 rec(8, 4, CurrentServerTime ),
14061 rec(12, 1, VConsoleVersion ),
14062 rec(13, 1, VConsoleRevision ),
14063 rec(14, 2, Reserved2 ),
14064 rec(16, 1, InfoLevelNumber ),
14065 rec(17, 3, Reserved3 ),
14066 srec(VolInfoStructure, req_cond="ncp.info_level_num==0x01"),
14067 srec(VolInfo2Struct, req_cond="ncp.info_level_num==0x02"),
14069 pkt.ReqCondSizeVariable()
14070 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14071 # 2222/7B28, 123/40
14072 pkt = NCP(0x7B28, "Active Protocol Stacks", 'stats')
14074 rec(10, 4, StartNumber ),
14077 rec(8, 4, CurrentServerTime ),
14078 rec(12, 1, VConsoleVersion ),
14079 rec(13, 1, VConsoleRevision ),
14080 rec(14, 2, Reserved2 ),
14081 rec(16, 4, MaxNumOfLANS ),
14082 rec(20, 4, StackCount, var="x" ),
14083 rec(24, 4, nextStartingNumber ),
14084 rec(28, 20, StackInfo, repeat="x" ),
14086 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14087 # 2222/7B29, 123/41
14088 pkt = NCP(0x7B29, "Get Protocol Stack Configuration Information", 'stats')
14090 rec(10, 4, StackNumber ),
14092 pkt.Reply((37,164), [
14093 rec(8, 4, CurrentServerTime ),
14094 rec(12, 1, VConsoleVersion ),
14095 rec(13, 1, VConsoleRevision ),
14096 rec(14, 2, Reserved2 ),
14097 rec(16, 1, ConfigMajorVN ),
14098 rec(17, 1, ConfigMinorVN ),
14099 rec(18, 1, StackMajorVN ),
14100 rec(19, 1, StackMinorVN ),
14101 rec(20, 16, ShortStkName ),
14102 rec(36, (1,128), StackFullNameStr ),
14104 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14105 # 2222/7B2A, 123/42
14106 pkt = NCP(0x7B2A, "Get Protocol Stack Statistics Information", 'stats')
14108 rec(10, 4, StackNumber ),
14111 rec(8, 4, CurrentServerTime ),
14112 rec(12, 1, VConsoleVersion ),
14113 rec(13, 1, VConsoleRevision ),
14114 rec(14, 2, Reserved2 ),
14115 rec(16, 1, StatMajorVersion ),
14116 rec(17, 1, StatMinorVersion ),
14117 rec(18, 2, ComCnts ),
14118 rec(20, 4, CounterMask ),
14119 rec(24, 4, TotalTxPkts ),
14120 rec(28, 4, TotalRxPkts ),
14121 rec(32, 4, IgnoredRxPkts ),
14122 rec(36, 2, CustomCnts ),
14124 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14125 # 2222/7B2B, 123/43
14126 pkt = NCP(0x7B2B, "Get Protocol Stack Custom Information", 'stats')
14128 rec(10, 4, StackNumber ),
14129 rec(14, 4, StartNumber ),
14132 rec(8, 4, CurrentServerTime ),
14133 rec(12, 1, VConsoleVersion ),
14134 rec(13, 1, VConsoleRevision ),
14135 rec(14, 2, Reserved2 ),
14136 rec(16, 4, CustomCount, var="x" ),
14137 rec(20, 5, CustomCntsInfo, repeat="x" ),
14139 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14140 # 2222/7B2C, 123/44
14141 pkt = NCP(0x7B2C, "Get Protocol Stack Numbers by Media Number", 'stats')
14143 rec(10, 4, MediaNumber ),
14146 rec(8, 4, CurrentServerTime ),
14147 rec(12, 1, VConsoleVersion ),
14148 rec(13, 1, VConsoleRevision ),
14149 rec(14, 2, Reserved2 ),
14150 rec(16, 4, StackCount, var="x" ),
14151 rec(20, 4, StackNumber, repeat="x" ),
14153 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14154 # 2222/7B2D, 123/45
14155 pkt = NCP(0x7B2D, "Get Protocol Stack Numbers by LAN Board Number", 'stats')
14157 rec(10, 4, BoardNumber ),
14160 rec(8, 4, CurrentServerTime ),
14161 rec(12, 1, VConsoleVersion ),
14162 rec(13, 1, VConsoleRevision ),
14163 rec(14, 2, Reserved2 ),
14164 rec(16, 4, StackCount, var="x" ),
14165 rec(20, 4, StackNumber, repeat="x" ),
14167 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14168 # 2222/7B2E, 123/46
14169 pkt = NCP(0x7B2E, "Get Media Name by Media Number", 'stats')
14171 rec(10, 4, MediaNumber ),
14173 pkt.Reply((17,144), [
14174 rec(8, 4, CurrentServerTime ),
14175 rec(12, 1, VConsoleVersion ),
14176 rec(13, 1, VConsoleRevision ),
14177 rec(14, 2, Reserved2 ),
14178 rec(16, (1,128), MediaName ),
14180 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14181 # 2222/7B2F, 123/47
14182 pkt = NCP(0x7B2F, "Get Loaded Media Number", 'stats')
14185 rec(8, 4, CurrentServerTime ),
14186 rec(12, 1, VConsoleVersion ),
14187 rec(13, 1, VConsoleRevision ),
14188 rec(14, 2, Reserved2 ),
14189 rec(16, 4, MaxNumOfMedias ),
14190 rec(20, 4, MediaListCount, var="x" ),
14191 rec(24, 4, MediaList, repeat="x" ),
14193 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14194 # 2222/7B32, 123/50
14195 pkt = NCP(0x7B32, "Get General Router and SAP Information", 'stats')
14198 rec(8, 4, CurrentServerTime ),
14199 rec(12, 1, VConsoleVersion ),
14200 rec(13, 1, VConsoleRevision ),
14201 rec(14, 2, Reserved2 ),
14202 rec(16, 2, RIPSocketNumber ),
14203 rec(18, 2, Reserved2 ),
14204 rec(20, 1, RouterDownFlag ),
14205 rec(21, 3, Reserved3 ),
14206 rec(24, 1, TrackOnFlag ),
14207 rec(25, 3, Reserved3 ),
14208 rec(28, 1, ExtRouterActiveFlag ),
14209 rec(29, 3, Reserved3 ),
14210 rec(32, 2, SAPSocketNumber ),
14211 rec(34, 2, Reserved2 ),
14212 rec(36, 1, RpyNearestSrvFlag ),
14214 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14215 # 2222/7B33, 123/51
14216 pkt = NCP(0x7B33, "Get Network Router Information", 'stats')
14218 rec(10, 4, NetworkNumber ),
14221 rec(8, 4, CurrentServerTime ),
14222 rec(12, 1, VConsoleVersion ),
14223 rec(13, 1, VConsoleRevision ),
14224 rec(14, 2, Reserved2 ),
14225 rec(16, 10, KnownRoutes ),
14227 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14228 # 2222/7B34, 123/52
14229 pkt = NCP(0x7B34, "Get Network Routers Information", 'stats')
14231 rec(10, 4, NetworkNumber),
14232 rec(14, 4, StartNumber ),
14235 rec(8, 4, CurrentServerTime ),
14236 rec(12, 1, VConsoleVersion ),
14237 rec(13, 1, VConsoleRevision ),
14238 rec(14, 2, Reserved2 ),
14239 rec(16, 4, NumOfEntries, var="x" ),
14240 rec(20, 14, RoutersInfo, repeat="x" ),
14242 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14243 # 2222/7B35, 123/53
14244 pkt = NCP(0x7B35, "Get Known Networks Information", 'stats')
14246 rec(10, 4, StartNumber ),
14249 rec(8, 4, CurrentServerTime ),
14250 rec(12, 1, VConsoleVersion ),
14251 rec(13, 1, VConsoleRevision ),
14252 rec(14, 2, Reserved2 ),
14253 rec(16, 4, NumOfEntries, var="x" ),
14254 rec(20, 10, KnownRoutes, repeat="x" ),
14256 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14257 # 2222/7B36, 123/54
14258 pkt = NCP(0x7B36, "Get Server Information", 'stats')
14259 pkt.Request((15,64), [
14260 rec(10, 2, ServerType ),
14261 rec(12, 2, Reserved2 ),
14262 rec(14, (1,50), ServerNameLen ),
14263 ], info_str=(ServerNameLen, "Get Server Information: %s", ", %s"))
14265 rec(8, 4, CurrentServerTime ),
14266 rec(12, 1, VConsoleVersion ),
14267 rec(13, 1, VConsoleRevision ),
14268 rec(14, 2, Reserved2 ),
14269 rec(16, 12, ServerAddress ),
14270 rec(28, 2, HopsToNet ),
14272 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14273 # 2222/7B37, 123/55
14274 pkt = NCP(0x7B37, "Get Server Sources Information", 'stats')
14275 pkt.Request((19,68), [
14276 rec(10, 4, StartNumber ),
14277 rec(14, 2, ServerType ),
14278 rec(16, 2, Reserved2 ),
14279 rec(18, (1,50), ServerNameLen ),
14280 ], info_str=(ServerNameLen, "Get Server Sources Info: %s", ", %s"))
14282 rec(8, 4, CurrentServerTime ),
14283 rec(12, 1, VConsoleVersion ),
14284 rec(13, 1, VConsoleRevision ),
14285 rec(14, 2, Reserved2 ),
14286 rec(16, 4, NumOfEntries, var="x" ),
14287 rec(20, 12, ServersSrcInfo, repeat="x" ),
14289 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14290 # 2222/7B38, 123/56
14291 pkt = NCP(0x7B38, "Get Known Servers Information", 'stats')
14293 rec(10, 4, StartNumber ),
14294 rec(14, 2, ServerType ),
14297 rec(8, 4, CurrentServerTime ),
14298 rec(12, 1, VConsoleVersion ),
14299 rec(13, 1, VConsoleRevision ),
14300 rec(14, 2, Reserved2 ),
14301 rec(16, 4, NumOfEntries, var="x" ),
14302 rec(20, 15, KnownServStruc, repeat="x" ),
14304 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14305 # 2222/7B3C, 123/60
14306 pkt = NCP(0x7B3C, "Get Server Set Commands Information", 'stats')
14308 rec(10, 4, StartNumber ),
14310 pkt.Reply(NO_LENGTH_CHECK, [
14311 rec(8, 4, CurrentServerTime ),
14312 rec(12, 1, VConsoleVersion ),
14313 rec(13, 1, VConsoleRevision ),
14314 rec(14, 2, Reserved2 ),
14315 rec(16, 4, TtlNumOfSetCmds ),
14316 rec(20, 4, nextStartingNumber ),
14317 rec(24, 1, SetCmdType ),
14318 rec(25, 3, Reserved3 ),
14319 rec(28, 1, SetCmdCategory ),
14320 rec(29, 3, Reserved3 ),
14321 rec(32, 1, SetCmdFlags ),
14322 rec(33, 3, Reserved3 ),
14323 rec(36, 100, SetCmdName ),
14324 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x00"),
14325 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x01"),
14326 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x02"),
14327 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x04"),
14328 srec(SetCmdValueString, req_cond="ncp.set_cmd_type==0x05"),
14329 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x06"),
14330 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x07"),
14332 pkt.ReqCondSizeVariable()
14333 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14334 # 2222/7B3D, 123/61
14335 pkt = NCP(0x7B3D, "Get Server Set Categories", 'stats')
14337 rec(10, 4, StartNumber ),
14340 rec(8, 4, CurrentServerTime ),
14341 rec(12, 1, VConsoleVersion ),
14342 rec(13, 1, VConsoleRevision ),
14343 rec(14, 2, Reserved2 ),
14344 rec(16, 4, NumberOfSetCategories ),
14345 rec(20, 4, nextStartingNumber ),
14346 rec(24, 100, CategoryName ),
14348 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14349 # 2222/7B3E, 123/62
14350 pkt = NCP(0x7B3E, "Get Server Set Commands Information By Name", 'stats')
14352 rec(10, 100, SetParmName ),
14353 ], info_str=(SetParmName, "Get Server Set Command Info for: %s", ", %s"))
14354 pkt.Reply(NO_LENGTH_CHECK, [
14355 rec(8, 4, CurrentServerTime ),
14356 rec(12, 1, VConsoleVersion ),
14357 rec(13, 1, VConsoleRevision ),
14358 rec(14, 2, Reserved2 ),
14359 rec(16, 4, TtlNumOfSetCmds ),
14360 rec(20, 4, nextStartingNumber ),
14361 rec(24, 1, SetCmdType ),
14362 rec(25, 3, Reserved3 ),
14363 rec(28, 1, SetCmdCategory ),
14364 rec(29, 3, Reserved3 ),
14365 rec(32, 1, SetCmdFlags ),
14366 rec(33, 3, Reserved3 ),
14367 rec(36, 100, SetCmdName ),
14368 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x00"),
14369 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x01"),
14370 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x02"),
14371 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x04"),
14372 srec(SetCmdValueString, req_cond="ncp.set_cmd_type==0x05"),
14373 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x06"),
14374 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x07"),
14376 pkt.ReqCondSizeVariable()
14377 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14378 # 2222/7B46, 123/70
14379 pkt = NCP(0x7B46, "Get Current Compressing File", 'stats')
14381 rec(10, 4, VolumeNumberLong ),
14384 rec(8, 4, ParentID ),
14385 rec(12, 4, DirectoryEntryNumber ),
14386 rec(16, 4, compressionStage ),
14387 rec(20, 4, ttlIntermediateBlks ),
14388 rec(24, 4, ttlCompBlks ),
14389 rec(28, 4, curIntermediateBlks ),
14390 rec(32, 4, curCompBlks ),
14391 rec(36, 4, curInitialBlks ),
14392 rec(40, 4, fileFlags ),
14393 rec(44, 4, projectedCompSize ),
14394 rec(48, 4, originalSize ),
14395 rec(52, 4, compressVolume ),
14397 pkt.CompletionCodes([0x0000, 0x7e00, 0x7901, 0xfb06, 0xff00])
14398 # 2222/7B47, 123/71
14399 pkt = NCP(0x7B47, "Get Current DeCompressing File Info List", 'stats')
14401 rec(10, 4, VolumeNumberLong ),
14404 rec(8, 4, FileListCount ),
14405 rec(12, 16, FileInfoStruct ),
14407 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
14408 # 2222/7B48, 123/72
14409 pkt = NCP(0x7B48, "Get Compression and Decompression Time and Counts", 'stats')
14411 rec(10, 4, VolumeNumberLong ),
14414 rec(8, 56, CompDeCompStat ),
14416 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
14417 # 2222/8301, 131/01
14418 pkt = NCP(0x8301, "RPC Load an NLM", 'fileserver')
14420 rec(10, 4, NLMLoadOptions ),
14421 rec(14, 16, Reserved16 ),
14422 rec(30, 255, PathAndName ),
14423 ], info_str=(PathAndName, "RPC Load NLM: %s", ", %s"))
14425 rec(8, 4, RPCccode ),
14427 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14428 # 2222/8302, 131/02
14429 pkt = NCP(0x8302, "RPC Unload an NLM", 'fileserver')
14431 rec(10, 20, Reserved20 ),
14432 rec(30, 70, NLMName ),
14433 ], info_str=(NLMName, "RPC Unload NLM: %s", ", %s"))
14435 rec(8, 4, RPCccode ),
14437 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14438 # 2222/8303, 131/03
14439 pkt = NCP(0x8303, "RPC Mount Volume", 'fileserver')
14441 rec(10, 20, Reserved20 ),
14442 rec(30, 70, VolumeNameStringz ),
14443 ], info_str=(VolumeNameStringz, "RPC Mount Volume: %s", ", %s"))
14445 rec(8, 4, RPCccode),
14446 rec(12, 16, Reserved16 ),
14447 rec(28, 4, VolumeNumberLong ),
14449 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14450 # 2222/8304, 131/04
14451 pkt = NCP(0x8304, "RPC Dismount Volume", 'fileserver')
14453 rec(10, 20, Reserved20 ),
14454 rec(30, 70, VolumeNameStringz ),
14455 ], info_str=(VolumeNameStringz, "RPC Dismount Volume: %s", ", %s"))
14457 rec(8, 4, RPCccode ),
14459 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14460 # 2222/8305, 131/05
14461 pkt = NCP(0x8305, "RPC Add Name Space To Volume", 'fileserver')
14463 rec(10, 20, Reserved20 ),
14464 rec(30, 70, AddNameSpaceAndVol ),
14465 ], info_str=(AddNameSpaceAndVol, "RPC Add Name Space to Volume: %s", ", %s"))
14467 rec(8, 4, RPCccode ),
14469 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14470 # 2222/8306, 131/06
14471 pkt = NCP(0x8306, "RPC Set Command Value", 'fileserver')
14473 rec(10, 1, SetCmdType ),
14474 rec(11, 3, Reserved3 ),
14475 rec(14, 4, SetCmdValueNum ),
14476 rec(18, 12, Reserved12 ),
14477 rec(30, 70, SetCmdName ),
14478 ], info_str=(SetCmdName, "RPC Set Command Value: %s", ", %s"))
14480 rec(8, 4, RPCccode ),
14482 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14483 # 2222/8307, 131/07
14484 pkt = NCP(0x8307, "RPC Execute NCF File", 'fileserver')
14486 rec(10, 20, Reserved20 ),
14487 rec(30, 255, PathAndName ),
14488 ], info_str=(PathAndName, "RPC Execute NCF File: %s", ", %s"))
14490 rec(8, 4, RPCccode ),
14492 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14493 if __name__ == '__main__':
14495 # filename = "ncp.pstats"
14496 # profile.run("main()", filename)
14500 # p = pstats.Stats(filename)
14502 # print "Stats sorted by cumulative time"
14503 # p.strip_dirs().sort_stats('cumulative').print_stats()
14505 # print "Function callees"
14506 # p.print_callees()