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.44 2003/02/05 06:24:30 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", "Subdirectories Only"),
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", "Subdirectories Only"),
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", "Subdirectories Only"),
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")
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")
1619 DirectoryAttributes = uint8("directory_attributes", "Directory Attributes")
1620 DirectoryBase = uint32("dir_base", "Directory Base")
1621 DirectoryBase.Display("BASE_HEX")
1622 DirectoryCount = uint16("dir_count", "Directory Count")
1623 DirectoryEntryNumber = uint32("directory_entry_number", "Directory Entry Number")
1624 DirectoryEntryNumber.Display('BASE_HEX')
1625 DirectoryEntryNumberWord = uint16("directory_entry_number_word", "Directory Entry Number")
1626 DirectoryID = uint16("directory_id", "Directory ID")
1627 DirectoryID.Display("BASE_HEX")
1628 DirectoryName = fw_string("directory_name", "Directory Name",12)
1629 DirectoryName14 = fw_string("directory_name_14", "Directory Name", 14)
1630 DirectoryNameLen = uint8("directory_name_len", "Directory Name Length")
1631 DirectoryNumber = uint32("directory_number", "Directory Number")
1632 DirectoryNumber.Display("BASE_HEX")
1633 DirectoryPath = fw_string("directory_path", "Directory Path", 16)
1634 DirectoryServicesObjectID = uint32("directory_services_object_id", "Directory Services Object ID")
1635 DirectoryServicesObjectID.Display("BASE_HEX")
1636 DirectoryStamp = uint16("directory_stamp", "Directory Stamp (0xD1D1)")
1637 DirtyCacheBuffers = uint16("dirty_cache_buffers", "Dirty Cache Buffers")
1638 DiskChannelNumber = uint8("disk_channel_number", "Disk Channel Number")
1639 DiskChannelTable = val_string8("disk_channel_table", "Disk Channel Table", [
1643 [ 0x04, "Disk Coprocessor" ],
1645 DiskSpaceLimit = uint32("disk_space_limit", "Disk Space Limit")
1646 DMAChannelsUsed = uint32("dma_channels_used", "DMA Channels Used")
1647 DMInfoEntries = uint32("dm_info_entries", "DM Info Entries")
1648 DMInfoLevel = val_string8("dm_info_level", "DM Info Level", [
1649 [ 0x00, "Return Detailed DM Support Module Information" ],
1650 [ 0x01, "Return Number of DM Support Modules" ],
1651 [ 0x02, "Return DM Support Modules Names" ],
1653 DMFlags = val_string8("dm_flags", "DM Flags", [
1654 [ 0x00, "OnLine Media" ],
1655 [ 0x01, "OffLine Media" ],
1657 DMmajorVersion = uint32("dm_major_version", "DM Major Version")
1658 DMminorVersion = uint32("dm_minor_version", "DM Minor Version")
1659 DMPresentFlag = val_string8("dm_present_flag", "Data Migration Present Flag", [
1660 [ 0x00, "Data Migration NLM is not loaded" ],
1661 [ 0x01, "Data Migration NLM has been loaded and is running" ],
1663 DOSDirectoryBase = uint32("dos_directory_base", "DOS Directory Base")
1664 DOSDirectoryBase.Display("BASE_HEX")
1665 DOSDirectoryEntry = uint32("dos_directory_entry", "DOS Directory Entry")
1666 DOSDirectoryEntry.Display("BASE_HEX")
1667 DOSDirectoryEntryNumber = uint32("dos_directory_entry_number", "DOS Directory Entry Number")
1668 DOSDirectoryEntryNumber.Display('BASE_HEX')
1669 DOSFileAttributes = uint8("dos_file_attributes", "DOS File Attributes")
1670 DOSParentDirectoryEntry = uint32("dos_parent_directory_entry", "DOS Parent Directory Entry")
1671 DOSParentDirectoryEntry.Display('BASE_HEX')
1672 DOSSequence = uint32("dos_sequence", "DOS Sequence")
1673 DriveCylinders = uint16("drive_cylinders", "Drive Cylinders")
1674 DriveDefinitionString = fw_string("drive_definition_string", "Drive Definition", 64)
1675 DriveHeads = uint8("drive_heads", "Drive Heads")
1676 DriveMappingTable = bytes("drive_mapping_table", "Drive Mapping Table", 32)
1677 DriveMirrorTable = bytes("drive_mirror_table", "Drive Mirror Table", 32)
1678 DriverBoardName = stringz("driver_board_name", "Driver Board Name")
1679 DriveRemovableFlag = val_string8("drive_removable_flag", "Drive Removable Flag", [
1680 [ 0x00, "Nonremovable" ],
1681 [ 0xff, "Removable" ],
1683 DriverLogicalName = stringz("driver_log_name", "Driver Logical Name")
1684 DriverShortName = stringz("driver_short_name", "Driver Short Name")
1685 DriveSize = uint32("drive_size", "Drive Size")
1686 DstEAFlags = val_string16("dst_ea_flags", "Destination EA Flags", [
1687 [ 0x0000, "Return EAHandle,Information Level 0" ],
1688 [ 0x0001, "Return NetWareHandle,Information Level 0" ],
1689 [ 0x0002, "Return Volume/Directory Number,Information Level 0" ],
1690 [ 0x0004, "Return EAHandle,Close Handle on Error,Information Level 0" ],
1691 [ 0x0005, "Return NetWareHandle,Close Handle on Error,Information Level 0" ],
1692 [ 0x0006, "Return Volume/Directory Number,Close Handle on Error,Information Level 0" ],
1693 [ 0x0010, "Return EAHandle,Information Level 1" ],
1694 [ 0x0011, "Return NetWareHandle,Information Level 1" ],
1695 [ 0x0012, "Return Volume/Directory Number,Information Level 1" ],
1696 [ 0x0014, "Return EAHandle,Close Handle on Error,Information Level 1" ],
1697 [ 0x0015, "Return NetWareHandle,Close Handle on Error,Information Level 1" ],
1698 [ 0x0016, "Return Volume/Directory Number,Close Handle on Error,Information Level 1" ],
1699 [ 0x0020, "Return EAHandle,Information Level 2" ],
1700 [ 0x0021, "Return NetWareHandle,Information Level 2" ],
1701 [ 0x0022, "Return Volume/Directory Number,Information Level 2" ],
1702 [ 0x0024, "Return EAHandle,Close Handle on Error,Information Level 2" ],
1703 [ 0x0025, "Return NetWareHandle,Close Handle on Error,Information Level 2" ],
1704 [ 0x0026, "Return Volume/Directory Number,Close Handle on Error,Information Level 2" ],
1705 [ 0x0030, "Return EAHandle,Information Level 3" ],
1706 [ 0x0031, "Return NetWareHandle,Information Level 3" ],
1707 [ 0x0032, "Return Volume/Directory Number,Information Level 3" ],
1708 [ 0x0034, "Return EAHandle,Close Handle on Error,Information Level 3" ],
1709 [ 0x0035, "Return NetWareHandle,Close Handle on Error,Information Level 3" ],
1710 [ 0x0036, "Return Volume/Directory Number,Close Handle on Error,Information Level 3" ],
1711 [ 0x0040, "Return EAHandle,Information Level 4" ],
1712 [ 0x0041, "Return NetWareHandle,Information Level 4" ],
1713 [ 0x0042, "Return Volume/Directory Number,Information Level 4" ],
1714 [ 0x0044, "Return EAHandle,Close Handle on Error,Information Level 4" ],
1715 [ 0x0045, "Return NetWareHandle,Close Handle on Error,Information Level 4" ],
1716 [ 0x0046, "Return Volume/Directory Number,Close Handle on Error,Information Level 4" ],
1717 [ 0x0050, "Return EAHandle,Information Level 5" ],
1718 [ 0x0051, "Return NetWareHandle,Information Level 5" ],
1719 [ 0x0052, "Return Volume/Directory Number,Information Level 5" ],
1720 [ 0x0054, "Return EAHandle,Close Handle on Error,Information Level 5" ],
1721 [ 0x0055, "Return NetWareHandle,Close Handle on Error,Information Level 5" ],
1722 [ 0x0056, "Return Volume/Directory Number,Close Handle on Error,Information Level 5" ],
1723 [ 0x0060, "Return EAHandle,Information Level 6" ],
1724 [ 0x0061, "Return NetWareHandle,Information Level 6" ],
1725 [ 0x0062, "Return Volume/Directory Number,Information Level 6" ],
1726 [ 0x0064, "Return EAHandle,Close Handle on Error,Information Level 6" ],
1727 [ 0x0065, "Return NetWareHandle,Close Handle on Error,Information Level 6" ],
1728 [ 0x0066, "Return Volume/Directory Number,Close Handle on Error,Information Level 6" ],
1729 [ 0x0070, "Return EAHandle,Information Level 7" ],
1730 [ 0x0071, "Return NetWareHandle,Information Level 7" ],
1731 [ 0x0072, "Return Volume/Directory Number,Information Level 7" ],
1732 [ 0x0074, "Return EAHandle,Close Handle on Error,Information Level 7" ],
1733 [ 0x0075, "Return NetWareHandle,Close Handle on Error,Information Level 7" ],
1734 [ 0x0076, "Return Volume/Directory Number,Close Handle on Error,Information Level 7" ],
1735 [ 0x0080, "Return EAHandle,Information Level 0,Immediate Close Handle" ],
1736 [ 0x0081, "Return NetWareHandle,Information Level 0,Immediate Close Handle" ],
1737 [ 0x0082, "Return Volume/Directory Number,Information Level 0,Immediate Close Handle" ],
1738 [ 0x0084, "Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1739 [ 0x0085, "Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1740 [ 0x0086, "Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1741 [ 0x0090, "Return EAHandle,Information Level 1,Immediate Close Handle" ],
1742 [ 0x0091, "Return NetWareHandle,Information Level 1,Immediate Close Handle" ],
1743 [ 0x0092, "Return Volume/Directory Number,Information Level 1,Immediate Close Handle" ],
1744 [ 0x0094, "Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1745 [ 0x0095, "Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1746 [ 0x0096, "Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1747 [ 0x00a0, "Return EAHandle,Information Level 2,Immediate Close Handle" ],
1748 [ 0x00a1, "Return NetWareHandle,Information Level 2,Immediate Close Handle" ],
1749 [ 0x00a2, "Return Volume/Directory Number,Information Level 2,Immediate Close Handle" ],
1750 [ 0x00a4, "Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1751 [ 0x00a5, "Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1752 [ 0x00a6, "Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1753 [ 0x00b0, "Return EAHandle,Information Level 3,Immediate Close Handle" ],
1754 [ 0x00b1, "Return NetWareHandle,Information Level 3,Immediate Close Handle" ],
1755 [ 0x00b2, "Return Volume/Directory Number,Information Level 3,Immediate Close Handle" ],
1756 [ 0x00b4, "Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1757 [ 0x00b5, "Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1758 [ 0x00b6, "Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1759 [ 0x00c0, "Return EAHandle,Information Level 4,Immediate Close Handle" ],
1760 [ 0x00c1, "Return NetWareHandle,Information Level 4,Immediate Close Handle" ],
1761 [ 0x00c2, "Return Volume/Directory Number,Information Level 4,Immediate Close Handle" ],
1762 [ 0x00c4, "Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1763 [ 0x00c5, "Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1764 [ 0x00c6, "Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1765 [ 0x00d0, "Return EAHandle,Information Level 5,Immediate Close Handle" ],
1766 [ 0x00d1, "Return NetWareHandle,Information Level 5,Immediate Close Handle" ],
1767 [ 0x00d2, "Return Volume/Directory Number,Information Level 5,Immediate Close Handle" ],
1768 [ 0x00d4, "Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1769 [ 0x00d5, "Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1770 [ 0x00d6, "Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1771 [ 0x00e0, "Return EAHandle,Information Level 6,Immediate Close Handle" ],
1772 [ 0x00e1, "Return NetWareHandle,Information Level 6,Immediate Close Handle" ],
1773 [ 0x00e2, "Return Volume/Directory Number,Information Level 6,Immediate Close Handle" ],
1774 [ 0x00e4, "Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1775 [ 0x00e5, "Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1776 [ 0x00e6, "Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1777 [ 0x00f0, "Return EAHandle,Information Level 7,Immediate Close Handle" ],
1778 [ 0x00f1, "Return NetWareHandle,Information Level 7,Immediate Close Handle" ],
1779 [ 0x00f2, "Return Volume/Directory Number,Information Level 7,Immediate Close Handle" ],
1780 [ 0x00f4, "Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1781 [ 0x00f5, "Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1782 [ 0x00f6, "Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1784 dstNSIndicator = val_string16("dst_ns_indicator", "Destination Name Space Indicator", [
1785 [ 0x0000, "Return Source Name Space Information" ],
1786 [ 0x0001, "Return Destination Name Space Information" ],
1788 DstQueueID = uint32("dst_queue_id", "Destination Queue ID")
1789 DuplicateRepliesSent = uint16("duplicate_replies_sent", "Duplicate Replies Sent")
1791 EAAccessFlag = bitfield16("ea_access_flag", "EA Access Flag", [
1792 bf_boolean16(0x0001, "ea_permanent_memory", "Permanent Memory"),
1793 bf_boolean16(0x0002, "ea_deep_freeze", "Deep Freeze"),
1794 bf_boolean16(0x0004, "ea_in_progress", "In Progress"),
1795 bf_boolean16(0x0008, "ea_header_being_enlarged", "Header Being Enlarged"),
1796 bf_boolean16(0x0010, "ea_new_tally_used", "New Tally Used"),
1797 bf_boolean16(0x0020, "ea_tally_need_update", "Tally Need Update"),
1798 bf_boolean16(0x0040, "ea_score_card_present", "Score Card Present"),
1799 bf_boolean16(0x0080, "ea_need_bit_flag", "EA Need Bit Flag"),
1800 bf_boolean16(0x0100, "ea_write_privileges", "Write Privileges"),
1801 bf_boolean16(0x0200, "ea_read_privileges", "Read Privileges"),
1802 bf_boolean16(0x0400, "ea_delete_privileges", "Delete Privileges"),
1803 bf_boolean16(0x0800, "ea_system_ea_only", "System EA Only"),
1804 bf_boolean16(0x1000, "ea_write_in_progress", "Write In Progress"),
1806 EABytesWritten = uint32("ea_bytes_written", "Bytes Written")
1807 EACount = uint32("ea_count", "Count")
1808 EADataSize = uint32("ea_data_size", "Data Size")
1809 EADataSizeDuplicated = uint32("ea_data_size_duplicated", "Data Size Duplicated")
1810 EADuplicateCount = uint32("ea_duplicate_count", "Duplicate Count")
1811 EAErrorCodes = val_string16("ea_error_codes", "EA Error Codes", [
1812 [ 0x0000, "SUCCESSFUL" ],
1813 [ 0x00c8, "ERR_MISSING_EA_KEY" ],
1814 [ 0x00c9, "ERR_EA_NOT_FOUND" ],
1815 [ 0x00ca, "ERR_INVALID_EA_HANDLE_TYPE" ],
1816 [ 0x00cb, "ERR_EA_NO_KEY_NO_DATA" ],
1817 [ 0x00cc, "ERR_EA_NUMBER_MISMATCH" ],
1818 [ 0x00cd, "ERR_EXTENT_NUMBER_OUT_OF_RANGE" ],
1819 [ 0x00ce, "ERR_EA_BAD_DIR_NUM" ],
1820 [ 0x00cf, "ERR_INVALID_EA_HANDLE" ],
1821 [ 0x00d0, "ERR_EA_POSITION_OUT_OF_RANGE" ],
1822 [ 0x00d1, "ERR_EA_ACCESS_DENIED" ],
1823 [ 0x00d2, "ERR_DATA_PAGE_ODD_SIZE" ],
1824 [ 0x00d3, "ERR_EA_VOLUME_NOT_MOUNTED" ],
1825 [ 0x00d4, "ERR_BAD_PAGE_BOUNDARY" ],
1826 [ 0x00d5, "ERR_INSPECT_FAILURE" ],
1827 [ 0x00d6, "ERR_EA_ALREADY_CLAIMED" ],
1828 [ 0x00d7, "ERR_ODD_BUFFER_SIZE" ],
1829 [ 0x00d8, "ERR_NO_SCORECARDS" ],
1830 [ 0x00d9, "ERR_BAD_EDS_SIGNATURE" ],
1831 [ 0x00da, "ERR_EA_SPACE_LIMIT" ],
1832 [ 0x00db, "ERR_EA_KEY_CORRUPT" ],
1833 [ 0x00dc, "ERR_EA_KEY_LIMIT" ],
1834 [ 0x00dd, "ERR_TALLY_CORRUPT" ],
1836 EAFlags = val_string16("ea_flags", "EA Flags", [
1837 [ 0x0000, "Return EAHandle,Information Level 0" ],
1838 [ 0x0001, "Return NetWareHandle,Information Level 0" ],
1839 [ 0x0002, "Return Volume/Directory Number,Information Level 0" ],
1840 [ 0x0004, "Return EAHandle,Close Handle on Error,Information Level 0" ],
1841 [ 0x0005, "Return NetWareHandle,Close Handle on Error,Information Level 0" ],
1842 [ 0x0006, "Return Volume/Directory Number,Close Handle on Error,Information Level 0" ],
1843 [ 0x0010, "Return EAHandle,Information Level 1" ],
1844 [ 0x0011, "Return NetWareHandle,Information Level 1" ],
1845 [ 0x0012, "Return Volume/Directory Number,Information Level 1" ],
1846 [ 0x0014, "Return EAHandle,Close Handle on Error,Information Level 1" ],
1847 [ 0x0015, "Return NetWareHandle,Close Handle on Error,Information Level 1" ],
1848 [ 0x0016, "Return Volume/Directory Number,Close Handle on Error,Information Level 1" ],
1849 [ 0x0020, "Return EAHandle,Information Level 2" ],
1850 [ 0x0021, "Return NetWareHandle,Information Level 2" ],
1851 [ 0x0022, "Return Volume/Directory Number,Information Level 2" ],
1852 [ 0x0024, "Return EAHandle,Close Handle on Error,Information Level 2" ],
1853 [ 0x0025, "Return NetWareHandle,Close Handle on Error,Information Level 2" ],
1854 [ 0x0026, "Return Volume/Directory Number,Close Handle on Error,Information Level 2" ],
1855 [ 0x0030, "Return EAHandle,Information Level 3" ],
1856 [ 0x0031, "Return NetWareHandle,Information Level 3" ],
1857 [ 0x0032, "Return Volume/Directory Number,Information Level 3" ],
1858 [ 0x0034, "Return EAHandle,Close Handle on Error,Information Level 3" ],
1859 [ 0x0035, "Return NetWareHandle,Close Handle on Error,Information Level 3" ],
1860 [ 0x0036, "Return Volume/Directory Number,Close Handle on Error,Information Level 3" ],
1861 [ 0x0040, "Return EAHandle,Information Level 4" ],
1862 [ 0x0041, "Return NetWareHandle,Information Level 4" ],
1863 [ 0x0042, "Return Volume/Directory Number,Information Level 4" ],
1864 [ 0x0044, "Return EAHandle,Close Handle on Error,Information Level 4" ],
1865 [ 0x0045, "Return NetWareHandle,Close Handle on Error,Information Level 4" ],
1866 [ 0x0046, "Return Volume/Directory Number,Close Handle on Error,Information Level 4" ],
1867 [ 0x0050, "Return EAHandle,Information Level 5" ],
1868 [ 0x0051, "Return NetWareHandle,Information Level 5" ],
1869 [ 0x0052, "Return Volume/Directory Number,Information Level 5" ],
1870 [ 0x0054, "Return EAHandle,Close Handle on Error,Information Level 5" ],
1871 [ 0x0055, "Return NetWareHandle,Close Handle on Error,Information Level 5" ],
1872 [ 0x0056, "Return Volume/Directory Number,Close Handle on Error,Information Level 5" ],
1873 [ 0x0060, "Return EAHandle,Information Level 6" ],
1874 [ 0x0061, "Return NetWareHandle,Information Level 6" ],
1875 [ 0x0062, "Return Volume/Directory Number,Information Level 6" ],
1876 [ 0x0064, "Return EAHandle,Close Handle on Error,Information Level 6" ],
1877 [ 0x0065, "Return NetWareHandle,Close Handle on Error,Information Level 6" ],
1878 [ 0x0066, "Return Volume/Directory Number,Close Handle on Error,Information Level 6" ],
1879 [ 0x0070, "Return EAHandle,Information Level 7" ],
1880 [ 0x0071, "Return NetWareHandle,Information Level 7" ],
1881 [ 0x0072, "Return Volume/Directory Number,Information Level 7" ],
1882 [ 0x0074, "Return EAHandle,Close Handle on Error,Information Level 7" ],
1883 [ 0x0075, "Return NetWareHandle,Close Handle on Error,Information Level 7" ],
1884 [ 0x0076, "Return Volume/Directory Number,Close Handle on Error,Information Level 7" ],
1885 [ 0x0080, "Return EAHandle,Information Level 0,Immediate Close Handle" ],
1886 [ 0x0081, "Return NetWareHandle,Information Level 0,Immediate Close Handle" ],
1887 [ 0x0082, "Return Volume/Directory Number,Information Level 0,Immediate Close Handle" ],
1888 [ 0x0084, "Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1889 [ 0x0085, "Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1890 [ 0x0086, "Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1891 [ 0x0090, "Return EAHandle,Information Level 1,Immediate Close Handle" ],
1892 [ 0x0091, "Return NetWareHandle,Information Level 1,Immediate Close Handle" ],
1893 [ 0x0092, "Return Volume/Directory Number,Information Level 1,Immediate Close Handle" ],
1894 [ 0x0094, "Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1895 [ 0x0095, "Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1896 [ 0x0096, "Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1897 [ 0x00a0, "Return EAHandle,Information Level 2,Immediate Close Handle" ],
1898 [ 0x00a1, "Return NetWareHandle,Information Level 2,Immediate Close Handle" ],
1899 [ 0x00a2, "Return Volume/Directory Number,Information Level 2,Immediate Close Handle" ],
1900 [ 0x00a4, "Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1901 [ 0x00a5, "Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1902 [ 0x00a6, "Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1903 [ 0x00b0, "Return EAHandle,Information Level 3,Immediate Close Handle" ],
1904 [ 0x00b1, "Return NetWareHandle,Information Level 3,Immediate Close Handle" ],
1905 [ 0x00b2, "Return Volume/Directory Number,Information Level 3,Immediate Close Handle" ],
1906 [ 0x00b4, "Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1907 [ 0x00b5, "Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1908 [ 0x00b6, "Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1909 [ 0x00c0, "Return EAHandle,Information Level 4,Immediate Close Handle" ],
1910 [ 0x00c1, "Return NetWareHandle,Information Level 4,Immediate Close Handle" ],
1911 [ 0x00c2, "Return Volume/Directory Number,Information Level 4,Immediate Close Handle" ],
1912 [ 0x00c4, "Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1913 [ 0x00c5, "Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1914 [ 0x00c6, "Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1915 [ 0x00d0, "Return EAHandle,Information Level 5,Immediate Close Handle" ],
1916 [ 0x00d1, "Return NetWareHandle,Information Level 5,Immediate Close Handle" ],
1917 [ 0x00d2, "Return Volume/Directory Number,Information Level 5,Immediate Close Handle" ],
1918 [ 0x00d4, "Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1919 [ 0x00d5, "Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1920 [ 0x00d6, "Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1921 [ 0x00e0, "Return EAHandle,Information Level 6,Immediate Close Handle" ],
1922 [ 0x00e1, "Return NetWareHandle,Information Level 6,Immediate Close Handle" ],
1923 [ 0x00e2, "Return Volume/Directory Number,Information Level 6,Immediate Close Handle" ],
1924 [ 0x00e4, "Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1925 [ 0x00e5, "Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1926 [ 0x00e6, "Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1927 [ 0x00f0, "Return EAHandle,Information Level 7,Immediate Close Handle" ],
1928 [ 0x00f1, "Return NetWareHandle,Information Level 7,Immediate Close Handle" ],
1929 [ 0x00f2, "Return Volume/Directory Number,Information Level 7,Immediate Close Handle" ],
1930 [ 0x00f4, "Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1931 [ 0x00f5, "Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1932 [ 0x00f6, "Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1934 EAHandle = uint32("ea_handle", "EA Handle")
1935 EAHandle.Display("BASE_HEX")
1936 EAHandleOrNetWareHandleOrVolume = uint32("ea_handle_or_netware_handle_or_volume", "EAHandle or NetWare Handle or Volume (see EAFlags)")
1937 EAHandleOrNetWareHandleOrVolume.Display("BASE_HEX")
1938 EAKey = nstring16("ea_key", "EA Key")
1939 EAKeySize = uint32("ea_key_size", "Key Size")
1940 EAKeySizeDuplicated = uint32("ea_key_size_duplicated", "Key Size Duplicated")
1941 EAValue = nstring16("ea_value", "EA Value")
1942 EAValueRep = fw_string("ea_value_rep", "EA Value", 1)
1943 EAValueLength = uint16("ea_value_length", "Value Length")
1944 EchoSocket = uint16("echo_socket", "Echo Socket")
1945 EchoSocket.Display('BASE_HEX')
1946 EffectiveRights = bitfield8("effective_rights", "Effective Rights", [
1947 bf_boolean8(0x01, "effective_rights_read", "Read Rights"),
1948 bf_boolean8(0x02, "effective_rights_write", "Write Rights"),
1949 bf_boolean8(0x04, "effective_rights_open", "Open Rights"),
1950 bf_boolean8(0x08, "effective_rights_create", "Create Rights"),
1951 bf_boolean8(0x10, "effective_rights_delete", "Delete Rights"),
1952 bf_boolean8(0x20, "effective_rights_parental", "Parental Rights"),
1953 bf_boolean8(0x40, "effective_rights_search", "Search Rights"),
1954 bf_boolean8(0x80, "effective_rights_modify", "Modify Rights"),
1956 EnumInfoMask = bitfield8("enum_info_mask", "Return Information Mask", [
1957 bf_boolean8(0x01, "enum_info_transport", "Transport Information"),
1958 bf_boolean8(0x02, "enum_info_time", "Time Information"),
1959 bf_boolean8(0x04, "enum_info_name", "Name Information"),
1960 bf_boolean8(0x08, "enum_info_lock", "Lock Information"),
1961 bf_boolean8(0x10, "enum_info_print", "Print Information"),
1962 bf_boolean8(0x20, "enum_info_stats", "Statistical Information"),
1963 bf_boolean8(0x40, "enum_info_account", "Accounting Information"),
1964 bf_boolean8(0x80, "enum_info_auth", "Authentication Information"),
1967 eventOffset = bytes("event_offset", "Event Offset", 8)
1968 eventOffset.Display("BASE_HEX")
1969 eventTime = uint32("event_time", "Event Time")
1970 eventTime.Display("BASE_HEX")
1971 ExpirationTime = uint32("expiration_time", "Expiration Time")
1972 ExpirationTime.Display('BASE_HEX')
1973 ExtAttrDataSize = uint32("ext_attr_data_size", "Extended Attributes Data Size")
1974 ExtAttrCount = uint32("ext_attr_count", "Extended Attributes Count")
1975 ExtAttrKeySize = uint32("ext_attr_key_size", "Extended Attributes Key Size")
1976 ExtendedAttributesDefined = uint32("extended_attributes_defined", "Extended Attributes Defined")
1977 ExtendedAttributeExtantsUsed = uint32("extended_attribute_extants_used", "Extended Attribute Extants Used")
1978 ExtendedInfo = bitfield16("ext_info", "Extended Return Information", [
1979 bf_boolean16(0x0001, "ext_info_update", "Update"),
1980 bf_boolean16(0x0002, "ext_info_dos_name", "DOS Name"),
1981 bf_boolean16(0x0004, "ext_info_flush", "Flush"),
1982 bf_boolean16(0x0008, "ext_info_parental", "Parental"),
1983 bf_boolean16(0x0010, "ext_info_mac_finder", "MAC Finder"),
1984 bf_boolean16(0x0020, "ext_info_sibling", "Sibling"),
1985 bf_boolean16(0x0040, "ext_info_effective", "Effective"),
1986 bf_boolean16(0x0080, "ext_info_mac_date", "MAC Date"),
1987 bf_boolean16(0x0100, "ext_info_access", "Last Access"),
1988 bf_boolean16(0x0400, "ext_info_64_bit_fs", "64 Bit File Sizes"),
1989 bf_boolean16(0x8000, "ext_info_newstyle", "New Style"),
1991 ExtRouterActiveFlag = boolean8("ext_router_active_flag", "External Router Active Flag")
1993 FailedAllocReqCnt = uint32("failed_alloc_req", "Failed Alloc Request Count")
1994 FatalFATWriteErrors = uint16("fatal_fat_write_errors", "Fatal FAT Write Errors")
1995 FATScanErrors = uint16("fat_scan_errors", "FAT Scan Errors")
1996 FATWriteErrors = uint16("fat_write_errors", "FAT Write Errors")
1997 FieldsLenTable = bytes("fields_len_table", "Fields Len Table", 32)
1998 FileCount = uint16("file_count", "File Count")
1999 FileDate = uint16("file_date", "File Date")
2001 FileDirWindow = uint16("file_dir_win", "File/Dir Window")
2002 FileDirWindow.Display("BASE_HEX")
2003 FileExecuteType = uint8("file_execute_type", "File Execute Type")
2004 FileExtendedAttributes = val_string8("file_ext_attr", "File Extended Attributes", [
2005 [ 0x00, "Search On All Read Only Opens" ],
2006 [ 0x01, "Search On Read Only Opens With No Path" ],
2007 [ 0x02, "Shell Default Search Mode" ],
2008 [ 0x03, "Search On All Opens With No Path" ],
2009 [ 0x04, "Do Not Search" ],
2010 [ 0x05, "Reserved" ],
2011 [ 0x06, "Search On All Opens" ],
2012 [ 0x07, "Reserved" ],
2013 [ 0x08, "Search On All Read Only Opens/Indexed" ],
2014 [ 0x09, "Search On Read Only Opens With No Path/Indexed" ],
2015 [ 0x0a, "Shell Default Search Mode/Indexed" ],
2016 [ 0x0b, "Search On All Opens With No Path/Indexed" ],
2017 [ 0x0c, "Do Not Search/Indexed" ],
2018 [ 0x0d, "Indexed" ],
2019 [ 0x0e, "Search On All Opens/Indexed" ],
2020 [ 0x0f, "Indexed" ],
2021 [ 0x10, "Search On All Read Only Opens/Transactional" ],
2022 [ 0x11, "Search On Read Only Opens With No Path/Transactional" ],
2023 [ 0x12, "Shell Default Search Mode/Transactional" ],
2024 [ 0x13, "Search On All Opens With No Path/Transactional" ],
2025 [ 0x14, "Do Not Search/Transactional" ],
2026 [ 0x15, "Transactional" ],
2027 [ 0x16, "Search On All Opens/Transactional" ],
2028 [ 0x17, "Transactional" ],
2029 [ 0x18, "Search On All Read Only Opens/Indexed/Transactional" ],
2030 [ 0x19, "Search On Read Only Opens With No Path/Indexed/Transactional" ],
2031 [ 0x1a, "Shell Default Search Mode/Indexed/Transactional" ],
2032 [ 0x1b, "Search On All Opens With No Path/Indexed/Transactional" ],
2033 [ 0x1c, "Do Not Search/Indexed/Transactional" ],
2034 [ 0x1d, "Indexed/Transactional" ],
2035 [ 0x1e, "Search On All Opens/Indexed/Transactional" ],
2036 [ 0x1f, "Indexed/Transactional" ],
2037 [ 0x40, "Search On All Read Only Opens/Read Audit" ],
2038 [ 0x41, "Search On Read Only Opens With No Path/Read Audit" ],
2039 [ 0x42, "Shell Default Search Mode/Read Audit" ],
2040 [ 0x43, "Search On All Opens With No Path/Read Audit" ],
2041 [ 0x44, "Do Not Search/Read Audit" ],
2042 [ 0x45, "Read Audit" ],
2043 [ 0x46, "Search On All Opens/Read Audit" ],
2044 [ 0x47, "Read Audit" ],
2045 [ 0x48, "Search On All Read Only Opens/Indexed/Read Audit" ],
2046 [ 0x49, "Search On Read Only Opens With No Path/Indexed/Read Audit" ],
2047 [ 0x4a, "Shell Default Search Mode/Indexed/Read Audit" ],
2048 [ 0x4b, "Search On All Opens With No Path/Indexed/Read Audit" ],
2049 [ 0x4c, "Do Not Search/Indexed/Read Audit" ],
2050 [ 0x4d, "Indexed/Read Audit" ],
2051 [ 0x4e, "Search On All Opens/Indexed/Read Audit" ],
2052 [ 0x4f, "Indexed/Read Audit" ],
2053 [ 0x50, "Search On All Read Only Opens/Transactional/Read Audit" ],
2054 [ 0x51, "Search On Read Only Opens With No Path/Transactional/Read Audit" ],
2055 [ 0x52, "Shell Default Search Mode/Transactional/Read Audit" ],
2056 [ 0x53, "Search On All Opens With No Path/Transactional/Read Audit" ],
2057 [ 0x54, "Do Not Search/Transactional/Read Audit" ],
2058 [ 0x55, "Transactional/Read Audit" ],
2059 [ 0x56, "Search On All Opens/Transactional/Read Audit" ],
2060 [ 0x57, "Transactional/Read Audit" ],
2061 [ 0x58, "Search On All Read Only Opens/Indexed/Transactional/Read Audit" ],
2062 [ 0x59, "Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit" ],
2063 [ 0x5a, "Shell Default Search Mode/Indexed/Transactional/Read Audit" ],
2064 [ 0x5b, "Search On All Opens With No Path/Indexed/Transactional/Read Audit" ],
2065 [ 0x5c, "Do Not Search/Indexed/Transactional/Read Audit" ],
2066 [ 0x5d, "Indexed/Transactional/Read Audit" ],
2067 [ 0x5e, "Search On All Opens/Indexed/Transactional/Read Audit" ],
2068 [ 0x5f, "Indexed/Transactional/Read Audit" ],
2069 [ 0x80, "Search On All Read Only Opens/Write Audit" ],
2070 [ 0x81, "Search On Read Only Opens With No Path/Write Audit" ],
2071 [ 0x82, "Shell Default Search Mode/Write Audit" ],
2072 [ 0x83, "Search On All Opens With No Path/Write Audit" ],
2073 [ 0x84, "Do Not Search/Write Audit" ],
2074 [ 0x85, "Write Audit" ],
2075 [ 0x86, "Search On All Opens/Write Audit" ],
2076 [ 0x87, "Write Audit" ],
2077 [ 0x88, "Search On All Read Only Opens/Indexed/Write Audit" ],
2078 [ 0x89, "Search On Read Only Opens With No Path/Indexed/Write Audit" ],
2079 [ 0x8a, "Shell Default Search Mode/Indexed/Write Audit" ],
2080 [ 0x8b, "Search On All Opens With No Path/Indexed/Write Audit" ],
2081 [ 0x8c, "Do Not Search/Indexed/Write Audit" ],
2082 [ 0x8d, "Indexed/Write Audit" ],
2083 [ 0x8e, "Search On All Opens/Indexed/Write Audit" ],
2084 [ 0x8f, "Indexed/Write Audit" ],
2085 [ 0x90, "Search On All Read Only Opens/Transactional/Write Audit" ],
2086 [ 0x91, "Search On Read Only Opens With No Path/Transactional/Write Audit" ],
2087 [ 0x92, "Shell Default Search Mode/Transactional/Write Audit" ],
2088 [ 0x93, "Search On All Opens With No Path/Transactional/Write Audit" ],
2089 [ 0x94, "Do Not Search/Transactional/Write Audit" ],
2090 [ 0x95, "Transactional/Write Audit" ],
2091 [ 0x96, "Search On All Opens/Transactional/Write Audit" ],
2092 [ 0x97, "Transactional/Write Audit" ],
2093 [ 0x98, "Search On All Read Only Opens/Indexed/Transactional/Write Audit" ],
2094 [ 0x99, "Search On Read Only Opens With No Path/Indexed/Transactional/Write Audit" ],
2095 [ 0x9a, "Shell Default Search Mode/Indexed/Transactional/Write Audit" ],
2096 [ 0x9b, "Search On All Opens With No Path/Indexed/Transactional/Write Audit" ],
2097 [ 0x9c, "Do Not Search/Indexed/Transactional/Write Audit" ],
2098 [ 0x9d, "Indexed/Transactional/Write Audit" ],
2099 [ 0x9e, "Search On All Opens/Indexed/Transactional/Write Audit" ],
2100 [ 0x9f, "Indexed/Transactional/Write Audit" ],
2101 [ 0xa0, "Search On All Read Only Opens/Read Audit/Write Audit" ],
2102 [ 0xa1, "Search On Read Only Opens With No Path/Read Audit/Write Audit" ],
2103 [ 0xa2, "Shell Default Search Mode/Read Audit/Write Audit" ],
2104 [ 0xa3, "Search On All Opens With No Path/Read Audit/Write Audit" ],
2105 [ 0xa4, "Do Not Search/Read Audit/Write Audit" ],
2106 [ 0xa5, "Read Audit/Write Audit" ],
2107 [ 0xa6, "Search On All Opens/Read Audit/Write Audit" ],
2108 [ 0xa7, "Read Audit/Write Audit" ],
2109 [ 0xa8, "Search On All Read Only Opens/Indexed/Read Audit/Write Audit" ],
2110 [ 0xa9, "Search On Read Only Opens With No Path/Indexed/Read Audit/Write Audit" ],
2111 [ 0xaa, "Shell Default Search Mode/Indexed/Read Audit/Write Audit" ],
2112 [ 0xab, "Search On All Opens With No Path/Indexed/Read Audit/Write Audit" ],
2113 [ 0xac, "Do Not Search/Indexed/Read Audit/Write Audit" ],
2114 [ 0xad, "Indexed/Read Audit/Write Audit" ],
2115 [ 0xae, "Search On All Opens/Indexed/Read Audit/Write Audit" ],
2116 [ 0xaf, "Indexed/Read Audit/Write Audit" ],
2117 [ 0xb0, "Search On All Read Only Opens/Transactional/Read Audit/Write Audit" ],
2118 [ 0xb1, "Search On Read Only Opens With No Path/Transactional/Read Audit/Write Audit" ],
2119 [ 0xb2, "Shell Default Search Mode/Transactional/Read Audit/Write Audit" ],
2120 [ 0xb3, "Search On All Opens With No Path/Transactional/Read Audit/Write Audit" ],
2121 [ 0xb4, "Do Not Search/Transactional/Read Audit/Write Audit" ],
2122 [ 0xb5, "Transactional/Read Audit/Write Audit" ],
2123 [ 0xb6, "Search On All Opens/Transactional/Read Audit/Write Audit" ],
2124 [ 0xb7, "Transactional/Read Audit/Write Audit" ],
2125 [ 0xb8, "Search On All Read Only Opens/Indexed/Transactional/Read Audit/Write Audit" ],
2126 [ 0xb9, "Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" ],
2127 [ 0xba, "Shell Default Search Mode/Indexed/Transactional/Read Audit/Write Audit" ],
2128 [ 0xbb, "Search On All Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" ],
2129 [ 0xbc, "Do Not Search/Indexed/Transactional/Read Audit/Write Audit" ],
2130 [ 0xbd, "Indexed/Transactional/Read Audit/Write Audit" ],
2131 [ 0xbe, "Search On All Opens/Indexed/Transactional/Read Audit/Write Audit" ],
2132 [ 0xbf, "Indexed/Transactional/Read Audit/Write Audit" ],
2134 fileFlags = uint32("file_flags", "File Flags")
2135 FileHandle = bytes("file_handle", "File Handle", 6)
2136 FileLimbo = uint32("file_limbo", "File Limbo")
2137 FileListCount = uint32("file_list_count", "File List Count")
2138 FileLock = val_string8("file_lock", "File Lock", [
2139 [ 0x00, "Not Locked" ],
2140 [ 0xfe, "Locked by file lock" ],
2141 [ 0xff, "Unknown" ],
2143 FileLockCount = uint16("file_lock_count", "File Lock Count")
2144 FileMode = uint8("file_mode", "File Mode")
2145 FileName = nstring8("file_name", "Filename")
2146 FileName12 = fw_string("file_name_12", "Filename", 12)
2147 FileName14 = fw_string("file_name_14", "Filename", 14)
2148 FileNameLen = uint8("file_name_len", "Filename Length")
2149 FileOffset = uint32("file_offset", "File Offset")
2150 FilePath = nstring8("file_path", "File Path")
2151 FileSize = uint32("file_size", "File Size", BE)
2152 FileSystemID = uint8("file_system_id", "File System ID")
2153 FileTime = uint16("file_time", "File Time")
2155 FileWriteFlags = val_string8("file_write_flags", "File Write Flags", [
2156 [ 0x01, "Writing" ],
2157 [ 0x02, "Write aborted" ],
2159 FileWriteState = val_string8("file_write_state", "File Write State", [
2160 [ 0x00, "Not Writing" ],
2161 [ 0x01, "Write in Progress" ],
2162 [ 0x02, "Write Being Stopped" ],
2164 Filler = uint8("filler", "Filler")
2165 FinderAttr = bitfield16("finder_attr", "Finder Info Attributes", [
2166 bf_boolean16(0x0001, "finder_attr_desktop", "Object on Desktop"),
2167 bf_boolean16(0x2000, "finder_attr_invisible", "Object is Invisible"),
2168 bf_boolean16(0x4000, "finder_attr_bundle", "Object Has Bundle"),
2170 FixedBitMask = uint32("fixed_bit_mask", "Fixed Bit Mask")
2171 FixedBitsDefined = uint16("fixed_bits_defined", "Fixed Bits Defined")
2172 FlagBits = uint8("flag_bits", "Flag Bits")
2173 Flags = uint8("flags", "Flags")
2174 FlagsDef = uint16("flags_def", "Flags")
2175 FlushTime = uint32("flush_time", "Flush Time")
2176 FolderFlag = val_string8("folder_flag", "Folder Flag", [
2177 [ 0x00, "Not a Folder" ],
2180 ForkCount = uint8("fork_count", "Fork Count")
2181 ForkIndicator = val_string8("fork_indicator", "Fork Indicator", [
2182 [ 0x00, "Data Fork" ],
2183 [ 0x01, "Resource Fork" ],
2185 ForceFlag = val_string8("force_flag", "Force Server Down Flag", [
2186 [ 0x00, "Down Server if No Files Are Open" ],
2187 [ 0xff, "Down Server Immediately, Auto-Close Open Files" ],
2189 ForgedDetachedRequests = uint16("forged_detached_requests", "Forged Detached Requests")
2190 FormType = uint16( "form_type", "Form Type" )
2191 FormTypeCnt = uint32("form_type_count", "Form Types Count")
2192 FoundSomeMem = uint32("found_some_mem", "Found Some Memory")
2193 FractionalSeconds = uint32("fractional_time", "Fractional Time in Seconds")
2194 FraggerHandle = uint32("fragger_handle", "Fragment Handle")
2195 FraggerHandle.Display('BASE_HEX')
2196 FragmentWriteOccurred = uint16("fragment_write_occurred", "Fragment Write Occurred")
2197 FragSize = uint32("frag_size", "Fragment Size")
2198 FreeableLimboSectors = uint32("freeable_limbo_sectors", "Freeable Limbo Sectors")
2199 FreeBlocks = uint32("free_blocks", "Free Blocks")
2200 FreedClusters = uint32("freed_clusters", "Freed Clusters")
2201 FreeDirectoryEntries = uint16("free_directory_entries", "Free Directory Entries")
2202 FSEngineFlag = boolean8("fs_engine_flag", "FS Engine Flag")
2203 FullName = fw_string("full_name", "Full Name", 39)
2205 GetSetFlag = val_string8("get_set_flag", "Get Set Flag", [
2206 [ 0x00, "Get the default support module ID" ],
2207 [ 0x01, "Set the default support module ID" ],
2209 GUID = bytes("guid", "GUID", 16)
2210 GUID.Display("BASE_HEX")
2212 HandleFlag = val_string8("handle_flag", "Handle Flag", [
2213 [ 0x00, "Short Directory Handle" ],
2214 [ 0x01, "Directory Base" ],
2215 [ 0xFF, "No Handle Present" ],
2217 HandleInfoLevel = val_string8("handle_info_level", "Handle Info Level", [
2218 [ 0x00, "Get Limited Information from a File Handle" ],
2219 [ 0x01, "Get Limited Information from a File Handle Using a Name Space" ],
2220 [ 0x02, "Get Information from a File Handle" ],
2221 [ 0x03, "Get Information from a Directory Handle" ],
2222 [ 0x04, "Get Complete Information from a Directory Handle" ],
2223 [ 0x05, "Get Complete Information from a File Handle" ],
2225 HeldBytesRead = bytes("held_bytes_read", "Held Bytes Read", 6)
2226 HeldBytesWritten = bytes("held_bytes_write", "Held Bytes Written", 6)
2227 HeldConnectTimeInMinutes = uint32("held_conn_time", "Held Connect Time in Minutes")
2228 HeldRequests = uint32("user_info_held_req", "Held Requests")
2229 HoldAmount = uint32("hold_amount", "Hold Amount")
2230 HoldCancelAmount = uint32("hold_cancel_amount", "Hold Cancel Amount")
2231 HolderID = uint32("holder_id", "Holder ID")
2232 HolderID.Display("BASE_HEX")
2233 HoldTime = uint32("hold_time", "Hold Time")
2234 HopsToNet = uint16("hops_to_net", "Hop Count")
2235 HorizLocation = uint16("horiz_location", "Horizontal Location")
2236 HostAddress = bytes("host_address", "Host Address", 6)
2237 HotFixBlocksAvailable = uint16("hot_fix_blocks_available", "Hot Fix Blocks Available")
2238 HotFixDisabled = val_string8("hot_fix_disabled", "Hot Fix Disabled", [
2239 [ 0x00, "Enabled" ],
2240 [ 0x01, "Disabled" ],
2242 HotFixTableSize = uint16("hot_fix_table_size", "Hot Fix Table Size")
2243 HotFixTableStart = uint32("hot_fix_table_start", "Hot Fix Table Start")
2244 Hour = uint8("s_hour", "Hour")
2245 HugeBitMask = uint32("huge_bit_mask", "Huge Bit Mask")
2246 HugeBitsDefined = uint16("huge_bits_defined", "Huge Bits Defined")
2247 HugeData = nstring8("huge_data", "Huge Data")
2248 HugeDataUsed = uint32("huge_data_used", "Huge Data Used")
2249 HugeStateInfo = bytes("huge_state_info", "Huge State Info", 16)
2251 IdentificationNumber = uint32("identification_number", "Identification Number")
2252 IgnoredRxPkts = uint32("ignored_rx_pkts", "Ignored Receive Packets")
2253 IncomingPacketDiscardedNoDGroup = uint16("incoming_packet_discarded_no_dgroup", "Incoming Packet Discarded No DGroup")
2254 InfoCount = uint16("info_count", "Info Count")
2255 InfoFlags = bitfield32("info_flags", "Info Flags", [
2256 bf_boolean32(0x10000000, "info_flags_security", "Return Object Security"),
2257 bf_boolean32(0x20000000, "info_flags_flags", "Return Object Flags"),
2258 bf_boolean32(0x40000000, "info_flags_type", "Return Object Type"),
2259 bf_boolean32(0x80000000, "info_flags_name", "Return Object Name"),
2261 InfoLevelNumber = val_string8("info_level_num", "Information Level Number", [
2262 [ 0x01, "Volume Information Definition" ],
2263 [ 0x02, "Volume Information 2 Definition" ],
2265 InfoMask = bitfield32("info_mask", "Information Mask", [
2266 bf_boolean32(0x00000001, "info_flags_dos_time", "DOS Time"),
2267 bf_boolean32(0x00000002, "info_flags_ref_count", "Reference Count"),
2268 bf_boolean32(0x00000004, "info_flags_dos_attr", "DOS Attributes"),
2269 bf_boolean32(0x00000008, "info_flags_ids", "ID's"),
2270 bf_boolean32(0x00000010, "info_flags_ds_sizes", "Data Stream Sizes"),
2271 bf_boolean32(0x00000020, "info_flags_ns_attr", "Name Space Attributes"),
2272 bf_boolean32(0x00000040, "info_flags_ea_present", "EA Present Flag"),
2273 bf_boolean32(0x00000080, "info_flags_all_attr", "All Attributes"),
2274 bf_boolean32(0x00000100, "info_flags_all_dirbase_num", "All Directory Base Numbers"),
2275 bf_boolean32(0x00000200, "info_flags_max_access_mask", "Maximum Access Mask"),
2276 bf_boolean32(0x00000400, "info_flags_flush_time", "Flush Time"),
2277 bf_boolean32(0x00000800, "info_flags_prnt_base_id", "Parent Base ID"),
2278 bf_boolean32(0x00001000, "info_flags_mac_finder", "Mac Finder Information"),
2279 bf_boolean32(0x00002000, "info_flags_sibling_cnt", "Sibling Count"),
2280 bf_boolean32(0x00004000, "info_flags_effect_rights", "Effective Rights"),
2281 bf_boolean32(0x00008000, "info_flags_mac_time", "Mac Time"),
2282 bf_boolean32(0x20000000, "info_mask_dosname", "DOS Name"),
2283 bf_boolean32(0x40000000, "info_mask_c_name_space", "Creator Name Space & Name"),
2284 bf_boolean32(0x80000000, "info_mask_name", "Name"),
2286 InheritedRightsMask = bitfield16("inherited_rights_mask", "Inherited Rights Mask", [
2287 bf_boolean16(0x0001, "inh_rights_read", "Read Rights"),
2288 bf_boolean16(0x0002, "inh_rights_write", "Write Rights"),
2289 bf_boolean16(0x0004, "inh_rights_open", "Open Rights"),
2290 bf_boolean16(0x0008, "inh_rights_create", "Create Rights"),
2291 bf_boolean16(0x0010, "inh_rights_delete", "Delete Rights"),
2292 bf_boolean16(0x0020, "inh_rights_parent", "Change Access"),
2293 bf_boolean16(0x0040, "inh_rights_search", "See Files Flag"),
2294 bf_boolean16(0x0080, "inh_rights_modify", "Modify Rights"),
2295 bf_boolean16(0x0100, "inh_rights_supervisor", "Supervisor"),
2297 InheritanceRevokeMask = bitfield16("inheritance_revoke_mask", "Revoke Rights Mask", [
2298 bf_boolean16(0x0001, "inh_revoke_read", "Read Rights"),
2299 bf_boolean16(0x0002, "inh_revoke_write", "Write Rights"),
2300 bf_boolean16(0x0004, "inh_revoke_open", "Open Rights"),
2301 bf_boolean16(0x0008, "inh_revoke_create", "Create Rights"),
2302 bf_boolean16(0x0010, "inh_revoke_delete", "Delete Rights"),
2303 bf_boolean16(0x0020, "inh_revoke_parent", "Change Access"),
2304 bf_boolean16(0x0040, "inh_revoke_search", "See Files Flag"),
2305 bf_boolean16(0x0080, "inh_revoke_modify", "Modify Rights"),
2306 bf_boolean16(0x0100, "inh_revoke_supervisor", "Supervisor"),
2308 InitialSemaphoreValue = uint8("initial_semaphore_value", "Initial Semaphore Value")
2309 InspectSize = uint32("inspect_size", "Inspect Size")
2310 InternetBridgeVersion = uint8("internet_bridge_version", "Internet Bridge Version")
2311 InterruptNumbersUsed = uint32("interrupt_numbers_used", "Interrupt Numbers Used")
2312 InUse = uint32("in_use", "Bytes in Use")
2313 IOAddressesUsed = bytes("io_addresses_used", "IO Addresses Used", 8)
2314 IOErrorCount = uint16("io_error_count", "IO Error Count")
2315 IOEngineFlag = boolean8("io_engine_flag", "IO Engine Flag")
2316 IPXNotMyNetwork = uint16("ipx_not_my_network", "IPX Not My Network")
2317 ItemsChanged = uint32("items_changed", "Items Changed")
2318 ItemsChecked = uint32("items_checked", "Items Checked")
2319 ItemsCount = uint32("items_count", "Items Count")
2320 itemsInList = uint32("items_in_list", "Items in List")
2321 ItemsInPacket = uint32("items_in_packet", "Items in Packet")
2323 JobControlFlags = bitfield8("job_control_flags", "Job Control Flags", [
2324 bf_boolean8(0x08, "job_control_job_recovery", "Job Recovery"),
2325 bf_boolean8(0x10, "job_control_reservice", "ReService Job"),
2326 bf_boolean8(0x20, "job_control_file_open", "File Open"),
2327 bf_boolean8(0x40, "job_control_user_hold", "User Hold"),
2328 bf_boolean8(0x80, "job_control_operator_hold", "Operator Hold"),
2331 JobControlFlagsWord = bitfield16("job_control_flags_word", "Job Control Flags", [
2332 bf_boolean16(0x0008, "job_control1_job_recovery", "Job Recovery"),
2333 bf_boolean16(0x0010, "job_control1_reservice", "ReService Job"),
2334 bf_boolean16(0x0020, "job_control1_file_open", "File Open"),
2335 bf_boolean16(0x0040, "job_control1_user_hold", "User Hold"),
2336 bf_boolean16(0x0080, "job_control1_operator_hold", "Operator Hold"),
2339 JobCount = uint32("job_count", "Job Count")
2340 JobFileHandle = bytes("job_file_handle", "Job File Handle", 6)
2341 JobFileHandleLong = uint32("job_file_handle_long", "Job File Handle")
2342 JobFileHandleLong.Display("BASE_HEX")
2343 JobFileName = fw_string("job_file_name", "Job File Name", 14)
2344 JobPosition = uint8("job_position", "Job Position")
2345 JobPositionWord = uint16("job_position_word", "Job Position")
2346 JobNumber = uint16("job_number", "Job Number", BE )
2347 JobNumberLong = uint32("job_number_long", "Job Number", BE )
2348 JobNumberList = uint32("job_number_list", "Job Number List")
2349 JobType = uint16("job_type", "Job Type", BE )
2351 LANCustomVariablesCount = uint32("lan_cust_var_count", "LAN Custom Variables Count")
2352 LANdriverBoardInstance = uint16("lan_drv_bd_inst", "LAN Driver Board Instance")
2353 LANdriverBoardNumber = uint16("lan_drv_bd_num", "LAN Driver Board Number")
2354 LANdriverCardID = uint16("lan_drv_card_id", "LAN Driver Card ID")
2355 LANdriverCardName = fw_string("lan_drv_card_name", "LAN Driver Card Name", 28)
2356 LANdriverCFG_MajorVersion = uint8("lan_dvr_cfg_major_vrs", "LAN Driver Config - Major Version")
2357 LANdriverCFG_MinorVersion = uint8("lan_dvr_cfg_minor_vrs", "LAN Driver Config - Minor Version")
2358 LANdriverDMAUsage1 = uint8("lan_drv_dma_usage1", "Primary DMA Channel")
2359 LANdriverDMAUsage2 = uint8("lan_drv_dma_usage2", "Secondary DMA Channel")
2360 LANdriverFlags = uint16("lan_drv_flags", "LAN Driver Flags")
2361 LANdriverFlags.Display("BASE_HEX")
2362 LANdriverInterrupt1 = uint8("lan_drv_interrupt1", "Primary Interrupt Vector")
2363 LANdriverInterrupt2 = uint8("lan_drv_interrupt2", "Secondary Interrupt Vector")
2364 LANdriverIOPortsAndRanges1 = uint16("lan_drv_io_ports_and_ranges_1", "Primary Base I/O Port")
2365 LANdriverIOPortsAndRanges2 = uint16("lan_drv_io_ports_and_ranges_2", "Number of I/O Ports")
2366 LANdriverIOPortsAndRanges3 = uint16("lan_drv_io_ports_and_ranges_3", "Secondary Base I/O Port")
2367 LANdriverIOPortsAndRanges4 = uint16("lan_drv_io_ports_and_ranges_4", "Number of I/O Ports")
2368 LANdriverIOReserved = bytes("lan_drv_io_reserved", "LAN Driver IO Reserved", 14)
2369 LANdriverLineSpeed = uint16("lan_drv_line_speed", "LAN Driver Line Speed")
2370 LANdriverLink = uint32("lan_drv_link", "LAN Driver Link")
2371 LANdriverLogicalName = bytes("lan_drv_log_name", "LAN Driver Logical Name", 18)
2372 LANdriverMajorVersion = uint8("lan_drv_major_ver", "LAN Driver Major Version")
2373 LANdriverMaximumSize = uint32("lan_drv_max_size", "LAN Driver Maximum Size")
2374 LANdriverMaxRecvSize = uint32("lan_drv_max_rcv_size", "LAN Driver Maximum Receive Size")
2375 LANdriverMediaID = uint16("lan_drv_media_id", "LAN Driver Media ID")
2376 LANdriverMediaType = fw_string("lan_drv_media_type", "LAN Driver Media Type", 40)
2377 LANdriverMemoryDecode0 = uint32("lan_drv_mem_decode_0", "LAN Driver Memory Decode 0")
2378 LANdriverMemoryDecode1 = uint32("lan_drv_mem_decode_1", "LAN Driver Memory Decode 1")
2379 LANdriverMemoryLength0 = uint16("lan_drv_mem_length_0", "LAN Driver Memory Length 0")
2380 LANdriverMemoryLength1 = uint16("lan_drv_mem_length_1", "LAN Driver Memory Length 1")
2381 LANdriverMinorVersion = uint8("lan_drv_minor_ver", "LAN Driver Minor Version")
2382 LANdriverModeFlags = val_string8("lan_dvr_mode_flags", "LAN Driver Mode Flags", [
2383 [0x80, "Canonical Address" ],
2384 [0x81, "Canonical Address" ],
2385 [0x82, "Canonical Address" ],
2386 [0x83, "Canonical Address" ],
2387 [0x84, "Canonical Address" ],
2388 [0x85, "Canonical Address" ],
2389 [0x86, "Canonical Address" ],
2390 [0x87, "Canonical Address" ],
2391 [0x88, "Canonical Address" ],
2392 [0x89, "Canonical Address" ],
2393 [0x8a, "Canonical Address" ],
2394 [0x8b, "Canonical Address" ],
2395 [0x8c, "Canonical Address" ],
2396 [0x8d, "Canonical Address" ],
2397 [0x8e, "Canonical Address" ],
2398 [0x8f, "Canonical Address" ],
2399 [0x90, "Canonical Address" ],
2400 [0x91, "Canonical Address" ],
2401 [0x92, "Canonical Address" ],
2402 [0x93, "Canonical Address" ],
2403 [0x94, "Canonical Address" ],
2404 [0x95, "Canonical Address" ],
2405 [0x96, "Canonical Address" ],
2406 [0x97, "Canonical Address" ],
2407 [0x98, "Canonical Address" ],
2408 [0x99, "Canonical Address" ],
2409 [0x9a, "Canonical Address" ],
2410 [0x9b, "Canonical Address" ],
2411 [0x9c, "Canonical Address" ],
2412 [0x9d, "Canonical Address" ],
2413 [0x9e, "Canonical Address" ],
2414 [0x9f, "Canonical Address" ],
2415 [0xa0, "Canonical Address" ],
2416 [0xa1, "Canonical Address" ],
2417 [0xa2, "Canonical Address" ],
2418 [0xa3, "Canonical Address" ],
2419 [0xa4, "Canonical Address" ],
2420 [0xa5, "Canonical Address" ],
2421 [0xa6, "Canonical Address" ],
2422 [0xa7, "Canonical Address" ],
2423 [0xa8, "Canonical Address" ],
2424 [0xa9, "Canonical Address" ],
2425 [0xaa, "Canonical Address" ],
2426 [0xab, "Canonical Address" ],
2427 [0xac, "Canonical Address" ],
2428 [0xad, "Canonical Address" ],
2429 [0xae, "Canonical Address" ],
2430 [0xaf, "Canonical Address" ],
2431 [0xb0, "Canonical Address" ],
2432 [0xb1, "Canonical Address" ],
2433 [0xb2, "Canonical Address" ],
2434 [0xb3, "Canonical Address" ],
2435 [0xb4, "Canonical Address" ],
2436 [0xb5, "Canonical Address" ],
2437 [0xb6, "Canonical Address" ],
2438 [0xb7, "Canonical Address" ],
2439 [0xb8, "Canonical Address" ],
2440 [0xb9, "Canonical Address" ],
2441 [0xba, "Canonical Address" ],
2442 [0xbb, "Canonical Address" ],
2443 [0xbc, "Canonical Address" ],
2444 [0xbd, "Canonical Address" ],
2445 [0xbe, "Canonical Address" ],
2446 [0xbf, "Canonical Address" ],
2447 [0xc0, "Non-Canonical Address" ],
2448 [0xc1, "Non-Canonical Address" ],
2449 [0xc2, "Non-Canonical Address" ],
2450 [0xc3, "Non-Canonical Address" ],
2451 [0xc4, "Non-Canonical Address" ],
2452 [0xc5, "Non-Canonical Address" ],
2453 [0xc6, "Non-Canonical Address" ],
2454 [0xc7, "Non-Canonical Address" ],
2455 [0xc8, "Non-Canonical Address" ],
2456 [0xc9, "Non-Canonical Address" ],
2457 [0xca, "Non-Canonical Address" ],
2458 [0xcb, "Non-Canonical Address" ],
2459 [0xcc, "Non-Canonical Address" ],
2460 [0xcd, "Non-Canonical Address" ],
2461 [0xce, "Non-Canonical Address" ],
2462 [0xcf, "Non-Canonical Address" ],
2463 [0xd0, "Non-Canonical Address" ],
2464 [0xd1, "Non-Canonical Address" ],
2465 [0xd2, "Non-Canonical Address" ],
2466 [0xd3, "Non-Canonical Address" ],
2467 [0xd4, "Non-Canonical Address" ],
2468 [0xd5, "Non-Canonical Address" ],
2469 [0xd6, "Non-Canonical Address" ],
2470 [0xd7, "Non-Canonical Address" ],
2471 [0xd8, "Non-Canonical Address" ],
2472 [0xd9, "Non-Canonical Address" ],
2473 [0xda, "Non-Canonical Address" ],
2474 [0xdb, "Non-Canonical Address" ],
2475 [0xdc, "Non-Canonical Address" ],
2476 [0xdd, "Non-Canonical Address" ],
2477 [0xde, "Non-Canonical Address" ],
2478 [0xdf, "Non-Canonical Address" ],
2479 [0xe0, "Non-Canonical Address" ],
2480 [0xe1, "Non-Canonical Address" ],
2481 [0xe2, "Non-Canonical Address" ],
2482 [0xe3, "Non-Canonical Address" ],
2483 [0xe4, "Non-Canonical Address" ],
2484 [0xe5, "Non-Canonical Address" ],
2485 [0xe6, "Non-Canonical Address" ],
2486 [0xe7, "Non-Canonical Address" ],
2487 [0xe8, "Non-Canonical Address" ],
2488 [0xe9, "Non-Canonical Address" ],
2489 [0xea, "Non-Canonical Address" ],
2490 [0xeb, "Non-Canonical Address" ],
2491 [0xec, "Non-Canonical Address" ],
2492 [0xed, "Non-Canonical Address" ],
2493 [0xee, "Non-Canonical Address" ],
2494 [0xef, "Non-Canonical Address" ],
2495 [0xf0, "Non-Canonical Address" ],
2496 [0xf1, "Non-Canonical Address" ],
2497 [0xf2, "Non-Canonical Address" ],
2498 [0xf3, "Non-Canonical Address" ],
2499 [0xf4, "Non-Canonical Address" ],
2500 [0xf5, "Non-Canonical Address" ],
2501 [0xf6, "Non-Canonical Address" ],
2502 [0xf7, "Non-Canonical Address" ],
2503 [0xf8, "Non-Canonical Address" ],
2504 [0xf9, "Non-Canonical Address" ],
2505 [0xfa, "Non-Canonical Address" ],
2506 [0xfb, "Non-Canonical Address" ],
2507 [0xfc, "Non-Canonical Address" ],
2508 [0xfd, "Non-Canonical Address" ],
2509 [0xfe, "Non-Canonical Address" ],
2510 [0xff, "Non-Canonical Address" ],
2512 LANDriverNumber = uint8("lan_driver_number", "LAN Driver Number")
2513 LANdriverNodeAddress = bytes("lan_dvr_node_addr", "LAN Driver Node Address", 6)
2514 LANdriverRecvSize = uint32("lan_drv_rcv_size", "LAN Driver Receive Size")
2515 LANdriverReserved = uint16("lan_drv_reserved", "LAN Driver Reserved")
2516 LANdriverSendRetries = uint16("lan_drv_snd_retries", "LAN Driver Send Retries")
2517 LANdriverSharingFlags = uint16("lan_drv_share", "LAN Driver Sharing Flags")
2518 LANdriverShortName = fw_string("lan_drv_short_name", "LAN Driver Short Name", 40)
2519 LANdriverSlot = uint16("lan_drv_slot", "LAN Driver Slot")
2520 LANdriverSrcRouting = uint32("lan_drv_src_route", "LAN Driver Source Routing")
2521 LANdriverTransportTime = uint16("lan_drv_trans_time", "LAN Driver Transport Time")
2522 LastAccessedDate = uint16("last_access_date", "Last Accessed Date")
2523 LastAccessedDate.NWDate()
2524 LastAccessedTime = uint16("last_access_time", "Last Accessed Time")
2525 LastAccessedTime.NWTime()
2526 LastGarbCollect = uint32("last_garbage_collect", "Last Garbage Collection")
2527 LastInstance = uint32("last_instance", "Last Instance")
2528 LastRecordSeen = uint16("last_record_seen", "Last Record Seen")
2529 LastSearchIndex = uint16("last_search_index", "Search Index")
2530 LastSeen = uint32("last_seen", "Last Seen")
2531 LastSequenceNumber = uint16("last_sequence_number", "Sequence Number")
2532 Level = uint8("level", "Level")
2533 LFSCounters = uint32("lfs_counters", "LFS Counters")
2534 LimboDataStreamsCount = uint32("limbo_data_streams_count", "Limbo Data Streams Count")
2535 limbCount = uint32("limb_count", "Limb Count")
2536 LimboUsed = uint32("limbo_used", "Limbo Used")
2537 LocalConnectionID = uint32("local_connection_id", "Local Connection ID")
2538 LocalConnectionID.Display("BASE_HEX")
2539 LocalMaxPacketSize = uint32("local_max_packet_size", "Local Max Packet Size")
2540 LocalMaxSendSize = uint32("local_max_send_size", "Local Max Send Size")
2541 LocalMaxRecvSize = uint32("local_max_recv_size", "Local Max Recv Size")
2542 LocalLoginInfoCcode = uint8("local_login_info_ccode", "Local Login Info C Code")
2543 LocalTargetSocket = uint32("local_target_socket", "Local Target Socket")
2544 LocalTargetSocket.Display("BASE_HEX")
2545 LockAreaLen = uint32("lock_area_len", "Lock Area Length")
2546 LockAreasStartOffset = uint32("lock_areas_start_offset", "Lock Areas Start Offset")
2547 LockTimeout = uint16("lock_timeout", "Lock Timeout")
2548 Locked = val_string8("locked", "Locked Flag", [
2549 [ 0x00, "Not Locked Exclusively" ],
2550 [ 0x01, "Locked Exclusively" ],
2552 LockFlag = val_string8("lock_flag", "Lock Flag", [
2553 [ 0x00, "Not Locked, Log for Future Exclusive Lock" ],
2554 [ 0x01, "Exclusive Lock (Read/Write)" ],
2555 [ 0x02, "Log for Future Shared Lock"],
2556 [ 0x03, "Shareable Lock (Read-Only)" ],
2557 [ 0xfe, "Locked by a File Lock" ],
2558 [ 0xff, "Locked by Begin Share File Set" ],
2560 LockName = nstring8("lock_name", "Lock Name")
2561 LockStatus = val_string8("lock_status", "Lock Status", [
2562 [ 0x00, "Locked Exclusive" ],
2563 [ 0x01, "Locked Shareable" ],
2565 [ 0x06, "Lock is Held by TTS"],
2567 LockType = val_string8("lock_type", "Lock Type", [
2569 [ 0x01, "Open Shareable" ],
2571 [ 0x03, "Open Normal" ],
2572 [ 0x06, "TTS Holding Lock" ],
2573 [ 0x07, "Transaction Flag Set on This File" ],
2575 LogFileFlagHigh = bitfield8("log_file_flag_high", "Log File Flag (byte 2)", [
2576 bf_boolean8(0x80, "log_flag_call_back", "Call Back Requested" ),
2578 LogFileFlagLow = bitfield8("log_file_flag_low", "Log File Flag", [
2579 bf_boolean8(0x01, "log_flag_lock_file", "Lock File Immediately" ),
2581 LoggedObjectID = uint32("logged_object_id", "Logged in Object ID")
2582 LoggedObjectID.Display("BASE_HEX")
2583 LoggedCount = uint16("logged_count", "Logged Count")
2584 LogicalConnectionNumber = uint16("logical_connection_number", "Logical Connection Number", BE)
2585 LogicalDriveCount = uint8("logical_drive_count", "Logical Drive Count")
2586 LogicalDriveNumber = uint8("logical_drive_number", "Logical Drive Number")
2587 LogicalLockThreshold = uint8("logical_lock_threshold", "LogicalLockThreshold")
2588 LogicalRecordName = nstring8("logical_record_name", "Logical Record Name")
2589 LoginKey = bytes("login_key", "Login Key", 8)
2590 LogLockType = uint8("log_lock_type", "Log Lock Type")
2591 LogTtlRxPkts = uint32("log_ttl_rx_pkts", "Total Received Packets")
2592 LogTtlTxPkts = uint32("log_ttl_tx_pkts", "Total Transmitted Packets")
2593 LongName = fw_string("long_name", "Long Name", 32)
2594 LRUBlockWasDirty = uint16("lru_block_was_dirty", "LRU Block Was Dirty")
2596 MacAttr = bitfield16("mac_attr", "Attributes", [
2597 bf_boolean16(0x0001, "mac_attr_smode1", "Search Mode"),
2598 bf_boolean16(0x0002, "mac_attr_smode2", "Search Mode"),
2599 bf_boolean16(0x0004, "mac_attr_smode3", "Search Mode"),
2600 bf_boolean16(0x0010, "mac_attr_transaction", "Transaction"),
2601 bf_boolean16(0x0020, "mac_attr_index", "Index"),
2602 bf_boolean16(0x0040, "mac_attr_r_audit", "Read Audit"),
2603 bf_boolean16(0x0080, "mac_attr_w_audit", "Write Audit"),
2604 bf_boolean16(0x0100, "mac_attr_r_only", "Read Only"),
2605 bf_boolean16(0x0200, "mac_attr_hidden", "Hidden"),
2606 bf_boolean16(0x0400, "mac_attr_system", "System"),
2607 bf_boolean16(0x0800, "mac_attr_execute_only", "Execute Only"),
2608 bf_boolean16(0x1000, "mac_attr_subdirectory", "Subdirectory"),
2609 bf_boolean16(0x2000, "mac_attr_archive", "Archive"),
2610 bf_boolean16(0x8000, "mac_attr_share", "Shareable File"),
2612 MACBackupDate = uint16("mac_backup_date", "Mac Backup Date")
2613 MACBackupDate.NWDate()
2614 MACBackupTime = uint16("mac_backup_time", "Mac Backup Time")
2615 MACBackupTime.NWTime()
2616 MacBaseDirectoryID = uint32("mac_base_directory_id", "Mac Base Directory ID")
2617 MacBaseDirectoryID.Display("BASE_HEX")
2618 MACCreateDate = uint16("mac_create_date", "Mac Create Date")
2619 MACCreateDate.NWDate()
2620 MACCreateTime = uint16("mac_create_time", "Mac Create Time")
2621 MACCreateTime.NWTime()
2622 MacDestinationBaseID = uint32("mac_destination_base_id", "Mac Destination Base ID")
2623 MacDestinationBaseID.Display("BASE_HEX")
2624 MacFinderInfo = bytes("mac_finder_info", "Mac Finder Information", 32)
2625 MacLastSeenID = uint32("mac_last_seen_id", "Mac Last Seen ID")
2626 MacLastSeenID.Display("BASE_HEX")
2627 MacSourceBaseID = uint32("mac_source_base_id", "Mac Source Base ID")
2628 MacSourceBaseID.Display("BASE_HEX")
2629 MajorVersion = uint32("major_version", "Major Version")
2630 MaxBytes = uint16("max_bytes", "Maximum Number of Bytes")
2631 MaxDataStreams = uint32("max_data_streams", "Maximum Data Streams")
2632 MaxDirDepth = uint32("max_dir_depth", "Maximum Directory Depth")
2633 MaximumSpace = uint16("max_space", "Maximum Space")
2634 MaxNumOfConn = uint32("max_num_of_conn", "Maximum Number of Connections")
2635 MaxNumOfLANS = uint32("max_num_of_lans", "Maximum Number Of LAN's")
2636 MaxNumOfMedias = uint32("max_num_of_medias", "Maximum Number Of Media's")
2637 MaxNumOfNmeSps = uint32("max_num_of_nme_sps", "Maximum Number Of Name Spaces")
2638 MaxNumOfSpoolPr = uint32("max_num_of_spool_pr", "Maximum Number Of Spool Printers")
2639 MaxNumOfStacks = uint32("max_num_of_stacks", "Maximum Number Of Stacks")
2640 MaxNumOfUsers = uint32("max_num_of_users", "Maximum Number Of Users")
2641 MaxNumOfVol = uint32("max_num_of_vol", "Maximum Number of Volumes")
2642 MaxSpace = uint32("maxspace", "Maximum Space")
2643 MaxUsedDynamicSpace = uint32("max_used_dynamic_space", "Max Used Dynamic Space")
2644 MediaList = uint32("media_list", "Media List")
2645 MediaListCount = uint32("media_list_count", "Media List Count")
2646 MediaName = nstring8("media_name", "Media Name")
2647 MediaNumber = uint32("media_number", "Media Number")
2648 MediaObjectType = val_string8("media_object_type", "Object Type", [
2649 [ 0x00, "Adapter" ],
2650 [ 0x01, "Changer" ],
2651 [ 0x02, "Removable Device" ],
2653 [ 0x04, "Removable Media" ],
2654 [ 0x05, "Partition" ],
2659 [ 0x0a, "Volume Segment" ],
2662 [ 0x0d, "Fixed Media" ],
2663 [ 0x0e, "Unknown" ],
2665 MemberName = nstring8("member_name", "Member Name")
2666 MemberType = val_string16("member_type", "Member Type", [
2667 [ 0x0000, "Unknown" ],
2669 [ 0x0002, "User group" ],
2670 [ 0x0003, "Print queue" ],
2671 [ 0x0004, "NetWare file server" ],
2672 [ 0x0005, "Job server" ],
2673 [ 0x0006, "Gateway" ],
2674 [ 0x0007, "Print server" ],
2675 [ 0x0008, "Archive queue" ],
2676 [ 0x0009, "Archive server" ],
2677 [ 0x000a, "Job queue" ],
2678 [ 0x000b, "Administration" ],
2679 [ 0x0021, "NAS SNA gateway" ],
2680 [ 0x0026, "Remote bridge server" ],
2681 [ 0x0027, "TCP/IP gateway" ],
2683 MessageLanguage = uint32("message_language", "NLM Language")
2684 MigratedFiles = uint32("migrated_files", "Migrated Files")
2685 MigratedSectors = uint32("migrated_sectors", "Migrated Sectors")
2686 MinorVersion = uint32("minor_version", "Minor Version")
2687 Minute = uint8("s_minute", "Minutes")
2688 MixedModePathFlag = uint8("mixed_mode_path_flag", "Mixed Mode Path Flag")
2689 ModifiedDate = uint16("modified_date", "Modified Date")
2690 ModifiedDate.NWDate()
2691 ModifiedTime = uint16("modified_time", "Modified Time")
2692 ModifiedTime.NWTime()
2693 ModifierID = uint32("modifier_id", "Modifier ID", BE)
2694 ModifierID.Display("BASE_HEX")
2695 ModifyDOSInfoMask = bitfield16("modify_dos_info_mask", "Modify DOS Info Mask", [
2696 bf_boolean16(0x0002, "modify_dos_read", "Attributes"),
2697 bf_boolean16(0x0004, "modify_dos_write", "Creation Date"),
2698 bf_boolean16(0x0008, "modify_dos_open", "Creation Time"),
2699 bf_boolean16(0x0010, "modify_dos_create", "Creator ID"),
2700 bf_boolean16(0x0020, "modify_dos_delete", "Archive Date"),
2701 bf_boolean16(0x0040, "modify_dos_parent", "Archive Time"),
2702 bf_boolean16(0x0080, "modify_dos_search", "Archiver ID"),
2703 bf_boolean16(0x0100, "modify_dos_mdate", "Modify Date"),
2704 bf_boolean16(0x0200, "modify_dos_mtime", "Modify Time"),
2705 bf_boolean16(0x0400, "modify_dos_mid", "Modifier ID"),
2706 bf_boolean16(0x0800, "modify_dos_laccess", "Last Access"),
2707 bf_boolean16(0x1000, "modify_dos_inheritance", "Inheritance"),
2708 bf_boolean16(0x2000, "modify_dos_max_space", "Maximum Space"),
2710 Month = val_string8("s_month", "Month", [
2719 [ 0x09, "September"],
2721 [ 0x0b, "November"],
2722 [ 0x0c, "December"],
2725 MoreFlag = val_string8("more_flag", "More Flag", [
2726 [ 0x00, "No More Segments/Entries Available" ],
2727 [ 0x01, "More Segments/Entries Available" ],
2728 [ 0xff, "More Segments/Entries Available" ],
2730 MoreProperties = val_string8("more_properties", "More Properties", [
2731 [ 0x00, "No More Properties Available" ],
2732 [ 0x01, "No More Properties Available" ],
2733 [ 0xff, "More Properties Available" ],
2736 Name = nstring8("name", "Name")
2737 Name12 = fw_string("name12", "Name", 12)
2738 NameLen = uint8("name_len", "Name Space Length")
2739 NameLength = uint8("name_length", "Name Length")
2740 NameList = uint32("name_list", "Name List")
2742 # XXX - should this value be used to interpret the characters in names,
2743 # search patterns, and the like?
2745 # We need to handle character sets better, e.g. translating strings
2746 # from whatever character set they are in the packet (DOS/Windows code
2747 # pages, ISO character sets, UNIX EUC character sets, UTF-8, UCS-2/Unicode,
2748 # Mac character sets, etc.) into UCS-4 or UTF-8 and storing them as such
2749 # in the protocol tree, and displaying them as best we can.
2751 NameSpace = val_string8("name_space", "Name Space", [
2756 [ 0x04, "OS/2, Long" ],
2758 NamesSpaceInfoMask = bitfield16("ns_info_mask", "Names Space Info Mask", [
2759 bf_boolean16(0x0001, "ns_info_mask_modify", "Modify Name"),
2760 bf_boolean16(0x0002, "ns_info_mask_fatt", "File Attributes"),
2761 bf_boolean16(0x0004, "ns_info_mask_cdate", "Creation Date"),
2762 bf_boolean16(0x0008, "ns_info_mask_ctime", "Creation Time"),
2763 bf_boolean16(0x0010, "ns_info_mask_owner", "Owner ID"),
2764 bf_boolean16(0x0020, "ns_info_mask_adate", "Archive Date"),
2765 bf_boolean16(0x0040, "ns_info_mask_atime", "Archive Time"),
2766 bf_boolean16(0x0080, "ns_info_mask_aid", "Archiver ID"),
2767 bf_boolean16(0x0100, "ns_info_mask_udate", "Update Date"),
2768 bf_boolean16(0x0200, "ns_info_mask_utime", "Update Time"),
2769 bf_boolean16(0x0400, "ns_info_mask_uid", "Update ID"),
2770 bf_boolean16(0x0800, "ns_info_mask_acc_date", "Access Date"),
2771 bf_boolean16(0x1000, "ns_info_mask_max_acc_mask", "Inheritance"),
2772 bf_boolean16(0x2000, "ns_info_mask_max_space", "Maximum Space"),
2774 NameSpaceName = nstring8("name_space_name", "Name Space Name")
2775 nameType = uint32("name_type", "nameType")
2776 NCPdataSize = uint32("ncp_data_size", "NCP Data Size")
2777 NCPextensionMajorVersion = uint8("ncp_extension_major_version", "NCP Extension Major Version")
2778 NCPextensionMinorVersion = uint8("ncp_extension_minor_version", "NCP Extension Minor Version")
2779 NCPextensionName = nstring8("ncp_extension_name", "NCP Extension Name")
2780 NCPextensionNumber = uint32("ncp_extension_number", "NCP Extension Number")
2781 NCPextensionNumber.Display("BASE_HEX")
2782 NCPExtensionNumbers = uint32("ncp_extension_numbers", "NCP Extension Numbers")
2783 NCPextensionRevisionNumber = uint8("ncp_extension_revision_number", "NCP Extension Revision Number")
2784 NCPPeakStaInUse = uint32("ncp_peak_sta_in_use", "Peak Number of Connections since Server was brought up")
2785 NCPStaInUseCnt = uint32("ncp_sta_in_use", "Number of Workstations Connected to Server")
2786 NDSRequestFlags = bitfield16("nds_request_flags", "NDS Request Flags", [
2787 bf_boolean16(0x0001, "nds_request_flags_output", "Output Fields"),
2788 bf_boolean16(0x0002, "nds_request_flags_no_such_entry", "No Such Entry"),
2789 bf_boolean16(0x0004, "nds_request_flags_local_entry", "Local Entry"),
2790 bf_boolean16(0x0008, "nds_request_flags_type_ref", "Type Referral"),
2791 bf_boolean16(0x0010, "nds_request_flags_alias_ref", "Alias Referral"),
2792 bf_boolean16(0x0020, "nds_request_flags_req_cnt", "Request Count"),
2793 bf_boolean16(0x0040, "nds_request_flags_req_data_size", "Request Data Size"),
2794 bf_boolean16(0x0080, "nds_request_flags_reply_data_size", "Reply Data Size"),
2795 bf_boolean16(0x0100, "nds_request_flags_trans_ref", "Transport Referral"),
2796 bf_boolean16(0x0200, "nds_request_flags_trans_ref2", "Transport Referral"),
2797 bf_boolean16(0x0400, "nds_request_flags_up_ref", "Up Referral"),
2798 bf_boolean16(0x0800, "nds_request_flags_dn_ref", "Down Referral"),
2800 NDSStatus = uint32("nds_status", "NDS Status")
2801 NetBIOSBroadcastWasPropogated = uint32("netbios_broadcast_was_propogated", "NetBIOS Broadcast Was Propogated")
2802 NetIDNumber = uint32("net_id_number", "Net ID Number")
2803 NetIDNumber.Display("BASE_HEX")
2804 NetAddress = nbytes32("address", "Address")
2805 NetStatus = uint16("net_status", "Network Status")
2806 NetWareAccessHandle = bytes("netware_access_handle", "NetWare Access Handle", 6)
2807 NetworkAddress = uint32("network_address", "Network Address")
2808 NetworkAddress.Display("BASE_HEX")
2809 NetworkNodeAddress = bytes("network_node_address", "Network Node Address", 6)
2810 NetworkNumber = uint32("network_number", "Network Number")
2811 NetworkNumber.Display("BASE_HEX")
2813 # XXX - this should have the "ipx_socket_vals" value_string table
2814 # from "packet-ipx.c".
2816 NetworkSocket = uint16("network_socket", "Network Socket")
2817 NetworkSocket.Display("BASE_HEX")
2818 NewAccessRights = bitfield16("new_access_rights_mask", "New Access Rights", [
2819 bf_boolean16(0x0001, "new_access_rights_read", "Read"),
2820 bf_boolean16(0x0002, "new_access_rights_write", "Write"),
2821 bf_boolean16(0x0004, "new_access_rights_open", "Open"),
2822 bf_boolean16(0x0008, "new_access_rights_create", "Create"),
2823 bf_boolean16(0x0010, "new_access_rights_delete", "Delete"),
2824 bf_boolean16(0x0020, "new_access_rights_parental", "Parental"),
2825 bf_boolean16(0x0040, "new_access_rights_search", "Search"),
2826 bf_boolean16(0x0080, "new_access_rights_modify", "Modify"),
2827 bf_boolean16(0x0100, "new_access_rights_supervisor", "Supervisor"),
2829 NewDirectoryID = uint32("new_directory_id", "New Directory ID")
2830 NewDirectoryID.Display("BASE_HEX")
2831 NewEAHandle = uint32("new_ea_handle", "New EA Handle")
2832 NewEAHandle.Display("BASE_HEX")
2833 NewFileName = fw_string("new_file_name", "New File Name", 14)
2834 NewFileNameLen = nstring8("new_file_name_len", "New File Name")
2835 NewFileSize = uint32("new_file_size", "New File Size")
2836 NewPassword = nstring8("new_password", "New Password")
2837 NewPath = nstring8("new_path", "New Path")
2838 NewPosition = uint8("new_position", "New Position")
2839 NewObjectName = nstring8("new_object_name", "New Object Name")
2840 NextCntBlock = uint32("next_cnt_block", "Next Count Block")
2841 NextHugeStateInfo = bytes("next_huge_state_info", "Next Huge State Info", 16)
2842 nextLimbScanNum = uint32("next_limb_scan_num", "Next Limb Scan Number")
2843 NextObjectID = uint32("next_object_id", "Next Object ID", BE)
2844 NextObjectID.Display("BASE_HEX")
2845 NextRecord = uint32("next_record", "Next Record")
2846 NextRequestRecord = uint16("next_request_record", "Next Request Record")
2847 NextSearchIndex = uint16("next_search_index", "Next Search Index")
2848 NextSearchNumber = uint16("next_search_number", "Next Search Number")
2849 NextSearchNum = uint32("nxt_search_num", "Next Search Number")
2850 nextStartingNumber = uint32("next_starting_number", "Next Starting Number")
2851 NextTrusteeEntry = uint32("next_trustee_entry", "Next Trustee Entry")
2852 NextVolumeNumber = uint32("next_volume_number", "Next Volume Number")
2853 NLMBuffer = nstring8("nlm_buffer", "Buffer")
2854 NLMcount = uint32("nlm_count", "NLM Count")
2855 NLMFlags = bitfield8("nlm_flags", "Flags", [
2856 bf_boolean8(0x01, "nlm_flags_reentrant", "ReEntrant"),
2857 bf_boolean8(0x02, "nlm_flags_multiple", "Can Load Multiple Times"),
2858 bf_boolean8(0x04, "nlm_flags_synchronize", "Synchronize Start"),
2859 bf_boolean8(0x08, "nlm_flags_pseudo", "PseudoPreemption"),
2861 NLMLoadOptions = uint32("nlm_load_options", "NLM Load Options")
2862 NLMName = stringz("nlm_name_stringz", "NLM Name")
2863 NLMNumber = uint32("nlm_number", "NLM Number")
2864 NLMNumbers = uint32("nlm_numbers", "NLM Numbers")
2865 NLMsInList = uint32("nlms_in_list", "NLM's in List")
2866 NLMStartNumber = uint32("nlm_start_num", "NLM Start Number")
2867 NLMType = val_string8("nlm_type", "NLM Type", [
2868 [ 0x00, "Generic NLM (.NLM)" ],
2869 [ 0x01, "LAN Driver (.LAN)" ],
2870 [ 0x02, "Disk Driver (.DSK)" ],
2871 [ 0x03, "Name Space Support Module (.NAM)" ],
2872 [ 0x04, "Utility or Support Program (.NLM)" ],
2873 [ 0x05, "Mirrored Server Link (.MSL)" ],
2874 [ 0x06, "OS NLM (.NLM)" ],
2875 [ 0x07, "Paged High OS NLM (.NLM)" ],
2876 [ 0x08, "Host Adapter Module (.HAM)" ],
2877 [ 0x09, "Custom Device Module (.CDM)" ],
2878 [ 0x0a, "File System Engine (.NLM)" ],
2879 [ 0x0b, "Real Mode NLM (.NLM)" ],
2880 [ 0x0c, "Hidden NLM (.NLM)" ],
2881 [ 0x15, "NICI Support (.NLM)" ],
2882 [ 0x16, "NICI Support (.NLM)" ],
2883 [ 0x17, "Cryptography (.NLM)" ],
2884 [ 0x18, "Encryption (.NLM)" ],
2885 [ 0x19, "NICI Support (.NLM)" ],
2886 [ 0x1c, "NICI Support (.NLM)" ],
2888 nodeFlags = uint32("node_flags", "Node Flags")
2889 nodeFlags.Display("BASE_HEX")
2890 NoMoreMemAvlCnt = uint32("no_more_mem_avail", "No More Memory Available Count")
2891 NonDedFlag = boolean8("non_ded_flag", "Non Dedicated Flag")
2892 NonFreeableAvailableSubAllocSectors = uint32("non_freeable_avail_sub_alloc_sectors", "Non Freeable Available Sub Alloc Sectors")
2893 NonFreeableLimboSectors = uint32("non_freeable_limbo_sectors", "Non Freeable Limbo Sectors")
2894 NotUsableSubAllocSectors = uint32("not_usable_sub_alloc_sectors", "Not Usable Sub Alloc Sectors")
2895 NotYetPurgeableBlocks = uint32("not_yet_purgeable_blocks", "Not Yet Purgeable Blocks")
2896 NSInfoBitMask = uint32("ns_info_bit_mask", "Name Space Info Bit Mask")
2897 NSSOAllInFlags = bitfield32("nsso_all_in_flags", "SecretStore All Input Flags",[
2898 bf_boolean32(0x00000010, "nsso_all_unicode", "Unicode Data"),
2899 bf_boolean32(0x00000080, "nsso_set_tree", "Set Tree"),
2900 bf_boolean32(0x00000200, "nsso_destroy_ctx", "Destroy Context"),
2902 NSSOGetServiceInFlags = bitfield32("nsso_get_svc_in_flags", "SecretStore Get Service Flags",[
2903 bf_boolean32(0x00000100, "nsso_get_ctx", "Get Context"),
2905 NSSOReadInFlags = bitfield32("nsso_read_in_flags", "SecretStore Read Flags",[
2906 bf_boolean32(0x00000001, "nsso_rw_enh_prot", "Read/Write Enhanced Protection"),
2907 bf_boolean32(0x00000008, "nsso_repair", "Repair SecretStore"),
2909 NSSOReadOrUnlockInFlags = bitfield32("nsso_read_or_unlock_in_flags", "SecretStore Read or Unlock Flags",[
2910 bf_boolean32(0x00000004, "nsso_ep_master_pwd", "Master Password used instead of ENH Password"),
2912 NSSOUnlockInFlags = bitfield32("nsso_unlock_in_flags", "SecretStore Unlock Flags",[
2913 bf_boolean32(0x00000004, "nsso_rmv_lock", "Remove Lock from Store"),
2915 NSSOWriteInFlags = bitfield32("nsso_write_in_flags", "SecretStore Write Flags",[
2916 bf_boolean32(0x00000001, "nsso_enh_prot", "Enhanced Protection"),
2917 bf_boolean32(0x00000002, "nsso_create_id", "Create ID"),
2918 bf_boolean32(0x00000040, "nsso_ep_pwd_used", "Enhanced Protection Password Used"),
2920 NSSOContextOutFlags = bitfield32("nsso_cts_out_flags", "Type of Context",[
2921 bf_boolean32(0x00000001, "nsso_ds_ctx", "DSAPI Context"),
2922 bf_boolean32(0x00000080, "nsso_ldap_ctx", "LDAP Context"),
2923 bf_boolean32(0x00000200, "nsso_dc_ctx", "Reserved"),
2925 NSSOGetServiceOutFlags = bitfield32("nsso_get_svc_out_flags", "SecretStore Status Flags",[
2926 bf_boolean32(0x00400000, "nsso_mstr_pwd", "Master Password Present"),
2928 NSSOGetServiceReadOutFlags = bitfield32("nsso_get_svc_read_out_flags", "SecretStore Status Flags",[
2929 bf_boolean32(0x00800000, "nsso_mp_disabled", "Master Password Disabled"),
2931 NSSOReadOutFlags = bitfield32("nsso_read_out_flags", "SecretStore Read Flags",[
2932 bf_boolean32(0x00010000, "nsso_secret_locked", "Enhanced Protection Lock on Secret"),
2933 bf_boolean32(0x00020000, "nsso_secret_not_init", "Secret Not Yet Initialized"),
2934 bf_boolean32(0x00040000, "nsso_secret_marked", "Secret Marked for Enhanced Protection"),
2935 bf_boolean32(0x00080000, "nsso_secret_not_sync", "Secret Not Yet Synchronized in NDS"),
2936 bf_boolean32(0x00200000, "nsso_secret_enh_pwd", "Enhanced Protection Password on Secret"),
2938 NSSOReadOutStatFlags = bitfield32("nsso_read_out_stat_flags", "SecretStore Read Status Flags",[
2939 bf_boolean32(0x00100000, "nsso_admin_mod", "Admin Modified Secret Last"),
2941 NSSOVerb = val_string8("nsso_verb", "SecretStore Verb", [
2942 [ 0x00, "Query Server" ],
2943 [ 0x01, "Read App Secrets" ],
2944 [ 0x02, "Write App Secrets" ],
2945 [ 0x03, "Add Secret ID" ],
2946 [ 0x04, "Remove Secret ID" ],
2947 [ 0x05, "Remove SecretStore" ],
2948 [ 0x06, "Enumerate SecretID's" ],
2949 [ 0x07, "Unlock Store" ],
2950 [ 0x08, "Set Master Password" ],
2951 [ 0x09, "Get Service Information" ],
2953 NSSpecificInfo = fw_string("ns_specific_info", "Name Space Specific Info", 512)
2954 NumberOfAllocs = uint32("num_of_allocs", "Number of Allocations")
2955 NumberOfAttributes = uint32("number_of_attributes", "Number of Attributes")
2956 NumberOfCPUs = uint32("number_of_cpus", "Number of CPU's")
2957 NumberOfDataStreams = uint16("number_of_data_streams", "Number of Data Streams")
2958 NumberOfDynamicMemoryAreas = uint16("number_of_dynamic_memory_areas", "Number Of Dynamic Memory Areas")
2959 NumberOfEntries = uint8("number_of_entries", "Number of Entries")
2960 NumberOfLocks = uint8("number_of_locks", "Number of Locks")
2961 NumberOfMinutesToDelay = uint32("number_of_minutes_to_delay", "Number of Minutes to Delay")
2962 NumberOfNCPExtensions = uint32("number_of_ncp_extensions", "Number Of NCP Extensions")
2963 NumberOfNSLoaded = uint16("number_of_ns_loaded", "Number Of Name Spaces Loaded")
2964 NumberOfProtocols = uint8("number_of_protocols", "Number of Protocols")
2965 NumberOfRecords = uint16("number_of_records", "Number of Records")
2966 NumberOfReferencedPublics = uint32("num_of_ref_publics", "Number of Referenced Public Symbols")
2967 NumberOfSemaphores = uint16("number_of_semaphores", "Number Of Semaphores")
2968 NumberOfServiceProcesses = uint8("number_of_service_processes", "Number Of Service Processes")
2969 NumberOfSetCategories = uint32("number_of_set_categories", "Number Of Set Categories")
2970 NumberOfSMs = uint32("number_of_sms", "Number Of Storage Medias")
2971 NumberOfStations = uint8("number_of_stations", "Number of Stations")
2972 NumBytes = uint16("num_bytes", "Number of Bytes")
2973 NumOfCCinPkt = uint32("num_of_cc_in_pkt", "Number of Custom Counters in Packet")
2974 NumOfChecks = uint32("num_of_checks", "Number of Checks")
2975 NumOfEntries = uint32("num_of_entries", "Number of Entries")
2976 NumOfFilesMigrated = uint32("num_of_files_migrated", "Number Of Files Migrated")
2977 NumOfGarbageColl = uint32("num_of_garb_coll", "Number of Garbage Collections")
2978 NumOfNCPReqs = uint32("num_of_ncp_reqs", "Number of NCP Requests since Server was brought up")
2979 NumOfSegments = uint32("num_of_segments", "Number of Segments")
2981 ObjectCount = uint32("object_count", "Object Count")
2982 ObjectFlags = val_string8("object_flags", "Object Flags", [
2983 [ 0x00, "Dynamic object" ],
2984 [ 0x01, "Static object" ],
2986 ObjectHasProperties = val_string8("object_has_properites", "Object Has Properties", [
2987 [ 0x00, "No properties" ],
2988 [ 0xff, "One or more properties" ],
2990 ObjectID = uint32("object_id", "Object ID", BE)
2991 ObjectID.Display('BASE_HEX')
2992 ObjectIDCount = uint16("object_id_count", "Object ID Count")
2993 ObjectIDInfo = uint32("object_id_info", "Object Information")
2994 ObjectInfoReturnCount = uint32("object_info_rtn_count", "Object Information Count")
2995 ObjectName = nstring8("object_name", "Object Name")
2996 ObjectNameLen = fw_string("object_name_len", "Object Name", 48)
2997 ObjectNameStringz = stringz("object_name_stringz", "Object Name")
2998 ObjectNumber = uint32("object_number", "Object Number")
2999 ObjectSecurity = val_string8("object_security", "Object Security", [
3000 [ 0x00, "Object Read (Anyone) / Object Write (Anyone)" ],
3001 [ 0x01, "Object Read (Logged in) / Object Write (Anyone)" ],
3002 [ 0x02, "Object Read (Logged in as Object) / Object Write (Anyone)" ],
3003 [ 0x03, "Object Read (Supervisor) / Object Write (Anyone)" ],
3004 [ 0x04, "Object Read (Operating System Only) / Object Write (Anyone)" ],
3005 [ 0x10, "Object Read (Anyone) / Object Write (Logged in)" ],
3006 [ 0x11, "Object Read (Logged in) / Object Write (Logged in)" ],
3007 [ 0x12, "Object Read (Logged in as Object) / Object Write (Logged in)" ],
3008 [ 0x13, "Object Read (Supervisor) / Object Write (Logged in)" ],
3009 [ 0x14, "Object Read (Operating System Only) / Object Write (Logged in)" ],
3010 [ 0x20, "Object Read (Anyone) / Object Write (Logged in as Object)" ],
3011 [ 0x21, "Object Read (Logged in) / Object Write (Logged in as Object)" ],
3012 [ 0x22, "Object Read (Logged in as Object) / Object Write (Logged in as Object)" ],
3013 [ 0x23, "Object Read (Supervisor) / Object Write (Logged in as Object)" ],
3014 [ 0x24, "Object Read (Operating System Only) / Object Write (Logged in as Object)" ],
3015 [ 0x30, "Object Read (Anyone) / Object Write (Supervisor)" ],
3016 [ 0x31, "Object Read (Logged in) / Object Write (Supervisor)" ],
3017 [ 0x32, "Object Read (Logged in as Object) / Object Write (Supervisor)" ],
3018 [ 0x33, "Object Read (Supervisor) / Object Write (Supervisor)" ],
3019 [ 0x34, "Object Read (Operating System Only) / Object Write (Supervisor)" ],
3020 [ 0x40, "Object Read (Anyone) / Object Write (Operating System Only)" ],
3021 [ 0x41, "Object Read (Logged in) / Object Write (Operating System Only)" ],
3022 [ 0x42, "Object Read (Logged in as Object) / Object Write (Operating System Only)" ],
3023 [ 0x43, "Object Read (Supervisor) / Object Write (Operating System Only)" ],
3024 [ 0x44, "Object Read (Operating System Only) / Object Write (Operating System Only)" ],
3027 # XXX - should this use the "server_vals[]" value_string array from
3030 # XXX - should this list be merged with that list? There are some
3031 # oddities, e.g. this list has 0x03f5 for "Microsoft SQL Server", but
3032 # the list from "packet-ipx.c" has 0xf503 for that - is that just
3033 # byte-order confusion?
3035 ObjectType = val_string16("object_type", "Object Type", [
3036 [ 0x0000, "Unknown" ],
3038 [ 0x0002, "User group" ],
3039 [ 0x0003, "Print queue" ],
3040 [ 0x0004, "NetWare file server" ],
3041 [ 0x0005, "Job server" ],
3042 [ 0x0006, "Gateway" ],
3043 [ 0x0007, "Print server" ],
3044 [ 0x0008, "Archive queue" ],
3045 [ 0x0009, "Archive server" ],
3046 [ 0x000a, "Job queue" ],
3047 [ 0x000b, "Administration" ],
3048 [ 0x0021, "NAS SNA gateway" ],
3049 [ 0x0026, "Remote bridge server" ],
3050 [ 0x0027, "TCP/IP gateway" ],
3051 [ 0x0047, "Novell Print Server" ],
3052 [ 0x004b, "Btrieve Server" ],
3053 [ 0x004c, "NetWare SQL Server" ],
3054 [ 0x0064, "ARCserve" ],
3055 [ 0x0066, "ARCserve 3.0" ],
3056 [ 0x0076, "NetWare SQL" ],
3057 [ 0x00a0, "Gupta SQL Base Server" ],
3058 [ 0x00a1, "Powerchute" ],
3059 [ 0x0107, "NetWare Remote Console" ],
3060 [ 0x01cb, "Shiva NetModem/E" ],
3061 [ 0x01cc, "Shiva LanRover/E" ],
3062 [ 0x01cd, "Shiva LanRover/T" ],
3063 [ 0x01d8, "Castelle FAXPress Server" ],
3064 [ 0x01da, "Castelle Print Server" ],
3065 [ 0x01dc, "Castelle Fax Server" ],
3066 [ 0x0200, "Novell SQL Server" ],
3067 [ 0x023a, "NetWare Lanalyzer Agent" ],
3068 [ 0x023c, "DOS Target Service Agent" ],
3069 [ 0x023f, "NetWare Server Target Service Agent" ],
3070 [ 0x024f, "Appletalk Remote Access Service" ],
3071 [ 0x0263, "NetWare Management Agent" ],
3072 [ 0x0264, "Global MHS" ],
3074 [ 0x026a, "NetWare Management/NMS Console" ],
3075 [ 0x026b, "NetWare Time Synchronization" ],
3076 [ 0x0273, "Nest Device" ],
3077 [ 0x0274, "GroupWise Message Multiple Servers" ],
3078 [ 0x0278, "NDS Replica Server" ],
3079 [ 0x0282, "NDPS Service Registry Service" ],
3080 [ 0x028a, "MPR/IPX Address Mapping Gateway" ],
3081 [ 0x028b, "ManageWise" ],
3082 [ 0x0293, "NetWare 6" ],
3083 [ 0x030c, "HP JetDirect" ],
3084 [ 0x0328, "Watcom SQL Server" ],
3085 [ 0x0355, "Backup Exec" ],
3086 [ 0x039b, "Lotus Notes" ],
3087 [ 0x03e1, "Univel Server" ],
3088 [ 0x03f5, "Microsoft SQL Server" ],
3089 [ 0x055e, "Lexmark Print Server" ],
3090 [ 0x0640, "Microsoft Gateway Services for NetWare" ],
3091 [ 0x064e, "Microsoft Internet Information Server" ],
3092 [ 0x077b, "Advantage Database Server" ],
3093 [ 0x07a7, "Backup Exec Job Queue" ],
3094 [ 0x07a8, "Backup Exec Job Manager" ],
3095 [ 0x07a9, "Backup Exec Job Service" ],
3096 [ 0x8202, "NDPS Broker" ],
3099 OCRetFlags = val_string8("o_c_ret_flags", "Open Create Return Flags", [
3100 [ 0x00, "No CallBack has been registered (No Op-Lock)" ],
3101 [ 0x01, "Request has been registered for CallBack (Op-Lock)" ],
3103 OldestDeletedFileAgeInTicks = uint32("oldest_deleted_file_age_in_ticks", "Oldest Deleted File Age in Ticks")
3104 OldFileName = bytes("old_file_name", "Old File Name", 15)
3105 OldFileSize = uint32("old_file_size", "Old File Size")
3106 OpenCount = uint16("open_count", "Open Count")
3107 OpenCreateAction = bitfield8("open_create_action", "Open Create Action", [
3108 bf_boolean8(0x01, "open_create_action_opened", "Opened"),
3109 bf_boolean8(0x02, "open_create_action_created", "Created"),
3110 bf_boolean8(0x04, "open_create_action_replaced", "Replaced"),
3111 bf_boolean8(0x08, "open_create_action_compressed", "Compressed"),
3112 bf_boolean8(0x80, "open_create_action_read_only", "Read Only"),
3114 OpenCreateMode = bitfield8("open_create_mode", "Open Create Mode", [
3115 bf_boolean8(0x01, "open_create_mode_open", "Open existing file (file must exist)"),
3116 bf_boolean8(0x02, "open_create_mode_replace", "Replace existing file"),
3117 bf_boolean8(0x08, "open_create_mode_create", "Create new file or subdirectory (file or subdirectory cannot exist)"),
3118 bf_boolean8(0x80, "open_create_mode_oplock", "Open Callback (Op-Lock)"),
3120 OpenForReadCount = uint16("open_for_read_count", "Open For Read Count")
3121 OpenForWriteCount = uint16("open_for_write_count", "Open For Write Count")
3122 OpenRights = bitfield8("open_rights", "Open Rights", [
3123 bf_boolean8(0x01, "open_rights_read_only", "Read Only"),
3124 bf_boolean8(0x02, "open_rights_write_only", "Write Only"),
3125 bf_boolean8(0x04, "open_rights_deny_read", "Deny Read"),
3126 bf_boolean8(0x08, "open_rights_deny_write", "Deny Write"),
3127 bf_boolean8(0x10, "open_rights_compat", "Compatibility"),
3128 bf_boolean8(0x40, "open_rights_write_thru", "Write Through"),
3130 OptionNumber = uint8("option_number", "Option Number")
3131 originalSize = uint32("original_size", "Original Size")
3132 OSLanguageID = uint8("os_language_id", "OS Language ID")
3133 OSMajorVersion = uint8("os_major_version", "OS Major Version")
3134 OSMinorVersion = uint8("os_minor_version", "OS Minor Version")
3135 OSRevision = uint8("os_revision", "OS Revision")
3136 OtherFileForkSize = uint32("other_file_fork_size", "Other File Fork Size")
3137 OtherFileForkFAT = uint32("other_file_fork_fat", "Other File Fork FAT Entry")
3138 OutgoingPacketDiscardedNoTurboBuffer = uint16("outgoing_packet_discarded_no_turbo_buffer", "Outgoing Packet Discarded No Turbo Buffer")
3140 PacketsDiscardedByHopCount = uint16("packets_discarded_by_hop_count", "Packets Discarded By Hop Count")
3141 PacketsDiscardedUnknownNet = uint16("packets_discarded_unknown_net", "Packets Discarded Unknown Net")
3142 PacketsFromInvalidConnection = uint16("packets_from_invalid_connection", "Packets From Invalid Connection")
3143 PacketsReceivedDuringProcessing = uint16("packets_received_during_processing", "Packets Received During Processing")
3144 PacketsWithBadRequestType = uint16("packets_with_bad_request_type", "Packets With Bad Request Type")
3145 PacketsWithBadSequenceNumber = uint16("packets_with_bad_sequence_number", "Packets With Bad Sequence Number")
3146 PageTableOwnerFlag = uint32("page_table_owner_flag", "Page Table Owner")
3147 ParentID = uint32("parent_id", "Parent ID")
3148 ParentID.Display("BASE_HEX")
3149 ParentBaseID = uint32("parent_base_id", "Parent Base ID")
3150 ParentBaseID.Display("BASE_HEX")
3151 ParentDirectoryBase = uint32("parent_directory_base", "Parent Directory Base")
3152 ParentDOSDirectoryBase = uint32("parent_dos_directory_base", "Parent DOS Directory Base")
3153 ParentObjectNumber = uint32("parent_object_number", "Parent Object Number")
3154 ParentObjectNumber.Display("BASE_HEX")
3155 Password = nstring8("password", "Password")
3156 PathBase = uint8("path_base", "Path Base")
3157 PathComponentCount = uint16("path_component_count", "Path Component Count")
3158 PathComponentSize = uint16("path_component_size", "Path Component Size")
3159 PathCookieFlags = val_string16("path_cookie_flags", "Path Cookie Flags", [
3160 [ 0x0000, "Last component is Not a File Name" ],
3161 [ 0x0001, "Last component is a File Name" ],
3163 PathCount = uint8("path_count", "Path Count")
3164 Path = nstring8("path", "Path")
3165 PathAndName = stringz("path_and_name", "Path and Name")
3166 PendingIOCommands = uint16("pending_io_commands", "Pending IO Commands")
3167 PhysicalDiskNumber = uint8("physical_disk_number", "Physical Disk Number")
3168 PhysicalDriveCount = uint8("physical_drive_count", "Physical Drive Count")
3169 PhysicalLockThreshold = uint8("physical_lock_threshold", "Physical Lock Threshold")
3170 PingVersion = uint16("ping_version", "Ping Version")
3171 PositiveAcknowledgesSent = uint16("positive_acknowledges_sent", "Positive Acknowledges Sent")
3172 PreCompressedSectors = uint32("pre_compressed_sectors", "Precompressed Sectors")
3173 PreviousRecord = uint32("previous_record", "Previous Record")
3174 PrimaryEntry = uint32("primary_entry", "Primary Entry")
3175 PrintFlags = bitfield8("print_flags", "Print Flags", [
3176 bf_boolean8(0x08, "print_flags_ff", "Suppress Form Feeds"),
3177 bf_boolean8(0x10, "print_flags_cr", "Create"),
3178 bf_boolean8(0x20, "print_flags_del_spool", "Delete Spool File after Printing"),
3179 bf_boolean8(0x40, "print_flags_exp_tabs", "Expand Tabs in the File"),
3180 bf_boolean8(0x80, "print_flags_banner", "Print Banner Page"),
3182 PrinterHalted = val_string8("printer_halted", "Printer Halted", [
3183 [ 0x00, "Printer is not Halted" ],
3184 [ 0xff, "Printer is Halted" ],
3186 PrinterOffLine = val_string8( "printer_offline", "Printer Off-Line", [
3187 [ 0x00, "Printer is On-Line" ],
3188 [ 0xff, "Printer is Off-Line" ],
3190 PrintServerVersion = uint8("print_server_version", "Print Server Version")
3191 Priority = uint32("priority", "Priority")
3192 Privileges = uint32("privileges", "Login Privileges")
3193 ProcessorType = val_string8("processor_type", "Processor Type", [
3194 [ 0x00, "Motorola 68000" ],
3195 [ 0x01, "Intel 8088 or 8086" ],
3196 [ 0x02, "Intel 80286" ],
3198 ProDOSInfo = bytes("pro_dos_info", "Pro DOS Info", 6)
3199 ProductMajorVersion = uint16("product_major_version", "Product Major Version")
3200 ProductMinorVersion = uint16("product_minor_version", "Product Minor Version")
3201 ProductRevisionVersion = uint8("product_revision_version", "Product Revision Version")
3202 projectedCompSize = uint32("projected_comp_size", "Projected Compression Size")
3203 PropertyHasMoreSegments = val_string8("property_has_more_segments",
3204 "Property Has More Segments", [
3205 [ 0x00, "Is last segment" ],
3206 [ 0xff, "More segments are available" ],
3208 PropertyName = nstring8("property_name", "Property Name")
3209 PropertyName16 = fw_string("property_name_16", "Property Name", 16)
3210 PropertyData = bytes("property_data", "Property Data", 128)
3211 PropertySegment = uint8("property_segment", "Property Segment")
3212 PropertyType = val_string8("property_type", "Property Type", [
3213 [ 0x00, "Display Static property" ],
3214 [ 0x01, "Display Dynamic property" ],
3215 [ 0x02, "Set Static property" ],
3216 [ 0x03, "Set Dynamic property" ],
3218 PropertyValue = fw_string("property_value", "Property Value", 128)
3219 ProposedMaxSize = uint16("proposed_max_size", "Proposed Max Size")
3220 protocolFlags = uint32("protocol_flags", "Protocol Flags")
3221 protocolFlags.Display("BASE_HEX")
3222 PurgeableBlocks = uint32("purgeable_blocks", "Purgeable Blocks")
3223 PurgeCcode = uint32("purge_c_code", "Purge Completion Code")
3224 PurgeCount = uint32("purge_count", "Purge Count")
3225 PurgeFlags = val_string16("purge_flags", "Purge Flags", [
3226 [ 0x0000, "Do not Purge All" ],
3227 [ 0x0001, "Purge All" ],
3228 [ 0xffff, "Do not Purge All" ],
3230 PurgeList = uint32("purge_list", "Purge List")
3231 PhysicalDiskChannel = uint8("physical_disk_channel", "Physical Disk Channel")
3232 PhysicalDriveType = val_string8("physical_drive_type", "Physical Drive Type", [
3236 [ 0x04, "Disk Coprocessor" ],
3237 [ 0x05, "PS/2 with MFM Controller" ],
3238 [ 0x06, "PS/2 with ESDI Controller" ],
3239 [ 0x07, "Convergent Technology SBIC" ],
3241 PhysicalReadErrors = uint16("physical_read_errors", "Physical Read Errors")
3242 PhysicalReadRequests = uint32("physical_read_requests", "Physical Read Requests")
3243 PhysicalWriteErrors = uint16("physical_write_errors", "Physical Write Errors")
3244 PhysicalWriteRequests = uint32("physical_write_requests", "Physical Write Requests")
3245 PrintToFileFlag = boolean8("print_to_file_flag", "Print to File Flag")
3247 QueueID = uint32("queue_id", "Queue ID")
3248 QueueID.Display("BASE_HEX")
3249 QueueName = nstring8("queue_name", "Queue Name")
3250 QueueStartPosition = uint32("queue_start_position", "Queue Start Position")
3251 QueueStatus = bitfield8("queue_status", "Queue Status", [
3252 bf_boolean8(0x01, "queue_status_new_jobs", "Operator does not want to add jobs to the queue"),
3253 bf_boolean8(0x02, "queue_status_pserver", "Operator does not want additional servers attaching"),
3254 bf_boolean8(0x04, "queue_status_svc_jobs", "Operator does not want servers to service jobs"),
3256 QueueType = uint16("queue_type", "Queue Type")
3257 QueueingVersion = uint8("qms_version", "QMS Version")
3259 ReadBeyondWrite = uint16("read_beyond_write", "Read Beyond Write")
3260 RecordLockCount = uint16("rec_lock_count", "Record Lock Count")
3261 RecordStart = uint32("record_start", "Record Start")
3262 RecordEnd = uint32("record_end", "Record End")
3263 RecordInUseFlag = val_string16("record_in_use", "Record in Use", [
3264 [ 0x0000, "Record In Use" ],
3265 [ 0xffff, "Record Not In Use" ],
3267 RedirectedPrinter = uint8( "redirected_printer", "Redirected Printer" )
3268 ReferenceCount = uint32("reference_count", "Reference Count")
3269 RelationsCount = uint16("relations_count", "Relations Count")
3270 ReMirrorCurrentOffset = uint32("re_mirror_current_offset", "ReMirror Current Offset")
3271 ReMirrorDriveNumber = uint8("re_mirror_drive_number", "ReMirror Drive Number")
3272 RemoteMaxPacketSize = uint32("remote_max_packet_size", "Remote Max Packet Size")
3273 RemoteTargetID = uint32("remote_target_id", "Remote Target ID")
3274 RemoteTargetID.Display("BASE_HEX")
3275 RemovableFlag = uint16("removable_flag", "Removable Flag")
3276 RemoveOpenRights = bitfield8("remove_open_rights", "Remove Open Rights", [
3277 bf_boolean8(0x01, "remove_open_rights_ro", "Read Only"),
3278 bf_boolean8(0x02, "remove_open_rights_wo", "Write Only"),
3279 bf_boolean8(0x04, "remove_open_rights_dr", "Deny Read"),
3280 bf_boolean8(0x08, "remove_open_rights_dw", "Deny Write"),
3281 bf_boolean8(0x10, "remove_open_rights_comp", "Compatibility"),
3282 bf_boolean8(0x40, "remove_open_rights_write_thru", "Write Through"),
3284 RenameFlag = bitfield8("rename_flag", "Rename Flag", [
3285 bf_boolean8(0x01, "rename_flag_ren", "Rename to Myself allows file to be renamed to it's original name"),
3286 bf_boolean8(0x02, "rename_flag_comp", "Compatability allows files that are marked read only to be opened with read/write access"),
3287 bf_boolean8(0x04, "rename_flag_no", "Name Only renames only the specified name space entry name"),
3289 RepliesCancelled = uint16("replies_cancelled", "Replies Cancelled")
3290 ReplyBuffer = nstring8("reply_buffer", "Reply Buffer")
3291 ReplyBufferSize = uint32("reply_buffer_size", "Reply Buffer Size")
3292 ReplyQueueJobNumbers = uint32("reply_queue_job_numbers", "Reply Queue Job Numbers")
3293 RequestBitMap = bitfield16("request_bit_map", "Request Bit Map", [
3294 bf_boolean16(0x0001, "request_bit_map_ret_afp_ent", "AFP Entry ID"),
3295 bf_boolean16(0x0002, "request_bit_map_ret_data_fork", "Data Fork Length"),
3296 bf_boolean16(0x0004, "request_bit_map_ret_res_fork", "Resource Fork Length"),
3297 bf_boolean16(0x0008, "request_bit_map_ret_num_off", "Number of Offspring"),
3298 bf_boolean16(0x0010, "request_bit_map_ret_owner", "Owner ID"),
3299 bf_boolean16(0x0020, "request_bit_map_ret_short", "Short Name"),
3300 bf_boolean16(0x0040, "request_bit_map_ret_acc_priv", "Access Privileges"),
3301 bf_boolean16(0x0100, "request_bit_map_ratt", "Return Attributes"),
3302 bf_boolean16(0x0200, "request_bit_map_ret_afp_parent", "AFP Parent Entry ID"),
3303 bf_boolean16(0x0400, "request_bit_map_ret_cr_date", "Creation Date"),
3304 bf_boolean16(0x0800, "request_bit_map_ret_acc_date", "Access Date"),
3305 bf_boolean16(0x1000, "request_bit_map_ret_mod_date", "Modify Date&Time"),
3306 bf_boolean16(0x2000, "request_bit_map_ret_bak_date", "Backup Date&Time"),
3307 bf_boolean16(0x4000, "request_bit_map_ret_finder", "Finder Info"),
3308 bf_boolean16(0x8000, "request_bit_map_ret_long_nm", "Long Name"),
3310 ResourceForkLen = uint32("resource_fork_len", "Resource Fork Len")
3311 RequestCode = val_string8("request_code", "Request Code", [
3312 [ 0x00, "Change Logged in to Temporary Authenticated" ],
3313 [ 0x01, "Change Temporary Authenticated to Logged in" ],
3315 RequestData = nstring8("request_data", "Request Data")
3316 RequestsReprocessed = uint16("requests_reprocessed", "Requests Reprocessed")
3317 Reserved = uint8( "reserved", "Reserved" )
3318 Reserved2 = bytes("reserved2", "Reserved", 2)
3319 Reserved3 = bytes("reserved3", "Reserved", 3)
3320 Reserved4 = bytes("reserved4", "Reserved", 4)
3321 Reserved6 = bytes("reserved6", "Reserved", 6)
3322 Reserved8 = bytes("reserved8", "Reserved", 8)
3323 Reserved10 = bytes("reserved10", "Reserved", 10)
3324 Reserved12 = bytes("reserved12", "Reserved", 12)
3325 Reserved16 = bytes("reserved16", "Reserved", 16)
3326 Reserved20 = bytes("reserved20", "Reserved", 20)
3327 Reserved28 = bytes("reserved28", "Reserved", 28)
3328 Reserved36 = bytes("reserved36", "Reserved", 36)
3329 Reserved44 = bytes("reserved44", "Reserved", 44)
3330 Reserved48 = bytes("reserved48", "Reserved", 48)
3331 Reserved51 = bytes("reserved51", "Reserved", 51)
3332 Reserved56 = bytes("reserved56", "Reserved", 56)
3333 Reserved64 = bytes("reserved64", "Reserved", 64)
3334 Reserved120 = bytes("reserved120", "Reserved", 120)
3335 ReservedOrDirectoryNumber = uint32("reserved_or_directory_number", "Reserved or Directory Number (see EAFlags)")
3336 ResourceCount = uint32("resource_count", "Resource Count")
3337 ResourceForkSize = uint32("resource_fork_size", "Resource Fork Size")
3338 ResourceName = stringz("resource_name", "Resource Name")
3339 ResourceSignature = fw_string("resource_sig", "Resource Signature", 4)
3340 RestoreTime = uint32("restore_time", "Restore Time")
3341 Restriction = uint32("restriction", "Disk Space Restriction")
3342 RestrictionsEnforced = val_string8("restrictions_enforced", "Disk Restrictions Enforce Flag", [
3343 [ 0x00, "Enforced" ],
3344 [ 0xff, "Not Enforced" ],
3346 ReturnInfoCount = uint32("return_info_count", "Return Information Count")
3347 ReturnInfoMask = bitfield16("ret_info_mask", "Return Information", [
3348 bf_boolean16(0x0001, "ret_info_mask_fname", "Return File Name Information"),
3349 bf_boolean16(0x0002, "ret_info_mask_alloc", "Return Allocation Space Information"),
3350 bf_boolean16(0x0004, "ret_info_mask_attr", "Return Attribute Information"),
3351 bf_boolean16(0x0008, "ret_info_mask_size", "Return Size Information"),
3352 bf_boolean16(0x0010, "ret_info_mask_tspace", "Return Total Space Information"),
3353 bf_boolean16(0x0020, "ret_info_mask_eattr", "Return Extended Attributes Information"),
3354 bf_boolean16(0x0040, "ret_info_mask_arch", "Return Archive Information"),
3355 bf_boolean16(0x0080, "ret_info_mask_mod", "Return Modify Information"),
3356 bf_boolean16(0x0100, "ret_info_mask_create", "Return Creation Information"),
3357 bf_boolean16(0x0200, "ret_info_mask_ns", "Return Name Space Information"),
3358 bf_boolean16(0x0400, "ret_info_mask_dir", "Return Directory Information"),
3359 bf_boolean16(0x0800, "ret_info_mask_rights", "Return Rights Information"),
3360 bf_boolean16(0x1000, "ret_info_mask_id", "Return ID Information"),
3361 bf_boolean16(0x2000, "ret_info_mask_ns_attr", "Return Name Space Attributes Information"),
3362 bf_boolean16(0x4000, "ret_info_mask_actual", "Return Actual Information"),
3363 bf_boolean16(0x8000, "ret_info_mask_logical", "Return Logical Information"),
3365 ReturnedListCount = uint32("returned_list_count", "Returned List Count")
3366 Revision = uint32("revision", "Revision")
3367 RevisionNumber = uint8("revision_number", "Revision")
3368 RevQueryFlag = val_string8("rev_query_flag", "Revoke Rights Query Flag", [
3369 [ 0x00, "Do not query the locks engine for access rights" ],
3370 [ 0x01, "Query the locks engine and return the access rights" ],
3372 RightsGrantMask = bitfield8("rights_grant_mask", "Grant Rights", [
3373 bf_boolean8(0x01, "rights_grant_mask_read", "Read"),
3374 bf_boolean8(0x02, "rights_grant_mask_write", "Write"),
3375 bf_boolean8(0x04, "rights_grant_mask_open", "Open"),
3376 bf_boolean8(0x08, "rights_grant_mask_create", "Create"),
3377 bf_boolean8(0x10, "rights_grant_mask_del", "Delete"),
3378 bf_boolean8(0x20, "rights_grant_mask_parent", "Parental"),
3379 bf_boolean8(0x40, "rights_grant_mask_search", "Search"),
3380 bf_boolean8(0x80, "rights_grant_mask_mod", "Modify"),
3382 RightsRevokeMask = bitfield8("rights_revoke_mask", "Revoke Rights", [
3383 bf_boolean8(0x01, "rights_revoke_mask_read", "Read"),
3384 bf_boolean8(0x02, "rights_revoke_mask_write", "Write"),
3385 bf_boolean8(0x04, "rights_revoke_mask_open", "Open"),
3386 bf_boolean8(0x08, "rights_revoke_mask_create", "Create"),
3387 bf_boolean8(0x10, "rights_revoke_mask_del", "Delete"),
3388 bf_boolean8(0x20, "rights_revoke_mask_parent", "Parental"),
3389 bf_boolean8(0x40, "rights_revoke_mask_search", "Search"),
3390 bf_boolean8(0x80, "rights_revoke_mask_mod", "Modify"),
3392 RIPSocketNumber = uint16("rip_socket_num", "RIP Socket Number")
3393 RIPSocketNumber.Display("BASE_HEX")
3394 RouterDownFlag = boolean8("router_dn_flag", "Router Down Flag")
3395 RPCccode = val_string16("rpc_c_code", "RPC Completion Code", [
3396 [ 0x0000, "Successful" ],
3398 RTagNumber = uint32("r_tag_num", "Resource Tag Number")
3399 RTagNumber.Display("BASE_HEX")
3400 RpyNearestSrvFlag = boolean8("rpy_nearest_srv_flag", "Reply to Nearest Server Flag")
3402 SalvageableFileEntryNumber = uint32("salvageable_file_entry_number", "Salvageable File Entry Number")
3403 SalvageableFileEntryNumber.Display("BASE_HEX")
3404 SAPSocketNumber = uint16("sap_socket_number", "SAP Socket Number")
3405 SAPSocketNumber.Display("BASE_HEX")
3406 ScanItems = uint32("scan_items", "Number of Items returned from Scan")
3407 SearchAttributes = bitfield8("sattr", "Search Attributes", [
3408 bf_boolean8(0x01, "sattr_hid", "Hidden"),
3409 bf_boolean8(0x02, "sattr_sys", "System"),
3410 bf_boolean8(0x04, "sattr_sub", "Subdirectory"),
3412 SearchAttributesLow = bitfield16("search_att_low", "Search Attributes", [
3413 bf_boolean16(0x0001, "search_att_read_only", "Read Only"),
3414 bf_boolean16(0x0002, "search_att_hidden", "Hidden"),
3415 bf_boolean16(0x0004, "search_att_system", "System"),
3416 bf_boolean16(0x0008, "search_att_execute_only", "Execute Only"),
3417 bf_boolean16(0x0010, "search_att_sub", "Subdirectory"),
3418 bf_boolean16(0x0020, "search_att_archive", "Archive"),
3419 bf_boolean16(0x0040, "search_att_execute_confrim", "Execute Confirm"),
3420 bf_boolean16(0x0080, "search_att_shareable", "Shareable"),
3421 bf_boolean16(0x8000, "search_attr_all_files", "All Files and Directories"),
3423 SearchBitMap = bitfield8("search_bit_map", "Search Bit Map", [
3424 bf_boolean8(0x01, "search_bit_map_hidden", "Hidden"),
3425 bf_boolean8(0x02, "search_bit_map_sys", "System"),
3426 bf_boolean8(0x04, "search_bit_map_sub", "Subdirectory"),
3427 bf_boolean8(0x08, "search_bit_map_files", "Files"),
3429 SearchConnNumber = uint32("search_conn_number", "Search Connection Number")
3430 SearchInstance = uint32("search_instance", "Search Instance")
3431 SearchNumber = uint32("search_number", "Search Number")
3432 SearchPattern = nstring8("search_pattern", "Search Pattern")
3433 SearchSequence = bytes("search_sequence", "Search Sequence", 9)
3434 SearchSequenceWord = uint16("search_sequence_word", "Search Sequence")
3435 Second = uint8("s_second", "Seconds")
3436 SecondsRelativeToTheYear2000 = uint32("sec_rel_to_y2k", "Seconds Relative to the Year 2000")
3437 SecretStoreVerb = val_string8("ss_verb", "Secret Store Verb",[
3438 [ 0x00, "Query Server" ],
3439 [ 0x01, "Read App Secrets" ],
3440 [ 0x02, "Write App Secrets" ],
3441 [ 0x03, "Add Secret ID" ],
3442 [ 0x04, "Remove Secret ID" ],
3443 [ 0x05, "Remove SecretStore" ],
3444 [ 0x06, "Enumerate Secret IDs" ],
3445 [ 0x07, "Unlock Store" ],
3446 [ 0x08, "Set Master Password" ],
3447 [ 0x09, "Get Service Information" ],
3449 SecurityEquivalentList = fw_string("security_equiv_list", "Security Equivalent List", 128)
3450 SecurityFlag = bitfield8("security_flag", "Security Flag", [
3451 bf_boolean8(0x01, "checksuming", "Checksumming"),
3452 bf_boolean8(0x02, "signature", "Signature"),
3453 bf_boolean8(0x04, "complete_signatures", "Complete Signatures"),
3454 bf_boolean8(0x08, "encryption", "Encryption"),
3455 bf_boolean8(0x80, "large_internet_packets", "Large Internet Packets (LIP) Disabled"),
3457 SecurityRestrictionVersion = uint8("security_restriction_version", "Security Restriction Version")
3458 SectorsPerBlock = uint8("sectors_per_block", "Sectors Per Block")
3459 SectorsPerCluster = uint16("sectors_per_cluster", "Sectors Per Cluster" )
3460 SectorsPerClusterLong = uint32("sectors_per_cluster_long", "Sectors Per Cluster" )
3461 SectorsPerTrack = uint8("sectors_per_track", "Sectors Per Track")
3462 SectorSize = uint32("sector_size", "Sector Size")
3463 SemaphoreHandle = uint32("semaphore_handle", "Semaphore Handle")
3464 SemaphoreName = nstring8("semaphore_name", "Semaphore Name")
3465 SemaphoreNameLen = uint8("semaphore_name_len", "Semaphore Name Len")
3466 SemaphoreOpenCount = uint8("semaphore_open_count", "Semaphore Open Count")
3467 SemaphoreShareCount = uint8("semaphore_share_count", "Semaphore Share Count")
3468 SemaphoreTimeOut = uint16("semaphore_time_out", "Semaphore Time Out")
3469 SemaphoreValue = uint16("semaphore_value", "Semaphore Value")
3470 SendStatus = val_string8("send_status", "Send Status", [
3471 [ 0x00, "Successful" ],
3472 [ 0x01, "Illegal Station Number" ],
3473 [ 0x02, "Client Not Logged In" ],
3474 [ 0x03, "Client Not Accepting Messages" ],
3475 [ 0x04, "Client Already has a Message" ],
3476 [ 0x96, "No Alloc Space for the Message" ],
3477 [ 0xfd, "Bad Station Number" ],
3478 [ 0xff, "Failure" ],
3480 SequenceByte = uint8("sequence_byte", "Sequence")
3481 SequenceNumber = uint32("sequence_number", "Sequence Number")
3482 SequenceNumber.Display("BASE_HEX")
3483 ServerAddress = bytes("server_address", "Server Address", 12)
3484 ServerAppNumber = uint16("server_app_num", "Server App Number")
3485 ServerIDList = uint32("server_id_list", "Server ID List")
3486 ServerID = uint32("server_id_number", "Server ID", BE )
3487 ServerID.Display("BASE_HEX")
3488 ServerInfoFlags = val_string16("server_info_flags", "Server Information Flags", [
3489 [ 0x0000, "This server is not a member of a Cluster" ],
3490 [ 0x0001, "This server is a member of a Cluster" ],
3492 serverListFlags = uint32("server_list_flags", "Server List Flags")
3493 ServerName = fw_string("server_name", "Server Name", 48)
3494 serverName50 = fw_string("server_name50", "Server Name", 50)
3495 ServerNameLen = nstring8("server_name_len", "Server Name")
3496 ServerNameStringz = stringz("server_name_stringz", "Server Name")
3497 ServerNetworkAddress = bytes("server_network_address", "Server Network Address", 10)
3498 ServerNode = bytes("server_node", "Server Node", 6)
3499 ServerSerialNumber = uint32("server_serial_number", "Server Serial Number")
3500 ServerStation = uint8("server_station", "Server Station")
3501 ServerStationLong = uint32("server_station_long", "Server Station")
3502 ServerStationList = uint8("server_station_list", "Server Station List")
3503 ServerStatusRecord = fw_string("server_status_record", "Server Status Record", 64)
3504 ServerTaskNumber = uint8("server_task_number", "Server Task Number")
3505 ServerTaskNumberLong = uint32("server_task_number_long", "Server Task Number")
3506 ServerType = uint16("server_type", "Server Type")
3507 ServerType.Display("BASE_HEX")
3508 ServerUtilization = uint32("server_utilization", "Server Utilization")
3509 ServerUtilizationPercentage = uint8("server_utilization_percentage", "Server Utilization Percentage")
3510 ServiceType = val_string16("Service_type", "Service Type", [
3511 [ 0x0000, "Unknown" ],
3513 [ 0x0002, "User group" ],
3514 [ 0x0003, "Print queue" ],
3515 [ 0x0004, "NetWare file server" ],
3516 [ 0x0005, "Job server" ],
3517 [ 0x0006, "Gateway" ],
3518 [ 0x0007, "Print server" ],
3519 [ 0x0008, "Archive queue" ],
3520 [ 0x0009, "Archive server" ],
3521 [ 0x000a, "Job queue" ],
3522 [ 0x000b, "Administration" ],
3523 [ 0x0021, "NAS SNA gateway" ],
3524 [ 0x0026, "Remote bridge server" ],
3525 [ 0x0027, "TCP/IP gateway" ],
3527 SetCmdCategory = val_string8("set_cmd_catagory", "Set Command Catagory", [
3528 [ 0x00, "Communications" ],
3530 [ 0x02, "File Cache" ],
3531 [ 0x03, "Directory Cache" ],
3532 [ 0x04, "File System" ],
3534 [ 0x06, "Transaction Tracking" ],
3538 [ 0x0a, "Miscellaneous" ],
3539 [ 0x0b, "Error Handling" ],
3540 [ 0x0c, "Directory Services" ],
3541 [ 0x0d, "MultiProcessor" ],
3542 [ 0x0e, "Service Location Protocol" ],
3543 [ 0x0f, "Licensing Services" ],
3545 SetCmdFlags = bitfield8("set_cmd_flags", "Set Command Flags", [
3546 bf_boolean8(0x01, "cmd_flags_startup_only", "Startup.ncf Only"),
3547 bf_boolean8(0x02, "cmd_flags_hidden", "Hidden"),
3548 bf_boolean8(0x04, "cmd_flags_advanced", "Advanced"),
3549 bf_boolean8(0x08, "cmd_flags_later", "Restart Server Required to Take Effect"),
3550 bf_boolean8(0x80, "cmd_flags_secure", "Console Secured"),
3552 SetCmdName = stringz("set_cmd_name", "Set Command Name")
3553 SetCmdType = val_string8("set_cmd_type", "Set Command Type", [
3554 [ 0x00, "Numeric Value" ],
3555 [ 0x01, "Boolean Value" ],
3556 [ 0x02, "Ticks Value" ],
3557 [ 0x04, "Time Value" ],
3558 [ 0x05, "String Value" ],
3559 [ 0x06, "Trigger Value" ],
3560 [ 0x07, "Numeric Value" ],
3562 SetCmdValueNum = uint32("set_cmd_value_num", "Set Command Value")
3563 SetCmdValueString = stringz("set_cmd_value_string", "Set Command Value")
3564 SetParmName = stringz("set_parm_name", "Set Parameter Name")
3565 SFTErrorTable = bytes("sft_error_table", "SFT Error Table", 60)
3566 SFTSupportLevel = val_string8("sft_support_level", "SFT Support Level", [
3567 [ 0x01, "Server Offers Hot Disk Error Fixing" ],
3568 [ 0x02, "Server Offers Disk Mirroring and Transaction Tracking" ],
3569 [ 0x03, "Server Offers Physical Server Mirroring" ],
3571 ShareableLockCount = uint16("shareable_lock_count", "Shareable Lock Count")
3572 SharedMemoryAddresses = bytes("shared_memory_addresses", "Shared Memory Addresses", 10)
3573 ShortName = fw_string("short_name", "Short Name", 12)
3574 ShortStkName = fw_string("short_stack_name", "Short Stack Name", 16)
3575 SiblingCount = uint32("sibling_count", "Sibling Count")
3576 SMIDs = uint32("smids", "Storage Media ID's")
3577 SoftwareDescription = fw_string("software_description", "Software Description", 65)
3578 SoftwareDriverType = uint8("software_driver_type", "Software Driver Type")
3579 SoftwareMajorVersionNumber = uint8("software_major_version_number", "Software Major Version Number")
3580 SoftwareMinorVersionNumber = uint8("software_minor_version_number", "Software Minor Version Number")
3581 SourceDirHandle = uint8("source_dir_handle", "Source Directory Handle")
3582 sourceOriginateTime = bytes("source_originate_time", "Source Originate Time", 8)
3583 sourceOriginateTime.Display("BASE_HEX")
3584 SourcePath = nstring8("source_path", "Source Path")
3585 SourcePathComponentCount = uint8("source_component_count", "Source Path Component Count")
3586 sourceReturnTime = bytes("source_return_time", "Source Return Time", 8)
3587 sourceReturnTime.Display("BASE_HEX")
3588 SpaceUsed = uint32("space_used", "Space Used")
3589 SpaceMigrated = uint32("space_migrated", "Space Migrated")
3590 SrcNameSpace = val_string8("src_name_space", "Source Name Space", [
3591 [ 0x00, "DOS Name Space" ],
3592 [ 0x01, "MAC Name Space" ],
3593 [ 0x02, "NFS Name Space" ],
3594 [ 0x04, "Long Name Space" ],
3596 SupModID = uint32("sup_mod_id", "Sup Mod ID")
3597 StackCount = uint32("stack_count", "Stack Count")
3598 StackFullNameStr = nstring8("stack_full_name_str", "Stack Full Name")
3599 StackMajorVN = uint8("stack_major_vn", "Stack Major Version Number")
3600 StackMinorVN = uint8("stack_minor_vn", "Stack Minor Version Number")
3601 StackNumber = uint32("stack_number", "Stack Number")
3602 StartConnNumber = uint32("start_conn_num", "Starting Connection Number")
3603 StartingBlock = uint16("starting_block", "Starting Block")
3604 StartingNumber = uint32("starting_number", "Starting Number")
3605 StartingSearchNumber = uint16("start_search_number", "Start Search Number")
3606 StartNumber = uint32("start_number", "Start Number")
3607 startNumberFlag = uint16("start_number_flag", "Start Number Flag")
3608 StartVolumeNumber = uint32("start_volume_number", "Starting Volume Number")
3609 StationList = uint32("station_list", "Station List")
3610 StationNumber = bytes("station_number", "Station Number", 3)
3611 StatMajorVersion = uint8("stat_major_version", "Statistics Table Major Version")
3612 StatMinorVersion = uint8("stat_minor_version", "Statistics Table Minor Version")
3613 Status = bitfield16("status", "Status", [
3614 bf_boolean16(0x0001, "user_info_logged_in", "Logged In"),
3615 bf_boolean16(0x0002, "user_info_being_abort", "Being Aborted"),
3616 bf_boolean16(0x0004, "user_info_audited", "Audited"),
3617 bf_boolean16(0x0008, "user_info_need_sec", "Needs Security Change"),
3618 bf_boolean16(0x0010, "user_info_mac_station", "MAC Station"),
3619 bf_boolean16(0x0020, "user_info_temp_authen", "Temporary Authenticated"),
3620 bf_boolean16(0x0040, "user_info_audit_conn", "Audit Connection Recorded"),
3621 bf_boolean16(0x0080, "user_info_dsaudit_conn", "DS Audit Connection Recorded"),
3622 bf_boolean16(0x0100, "user_info_logout", "Logout in Progress"),
3623 bf_boolean16(0x0200, "user_info_int_login", "Internal Login"),
3624 bf_boolean16(0x0400, "user_info_bindery", "Bindery Connection"),
3626 StatusFlagBits = bitfield32("status_flag_bits", "Status Flag", [
3627 bf_boolean32(0x00000001, "status_flag_bits_suballoc", "Sub Allocation"),
3628 bf_boolean32(0x00000002, "status_flag_bits_comp", "Compression"),
3629 bf_boolean32(0x00000004, "status_flag_bits_migrate", "Migration"),
3630 bf_boolean32(0x00000008, "status_flag_bits_audit", "Audit"),
3631 bf_boolean32(0x00000010, "status_flag_bits_ro", "Read Only"),
3632 bf_boolean32(0x00000020, "status_flag_bits_im_purge", "Immediate Purge"),
3633 bf_boolean32(0x80000000, "status_flag_bits_nss", "NSS Volume"),
3635 SubAllocClusters = uint32("sub_alloc_clusters", "Sub Alloc Clusters")
3636 SubAllocFreeableClusters = uint32("sub_alloc_freeable_clusters", "Sub Alloc Freeable Clusters")
3637 Subdirectory = uint32("sub_directory", "Subdirectory")
3638 Subdirectory.Display("BASE_HEX")
3639 SuggestedFileSize = uint32("suggested_file_size", "Suggested File Size")
3640 SupportModuleID = uint32("support_module_id", "Support Module ID")
3641 SynchName = nstring8("synch_name", "Synch Name")
3642 SystemIntervalMarker = uint32("system_interval_marker", "System Interval Marker")
3644 TabSize = uint8( "tab_size", "Tab Size" )
3645 TargetClientList = uint8("target_client_list", "Target Client List")
3646 TargetConnectionNumber = uint16("target_connection_number", "Target Connection Number")
3647 TargetDirectoryBase = uint32("target_directory_base", "Target Directory Base")
3648 TargetDirHandle = uint8("target_dir_handle", "Target Directory Handle")
3649 TargetEntryID = uint32("target_entry_id", "Target Entry ID")
3650 TargetEntryID.Display("BASE_HEX")
3651 TargetExecutionTime = bytes("target_execution_time", "Target Execution Time", 6)
3652 TargetFileHandle = bytes("target_file_handle", "Target File Handle", 6)
3653 TargetFileOffset = uint32("target_file_offset", "Target File Offset")
3654 TargetMessage = nstring8("target_message", "Message")
3655 TargetPrinter = uint8( "target_ptr", "Target Printer" )
3656 targetReceiveTime = bytes("target_receive_time", "Target Receive Time", 8)
3657 targetReceiveTime.Display("BASE_HEX")
3658 TargetServerIDNumber = uint32("target_server_id_number", "Target Server ID Number", BE )
3659 TargetServerIDNumber.Display("BASE_HEX")
3660 targetTransmitTime = bytes("target_transmit_time", "Target Transmit Time", 8)
3661 targetTransmitTime.Display("BASE_HEX")
3662 TaskNumByte = uint8("task_num_byte", "Task Number")
3663 TaskNumber = uint32("task_number", "Task Number")
3664 TaskNumberWord = uint16("task_number_word", "Task Number")
3665 TextJobDescription = fw_string("text_job_description", "Text Job Description", 50)
3666 ThrashingCount = uint16("thrashing_count", "Thrashing Count")
3667 TimeoutLimit = uint16("timeout_limit", "Timeout Limit")
3668 TimesyncStatus = bitfield32("timesync_status_flags", "Timesync Status", [
3669 bf_boolean32(0x00000001, "timesync_status_sync", "Time is Synchronized"),
3670 bf_boolean32(0x00000002, "timesync_status_net_sync", "Time is Synchronized to the Network"),
3671 bf_boolean32(0x00000004, "timesync_status_active", "Time Synchronization is Active"),
3672 bf_boolean32(0x00000008, "timesync_status_external", "External Time Synchronization Active"),
3673 bf_val_str32(0x00000700, "timesync_status_server_type", "Time Server Type", [
3674 [ 0x01, "Client Time Server" ],
3675 [ 0x02, "Secondary Time Server" ],
3676 [ 0x03, "Primary Time Server" ],
3677 [ 0x04, "Reference Time Server" ],
3678 [ 0x05, "Single Reference Time Server" ],
3680 bf_boolean32(0x000f0000, "timesync_status_ext_sync", "External Clock Status"),
3682 TimeToNet = uint16("time_to_net", "Time To Net")
3683 TotalBlocks = uint32("total_blocks", "Total Blocks")
3684 TotalBlocksToDecompress = uint32("total_blks_to_dcompress", "Total Blocks To Decompress")
3685 TotalBytesRead = bytes("user_info_ttl_bytes_rd", "Total Bytes Read", 6)
3686 TotalBytesWritten = bytes("user_info_ttl_bytes_wrt", "Total Bytes Written", 6)
3687 TotalCacheWrites = uint32("total_cache_writes", "Total Cache Writes")
3688 TotalChangedFATs = uint32("total_changed_fats", "Total Changed FAT Entries")
3689 TotalCommonCnts = uint32("total_common_cnts", "Total Common Counts")
3690 TotalCntBlocks = uint32("total_cnt_blocks", "Total Count Blocks")
3691 TotalDataStreamDiskSpaceAlloc = uint32("total_stream_size_struct_space_alloc", "Total Data Stream Disk Space Alloc")
3692 TotalDirectorySlots = uint16("total_directory_slots", "Total Directory Slots")
3693 TotalDirectoryEntries = uint32("total_dir_entries", "Total Directory Entries")
3694 TotalDynamicSpace = uint32("total_dynamic_space", "Total Dynamic Space")
3695 TotalExtendedDirectoryExtants = uint32("total_extended_directory_extants", "Total Extended Directory Extants")
3696 TotalFileServicePackets = uint32("total_file_service_packets", "Total File Service Packets")
3697 TotalFilesOpened = uint32("total_files_opened", "Total Files Opened")
3698 TotalLFSCounters = uint32("total_lfs_counters", "Total LFS Counters")
3699 TotalOffspring = uint16("total_offspring", "Total Offspring")
3700 TotalOtherPackets = uint32("total_other_packets", "Total Other Packets")
3701 TotalQueueJobs = uint32("total_queue_jobs", "Total Queue Jobs")
3702 TotalReadRequests = uint32("total_read_requests", "Total Read Requests")
3703 TotalRequest = uint32("total_request", "Total Requests")
3704 TotalRequestPackets = uint32("total_request_packets", "Total Request Packets")
3705 TotalRoutedPackets = uint32("total_routed_packets", "Total Routed Packets")
3706 TotalRxPkts = uint32("total_rx_pkts", "Total Receive Packets")
3707 TotalServerMemory = uint16("total_server_memory", "Total Server Memory", BE)
3708 TotalTransactionsBackedOut = uint32("total_trans_backed_out", "Total Transactions Backed Out")
3709 TotalTransactionsPerformed = uint32("total_trans_performed", "Total Transactions Performed")
3710 TotalTxPkts = uint32("total_tx_pkts", "Total Transmit Packets")
3711 TotalUnfilledBackoutRequests = uint16("total_unfilled_backout_requests", "Total Unfilled Backout Requests")
3712 TotalVolumeClusters = uint16("total_volume_clusters", "Total Volume Clusters")
3713 TotalWriteRequests = uint32("total_write_requests", "Total Write Requests")
3714 TotalWriteTransactionsPerformed = uint32("total_write_trans_performed", "Total Write Transactions Performed")
3715 TrackOnFlag = boolean8("track_on_flag", "Track On Flag")
3716 TransactionDiskSpace = uint16("transaction_disk_space", "Transaction Disk Space")
3717 TransactionFATAllocations = uint32("transaction_fat_allocations", "Transaction FAT Allocations")
3718 TransactionFileSizeChanges = uint32("transaction_file_size_changes", "Transaction File Size Changes")
3719 TransactionFilesTruncated = uint32("transaction_files_truncated", "Transaction Files Truncated")
3720 TransactionNumber = uint32("transaction_number", "Transaction Number")
3721 TransactionTrackingEnabled = uint8("transaction_tracking_enabled", "Transaction Tracking Enabled")
3722 TransactionTrackingFlag = uint16("tts_flag", "Transaction Tracking Flag")
3723 TransactionTrackingSupported = uint8("transaction_tracking_supported", "Transaction Tracking Supported")
3724 TransactionVolumeNumber = uint16("transaction_volume_number", "Transaction Volume Number")
3725 TransportType = val_string8("transport_type", "Communications Type", [
3726 [ 0x01, "Internet Packet Exchange (IPX)" ],
3727 [ 0x05, "User Datagram Protocol (UDP)" ],
3728 [ 0x06, "Transmission Control Protocol (TCP)" ],
3730 TreeLength = uint32("tree_length", "Tree Length")
3731 TreeName = nstring32("tree_name", "Tree Name")
3732 TreeName.NWUnicode()
3733 TrusteeRights = bitfield16("trustee_rights_low", "Trustee Rights", [
3734 bf_boolean16(0x0001, "trustee_rights_read", "Read"),
3735 bf_boolean16(0x0002, "trustee_rights_write", "Write"),
3736 bf_boolean16(0x0004, "trustee_rights_open", "Open"),
3737 bf_boolean16(0x0008, "trustee_rights_create", "Create"),
3738 bf_boolean16(0x0010, "trustee_rights_del", "Delete"),
3739 bf_boolean16(0x0020, "trustee_rights_parent", "Parental"),
3740 bf_boolean16(0x0040, "trustee_rights_search", "Search"),
3741 bf_boolean16(0x0080, "trustee_rights_modify", "Modify"),
3742 bf_boolean16(0x0100, "trustee_rights_super", "Supervisor"),
3744 TTSLevel = uint8("tts_level", "TTS Level")
3745 TrusteeSetNumber = uint8("trustee_set_number", "Trustee Set Number")
3746 TrusteeID = uint32("trustee_id_set", "Trustee ID")
3747 TrusteeID.Display("BASE_HEX")
3748 ttlCompBlks = uint32("ttl_comp_blks", "Total Compression Blocks")
3749 TtlDSDskSpaceAlloc = uint32("ttl_ds_disk_space_alloc", "Total Streams Space Allocated")
3750 TtlEAs = uint32("ttl_eas", "Total EA's")
3751 TtlEAsDataSize = uint32("ttl_eas_data_size", "Total EA's Data Size")
3752 TtlEAsKeySize = uint32("ttl_eas_key_size", "Total EA's Key Size")
3753 ttlIntermediateBlks = uint32("ttl_inter_blks", "Total Intermediate Blocks")
3754 TtlMigratedSize = uint32("ttl_migrated_size", "Total Migrated Size")
3755 TtlNumOfRTags = uint32("ttl_num_of_r_tags", "Total Number of Resource Tags")
3756 TtlNumOfSetCmds = uint32("ttl_num_of_set_cmds", "Total Number of Set Commands")
3757 TtlValuesLength = uint32("ttl_values_length", "Total Values Length")
3758 TtlWriteDataSize = uint32("ttl_write_data_size", "Total Write Data Size")
3759 TurboUsedForFileService = uint16("turbo_used_for_file_service", "Turbo Used For File Service")
3761 UnclaimedPkts = uint32("un_claimed_packets", "Unclaimed Packets")
3762 UnCompressableDataStreamsCount = uint32("un_compressable_data_streams_count", "Uncompressable Data Streams Count")
3763 Undefined8 = bytes("undefined_8", "Undefined", 8)
3764 Undefined28 = bytes("undefined_28", "Undefined", 28)
3765 UndefinedWord = uint16("undefined_word", "Undefined")
3766 UniqueID = uint8("unique_id", "Unique ID")
3767 UnknownByte = uint8("unknown_byte", "Unknown Byte")
3768 Unused = uint8("un_used", "Unused")
3769 UnusedBlocks = uint32("unused_blocks", "Unused Blocks")
3770 UnUsedDirectoryEntries = uint32("un_used_directory_entries", "Unused Directory Entries")
3771 UnusedDiskBlocks = uint32("unused_disk_blocks", "Unused Disk Blocks")
3772 UnUsedExtendedDirectoryExtants = uint32("un_used_extended_directory_extants", "Unused Extended Directory Extants")
3773 UpdateDate = uint16("update_date", "Update Date")
3775 UpdateID = uint32("update_id", "Update ID", BE)
3776 UpdateID.Display("BASE_HEX")
3777 UpdateTime = uint16("update_time", "Update Time")
3779 UseCount = val_string16("user_info_use_count", "Use Count", [
3780 [ 0x0000, "Connection is not in use" ],
3781 [ 0x0001, "Connection is in use" ],
3783 UsedBlocks = uint32("used_blocks", "Used Blocks")
3784 UserID = uint32("user_id", "User ID", BE)
3785 UserID.Display("BASE_HEX")
3786 UserLoginAllowed = val_string8("user_login_allowed", "Login Status", [
3787 [ 0x00, "Client Login Disabled" ],
3788 [ 0x01, "Client Login Enabled" ],
3791 UserName = nstring8("user_name", "User Name")
3792 UserName16 = fw_string("user_name_16", "User Name", 16)
3793 UserName48 = fw_string("user_name_48", "User Name", 48)
3794 UserType = uint16("user_type", "User Type")
3795 UTCTimeInSeconds = uint32("uts_time_in_seconds", "UTC Time in Seconds")
3797 ValueAvailable = val_string8("value_available", "Value Available", [
3798 [ 0x00, "Has No Value" ],
3799 [ 0xff, "Has Value" ],
3801 VAPVersion = uint8("vap_version", "VAP Version")
3802 VariableBitMask = uint32("variable_bit_mask", "Variable Bit Mask")
3803 VariableBitsDefined = uint16("variable_bits_defined", "Variable Bits Defined")
3804 VConsoleRevision = uint8("vconsole_rev", "Console Revision")
3805 VConsoleVersion = uint8("vconsole_ver", "Console Version")
3806 Verb = uint32("verb", "Verb")
3807 VerbData = uint8("verb_data", "Verb Data")
3808 version = uint32("version", "Version")
3809 VersionNumber = uint8("version_number", "Version")
3810 VertLocation = uint16("vert_location", "Vertical Location")
3811 VirtualConsoleVersion = uint8("virtual_console_version", "Virtual Console Version")
3812 VolumeID = uint32("volume_id", "Volume ID")
3813 VolumeID.Display("BASE_HEX")
3814 VolInfoReplyLen = uint16("vol_info_reply_len", "Volume Information Reply Length")
3815 VolumeCachedFlag = val_string8("volume_cached_flag", "Volume Cached Flag", [
3816 [ 0x00, "Volume is Not Cached" ],
3817 [ 0xff, "Volume is Cached" ],
3819 VolumeHashedFlag = val_string8("volume_hashed_flag", "Volume Hashed Flag", [
3820 [ 0x00, "Volume is Not Hashed" ],
3821 [ 0xff, "Volume is Hashed" ],
3823 VolumeLastModifiedDate = uint16("volume_last_modified_date", "Volume Last Modified Date")
3824 VolumeLastModifiedDate.NWDate()
3825 VolumeLastModifiedTime = uint16("volume_last_modified_time", "Volume Last Modified Time")
3826 VolumeLastModifiedTime.NWTime()
3827 VolumeMountedFlag = val_string8("volume_mounted_flag", "Volume Mounted Flag", [
3828 [ 0x00, "Volume is Not Mounted" ],
3829 [ 0xff, "Volume is Mounted" ],
3831 VolumeName = fw_string("volume_name", "Volume Name", 16)
3832 VolumeNameLen = nstring8("volume_name_len", "Volume Name")
3833 VolumeNameStringz = stringz("volume_name_stringz", "Volume Name")
3834 VolumeNumber = uint8("volume_number", "Volume Number")
3835 VolumeNumberLong = uint32("volume_number_long", "Volume Number")
3836 VolumeRemovableFlag = val_string8("volume_removable_flag", "Volume Removable Flag", [
3837 [ 0x00, "Disk Cannot be Removed from Server" ],
3838 [ 0xff, "Disk Can be Removed from Server" ],
3840 VolumeRequestFlags = val_string16("volume_request_flags", "Volume Request Flags", [
3841 [ 0x0000, "Return name with volume number" ],
3842 [ 0x0001, "Do not return name with volume number" ],
3844 VolumeSizeInClusters = uint32("volume_size_in_clusters", "Volume Size in Clusters")
3845 VolumesSupportedMax = uint16("volumes_supported_max", "Volumes Supported Max")
3846 VolumeType = val_string16("volume_type", "Volume Type", [
3847 [ 0x0000, "NetWare 386" ],
3848 [ 0x0001, "NetWare 286" ],
3849 [ 0x0002, "NetWare 386 Version 30" ],
3850 [ 0x0003, "NetWare 386 Version 31" ],
3852 WastedServerMemory = uint16("wasted_server_memory", "Wasted Server Memory", BE)
3853 WaitTime = uint32("wait_time", "Wait Time")
3855 Year = val_string8("year", "Year",[
3937 ##############################################################################
3939 ##############################################################################
3942 acctngInfo = struct("acctng_info_struct", [
3946 HeldConnectTimeInMinutes,
3950 ],"Accounting Information")
3951 AFP10Struct = struct("afp_10_struct", [
3975 ], "AFP Information" )
3976 AFP20Struct = struct("afp_20_struct", [
4002 ], "AFP Information" )
4003 ArchiveDateStruct = struct("archive_date_struct", [
4006 ArchiveIdStruct = struct("archive_id_struct", [
4009 ArchiveInfoStruct = struct("archive_info_struct", [
4013 ], "Archive Information")
4014 ArchiveTimeStruct = struct("archive_time_struct", [
4017 AttributesStruct = struct("attributes_struct", [
4021 authInfo = struct("auth_info_struct", [
4026 BoardNameStruct = struct("board_name_struct", [
4031 CacheInfo = struct("cache_info", [
4032 uint32("max_byte_cnt", "Maximum Byte Count"),
4033 uint32("min_num_of_cache_buff", "Minimum Number Of Cache Buffers"),
4034 uint32("min_cache_report_thresh", "Minimum Cache Report Threshold"),
4035 uint32("alloc_waiting", "Allocate Waiting Count"),
4036 uint32("ndirty_blocks", "Number of Dirty Blocks"),
4037 uint32("cache_dirty_wait_time", "Cache Dirty Wait Time"),
4038 uint32("cache_max_concur_writes", "Cache Maximum Concurrent Writes"),
4039 uint32("max_dirty_time", "Maximum Dirty Time"),
4040 uint32("num_dir_cache_buff", "Number Of Directory Cache Buffers"),
4041 uint32("cache_byte_to_block", "Cache Byte To Block Shift Factor"),
4042 ], "Cache Information")
4043 CommonLanStruc = struct("common_lan_struct", [
4044 boolean8("not_supported_mask", "Bit Counter Supported"),
4046 uint32("total_tx_packet_count", "Total Transmit Packet Count"),
4047 uint32("total_rx_packet_count", "Total Receive Packet Count"),
4048 uint32("no_ecb_available_count", "No ECB Available Count"),
4049 uint32("packet_tx_too_big_count", "Transmit Packet Too Big Count"),
4050 uint32("packet_tx_too_small_count", "Transmit Packet Too Small Count"),
4051 uint32("packet_rx_overflow_count", "Receive Packet Overflow Count"),
4052 uint32("packet_rx_too_big_count", "Receive Packet Too Big Count"),
4053 uint32("packet_rs_too_small_count", "Receive Packet Too Small Count"),
4054 uint32("packet_tx_misc_error_count", "Transmit Packet Misc Error Count"),
4055 uint32("packet_rx_misc_error_count", "Receive Packet Misc Error Count"),
4056 uint32("retry_tx_count", "Transmit Retry Count"),
4057 uint32("checksum_error_count", "Checksum Error Count"),
4058 uint32("hardware_rx_mismatch_count", "Hardware Receive Mismatch Count"),
4059 ], "Common LAN Information")
4060 CompDeCompStat = struct("comp_d_comp_stat", [
4061 uint32("cmphitickhigh", "Compress High Tick"),
4062 uint32("cmphitickcnt", "Compress High Tick Count"),
4063 uint32("cmpbyteincount", "Compress Byte In Count"),
4064 uint32("cmpbyteoutcnt", "Compress Byte Out Count"),
4065 uint32("cmphibyteincnt", "Compress High Byte In Count"),
4066 uint32("cmphibyteoutcnt", "Compress High Byte Out Count"),
4067 uint32("decphitickhigh", "DeCompress High Tick"),
4068 uint32("decphitickcnt", "DeCompress High Tick Count"),
4069 uint32("decpbyteincount", "DeCompress Byte In Count"),
4070 uint32("decpbyteoutcnt", "DeCompress Byte Out Count"),
4071 uint32("decphibyteincnt", "DeCompress High Byte In Count"),
4072 uint32("decphibyteoutcnt", "DeCompress High Byte Out Count"),
4073 ], "Compression/Decompression Information")
4074 ConnFileStruct = struct("conn_file_struct", [
4075 ConnectionNumberWord,
4080 ], "File Connection Information")
4081 ConnStruct = struct("conn_struct", [
4087 DirectoryEntryNumberWord,
4089 ], "Connection Information")
4090 ConnTaskStruct = struct("conn_task_struct", [
4091 ConnectionNumberByte,
4093 ], "Task Information")
4094 Counters = struct("counters_struct", [
4095 uint32("read_exist_blck", "Read Existing Block Count"),
4096 uint32("read_exist_write_wait", "Read Existing Write Wait Count"),
4097 uint32("read_exist_part_read", "Read Existing Partial Read Count"),
4098 uint32("read_exist_read_err", "Read Existing Read Error Count"),
4099 uint32("wrt_blck_cnt", "Write Block Count"),
4100 uint32("wrt_entire_blck", "Write Entire Block Count"),
4101 uint32("internl_dsk_get", "Internal Disk Get Count"),
4102 uint32("internl_dsk_get_need_to_alloc", "Internal Disk Get Need To Allocate Count"),
4103 uint32("internl_dsk_get_someone_beat", "Internal Disk Get Someone Beat My Count"),
4104 uint32("internl_dsk_get_part_read", "Internal Disk Get Partial Read Count"),
4105 uint32("internl_dsk_get_read_err", "Internal Disk Get Read Error Count"),
4106 uint32("async_internl_dsk_get", "Async Internal Disk Get Count"),
4107 uint32("async_internl_dsk_get_need_to_alloc", "Async Internal Disk Get Need To Alloc"),
4108 uint32("async_internl_dsk_get_someone_beat", "Async Internal Disk Get Someone Beat Me"),
4109 uint32("err_doing_async_read", "Error Doing Async Read Count"),
4110 uint32("internl_dsk_get_no_read", "Internal Disk Get No Read Count"),
4111 uint32("internl_dsk_get_no_read_alloc", "Internal Disk Get No Read Allocate Count"),
4112 uint32("internl_dsk_get_no_read_someone_beat", "Internal Disk Get No Read Someone Beat Me Count"),
4113 uint32("internl_dsk_write", "Internal Disk Write Count"),
4114 uint32("internl_dsk_write_alloc", "Internal Disk Write Allocate Count"),
4115 uint32("internl_dsk_write_someone_beat", "Internal Disk Write Someone Beat Me Count"),
4116 uint32("write_err", "Write Error Count"),
4117 uint32("wait_on_sema", "Wait On Semaphore Count"),
4118 uint32("alloc_blck_i_had_to_wait_for", "Allocate Block I Had To Wait For Someone Count"),
4119 uint32("alloc_blck", "Allocate Block Count"),
4120 uint32("alloc_blck_i_had_to_wait", "Allocate Block I Had To Wait Count"),
4121 ], "Disk Counter Information")
4122 CPUInformation = struct("cpu_information", [
4138 ], "CPU Information")
4139 CreationDateStruct = struct("creation_date_struct", [
4142 CreationInfoStruct = struct("creation_info_struct", [
4146 ], "Creation Information")
4147 CreationTimeStruct = struct("creation_time_struct", [
4150 CustomCntsInfo = struct("custom_cnts_info", [
4151 CustomVariableValue,
4153 ], "Custom Counters" )
4154 DataStreamSizeStruct = struct("data_stream_size_struct", [
4157 DirCacheInfo = struct("dir_cache_info", [
4158 uint32("min_time_since_file_delete", "Minimum Time Since File Delete"),
4159 uint32("abs_min_time_since_file_delete", "Absolute Minimum Time Since File Delete"),
4160 uint32("min_num_of_dir_cache_buff", "Minimum Number Of Directory Cache Buffers"),
4161 uint32("max_num_of_dir_cache_buff", "Maximum Number Of Directory Cache Buffers"),
4162 uint32("num_of_dir_cache_buff", "Number Of Directory Cache Buffers"),
4163 uint32("dc_min_non_ref_time", "DC Minimum Non-Referenced Time"),
4164 uint32("dc_wait_time_before_new_buff", "DC Wait Time Before New Buffer"),
4165 uint32("dc_max_concurrent_writes", "DC Maximum Concurrent Writes"),
4166 uint32("dc_dirty_wait_time", "DC Dirty Wait Time"),
4167 uint32("dc_double_read_flag", "DC Double Read Flag"),
4168 uint32("map_hash_node_count", "Map Hash Node Count"),
4169 uint32("space_restriction_node_count", "Space Restriction Node Count"),
4170 uint32("trustee_list_node_count", "Trustee List Node Count"),
4171 uint32("percent_of_vol_used_by_dirs", "Percent Of Volume Used By Directories"),
4172 ], "Directory Cache Information")
4173 DirEntryStruct = struct("dir_entry_struct", [
4174 DirectoryEntryNumber,
4175 DOSDirectoryEntryNumber,
4177 ], "Directory Entry Information")
4179 # XXX - CreationDate and CreationTime here appear to be big-endian,
4180 # but there's no way to say that *this* instance of a field is
4181 # big-endian but *other* instances are little-endian.
4183 DirectoryInstance = struct("directory_instance", [
4187 DirectoryAttributes,
4188 DirectoryAccessRights,
4194 ], "Directory Information")
4195 DMInfoLevel0 = struct("dm_info_level_0", [
4196 uint32("io_flag", "IO Flag"),
4197 uint32("sm_info_size", "Storage Module Information Size"),
4198 uint32("avail_space", "Available Space"),
4199 uint32("used_space", "Used Space"),
4200 stringz("s_module_name", "Storage Module Name"),
4201 uint8("s_m_info", "Storage Media Information"),
4203 DMInfoLevel1 = struct("dm_info_level_1", [
4207 DMInfoLevel2 = struct("dm_info_level_2", [
4210 DOSDirectoryEntryStruct = struct("dos_directory_entry_struct", [
4227 InheritedRightsMask,
4228 ], "DOS Directory Information")
4229 DOSFileEntryStruct = struct("dos_file_entry_struct", [
4249 InheritedRightsMask,
4254 ], "DOS File Information")
4255 DSSpaceAllocateStruct = struct("ds_space_alloc_struct", [
4256 DataStreamSpaceAlloc,
4258 DynMemStruct = struct("dyn_mem_struct", [
4259 uint32("dyn_mem_struct_total", "Total Dynamic Space" ),
4260 uint32("dyn_mem_struct_max", "Max Used Dynamic Space" ),
4261 uint32("dyn_mem_struct_cur", "Current Used Dynamic Space" ),
4262 ], "Dynamic Memory Information")
4263 EAInfoStruct = struct("ea_info_struct", [
4267 ], "Extended Attribute Information")
4268 ExtraCacheCntrs = struct("extra_cache_cntrs", [
4269 uint32("internl_dsk_get_no_wait", "Internal Disk Get No Wait Count"),
4270 uint32("internl_dsk_get_no_wait_need", "Internal Disk Get No Wait Need To Allocate Count"),
4271 uint32("internl_dsk_get_no_wait_no_blk", "Internal Disk Get No Wait No Block Count"),
4272 uint32("id_get_no_read_no_wait", "ID Get No Read No Wait Count"),
4273 uint32("id_get_no_read_no_wait_sema", "ID Get No Read No Wait Semaphored Count"),
4274 uint32("id_get_no_read_no_wait_buffer", "ID Get No Read No Wait No Buffer Count"),
4275 uint32("id_get_no_read_no_wait_alloc", "ID Get No Read No Wait Allocate Count"),
4276 uint32("id_get_no_read_no_wait_no_alloc", "ID Get No Read No Wait No Alloc Count"),
4277 uint32("id_get_no_read_no_wait_no_alloc_sema", "ID Get No Read No Wait No Alloc Semaphored Count"),
4278 uint32("id_get_no_read_no_wait_no_alloc_alloc", "ID Get No Read No Wait No Alloc Allocate Count"),
4279 ], "Extra Cache Counters Information")
4282 ReferenceIDStruct = struct("ref_id_struct", [
4285 NSAttributeStruct = struct("ns_attrib_struct", [
4288 DStreamActual = struct("d_stream_actual", [
4290 # Need to look into how to format this correctly
4292 DStreamLogical = struct("d_string_logical", [
4294 # Need to look into how to format this correctly
4296 LastUpdatedInSecondsStruct = struct("last_update_in_seconds_struct", [
4297 SecondsRelativeToTheYear2000,
4299 DOSNameStruct = struct("dos_name_struct", [
4302 FlushTimeStruct = struct("flush_time_struct", [
4305 ParentBaseIDStruct = struct("parent_base_id_struct", [
4308 MacFinderInfoStruct = struct("mac_finder_info_struct", [
4311 SiblingCountStruct = struct("sibling_count_struct", [
4314 EffectiveRightsStruct = struct("eff_rights_struct", [
4318 MacTimeStruct = struct("mac_time_struct", [
4324 LastAccessedTimeStruct = struct("last_access_time_struct", [
4330 FileAttributesStruct = struct("file_attributes_struct", [
4333 FileInfoStruct = struct("file_info_struct", [
4335 DirectoryEntryNumber,
4336 TotalBlocksToDecompress,
4337 CurrentBlockBeingDecompressed,
4338 ], "File Information")
4340 # XXX - CreationDate, CreationTime, UpdateDate, and UpdateTime here
4341 # appear to be big-endian, but there's no way to say that *this*
4342 # instance of a field is big-endian but *other* instances are
4345 FileInstance = struct("file_instance", [
4357 FileNameStruct = struct("file_name_struct", [
4360 FileServerCounters = struct("file_server_counters", [
4361 uint16("too_many_hops", "Too Many Hops"),
4362 uint16("unknown_network", "Unknown Network"),
4363 uint16("no_space_for_service", "No Space For Service"),
4364 uint16("no_receive_buff", "No Receive Buffers"),
4365 uint16("not_my_network", "Not My Network"),
4366 uint32("netbios_progated", "NetBIOS Propagated Count"),
4367 uint32("ttl_pckts_srvcd", "Total Packets Serviced"),
4368 uint32("ttl_pckts_routed", "Total Packets Routed"),
4369 ], "File Server Counters")
4370 FileSystemInfo = struct("file_system_info", [
4371 uint32("fat_moved", "Number of times the OS has move the location of FAT"),
4372 uint32("fat_write_err", "Number of write errors in both original and mirrored copies of FAT"),
4373 uint32("someone_else_did_it_0", "Someone Else Did It Count 0"),
4374 uint32("someone_else_did_it_1", "Someone Else Did It Count 1"),
4375 uint32("someone_else_did_it_2", "Someone Else Did It Count 2"),
4376 uint32("i_ran_out_someone_else_did_it_0", "I Ran Out Someone Else Did It Count 0"),
4377 uint32("i_ran_out_someone_else_did_it_1", "I Ran Out Someone Else Did It Count 1"),
4378 uint32("i_ran_out_someone_else_did_it_2", "I Ran Out Someone Else Did It Count 2"),
4379 uint32("turbo_fat_build_failed", "Turbo FAT Build Failed Count"),
4380 uint32("extra_use_count_node_count", "Errors allocating a use count node for TTS"),
4381 uint32("extra_extra_use_count_node_count", "Errors allocating an additional use count node for TTS"),
4382 uint32("error_read_last_fat", "Error Reading Last FAT Count"),
4383 uint32("someone_else_using_this_file", "Someone Else Using This File Count"),
4384 ], "File System Information")
4385 GenericInfoDef = struct("generic_info_def", [
4386 fw_string("generic_label", "Label", 64),
4387 uint32("generic_ident_type", "Identification Type"),
4388 uint32("generic_ident_time", "Identification Time"),
4389 uint32("generic_media_type", "Media Type"),
4390 uint32("generic_cartridge_type", "Cartridge Type"),
4391 uint32("generic_unit_size", "Unit Size"),
4392 uint32("generic_block_size", "Block Size"),
4393 uint32("generic_capacity", "Capacity"),
4394 uint32("generic_pref_unit_size", "Preferred Unit Size"),
4395 fw_string("generic_name", "Name",64),
4396 uint32("generic_type", "Type"),
4397 uint32("generic_status", "Status"),
4398 uint32("generic_func_mask", "Function Mask"),
4399 uint32("generic_ctl_mask", "Control Mask"),
4400 uint32("generic_parent_count", "Parent Count"),
4401 uint32("generic_sib_count", "Sibling Count"),
4402 uint32("generic_child_count", "Child Count"),
4403 uint32("generic_spec_info_sz", "Specific Information Size"),
4404 uint32("generic_object_uniq_id", "Unique Object ID"),
4405 uint32("generic_media_slot", "Media Slot"),
4406 ], "Generic Information")
4407 HandleInfoLevel0 = struct("handle_info_level_0", [
4410 HandleInfoLevel1 = struct("handle_info_level_1", [
4413 HandleInfoLevel2 = struct("handle_info_level_2", [
4418 HandleInfoLevel3 = struct("handle_info_level_3", [
4422 HandleInfoLevel4 = struct("handle_info_level_4", [
4425 ParentDirectoryBase,
4426 ParentDOSDirectoryBase,
4428 HandleInfoLevel5 = struct("handle_info_level_5", [
4432 ParentDirectoryBase,
4433 ParentDOSDirectoryBase,
4435 IPXInformation = struct("ipx_information", [
4436 uint32("ipx_send_pkt", "IPX Send Packet Count"),
4437 uint16("ipx_malform_pkt", "IPX Malformed Packet Count"),
4438 uint32("ipx_get_ecb_req", "IPX Get ECB Request Count"),
4439 uint32("ipx_get_ecb_fail", "IPX Get ECB Fail Count"),
4440 uint32("ipx_aes_event", "IPX AES Event Count"),
4441 uint16("ipx_postponed_aes", "IPX Postponed AES Count"),
4442 uint16("ipx_max_conf_sock", "IPX Max Configured Socket Count"),
4443 uint16("ipx_max_open_sock", "IPX Max Open Socket Count"),
4444 uint16("ipx_open_sock_fail", "IPX Open Socket Fail Count"),
4445 uint32("ipx_listen_ecb", "IPX Listen ECB Count"),
4446 uint16("ipx_ecb_cancel_fail", "IPX ECB Cancel Fail Count"),
4447 uint16("ipx_get_lcl_targ_fail", "IPX Get Local Target Fail Count"),
4448 ], "IPX Information")
4449 JobEntryTime = struct("job_entry_time", [
4456 ], "Job Entry Time")
4457 JobStruct = struct("job_struct", [
4461 TargetServerIDNumber,
4462 TargetExecutionTime,
4475 ], "Job Information")
4476 JobStructNew = struct("job_struct_new", [
4481 ClientTaskNumberLong,
4483 TargetServerIDNumber,
4484 TargetExecutionTime,
4489 JobControlFlagsWord,
4493 ServerTaskNumberLong,
4495 ], "Job Information")
4496 KnownRoutes = struct("known_routes", [
4502 KnownServStruc = struct("known_server_struct", [
4507 LANConfigInfo = struct("lan_cfg_info", [
4508 LANdriverCFG_MajorVersion,
4509 LANdriverCFG_MinorVersion,
4510 LANdriverNodeAddress,
4513 LANdriverBoardNumber,
4514 LANdriverBoardInstance,
4515 LANdriverMaximumSize,
4516 LANdriverMaxRecvSize,
4520 LANdriverTransportTime,
4521 LANdriverSrcRouting,
4524 LANdriverMajorVersion,
4525 LANdriverMinorVersion,
4527 LANdriverSendRetries,
4529 LANdriverSharingFlags,
4531 LANdriverIOPortsAndRanges1,
4532 LANdriverIOPortsAndRanges2,
4533 LANdriverIOPortsAndRanges3,
4534 LANdriverIOPortsAndRanges4,
4535 LANdriverMemoryDecode0,
4536 LANdriverMemoryLength0,
4537 LANdriverMemoryDecode1,
4538 LANdriverMemoryLength1,
4539 LANdriverInterrupt1,
4540 LANdriverInterrupt2,
4543 LANdriverLogicalName,
4544 LANdriverIOReserved,
4546 ], "LAN Configuration Information")
4547 LastAccessStruct = struct("last_access_struct", [
4550 lockInfo = struct("lock_info_struct", [
4551 LogicalLockThreshold,
4552 PhysicalLockThreshold,
4555 ], "Lock Information")
4556 LockStruct = struct("lock_struct", [
4562 LoginTime = struct("login_time", [
4571 LogLockStruct = struct("log_lock_struct", [
4576 LogRecStruct = struct("log_rec_struct", [
4577 ConnectionNumberWord,
4580 ], "Logical Record Locks")
4581 LSLInformation = struct("lsl_information", [
4582 uint32("rx_buffers", "Receive Buffers"),
4583 uint32("rx_buffers_75", "Receive Buffers Warning Level"),
4584 uint32("rx_buffers_checked_out", "Receive Buffers Checked Out Count"),
4585 uint32("rx_buffer_size", "Receive Buffer Size"),
4586 uint32("max_phy_packet_size", "Maximum Physical Packet Size"),
4587 uint32("last_time_rx_buff_was_alloc", "Last Time a Receive Buffer was Allocated"),
4588 uint32("max_num_of_protocols", "Maximum Number of Protocols"),
4589 uint32("max_num_of_media_types", "Maximum Number of Media Types"),
4590 uint32("total_tx_packets", "Total Transmit Packets"),
4591 uint32("get_ecb_buf", "Get ECB Buffers"),
4592 uint32("get_ecb_fails", "Get ECB Failures"),
4593 uint32("aes_event_count", "AES Event Count"),
4594 uint32("post_poned_events", "Postponed Events"),
4595 uint32("ecb_cxl_fails", "ECB Cancel Failures"),
4596 uint32("valid_bfrs_reused", "Valid Buffers Reused"),
4597 uint32("enqueued_send_cnt", "Enqueued Send Count"),
4598 uint32("total_rx_packets", "Total Receive Packets"),
4599 uint32("unclaimed_packets", "Unclaimed Packets"),
4600 uint8("stat_table_major_version", "Statistics Table Major Version"),
4601 uint8("stat_table_minor_version", "Statistics Table Minor Version"),
4602 ], "LSL Information")
4603 MaximumSpaceStruct = struct("max_space_struct", [
4606 MemoryCounters = struct("memory_counters", [
4607 uint32("orig_num_cache_buff", "Original Number Of Cache Buffers"),
4608 uint32("curr_num_cache_buff", "Current Number Of Cache Buffers"),
4609 uint32("cache_dirty_block_thresh", "Cache Dirty Block Threshold"),
4610 uint32("wait_node", "Wait Node Count"),
4611 uint32("wait_node_alloc_fail", "Wait Node Alloc Failure Count"),
4612 uint32("move_cache_node", "Move Cache Node Count"),
4613 uint32("move_cache_node_from_avai", "Move Cache Node From Avail Count"),
4614 uint32("accel_cache_node_write", "Accelerate Cache Node Write Count"),
4615 uint32("rem_cache_node", "Remove Cache Node Count"),
4616 uint32("rem_cache_node_from_avail", "Remove Cache Node From Avail Count"),
4617 ], "Memory Counters")
4618 MLIDBoardInfo = struct("mlid_board_info", [
4619 uint32("protocol_board_num", "Protocol Board Number"),
4620 uint16("protocol_number", "Protocol Number"),
4621 bytes("protocol_id", "Protocol ID", 6),
4622 nstring8("protocol_name", "Protocol Name"),
4623 ], "MLID Board Information")
4624 ModifyInfoStruct = struct("modify_info_struct", [
4629 ], "Modification Information")
4630 nameInfo = struct("name_info_struct", [
4632 nstring8("login_name", "Login Name"),
4633 ], "Name Information")
4634 NCPNetworkAddress = struct("ncp_network_address_struct", [
4638 ], "Network Address")
4640 netAddr = struct("net_addr_struct", [
4642 nbytes32("transport_addr", "Transport Address"),
4643 ], "Network Address")
4645 NetWareInformationStruct = struct("netware_information_struct", [
4646 DataStreamSpaceAlloc, # (Data Stream Alloc Bit)
4647 AttributesDef32, # (Attributes Bit)
4649 DataStreamSize, # (Data Stream Size Bit)
4650 TotalDataStreamDiskSpaceAlloc, # (Total Stream Size Bit)
4651 NumberOfDataStreams,
4652 CreationTime, # (Creation Bit)
4655 ModifiedTime, # (Modify Bit)
4659 ArchivedTime, # (Archive Bit)
4662 InheritedRightsMask, # (Rights Bit)
4663 DirectoryEntryNumber, # (Directory Entry Bit)
4664 DOSDirectoryEntryNumber,
4666 EADataSize, # (Extended Attribute Bit)
4669 CreatorNameSpaceNumber, # (Name Space Bit)
4671 ], "NetWare Information")
4672 NLMInformation = struct("nlm_information", [
4673 IdentificationNumber,
4692 NumberOfReferencedPublics,
4693 ], "NLM Information")
4694 NSInfoStruct = struct("ns_info_struct", [
4698 NWAuditStatus = struct("nw_audit_status", [
4700 AuditFileVersionDate,
4701 val_string16("audit_enable_flag", "Auditing Enabled Flag", [
4702 [ 0x0000, "Auditing Disabled" ],
4703 [ 0x0100, "Auditing Enabled" ],
4706 uint32("audit_file_size", "Audit File Size"),
4707 uint32("modified_counter", "Modified Counter"),
4708 uint32("audit_file_max_size", "Audit File Maximum Size"),
4709 uint32("audit_file_size_threshold", "Audit File Size Threshold"),
4710 uint32("audit_record_count", "Audit Record Count"),
4711 uint32("auditing_flags", "Auditing Flags"),
4712 ], "NetWare Audit Status")
4713 ObjectSecurityStruct = struct("object_security_struct", [
4716 ObjectFlagsStruct = struct("object_flags_struct", [
4719 ObjectTypeStruct = struct("object_type_struct", [
4723 ObjectNameStruct = struct("object_name_struct", [
4726 ObjectIDStruct = struct("object_id_struct", [
4730 OpnFilesStruct = struct("opn_files_struct", [
4736 DOSParentDirectoryEntry,
4741 ], "Open Files Information")
4742 OwnerIDStruct = struct("owner_id_struct", [
4745 PacketBurstInformation = struct("packet_burst_information", [
4746 uint32("big_invalid_slot", "Big Invalid Slot Count"),
4747 uint32("big_forged_packet", "Big Forged Packet Count"),
4748 uint32("big_invalid_packet", "Big Invalid Packet Count"),
4749 uint32("big_still_transmitting", "Big Still Transmitting Count"),
4750 uint32("still_doing_the_last_req", "Still Doing The Last Request Count"),
4751 uint32("invalid_control_req", "Invalid Control Request Count"),
4752 uint32("control_invalid_message_number", "Control Invalid Message Number Count"),
4753 uint32("control_being_torn_down", "Control Being Torn Down Count"),
4754 uint32("big_repeat_the_file_read", "Big Repeat the File Read Count"),
4755 uint32("big_send_extra_cc_count", "Big Send Extra CC Count"),
4756 uint32("big_return_abort_mess", "Big Return Abort Message Count"),
4757 uint32("big_read_invalid_mess", "Big Read Invalid Message Number Count"),
4758 uint32("big_read_do_it_over", "Big Read Do It Over Count"),
4759 uint32("big_read_being_torn_down", "Big Read Being Torn Down Count"),
4760 uint32("previous_control_packet", "Previous Control Packet Count"),
4761 uint32("send_hold_off_message", "Send Hold Off Message Count"),
4762 uint32("big_read_no_data_avail", "Big Read No Data Available Count"),
4763 uint32("big_read_trying_to_read", "Big Read Trying To Read Too Much Count"),
4764 uint32("async_read_error", "Async Read Error Count"),
4765 uint32("big_read_phy_read_err", "Big Read Physical Read Error Count"),
4766 uint32("ctl_bad_ack_frag_list", "Control Bad ACK Fragment List Count"),
4767 uint32("ctl_no_data_read", "Control No Data Read Count"),
4768 uint32("write_dup_req", "Write Duplicate Request Count"),
4769 uint32("shouldnt_be_ack_here", "Shouldn't Be ACKing Here Count"),
4770 uint32("write_incon_packet_len", "Write Inconsistent Packet Lengths Count"),
4771 uint32("first_packet_isnt_a_write", "First Packet Isn't A Write Count"),
4772 uint32("write_trash_dup_req", "Write Trashed Duplicate Request Count"),
4773 uint32("big_write_inv_message_num", "Big Write Invalid Message Number Count"),
4774 uint32("big_write_being_torn_down", "Big Write Being Torn Down Count"),
4775 uint32("big_write_being_abort", "Big Write Being Aborted Count"),
4776 uint32("zero_ack_frag", "Zero ACK Fragment Count"),
4777 uint32("write_curr_trans", "Write Currently Transmitting Count"),
4778 uint32("try_to_write_too_much", "Trying To Write Too Much Count"),
4779 uint32("write_out_of_mem_for_ctl_nodes", "Write Out Of Memory For Control Nodes Count"),
4780 uint32("write_didnt_need_this_frag", "Write Didn't Need This Fragment Count"),
4781 uint32("write_too_many_buf_check", "Write Too Many Buffers Checked Out Count"),
4782 uint32("write_timeout", "Write Time Out Count"),
4783 uint32("write_got_an_ack0", "Write Got An ACK Count 0"),
4784 uint32("write_got_an_ack1", "Write Got An ACK Count 1"),
4785 uint32("poll_abort_conn", "Poller Aborted The Connnection Count"),
4786 uint32("may_had_out_of_order", "Maybe Had Out Of Order Writes Count"),
4787 uint32("had_an_out_of_order", "Had An Out Of Order Write Count"),
4788 uint32("moved_the_ack_bit_dn", "Moved The ACK Bit Down Count"),
4789 uint32("bumped_out_of_order", "Bumped Out Of Order Write Count"),
4790 uint32("poll_rem_old_out_of_order", "Poller Removed Old Out Of Order Count"),
4791 uint32("write_didnt_need_but_req_ack", "Write Didn't Need But Requested ACK Count"),
4792 uint32("write_trash_packet", "Write Trashed Packet Count"),
4793 uint32("too_many_ack_frag", "Too Many ACK Fragments Count"),
4794 uint32("saved_an_out_of_order_packet", "Saved An Out Of Order Packet Count"),
4795 uint32("conn_being_aborted", "Connection Being Aborted Count"),
4796 ], "Packet Burst Information")
4798 PadDSSpaceAllocate = struct("pad_ds_space_alloc", [
4801 PadAttributes = struct("pad_attributes", [
4804 PadDataStreamSize = struct("pad_data_stream_size", [
4807 PadTotalStreamSize = struct("pad_total_stream_size", [
4810 PadCreationInfo = struct("pad_creation_info", [
4813 PadModifyInfo = struct("pad_modify_info", [
4816 PadArchiveInfo = struct("pad_archive_info", [
4819 PadRightsInfo = struct("pad_rights_info", [
4822 PadDirEntry = struct("pad_dir_entry", [
4825 PadEAInfo = struct("pad_ea_info", [
4828 PadNSInfo = struct("pad_ns_info", [
4831 PhyLockStruct = struct("phy_lock_struct", [
4836 LogicalConnectionNumber,
4839 ], "Physical Locks")
4840 printInfo = struct("print_info_struct", [
4848 ], "Print Information")
4849 RightsInfoStruct = struct("rights_info_struct", [
4850 InheritedRightsMask,
4852 RoutersInfo = struct("routers_info", [
4853 bytes("node", "Node", 6),
4855 uint16("route_hops", "Hop Count"),
4856 uint16("route_time", "Route Time"),
4857 ], "Router Information")
4858 RTagStructure = struct("r_tag_struct", [
4864 ScanInfoFileName = struct("scan_info_file_name", [
4865 SalvageableFileEntryNumber,
4868 ScanInfoFileNoName = struct("scan_info_file_no_name", [
4869 SalvageableFileEntryNumber,
4871 Segments = struct("segments", [
4872 uint32("volume_segment_dev_num", "Volume Segment Device Number"),
4873 uint32("volume_segment_offset", "Volume Segment Offset"),
4874 uint32("volume_segment_size", "Volume Segment Size"),
4875 ], "Volume Segment Information")
4876 SemaInfoStruct = struct("sema_info_struct", [
4877 LogicalConnectionNumber,
4880 SemaStruct = struct("sema_struct", [
4885 ], "Semaphore Information")
4886 ServerInfo = struct("server_info", [
4887 uint32("reply_canceled", "Reply Canceled Count"),
4888 uint32("write_held_off", "Write Held Off Count"),
4889 uint32("write_held_off_with_dup", "Write Held Off With Duplicate Request"),
4890 uint32("invalid_req_type", "Invalid Request Type Count"),
4891 uint32("being_aborted", "Being Aborted Count"),
4892 uint32("already_doing_realloc", "Already Doing Re-Allocate Count"),
4893 uint32("dealloc_invalid_slot", "De-Allocate Invalid Slot Count"),
4894 uint32("dealloc_being_proc", "De-Allocate Being Processed Count"),
4895 uint32("dealloc_forged_packet", "De-Allocate Forged Packet Count"),
4896 uint32("dealloc_still_transmit", "De-Allocate Still Transmitting Count"),
4897 uint32("start_station_error", "Start Station Error Count"),
4898 uint32("invalid_slot", "Invalid Slot Count"),
4899 uint32("being_processed", "Being Processed Count"),
4900 uint32("forged_packet", "Forged Packet Count"),
4901 uint32("still_transmitting", "Still Transmitting Count"),
4902 uint32("reexecute_request", "Re-Execute Request Count"),
4903 uint32("invalid_sequence_number", "Invalid Sequence Number Count"),
4904 uint32("dup_is_being_sent", "Duplicate Is Being Sent Already Count"),
4905 uint32("sent_pos_ack", "Sent Positive Acknowledge Count"),
4906 uint32("sent_a_dup_reply", "Sent A Duplicate Reply Count"),
4907 uint32("no_mem_for_station", "No Memory For Station Control Count"),
4908 uint32("no_avail_conns", "No Available Connections Count"),
4909 uint32("realloc_slot", "Re-Allocate Slot Count"),
4910 uint32("realloc_slot_came_too_soon", "Re-Allocate Slot Came Too Soon Count"),
4911 ], "Server Information")
4912 ServersSrcInfo = struct("servers_src_info", [
4916 ], "Source Server Information")
4917 SpaceStruct = struct("space_struct", [
4921 ], "Space Information")
4922 SPXInformation = struct("spx_information", [
4923 uint16("spx_max_conn", "SPX Max Connections Count"),
4924 uint16("spx_max_used_conn", "SPX Max Used Connections"),
4925 uint16("spx_est_conn_req", "SPX Establish Connection Requests"),
4926 uint16("spx_est_conn_fail", "SPX Establish Connection Fail"),
4927 uint16("spx_listen_con_req", "SPX Listen Connect Request"),
4928 uint16("spx_listen_con_fail", "SPX Listen Connect Fail"),
4929 uint32("spx_send", "SPX Send Count"),
4930 uint32("spx_window_choke", "SPX Window Choke Count"),
4931 uint16("spx_bad_send", "SPX Bad Send Count"),
4932 uint16("spx_send_fail", "SPX Send Fail Count"),
4933 uint16("spx_abort_conn", "SPX Aborted Connection"),
4934 uint32("spx_listen_pkt", "SPX Listen Packet Count"),
4935 uint16("spx_bad_listen", "SPX Bad Listen Count"),
4936 uint32("spx_incoming_pkt", "SPX Incoming Packet Count"),
4937 uint16("spx_bad_in_pkt", "SPX Bad In Packet Count"),
4938 uint16("spx_supp_pkt", "SPX Suppressed Packet Count"),
4939 uint16("spx_no_ses_listen", "SPX No Session Listen ECB Count"),
4940 uint16("spx_watch_dog", "SPX Watch Dog Destination Session Count"),
4941 ], "SPX Information")
4942 StackInfo = struct("stack_info", [
4944 fw_string("stack_short_name", "Stack Short Name", 16),
4945 ], "Stack Information")
4946 statsInfo = struct("stats_info_struct", [
4951 theTimeStruct = struct("the_time_struct", [
4956 timeInfo = struct("time_info", [
4964 uint32("login_expiration_time", "Login Expiration Time"),
4966 TotalStreamSizeStruct = struct("total_stream_size_struct", [
4967 TotalDataStreamDiskSpaceAlloc,
4968 NumberOfDataStreams,
4970 TrendCounters = struct("trend_counters", [
4971 uint32("num_of_cache_checks", "Number Of Cache Checks"),
4972 uint32("num_of_cache_hits", "Number Of Cache Hits"),
4973 uint32("num_of_dirty_cache_checks", "Number Of Dirty Cache Checks"),
4974 uint32("num_of_cache_dirty_checks", "Number Of Cache Dirty Checks"),
4975 uint32("cache_used_while_check", "Cache Used While Checking"),
4976 uint32("wait_till_dirty_blcks_dec", "Wait Till Dirty Blocks Decrease Count"),
4977 uint32("alloc_blck_frm_avail", "Allocate Block From Available Count"),
4978 uint32("alloc_blck_frm_lru", "Allocate Block From LRU Count"),
4979 uint32("alloc_blck_already_wait", "Allocate Block Already Waiting"),
4980 uint32("lru_sit_time", "LRU Sitting Time"),
4981 uint32("num_of_cache_check_no_wait", "Number Of Cache Check No Wait"),
4982 uint32("num_of_cache_hits_no_wait", "Number Of Cache Hits No Wait"),
4983 ], "Trend Counters")
4984 TrusteeStruct = struct("trustee_struct", [
4986 AccessRightsMaskWord,
4988 UpdateDateStruct = struct("update_date_struct", [
4991 UpdateIDStruct = struct("update_id_struct", [
4994 UpdateTimeStruct = struct("update_time_struct", [
4997 UserInformation = struct("user_info", [
5001 ConnectionServiceType,
5014 TransactionTrackingFlag,
5015 LogicalLockThreshold,
5027 ], "User Information")
5028 VolInfoStructure = struct("vol_info_struct", [
5033 SectorsPerClusterLong,
5034 VolumeSizeInClusters,
5036 SubAllocFreeableClusters,
5037 FreeableLimboSectors,
5038 NonFreeableLimboSectors,
5039 NonFreeableAvailableSubAllocSectors,
5040 NotUsableSubAllocSectors,
5043 LimboDataStreamsCount,
5044 OldestDeletedFileAgeInTicks,
5045 CompressedDataStreamsCount,
5046 CompressedLimboDataStreamsCount,
5047 UnCompressableDataStreamsCount,
5048 PreCompressedSectors,
5053 ClustersUsedByDirectories,
5054 ClustersUsedByExtendedDirectories,
5055 TotalDirectoryEntries,
5056 UnUsedDirectoryEntries,
5057 TotalExtendedDirectoryExtants,
5058 UnUsedExtendedDirectoryExtants,
5059 ExtendedAttributesDefined,
5060 ExtendedAttributeExtantsUsed,
5061 DirectoryServicesObjectID,
5062 VolumeLastModifiedTime,
5063 VolumeLastModifiedDate,
5064 ], "Volume Information")
5065 VolInfo2Struct = struct("vol_info_struct_2", [
5066 uint32("volume_active_count", "Volume Active Count"),
5067 uint32("volume_use_count", "Volume Use Count"),
5068 uint32("mac_root_ids", "MAC Root IDs"),
5069 VolumeLastModifiedTime,
5070 VolumeLastModifiedDate,
5071 uint32("volume_reference_count", "Volume Reference Count"),
5072 uint32("compression_lower_limit", "Compression Lower Limit"),
5073 uint32("outstanding_ios", "Outstanding IOs"),
5074 uint32("outstanding_compression_ios", "Outstanding Compression IOs"),
5075 uint32("compression_ios_limit", "Compression IOs Limit"),
5076 ], "Extended Volume Information")
5077 VolumeStruct = struct("volume_struct", [
5083 ##############################################################################
5085 ##############################################################################
5086 def define_groups():
5087 groups['accounting'] = "Accounting"
5088 groups['afp'] = "AFP"
5089 groups['auditing'] = "Auditing"
5090 groups['bindery'] = "Bindery"
5091 groups['comm'] = "Communication"
5092 groups['connection'] = "Connection"
5093 groups['directory'] = "Directory"
5094 groups['extended'] = "Extended Attribute"
5095 groups['file'] = "File"
5096 groups['fileserver'] = "File Server"
5097 groups['message'] = "Message"
5098 groups['migration'] = "Data Migration"
5099 groups['misc'] = "Miscellaneous"
5100 groups['name'] = "Name Space"
5101 groups['nds'] = "NetWare Directory"
5102 groups['print'] = "Print"
5103 groups['queue'] = "Queue"
5104 groups['sync'] = "Synchronization"
5105 groups['tts'] = "Transaction Tracking"
5106 groups['qms'] = "Queue Management System (QMS)"
5107 groups['stats'] = "Server Statistics"
5108 groups['unknown'] = "Unknown"
5110 ##############################################################################
5112 ##############################################################################
5113 def define_errors():
5114 errors[0x0000] = "Ok"
5115 errors[0x0001] = "Transaction tracking is available"
5116 errors[0x0002] = "Ok. The data has been written"
5117 errors[0x0003] = "Calling Station is a Manager"
5119 errors[0x0100] = "One or more of the ConnectionNumbers in the send list are invalid"
5120 errors[0x0101] = "Invalid space limit"
5121 errors[0x0102] = "Insufficient disk space"
5122 errors[0x0103] = "Queue server cannot add jobs"
5123 errors[0x0104] = "Out of disk space"
5124 errors[0x0105] = "Semaphore overflow"
5125 errors[0x0106] = "Invalid Parameter"
5126 errors[0x0107] = "Invalid Number of Minutes to Delay"
5127 errors[0x0108] = "Invalid Start or Network Number"
5128 errors[0x0109] = "Cannot Obtain License"
5130 errors[0x0200] = "One or more clients in the send list are not logged in"
5131 errors[0x0201] = "Queue server cannot attach"
5133 errors[0x0300] = "One or more clients in the send list are not accepting messages"
5135 errors[0x0400] = "Client already has message"
5136 errors[0x0401] = "Queue server cannot service job"
5138 errors[0x7300] = "Revoke Handle Rights Not Found"
5139 errors[0x7900] = "Invalid Parameter in Request Packet"
5140 errors[0x7901] = "Nothing being Compressed"
5141 errors[0x7a00] = "Connection Already Temporary"
5142 errors[0x7b00] = "Connection Already Logged in"
5143 errors[0x7c00] = "Connection Not Authenticated"
5145 errors[0x7e00] = "NCP failed boundary check"
5146 errors[0x7e01] = "Invalid Length"
5148 errors[0x7f00] = "Lock Waiting"
5149 errors[0x8000] = "Lock fail"
5150 errors[0x8001] = "File in Use"
5152 errors[0x8100] = "A file handle could not be allocated by the file server"
5153 errors[0x8101] = "Out of File Handles"
5155 errors[0x8200] = "Unauthorized to open the file"
5156 errors[0x8300] = "Unable to read/write the volume. Possible bad sector on the file server"
5157 errors[0x8301] = "Hard I/O Error"
5159 errors[0x8400] = "Unauthorized to create the directory"
5160 errors[0x8401] = "Unauthorized to create the file"
5162 errors[0x8500] = "Unauthorized to delete the specified file"
5163 errors[0x8501] = "Unauthorized to overwrite an existing file in this directory"
5165 errors[0x8700] = "An unexpected character was encountered in the filename"
5166 errors[0x8701] = "Create Filename Error"
5168 errors[0x8800] = "Invalid file handle"
5169 errors[0x8900] = "Unauthorized to search this file/directory"
5170 errors[0x8a00] = "Unauthorized to delete this file/directory"
5171 errors[0x8b00] = "Unauthorized to rename a file in this directory"
5173 errors[0x8c00] = "No set privileges"
5174 errors[0x8c01] = "Unauthorized to modify a file in this directory"
5175 errors[0x8c02] = "Unauthorized to change the restriction on this volume"
5177 errors[0x8d00] = "Some of the affected files are in use by another client"
5178 errors[0x8d01] = "The affected file is in use"
5180 errors[0x8e00] = "All of the affected files are in use by another client"
5181 errors[0x8f00] = "Some of the affected files are read-only"
5183 errors[0x9000] = "An attempt to modify a read-only volume occurred"
5184 errors[0x9001] = "All of the affected files are read-only"
5185 errors[0x9002] = "Read Only Access to Volume"
5187 errors[0x9100] = "Some of the affected files already exist"
5188 errors[0x9101] = "Some Names Exist"
5190 errors[0x9200] = "Directory with the new name already exists"
5191 errors[0x9201] = "All of the affected files already exist"
5193 errors[0x9300] = "Unauthorized to read from this file"
5194 errors[0x9400] = "Unauthorized to write to this file"
5195 errors[0x9500] = "The affected file is detached"
5197 errors[0x9600] = "The file server has run out of memory to service this request"
5198 errors[0x9601] = "No alloc space for message"
5199 errors[0x9602] = "Server Out of Space"
5201 errors[0x9800] = "The affected volume is not mounted"
5202 errors[0x9801] = "The volume associated with Volume Number is not mounted"
5203 errors[0x9802] = "The resulting volume does not exist"
5204 errors[0x9803] = "The destination volume is not mounted"
5205 errors[0x9804] = "Disk Map Error"
5207 errors[0x9900] = "The file server has run out of directory space on the affected volume"
5208 errors[0x9a00] = "The request attempted to rename the affected file to another volume"
5210 errors[0x9b00] = "DirHandle is not associated with a valid directory path"
5211 errors[0x9b01] = "A resulting directory handle is not associated with a valid directory path"
5212 errors[0x9b02] = "The directory associated with DirHandle does not exist"
5213 errors[0x9b03] = "Bad directory handle"
5215 errors[0x9c00] = "The resulting path is not valid"
5216 errors[0x9c01] = "The resulting file path is not valid"
5217 errors[0x9c02] = "The resulting directory path is not valid"
5218 errors[0x9c03] = "Invalid path"
5220 errors[0x9d00] = "A directory handle was not available for allocation"
5222 errors[0x9e00] = "The name of the directory does not conform to a legal name for this name space"
5223 errors[0x9e01] = "The new directory name does not conform to a legal name for this name space"
5224 errors[0x9e02] = "Bad File Name"
5226 errors[0x9f00] = "The request attempted to delete a directory that is in use by another client"
5228 errors[0xa000] = "The request attempted to delete a directory that is not empty"
5229 errors[0xa100] = "An unrecoverable error occured on the affected directory"
5231 errors[0xa200] = "The request attempted to read from a file region that is physically locked"
5232 errors[0xa201] = "I/O Lock Error"
5234 errors[0xa400] = "Invalid directory rename attempted"
5235 errors[0xa500] = "Invalid open create mode"
5236 errors[0xa600] = "Auditor Access has been Removed"
5237 errors[0xa700] = "Error Auditing Version"
5239 errors[0xa800] = "Invalid Support Module ID"
5240 errors[0xa801] = "No Auditing Access Rights"
5242 errors[0xbe00] = "Invalid Data Stream"
5243 errors[0xbf00] = "Requests for this name space are not valid on this volume"
5245 errors[0xc000] = "Unauthorized to retrieve accounting data"
5247 errors[0xc100] = "The ACCOUNT_BALANCE property does not exist"
5248 errors[0xc101] = "No Account Balance"
5250 errors[0xc200] = "The object has exceeded its credit limit"
5251 errors[0xc300] = "Too many holds have been placed against this account"
5252 errors[0xc400] = "The client account has been disabled"
5254 errors[0xc500] = "Access to the account has been denied because of intruder detection"
5255 errors[0xc501] = "Login lockout"
5256 errors[0xc502] = "Server Login Locked"
5258 errors[0xc600] = "The caller does not have operator priviliges"
5259 errors[0xc601] = "The client does not have operator priviliges"
5261 errors[0xc800] = "Missing EA Key"
5262 errors[0xc900] = "EA Not Found"
5263 errors[0xca00] = "Invalid EA Handle Type"
5264 errors[0xcb00] = "EA No Key No Data"
5265 errors[0xcc00] = "EA Number Mismatch"
5266 errors[0xcd00] = "Extent Number Out of Range"
5267 errors[0xce00] = "EA Bad Directory Number"
5268 errors[0xcf00] = "Invalid EA Handle"
5270 errors[0xd000] = "Queue error"
5271 errors[0xd001] = "EA Position Out of Range"
5273 errors[0xd100] = "The queue does not exist"
5274 errors[0xd101] = "EA Access Denied"
5276 errors[0xd200] = "A queue server is not associated with this queue"
5277 errors[0xd201] = "A queue server is not associated with the selected queue"
5278 errors[0xd202] = "No queue server"
5279 errors[0xd203] = "Data Page Odd Size"
5281 errors[0xd300] = "No queue rights"
5282 errors[0xd301] = "EA Volume Not Mounted"
5284 errors[0xd400] = "The queue is full and cannot accept another request"
5285 errors[0xd401] = "The queue associated with ObjectId is full and cannot accept another request"
5286 errors[0xd402] = "Bad Page Boundary"
5288 errors[0xd500] = "A job does not exist in this queue"
5289 errors[0xd501] = "No queue job"
5290 errors[0xd502] = "The job associated with JobNumber does not exist in this queue"
5291 errors[0xd503] = "Inspect Failure"
5293 errors[0xd600] = "The file server does not allow unencrypted passwords"
5294 errors[0xd601] = "No job right"
5295 errors[0xd602] = "EA Already Claimed"
5297 errors[0xd700] = "Bad account"
5298 errors[0xd701] = "The old and new password strings are identical"
5299 errors[0xd702] = "The job is currently being serviced"
5300 errors[0xd703] = "The queue is currently servicing a job"
5301 errors[0xd704] = "Queue servicing"
5302 errors[0xd705] = "Odd Buffer Size"
5304 errors[0xd800] = "Queue not active"
5305 errors[0xd801] = "No Scorecards"
5307 errors[0xd900] = "The file server cannot accept another connection as it has reached its limit"
5308 errors[0xd901] = "The client is not security equivalent to one of the objects in the Q_SERVERS group property of the target queue"
5309 errors[0xd902] = "Station is not a server"
5310 errors[0xd903] = "Bad EDS Signature"
5312 errors[0xda00] = "Attempted to login to the file server during a restricted time period"
5313 errors[0xda01] = "Queue halted"
5314 errors[0xda02] = "EA Space Limit"
5316 errors[0xdb00] = "Attempted to login to the file server from an unauthorized workstation or network"
5317 errors[0xdb01] = "The queue cannot attach another queue server"
5318 errors[0xdb02] = "Maximum queue servers"
5319 errors[0xdb03] = "EA Key Corrupt"
5321 errors[0xdc00] = "Account Expired"
5322 errors[0xdc01] = "EA Key Limit"
5324 errors[0xdd00] = "Tally Corrupt"
5325 errors[0xde00] = "Attempted to login to the file server with an incorrect password"
5326 errors[0xdf00] = "Attempted to login to the file server with a password that has expired"
5328 errors[0xe000] = "No Login Connections Available"
5329 errors[0xe700] = "No disk track"
5330 errors[0xe800] = "Write to group"
5331 errors[0xe900] = "The object is already a member of the group property"
5333 errors[0xea00] = "No such member"
5334 errors[0xea01] = "The bindery object is not a member of the set"
5335 errors[0xea02] = "Non-existent member"
5337 errors[0xeb00] = "The property is not a set property"
5339 errors[0xec00] = "No such set"
5340 errors[0xec01] = "The set property does not exist"
5342 errors[0xed00] = "Property exists"
5343 errors[0xed01] = "The property already exists"
5344 errors[0xed02] = "An attempt was made to create a bindery object property that already exists"
5346 errors[0xee00] = "The object already exists"
5347 errors[0xee01] = "The bindery object already exists"
5349 errors[0xef00] = "Illegal name"
5350 errors[0xef01] = "Illegal characters in ObjectName field"
5351 errors[0xef02] = "Invalid name"
5353 errors[0xf000] = "A wildcard was detected in a field that does not support wildcards"
5354 errors[0xf001] = "An illegal wildcard was detected in ObjectName"
5356 errors[0xf100] = "The client does not have the rights to access this bindery object"
5357 errors[0xf101] = "Bindery security"
5358 errors[0xf102] = "Invalid bindery security"
5360 errors[0xf200] = "Unauthorized to read from this object"
5361 errors[0xf300] = "Unauthorized to rename this object"
5363 errors[0xf400] = "Unauthorized to delete this object"
5364 errors[0xf401] = "No object delete privileges"
5365 errors[0xf402] = "Unauthorized to delete this queue"
5367 errors[0xf500] = "Unauthorized to create this object"
5368 errors[0xf501] = "No object create"
5370 errors[0xf600] = "No property delete"
5371 errors[0xf601] = "Unauthorized to delete the property of this object"
5372 errors[0xf602] = "Unauthorized to delete this property"
5374 errors[0xf700] = "Unauthorized to create this property"
5375 errors[0xf701] = "No property create privilege"
5377 errors[0xf800] = "Unauthorized to write to this property"
5378 errors[0xf900] = "Unauthorized to read this property"
5379 errors[0xfa00] = "Temporary remap error"
5381 errors[0xfb00] = "No such property"
5382 errors[0xfb01] = "The file server does not support this request"
5383 errors[0xfb02] = "The specified property does not exist"
5384 errors[0xfb03] = "The PASSWORD property does not exist for this bindery object"
5385 errors[0xfb04] = "NDS NCP not available"
5386 errors[0xfb05] = "Bad Directory Handle"
5387 errors[0xfb06] = "Unknown Request"
5388 errors[0xfb07] = "Invalid Subfunction Request"
5389 errors[0xfb08] = "Attempt to use an invalid parameter (drive number, path, or flag value) during a set drive path call"
5390 errors[0xfb09] = "NMAS not installed on this server, NCP NOT Supported"
5391 errors[0xfb0a] = "Station Not Logged In"
5393 errors[0xfc00] = "The message queue cannot accept another message"
5394 errors[0xfc01] = "The trustee associated with ObjectId does not exist"
5395 errors[0xfc02] = "The specified bindery object does not exist"
5396 errors[0xfc03] = "The bindery object associated with ObjectID does not exist"
5397 errors[0xfc04] = "A bindery object does not exist that matches"
5398 errors[0xfc05] = "The specified queue does not exist"
5399 errors[0xfc06] = "No such object"
5400 errors[0xfc07] = "The queue associated with ObjectID does not exist"
5402 errors[0xfd00] = "Bad station number"
5403 errors[0xfd01] = "The connection associated with ConnectionNumber is not active"
5404 errors[0xfd02] = "Lock collision"
5405 errors[0xfd03] = "Transaction tracking is disabled"
5407 errors[0xfe00] = "I/O failure"
5408 errors[0xfe01] = "The files containing the bindery on the file server are locked"
5409 errors[0xfe02] = "A file with the specified name already exists in this directory"
5410 errors[0xfe03] = "No more restrictions were found"
5411 errors[0xfe04] = "The file server was unable to lock the file within the specified time limit"
5412 errors[0xfe05] = "The file server was unable to lock all files within the specified time limit"
5413 errors[0xfe06] = "The bindery object associated with ObjectID is not a valid trustee"
5414 errors[0xfe07] = "Directory locked"
5415 errors[0xfe08] = "Bindery locked"
5416 errors[0xfe09] = "Invalid semaphore name length"
5417 errors[0xfe0a] = "The file server was unable to complete the operation within the specified time limit"
5418 errors[0xfe0b] = "Transaction restart"
5419 errors[0xfe0c] = "Bad packet"
5420 errors[0xfe0d] = "Timeout"
5421 errors[0xfe0e] = "User Not Found"
5422 errors[0xfe0f] = "Trustee Not Found"
5424 errors[0xff00] = "Failure"
5425 errors[0xff01] = "Lock error"
5426 errors[0xff02] = "File not found"
5427 errors[0xff03] = "The file not found or cannot be unlocked"
5428 errors[0xff04] = "Record not found"
5429 errors[0xff05] = "The logical record was not found"
5430 errors[0xff06] = "The printer associated with Printer Number does not exist"
5431 errors[0xff07] = "No such printer"
5432 errors[0xff08] = "Unable to complete the request"
5433 errors[0xff09] = "Unauthorized to change privileges of this trustee"
5434 errors[0xff0a] = "No files matching the search criteria were found"
5435 errors[0xff0b] = "A file matching the search criteria was not found"
5436 errors[0xff0c] = "Verification failed"
5437 errors[0xff0d] = "Object associated with ObjectID is not a manager"
5438 errors[0xff0e] = "Invalid initial semaphore value"
5439 errors[0xff0f] = "The semaphore handle is not valid"
5440 errors[0xff10] = "SemaphoreHandle is not associated with a valid sempahore"
5441 errors[0xff11] = "Invalid semaphore handle"
5442 errors[0xff12] = "Transaction tracking is not available"
5443 errors[0xff13] = "The transaction has not yet been written to disk"
5444 errors[0xff14] = "Directory already exists"
5445 errors[0xff15] = "The file already exists and the deletion flag was not set"
5446 errors[0xff16] = "No matching files or directories were found"
5447 errors[0xff17] = "A file or directory matching the search criteria was not found"
5448 errors[0xff18] = "The file already exists"
5449 errors[0xff19] = "Failure, No files found"
5450 errors[0xff1a] = "Unlock Error"
5451 errors[0xff1b] = "I/O Bound Error"
5452 errors[0xff1c] = "Not Accepting Messages"
5453 errors[0xff1d] = "No More Salvageable Files in Directory"
5454 errors[0xff1e] = "Calling Station is Not a Manager"
5455 errors[0xff1f] = "Bindery Failure"
5456 errors[0xff20] = "NCP Extension Not Found"
5458 ##############################################################################
5460 ##############################################################################
5461 def ExamineVars(vars, structs_hash, vars_hash):
5463 if isinstance(var, struct):
5464 structs_hash[var.HFName()] = var
5465 struct_vars = var.Variables()
5466 ExamineVars(struct_vars, structs_hash, vars_hash)
5468 vars_hash[repr(var)] = var
5469 if isinstance(var, bitfield):
5470 sub_vars = var.SubVariables()
5471 ExamineVars(sub_vars, structs_hash, vars_hash)
5478 print " * Generated automatically from %s" % (sys.argv[0])
5479 print " * Do not edit this file manually, as all changes will be lost."
5484 * This program is free software; you can redistribute it and/or
5485 * modify it under the terms of the GNU General Public License
5486 * as published by the Free Software Foundation; either version 2
5487 * of the License, or (at your option) any later version.
5489 * This program is distributed in the hope that it will be useful,
5490 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5491 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5492 * GNU General Public License for more details.
5494 * You should have received a copy of the GNU General Public License
5495 * along with this program; if not, write to the Free Software
5496 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
5499 #ifdef HAVE_CONFIG_H
5500 # include "config.h"
5505 #include <epan/packet.h>
5506 #include <epan/conversation.h>
5507 #include "ptvcursor.h"
5508 #include "packet-ncp-int.h"
5510 /* Function declarations for functions used in proto_register_ncp2222() */
5511 static void ncp_init_protocol(void);
5512 static void ncp_postseq_cleanup(void);
5514 /* Endianness macros */
5517 #define NO_ENDIANNESS 0
5519 #define NO_LENGTH -1
5521 /* We use this int-pointer as a special flag in ptvc_record's */
5522 static int ptvc_struct_int_storage;
5523 #define PTVC_STRUCT (&ptvc_struct_int_storage)
5525 /* Values used in the count-variable ("var"/"repeat") logic. */"""
5528 if global_highest_var > -1:
5529 print "#define NUM_REPEAT_VARS\t%d" % (global_highest_var + 1)
5530 print "guint repeat_vars[NUM_REPEAT_VARS];",
5532 print "#define NUM_REPEAT_VARS\t0"
5533 print "guint *repeat_vars = NULL;",
5536 #define NO_VAR NUM_REPEAT_VARS
5537 #define NO_REPEAT NUM_REPEAT_VARS
5539 #define REQ_COND_SIZE_CONSTANT 0
5540 #define REQ_COND_SIZE_VARIABLE 1
5541 #define NO_REQ_COND_SIZE 0
5544 #define NTREE 0x00020000
5545 #define NDEPTH 0x00000002
5546 #define NREV 0x00000004
5547 #define NFLAGS 0x00000008
5551 static int hf_ncp_func = -1;
5552 static int hf_ncp_length = -1;
5553 static int hf_ncp_subfunc = -1;
5554 static int hf_ncp_fragment_handle = -1;
5555 static int hf_ncp_completion_code = -1;
5556 static int hf_ncp_connection_status = -1;
5557 static int hf_ncp_req_frame_num = -1;
5558 static int hf_ncp_req_frame_time = -1;
5559 static int hf_ncp_fragment_size = -1;
5560 static int hf_ncp_message_size = -1;
5561 static int hf_ncp_nds_flag = -1;
5562 static int hf_ncp_nds_verb = -1;
5563 static int hf_ping_version = -1;
5564 static int hf_nds_version = -1;
5565 static int hf_nds_flags = -1;
5566 static int hf_nds_reply_depth = -1;
5567 static int hf_nds_reply_rev = -1;
5568 static int hf_nds_reply_flags = -1;
5569 static int hf_nds_p1type = -1;
5570 static int hf_nds_uint32value = -1;
5571 static int hf_nds_bit1 = -1;
5572 static int hf_nds_bit2 = -1;
5573 static int hf_nds_bit3 = -1;
5574 static int hf_nds_bit4 = -1;
5575 static int hf_nds_bit5 = -1;
5576 static int hf_nds_bit6 = -1;
5577 static int hf_nds_bit7 = -1;
5578 static int hf_nds_bit8 = -1;
5579 static int hf_nds_bit9 = -1;
5580 static int hf_nds_bit10 = -1;
5581 static int hf_nds_bit11 = -1;
5582 static int hf_nds_bit12 = -1;
5583 static int hf_nds_bit13 = -1;
5584 static int hf_nds_bit14 = -1;
5585 static int hf_nds_bit15 = -1;
5586 static int hf_nds_bit16 = -1;
5587 static int hf_bit1outflags = -1;
5588 static int hf_bit2outflags = -1;
5589 static int hf_bit3outflags = -1;
5590 static int hf_bit4outflags = -1;
5591 static int hf_bit5outflags = -1;
5592 static int hf_bit6outflags = -1;
5593 static int hf_bit7outflags = -1;
5594 static int hf_bit8outflags = -1;
5595 static int hf_bit9outflags = -1;
5596 static int hf_bit10outflags = -1;
5597 static int hf_bit11outflags = -1;
5598 static int hf_bit12outflags = -1;
5599 static int hf_bit13outflags = -1;
5600 static int hf_bit14outflags = -1;
5601 static int hf_bit15outflags = -1;
5602 static int hf_bit16outflags = -1;
5603 static int hf_bit1nflags = -1;
5604 static int hf_bit2nflags = -1;
5605 static int hf_bit3nflags = -1;
5606 static int hf_bit4nflags = -1;
5607 static int hf_bit5nflags = -1;
5608 static int hf_bit6nflags = -1;
5609 static int hf_bit7nflags = -1;
5610 static int hf_bit8nflags = -1;
5611 static int hf_bit9nflags = -1;
5612 static int hf_bit10nflags = -1;
5613 static int hf_bit11nflags = -1;
5614 static int hf_bit12nflags = -1;
5615 static int hf_bit13nflags = -1;
5616 static int hf_bit14nflags = -1;
5617 static int hf_bit15nflags = -1;
5618 static int hf_bit16nflags = -1;
5619 static int hf_bit1rflags = -1;
5620 static int hf_bit2rflags = -1;
5621 static int hf_bit3rflags = -1;
5622 static int hf_bit4rflags = -1;
5623 static int hf_bit5rflags = -1;
5624 static int hf_bit6rflags = -1;
5625 static int hf_bit7rflags = -1;
5626 static int hf_bit8rflags = -1;
5627 static int hf_bit9rflags = -1;
5628 static int hf_bit10rflags = -1;
5629 static int hf_bit11rflags = -1;
5630 static int hf_bit12rflags = -1;
5631 static int hf_bit13rflags = -1;
5632 static int hf_bit14rflags = -1;
5633 static int hf_bit15rflags = -1;
5634 static int hf_bit16rflags = -1;
5635 static int hf_bit1cflags = -1;
5636 static int hf_bit2cflags = -1;
5637 static int hf_bit3cflags = -1;
5638 static int hf_bit4cflags = -1;
5639 static int hf_bit5cflags = -1;
5640 static int hf_bit6cflags = -1;
5641 static int hf_bit7cflags = -1;
5642 static int hf_bit8cflags = -1;
5643 static int hf_bit9cflags = -1;
5644 static int hf_bit10cflags = -1;
5645 static int hf_bit11cflags = -1;
5646 static int hf_bit12cflags = -1;
5647 static int hf_bit13cflags = -1;
5648 static int hf_bit14cflags = -1;
5649 static int hf_bit15cflags = -1;
5650 static int hf_bit16cflags = -1;
5651 static int hf_bit1acflags = -1;
5652 static int hf_bit2acflags = -1;
5653 static int hf_bit3acflags = -1;
5654 static int hf_bit4acflags = -1;
5655 static int hf_bit5acflags = -1;
5656 static int hf_bit6acflags = -1;
5657 static int hf_bit7acflags = -1;
5658 static int hf_bit8acflags = -1;
5659 static int hf_bit9acflags = -1;
5660 static int hf_bit10acflags = -1;
5661 static int hf_bit11acflags = -1;
5662 static int hf_bit12acflags = -1;
5663 static int hf_bit13acflags = -1;
5664 static int hf_bit14acflags = -1;
5665 static int hf_bit15acflags = -1;
5666 static int hf_bit16acflags = -1;
5667 static int hf_bit1vflags = -1;
5668 static int hf_bit2vflags = -1;
5669 static int hf_bit3vflags = -1;
5670 static int hf_bit4vflags = -1;
5671 static int hf_bit5vflags = -1;
5672 static int hf_bit6vflags = -1;
5673 static int hf_bit7vflags = -1;
5674 static int hf_bit8vflags = -1;
5675 static int hf_bit9vflags = -1;
5676 static int hf_bit10vflags = -1;
5677 static int hf_bit11vflags = -1;
5678 static int hf_bit12vflags = -1;
5679 static int hf_bit13vflags = -1;
5680 static int hf_bit14vflags = -1;
5681 static int hf_bit15vflags = -1;
5682 static int hf_bit16vflags = -1;
5683 static int hf_bit1eflags = -1;
5684 static int hf_bit2eflags = -1;
5685 static int hf_bit3eflags = -1;
5686 static int hf_bit4eflags = -1;
5687 static int hf_bit5eflags = -1;
5688 static int hf_bit6eflags = -1;
5689 static int hf_bit7eflags = -1;
5690 static int hf_bit8eflags = -1;
5691 static int hf_bit9eflags = -1;
5692 static int hf_bit10eflags = -1;
5693 static int hf_bit11eflags = -1;
5694 static int hf_bit12eflags = -1;
5695 static int hf_bit13eflags = -1;
5696 static int hf_bit14eflags = -1;
5697 static int hf_bit15eflags = -1;
5698 static int hf_bit16eflags = -1;
5699 static int hf_bit1infoflagsl = -1;
5700 static int hf_bit2infoflagsl = -1;
5701 static int hf_bit3infoflagsl = -1;
5702 static int hf_bit4infoflagsl = -1;
5703 static int hf_bit5infoflagsl = -1;
5704 static int hf_bit6infoflagsl = -1;
5705 static int hf_bit7infoflagsl = -1;
5706 static int hf_bit8infoflagsl = -1;
5707 static int hf_bit9infoflagsl = -1;
5708 static int hf_bit10infoflagsl = -1;
5709 static int hf_bit11infoflagsl = -1;
5710 static int hf_bit12infoflagsl = -1;
5711 static int hf_bit13infoflagsl = -1;
5712 static int hf_bit14infoflagsl = -1;
5713 static int hf_bit15infoflagsl = -1;
5714 static int hf_bit16infoflagsl = -1;
5715 static int hf_bit1infoflagsh = -1;
5716 static int hf_bit2infoflagsh = -1;
5717 static int hf_bit3infoflagsh = -1;
5718 static int hf_bit4infoflagsh = -1;
5719 static int hf_bit5infoflagsh = -1;
5720 static int hf_bit6infoflagsh = -1;
5721 static int hf_bit7infoflagsh = -1;
5722 static int hf_bit8infoflagsh = -1;
5723 static int hf_bit9infoflagsh = -1;
5724 static int hf_bit10infoflagsh = -1;
5725 static int hf_bit11infoflagsh = -1;
5726 static int hf_bit12infoflagsh = -1;
5727 static int hf_bit13infoflagsh = -1;
5728 static int hf_bit14infoflagsh = -1;
5729 static int hf_bit15infoflagsh = -1;
5730 static int hf_bit16infoflagsh = -1;
5731 static int hf_bit1lflags = -1;
5732 static int hf_bit2lflags = -1;
5733 static int hf_bit3lflags = -1;
5734 static int hf_bit4lflags = -1;
5735 static int hf_bit5lflags = -1;
5736 static int hf_bit6lflags = -1;
5737 static int hf_bit7lflags = -1;
5738 static int hf_bit8lflags = -1;
5739 static int hf_bit9lflags = -1;
5740 static int hf_bit10lflags = -1;
5741 static int hf_bit11lflags = -1;
5742 static int hf_bit12lflags = -1;
5743 static int hf_bit13lflags = -1;
5744 static int hf_bit14lflags = -1;
5745 static int hf_bit15lflags = -1;
5746 static int hf_bit16lflags = -1;
5747 static int hf_bit1l1flagsl = -1;
5748 static int hf_bit2l1flagsl = -1;
5749 static int hf_bit3l1flagsl = -1;
5750 static int hf_bit4l1flagsl = -1;
5751 static int hf_bit5l1flagsl = -1;
5752 static int hf_bit6l1flagsl = -1;
5753 static int hf_bit7l1flagsl = -1;
5754 static int hf_bit8l1flagsl = -1;
5755 static int hf_bit9l1flagsl = -1;
5756 static int hf_bit10l1flagsl = -1;
5757 static int hf_bit11l1flagsl = -1;
5758 static int hf_bit12l1flagsl = -1;
5759 static int hf_bit13l1flagsl = -1;
5760 static int hf_bit14l1flagsl = -1;
5761 static int hf_bit15l1flagsl = -1;
5762 static int hf_bit16l1flagsl = -1;
5763 static int hf_bit1l1flagsh = -1;
5764 static int hf_bit2l1flagsh = -1;
5765 static int hf_bit3l1flagsh = -1;
5766 static int hf_bit4l1flagsh = -1;
5767 static int hf_bit5l1flagsh = -1;
5768 static int hf_bit6l1flagsh = -1;
5769 static int hf_bit7l1flagsh = -1;
5770 static int hf_bit8l1flagsh = -1;
5771 static int hf_bit9l1flagsh = -1;
5772 static int hf_bit10l1flagsh = -1;
5773 static int hf_bit11l1flagsh = -1;
5774 static int hf_bit12l1flagsh = -1;
5775 static int hf_bit13l1flagsh = -1;
5776 static int hf_bit14l1flagsh = -1;
5777 static int hf_bit15l1flagsh = -1;
5778 static int hf_bit16l1flagsh = -1;
5779 static int hf_nds_tree_name = -1;
5780 static int hf_nds_reply_error = -1;
5781 static int hf_nds_net = -1;
5782 static int hf_nds_node = -1;
5783 static int hf_nds_socket = -1;
5784 static int hf_add_ref_ip = -1;
5785 static int hf_add_ref_udp = -1;
5786 static int hf_add_ref_tcp = -1;
5787 static int hf_referral_record = -1;
5788 static int hf_referral_addcount = -1;
5789 static int hf_nds_port = -1;
5790 static int hf_mv_string = -1;
5791 static int hf_nds_syntax = -1;
5792 static int hf_value_string = -1;
5793 static int hf_nds_buffer_size = -1;
5794 static int hf_nds_ver = -1;
5795 static int hf_nds_nflags = -1;
5796 static int hf_nds_scope = -1;
5797 static int hf_nds_name = -1;
5798 static int hf_nds_comm_trans = -1;
5799 static int hf_nds_tree_trans = -1;
5800 static int hf_nds_iteration = -1;
5801 static int hf_nds_eid = -1;
5802 static int hf_nds_info_type = -1;
5803 static int hf_nds_all_attr = -1;
5804 static int hf_nds_req_flags = -1;
5805 static int hf_nds_attr = -1;
5806 static int hf_nds_crc = -1;
5807 static int hf_nds_referrals = -1;
5808 static int hf_nds_result_flags = -1;
5809 static int hf_nds_tag_string = -1;
5810 static int hf_value_bytes = -1;
5811 static int hf_replica_type = -1;
5812 static int hf_replica_state = -1;
5813 static int hf_replica_number = -1;
5814 static int hf_min_nds_ver = -1;
5815 static int hf_nds_ver_include = -1;
5816 static int hf_nds_ver_exclude = -1;
5817 static int hf_nds_es = -1;
5818 static int hf_es_type = -1;
5819 static int hf_delim_string = -1;
5820 static int hf_rdn_string = -1;
5821 static int hf_nds_revent = -1;
5822 static int hf_nds_rnum = -1;
5823 static int hf_nds_name_type = -1;
5824 static int hf_nds_rflags = -1;
5825 static int hf_nds_eflags = -1;
5826 static int hf_nds_depth = -1;
5827 static int hf_nds_class_def_type = -1;
5828 static int hf_nds_classes = -1;
5829 static int hf_nds_return_all_classes = -1;
5830 static int hf_nds_stream_flags = -1;
5831 static int hf_nds_stream_name = -1;
5832 static int hf_nds_file_handle = -1;
5833 static int hf_nds_file_size = -1;
5834 static int hf_nds_dn_output_type = -1;
5835 static int hf_nds_nested_output_type = -1;
5836 static int hf_nds_output_delimiter = -1;
5837 static int hf_nds_output_entry_specifier = -1;
5838 static int hf_es_value = -1;
5839 static int hf_es_rdn_count = -1;
5840 static int hf_nds_replica_num = -1;
5841 static int hf_nds_event_num = -1;
5842 static int hf_es_seconds = -1;
5843 static int hf_nds_compare_results = -1;
5844 static int hf_nds_parent = -1;
5845 static int hf_nds_name_filter = -1;
5846 static int hf_nds_class_filter = -1;
5847 static int hf_nds_time_filter = -1;
5848 static int hf_nds_partition_root_id = -1;
5849 static int hf_nds_replicas = -1;
5850 static int hf_nds_purge = -1;
5851 static int hf_nds_local_partition = -1;
5852 static int hf_partition_busy = -1;
5853 static int hf_nds_number_of_changes = -1;
5854 static int hf_sub_count = -1;
5855 static int hf_nds_revision = -1;
5856 static int hf_nds_base_class = -1;
5857 static int hf_nds_relative_dn = -1;
5858 static int hf_nds_root_dn = -1;
5859 static int hf_nds_parent_dn = -1;
5860 static int hf_deref_base = -1;
5861 static int hf_nds_entry_info = -1;
5862 static int hf_nds_base = -1;
5863 static int hf_nds_privileges = -1;
5864 static int hf_nds_vflags = -1;
5865 static int hf_nds_value_len = -1;
5866 static int hf_nds_cflags = -1;
5867 static int hf_nds_acflags = -1;
5868 static int hf_nds_asn1 = -1;
5869 static int hf_nds_upper = -1;
5870 static int hf_nds_lower = -1;
5871 static int hf_nds_trustee_dn = -1;
5872 static int hf_nds_attribute_dn = -1;
5873 static int hf_nds_acl_add = -1;
5874 static int hf_nds_acl_del = -1;
5875 static int hf_nds_att_add = -1;
5876 static int hf_nds_att_del = -1;
5877 static int hf_nds_keep = -1;
5878 static int hf_nds_new_rdn = -1;
5879 static int hf_nds_time_delay = -1;
5880 static int hf_nds_root_name = -1;
5881 static int hf_nds_new_part_id = -1;
5882 static int hf_nds_child_part_id = -1;
5883 static int hf_nds_master_part_id = -1;
5884 static int hf_nds_target_name = -1;
5885 static int hf_nds_super = -1;
5886 static int hf_bit1pingflags2 = -1;
5887 static int hf_bit2pingflags2 = -1;
5888 static int hf_bit3pingflags2 = -1;
5889 static int hf_bit4pingflags2 = -1;
5890 static int hf_bit5pingflags2 = -1;
5891 static int hf_bit6pingflags2 = -1;
5892 static int hf_bit7pingflags2 = -1;
5893 static int hf_bit8pingflags2 = -1;
5894 static int hf_bit9pingflags2 = -1;
5895 static int hf_bit10pingflags2 = -1;
5896 static int hf_bit11pingflags2 = -1;
5897 static int hf_bit12pingflags2 = -1;
5898 static int hf_bit13pingflags2 = -1;
5899 static int hf_bit14pingflags2 = -1;
5900 static int hf_bit15pingflags2 = -1;
5901 static int hf_bit16pingflags2 = -1;
5902 static int hf_bit1pingflags1 = -1;
5903 static int hf_bit2pingflags1 = -1;
5904 static int hf_bit3pingflags1 = -1;
5905 static int hf_bit4pingflags1 = -1;
5906 static int hf_bit5pingflags1 = -1;
5907 static int hf_bit6pingflags1 = -1;
5908 static int hf_bit7pingflags1 = -1;
5909 static int hf_bit8pingflags1 = -1;
5910 static int hf_bit9pingflags1 = -1;
5911 static int hf_bit10pingflags1 = -1;
5912 static int hf_bit11pingflags1 = -1;
5913 static int hf_bit12pingflags1 = -1;
5914 static int hf_bit13pingflags1 = -1;
5915 static int hf_bit14pingflags1 = -1;
5916 static int hf_bit15pingflags1 = -1;
5917 static int hf_bit16pingflags1 = -1;
5918 static int hf_bit1pingpflags1 = -1;
5919 static int hf_bit2pingpflags1 = -1;
5920 static int hf_bit3pingpflags1 = -1;
5921 static int hf_bit4pingpflags1 = -1;
5922 static int hf_bit5pingpflags1 = -1;
5923 static int hf_bit6pingpflags1 = -1;
5924 static int hf_bit7pingpflags1 = -1;
5925 static int hf_bit8pingpflags1 = -1;
5926 static int hf_bit9pingpflags1 = -1;
5927 static int hf_bit10pingpflags1 = -1;
5928 static int hf_bit11pingpflags1 = -1;
5929 static int hf_bit12pingpflags1 = -1;
5930 static int hf_bit13pingpflags1 = -1;
5931 static int hf_bit14pingpflags1 = -1;
5932 static int hf_bit15pingpflags1 = -1;
5933 static int hf_bit16pingpflags1 = -1;
5934 static int hf_bit1pingvflags1 = -1;
5935 static int hf_bit2pingvflags1 = -1;
5936 static int hf_bit3pingvflags1 = -1;
5937 static int hf_bit4pingvflags1 = -1;
5938 static int hf_bit5pingvflags1 = -1;
5939 static int hf_bit6pingvflags1 = -1;
5940 static int hf_bit7pingvflags1 = -1;
5941 static int hf_bit8pingvflags1 = -1;
5942 static int hf_bit9pingvflags1 = -1;
5943 static int hf_bit10pingvflags1 = -1;
5944 static int hf_bit11pingvflags1 = -1;
5945 static int hf_bit12pingvflags1 = -1;
5946 static int hf_bit13pingvflags1 = -1;
5947 static int hf_bit14pingvflags1 = -1;
5948 static int hf_bit15pingvflags1 = -1;
5949 static int hf_bit16pingvflags1 = -1;
5950 static int hf_nds_letter_ver = -1;
5951 static int hf_nds_os_ver = -1;
5952 static int hf_nds_lic_flags = -1;
5953 static int hf_nds_ds_time = -1;
5954 static int hf_nds_ping_version = -1;
5959 # Look at all packet types in the packets collection, and cull information
5961 errors_used_list = []
5962 errors_used_hash = {}
5963 groups_used_list = []
5964 groups_used_hash = {}
5965 variables_used_hash = {}
5966 structs_used_hash = {}
5969 # Determine which error codes are used.
5970 codes = pkt.CompletionCodes()
5971 for code in codes.Records():
5972 if not errors_used_hash.has_key(code):
5973 errors_used_hash[code] = len(errors_used_list)
5974 errors_used_list.append(code)
5976 # Determine which groups are used.
5978 if not groups_used_hash.has_key(group):
5979 groups_used_hash[group] = len(groups_used_list)
5980 groups_used_list.append(group)
5982 # Determine which variables are used.
5983 vars = pkt.Variables()
5984 ExamineVars(vars, structs_used_hash, variables_used_hash)
5987 # Print the hf variable declarations
5988 sorted_vars = variables_used_hash.values()
5990 for var in sorted_vars:
5991 print "static int " + var.HFName() + " = -1;"
5994 # Print the value_string's
5995 for var in sorted_vars:
5996 if isinstance(var, val_string):
6000 # Determine which error codes are not used
6001 errors_not_used = {}
6002 # Copy the keys from the error list...
6003 for code in errors.keys():
6004 errors_not_used[code] = 1
6005 # ... and remove the ones that *were* used.
6006 for code in errors_used_list:
6007 del errors_not_used[code]
6009 # Print a remark showing errors not used
6010 list_errors_not_used = errors_not_used.keys()
6011 list_errors_not_used.sort()
6012 for code in list_errors_not_used:
6013 print "/* Error 0x%04x not used: %s */" % (code, errors[code])
6016 # Print the errors table
6017 print "/* Error strings. */"
6018 print "static const char *ncp_errors[] = {"
6019 for code in errors_used_list:
6020 print '\t/* %02d (0x%04x) */ "%s",' % (errors_used_hash[code], code, errors[code])
6026 # Determine which groups are not used
6027 groups_not_used = {}
6028 # Copy the keys from the group list...
6029 for group in groups.keys():
6030 groups_not_used[group] = 1
6031 # ... and remove the ones that *were* used.
6032 for group in groups_used_list:
6033 del groups_not_used[group]
6035 # Print a remark showing groups not used
6036 list_groups_not_used = groups_not_used.keys()
6037 list_groups_not_used.sort()
6038 for group in list_groups_not_used:
6039 print "/* Group not used: %s = %s */" % (group, groups[group])
6042 # Print the groups table
6043 print "/* Group strings. */"
6044 print "static const char *ncp_groups[] = {"
6045 for group in groups_used_list:
6046 print '\t/* %02d (%s) */ "%s",' % (groups_used_hash[group], group, groups[group])
6049 # Print the group macros
6050 for group in groups_used_list:
6051 name = string.upper(group)
6052 print "#define NCP_GROUP_%s\t%d" % (name, groups_used_hash[group])
6056 # Print the conditional_records for all Request Conditions.
6058 print "/* Request-Condition dfilter records. The NULL pointer"
6059 print " is replaced by a pointer to the created dfilter_t. */"
6060 if len(global_req_cond) == 0:
6061 print "static conditional_record req_conds = NULL;"
6063 print "static conditional_record req_conds[] = {"
6064 for req_cond in global_req_cond.keys():
6065 print "\t{ \"%s\", NULL }," % (req_cond,)
6066 global_req_cond[req_cond] = num
6069 print "#define NUM_REQ_CONDS %d" % (num,)
6070 print "#define NO_REQ_COND NUM_REQ_CONDS\n\n"
6074 # Print PTVC's for bitfields
6076 print "/* PTVC records for bit-fields. */"
6077 for var in sorted_vars:
6078 if isinstance(var, bitfield):
6079 sub_vars_ptvc = var.SubVariablesPTVC()
6080 print "/* %s */" % (sub_vars_ptvc.Name())
6081 print sub_vars_ptvc.Code()
6082 ett_list.append(sub_vars_ptvc.ETTName())
6085 # Print the PTVC's for structures
6086 print "/* PTVC records for structs. */"
6089 for svar in structs_used_hash.values():
6090 svhash[svar.HFName()] = svar
6092 ett_list.append(svar.ETTName())
6094 struct_vars = svhash.keys()
6096 for varname in struct_vars:
6097 var = svhash[varname]
6102 # Print regular PTVC's
6103 print "/* PTVC records. These are re-used to save space. */"
6104 for ptvc in ptvc_lists.Members():
6105 if not ptvc.Null() and not ptvc.Empty():
6108 # Print error_equivalency tables
6109 print "/* Error-Equivalency Tables. These are re-used to save space. */"
6110 for compcodes in compcode_lists.Members():
6111 errors = compcodes.Records()
6112 # Make sure the record for error = 0x00 comes last.
6113 print "static const error_equivalency %s[] = {" % (compcodes.Name())
6114 for error in errors:
6115 error_in_packet = error >> 8;
6116 ncp_error_index = errors_used_hash[error]
6117 print "\t{ 0x%02x, %d }, /* 0x%04x */" % (error_in_packet,
6118 ncp_error_index, error)
6119 print "\t{ 0x00, -1 }\n};\n"
6123 # Print integer arrays for all ncp_records that need
6124 # a list of req_cond_indexes. Do it "uniquely" to save space;
6125 # if multiple packets share the same set of req_cond's,
6126 # then they'll share the same integer array
6127 print "/* Request Condition Indexes */"
6128 # First, make them unique
6129 req_cond_collection = UniqueCollection("req_cond_collection")
6131 req_conds = pkt.CalculateReqConds()
6133 unique_list = req_cond_collection.Add(req_conds)
6134 pkt.SetReqConds(unique_list)
6136 pkt.SetReqConds(None)
6139 for req_cond in req_cond_collection.Members():
6140 print "static const int %s[] = {" % (req_cond.Name(),)
6143 for text in req_cond.Records():
6144 vals.append(global_req_cond[text])
6147 print "%s, " % (val,),
6154 # Functions without length parameter
6155 funcs_without_length = {}
6157 # Print info string structures
6158 print "/* Info Strings */"
6160 if pkt.req_info_str:
6161 name = pkt.InfoStrName() + "_req"
6162 var = pkt.req_info_str[0]
6163 print "static const info_string_t %s = {" % (name,)
6164 print "\t&%s," % (var.HFName(),)
6165 print '\t"%s",' % (pkt.req_info_str[1],)
6166 print '\t"%s"' % (pkt.req_info_str[2],)
6171 # Print ncp_record packet records
6172 print "#define SUBFUNC_WITH_LENGTH 0x02"
6173 print "#define SUBFUNC_NO_LENGTH 0x01"
6174 print "#define NO_SUBFUNC 0x00"
6176 print "/* ncp_record structs for packets */"
6177 print "static const ncp_record ncp_packets[] = {"
6179 if pkt.HasSubFunction():
6180 func = pkt.FunctionCode('high')
6182 subfunc_string = "SUBFUNC_WITH_LENGTH"
6183 # Ensure that the function either has a length param or not
6184 if funcs_without_length.has_key(func):
6185 sys.exit("Function 0x%04x sometimes has length param, sometimes not." \
6186 % (pkt.FunctionCode(),))
6188 subfunc_string = "SUBFUNC_NO_LENGTH"
6189 funcs_without_length[func] = 1
6191 subfunc_string = "NO_SUBFUNC"
6192 print '\t{ 0x%02x, 0x%02x, %s, "%s",' % (pkt.FunctionCode('high'),
6193 pkt.FunctionCode('low'), subfunc_string, pkt.Description()),
6195 print '\t%d /* %s */,' % (groups_used_hash[pkt.Group()], pkt.Group())
6197 ptvc = pkt.PTVCRequest()
6198 if not ptvc.Null() and not ptvc.Empty():
6199 ptvc_request = ptvc.Name()
6201 ptvc_request = 'NULL'
6203 ptvc = pkt.PTVCReply()
6204 if not ptvc.Null() and not ptvc.Empty():
6205 ptvc_reply = ptvc.Name()
6209 errors = pkt.CompletionCodes()
6211 req_conds_obj = pkt.GetReqConds()
6213 req_conds = req_conds_obj.Name()
6217 if not req_conds_obj:
6218 req_cond_size = "NO_REQ_COND_SIZE"
6220 req_cond_size = pkt.ReqCondSize()
6221 if req_cond_size == None:
6222 msg.write("NCP packet %s nees a ReqCondSize*() call\n" \
6226 if pkt.req_info_str:
6227 req_info_str = "&" + pkt.InfoStrName() + "_req"
6229 req_info_str = "NULL"
6231 print '\t\t%s, %s, %s, %s, %s, %s },\n' % \
6232 (ptvc_request, ptvc_reply, errors.Name(), req_conds,
6233 req_cond_size, req_info_str)
6235 print '\t{ 0, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NO_REQ_COND_SIZE, NULL }'
6238 print "/* ncp funcs that require a subfunc */"
6239 print "static const guint8 ncp_func_requires_subfunc[] = {"
6242 if pkt.HasSubFunction():
6243 hi_func = pkt.FunctionCode('high')
6244 if not hi_seen.has_key(hi_func):
6245 print "\t0x%02x," % (hi_func)
6246 hi_seen[hi_func] = 1
6251 print "/* ncp funcs that have no length parameter */"
6252 print "static const guint8 ncp_func_has_no_length_parameter[] = {"
6253 funcs = funcs_without_length.keys()
6256 print "\t0x%02x," % (func,)
6260 # final_registration_ncp2222()
6263 final_registration_ncp2222(void)
6268 # Create dfilter_t's for conditional_record's
6270 for (i = 0; i < NUM_REQ_CONDS; i++) {
6271 if (!dfilter_compile((const gchar*)req_conds[i].dfilter_text,
6272 &req_conds[i].dfilter)) {
6273 g_message("NCP dissector failed to compiler dfilter: %s\\n",
6274 req_conds[i].dfilter_text);
6275 g_assert_not_reached();
6281 # proto_register_ncp2222()
6283 static const value_string ncp_nds_verb_vals[] = {
6284 { 1, "Resolve Name" },
6285 { 2, "Read Entry Information" },
6289 { 6, "Search Entries" },
6291 { 8, "Remove Entry" },
6292 { 9, "Modify Entry" },
6293 { 10, "Modify RDN" },
6294 { 11, "Create Attribute" },
6295 { 12, "Read Attribute Definition" },
6296 { 13, "Remove Attribute Definition" },
6297 { 14, "Define Class" },
6298 { 15, "Read Class Definition" },
6299 { 16, "Modify Class Definition" },
6300 { 17, "Remove Class Definition" },
6301 { 18, "List Containable Classes" },
6302 { 19, "Get Effective Rights" },
6303 { 20, "Add Partition" },
6304 { 21, "Remove Partition" },
6305 { 22, "List Partitions" },
6306 { 23, "Split Partition" },
6307 { 24, "Join Partitions" },
6308 { 25, "Add Replica" },
6309 { 26, "Remove Replica" },
6310 { 27, "Open Stream" },
6311 { 28, "Search Filter" },
6312 { 29, "Create Subordinate Reference" },
6313 { 30, "Link Replica" },
6314 { 31, "Change Replica Type" },
6315 { 32, "Start Update Schema" },
6316 { 33, "End Update Schema" },
6317 { 34, "Update Schema" },
6318 { 35, "Start Update Replica" },
6319 { 36, "End Update Replica" },
6320 { 37, "Update Replica" },
6321 { 38, "Synchronize Partition" },
6322 { 39, "Synchronize Schema" },
6323 { 40, "Read Syntaxes" },
6324 { 41, "Get Replica Root ID" },
6325 { 42, "Begin Move Entry" },
6326 { 43, "Finish Move Entry" },
6327 { 44, "Release Moved Entry" },
6328 { 45, "Backup Entry" },
6329 { 46, "Restore Entry" },
6331 { 50, "Close Iteration" },
6333 { 52, "Audit Skulking" },
6334 { 53, "Get Server Address" },
6336 { 55, "Change Password" },
6337 { 56, "Verify Password" },
6338 { 57, "Begin Login" },
6339 { 58, "Finish Login" },
6340 { 59, "Begin Authentication" },
6341 { 60, "Finish Authentication" },
6343 { 62, "Repair Ring" },
6344 { 63, "Repair Timestamps" },
6345 { 64, "Create Back Link" },
6346 { 65, "Delete External Reference" },
6347 { 66, "Rename External Reference" },
6348 { 67, "Create Directory Entry" },
6349 { 68, "Remove Directory Entry" },
6350 { 69, "Designate New Master" },
6351 { 70, "Change Tree Name" },
6352 { 71, "Partition Entry Count" },
6353 { 72, "Check Login Restrictions" },
6354 { 73, "Start Join" },
6355 { 74, "Low Level Split" },
6356 { 75, "Low Level Join" },
6357 { 76, "Abort Low Level Join" },
6358 { 77, "Get All Servers" },
6359 { 255, "EDirectory Call" },
6364 proto_register_ncp2222(void)
6367 static hf_register_info hf[] = {
6369 { "Function", "ncp.func", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6372 { "Packet Length", "ncp.length", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
6375 { "SubFunction", "ncp.subfunc", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6377 { &hf_ncp_completion_code,
6378 { "Completion Code", "ncp.completion_code", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6380 { &hf_ncp_fragment_handle,
6381 { "NDS Fragment Handle", "ncp.ndsfrag", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6383 { &hf_ncp_fragment_size,
6384 { "NDS Fragment Size", "ncp.ndsfragsize", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6386 { &hf_ncp_message_size,
6387 { "Message Size", "ncp.ndsmessagesize", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6390 { "Flags", "ncp.ndsflag", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6393 { "NDS Verb", "ncp.ndsverb", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6396 { "NDS Version", "ncp.ping_version", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
6399 { "NDS Version", "ncp.nds_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6401 { &hf_nds_tree_name,
6402 { "Tree Name", "ncp.nds_tree_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
6407 * http://www.odyssea.com/whats_new/tcpipnet/tcpipnet.html
6409 * says of the connection status "The Connection Code field may
6410 * contain values that indicate the status of the client host to
6411 * server connection. A value of 1 in the fourth bit of this data
6412 * byte indicates that the server is unavailable (server was
6417 * http://www.unm.edu/~network/presentations/course/appendix/appendix_f/tsld088.htm
6419 * says that bit 0 is "bad service", bit 2 is "no connection
6420 * available", bit 4 is "service down", and bit 6 is "server
6421 * has a broadcast message waiting for the client".
6423 * Should it be displayed in hex, and should those bits (and any
6424 * other bits with significance) be displayed as bitfields
6427 { &hf_ncp_connection_status,
6428 { "Connection Status", "ncp.connection_status", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
6430 { &hf_ncp_req_frame_num,
6431 { "Response to Request in Frame Number", "ncp.req_frame_num", FT_UINT32, BASE_DEC,
6432 NULL, 0x0, "", HFILL }},
6434 { &hf_ncp_req_frame_time,
6435 { "Time from Request", "ncp.time", FT_RELATIVE_TIME, BASE_NONE,
6436 NULL, 0x0, "Time between request and response in seconds", HFILL }},
6439 { "NDS Return Flags", "ncp.nds_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6442 { &hf_nds_reply_depth,
6443 { "Distance from Root", "ncp.ndsdepth", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6445 { &hf_nds_reply_rev,
6446 { "NDS Revision", "ncp.ndsrev", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6448 { &hf_nds_reply_flags,
6449 { "Flags", "ncp.ndsflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6452 { "NDS Parameter Type", "ncp.p1type", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
6454 { &hf_nds_uint32value,
6455 { "NDS Value", "ncp.uint32value", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6458 { "Typeless", "ncp.nds_bit1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6461 { "All Containers", "ncp.nds_bit2", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6464 { "Slashed", "ncp.nds_bit3", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6467 { "Dotted", "ncp.nds_bit4", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6470 { "Tuned", "ncp.nds_bit5", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6473 { "Not Defined", "ncp.nds_bit6", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6476 { "Not Defined", "ncp.nds_bit7", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6479 { "Not Defined", "ncp.nds_bit8", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6482 { "Not Defined", "ncp.nds_bit9", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6485 { "Not Defined", "ncp.nds_bit10", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6488 { "Not Defined", "ncp.nds_bit11", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6491 { "Not Defined", "ncp.nds_bit12", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6494 { "Not Defined", "ncp.nds_bit13", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6497 { "Not Defined", "ncp.nds_bit14", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6500 { "Not Defined", "ncp.nds_bit15", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6503 { "Not Defined", "ncp.nds_bit16", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6506 { "Output Flags", "ncp.bit1outflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6509 { "Entry ID", "ncp.bit2outflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6512 { "Replica State", "ncp.bit3outflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6515 { "Modification Timestamp", "ncp.bit4outflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6518 { "Purge Time", "ncp.bit5outflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6521 { "Local Partition ID", "ncp.bit6outflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6524 { "Distinguished Name", "ncp.bit7outflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6527 { "Replica Type", "ncp.bit8outflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6530 { "Partition Busy", "ncp.bit9outflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6532 { &hf_bit10outflags,
6533 { "Not Defined", "ncp.bit10outflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6535 { &hf_bit11outflags,
6536 { "Not Defined", "ncp.bit11outflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6538 { &hf_bit12outflags,
6539 { "Not Defined", "ncp.bit12outflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6541 { &hf_bit13outflags,
6542 { "Not Defined", "ncp.bit13outflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6544 { &hf_bit14outflags,
6545 { "Not Defined", "ncp.bit14outflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6547 { &hf_bit15outflags,
6548 { "Not Defined", "ncp.bit15outflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6550 { &hf_bit16outflags,
6551 { "Not Defined", "ncp.bit16outflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6554 { "Entry ID", "ncp.bit1nflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6557 { "Readable", "ncp.bit2nflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6560 { "Writeable", "ncp.bit3nflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6563 { "Master", "ncp.bit4nflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6566 { "Create ID", "ncp.bit5nflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6569 { "Walk Tree", "ncp.bit6nflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6572 { "Dereference Alias", "ncp.bit7nflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6575 { "Not Defined", "ncp.bit8nflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6578 { "Not Defined", "ncp.bit9nflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6581 { "Not Defined", "ncp.bit10nflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6584 { "Not Defined", "ncp.bit11nflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6587 { "Not Defined", "ncp.bit12nflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6590 { "Not Defined", "ncp.bit13nflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6593 { "Prefer Referrals", "ncp.bit14nflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6596 { "Prefer Only Referrals", "ncp.bit15nflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6599 { "Not Defined", "ncp.bit16nflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6602 { "Typeless", "ncp.bit1rflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6605 { "Slashed", "ncp.bit2rflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6608 { "Dotted", "ncp.bit3rflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6611 { "Tuned", "ncp.bit4rflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6614 { "Not Defined", "ncp.bit5rflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6617 { "Not Defined", "ncp.bit6rflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6620 { "Not Defined", "ncp.bit7rflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6623 { "Not Defined", "ncp.bit8rflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6626 { "Not Defined", "ncp.bit9rflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6629 { "Not Defined", "ncp.bit10rflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6632 { "Not Defined", "ncp.bit11rflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6635 { "Not Defined", "ncp.bit12rflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6638 { "Not Defined", "ncp.bit13rflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6641 { "Not Defined", "ncp.bit14rflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6644 { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6647 { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6650 { "Alias Entry", "ncp.bit1eflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6653 { "Partition Root", "ncp.bit2eflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6656 { "Container Entry", "ncp.bit3eflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6659 { "Container Alias", "ncp.bit4eflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6662 { "Matches List Filter", "ncp.bit5eflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6665 { "Reference Entry", "ncp.bit6eflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6668 { "40x Reference Entry", "ncp.bit7eflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6671 { "Back Linked", "ncp.bit8eflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6674 { "New Entry", "ncp.bit9eflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6677 { "Temporary Reference", "ncp.bit10eflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6680 { "Audited", "ncp.bit11eflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6683 { "Entry Not Present", "ncp.bit12eflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6686 { "Entry Verify CTS", "ncp.bit13eflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6689 { "Entry Damaged", "ncp.bit14eflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6692 { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6695 { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6697 { &hf_bit1infoflagsl,
6698 { "Output Flags", "ncp.bit1infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6700 { &hf_bit2infoflagsl,
6701 { "Entry ID", "ncp.bit2infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6703 { &hf_bit3infoflagsl,
6704 { "Entry Flags", "ncp.bit3infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6706 { &hf_bit4infoflagsl,
6707 { "Subordinate Count", "ncp.bit4infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6709 { &hf_bit5infoflagsl,
6710 { "Modification Time", "ncp.bit5infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6712 { &hf_bit6infoflagsl,
6713 { "Modification Timestamp", "ncp.bit6infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6715 { &hf_bit7infoflagsl,
6716 { "Creation Timestamp", "ncp.bit7infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6718 { &hf_bit8infoflagsl,
6719 { "Partition Root ID", "ncp.bit8infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6721 { &hf_bit9infoflagsl,
6722 { "Parent ID", "ncp.bit9infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6724 { &hf_bit10infoflagsl,
6725 { "Revision Count", "ncp.bit10infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6727 { &hf_bit11infoflagsl,
6728 { "Replica Type", "ncp.bit11infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6730 { &hf_bit12infoflagsl,
6731 { "Base Class", "ncp.bit12infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6733 { &hf_bit13infoflagsl,
6734 { "Relative Distinguished Name", "ncp.bit13infoflagsl", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6736 { &hf_bit14infoflagsl,
6737 { "Distinguished Name", "ncp.bit14infoflagsl", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6739 { &hf_bit15infoflagsl,
6740 { "Root Distinguished Name", "ncp.bit15infoflagsl", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6742 { &hf_bit16infoflagsl,
6743 { "Parent Distinguished Name", "ncp.bit16infoflagsl", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6745 { &hf_bit1infoflagsh,
6746 { "Purge Time", "ncp.bit1infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6748 { &hf_bit2infoflagsh,
6749 { "Dereference Base Class", "ncp.bit2infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6751 { &hf_bit3infoflagsh,
6752 { "Not Defined", "ncp.bit3infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6754 { &hf_bit4infoflagsh,
6755 { "Not Defined", "ncp.bit4infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6757 { &hf_bit5infoflagsh,
6758 { "Not Defined", "ncp.bit5infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6760 { &hf_bit6infoflagsh,
6761 { "Not Defined", "ncp.bit6infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6763 { &hf_bit7infoflagsh,
6764 { "Not Defined", "ncp.bit7infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6766 { &hf_bit8infoflagsh,
6767 { "Not Defined", "ncp.bit8infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6769 { &hf_bit9infoflagsh,
6770 { "Not Defined", "ncp.bit9infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6772 { &hf_bit10infoflagsh,
6773 { "Not Defined", "ncp.bit10infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6775 { &hf_bit11infoflagsh,
6776 { "Not Defined", "ncp.bit11infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6778 { &hf_bit12infoflagsh,
6779 { "Not Defined", "ncp.bit12infoflagshs", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6781 { &hf_bit13infoflagsh,
6782 { "Not Defined", "ncp.bit13infoflagsh", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6784 { &hf_bit14infoflagsh,
6785 { "Not Defined", "ncp.bit14infoflagsh", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6787 { &hf_bit15infoflagsh,
6788 { "Not Defined", "ncp.bit15infoflagsh", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6790 { &hf_bit16infoflagsh,
6791 { "Not Defined", "ncp.bit16infoflagsh", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6794 { "List Typeless", "ncp.bit1lflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6797 { "List Containers", "ncp.bit2lflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6800 { "List Slashed", "ncp.bit3lflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6803 { "List Dotted", "ncp.bit4lflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6806 { "Dereference Alias", "ncp.bit5lflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6809 { "List All Containers", "ncp.bit6lflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6812 { "List Obsolete", "ncp.bit7lflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6815 { "List Tuned Output", "ncp.bit8lflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6818 { "List External Reference", "ncp.bit9lflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6821 { "Not Defined", "ncp.bit10lflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6824 { "Not Defined", "ncp.bit11lflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6827 { "Not Defined", "ncp.bit12lflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6830 { "Not Defined", "ncp.bit13lflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6833 { "Not Defined", "ncp.bit14lflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6836 { "Not Defined", "ncp.bit15lflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6839 { "Not Defined", "ncp.bit16lflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6842 { "Output Flags", "ncp.bit1l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6845 { "Entry ID", "ncp.bit2l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6848 { "Replica State", "ncp.bit3l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6851 { "Modification Timestamp", "ncp.bit4l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6854 { "Purge Time", "ncp.bit5l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6857 { "Local Partition ID", "ncp.bit6l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6860 { "Distinguished Name", "ncp.bit7l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6863 { "Replica Type", "ncp.bit8l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6866 { "Partition Busy", "ncp.bit9l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6868 { &hf_bit10l1flagsl,
6869 { "Not Defined", "ncp.bit10l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6871 { &hf_bit11l1flagsl,
6872 { "Not Defined", "ncp.bit11l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6874 { &hf_bit12l1flagsl,
6875 { "Not Defined", "ncp.bit12l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6877 { &hf_bit13l1flagsl,
6878 { "Not Defined", "ncp.bit13l1flagsl", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6880 { &hf_bit14l1flagsl,
6881 { "Not Defined", "ncp.bit14l1flagsl", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6883 { &hf_bit15l1flagsl,
6884 { "Not Defined", "ncp.bit15l1flagsl", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6886 { &hf_bit16l1flagsl,
6887 { "Not Defined", "ncp.bit16l1flagsl", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6890 { "Not Defined", "ncp.bit1l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6893 { "Not Defined", "ncp.bit2l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6896 { "Not Defined", "ncp.bit3l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6899 { "Not Defined", "ncp.bit4l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6902 { "Not Defined", "ncp.bit5l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6905 { "Not Defined", "ncp.bit6l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6908 { "Not Defined", "ncp.bit7l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6911 { "Not Defined", "ncp.bit8l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6914 { "Not Defined", "ncp.bit9l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6916 { &hf_bit10l1flagsh,
6917 { "Not Defined", "ncp.bit10l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6919 { &hf_bit11l1flagsh,
6920 { "Not Defined", "ncp.bit11l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6922 { &hf_bit12l1flagsh,
6923 { "Not Defined", "ncp.bit12l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6925 { &hf_bit13l1flagsh,
6926 { "Not Defined", "ncp.bit13l1flagsh", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6928 { &hf_bit14l1flagsh,
6929 { "Not Defined", "ncp.bit14l1flagsh", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6931 { &hf_bit15l1flagsh,
6932 { "Not Defined", "ncp.bit15l1flagsh", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6934 { &hf_bit16l1flagsh,
6935 { "Not Defined", "ncp.bit16l1flagsh", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6938 { "Naming", "ncp.bit1vflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6941 { "Base Class", "ncp.bit2vflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6944 { "Present", "ncp.bit3vflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6947 { "Value Damaged", "ncp.bit4vflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6950 { "Not Defined", "ncp.bit5vflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6953 { "Not Defined", "ncp.bit6vflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6956 { "Not Defined", "ncp.bit7vflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6959 { "Not Defined", "ncp.bit8vflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6962 { "Not Defined", "ncp.bit9vflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6965 { "Not Defined", "ncp.bit10vflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6968 { "Not Defined", "ncp.bit11vflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6971 { "Not Defined", "ncp.bit12vflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6974 { "Not Defined", "ncp.bit13vflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6977 { "Not Defined", "ncp.bit14vflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6980 { "Not Defined", "ncp.bit15vflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6983 { "Not Defined", "ncp.bit16vflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6986 { "Ambiguous Containment", "ncp.bit1cflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6989 { "Ambiguous Naming", "ncp.bit2cflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6992 { "Class Definition Cannot be Removed", "ncp.bit3cflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6995 { "Effective Class", "ncp.bit4cflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6998 { "Container Class", "ncp.bit5cflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7001 { "Not Defined", "ncp.bit6cflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7004 { "Not Defined", "ncp.bit7cflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7007 { "Not Defined", "ncp.bit8cflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7010 { "Not Defined", "ncp.bit9cflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7013 { "Not Defined", "ncp.bit10cflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7016 { "Not Defined", "ncp.bit11cflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7019 { "Not Defined", "ncp.bit12cflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7022 { "Not Defined", "ncp.bit13cflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7025 { "Not Defined", "ncp.bit14cflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7028 { "Not Defined", "ncp.bit15cflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7031 { "Not Defined", "ncp.bit16cflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7034 { "Single Valued", "ncp.bit1acflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7037 { "Sized", "ncp.bit2acflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7040 { "Non-Removable", "ncp.bit3acflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7043 { "Read Only", "ncp.bit4acflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7046 { "Hidden", "ncp.bit5acflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7049 { "String", "ncp.bit6acflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7052 { "Synchronize Immediate", "ncp.bit7acflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7055 { "Public Read", "ncp.bit8acflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7058 { "Server Read", "ncp.bit9acflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7061 { "Write Managed", "ncp.bit10acflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7064 { "Per Replica", "ncp.bit11acflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7067 { "Never Schedule Synchronization", "ncp.bit12acflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7070 { "Operational", "ncp.bit13acflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7073 { "Not Defined", "ncp.bit14acflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7076 { "Not Defined", "ncp.bit15acflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7079 { "Not Defined", "ncp.bit16acflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7082 { &hf_nds_reply_error,
7083 { "NDS Error", "ncp.ndsreplyerror", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7086 { "Network","ncp.ndsnet", FT_IPXNET, BASE_NONE, NULL, 0x0, "", HFILL }},
7089 { "Node", "ncp.ndsnode", FT_ETHER, BASE_NONE, NULL, 0x0, "", HFILL }},
7092 { "Socket", "ncp.ndssocket", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
7095 { "Address Referral", "ncp.ipref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7098 { "Address Referral", "ncp.udpref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7101 { "Address Referral", "ncp.tcpref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7103 { &hf_referral_record,
7104 { "Referral Record", "ncp.ref_rec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7106 { &hf_referral_addcount,
7107 { "Address Count", "ncp.ref_addcount", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7110 { "Port", "ncp.ndsport", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7113 { "Attribute Name ", "ncp.mv_string", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7116 { "Attribute Syntax ", "ncp.nds_syntax", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7119 { "Value ", "ncp.value_string", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7121 { &hf_nds_stream_name,
7122 { "Stream Name ", "ncp.nds_stream_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7124 { &hf_nds_buffer_size,
7125 { "NDS Reply Buffer Size", "ncp.nds_reply_buf", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7128 { "NDS Version", "ncp.nds_ver", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7131 { "Flags", "ncp.nds_nflags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7134 { "Request Flags", "ncp.nds_rflags", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7137 { "Entry Flags", "ncp.nds_eflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7140 { "Scope", "ncp.nds_scope", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7143 { "Name", "ncp.nds_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7145 { &hf_nds_name_type,
7146 { "Name Type", "ncp.nds_name_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7148 { &hf_nds_comm_trans,
7149 { "Communications Transport", "ncp.nds_comm_trans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7151 { &hf_nds_tree_trans,
7152 { "Tree Walker Transport", "ncp.nds_tree_trans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7154 { &hf_nds_iteration,
7155 { "Iteration Handle", "ncp.nds_iteration", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7157 { &hf_nds_file_handle,
7158 { "File Handle", "ncp.nds_file_handle", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7160 { &hf_nds_file_size,
7161 { "File Size", "ncp.nds_file_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7164 { "NDS EID", "ncp.nds_eid", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7167 { "Distance object is from Root", "ncp.nds_depth", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7169 { &hf_nds_info_type,
7170 { "Info Type", "ncp.nds_info_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7172 { &hf_nds_class_def_type,
7173 { "Class Definition Type", "ncp.nds_class_def_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7176 { "All Attributes", "ncp.nds_all_attr", FT_UINT32, BASE_DEC, NULL, 0x0, "Return all Attributes?", HFILL }},
7178 { &hf_nds_return_all_classes,
7179 { "All Classes", "ncp.nds_return_all_classes", FT_STRING, BASE_NONE, NULL, 0x0, "Return all Classes?", HFILL }},
7181 { &hf_nds_req_flags,
7182 { "Request Flags", "ncp.nds_req_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7185 { "Attributes", "ncp.nds_attributes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7188 { "Classes", "ncp.nds_classes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7191 { "CRC", "ncp.nds_crc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7193 { &hf_nds_referrals,
7194 { "Referrals", "ncp.nds_referrals", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7196 { &hf_nds_result_flags,
7197 { "Result Flags", "ncp.nds_result_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7199 { &hf_nds_stream_flags,
7200 { "Streams Flags", "ncp.nds_stream_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7202 { &hf_nds_tag_string,
7203 { "Tags", "ncp.nds_tags", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7206 { "Bytes", "ncp.value_bytes", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
7209 { "Replica Type", "ncp.rtype", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7211 { &hf_replica_state,
7212 { "Replica State", "ncp.rstate", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7215 { "Replica Number", "ncp.rnum", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7218 { "Event", "ncp.revent", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7220 { &hf_replica_number,
7221 { "Replica Number", "ncp.rnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7224 { "Minimum NDS Version", "ncp.min_nds_version", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7226 { &hf_nds_ver_include,
7227 { "Include NDS Version", "ncp.inc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7229 { &hf_nds_ver_exclude,
7230 { "Exclude NDS Version", "ncp.exc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7233 { "Input Entry Specifier", "ncp.nds_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7236 { "Entry Specifier Type", "ncp.nds_es_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7239 { "RDN", "ncp.nds_rdn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7242 { "Delimeter", "ncp.nds_delim", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7244 { &hf_nds_dn_output_type,
7245 { "Output Entry Specifier Type", "ncp.nds_out_es_type", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7247 { &hf_nds_nested_output_type,
7248 { "Nested Output Entry Specifier Type", "ncp.nds_nested_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7250 { &hf_nds_output_delimiter,
7251 { "Output Delimiter", "ncp.nds_out_delimiter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7253 { &hf_nds_output_entry_specifier,
7254 { "Output Entry Specifier", "ncp.nds_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7257 { "Entry Specifier Value", "ncp.nds_es_value", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7260 { "RDN Count", "ncp.nds_es_rdn_count", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7262 { &hf_nds_replica_num,
7263 { "Replica Number", "ncp.nds_replica_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7266 { "Seconds", "ncp.nds_es_seconds", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7268 { &hf_nds_event_num,
7269 { "Event Number", "ncp.nds_event_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7271 { &hf_nds_compare_results,
7272 { "Compare Results", "ncp.nds_compare_results", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7275 { "Parent ID", "ncp.nds_parent", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7277 { &hf_nds_name_filter,
7278 { "Name Filter", "ncp.nds_name_filter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7280 { &hf_nds_class_filter,
7281 { "Class Filter", "ncp.nds_class_filter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7283 { &hf_nds_time_filter,
7284 { "Time Filter", "ncp.nds_time_filter", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7286 { &hf_nds_partition_root_id,
7287 { "Partition Root ID", "ncp.nds_partition_root_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7290 { "Replicas", "ncp.nds_replicas", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7293 { "Purge Time", "ncp.nds_purge", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7295 { &hf_nds_local_partition,
7296 { "Local Partition ID", "ncp.nds_local_partition", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7298 { &hf_partition_busy,
7299 { "Partition Busy", "ncp.nds_partition_busy", FT_BOOLEAN, 16, NULL, 0x0, "", HFILL }},
7301 { &hf_nds_number_of_changes,
7302 { "Number of Attribute Changes", "ncp.nds_number_of_changes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7305 { "Subordinate Count", "ncp.sub_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7308 { "Revision Count", "ncp.nds_rev_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7310 { &hf_nds_base_class,
7311 { "Base Class", "ncp.nds_base_class", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7313 { &hf_nds_relative_dn,
7314 { "Relative Distinguished Name", "ncp.nds_relative_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7317 { "Root Distinguished Name", "ncp.nds_root_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7319 { &hf_nds_parent_dn,
7320 { "Parent Distinguished Name", "ncp.nds_parent_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7323 { "Dereference Base Class", "ncp.nds_deref_base", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7326 { "Base Class", "ncp.nds_base", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7329 { "Super Class", "ncp.nds_super", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7331 { &hf_nds_entry_info,
7332 { "Entry Information", "ncp.nds_entry_info", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7334 { &hf_nds_privileges,
7335 { "Privileges", "ncp.nds_privileges", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7338 { "Value Flags", "ncp.nds_vflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7340 { &hf_nds_value_len,
7341 { "Value Length", "ncp.nds_vlength", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7344 { "Class Flags", "ncp.nds_cflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7347 { "ASN.1 ID", "ncp.nds_asn1", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
7350 { "Attribute Constraint Flags", "ncp.nds_acflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7353 { "Upper Limit Value", "ncp.nds_upper", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7356 { "Lower Limit Value", "ncp.nds_lower", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7358 { &hf_nds_trustee_dn,
7359 { "Trustee Distinguished Name", "ncp.nds_trustee_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7361 { &hf_nds_attribute_dn,
7362 { "Attribute Name", "ncp.nds_attribute_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7365 { "Access Control Lists to Add", "ncp.nds_acl_add", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7368 { "Access Control Lists to Delete", "ncp.nds_acl_del", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7371 { "Attribute to Add", "ncp.nds_att_add", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7374 { "Attribute to Delete", "ncp.nds_att_del", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7377 { "Delete Original RDN", "ncp.nds_keep", FT_BOOLEAN, 32, NULL, 0x0, "", HFILL }},
7380 { "New Relative Distinguished Name", "ncp.nds_new_rdn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7382 { &hf_nds_time_delay,
7383 { "Time Delay", "ncp.nds_time_delay", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7385 { &hf_nds_root_name,
7386 { "Root Most Object Name", "ncp.nds_root_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7388 { &hf_nds_new_part_id,
7389 { "New Partition Root ID", "ncp.nds_new_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7391 { &hf_nds_child_part_id,
7392 { "Child Partition Root ID", "ncp.nds_child_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7394 { &hf_nds_master_part_id,
7395 { "Master Partition Root ID", "ncp.nds_master_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7397 { &hf_nds_target_name,
7398 { "Target Server Name", "ncp.nds_target_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7401 { &hf_bit1pingflags1,
7402 { "Supported Fields", "ncp.bit1pingflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7404 { &hf_bit2pingflags1,
7405 { "Depth", "ncp.bit2pingflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7407 { &hf_bit3pingflags1,
7408 { "Revision", "ncp.bit3pingflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7410 { &hf_bit4pingflags1,
7411 { "Flags", "ncp.bit4pingflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7413 { &hf_bit5pingflags1,
7414 { "Verification Flags", "ncp.bit5pingflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7416 { &hf_bit6pingflags1,
7417 { "Letter Version", "ncp.bit6pingflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7419 { &hf_bit7pingflags1,
7420 { "OS Version", "ncp.bit7pingflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7422 { &hf_bit8pingflags1,
7423 { "License Flags", "ncp.bit8pingflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7425 { &hf_bit9pingflags1,
7426 { "DS Time", "ncp.bit9pingflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7428 { &hf_bit10pingflags1,
7429 { "Not Defined", "ncp.bit10pingflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7431 { &hf_bit11pingflags1,
7432 { "Not Defined", "ncp.bit11pingflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7434 { &hf_bit12pingflags1,
7435 { "Not Defined", "ncp.bit12pingflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7437 { &hf_bit13pingflags1,
7438 { "Not Defined", "ncp.bit13pingflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7440 { &hf_bit14pingflags1,
7441 { "Not Defined", "ncp.bit14pingflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7443 { &hf_bit15pingflags1,
7444 { "Not Defined", "ncp.bit15pingflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7446 { &hf_bit16pingflags1,
7447 { "Not Defined", "ncp.bit16pingflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7449 { &hf_bit1pingflags2,
7450 { "Sap Name", "ncp.bit1pingflags2", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7452 { &hf_bit2pingflags2,
7453 { "Tree Name", "ncp.bit2pingflags2", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7455 { &hf_bit3pingflags2,
7456 { "OS Name", "ncp.bit3pingflags2", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7458 { &hf_bit4pingflags2,
7459 { "Hardware Name", "ncp.bit4pingflags2", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7461 { &hf_bit5pingflags2,
7462 { "Vendor Name", "ncp.bit5pingflags2", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7464 { &hf_bit6pingflags2,
7465 { "Not Defined", "ncp.bit6pingflags2", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7467 { &hf_bit7pingflags2,
7468 { "Not Defined", "ncp.bit7pingflags2", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7470 { &hf_bit8pingflags2,
7471 { "Not Defined", "ncp.bit8pingflags2", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7473 { &hf_bit9pingflags2,
7474 { "Not Defined", "ncp.bit9pingflags2", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7476 { &hf_bit10pingflags2,
7477 { "Not Defined", "ncp.bit10pingflags2", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7479 { &hf_bit11pingflags2,
7480 { "Not Defined", "ncp.bit11pingflags2", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7482 { &hf_bit12pingflags2,
7483 { "Not Defined", "ncp.bit12pingflags2", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7485 { &hf_bit13pingflags2,
7486 { "Not Defined", "ncp.bit13pingflags2", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7488 { &hf_bit14pingflags2,
7489 { "Not Defined", "ncp.bit14pingflags2", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7491 { &hf_bit15pingflags2,
7492 { "Not Defined", "ncp.bit15pingflags2", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7494 { &hf_bit16pingflags2,
7495 { "Not Defined", "ncp.bit16pingflags2", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7497 { &hf_bit1pingpflags1,
7498 { "Root Most Master Replica", "ncp.bit1pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7500 { &hf_bit2pingpflags1,
7501 { "Time Synchronized", "ncp.bit2pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7503 { &hf_bit3pingpflags1,
7504 { "Not Defined", "ncp.bit3pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7506 { &hf_bit4pingpflags1,
7507 { "Not Defined", "ncp.bit4pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7509 { &hf_bit5pingpflags1,
7510 { "Not Defined", "ncp.bit5pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7512 { &hf_bit6pingpflags1,
7513 { "Not Defined", "ncp.bit6pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7515 { &hf_bit7pingpflags1,
7516 { "Not Defined", "ncp.bit7pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7518 { &hf_bit8pingpflags1,
7519 { "Not Defined", "ncp.bit8pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7521 { &hf_bit9pingpflags1,
7522 { "Not Defined", "ncp.bit9pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7524 { &hf_bit10pingpflags1,
7525 { "Not Defined", "ncp.bit10pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7527 { &hf_bit11pingpflags1,
7528 { "Not Defined", "ncp.bit11pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7530 { &hf_bit12pingpflags1,
7531 { "Not Defined", "ncp.bit12pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7533 { &hf_bit13pingpflags1,
7534 { "Not Defined", "ncp.bit13pingpflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7536 { &hf_bit14pingpflags1,
7537 { "Not Defined", "ncp.bit14pingpflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7539 { &hf_bit15pingpflags1,
7540 { "Not Defined", "ncp.bit15pingpflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7542 { &hf_bit16pingpflags1,
7543 { "Not Defined", "ncp.bit16pingpflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7545 { &hf_bit1pingvflags1,
7546 { "Checksum", "ncp.bit1pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7548 { &hf_bit2pingvflags1,
7549 { "CRC32", "ncp.bit2pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7551 { &hf_bit3pingvflags1,
7552 { "Not Defined", "ncp.bit3pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7554 { &hf_bit4pingvflags1,
7555 { "Not Defined", "ncp.bit4pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7557 { &hf_bit5pingvflags1,
7558 { "Not Defined", "ncp.bit5pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7560 { &hf_bit6pingvflags1,
7561 { "Not Defined", "ncp.bit6pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7563 { &hf_bit7pingvflags1,
7564 { "Not Defined", "ncp.bit7pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7566 { &hf_bit8pingvflags1,
7567 { "Not Defined", "ncp.bit8pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7569 { &hf_bit9pingvflags1,
7570 { "Not Defined", "ncp.bit9pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7572 { &hf_bit10pingvflags1,
7573 { "Not Defined", "ncp.bit10pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7575 { &hf_bit11pingvflags1,
7576 { "Not Defined", "ncp.bit11pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7578 { &hf_bit12pingvflags1,
7579 { "Not Defined", "ncp.bit12pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7581 { &hf_bit13pingvflags1,
7582 { "Not Defined", "ncp.bit13pingvflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7584 { &hf_bit14pingvflags1,
7585 { "Not Defined", "ncp.bit14pingvflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7587 { &hf_bit15pingvflags1,
7588 { "Not Defined", "ncp.bit15pingvflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7590 { &hf_bit16pingvflags1,
7591 { "Not Defined", "ncp.bit16pingvflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7593 { &hf_nds_letter_ver,
7594 { "Letter Version", "ncp.nds_letter_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7597 { "OS Version", "ncp.nds_os_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7599 { &hf_nds_lic_flags,
7600 { "License Flags", "ncp.nds_lic_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7603 { "DS Time", "ncp.nds_ds_time", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7605 { &hf_nds_ping_version,
7606 { "Ping Version", "ncp.nds_ping_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7611 # Print the registration code for the hf variables
7612 for var in sorted_vars:
7613 print "\t{ &%s," % (var.HFName())
7614 print "\t{ \"%s\", \"%s\", %s, %s, %s, 0x%x, \"\", HFILL }},\n" % \
7615 (var.Description(), var.DFilter(),
7616 var.EtherealFType(), var.Display(), var.ValuesName(),
7622 print "\tstatic gint *ett[] = {"
7624 for ett in ett_list:
7625 print "\t\t&%s," % (ett,)
7630 proto_register_field_array(proto_ncp, hf, array_length(hf));
7635 proto_register_subtree_array(ett, array_length(ett));
7639 register_init_routine(&ncp_init_protocol);
7640 register_postseq_cleanup_routine(&ncp_postseq_cleanup);
7641 register_final_registration_routine(final_registration_ncp2222);
7645 # End of proto_register_ncp2222()
7648 print '#include "packet-ncp2222.inc"'
7651 print "Usage: ncp2222.py -o output_file"
7655 global compcode_lists
7663 opts, args = getopt.getopt(sys.argv[1:], optstring)
7664 except getopt.error:
7667 for opt, arg in opts:
7676 if not out_filename:
7679 # Create the output file
7681 out_file = open(out_filename, "w")
7682 except IOError, err:
7683 sys.exit("Could not open %s for writing: %s" % (out_filename,
7686 # Set msg to current stdout
7689 # Set stdout to the output file
7690 sys.stdout = out_file
7692 msg.write("Processing NCP definitions...\n")
7693 # Run the code, and if we catch any exception,
7694 # erase the output file.
7696 compcode_lists = UniqueCollection('Completion Code Lists')
7697 ptvc_lists = UniqueCollection('PTVC Lists')
7704 msg.write("Defined %d NCP types.\n" % (len(packets),))
7707 traceback.print_exc(20, msg)
7710 except IOError, err:
7711 msg.write("Could not close %s: %s\n" % (out_filename, err))
7714 if os.path.exists(out_filename):
7715 os.remove(out_filename)
7716 except OSError, err:
7717 msg.write("Could not remove %s: %s\n" % (out_filename, err))
7723 def define_ncp2222():
7724 ##############################################################################
7725 # NCP Packets. Here I list functions and subfunctions in hexadecimal like the
7726 # NCP book (and I believe LanAlyzer does this too).
7727 # However, Novell lists these in decimal in their on-line documentation.
7728 ##############################################################################
7730 pkt = NCP(0x01, "File Set Lock", 'file')
7733 pkt.CompletionCodes([0x0000])
7735 pkt = NCP(0x02, "File Release Lock", 'file')
7738 pkt.CompletionCodes([0x0000, 0xff00])
7740 pkt = NCP(0x03, "Log File Exclusive", 'file')
7741 pkt.Request( (12, 267), [
7742 rec( 7, 1, DirHandle ),
7743 rec( 8, 1, LockFlag ),
7744 rec( 9, 2, TimeoutLimit, BE ),
7745 rec( 11, (1, 256), FilePath ),
7748 pkt.CompletionCodes([0x0000, 0x8200, 0x9600, 0xfe0d, 0xff01])
7750 pkt = NCP(0x04, "Lock File Set", 'file')
7752 rec( 7, 2, TimeoutLimit ),
7755 pkt.CompletionCodes([0x0000, 0xfe0d, 0xff01])
7757 pkt = NCP(0x05, "Release File", 'file')
7758 pkt.Request( (9, 264), [
7759 rec( 7, 1, DirHandle ),
7760 rec( 8, (1, 256), FilePath ),
7763 pkt.CompletionCodes([0x0000, 0x9b00, 0x9c03, 0xff1a])
7765 pkt = NCP(0x06, "Release File Set", 'file')
7767 rec( 7, 1, LockFlag ),
7770 pkt.CompletionCodes([0x0000])
7772 pkt = NCP(0x07, "Clear File", 'file')
7773 pkt.Request( (9, 264), [
7774 rec( 7, 1, DirHandle ),
7775 rec( 8, (1, 256), FilePath ),
7778 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03,
7779 0xa100, 0xfd00, 0xff1a])
7781 pkt = NCP(0x08, "Clear File Set", 'file')
7783 rec( 7, 1, LockFlag ),
7786 pkt.CompletionCodes([0x0000])
7788 pkt = NCP(0x09, "Log Logical Record", 'file')
7789 pkt.Request( (11, 138), [
7790 rec( 7, 1, LockFlag ),
7791 rec( 8, 2, TimeoutLimit, BE ),
7792 rec( 10, (1, 128), LogicalRecordName ),
7793 ], info_str=(LogicalRecordName, "Log Logical Record: %s", ", %s"))
7795 pkt.CompletionCodes([0x0000, 0x9600, 0xfe0d, 0xff1a])
7797 pkt = NCP(0x0A, "Lock Logical Record Set", 'file')
7799 rec( 7, 1, LockFlag ),
7800 rec( 8, 2, TimeoutLimit ),
7803 pkt.CompletionCodes([0x0000, 0xfe0d, 0xff1a])
7805 pkt = NCP(0x0B, "Clear Logical Record", 'file')
7806 pkt.Request( (8, 135), [
7807 rec( 7, (1, 128), LogicalRecordName ),
7808 ], info_str=(LogicalRecordName, "Clear Logical Record: %s", ", %s"))
7810 pkt.CompletionCodes([0x0000, 0xff1a])
7812 pkt = NCP(0x0C, "Release Logical Record", 'file')
7813 pkt.Request( (8, 135), [
7814 rec( 7, (1, 128), LogicalRecordName ),
7815 ], info_str=(LogicalRecordName, "Release Logical Record: %s", ", %s"))
7817 pkt.CompletionCodes([0x0000, 0xff1a])
7819 pkt = NCP(0x0D, "Release Logical Record Set", 'file')
7821 rec( 7, 1, LockFlag ),
7824 pkt.CompletionCodes([0x0000])
7826 pkt = NCP(0x0E, "Clear Logical Record Set", 'file')
7828 rec( 7, 1, LockFlag ),
7831 pkt.CompletionCodes([0x0000])
7833 pkt = NCP(0x1100, "Write to Spool File", 'qms')
7834 pkt.Request( (11, 16), [
7835 rec( 10, ( 1, 6 ), Data ),
7836 ], info_str=(Data, "Write to Spool File: %s", ", %s"))
7838 pkt.CompletionCodes([0x0000, 0x0104, 0x8000, 0x8101, 0x8701, 0x8800,
7839 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9400, 0x9500,
7840 0x9600, 0x9804, 0x9900, 0xa100, 0xa201, 0xff19])
7842 pkt = NCP(0x1101, "Close Spool File", 'qms')
7844 rec( 10, 1, AbortQueueFlag ),
7847 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8701, 0x8800, 0x8d00,
7848 0x8e00, 0x8f00, 0x9001, 0x9300, 0x9400, 0x9500,
7849 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03, 0x9d00,
7850 0xa100, 0xd000, 0xd100, 0xd202, 0xd300, 0xd400,
7851 0xda01, 0xe800, 0xea00, 0xeb00, 0xec00, 0xfc06,
7852 0xfd00, 0xfe07, 0xff06])
7854 pkt = NCP(0x1102, "Set Spool File Flags", 'qms')
7856 rec( 10, 1, PrintFlags ),
7857 rec( 11, 1, TabSize ),
7858 rec( 12, 1, TargetPrinter ),
7859 rec( 13, 1, Copies ),
7860 rec( 14, 1, FormType ),
7861 rec( 15, 1, Reserved ),
7862 rec( 16, 14, BannerName ),
7865 pkt.CompletionCodes([0x0000, 0x9600, 0xd202, 0xd300, 0xe800, 0xea00,
7866 0xeb00, 0xec00, 0xfc06, 0xfe07, 0xff06])
7869 pkt = NCP(0x1103, "Spool A Disk File", 'qms')
7870 pkt.Request( (12, 23), [
7871 rec( 10, 1, DirHandle ),
7872 rec( 11, (1, 12), Data ),
7873 ], info_str=(Data, "Spool a Disk File: %s", ", %s"))
7875 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8701, 0x8800, 0x8d00,
7876 0x8e00, 0x8f00, 0x9001, 0x9300, 0x9400, 0x9500,
7877 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03, 0x9d00,
7878 0xa100, 0xd000, 0xd100, 0xd202, 0xd300, 0xd400,
7879 0xda01, 0xe800, 0xea00, 0xeb00, 0xec00, 0xfc06,
7880 0xfd00, 0xfe07, 0xff06])
7883 pkt = NCP(0x1106, "Get Printer Status", 'qms')
7885 rec( 10, 1, TargetPrinter ),
7888 rec( 8, 1, PrinterHalted ),
7889 rec( 9, 1, PrinterOffLine ),
7890 rec( 10, 1, CurrentFormType ),
7891 rec( 11, 1, RedirectedPrinter ),
7893 pkt.CompletionCodes([0x0000, 0x9600, 0xfb05, 0xfd00, 0xff06])
7896 pkt = NCP(0x1109, "Create Spool File", 'qms')
7897 pkt.Request( (12, 23), [
7898 rec( 10, 1, DirHandle ),
7899 rec( 11, (1, 12), Data ),
7900 ], info_str=(Data, "Create Spool File: %s", ", %s"))
7902 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8400, 0x8701, 0x8d00,
7903 0x8f00, 0x9001, 0x9400, 0x9600, 0x9804, 0x9900,
7904 0x9b03, 0x9c03, 0xa100, 0xd000, 0xd100, 0xd202,
7905 0xd300, 0xd400, 0xda01, 0xe800, 0xea00, 0xeb00,
7906 0xec00, 0xfc06, 0xfd00, 0xfe07, 0xff06])
7909 pkt = NCP(0x110A, "Get Printer's Queue", 'qms')
7911 rec( 10, 1, TargetPrinter ),
7914 rec( 8, 4, ObjectID, BE ),
7916 pkt.CompletionCodes([0x0000, 0x9600, 0xff06])
7919 pkt = NCP(0x12, "Get Volume Info with Number", 'file')
7921 rec( 7, 1, VolumeNumber )
7922 ],info_str=(VolumeNumber, "Get Volume Information for Volume %d", ", %d"))
7924 rec( 8, 2, SectorsPerCluster, BE ),
7925 rec( 10, 2, TotalVolumeClusters, BE ),
7926 rec( 12, 2, AvailableClusters, BE ),
7927 rec( 14, 2, TotalDirectorySlots, BE ),
7928 rec( 16, 2, AvailableDirectorySlots, BE ),
7929 rec( 18, 16, VolumeName ),
7930 rec( 34, 2, RemovableFlag, BE ),
7932 pkt.CompletionCodes([0x0000, 0x9804])
7935 pkt = NCP(0x13, "Get Station Number", 'connection')
7938 rec( 8, 3, StationNumber )
7940 pkt.CompletionCodes([0x0000, 0xff00])
7943 pkt = NCP(0x14, "Get File Server Date And Time", 'fileserver')
7950 rec( 12, 1, Minute ),
7951 rec( 13, 1, Second ),
7952 rec( 14, 1, DayOfWeek ),
7954 pkt.CompletionCodes([0x0000])
7957 pkt = NCP(0x1500, "Send Broadcast Message", 'message')
7958 pkt.Request((13, 70), [
7959 rec( 10, 1, ClientListLen, var="x" ),
7960 rec( 11, 1, TargetClientList, repeat="x" ),
7961 rec( 12, (1, 58), TargetMessage ),
7962 ], info_str=(TargetMessage, "Send Broadcast Message: %s", ", %s"))
7964 rec( 8, 1, ClientListLen, var="x" ),
7965 rec( 9, 1, SendStatus, repeat="x" )
7967 pkt.CompletionCodes([0x0000, 0xfd00])
7970 pkt = NCP(0x1501, "Get Broadcast Message", 'message')
7973 rec( 8, (1, 58), TargetMessage )
7975 pkt.CompletionCodes([0x0000, 0xfd00])
7978 pkt = NCP(0x1502, "Disable Broadcasts", 'message')
7981 pkt.CompletionCodes([0x0000])
7984 pkt = NCP(0x1503, "Enable Broadcasts", 'message')
7987 pkt.CompletionCodes([0x0000])
7990 pkt = NCP(0x1509, "Broadcast To Console", 'message')
7991 pkt.Request((11, 68), [
7992 rec( 10, (1, 58), TargetMessage )
7993 ], info_str=(TargetMessage, "Broadcast to Console: %s", ", %s"))
7995 pkt.CompletionCodes([0x0000])
7997 pkt = NCP(0x150A, "Send Broadcast Message", 'message')
7998 pkt.Request((17, 74), [
7999 rec( 10, 2, ClientListCount, LE, var="x" ),
8000 rec( 12, 4, ClientList, LE, repeat="x" ),
8001 rec( 16, (1, 58), TargetMessage ),
8002 ], info_str=(TargetMessage, "Send Broadcast Message: %s", ", %s"))
8004 rec( 8, 2, ClientListCount, LE, var="x" ),
8005 rec( 10, 4, ClientCompFlag, LE, repeat="x" ),
8007 pkt.CompletionCodes([0x0000, 0xfd00])
8010 pkt = NCP(0x150B, "Get Broadcast Message", 'message')
8013 rec( 8, (1, 58), TargetMessage )
8015 pkt.CompletionCodes([0x0000, 0xfd00])
8018 pkt = NCP(0x150C, "Connection Message Control", 'message')
8020 rec( 10, 1, ConnectionControlBits ),
8021 rec( 11, 3, Reserved3 ),
8022 rec( 14, 4, ConnectionListCount, LE, var="x" ),
8023 rec( 18, 4, ConnectionList, LE, repeat="x" ),
8026 pkt.CompletionCodes([0x0000, 0xff00])
8029 pkt = NCP(0x1600, "Set Directory Handle", 'fileserver')
8030 pkt.Request((13,267), [
8031 rec( 10, 1, TargetDirHandle ),
8032 rec( 11, 1, DirHandle ),
8033 rec( 12, (1, 255), Path ),
8034 ], info_str=(Path, "Set Directory Handle to: %s", ", %s"))
8036 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8041 pkt = NCP(0x1601, "Get Directory Path", 'fileserver')
8043 rec( 10, 1, DirHandle ),
8044 ],info_str=(DirHandle, "Get Directory Path for Directory Handle %d", ", %d"))
8045 pkt.Reply((9,263), [
8046 rec( 8, (1,255), Path ),
8048 pkt.CompletionCodes([0x0000, 0x9600, 0x9b00, 0x9c00, 0xa100])
8051 pkt = NCP(0x1602, "Scan Directory Information", 'fileserver')
8052 pkt.Request((14,268), [
8053 rec( 10, 1, DirHandle ),
8054 rec( 11, 2, StartingSearchNumber, BE ),
8055 rec( 13, (1, 255), Path ),
8056 ], info_str=(Path, "Scan Directory Information: %s", ", %s"))
8058 rec( 8, 16, DirectoryPath ),
8059 rec( 24, 2, CreationDate, BE ),
8060 rec( 26, 2, CreationTime, BE ),
8061 rec( 28, 4, CreatorID, BE ),
8062 rec( 32, 1, AccessRightsMask ),
8063 rec( 33, 1, Reserved ),
8064 rec( 34, 2, NextSearchNumber, BE ),
8066 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8070 pkt = NCP(0x1603, "Get Effective Directory Rights", 'fileserver')
8071 pkt.Request((14,268), [
8072 rec( 10, 1, DirHandle ),
8073 rec( 11, 2, StartingSearchNumber ),
8074 rec( 13, (1, 255), Path ),
8075 ], info_str=(Path, "Get Effective Directory Rights: %s", ", %s"))
8077 rec( 8, 1, AccessRightsMask ),
8079 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8083 pkt = NCP(0x1604, "Modify Maximum Rights Mask", 'fileserver')
8084 pkt.Request((14,268), [
8085 rec( 10, 1, DirHandle ),
8086 rec( 11, 1, RightsGrantMask ),
8087 rec( 12, 1, RightsRevokeMask ),
8088 rec( 13, (1, 255), Path ),
8089 ], info_str=(Path, "Modify Maximum Rights Mask: %s", ", %s"))
8091 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8095 pkt = NCP(0x1605, "Get Volume Number", 'fileserver')
8096 pkt.Request((11, 265), [
8097 rec( 10, (1,255), VolumeNameLen ),
8098 ], info_str=(VolumeNameLen, "Get Volume Number for: %s", ", %s"))
8100 rec( 8, 1, VolumeNumber ),
8102 pkt.CompletionCodes([0x0000, 0x9600, 0x9804])
8105 pkt = NCP(0x1606, "Get Volume Name", 'fileserver')
8107 rec( 10, 1, VolumeNumber ),
8108 ],info_str=(VolumeNumber, "Get Name for Volume %d", ", %d"))
8109 pkt.Reply((9, 263), [
8110 rec( 8, (1,255), VolumeNameLen ),
8112 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0xff00])
8115 pkt = NCP(0x160A, "Create Directory", 'fileserver')
8116 pkt.Request((13,267), [
8117 rec( 10, 1, DirHandle ),
8118 rec( 11, 1, AccessRightsMask ),
8119 rec( 12, (1, 255), Path ),
8120 ], info_str=(Path, "Create Directory: %s", ", %s"))
8122 pkt.CompletionCodes([0x0000, 0x8400, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8123 0x9e00, 0xa100, 0xfd00, 0xff00])
8126 pkt = NCP(0x160B, "Delete Directory", 'fileserver')
8127 pkt.Request((13,267), [
8128 rec( 10, 1, DirHandle ),
8129 rec( 11, 1, Reserved ),
8130 rec( 12, (1, 255), Path ),
8131 ], info_str=(Path, "Delete Directory: %s", ", %s"))
8133 pkt.CompletionCodes([0x0000, 0x8a00, 0x9600, 0x9804, 0x9b03, 0x9c03,
8134 0x9f00, 0xa000, 0xa100, 0xfd00, 0xff00])
8137 pkt = NCP(0x160C, "Scan Directory for Trustees", 'fileserver')
8138 pkt.Request((13,267), [
8139 rec( 10, 1, DirHandle ),
8140 rec( 11, 1, TrusteeSetNumber ),
8141 rec( 12, (1, 255), Path ),
8142 ], info_str=(Path, "Scan Directory for Trustees: %s", ", %s"))
8144 rec( 8, 16, DirectoryPath ),
8145 rec( 24, 2, CreationDate, BE ),
8146 rec( 26, 2, CreationTime, BE ),
8147 rec( 28, 4, CreatorID ),
8148 rec( 32, 4, TrusteeID, BE ),
8149 rec( 36, 4, TrusteeID, BE ),
8150 rec( 40, 4, TrusteeID, BE ),
8151 rec( 44, 4, TrusteeID, BE ),
8152 rec( 48, 4, TrusteeID, BE ),
8153 rec( 52, 1, AccessRightsMask ),
8154 rec( 53, 1, AccessRightsMask ),
8155 rec( 54, 1, AccessRightsMask ),
8156 rec( 55, 1, AccessRightsMask ),
8157 rec( 56, 1, AccessRightsMask ),
8159 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c03,
8160 0xa100, 0xfd00, 0xff00])
8163 pkt = NCP(0x160D, "Add Trustee to Directory", 'fileserver')
8164 pkt.Request((17,271), [
8165 rec( 10, 1, DirHandle ),
8166 rec( 11, 4, TrusteeID, BE ),
8167 rec( 15, 1, AccessRightsMask ),
8168 rec( 16, (1, 255), Path ),
8169 ], info_str=(Path, "Add Trustee to Directory: %s", ", %s"))
8171 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8172 0xa100, 0xfc06, 0xfd00, 0xff00])
8175 pkt = NCP(0x160E, "Delete Trustee from Directory", 'fileserver')
8176 pkt.Request((17,271), [
8177 rec( 10, 1, DirHandle ),
8178 rec( 11, 4, TrusteeID, BE ),
8179 rec( 15, 1, Reserved ),
8180 rec( 16, (1, 255), Path ),
8181 ], info_str=(Path, "Delete Trustee from Directory: %s", ", %s"))
8183 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8184 0xa100, 0xfc06, 0xfd00, 0xfe07, 0xff00])
8187 pkt = NCP(0x160F, "Rename Directory", 'fileserver')
8188 pkt.Request((13, 521), [
8189 rec( 10, 1, DirHandle ),
8190 rec( 11, (1, 255), Path ),
8191 rec( -1, (1, 255), NewPath ),
8192 ], info_str=(Path, "Rename Directory: %s", ", %s"))
8194 pkt.CompletionCodes([0x0000, 0x8b00, 0x9200, 0x9600, 0x9804, 0x9b03, 0x9c03,
8195 0x9e00, 0xa100, 0xef00, 0xfd00, 0xff00])
8198 pkt = NCP(0x1610, "Purge Erased Files", 'file')
8201 pkt.CompletionCodes([0x0000, 0x8100, 0x9600, 0x9804, 0xa100, 0xff00])
8204 pkt = NCP(0x1611, "Recover Erased File", 'fileserver')
8206 rec( 10, 1, DirHandle ),
8207 ],info_str=(DirHandle, "Recover Erased File from Directory Handle %d", ", %d"))
8209 rec( 8, 15, OldFileName ),
8210 rec( 23, 15, NewFileName ),
8212 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03,
8213 0xa100, 0xfd00, 0xff00])
8215 pkt = NCP(0x1612, "Alloc Permanent Directory Handle", 'fileserver')
8216 pkt.Request((13, 267), [
8217 rec( 10, 1, DirHandle ),
8218 rec( 11, 1, DirHandleName ),
8219 rec( 12, (1,255), Path ),
8220 ], info_str=(Path, "Allocate Permanent Directory Handle: %s", ", %s"))
8222 rec( 8, 1, DirHandle ),
8223 rec( 9, 1, AccessRightsMask ),
8225 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8226 0xa100, 0xfd00, 0xff00])
8228 pkt = NCP(0x1613, "Alloc Temporary Directory Handle", 'fileserver')
8229 pkt.Request((13, 267), [
8230 rec( 10, 1, DirHandle ),
8231 rec( 11, 1, DirHandleName ),
8232 rec( 12, (1,255), Path ),
8233 ], info_str=(Path, "Allocate Temporary Directory Handle: %s", ", %s"))
8235 rec( 8, 1, DirHandle ),
8236 rec( 9, 1, AccessRightsMask ),
8238 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8239 0xa100, 0xfd00, 0xff00])
8241 pkt = NCP(0x1614, "Deallocate Directory Handle", 'fileserver')
8243 rec( 10, 1, DirHandle ),
8244 ],info_str=(DirHandle, "Deallocate Directory Handle %d", ", %d"))
8246 pkt.CompletionCodes([0x0000, 0x9b03])
8248 pkt = NCP(0x1615, "Get Volume Info with Handle", 'file')
8250 rec( 10, 1, DirHandle )
8251 ],info_str=(DirHandle, "Get Volume Information with Handle %d", ", %d"))
8253 rec( 8, 2, SectorsPerCluster, BE ),
8254 rec( 10, 2, TotalVolumeClusters, BE ),
8255 rec( 12, 2, AvailableClusters, BE ),
8256 rec( 14, 2, TotalDirectorySlots, BE ),
8257 rec( 16, 2, AvailableDirectorySlots, BE ),
8258 rec( 18, 16, VolumeName ),
8259 rec( 34, 2, RemovableFlag, BE ),
8261 pkt.CompletionCodes([0x0000, 0xff00])
8263 pkt = NCP(0x1616, "Alloc Special Temporary Directory Handle", 'fileserver')
8264 pkt.Request((13, 267), [
8265 rec( 10, 1, DirHandle ),
8266 rec( 11, 1, DirHandleName ),
8267 rec( 12, (1,255), Path ),
8268 ], info_str=(Path, "Allocate Special Temporary Directory Handle: %s", ", %s"))
8270 rec( 8, 1, DirHandle ),
8271 rec( 9, 1, AccessRightsMask ),
8273 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8274 0xa100, 0xfd00, 0xff00])
8276 pkt = NCP(0x1617, "Extract a Base Handle", 'fileserver')
8278 rec( 10, 1, DirHandle ),
8279 ],info_str=(DirHandle, "Extract a Base Handle from Directory Handle %d", ", %d"))
8281 rec( 8, 10, ServerNetworkAddress ),
8282 rec( 18, 4, DirHandleLong ),
8284 pkt.CompletionCodes([0x0000, 0x9600, 0x9b03])
8286 pkt = NCP(0x1618, "Restore an Extracted Base Handle", 'fileserver')
8288 rec( 10, 10, ServerNetworkAddress ),
8289 rec( 20, 4, DirHandleLong ),
8292 rec( 8, 1, DirHandle ),
8293 rec( 9, 1, AccessRightsMask ),
8295 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c00, 0x9d00, 0xa100,
8298 pkt = NCP(0x1619, "Set Directory Information", 'fileserver')
8299 pkt.Request((21, 275), [
8300 rec( 10, 1, DirHandle ),
8301 rec( 11, 2, CreationDate ),
8302 rec( 13, 2, CreationTime ),
8303 rec( 15, 4, CreatorID, BE ),
8304 rec( 19, 1, AccessRightsMask ),
8305 rec( 20, (1,255), Path ),
8306 ], info_str=(Path, "Set Directory Information: %s", ", %s"))
8308 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c00, 0xa100,
8311 pkt = NCP(0x161A, "Get Path Name of a Volume-Directory Number Pair", 'fileserver')
8313 rec( 10, 1, VolumeNumber ),
8314 rec( 11, 2, DirectoryEntryNumberWord ),
8316 pkt.Reply((9,263), [
8317 rec( 8, (1,255), Path ),
8319 pkt.CompletionCodes([0x0000, 0x9804, 0x9c00, 0xa100])
8321 pkt = NCP(0x161B, "Scan Salvageable Files", 'fileserver')
8323 rec( 10, 1, DirHandle ),
8324 rec( 11, 4, SequenceNumber ),
8327 rec( 8, 4, SequenceNumber ),
8328 rec( 12, 2, Subdirectory ),
8329 rec( 14, 2, Reserved2 ),
8330 rec( 16, 4, AttributesDef32 ),
8331 rec( 20, 1, UniqueID ),
8332 rec( 21, 1, FlagsDef ),
8333 rec( 22, 1, DestNameSpace ),
8334 rec( 23, 1, FileNameLen ),
8335 rec( 24, 12, FileName12 ),
8336 rec( 36, 2, CreationTime ),
8337 rec( 38, 2, CreationDate ),
8338 rec( 40, 4, CreatorID, BE ),
8339 rec( 44, 2, ArchivedTime ),
8340 rec( 46, 2, ArchivedDate ),
8341 rec( 48, 4, ArchiverID, BE ),
8342 rec( 52, 2, UpdateTime ),
8343 rec( 54, 2, UpdateDate ),
8344 rec( 56, 4, UpdateID, BE ),
8345 rec( 60, 4, FileSize, BE ),
8346 rec( 64, 44, Reserved44 ),
8347 rec( 108, 2, InheritedRightsMask ),
8348 rec( 110, 2, LastAccessedDate ),
8349 rec( 112, 4, DeletedFileTime ),
8350 rec( 116, 2, DeletedTime ),
8351 rec( 118, 2, DeletedDate ),
8352 rec( 120, 4, DeletedID, BE ),
8353 rec( 124, 16, Reserved16 ),
8355 pkt.CompletionCodes([0x0000, 0xfb01, 0xff1d])
8357 pkt = NCP(0x161C, "Recover Salvageable File", 'fileserver')
8358 pkt.Request((17,525), [
8359 rec( 10, 1, DirHandle ),
8360 rec( 11, 4, SequenceNumber ),
8361 rec( 15, (1, 255), FileName ),
8362 rec( -1, (1, 255), NewFileNameLen ),
8363 ], info_str=(FileName, "Recover File: %s", ", %s"))
8365 pkt.CompletionCodes([0x0000, 0x8401, 0x9c03, 0xfe02])
8367 pkt = NCP(0x161D, "Purge Salvageable File", 'fileserver')
8369 rec( 10, 1, DirHandle ),
8370 rec( 11, 4, SequenceNumber ),
8373 pkt.CompletionCodes([0x0000, 0x8500, 0x9c03])
8375 pkt = NCP(0x161E, "Scan a Directory", 'fileserver')
8376 pkt.Request((17, 271), [
8377 rec( 10, 1, DirHandle ),
8378 rec( 11, 1, DOSFileAttributes ),
8379 rec( 12, 4, SequenceNumber ),
8380 rec( 16, (1, 255), SearchPattern ),
8381 ], info_str=(SearchPattern, "Scan a Directory: %s", ", %s"))
8383 rec( 8, 4, SequenceNumber ),
8384 rec( 12, 4, Subdirectory ),
8385 rec( 16, 4, AttributesDef32 ),
8386 rec( 20, 1, UniqueID, LE ),
8387 rec( 21, 1, PurgeFlags ),
8388 rec( 22, 1, DestNameSpace ),
8389 rec( 23, 1, NameLen ),
8390 rec( 24, 12, Name12 ),
8391 rec( 36, 2, CreationTime ),
8392 rec( 38, 2, CreationDate ),
8393 rec( 40, 4, CreatorID, BE ),
8394 rec( 44, 2, ArchivedTime ),
8395 rec( 46, 2, ArchivedDate ),
8396 rec( 48, 4, ArchiverID, BE ),
8397 rec( 52, 2, UpdateTime ),
8398 rec( 54, 2, UpdateDate ),
8399 rec( 56, 4, UpdateID, BE ),
8400 rec( 60, 4, FileSize, BE ),
8401 rec( 64, 44, Reserved44 ),
8402 rec( 108, 2, InheritedRightsMask ),
8403 rec( 110, 2, LastAccessedDate ),
8404 rec( 112, 28, Reserved28 ),
8406 pkt.CompletionCodes([0x0000, 0x8500, 0x9c03])
8408 pkt = NCP(0x161F, "Get Directory Entry", 'fileserver')
8410 rec( 10, 1, DirHandle ),
8413 rec( 8, 4, Subdirectory ),
8414 rec( 12, 4, AttributesDef32 ),
8415 rec( 16, 1, UniqueID, LE ),
8416 rec( 17, 1, PurgeFlags ),
8417 rec( 18, 1, DestNameSpace ),
8418 rec( 19, 1, NameLen ),
8419 rec( 20, 12, Name12 ),
8420 rec( 32, 2, CreationTime ),
8421 rec( 34, 2, CreationDate ),
8422 rec( 36, 4, CreatorID, BE ),
8423 rec( 40, 2, ArchivedTime ),
8424 rec( 42, 2, ArchivedDate ),
8425 rec( 44, 4, ArchiverID, BE ),
8426 rec( 48, 2, UpdateTime ),
8427 rec( 50, 2, UpdateDate ),
8428 rec( 52, 4, NextTrusteeEntry, BE ),
8429 rec( 56, 48, Reserved48 ),
8430 rec( 104, 2, MaximumSpace ),
8431 rec( 106, 2, InheritedRightsMask ),
8432 rec( 108, 28, Undefined28 ),
8434 pkt.CompletionCodes([0x0000, 0x8900, 0xbf00, 0xfb00])
8436 pkt = NCP(0x1620, "Scan Volume's User Disk Restrictions", 'fileserver')
8438 rec( 10, 1, VolumeNumber ),
8439 rec( 11, 4, SequenceNumber ),
8442 rec( 8, 1, NumberOfEntries, var="x" ),
8443 rec( 9, 8, ObjectIDStruct, repeat="x" ),
8445 pkt.CompletionCodes([0x0000, 0x9800])
8447 pkt = NCP(0x1621, "Add User Disk Space Restriction", 'fileserver')
8449 rec( 10, 1, VolumeNumber ),
8450 rec( 11, 4, ObjectID ),
8451 rec( 15, 4, DiskSpaceLimit ),
8454 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9800])
8456 pkt = NCP(0x1622, "Remove User Disk Space Restrictions", 'fileserver')
8458 rec( 10, 1, VolumeNumber ),
8459 rec( 11, 4, ObjectID ),
8462 pkt.CompletionCodes([0x0000, 0x8c00, 0xfe0e])
8464 pkt = NCP(0x1623, "Get Directory Disk Space Restriction", 'fileserver')
8466 rec( 10, 1, DirHandle ),
8469 rec( 8, 1, NumberOfEntries ),
8471 rec( 10, 4, MaxSpace ),
8472 rec( 14, 4, CurrentSpace ),
8474 pkt.CompletionCodes([0x0000])
8476 pkt = NCP(0x1624, "Set Directory Disk Space Restriction", 'fileserver')
8478 rec( 10, 1, DirHandle ),
8479 rec( 11, 4, DiskSpaceLimit ),
8482 pkt.CompletionCodes([0x0000, 0x0101, 0x8c00, 0xbf00])
8484 pkt = NCP(0x1625, "Set Directory Entry Information", 'fileserver')
8485 pkt.Request(NO_LENGTH_CHECK, [
8486 rec( 10, 1, DirHandle ),
8487 rec( 11, 2, SearchAttributesLow ),
8488 rec( 13, 4, SequenceNumber ),
8489 rec( 17, 2, ChangeBits ),
8490 rec( 19, 2, Reserved2 ),
8491 rec( 21, 4, Subdirectory ),
8492 srec(DOSDirectoryEntryStruct, req_cond="ncp.search_att_sub == TRUE"),
8493 srec(DOSFileEntryStruct, req_cond="ncp.search_att_sub == FALSE"),
8496 pkt.ReqCondSizeConstant()
8497 pkt.CompletionCodes([0x0000, 0x0106, 0x8c00, 0xbf00])
8499 pkt = NCP(0x1626, "Scan File or Directory for Extended Trustees", 'fileserver')
8500 pkt.Request((13,267), [
8501 rec( 10, 1, DirHandle ),
8502 rec( 11, 1, SequenceByte ),
8503 rec( 12, (1, 255), Path ),
8504 ], info_str=(Path, "Scan for Extended Trustees: %s", ", %s"))
8506 rec( 8, 1, NumberOfEntries, var="x" ),
8507 rec( 9, 4, ObjectID ),
8508 rec( 13, 4, ObjectID ),
8509 rec( 17, 4, ObjectID ),
8510 rec( 21, 4, ObjectID ),
8511 rec( 25, 4, ObjectID ),
8512 rec( 29, 4, ObjectID ),
8513 rec( 33, 4, ObjectID ),
8514 rec( 37, 4, ObjectID ),
8515 rec( 41, 4, ObjectID ),
8516 rec( 45, 4, ObjectID ),
8517 rec( 49, 4, ObjectID ),
8518 rec( 53, 4, ObjectID ),
8519 rec( 57, 4, ObjectID ),
8520 rec( 61, 4, ObjectID ),
8521 rec( 65, 4, ObjectID ),
8522 rec( 69, 4, ObjectID ),
8523 rec( 73, 4, ObjectID ),
8524 rec( 77, 4, ObjectID ),
8525 rec( 81, 4, ObjectID ),
8526 rec( 85, 4, ObjectID ),
8527 rec( 89, 2, AccessRightsMaskWord, repeat="x" ),
8529 pkt.CompletionCodes([0x0000, 0x9800, 0x9b00, 0x9c00])
8531 pkt = NCP(0x1627, "Add Extended Trustee to Directory or File", 'fileserver')
8532 pkt.Request((18,272), [
8533 rec( 10, 1, DirHandle ),
8534 rec( 11, 4, ObjectID, BE ),
8535 rec( 15, 2, TrusteeRights ),
8536 rec( 17, (1, 255), Path ),
8537 ], info_str=(Path, "Add Extended Trustee: %s", ", %s"))
8539 pkt.CompletionCodes([0x0000, 0x9000])
8541 pkt = NCP(0x1628, "Scan Directory Disk Space", 'fileserver')
8542 pkt.Request((15,269), [
8543 rec( 10, 1, DirHandle ),
8544 rec( 11, 2, SearchAttributesLow ),
8545 rec( 13, 1, SequenceByte ),
8546 rec( 14, (1, 255), SearchPattern ),
8547 ], info_str=(SearchPattern, "Scan Directory Disk Space: %s", ", %s"))
8549 rec( 8, 4, SequenceNumber ),
8550 rec( 12, 4, Subdirectory ),
8551 rec( 16, 4, AttributesDef32 ),
8552 rec( 20, 1, UniqueID ),
8553 rec( 21, 1, PurgeFlags ),
8554 rec( 22, 1, DestNameSpace ),
8555 rec( 23, 1, NameLen ),
8556 rec( 24, 12, Name12 ),
8557 rec( 36, 2, CreationTime ),
8558 rec( 38, 2, CreationDate ),
8559 rec( 40, 4, CreatorID, BE ),
8560 rec( 44, 2, ArchivedTime ),
8561 rec( 46, 2, ArchivedDate ),
8562 rec( 48, 4, ArchiverID, BE ),
8563 rec( 52, 2, UpdateTime ),
8564 rec( 54, 2, UpdateDate ),
8565 rec( 56, 4, UpdateID, BE ),
8566 rec( 60, 4, DataForkSize, BE ),
8567 rec( 64, 4, DataForkFirstFAT, BE ),
8568 rec( 68, 4, NextTrusteeEntry, BE ),
8569 rec( 72, 36, Reserved36 ),
8570 rec( 108, 2, InheritedRightsMask ),
8571 rec( 110, 2, LastAccessedDate ),
8572 rec( 112, 4, DeletedFileTime ),
8573 rec( 116, 2, DeletedTime ),
8574 rec( 118, 2, DeletedDate ),
8575 rec( 120, 4, DeletedID, BE ),
8576 rec( 124, 8, Undefined8 ),
8577 rec( 132, 4, PrimaryEntry, LE ),
8578 rec( 136, 4, NameList, LE ),
8579 rec( 140, 4, OtherFileForkSize, BE ),
8580 rec( 144, 4, OtherFileForkFAT, BE ),
8582 pkt.CompletionCodes([0x0000, 0x8900, 0x9c03, 0xfb01, 0xff00])
8584 pkt = NCP(0x1629, "Get Object Disk Usage and Restrictions", 'fileserver')
8586 rec( 10, 1, VolumeNumber ),
8587 rec( 11, 4, ObjectID, BE ),
8590 rec( 8, 4, Restriction ),
8591 rec( 12, 4, InUse ),
8593 pkt.CompletionCodes([0x0000, 0x9802])
8595 pkt = NCP(0x162A, "Get Effective Rights for Directory Entry", 'fileserver')
8596 pkt.Request((12,266), [
8597 rec( 10, 1, DirHandle ),
8598 rec( 11, (1, 255), Path ),
8599 ], info_str=(Path, "Get Effective Rights: %s", ", %s"))
8601 rec( 8, 2, AccessRightsMaskWord ),
8603 pkt.CompletionCodes([0x0000, 0x9804, 0x9c03])
8605 pkt = NCP(0x162B, "Remove Extended Trustee from Dir or File", 'fileserver')
8606 pkt.Request((17,271), [
8607 rec( 10, 1, DirHandle ),
8608 rec( 11, 4, ObjectID, BE ),
8609 rec( 15, 1, Unused ),
8610 rec( 16, (1, 255), Path ),
8611 ], info_str=(Path, "Remove Extended Trustee from %s", ", %s"))
8613 pkt.CompletionCodes([0x0000, 0x9002, 0x9c03, 0xfe0f, 0xff09])
8615 pkt = NCP(0x162C, "Get Volume and Purge Information", 'file')
8617 rec( 10, 1, VolumeNumber )
8618 ],info_str=(VolumeNumber, "Get Volume and Purge Information for Volume %d", ", %d"))
8619 pkt.Reply( (38,53), [
8620 rec( 8, 4, TotalBlocks ),
8621 rec( 12, 4, FreeBlocks ),
8622 rec( 16, 4, PurgeableBlocks ),
8623 rec( 20, 4, NotYetPurgeableBlocks ),
8624 rec( 24, 4, TotalDirectoryEntries ),
8625 rec( 28, 4, AvailableDirEntries ),
8626 rec( 32, 4, Reserved4 ),
8627 rec( 36, 1, SectorsPerBlock ),
8628 rec( 37, (1,16), VolumeNameLen ),
8630 pkt.CompletionCodes([0x0000])
8632 pkt = NCP(0x162D, "Get Directory Information", 'file')
8634 rec( 10, 1, DirHandle )
8636 pkt.Reply( (30, 45), [
8637 rec( 8, 4, TotalBlocks ),
8638 rec( 12, 4, AvailableBlocks ),
8639 rec( 16, 4, TotalDirectoryEntries ),
8640 rec( 20, 4, AvailableDirEntries ),
8641 rec( 24, 4, Reserved4 ),
8642 rec( 28, 1, SectorsPerBlock ),
8643 rec( 29, (1,16), VolumeNameLen ),
8645 pkt.CompletionCodes([0x0000, 0x9b03])
8647 pkt = NCP(0x162E, "Rename Or Move", 'file')
8648 pkt.Request( (17,525), [
8649 rec( 10, 1, SourceDirHandle ),
8650 rec( 11, 1, SearchAttributesLow ),
8651 rec( 12, 1, SourcePathComponentCount ),
8652 rec( 13, (1,255), SourcePath ),
8653 rec( -1, 1, DestDirHandle ),
8654 rec( -1, 1, DestPathComponentCount ),
8655 rec( -1, (1,255), DestPath ),
8656 ], info_str=(SourcePath, "Rename or Move: %s", ", %s"))
8658 pkt.CompletionCodes([0x0000, 0x0102, 0x8701, 0x8b00, 0x8d00, 0x8e00,
8659 0x8f00, 0x9001, 0x9101, 0x9201, 0x9a00, 0x9b03,
8660 0x9c03, 0xa400, 0xff17])
8662 pkt = NCP(0x162F, "Get Name Space Information", 'file')
8664 rec( 10, 1, VolumeNumber )
8665 ],info_str=(VolumeNumber, "Get Name Space Information for Volume %d", ", %d"))
8666 pkt.Reply( (13,521), [
8667 rec( 8, 1, DefinedNameSpaces ),
8669 # XXX - there's actually a sequence of DefinedNameSpaces
8670 # NameSpaceNames here, not just one.
8672 rec( 9, (1,255), NameSpaceName ),
8673 rec( -1, 1, DefinedDataStreams ),
8674 rec( -1, 1, AssociatedNameSpace ),
8676 # XXX - there's actually a sequence of DefinedDataStreams
8677 # DataStreamNames here, not just one.
8679 rec( -1, (1,255), DataStreamName ),
8681 pkt.CompletionCodes([0x0000])
8683 pkt = NCP(0x1630, "Get Name Space Directory Entry", 'file')
8685 rec( 10, 1, VolumeNumber ),
8686 rec( 11, 4, DOSSequence ),
8687 rec( 15, 1, SrcNameSpace ),
8690 rec( 8, 4, SequenceNumber ),
8691 rec( 12, 4, Subdirectory ),
8692 rec( 16, 4, AttributesDef32 ),
8693 rec( 20, 1, UniqueID ),
8694 rec( 21, 1, Flags ),
8695 rec( 22, 1, SrcNameSpace ),
8696 rec( 23, 1, NameLength ),
8697 rec( 24, 12, Name12 ),
8698 rec( 36, 2, CreationTime ),
8699 rec( 38, 2, CreationDate ),
8700 rec( 40, 4, CreatorID, BE ),
8701 rec( 44, 2, ArchivedTime ),
8702 rec( 46, 2, ArchivedDate ),
8703 rec( 48, 4, ArchiverID ),
8704 rec( 52, 2, UpdateTime ),
8705 rec( 54, 2, UpdateDate ),
8706 rec( 56, 4, UpdateID ),
8707 rec( 60, 4, FileSize ),
8708 rec( 64, 44, Reserved44 ),
8709 rec( 108, 2, InheritedRightsMask ),
8710 rec( 110, 2, LastAccessedDate ),
8712 pkt.CompletionCodes([0x0000, 0x8900, 0x9802, 0xbf00])
8714 pkt = NCP(0x1631, "Open Data Stream", 'file')
8715 pkt.Request( (15,269), [
8716 rec( 10, 1, DataStream ),
8717 rec( 11, 1, DirHandle ),
8718 rec( 12, 1, AttributesDef ),
8719 rec( 13, 1, OpenRights ),
8720 rec( 14, (1, 255), FileName ),
8721 ], info_str=(FileName, "Open Data Stream: %s", ", %s"))
8723 rec( 8, 4, CCFileHandle, BE ),
8725 pkt.CompletionCodes([0x0000, 0x8000, 0x8200, 0x9002, 0xbe00, 0xff00])
8727 pkt = NCP(0x1632, "Get Object Effective Rights for Directory Entry", 'file')
8728 pkt.Request( (16,270), [
8729 rec( 10, 4, ObjectID, BE ),
8730 rec( 14, 1, DirHandle ),
8731 rec( 15, (1, 255), Path ),
8732 ], info_str=(Path, "Get Object Effective Rights: %s", ", %s"))
8734 rec( 8, 2, TrusteeRights ),
8736 pkt.CompletionCodes([0x0000, 0x7e01, 0x9b00, 0x9c03])
8738 pkt = NCP(0x1633, "Get Extended Volume Information", 'file')
8740 rec( 10, 1, VolumeNumber ),
8741 ],info_str=(VolumeNumber, "Get Extended Volume Information for Volume %d", ", %d"))
8742 pkt.Reply( (139,266), [
8743 rec( 8, 2, VolInfoReplyLen ),
8744 rec( 10, 128, VolInfoStructure),
8745 rec( 138, (1,128), VolumeNameLen ),
8747 pkt.CompletionCodes([0x0000, 0x7e01, 0x9804, 0xfb08, 0xff00])
8749 pkt = NCP(0x1634, "Get Mount Volume List", 'file')
8751 rec( 10, 4, StartVolumeNumber ),
8752 rec( 14, 4, VolumeRequestFlags, LE ),
8753 rec( 18, 4, SrcNameSpace ),
8756 rec( 8, 4, ItemsInPacket, var="x" ),
8757 rec( 12, 4, NextVolumeNumber ),
8758 rec( 16, 18, VolumeStruct, repeat="x"),
8760 pkt.CompletionCodes([0x0000])
8762 pkt = NCP(0x1700, "Login User", 'file')
8763 pkt.Request( (12, 58), [
8764 rec( 10, (1,16), UserName ),
8765 rec( -1, (1,32), Password ),
8766 ], info_str=(UserName, "Login User: %s", ", %s"))
8768 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc501, 0xd700,
8769 0xd900, 0xda00, 0xdb00, 0xde00, 0xdf00, 0xe800,
8770 0xec00, 0xed00, 0xef00, 0xf001, 0xf100, 0xf200,
8771 0xf600, 0xfb00, 0xfc06, 0xfe07, 0xff00])
8773 pkt = NCP(0x1701, "Change User Password", 'file')
8774 pkt.Request( (13, 90), [
8775 rec( 10, (1,16), UserName ),
8776 rec( -1, (1,32), Password ),
8777 rec( -1, (1,32), NewPassword ),
8778 ], info_str=(UserName, "Change Password for User: %s", ", %s"))
8780 pkt.CompletionCodes([0x0000, 0x9600, 0xd600, 0xf001, 0xf101, 0xf501,
8781 0xfc06, 0xfe07, 0xff00])
8783 pkt = NCP(0x1702, "Get User Connection List", 'file')
8784 pkt.Request( (11, 26), [
8785 rec( 10, (1,16), UserName ),
8786 ], info_str=(UserName, "Get User Connection: %s", ", %s"))
8787 pkt.Reply( (9, 136), [
8788 rec( 8, (1, 128), ConnectionNumberList ),
8790 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
8792 pkt = NCP(0x1703, "Get User Number", 'file')
8793 pkt.Request( (11, 26), [
8794 rec( 10, (1,16), UserName ),
8795 ], info_str=(UserName, "Get User Number: %s", ", %s"))
8797 rec( 8, 4, ObjectID, BE ),
8799 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
8801 pkt = NCP(0x1705, "Get Station's Logged Info", 'file')
8803 rec( 10, 1, TargetConnectionNumber ),
8804 ],info_str=(TargetConnectionNumber, "Get Station's Logged Information on Connection %d", ", %d"))
8806 rec( 8, 16, UserName16 ),
8807 rec( 24, 7, LoginTime ),
8808 rec( 31, 39, FullName ),
8809 rec( 70, 4, UserID, BE ),
8810 rec( 74, 128, SecurityEquivalentList ),
8811 rec( 202, 64, Reserved64 ),
8813 pkt.CompletionCodes([0x0000, 0x9602, 0xfc06, 0xfd00, 0xfe07, 0xff00])
8815 pkt = NCP(0x1707, "Get Group Number", 'file')
8817 rec( 10, 4, ObjectID, BE ),
8820 rec( 8, 4, ObjectID, BE ),
8821 rec( 12, 2, ObjectType, BE ),
8822 rec( 14, 48, ObjectNameLen ),
8824 pkt.CompletionCodes([0x0000, 0x9602, 0xf101, 0xfc06, 0xfe07, 0xff00])
8826 pkt = NCP(0x170C, "Verify Serialization", 'file')
8828 rec( 10, 4, ServerSerialNumber ),
8831 pkt.CompletionCodes([0x0000, 0xff00])
8833 pkt = NCP(0x170D, "Log Network Message", 'file')
8834 pkt.Request( (11, 68), [
8835 rec( 10, (1, 58), TargetMessage ),
8836 ], info_str=(TargetMessage, "Log Network Message: %s", ", %s"))
8838 pkt.CompletionCodes([0x0000, 0x8000, 0x8100, 0x8800, 0x8d00, 0x8e00, 0x8f00,
8839 0x9001, 0x9400, 0x9600, 0x9804, 0x9900, 0x9b00, 0xa100,
8842 pkt = NCP(0x170E, "Get Disk Utilization", 'file')
8844 rec( 10, 1, VolumeNumber ),
8845 rec( 11, 4, TrusteeID, BE ),
8848 rec( 8, 1, VolumeNumber ),
8849 rec( 9, 4, TrusteeID, BE ),
8850 rec( 13, 2, DirectoryCount, BE ),
8851 rec( 15, 2, FileCount, BE ),
8852 rec( 17, 2, ClusterCount, BE ),
8854 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0xa100, 0xf200])
8856 pkt = NCP(0x170F, "Scan File Information", 'file')
8857 pkt.Request((15,269), [
8858 rec( 10, 2, LastSearchIndex ),
8859 rec( 12, 1, DirHandle ),
8860 rec( 13, 1, SearchAttributesLow ),
8861 rec( 14, (1, 255), FileName ),
8862 ], info_str=(FileName, "Scan File Information: %s", ", %s"))
8864 rec( 8, 2, NextSearchIndex ),
8865 rec( 10, 14, FileName14 ),
8866 rec( 24, 2, AttributesDef16 ),
8867 rec( 26, 4, FileSize, BE ),
8868 rec( 30, 2, CreationDate, BE ),
8869 rec( 32, 2, LastAccessedDate, BE ),
8870 rec( 34, 2, ModifiedDate, BE ),
8871 rec( 36, 2, ModifiedTime, BE ),
8872 rec( 38, 4, CreatorID, BE ),
8873 rec( 42, 2, ArchivedDate, BE ),
8874 rec( 44, 2, ArchivedTime, BE ),
8875 rec( 46, 56, Reserved56 ),
8877 pkt.CompletionCodes([0x0000, 0x8800, 0x8900, 0x9300, 0x9400, 0x9804, 0x9b00, 0x9c00,
8878 0xa100, 0xfd00, 0xff17])
8880 pkt = NCP(0x1710, "Set File Information", 'file')
8881 pkt.Request((91,345), [
8882 rec( 10, 2, AttributesDef16 ),
8883 rec( 12, 4, FileSize, BE ),
8884 rec( 16, 2, CreationDate, BE ),
8885 rec( 18, 2, LastAccessedDate, BE ),
8886 rec( 20, 2, ModifiedDate, BE ),
8887 rec( 22, 2, ModifiedTime, BE ),
8888 rec( 24, 4, CreatorID, BE ),
8889 rec( 28, 2, ArchivedDate, BE ),
8890 rec( 30, 2, ArchivedTime, BE ),
8891 rec( 32, 56, Reserved56 ),
8892 rec( 88, 1, DirHandle ),
8893 rec( 89, 1, SearchAttributesLow ),
8894 rec( 90, (1, 255), FileName ),
8895 ], info_str=(FileName, "Set Information for File: %s", ", %s"))
8897 pkt.CompletionCodes([0x0000, 0x8800, 0x8c00, 0x8e00, 0x9400, 0x9600, 0x9804,
8898 0x9b03, 0x9c00, 0xa100, 0xa201, 0xfc06, 0xfd00, 0xfe07,
8901 pkt = NCP(0x1711, "Get File Server Information", 'fileserver')
8904 rec( 8, 48, ServerName ),
8905 rec( 56, 1, OSMajorVersion ),
8906 rec( 57, 1, OSMinorVersion ),
8907 rec( 58, 2, ConnectionsSupportedMax, BE ),
8908 rec( 60, 2, ConnectionsInUse, BE ),
8909 rec( 62, 2, VolumesSupportedMax, BE ),
8910 rec( 64, 1, OSRevision ),
8911 rec( 65, 1, SFTSupportLevel ),
8912 rec( 66, 1, TTSLevel ),
8913 rec( 67, 2, ConnectionsMaxUsed, BE ),
8914 rec( 69, 1, AccountVersion ),
8915 rec( 70, 1, VAPVersion ),
8916 rec( 71, 1, QueueingVersion ),
8917 rec( 72, 1, PrintServerVersion ),
8918 rec( 73, 1, VirtualConsoleVersion ),
8919 rec( 74, 1, SecurityRestrictionVersion ),
8920 rec( 75, 1, InternetBridgeVersion ),
8921 rec( 76, 1, MixedModePathFlag ),
8922 rec( 77, 1, LocalLoginInfoCcode ),
8923 rec( 78, 2, ProductMajorVersion, BE ),
8924 rec( 80, 2, ProductMinorVersion, BE ),
8925 rec( 82, 2, ProductRevisionVersion, BE ),
8926 rec( 84, 1, OSLanguageID, LE ),
8927 rec( 85, 51, Reserved51 ),
8929 pkt.CompletionCodes([0x0000, 0x9600])
8931 pkt = NCP(0x1712, "Get Network Serial Number", 'fileserver')
8934 rec( 8, 4, ServerSerialNumber ),
8935 rec( 12, 2, ApplicationNumber ),
8937 pkt.CompletionCodes([0x0000, 0x9600])
8939 pkt = NCP(0x1713, "Get Internet Address", 'fileserver')
8941 rec( 10, 1, TargetConnectionNumber ),
8942 ],info_str=(TargetConnectionNumber, "Get Internet Address for Connection %d", ", %d"))
8944 rec( 8, 4, NetworkAddress, BE ),
8945 rec( 12, 6, NetworkNodeAddress ),
8946 rec( 18, 2, NetworkSocket, BE ),
8948 pkt.CompletionCodes([0x0000, 0xff00])
8950 pkt = NCP(0x1714, "Login Object", 'file')
8951 pkt.Request( (14, 60), [
8952 rec( 10, 2, ObjectType, BE ),
8953 rec( 12, (1,16), ClientName ),
8954 rec( -1, (1,32), Password ),
8955 ], info_str=(UserName, "Login Object: %s", ", %s"))
8957 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc501, 0xd600, 0xd700,
8958 0xd900, 0xda00, 0xdb00, 0xde00, 0xdf00, 0xe800, 0xec00,
8959 0xed00, 0xef00, 0xf001, 0xf100, 0xf200, 0xf600, 0xfb00,
8960 0xfc06, 0xfe07, 0xff00])
8962 pkt = NCP(0x1715, "Get Object Connection List", 'file')
8963 pkt.Request( (13, 28), [
8964 rec( 10, 2, ObjectType, BE ),
8965 rec( 12, (1,16), ObjectName ),
8966 ], info_str=(UserName, "Get Object Connection List: %s", ", %s"))
8967 pkt.Reply( (9, 136), [
8968 rec( 8, (1, 128), ConnectionNumberList ),
8970 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
8972 pkt = NCP(0x1716, "Get Station's Logged Info", 'file')
8974 rec( 10, 1, TargetConnectionNumber ),
8977 rec( 8, 4, UserID, BE ),
8978 rec( 12, 2, ObjectType, BE ),
8979 rec( 14, 48, ObjectNameLen ),
8980 rec( 62, 7, LoginTime ),
8981 rec( 69, 1, Reserved ),
8983 pkt.CompletionCodes([0x0000, 0x9602, 0xfb0a, 0xfc06, 0xfd00, 0xfe07, 0xff00])
8985 pkt = NCP(0x1717, "Get Login Key", 'file')
8988 rec( 8, 8, LoginKey ),
8990 pkt.CompletionCodes([0x0000, 0x9602])
8992 pkt = NCP(0x1718, "Keyed Object Login", 'file')
8993 pkt.Request( (21, 68), [
8994 rec( 10, 8, LoginKey ),
8995 rec( 18, 2, ObjectType, BE ),
8996 rec( 20, (1,48), ObjectName ),
8997 ], info_str=(ObjectName, "Keyed Object Login: %s", ", %s"))
8999 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc500, 0xd900, 0xda00,
9000 0xdb00, 0xdc00, 0xde00])
9003 # XXX - for NCP-over-IP, the NetworkAddress field appears to be
9004 # an IP address, rather than an IPX network address, and should
9005 # be dissected as an FT_IPv4 value; the NetworkNodeAddress and
9006 # NetworkSocket are 0.
9008 # For NCP-over-IPX, it should probably be dissected as an
9011 pkt = NCP(0x171A, "Get Internet Address", 'fileserver')
9013 rec( 10, 1, TargetConnectionNumber ),
9016 rec( 8, 4, NetworkAddress, BE ),
9017 rec( 12, 6, NetworkNodeAddress ),
9018 rec( 18, 2, NetworkSocket, BE ),
9019 rec( 20, 1, ConnectionType ),
9021 pkt.CompletionCodes([0x0000])
9023 pkt = NCP(0x171B, "Get Object Connection List", 'file')
9024 pkt.Request( (17,64), [
9025 rec( 10, 4, SearchConnNumber ),
9026 rec( 14, 2, ObjectType, BE ),
9027 rec( 16, (1,48), ObjectName ),
9028 ], info_str=(ObjectName, "Get Object Connection List: %s", ", %s"))
9029 pkt.Reply( (10,137), [
9030 rec( 8, 1, ConnListLen, var="x" ),
9031 rec( 9, (1,128), ConnectionNumberList, repeat="x" ),
9033 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9035 pkt = NCP(0x171C, "Get Station's Logged Info", 'file')
9037 rec( 10, 4, TargetConnectionNumber ),
9040 rec( 8, 4, UserID, BE ),
9041 rec( 12, 2, ObjectType, BE ),
9042 rec( 14, 48, ObjectNameLen ),
9043 rec( 62, 7, LoginTime ),
9044 rec( 69, 1, Reserved ),
9046 pkt.CompletionCodes([0x0000, 0x9602, 0xfb02, 0xfc06, 0xfd00, 0xfe07, 0xff00])
9048 pkt = NCP(0x171D, "Change Connection State", 'file')
9050 rec( 10, 1, RequestCode ),
9053 pkt.CompletionCodes([0x0000, 0x0109, 0x7a00, 0x7b00, 0x7c00, 0xe000, 0xfb06, 0xfd00])
9055 pkt = NCP(0x171E, "Set Watchdog Delay Interval", 'file')
9057 rec( 10, 4, NumberOfMinutesToDelay ),
9060 pkt.CompletionCodes([0x0000, 0x0107])
9062 pkt = NCP(0x171F, "Get Connection List From Object", 'file')
9064 rec( 10, 4, ObjectID, BE ),
9065 rec( 14, 4, ConnectionNumber ),
9067 pkt.Reply( (9, 136), [
9068 rec( 8, (1, 128), ConnectionNumberList ),
9070 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9072 pkt = NCP(0x1720, "Scan Bindery Object (List)", 'bindery')
9073 pkt.Request((23,70), [
9074 rec( 10, 4, NextObjectID, BE ),
9075 rec( 14, 4, ObjectType, BE ),
9076 rec( 18, 4, InfoFlags ),
9077 rec( 22, (1,48), ObjectName ),
9078 ], info_str=(ObjectName, "Scan Bindery Object: %s", ", %s"))
9079 pkt.Reply(NO_LENGTH_CHECK, [
9080 rec( 8, 4, ObjectInfoReturnCount ),
9081 rec( 12, 4, NextObjectID, BE ),
9082 rec( 16, 4, ObjectIDInfo ),
9083 srec(ObjectTypeStruct, req_cond="ncp.info_flags_type == TRUE"),
9084 srec(ObjectSecurityStruct, req_cond="ncp.info_flags_security == TRUE"),
9085 srec(ObjectFlagsStruct, req_cond="ncp.info_flags_flags == TRUE"),
9086 srec(ObjectNameStruct, req_cond="ncp.info_flags_name == TRUE"),
9088 pkt.ReqCondSizeVariable()
9089 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xfc02, 0xfe01, 0xff00])
9091 pkt = NCP(0x1721, "Generate GUIDs", 'nds')
9093 rec( 10, 4, ReturnInfoCount ),
9096 rec( 8, 4, ReturnInfoCount, var="x" ),
9097 rec( 12, 16, GUID, repeat="x" ),
9099 pkt.CompletionCodes([0x0000])
9101 pkt = NCP(0x1732, "Create Bindery Object", 'bindery')
9102 pkt.Request( (15,62), [
9103 rec( 10, 1, ObjectFlags ),
9104 rec( 11, 1, ObjectSecurity ),
9105 rec( 12, 2, ObjectType, BE ),
9106 rec( 14, (1,48), ObjectName ),
9107 ], info_str=(ObjectName, "Create Bindery Object: %s", ", %s"))
9109 pkt.CompletionCodes([0x0000, 0x9600, 0xe700, 0xee00, 0xef00, 0xf101, 0xf501,
9110 0xfc06, 0xfe07, 0xff00])
9112 pkt = NCP(0x1733, "Delete Bindery Object", 'bindery')
9113 pkt.Request( (13,60), [
9114 rec( 10, 2, ObjectType, BE ),
9115 rec( 12, (1,48), ObjectName ),
9116 ], info_str=(ObjectName, "Delete Bindery Object: %s", ", %s"))
9118 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf200, 0xf400, 0xf600, 0xfb00,
9119 0xfc06, 0xfe07, 0xff00])
9121 pkt = NCP(0x1734, "Rename Bindery Object", 'bindery')
9122 pkt.Request( (14,108), [
9123 rec( 10, 2, ObjectType, BE ),
9124 rec( 12, (1,48), ObjectName ),
9125 rec( -1, (1,48), NewObjectName ),
9126 ], info_str=(ObjectName, "Rename Bindery Object: %s", ", %s"))
9128 pkt.CompletionCodes([0x0000, 0x9600, 0xee00, 0xf000, 0xf300, 0xfc06, 0xfe07, 0xff00])
9130 pkt = NCP(0x1735, "Get Bindery Object ID", 'bindery')
9131 pkt.Request((13,60), [
9132 rec( 10, 2, ObjectType, BE ),
9133 rec( 12, (1,48), ObjectName ),
9134 ], info_str=(ObjectName, "Get Bindery Object: %s", ", %s"))
9136 rec( 8, 4, ObjectID, BE ),
9137 rec( 12, 2, ObjectType, BE ),
9138 rec( 14, 48, ObjectNameLen ),
9140 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xf000, 0xfc02, 0xfe01, 0xff00])
9142 pkt = NCP(0x1736, "Get Bindery Object Name", 'bindery')
9144 rec( 10, 4, ObjectID, BE ),
9147 rec( 8, 4, ObjectID, BE ),
9148 rec( 12, 2, ObjectType, BE ),
9149 rec( 14, 48, ObjectNameLen ),
9151 pkt.CompletionCodes([0x0000, 0x9600, 0xf101, 0xfc02, 0xfe01, 0xff00])
9153 pkt = NCP(0x1737, "Scan Bindery Object", 'bindery')
9154 pkt.Request((17,64), [
9155 rec( 10, 4, ObjectID, BE ),
9156 rec( 14, 2, ObjectType, BE ),
9157 rec( 16, (1,48), ObjectName ),
9158 ], info_str=(ObjectName, "Scan Bindery Object: %s", ", %s"))
9160 rec( 8, 4, ObjectID, BE ),
9161 rec( 12, 2, ObjectType, BE ),
9162 rec( 14, 48, ObjectNameLen ),
9163 rec( 62, 1, ObjectFlags ),
9164 rec( 63, 1, ObjectSecurity ),
9165 rec( 64, 1, ObjectHasProperties ),
9167 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xfc02,
9170 pkt = NCP(0x1738, "Change Bindery Object Security", 'bindery')
9171 pkt.Request((14,61), [
9172 rec( 10, 1, ObjectSecurity ),
9173 rec( 11, 2, ObjectType, BE ),
9174 rec( 13, (1,48), ObjectName ),
9175 ], info_str=(ObjectName, "Change Bindery Object Security: %s", ", %s"))
9177 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf501, 0xfc02, 0xfe01, 0xff00])
9179 pkt = NCP(0x1739, "Create Property", 'bindery')
9180 pkt.Request((16,78), [
9181 rec( 10, 2, ObjectType, BE ),
9182 rec( 12, (1,48), ObjectName ),
9183 rec( -1, 1, PropertyType ),
9184 rec( -1, 1, ObjectSecurity ),
9185 rec( -1, (1,16), PropertyName ),
9186 ], info_str=(PropertyName, "Create Property: %s", ", %s"))
9188 pkt.CompletionCodes([0x0000, 0x9600, 0xed00, 0xef00, 0xf000, 0xf101,
9189 0xf200, 0xf600, 0xf700, 0xfb00, 0xfc02, 0xfe01,
9192 pkt = NCP(0x173A, "Delete Property", 'bindery')
9193 pkt.Request((14,76), [
9194 rec( 10, 2, ObjectType, BE ),
9195 rec( 12, (1,48), ObjectName ),
9196 rec( -1, (1,16), PropertyName ),
9197 ], info_str=(PropertyName, "Delete Property: %s", ", %s"))
9199 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf600, 0xfb00, 0xfc02,
9202 pkt = NCP(0x173B, "Change Property Security", 'bindery')
9203 pkt.Request((15,77), [
9204 rec( 10, 2, ObjectType, BE ),
9205 rec( 12, (1,48), ObjectName ),
9206 rec( -1, 1, ObjectSecurity ),
9207 rec( -1, (1,16), PropertyName ),
9208 ], info_str=(PropertyName, "Change Property Security: %s", ", %s"))
9210 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf200, 0xf600, 0xfb00,
9211 0xfc02, 0xfe01, 0xff00])
9213 pkt = NCP(0x173C, "Scan Property", 'bindery')
9214 pkt.Request((18,80), [
9215 rec( 10, 2, ObjectType, BE ),
9216 rec( 12, (1,48), ObjectName ),
9217 rec( -1, 4, LastInstance, BE ),
9218 rec( -1, (1,16), PropertyName ),
9219 ], info_str=(PropertyName, "Scan Property: %s", ", %s"))
9221 rec( 8, 16, PropertyName16 ),
9222 rec( 24, 1, ObjectFlags ),
9223 rec( 25, 1, ObjectSecurity ),
9224 rec( 26, 4, SearchInstance, BE ),
9225 rec( 30, 1, ValueAvailable ),
9226 rec( 31, 1, MoreProperties ),
9228 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf200, 0xf600, 0xfb00,
9229 0xfc02, 0xfe01, 0xff00])
9231 pkt = NCP(0x173D, "Read Property Value", 'bindery')
9232 pkt.Request((15,77), [
9233 rec( 10, 2, ObjectType, BE ),
9234 rec( 12, (1,48), ObjectName ),
9235 rec( -1, 1, PropertySegment ),
9236 rec( -1, (1,16), PropertyName ),
9237 ], info_str=(PropertyName, "Read Property Value: %s", ", %s"))
9239 rec( 8, 128, PropertyData ),
9240 rec( 136, 1, PropertyHasMoreSegments ),
9241 rec( 137, 1, PropertyType ),
9243 pkt.CompletionCodes([0x0000, 0x8800, 0x9300, 0x9600, 0xec01,
9244 0xf000, 0xf100, 0xf900, 0xfb02, 0xfc02,
9247 pkt = NCP(0x173E, "Write Property Value", 'bindery')
9248 pkt.Request((144,206), [
9249 rec( 10, 2, ObjectType, BE ),
9250 rec( 12, (1,48), ObjectName ),
9251 rec( -1, 1, PropertySegment ),
9252 rec( -1, 1, MoreFlag ),
9253 rec( -1, (1,16), PropertyName ),
9254 rec( -1, 128, PropertyValue ),
9255 ], info_str=(PropertyName, "Write Property Value: %s", ", %s"))
9257 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xec01, 0xf000, 0xf800,
9258 0xfb02, 0xfc03, 0xfe01, 0xff00 ])
9260 pkt = NCP(0x173F, "Verify Bindery Object Password", 'bindery')
9261 pkt.Request((14,92), [
9262 rec( 10, 2, ObjectType, BE ),
9263 rec( 12, (1,48), ObjectName ),
9264 rec( -1, (1,32), Password ),
9265 ], info_str=(ObjectName, "Verify Bindery Object Password: %s", ", %s"))
9267 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xec01, 0xf000, 0xf101,
9268 0xfb02, 0xfc03, 0xfe01, 0xff00 ])
9270 pkt = NCP(0x1740, "Change Bindery Object Password", 'bindery')
9271 pkt.Request((15,124), [
9272 rec( 10, 2, ObjectType, BE ),
9273 rec( 12, (1,48), ObjectName ),
9274 rec( -1, (1,32), Password ),
9275 rec( -1, (1,32), NewPassword ),
9276 ], info_str=(ObjectName, "Change Bindery Object Password: %s", ", %s"))
9278 pkt.CompletionCodes([0x0000, 0x9600, 0xc501, 0xd701, 0xe800, 0xec01, 0xf001,
9279 0xf100, 0xf800, 0xfb02, 0xfc03, 0xfe01, 0xff00])
9281 pkt = NCP(0x1741, "Add Bindery Object To Set", 'bindery')
9282 pkt.Request((17,126), [
9283 rec( 10, 2, ObjectType, BE ),
9284 rec( 12, (1,48), ObjectName ),
9285 rec( -1, (1,16), PropertyName ),
9286 rec( -1, 2, MemberType, BE ),
9287 rec( -1, (1,48), MemberName ),
9288 ], info_str=(MemberName, "Add Bindery Object to Set: %s", ", %s"))
9290 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xe900, 0xea00, 0xeb00,
9291 0xec01, 0xf000, 0xf800, 0xfb02, 0xfc03, 0xfe01,
9294 pkt = NCP(0x1742, "Delete Bindery Object From Set", 'bindery')
9295 pkt.Request((17,126), [
9296 rec( 10, 2, ObjectType, BE ),
9297 rec( 12, (1,48), ObjectName ),
9298 rec( -1, (1,16), PropertyName ),
9299 rec( -1, 2, MemberType, BE ),
9300 rec( -1, (1,48), MemberName ),
9301 ], info_str=(MemberName, "Delete Bindery Object from Set: %s", ", %s"))
9303 pkt.CompletionCodes([0x0000, 0x9600, 0xeb00, 0xf000, 0xf800, 0xfb02,
9304 0xfc03, 0xfe01, 0xff00])
9306 pkt = NCP(0x1743, "Is Bindery Object In Set", 'bindery')
9307 pkt.Request((17,126), [
9308 rec( 10, 2, ObjectType, BE ),
9309 rec( 12, (1,48), ObjectName ),
9310 rec( -1, (1,16), PropertyName ),
9311 rec( -1, 2, MemberType, BE ),
9312 rec( -1, (1,48), MemberName ),
9313 ], info_str=(MemberName, "Is Bindery Object in Set: %s", ", %s"))
9315 pkt.CompletionCodes([0x0000, 0x9600, 0xea00, 0xeb00, 0xec01, 0xf000,
9316 0xfb02, 0xfc03, 0xfe01, 0xff00])
9318 pkt = NCP(0x1744, "Close Bindery", 'bindery')
9321 pkt.CompletionCodes([0x0000, 0xff00])
9323 pkt = NCP(0x1745, "Open Bindery", 'bindery')
9326 pkt.CompletionCodes([0x0000, 0xff00])
9328 pkt = NCP(0x1746, "Get Bindery Access Level", 'bindery')
9331 rec( 8, 1, ObjectSecurity ),
9332 rec( 9, 4, LoggedObjectID, BE ),
9334 pkt.CompletionCodes([0x0000, 0x9600])
9336 pkt = NCP(0x1747, "Scan Bindery Object Trustee Paths", 'bindery')
9338 rec( 10, 1, VolumeNumber ),
9339 rec( 11, 2, LastSequenceNumber, BE ),
9340 rec( 13, 4, ObjectID, BE ),
9342 pkt.Reply((16,270), [
9343 rec( 8, 2, LastSequenceNumber, BE),
9344 rec( 10, 4, ObjectID, BE ),
9345 rec( 14, 1, ObjectSecurity ),
9346 rec( 15, (1,255), Path ),
9348 pkt.CompletionCodes([0x0000, 0x9300, 0x9600, 0xa100, 0xf000, 0xf100,
9349 0xf200, 0xfc02, 0xfe01, 0xff00])
9351 pkt = NCP(0x1748, "Get Bindery Object Access Level", 'bindery')
9353 rec( 10, 4, ObjectID, BE ),
9356 rec( 8, 1, ObjectSecurity ),
9358 pkt.CompletionCodes([0x0000, 0x9600])
9360 pkt = NCP(0x1749, "Is Calling Station a Manager", 'bindery')
9363 pkt.CompletionCodes([0x0003, 0xff1e])
9365 pkt = NCP(0x174A, "Keyed Verify Password", 'bindery')
9366 pkt.Request((21,68), [
9367 rec( 10, 8, LoginKey ),
9368 rec( 18, 2, ObjectType, BE ),
9369 rec( 20, (1,48), ObjectName ),
9370 ], info_str=(ObjectName, "Keyed Verify Password: %s", ", %s"))
9372 pkt.CompletionCodes([0x0000, 0xc500, 0xfe01, 0xff0c])
9374 pkt = NCP(0x174B, "Keyed Change Password", 'bindery')
9375 pkt.Request((22,100), [
9376 rec( 10, 8, LoginKey ),
9377 rec( 18, 2, ObjectType, BE ),
9378 rec( 20, (1,48), ObjectName ),
9379 rec( -1, (1,32), Password ),
9380 ], info_str=(ObjectName, "Keyed Change Password: %s", ", %s"))
9382 pkt.CompletionCodes([0x0000, 0xc500, 0xfe01, 0xff0c])
9384 pkt = NCP(0x174C, "List Relations Of an Object", 'bindery')
9385 pkt.Request((18,80), [
9386 rec( 10, 4, LastSeen, BE ),
9387 rec( 14, 2, ObjectType, BE ),
9388 rec( 16, (1,48), ObjectName ),
9389 rec( -1, (1,16), PropertyName ),
9390 ], info_str=(ObjectName, "List Relations of an Object: %s", ", %s"))
9392 rec( 8, 2, RelationsCount, BE, var="x" ),
9393 rec( 10, 4, ObjectID, BE, repeat="x" ),
9395 pkt.CompletionCodes([0x0000, 0xf000, 0xf200, 0xfe01, 0xff00])
9397 pkt = NCP(0x1764, "Create Queue", 'qms')
9398 pkt.Request((15,316), [
9399 rec( 10, 2, QueueType, BE ),
9400 rec( 12, (1,48), QueueName ),
9401 rec( -1, 1, PathBase ),
9402 rec( -1, (1,255), Path ),
9403 ], info_str=(QueueName, "Create Queue: %s", ", %s"))
9405 rec( 8, 4, QueueID, BE ),
9407 pkt.CompletionCodes([0x0000, 0x9600, 0x9900, 0xd000, 0xd100,
9408 0xd200, 0xd300, 0xd400, 0xd500, 0xd601,
9409 0xd703, 0xd800, 0xd902, 0xda01, 0xdb02,
9412 pkt = NCP(0x1765, "Destroy Queue", 'qms')
9414 rec( 10, 4, QueueID, BE ),
9417 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9418 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9419 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9421 pkt = NCP(0x1766, "Read Queue Current Status", 'qms')
9423 rec( 10, 4, QueueID, BE ),
9426 rec( 8, 4, QueueID, BE ),
9427 rec( 12, 1, QueueStatus ),
9428 rec( 13, 1, CurrentEntries ),
9429 rec( 14, 1, CurrentServers, var="x" ),
9430 rec( 15, 4, ServerIDList, repeat="x" ),
9431 rec( 19, 1, ServerStationList, repeat="x" ),
9433 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9434 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9435 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9437 pkt = NCP(0x1767, "Set Queue Current Status", 'qms')
9439 rec( 10, 4, QueueID, BE ),
9440 rec( 14, 1, QueueStatus ),
9443 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9444 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9445 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07,
9448 pkt = NCP(0x1768, "Create Queue Job And File", 'qms')
9450 rec( 10, 4, QueueID, BE ),
9451 rec( 14, 250, JobStruct ),
9454 rec( 8, 1, ClientStation ),
9455 rec( 9, 1, ClientTaskNumber ),
9456 rec( 10, 4, ClientIDNumber, BE ),
9457 rec( 14, 4, TargetServerIDNumber, BE ),
9458 rec( 18, 6, TargetExecutionTime ),
9459 rec( 24, 6, JobEntryTime ),
9460 rec( 30, 2, JobNumber, BE ),
9461 rec( 32, 2, JobType, BE ),
9462 rec( 34, 1, JobPosition ),
9463 rec( 35, 1, JobControlFlags ),
9464 rec( 36, 14, JobFileName ),
9465 rec( 50, 6, JobFileHandle ),
9466 rec( 56, 1, ServerStation ),
9467 rec( 57, 1, ServerTaskNumber ),
9468 rec( 58, 4, ServerID, BE ),
9470 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9471 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9472 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07,
9475 pkt = NCP(0x1769, "Close File And Start Queue Job", 'qms')
9477 rec( 10, 4, QueueID, BE ),
9478 rec( 14, 2, JobNumber, BE ),
9481 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9482 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9483 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9485 pkt = NCP(0x176A, "Remove Job From Queue", 'qms')
9487 rec( 10, 4, QueueID, BE ),
9488 rec( 14, 2, JobNumber, BE ),
9491 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9492 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9493 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9495 pkt = NCP(0x176B, "Get Queue Job List", 'qms')
9497 rec( 10, 4, QueueID, BE ),
9500 rec( 8, 2, JobCount, BE, var="x" ),
9501 rec( 10, 2, JobNumber, BE, repeat="x" ),
9503 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9504 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9505 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9507 pkt = NCP(0x176C, "Read Queue Job Entry", 'qms')
9509 rec( 10, 4, QueueID, BE ),
9510 rec( 14, 2, JobNumber, BE ),
9513 rec( 8, 250, JobStruct ),
9515 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9516 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9517 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9519 pkt = NCP(0x176D, "Change Queue Job Entry", 'qms')
9521 rec( 14, 250, JobStruct ),
9524 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9525 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9526 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9528 pkt = NCP(0x176E, "Change Queue Job Position", 'qms')
9530 rec( 10, 4, QueueID, BE ),
9531 rec( 14, 2, JobNumber, BE ),
9532 rec( 16, 1, NewPosition ),
9535 pkt.CompletionCodes([0x0000, 0x9600, 0xd000, 0xd100, 0xd500,
9536 0xd601, 0xfe07, 0xff1f])
9538 pkt = NCP(0x176F, "Attach Queue Server To Queue", 'qms')
9540 rec( 10, 4, QueueID, BE ),
9543 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9544 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9545 0xd800, 0xd902, 0xda01, 0xdb02, 0xea00,
9548 pkt = NCP(0x1770, "Detach Queue Server From Queue", 'qms')
9550 rec( 10, 4, QueueID, BE ),
9553 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9554 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9555 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9557 pkt = NCP(0x1771, "Service Queue Job", 'qms')
9559 rec( 10, 4, QueueID, BE ),
9560 rec( 14, 2, ServiceType, BE ),
9563 rec( 8, 1, ClientStation ),
9564 rec( 9, 1, ClientTaskNumber ),
9565 rec( 10, 4, ClientIDNumber, BE ),
9566 rec( 14, 4, TargetServerIDNumber, BE ),
9567 rec( 18, 6, TargetExecutionTime ),
9568 rec( 24, 6, JobEntryTime ),
9569 rec( 30, 2, JobNumber, BE ),
9570 rec( 32, 2, JobType, BE ),
9571 rec( 34, 1, JobPosition ),
9572 rec( 35, 1, JobControlFlags ),
9573 rec( 36, 14, JobFileName ),
9574 rec( 50, 6, JobFileHandle ),
9575 rec( 56, 1, ServerStation ),
9576 rec( 57, 1, ServerTaskNumber ),
9577 rec( 58, 4, ServerID, BE ),
9579 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9580 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9581 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9583 pkt = NCP(0x1772, "Finish Servicing Queue Job", 'qms')
9585 rec( 10, 4, QueueID, BE ),
9586 rec( 14, 2, JobNumber, BE ),
9587 rec( 16, 4, ChargeInformation, BE ),
9590 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9591 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9592 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9594 pkt = NCP(0x1773, "Abort Servicing Queue Job", 'qms')
9596 rec( 10, 4, QueueID, BE ),
9597 rec( 14, 2, JobNumber, BE ),
9600 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9601 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9602 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9604 pkt = NCP(0x1774, "Change To Client Rights", 'qms')
9606 rec( 10, 4, QueueID, BE ),
9607 rec( 14, 2, JobNumber, BE ),
9610 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9611 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9612 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9614 pkt = NCP(0x1775, "Restore Queue Server Rights", 'qms')
9617 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9618 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9619 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9621 pkt = NCP(0x1776, "Read Queue Server Current Status", 'qms')
9623 rec( 10, 4, QueueID, BE ),
9624 rec( 14, 4, ServerID, BE ),
9625 rec( 18, 1, ServerStation ),
9628 rec( 8, 64, ServerStatusRecord ),
9630 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9631 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9632 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9634 pkt = NCP(0x1777, "Set Queue Server Current Status", 'qms')
9636 rec( 10, 4, QueueID, BE ),
9637 rec( 14, 64, ServerStatusRecord ),
9640 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9641 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9642 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9644 pkt = NCP(0x1778, "Get Queue Job File Size", 'qms')
9646 rec( 10, 4, QueueID, BE ),
9647 rec( 14, 2, JobNumber, BE ),
9650 rec( 8, 4, QueueID, BE ),
9651 rec( 12, 4, JobNumberLong ),
9652 rec( 16, 4, FileSize, BE ),
9654 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9655 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9656 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9658 pkt = NCP(0x1779, "Create Queue Job And File", 'qms')
9660 rec( 10, 4, QueueID, BE ),
9661 rec( 14, 250, JobStruct ),
9664 rec( 8, 86, JobStructNew ),
9666 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9667 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9668 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9670 pkt = NCP(0x177A, "Read Queue Job Entry", 'qms')
9672 rec( 10, 4, QueueID, BE ),
9673 rec( 14, 4, JobNumberLong ),
9676 rec( 8, 250, JobStruct ),
9678 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9679 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9680 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9682 pkt = NCP(0x177B, "Change Queue Job Entry", 'qms')
9684 rec( 10, 4, QueueID, BE ),
9685 rec( 14, 250, JobStruct ),
9688 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9689 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9690 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00])
9692 pkt = NCP(0x177C, "Service Queue Job", 'qms')
9694 rec( 10, 4, QueueID, BE ),
9695 rec( 14, 2, ServiceType ),
9698 rec( 8, 86, JobStructNew ),
9700 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9701 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9702 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9704 pkt = NCP(0x177D, "Read Queue Current Status", 'qms')
9706 rec( 10, 4, QueueID, BE ),
9709 rec( 8, 4, QueueID, BE ),
9710 rec( 12, 1, QueueStatus ),
9711 rec( 13, 3, Reserved3 ),
9712 rec( 16, 4, CurrentEntries ),
9713 rec( 20, 4, CurrentServers, var="x" ),
9714 rec( 24, 4, ServerIDList, repeat="x" ),
9715 rec( 28, 4, ServerStationList, repeat="x" ),
9717 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9718 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9719 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9721 pkt = NCP(0x177E, "Set Queue Current Status", 'qms')
9723 rec( 10, 4, QueueID, BE ),
9724 rec( 14, 1, QueueStatus ),
9727 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9728 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9729 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9731 pkt = NCP(0x177F, "Close File And Start Queue Job", 'qms')
9733 rec( 10, 4, QueueID, BE ),
9734 rec( 14, 4, JobNumberLong ),
9737 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9738 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9739 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9741 pkt = NCP(0x1780, "Remove Job From Queue", 'qms')
9743 rec( 10, 4, QueueID, BE ),
9744 rec( 14, 4, JobNumberLong ),
9747 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9748 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9749 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9751 pkt = NCP(0x1781, "Get Queue Job List", 'qms')
9753 rec( 10, 4, QueueID, BE ),
9754 rec( 14, 4, JobNumberLong ),
9757 rec( 8, 4, TotalQueueJobs ),
9758 rec( 12, 4, ReplyQueueJobNumbers, var="x" ),
9759 rec( 16, 4, JobNumberList, repeat="x" ),
9761 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9762 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9763 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9765 pkt = NCP(0x1782, "Change Job Priority", 'qms')
9767 rec( 10, 4, QueueID, BE ),
9768 rec( 14, 4, JobNumberLong ),
9769 rec( 18, 4, Priority ),
9772 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9773 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9774 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9776 pkt = NCP(0x1783, "Finish Servicing Queue Job", 'qms')
9778 rec( 10, 4, QueueID, BE ),
9779 rec( 14, 4, JobNumberLong ),
9780 rec( 18, 4, ChargeInformation ),
9783 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9784 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9785 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9787 pkt = NCP(0x1784, "Abort Servicing Queue Job", 'qms')
9789 rec( 10, 4, QueueID, BE ),
9790 rec( 14, 4, JobNumberLong ),
9793 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9794 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9795 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9797 pkt = NCP(0x1785, "Change To Client Rights", 'qms')
9799 rec( 10, 4, QueueID, BE ),
9800 rec( 14, 4, JobNumberLong ),
9803 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9804 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9805 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9807 pkt = NCP(0x1786, "Read Queue Server Current Status", 'qms')
9809 rec( 10, 4, QueueID, BE ),
9810 rec( 14, 4, ServerID, BE ),
9811 rec( 18, 4, ServerStation ),
9814 rec( 8, 64, ServerStatusRecord ),
9816 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9817 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9818 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9820 pkt = NCP(0x1787, "Get Queue Job File Size", 'qms')
9822 rec( 10, 4, QueueID, BE ),
9823 rec( 14, 4, JobNumberLong ),
9826 rec( 8, 4, QueueID, BE ),
9827 rec( 12, 4, JobNumberLong ),
9828 rec( 16, 4, FileSize, BE ),
9830 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9831 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9832 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9834 pkt = NCP(0x1788, "Move Queue Job From Src Q to Dst Q", 'qms')
9836 rec( 10, 4, QueueID, BE ),
9837 rec( 14, 4, JobNumberLong ),
9838 rec( 18, 4, DstQueueID, BE ),
9841 rec( 8, 4, JobNumberLong ),
9843 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
9845 pkt = NCP(0x1789, "Get Queue Jobs From Form List", 'qms')
9847 rec( 10, 4, QueueID, BE ),
9848 rec( 14, 4, QueueStartPosition ),
9849 rec( 18, 4, FormTypeCnt, var="x" ),
9850 rec( 22, 2, FormType, repeat="x" ),
9853 rec( 8, 4, TotalQueueJobs ),
9854 rec( 12, 4, JobCount, var="x" ),
9855 rec( 16, 4, JobNumberList, repeat="x" ),
9857 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
9859 pkt = NCP(0x178A, "Service Queue Job By Form List", 'qms')
9861 rec( 10, 4, QueueID, BE ),
9862 rec( 14, 4, QueueStartPosition ),
9863 rec( 18, 4, FormTypeCnt, var= "x" ),
9864 rec( 22, 2, FormType, repeat="x" ),
9867 rec( 8, 86, JobStructNew ),
9869 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
9871 pkt = NCP(0x1796, "Get Current Account Status", 'accounting')
9872 pkt.Request((13,60), [
9873 rec( 10, 2, ObjectType, BE ),
9874 rec( 12, (1,48), ObjectName ),
9875 ], info_str=(ObjectName, "Get Current Account Status: %s", ", %s"))
9877 rec( 8, 4, AccountBalance, BE ),
9878 rec( 12, 4, CreditLimit, BE ),
9879 rec( 16, 120, Reserved120 ),
9880 rec( 136, 4, HolderID, BE ),
9881 rec( 140, 4, HoldAmount, BE ),
9882 rec( 144, 4, HolderID, BE ),
9883 rec( 148, 4, HoldAmount, BE ),
9884 rec( 152, 4, HolderID, BE ),
9885 rec( 156, 4, HoldAmount, BE ),
9886 rec( 160, 4, HolderID, BE ),
9887 rec( 164, 4, HoldAmount, BE ),
9888 rec( 168, 4, HolderID, BE ),
9889 rec( 172, 4, HoldAmount, BE ),
9890 rec( 176, 4, HolderID, BE ),
9891 rec( 180, 4, HoldAmount, BE ),
9892 rec( 184, 4, HolderID, BE ),
9893 rec( 188, 4, HoldAmount, BE ),
9894 rec( 192, 4, HolderID, BE ),
9895 rec( 196, 4, HoldAmount, BE ),
9896 rec( 200, 4, HolderID, BE ),
9897 rec( 204, 4, HoldAmount, BE ),
9898 rec( 208, 4, HolderID, BE ),
9899 rec( 212, 4, HoldAmount, BE ),
9900 rec( 216, 4, HolderID, BE ),
9901 rec( 220, 4, HoldAmount, BE ),
9902 rec( 224, 4, HolderID, BE ),
9903 rec( 228, 4, HoldAmount, BE ),
9904 rec( 232, 4, HolderID, BE ),
9905 rec( 236, 4, HoldAmount, BE ),
9906 rec( 240, 4, HolderID, BE ),
9907 rec( 244, 4, HoldAmount, BE ),
9908 rec( 248, 4, HolderID, BE ),
9909 rec( 252, 4, HoldAmount, BE ),
9910 rec( 256, 4, HolderID, BE ),
9911 rec( 260, 4, HoldAmount, BE ),
9913 pkt.CompletionCodes([0x0000, 0x9600, 0xc000, 0xc101, 0xc400, 0xe800,
9914 0xea00, 0xeb00, 0xec00, 0xfc06, 0xfe07, 0xff00])
9916 pkt = NCP(0x1797, "Submit Account Charge", 'accounting')
9917 pkt.Request((26,327), [
9918 rec( 10, 2, ServiceType, BE ),
9919 rec( 12, 4, ChargeAmount, BE ),
9920 rec( 16, 4, HoldCancelAmount, BE ),
9921 rec( 20, 2, ObjectType, BE ),
9922 rec( 22, 2, CommentType, BE ),
9923 rec( 24, (1,48), ObjectName ),
9924 rec( -1, (1,255), Comment ),
9925 ], info_str=(ObjectName, "Submit Account Charge: %s", ", %s"))
9927 pkt.CompletionCodes([0x0000, 0x0102, 0x8800, 0x9400, 0x9600, 0xa201,
9928 0xc000, 0xc101, 0xc200, 0xc400, 0xe800, 0xea00,
9929 0xeb00, 0xec00, 0xfe07, 0xff00])
9931 pkt = NCP(0x1798, "Submit Account Hold", 'accounting')
9932 pkt.Request((17,64), [
9933 rec( 10, 4, HoldCancelAmount, BE ),
9934 rec( 14, 2, ObjectType, BE ),
9935 rec( 16, (1,48), ObjectName ),
9936 ], info_str=(ObjectName, "Submit Account Hold: %s", ", %s"))
9938 pkt.CompletionCodes([0x0000, 0x0102, 0x8800, 0x9400, 0x9600, 0xa201,
9939 0xc000, 0xc101, 0xc200, 0xc400, 0xe800, 0xea00,
9940 0xeb00, 0xec00, 0xfe07, 0xff00])
9942 pkt = NCP(0x1799, "Submit Account Note", 'accounting')
9943 pkt.Request((18,319), [
9944 rec( 10, 2, ServiceType, BE ),
9945 rec( 12, 2, ObjectType, BE ),
9946 rec( 14, 2, CommentType, BE ),
9947 rec( 16, (1,48), ObjectName ),
9948 rec( -1, (1,255), Comment ),
9949 ], info_str=(ObjectName, "Submit Account Note: %s", ", %s"))
9951 pkt.CompletionCodes([0x0000, 0x0102, 0x9600, 0xc000, 0xc101, 0xc400,
9952 0xe800, 0xea00, 0xeb00, 0xec00, 0xf000, 0xfc06,
9955 pkt = NCP(0x17c8, "Check Console Privileges", 'stats')
9958 pkt.CompletionCodes([0x0000, 0xc601])
9960 pkt = NCP(0x17c9, "Get File Server Description Strings", 'stats')
9963 rec( 8, 512, DescriptionStrings ),
9965 pkt.CompletionCodes([0x0000, 0x9600])
9967 pkt = NCP(0x17CA, "Set File Server Date And Time", 'stats')
9970 rec( 11, 1, Month ),
9973 rec( 14, 1, Minute ),
9974 rec( 15, 1, Second ),
9977 pkt.CompletionCodes([0x0000, 0xc601])
9979 pkt = NCP(0x17CB, "Disable File Server Login", 'stats')
9982 pkt.CompletionCodes([0x0000, 0xc601])
9984 pkt = NCP(0x17CC, "Enable File Server Login", 'stats')
9987 pkt.CompletionCodes([0x0000, 0xc601])
9989 pkt = NCP(0x17CD, "Get File Server Login Status", 'stats')
9992 rec( 8, 4, UserLoginAllowed ),
9994 pkt.CompletionCodes([0x0000, 0x9600, 0xfb01])
9996 pkt = NCP(0x17CF, "Disable Transaction Tracking", 'stats')
9999 pkt.CompletionCodes([0x0000, 0xc601])
10000 # 2222/17D0, 23/208
10001 pkt = NCP(0x17D0, "Enable Transaction Tracking", 'stats')
10004 pkt.CompletionCodes([0x0000, 0xc601])
10005 # 2222/17D1, 23/209
10006 pkt = NCP(0x17D1, "Send Console Broadcast", 'stats')
10007 pkt.Request((13,267), [
10008 rec( 10, 1, NumberOfStations, var="x" ),
10009 rec( 11, 1, StationList, repeat="x" ),
10010 rec( 12, (1, 255), TargetMessage ),
10011 ], info_str=(TargetMessage, "Send Console Broadcast: %s", ", %s"))
10013 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10014 # 2222/17D2, 23/210
10015 pkt = NCP(0x17D2, "Clear Connection Number", 'stats')
10017 rec( 10, 1, ConnectionNumber ),
10018 ],info_str=(ConnectionNumber, "Clear Connection Number %d", ", %d"))
10020 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10021 # 2222/17D3, 23/211
10022 pkt = NCP(0x17D3, "Down File Server", 'stats')
10024 rec( 10, 1, ForceFlag ),
10027 pkt.CompletionCodes([0x0000, 0xc601, 0xff00])
10028 # 2222/17D4, 23/212
10029 pkt = NCP(0x17D4, "Get File System Statistics", 'stats')
10032 rec( 8, 4, SystemIntervalMarker, BE ),
10033 rec( 12, 2, ConfiguredMaxOpenFiles ),
10034 rec( 14, 2, ActualMaxOpenFiles ),
10035 rec( 16, 2, CurrentOpenFiles ),
10036 rec( 18, 4, TotalFilesOpened ),
10037 rec( 22, 4, TotalReadRequests ),
10038 rec( 26, 4, TotalWriteRequests ),
10039 rec( 30, 2, CurrentChangedFATs ),
10040 rec( 32, 4, TotalChangedFATs ),
10041 rec( 36, 2, FATWriteErrors ),
10042 rec( 38, 2, FatalFATWriteErrors ),
10043 rec( 40, 2, FATScanErrors ),
10044 rec( 42, 2, ActualMaxIndexedFiles ),
10045 rec( 44, 2, ActiveIndexedFiles ),
10046 rec( 46, 2, AttachedIndexedFiles ),
10047 rec( 48, 2, AvailableIndexedFiles ),
10049 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10050 # 2222/17D5, 23/213
10051 pkt = NCP(0x17D5, "Get Transaction Tracking Statistics", 'stats')
10052 pkt.Request((13,267), [
10053 rec( 10, 2, LastRecordSeen ),
10054 rec( 12, (1,255), SemaphoreName ),
10057 rec( 8, 4, SystemIntervalMarker, BE ),
10058 rec( 12, 1, TransactionTrackingSupported ),
10059 rec( 13, 1, TransactionTrackingEnabled ),
10060 rec( 14, 2, TransactionVolumeNumber ),
10061 rec( 16, 2, ConfiguredMaxSimultaneousTransactions ),
10062 rec( 18, 2, ActualMaxSimultaneousTransactions ),
10063 rec( 20, 2, CurrentTransactionCount ),
10064 rec( 22, 4, TotalTransactionsPerformed ),
10065 rec( 26, 4, TotalWriteTransactionsPerformed ),
10066 rec( 30, 4, TotalTransactionsBackedOut ),
10067 rec( 34, 2, TotalUnfilledBackoutRequests ),
10068 rec( 36, 2, TransactionDiskSpace ),
10069 rec( 38, 4, TransactionFATAllocations ),
10070 rec( 42, 4, TransactionFileSizeChanges ),
10071 rec( 46, 4, TransactionFilesTruncated ),
10072 rec( 50, 1, NumberOfEntries, var="x" ),
10073 rec( 51, 2, ConnTaskStruct, repeat="x" ),
10075 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10076 # 2222/17D6, 23/214
10077 pkt = NCP(0x17D6, "Read Disk Cache Statistics", 'stats')
10080 rec( 8, 4, SystemIntervalMarker, BE ),
10081 rec( 12, 2, CacheBufferCount ),
10082 rec( 14, 2, CacheBufferSize ),
10083 rec( 16, 2, DirtyCacheBuffers ),
10084 rec( 18, 4, CacheReadRequests ),
10085 rec( 22, 4, CacheWriteRequests ),
10086 rec( 26, 4, CacheHits ),
10087 rec( 30, 4, CacheMisses ),
10088 rec( 34, 4, PhysicalReadRequests ),
10089 rec( 38, 4, PhysicalWriteRequests ),
10090 rec( 42, 2, PhysicalReadErrors ),
10091 rec( 44, 2, PhysicalWriteErrors ),
10092 rec( 46, 4, CacheGetRequests ),
10093 rec( 50, 4, CacheFullWriteRequests ),
10094 rec( 54, 4, CachePartialWriteRequests ),
10095 rec( 58, 4, BackgroundDirtyWrites ),
10096 rec( 62, 4, BackgroundAgedWrites ),
10097 rec( 66, 4, TotalCacheWrites ),
10098 rec( 70, 4, CacheAllocations ),
10099 rec( 74, 2, ThrashingCount ),
10100 rec( 76, 2, LRUBlockWasDirty ),
10101 rec( 78, 2, ReadBeyondWrite ),
10102 rec( 80, 2, FragmentWriteOccurred ),
10103 rec( 82, 2, CacheHitOnUnavailableBlock ),
10104 rec( 84, 2, CacheBlockScrapped ),
10106 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10107 # 2222/17D7, 23/215
10108 pkt = NCP(0x17D7, "Get Drive Mapping Table", 'stats')
10111 rec( 8, 4, SystemIntervalMarker, BE ),
10112 rec( 12, 1, SFTSupportLevel ),
10113 rec( 13, 1, LogicalDriveCount ),
10114 rec( 14, 1, PhysicalDriveCount ),
10115 rec( 15, 1, DiskChannelTable ),
10116 rec( 16, 4, Reserved4 ),
10117 rec( 20, 2, PendingIOCommands, BE ),
10118 rec( 22, 32, DriveMappingTable ),
10119 rec( 54, 32, DriveMirrorTable ),
10120 rec( 86, 32, DeadMirrorTable ),
10121 rec( 118, 1, ReMirrorDriveNumber ),
10122 rec( 119, 1, Filler ),
10123 rec( 120, 4, ReMirrorCurrentOffset, BE ),
10124 rec( 124, 60, SFTErrorTable ),
10126 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10127 # 2222/17D8, 23/216
10128 pkt = NCP(0x17D8, "Read Physical Disk Statistics", 'stats')
10130 rec( 10, 1, PhysicalDiskNumber ),
10133 rec( 8, 4, SystemIntervalMarker, BE ),
10134 rec( 12, 1, PhysicalDiskChannel ),
10135 rec( 13, 1, DriveRemovableFlag ),
10136 rec( 14, 1, PhysicalDriveType ),
10137 rec( 15, 1, ControllerDriveNumber ),
10138 rec( 16, 1, ControllerNumber ),
10139 rec( 17, 1, ControllerType ),
10140 rec( 18, 4, DriveSize ),
10141 rec( 22, 2, DriveCylinders ),
10142 rec( 24, 1, DriveHeads ),
10143 rec( 25, 1, SectorsPerTrack ),
10144 rec( 26, 64, DriveDefinitionString ),
10145 rec( 90, 2, IOErrorCount ),
10146 rec( 92, 4, HotFixTableStart ),
10147 rec( 96, 2, HotFixTableSize ),
10148 rec( 98, 2, HotFixBlocksAvailable ),
10149 rec( 100, 1, HotFixDisabled ),
10151 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10152 # 2222/17D9, 23/217
10153 pkt = NCP(0x17D9, "Get Disk Channel Statistics", 'stats')
10155 rec( 10, 1, DiskChannelNumber ),
10158 rec( 8, 4, SystemIntervalMarker, BE ),
10159 rec( 12, 2, ChannelState, BE ),
10160 rec( 14, 2, ChannelSynchronizationState, BE ),
10161 rec( 16, 1, SoftwareDriverType ),
10162 rec( 17, 1, SoftwareMajorVersionNumber ),
10163 rec( 18, 1, SoftwareMinorVersionNumber ),
10164 rec( 19, 65, SoftwareDescription ),
10165 rec( 84, 8, IOAddressesUsed ),
10166 rec( 92, 10, SharedMemoryAddresses ),
10167 rec( 102, 4, InterruptNumbersUsed ),
10168 rec( 106, 4, DMAChannelsUsed ),
10169 rec( 110, 1, FlagBits ),
10170 rec( 111, 1, Reserved ),
10171 rec( 112, 80, ConfigurationDescription ),
10173 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10174 # 2222/17DB, 23/219
10175 pkt = NCP(0x17DB, "Get Connection's Open Files", 'file')
10177 rec( 10, 2, ConnectionNumber ),
10178 rec( 12, 2, LastRecordSeen, BE ),
10181 rec( 8, 2, NextRequestRecord ),
10182 rec( 10, 1, NumberOfRecords, var="x" ),
10183 rec( 11, 21, ConnStruct, repeat="x" ),
10185 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10186 # 2222/17DC, 23/220
10187 pkt = NCP(0x17DC, "Get Connection Using A File", 'file')
10188 pkt.Request((14,268), [
10189 rec( 10, 2, LastRecordSeen, BE ),
10190 rec( 12, 1, DirHandle ),
10191 rec( 13, (1,255), Path ),
10192 ], info_str=(Path, "Get Connection Using File: %s", ", %s"))
10194 rec( 8, 2, UseCount, BE ),
10195 rec( 10, 2, OpenCount, BE ),
10196 rec( 12, 2, OpenForReadCount, BE ),
10197 rec( 14, 2, OpenForWriteCount, BE ),
10198 rec( 16, 2, DenyReadCount, BE ),
10199 rec( 18, 2, DenyWriteCount, BE ),
10200 rec( 20, 2, NextRequestRecord, BE ),
10201 rec( 22, 1, Locked ),
10202 rec( 23, 1, NumberOfRecords, var="x" ),
10203 rec( 24, 6, ConnFileStruct, repeat="x" ),
10205 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10206 # 2222/17DD, 23/221
10207 pkt = NCP(0x17DD, "Get Physical Record Locks By Connection And File", 'file')
10209 rec( 10, 2, TargetConnectionNumber ),
10210 rec( 12, 2, LastRecordSeen, BE ),
10211 rec( 14, 1, VolumeNumber ),
10212 rec( 15, 2, DirectoryID ),
10213 rec( 17, 14, FileName14 ),
10214 ], info_str=(FileName14, "Get Physical Record Locks by Connection and File: %s", ", %s"))
10216 rec( 8, 2, NextRequestRecord ),
10217 rec( 10, 1, NumberOfLocks, var="x" ),
10218 rec( 11, 1, Reserved ),
10219 rec( 12, 10, LockStruct, repeat="x" ),
10221 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10222 # 2222/17DE, 23/222
10223 pkt = NCP(0x17DE, "Get Physical Record Locks By File", 'file')
10224 pkt.Request((14,268), [
10225 rec( 10, 2, TargetConnectionNumber ),
10226 rec( 12, 1, DirHandle ),
10227 rec( 13, (1,255), Path ),
10228 ], info_str=(Path, "Get Physical Record Locks by File: %s", ", %s"))
10230 rec( 8, 2, NextRequestRecord ),
10231 rec( 10, 1, NumberOfLocks, var="x" ),
10232 rec( 11, 1, Reserved ),
10233 rec( 12, 16, PhyLockStruct, repeat="x" ),
10235 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10236 # 2222/17DF, 23/223
10237 pkt = NCP(0x17DF, "Get Logical Records By Connection", 'file')
10239 rec( 10, 2, TargetConnectionNumber ),
10240 rec( 12, 2, LastRecordSeen, BE ),
10242 pkt.Reply((14,268), [
10243 rec( 8, 2, NextRequestRecord ),
10244 rec( 10, 1, NumberOfRecords, var="x" ),
10245 rec( 11, (3, 257), LogLockStruct, repeat="x" ),
10247 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10248 # 2222/17E0, 23/224
10249 pkt = NCP(0x17E0, "Get Logical Record Information", 'file')
10250 pkt.Request((13,267), [
10251 rec( 10, 2, LastRecordSeen ),
10252 rec( 12, (1,255), LogicalRecordName ),
10253 ], info_str=(LogicalRecordName, "Get Logical Record Information: %s", ", %s"))
10255 rec( 8, 2, UseCount, BE ),
10256 rec( 10, 2, ShareableLockCount, BE ),
10257 rec( 12, 2, NextRequestRecord ),
10258 rec( 14, 1, Locked ),
10259 rec( 15, 1, NumberOfRecords, var="x" ),
10260 rec( 16, 4, LogRecStruct, repeat="x" ),
10262 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10263 # 2222/17E1, 23/225
10264 pkt = NCP(0x17E1, "Get Connection's Semaphores", 'file')
10266 rec( 10, 2, ConnectionNumber ),
10267 rec( 12, 2, LastRecordSeen ),
10269 pkt.Reply((18,272), [
10270 rec( 8, 2, NextRequestRecord ),
10271 rec( 10, 2, NumberOfSemaphores, var="x" ),
10272 rec( 12, (6,260), SemaStruct, repeat="x" ),
10274 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10275 # 2222/17E2, 23/226
10276 pkt = NCP(0x17E2, "Get Semaphore Information", 'file')
10277 pkt.Request((13,267), [
10278 rec( 10, 2, LastRecordSeen ),
10279 rec( 12, (1,255), SemaphoreName ),
10280 ], info_str=(SemaphoreName, "Get Semaphore Information: %s", ", %s"))
10282 rec( 8, 2, NextRequestRecord, BE ),
10283 rec( 10, 2, OpenCount, BE ),
10284 rec( 12, 1, SemaphoreValue ),
10285 rec( 13, 1, NumberOfRecords, var="x" ),
10286 rec( 14, 3, SemaInfoStruct, repeat="x" ),
10288 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10289 # 2222/17E3, 23/227
10290 pkt = NCP(0x17E3, "Get LAN Driver Configuration Information", 'stats')
10292 rec( 10, 1, LANDriverNumber ),
10295 rec( 8, 4, NetworkAddress, BE ),
10296 rec( 12, 6, HostAddress ),
10297 rec( 18, 1, BoardInstalled ),
10298 rec( 19, 1, OptionNumber ),
10299 rec( 20, 160, ConfigurationText ),
10301 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10302 # 2222/17E5, 23/229
10303 pkt = NCP(0x17E5, "Get Connection Usage Statistics", 'stats')
10305 rec( 10, 2, ConnectionNumber ),
10308 rec( 8, 2, NextRequestRecord ),
10309 rec( 10, 6, BytesRead ),
10310 rec( 16, 6, BytesWritten ),
10311 rec( 22, 4, TotalRequestPackets ),
10313 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10314 # 2222/17E6, 23/230
10315 pkt = NCP(0x17E6, "Get Object's Remaining Disk Space", 'stats')
10317 rec( 10, 4, ObjectID, BE ),
10320 rec( 8, 4, SystemIntervalMarker, BE ),
10321 rec( 12, 4, ObjectID ),
10322 rec( 16, 4, UnusedDiskBlocks, BE ),
10323 rec( 20, 1, RestrictionsEnforced ),
10325 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10326 # 2222/17E7, 23/231
10327 pkt = NCP(0x17E7, "Get File Server LAN I/O Statistics", 'stats')
10330 rec( 8, 4, SystemIntervalMarker, BE ),
10331 rec( 12, 2, ConfiguredMaxRoutingBuffers ),
10332 rec( 14, 2, ActualMaxUsedRoutingBuffers ),
10333 rec( 16, 2, CurrentlyUsedRoutingBuffers ),
10334 rec( 18, 4, TotalFileServicePackets ),
10335 rec( 22, 2, TurboUsedForFileService ),
10336 rec( 24, 2, PacketsFromInvalidConnection ),
10337 rec( 26, 2, BadLogicalConnectionCount ),
10338 rec( 28, 2, PacketsReceivedDuringProcessing ),
10339 rec( 30, 2, RequestsReprocessed ),
10340 rec( 32, 2, PacketsWithBadSequenceNumber ),
10341 rec( 34, 2, DuplicateRepliesSent ),
10342 rec( 36, 2, PositiveAcknowledgesSent ),
10343 rec( 38, 2, PacketsWithBadRequestType ),
10344 rec( 40, 2, AttachDuringProcessing ),
10345 rec( 42, 2, AttachWhileProcessingAttach ),
10346 rec( 44, 2, ForgedDetachedRequests ),
10347 rec( 46, 2, DetachForBadConnectionNumber ),
10348 rec( 48, 2, DetachDuringProcessing ),
10349 rec( 50, 2, RepliesCancelled ),
10350 rec( 52, 2, PacketsDiscardedByHopCount ),
10351 rec( 54, 2, PacketsDiscardedUnknownNet ),
10352 rec( 56, 2, IncomingPacketDiscardedNoDGroup ),
10353 rec( 58, 2, OutgoingPacketDiscardedNoTurboBuffer ),
10354 rec( 60, 2, IPXNotMyNetwork ),
10355 rec( 62, 4, NetBIOSBroadcastWasPropogated ),
10356 rec( 66, 4, TotalOtherPackets ),
10357 rec( 70, 4, TotalRoutedPackets ),
10359 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10360 # 2222/17E8, 23/232
10361 pkt = NCP(0x17E8, "Get File Server Misc Information", 'stats')
10364 rec( 8, 4, SystemIntervalMarker, BE ),
10365 rec( 12, 1, ProcessorType ),
10366 rec( 13, 1, Reserved ),
10367 rec( 14, 1, NumberOfServiceProcesses ),
10368 rec( 15, 1, ServerUtilizationPercentage ),
10369 rec( 16, 2, ConfiguredMaxBinderyObjects ),
10370 rec( 18, 2, ActualMaxBinderyObjects ),
10371 rec( 20, 2, CurrentUsedBinderyObjects ),
10372 rec( 22, 2, TotalServerMemory ),
10373 rec( 24, 2, WastedServerMemory ),
10374 rec( 26, 2, NumberOfDynamicMemoryAreas, var="x" ),
10375 rec( 28, 12, DynMemStruct, repeat="x" ),
10377 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10378 # 2222/17E9, 23/233
10379 pkt = NCP(0x17E9, "Get Volume Information", 'stats')
10381 rec( 10, 1, VolumeNumber ),
10382 ],info_str=(VolumeNumber, "Get Information on Volume %d", ", %d"))
10384 rec( 8, 4, SystemIntervalMarker, BE ),
10385 rec( 12, 1, VolumeNumber ),
10386 rec( 13, 1, LogicalDriveNumber ),
10387 rec( 14, 2, BlockSize ),
10388 rec( 16, 2, StartingBlock ),
10389 rec( 18, 2, TotalBlocks ),
10390 rec( 20, 2, FreeBlocks ),
10391 rec( 22, 2, TotalDirectoryEntries ),
10392 rec( 24, 2, FreeDirectoryEntries ),
10393 rec( 26, 2, ActualMaxUsedDirectoryEntries ),
10394 rec( 28, 1, VolumeHashedFlag ),
10395 rec( 29, 1, VolumeCachedFlag ),
10396 rec( 30, 1, VolumeRemovableFlag ),
10397 rec( 31, 1, VolumeMountedFlag ),
10398 rec( 32, 16, VolumeName ),
10400 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10401 # 2222/17EA, 23/234
10402 pkt = NCP(0x17EA, "Get Connection's Task Information", 'stats')
10404 rec( 10, 2, ConnectionNumber ),
10407 rec( 8, 2, NextRequestRecord ),
10408 rec( 10, 4, NumberOfAttributes, var="x" ),
10409 rec( 14, 4, Attributes, repeat="x" ),
10411 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10412 # 2222/17EB, 23/235
10413 pkt = NCP(0x17EB, "Get Connection's Open Files", 'file')
10415 rec( 10, 2, ConnectionNumber ),
10416 rec( 12, 2, LastRecordSeen ),
10418 pkt.Reply((29,283), [
10419 rec( 8, 2, NextRequestRecord ),
10420 rec( 10, 2, NumberOfRecords, var="x" ),
10421 rec( 12, (17, 271), OpnFilesStruct, repeat="x" ),
10423 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10424 # 2222/17EC, 23/236
10425 pkt = NCP(0x17EC, "Get Connection Using A File", 'file')
10427 rec( 10, 1, DataStreamNumber ),
10428 rec( 11, 1, VolumeNumber ),
10429 rec( 12, 4, DirectoryBase, LE ),
10430 rec( 16, 2, LastRecordSeen ),
10433 rec( 8, 2, NextRequestRecord ),
10434 rec( 10, 2, UseCount ),
10435 rec( 12, 2, OpenCount ),
10436 rec( 14, 2, OpenForReadCount ),
10437 rec( 16, 2, OpenForWriteCount ),
10438 rec( 18, 2, DenyReadCount ),
10439 rec( 20, 2, DenyWriteCount ),
10440 rec( 22, 1, Locked ),
10441 rec( 23, 1, ForkCount ),
10442 rec( 24, 2, NumberOfRecords, var="x" ),
10443 rec( 26, 7, ConnStruct, repeat="x" ),
10445 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10446 # 2222/17ED, 23/237
10447 pkt = NCP(0x17ED, "Get Physical Record Locks By Connection And File", 'file')
10449 rec( 10, 2, TargetConnectionNumber ),
10450 rec( 12, 1, DataStreamNumber ),
10451 rec( 13, 1, VolumeNumber ),
10452 rec( 14, 4, DirectoryBase, LE ),
10453 rec( 18, 2, LastRecordSeen ),
10456 rec( 8, 2, NextRequestRecord ),
10457 rec( 10, 2, NumberOfLocks, var="x" ),
10458 rec( 12, 11, LockStruct, repeat="x" ),
10460 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10461 # 2222/17EE, 23/238
10462 pkt = NCP(0x17EE, "Get Physical Record Locks By File", 'file')
10464 rec( 10, 1, DataStreamNumber ),
10465 rec( 11, 1, VolumeNumber ),
10466 rec( 12, 4, DirectoryBase ),
10467 rec( 16, 2, LastRecordSeen ),
10470 rec( 8, 2, NextRequestRecord ),
10471 rec( 10, 2, NumberOfLocks, var="x" ),
10472 rec( 12, 18, PhyLockStruct, repeat="x" ),
10474 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10475 # 2222/17EF, 23/239
10476 pkt = NCP(0x17EF, "Get Logical Records By Connection", 'file')
10478 rec( 10, 2, TargetConnectionNumber ),
10479 rec( 12, 2, LastRecordSeen ),
10481 pkt.Reply((16,270), [
10482 rec( 8, 2, NextRequestRecord ),
10483 rec( 10, 2, NumberOfRecords, var="x" ),
10484 rec( 12, (4, 258), LogLockStruct, repeat="x" ),
10486 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10487 # 2222/17F0, 23/240
10488 pkt = NCP(0x17F0, "Get Logical Record Information (old)", 'file')
10489 pkt.Request((13,267), [
10490 rec( 10, 2, LastRecordSeen ),
10491 rec( 12, (1,255), LogicalRecordName ),
10494 rec( 8, 2, ShareableLockCount ),
10495 rec( 10, 2, UseCount ),
10496 rec( 12, 1, Locked ),
10497 rec( 13, 2, NextRequestRecord ),
10498 rec( 15, 2, NumberOfRecords, var="x" ),
10499 rec( 17, 5, LogRecStruct, repeat="x" ),
10501 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10502 # 2222/17F1, 23/241
10503 pkt = NCP(0x17F1, "Get Connection's Semaphores", 'file')
10505 rec( 10, 2, ConnectionNumber ),
10506 rec( 12, 2, LastRecordSeen ),
10508 pkt.Reply((19,273), [
10509 rec( 8, 2, NextRequestRecord ),
10510 rec( 10, 2, NumberOfSemaphores, var="x" ),
10511 rec( 12, (7, 261), SemaStruct, repeat="x" ),
10513 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10514 # 2222/17F2, 23/242
10515 pkt = NCP(0x17F2, "Get Semaphore Information", 'file')
10516 pkt.Request((13,267), [
10517 rec( 10, 2, LastRecordSeen ),
10518 rec( 12, (1,255), SemaphoreName ),
10519 ], info_str=(SemaphoreName, "Get Semaphore Information: %s", ", %s"))
10521 rec( 8, 2, NextRequestRecord ),
10522 rec( 10, 2, OpenCount ),
10523 rec( 12, 2, SemaphoreValue ),
10524 rec( 14, 2, NumberOfRecords, var="x" ),
10525 rec( 16, 4, SemaInfoStruct, repeat="x" ),
10527 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10528 # 2222/17F3, 23/243
10529 pkt = NCP(0x17F3, "Map Directory Number to Path", 'file')
10531 rec( 10, 1, VolumeNumber ),
10532 rec( 11, 4, DirectoryNumber ),
10533 rec( 15, 1, NameSpace ),
10535 pkt.Reply((9,263), [
10536 rec( 8, (1,255), Path ),
10538 pkt.CompletionCodes([0x0000, 0x9600, 0x9c00, 0xc601, 0xfd00, 0xff00])
10539 # 2222/17F4, 23/244
10540 pkt = NCP(0x17F4, "Convert Path to Dir Entry", 'file')
10541 pkt.Request((12,266), [
10542 rec( 10, 1, DirHandle ),
10543 rec( 11, (1,255), Path ),
10544 ], info_str=(Path, "Convert Path to Directory Entry: %s", ", %s"))
10546 rec( 8, 1, VolumeNumber ),
10547 rec( 9, 4, DirectoryNumber ),
10549 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10550 # 2222/17FD, 23/253
10551 pkt = NCP(0x17FD, "Send Console Broadcast", 'stats')
10552 pkt.Request((16, 270), [
10553 rec( 10, 1, NumberOfStations, var="x" ),
10554 rec( 11, 4, StationList, repeat="x" ),
10555 rec( 15, (1, 255), TargetMessage ),
10556 ], info_str=(TargetMessage, "Send Console Broadcast: %s", ", %s"))
10558 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10559 # 2222/17FE, 23/254
10560 pkt = NCP(0x17FE, "Clear Connection Number", 'stats')
10562 rec( 10, 4, ConnectionNumber ),
10565 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10567 pkt = NCP(0x18, "End of Job", 'connection')
10570 pkt.CompletionCodes([0x0000])
10572 pkt = NCP(0x19, "Logout", 'connection')
10575 pkt.CompletionCodes([0x0000])
10577 pkt = NCP(0x1A, "Log Physical Record", 'file')
10579 rec( 7, 1, LockFlag ),
10580 rec( 8, 6, FileHandle ),
10581 rec( 14, 4, LockAreasStartOffset, BE ),
10582 rec( 18, 4, LockAreaLen, BE ),
10583 rec( 22, 2, LockTimeout ),
10586 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
10588 pkt = NCP(0x1B, "Lock Physical Record Set", 'file')
10590 rec( 7, 1, LockFlag ),
10591 rec( 8, 2, LockTimeout ),
10594 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
10596 pkt = NCP(0x1C, "Release Physical Record", 'file')
10598 rec( 7, 1, Reserved ),
10599 rec( 8, 6, FileHandle ),
10600 rec( 14, 4, LockAreasStartOffset ),
10601 rec( 18, 4, LockAreaLen ),
10604 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10606 pkt = NCP(0x1D, "Release Physical Record Set", 'file')
10608 rec( 7, 1, LockFlag ),
10611 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10612 # 2222/1E, 30 #Tested and fixed 6-14-02 GM
10613 pkt = NCP(0x1E, "Clear Physical Record", 'file')
10615 rec( 7, 1, Reserved ),
10616 rec( 8, 6, FileHandle ),
10617 rec( 14, 4, LockAreasStartOffset, BE ),
10618 rec( 18, 4, LockAreaLen, BE ),
10621 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10623 pkt = NCP(0x1F, "Clear Physical Record Set", 'file')
10625 rec( 7, 1, LockFlag ),
10628 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10630 pkt = NCP(0x2000, "Open Semaphore", 'file', has_length=0)
10632 rec( 8, 1, InitialSemaphoreValue ),
10633 rec( 9, 1, SemaphoreNameLen ),
10636 rec( 8, 4, SemaphoreHandle, BE ),
10637 rec( 12, 1, SemaphoreOpenCount ),
10639 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10641 pkt = NCP(0x2001, "Examine Semaphore", 'file', has_length=0)
10643 rec( 8, 4, SemaphoreHandle, BE ),
10646 rec( 8, 1, SemaphoreValue ),
10647 rec( 9, 1, SemaphoreOpenCount ),
10649 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10651 pkt = NCP(0x2002, "Wait On Semaphore", 'file', has_length=0)
10653 rec( 8, 4, SemaphoreHandle, BE ),
10654 rec( 12, 2, SemaphoreTimeOut, BE ),
10657 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10659 pkt = NCP(0x2003, "Signal Semaphore", 'file', has_length=0)
10661 rec( 8, 4, SemaphoreHandle, BE ),
10664 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10666 pkt = NCP(0x2004, "Close Semaphore", 'file', has_length=0)
10668 rec( 8, 4, SemaphoreHandle, BE ),
10671 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10673 pkt = NCP(0x21, "Negotiate Buffer Size", 'connection')
10675 rec( 7, 2, BufferSize, BE ),
10678 rec( 8, 2, BufferSize, BE ),
10680 pkt.CompletionCodes([0x0000])
10682 pkt = NCP(0x2200, "TTS Is Available", 'tts', has_length=0)
10685 pkt.CompletionCodes([0x0001, 0xfd03, 0xff12])
10687 pkt = NCP(0x2201, "TTS Begin Transaction", 'tts', has_length=0)
10690 pkt.CompletionCodes([0x0000])
10692 pkt = NCP(0x2202, "TTS End Transaction", 'tts', has_length=0)
10695 rec( 8, 4, TransactionNumber, BE ),
10697 pkt.CompletionCodes([0x0000, 0xff01])
10699 pkt = NCP(0x2203, "TTS Abort Transaction", 'tts', has_length=0)
10702 pkt.CompletionCodes([0x0000, 0xfd03, 0xfe0b, 0xff01])
10704 pkt = NCP(0x2204, "TTS Transaction Status", 'tts', has_length=0)
10706 rec( 8, 4, TransactionNumber, BE ),
10709 pkt.CompletionCodes([0x0000])
10711 pkt = NCP(0x2205, "TTS Get Application Thresholds", 'tts', has_length=0)
10714 rec( 8, 1, LogicalLockThreshold ),
10715 rec( 9, 1, PhysicalLockThreshold ),
10717 pkt.CompletionCodes([0x0000])
10719 pkt = NCP(0x2206, "TTS Set Application Thresholds", 'tts', has_length=0)
10721 rec( 8, 1, LogicalLockThreshold ),
10722 rec( 9, 1, PhysicalLockThreshold ),
10725 pkt.CompletionCodes([0x0000, 0x9600])
10727 pkt = NCP(0x2207, "TTS Get Workstation Thresholds", 'tts', has_length=0)
10729 rec( 8, 1, LogicalLockThreshold ),
10730 rec( 9, 1, PhysicalLockThreshold ),
10733 pkt.CompletionCodes([0x0000])
10735 pkt = NCP(0x2208, "TTS Set Workstation Thresholds", 'tts', has_length=0)
10737 rec( 8, 1, LogicalLockThreshold ),
10738 rec( 9, 1, PhysicalLockThreshold ),
10741 pkt.CompletionCodes([0x0000])
10743 pkt = NCP(0x2209, "TTS Get Transaction Bits", 'tts', has_length=0)
10746 rec( 8, 1, ControlFlags ),
10748 pkt.CompletionCodes([0x0000])
10750 pkt = NCP(0x220A, "TTS Set Transaction Bits", 'tts', has_length=0)
10752 rec( 8, 1, ControlFlags ),
10755 pkt.CompletionCodes([0x0000])
10757 pkt = NCP(0x2301, "AFP Create Directory", 'afp')
10758 pkt.Request((49, 303), [
10759 rec( 10, 1, VolumeNumber ),
10760 rec( 11, 4, BaseDirectoryID, BE ),
10761 rec( 15, 1, Reserved ),
10762 rec( 16, 4, CreatorID ),
10763 rec( 20, 4, Reserved4 ),
10764 rec( 24, 2, FinderAttr ),
10765 rec( 26, 2, HorizLocation ),
10766 rec( 28, 2, VertLocation ),
10767 rec( 30, 2, FileDirWindow ),
10768 rec( 32, 16, Reserved16 ),
10769 rec( 48, (1,255), Path ),
10770 ], info_str=(Path, "AFP Create Directory: %s", ", %s"))
10772 rec( 8, 4, NewDirectoryID, BE ),
10774 pkt.CompletionCodes([0x0000, 0x8301, 0x8400, 0x8800, 0x9300, 0x9600, 0x9804,
10775 0x9900, 0x9c03, 0x9e02, 0xa100, 0xa201, 0xfd00, 0xff18])
10777 pkt = NCP(0x2302, "AFP Create File", 'afp')
10778 pkt.Request((49, 303), [
10779 rec( 10, 1, VolumeNumber ),
10780 rec( 11, 4, BaseDirectoryID, BE ),
10781 rec( 15, 1, DeleteExistingFileFlag ),
10782 rec( 16, 4, CreatorID, BE ),
10783 rec( 20, 4, Reserved4 ),
10784 rec( 24, 2, FinderAttr ),
10785 rec( 26, 2, HorizLocation, BE ),
10786 rec( 28, 2, VertLocation, BE ),
10787 rec( 30, 2, FileDirWindow, BE ),
10788 rec( 32, 16, Reserved16 ),
10789 rec( 48, (1,255), Path ),
10790 ], info_str=(Path, "AFP Create File: %s", ", %s"))
10792 rec( 8, 4, NewDirectoryID, BE ),
10794 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8400, 0x8701, 0x8800,
10795 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9300, 0x9600, 0x9804,
10796 0x9900, 0x9b03, 0x9c03, 0x9e02, 0xa100, 0xa201, 0xfd00,
10799 pkt = NCP(0x2303, "AFP Delete", 'afp')
10800 pkt.Request((16,270), [
10801 rec( 10, 1, VolumeNumber ),
10802 rec( 11, 4, BaseDirectoryID, BE ),
10803 rec( 15, (1,255), Path ),
10804 ], info_str=(Path, "AFP Delete: %s", ", %s"))
10806 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x8a00, 0x8d00, 0x8e00, 0x8f00,
10807 0x9000, 0x9300, 0x9600, 0x9804, 0x9b03, 0x9c03, 0x9e02,
10808 0xa000, 0xa100, 0xa201, 0xfd00, 0xff19])
10810 pkt = NCP(0x2304, "AFP Get Entry ID From Name", 'afp')
10811 pkt.Request((16,270), [
10812 rec( 10, 1, VolumeNumber ),
10813 rec( 11, 4, BaseDirectoryID, BE ),
10814 rec( 15, (1,255), Path ),
10815 ], info_str=(Path, "AFP Get Entry from Name: %s", ", %s"))
10817 rec( 8, 4, TargetEntryID, BE ),
10819 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
10820 0xa100, 0xa201, 0xfd00, 0xff19])
10822 pkt = NCP(0x2305, "AFP Get File Information", 'afp')
10823 pkt.Request((18,272), [
10824 rec( 10, 1, VolumeNumber ),
10825 rec( 11, 4, BaseDirectoryID, BE ),
10826 rec( 15, 2, RequestBitMap, BE ),
10827 rec( 17, (1,255), Path ),
10828 ], info_str=(Path, "AFP Get File Information: %s", ", %s"))
10830 rec( 8, 4, AFPEntryID, BE ),
10831 rec( 12, 4, ParentID, BE ),
10832 rec( 16, 2, AttributesDef16, LE ),
10833 rec( 18, 4, DataForkLen, BE ),
10834 rec( 22, 4, ResourceForkLen, BE ),
10835 rec( 26, 2, TotalOffspring, BE ),
10836 rec( 28, 2, CreationDate, BE ),
10837 rec( 30, 2, LastAccessedDate, BE ),
10838 rec( 32, 2, ModifiedDate, BE ),
10839 rec( 34, 2, ModifiedTime, BE ),
10840 rec( 36, 2, ArchivedDate, BE ),
10841 rec( 38, 2, ArchivedTime, BE ),
10842 rec( 40, 4, CreatorID, BE ),
10843 rec( 44, 4, Reserved4 ),
10844 rec( 48, 2, FinderAttr ),
10845 rec( 50, 2, HorizLocation ),
10846 rec( 52, 2, VertLocation ),
10847 rec( 54, 2, FileDirWindow ),
10848 rec( 56, 16, Reserved16 ),
10849 rec( 72, 32, LongName ),
10850 rec( 104, 4, CreatorID, BE ),
10851 rec( 108, 12, ShortName ),
10852 rec( 120, 1, AccessPrivileges ),
10854 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
10855 0xa100, 0xa201, 0xfd00, 0xff19])
10857 pkt = NCP(0x2306, "AFP Get Entry ID From NetWare Handle", 'afp')
10859 rec( 10, 6, FileHandle ),
10862 rec( 8, 1, VolumeID ),
10863 rec( 9, 4, TargetEntryID, BE ),
10864 rec( 13, 1, ForkIndicator ),
10866 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0xa201])
10868 pkt = NCP(0x2307, "AFP Rename", 'afp')
10869 pkt.Request((21, 529), [
10870 rec( 10, 1, VolumeNumber ),
10871 rec( 11, 4, MacSourceBaseID, BE ),
10872 rec( 15, 4, MacDestinationBaseID, BE ),
10873 rec( 19, (1,255), Path ),
10874 rec( -1, (1,255), NewFileNameLen ),
10875 ], info_str=(Path, "AFP Rename: %s", ", %s"))
10877 pkt.CompletionCodes([0x0000, 0x8301, 0x8401, 0x8800, 0x8b00, 0x8e00,
10878 0x9001, 0x9201, 0x9300, 0x9600, 0x9804, 0x9900,
10879 0x9c03, 0x9e00, 0xa100, 0xa201, 0xfd00, 0xff0a])
10881 pkt = NCP(0x2308, "AFP Open File Fork", 'afp')
10882 pkt.Request((18, 272), [
10883 rec( 10, 1, VolumeNumber ),
10884 rec( 11, 4, MacBaseDirectoryID, BE ),
10885 rec( 15, 1, ForkIndicator ),
10886 rec( 16, 1, AccessMode ),
10887 rec( 17, (1,255), Path ),
10888 ], info_str=(Path, "AFP Open File Fork: %s", ", %s"))
10890 rec( 8, 4, AFPEntryID, BE ),
10891 rec( 12, 4, DataForkLen, BE ),
10892 rec( 16, 6, NetWareAccessHandle ),
10894 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8800, 0x9300,
10895 0x9400, 0x9600, 0x9804, 0x9900, 0x9c03, 0xa100,
10896 0xa201, 0xfd00, 0xff16])
10898 pkt = NCP(0x2309, "AFP Set File Information", 'afp')
10899 pkt.Request((64, 318), [
10900 rec( 10, 1, VolumeNumber ),
10901 rec( 11, 4, MacBaseDirectoryID, BE ),
10902 rec( 15, 2, RequestBitMap, BE ),
10903 rec( 17, 2, MacAttr, BE ),
10904 rec( 19, 2, CreationDate, BE ),
10905 rec( 21, 2, LastAccessedDate, BE ),
10906 rec( 23, 2, ModifiedDate, BE ),
10907 rec( 25, 2, ModifiedTime, BE ),
10908 rec( 27, 2, ArchivedDate, BE ),
10909 rec( 29, 2, ArchivedTime, BE ),
10910 rec( 31, 4, CreatorID, BE ),
10911 rec( 35, 4, Reserved4 ),
10912 rec( 39, 2, FinderAttr ),
10913 rec( 41, 2, HorizLocation ),
10914 rec( 43, 2, VertLocation ),
10915 rec( 45, 2, FileDirWindow ),
10916 rec( 47, 16, Reserved16 ),
10917 rec( 63, (1,255), Path ),
10918 ], info_str=(Path, "AFP Set File Information: %s", ", %s"))
10920 pkt.CompletionCodes([0x0000, 0x0104, 0x8301, 0x8800, 0x9300, 0x9400,
10921 0x9500, 0x9600, 0x9804, 0x9c03, 0xa100, 0xa201,
10924 pkt = NCP(0x230A, "AFP Scan File Information", 'afp')
10925 pkt.Request((26, 280), [
10926 rec( 10, 1, VolumeNumber ),
10927 rec( 11, 4, MacBaseDirectoryID, BE ),
10928 rec( 15, 4, MacLastSeenID, BE ),
10929 rec( 19, 2, DesiredResponseCount, BE ),
10930 rec( 21, 2, SearchBitMap, BE ),
10931 rec( 23, 2, RequestBitMap, BE ),
10932 rec( 25, (1,255), Path ),
10933 ], info_str=(Path, "AFP Scan File Information: %s", ", %s"))
10935 rec( 8, 2, ActualResponseCount, BE, var="x" ),
10936 rec( 10, 113, AFP10Struct, repeat="x" ),
10938 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804,
10939 0x9c03, 0xa100, 0xa201, 0xfd00, 0xff16])
10941 pkt = NCP(0x230B, "AFP Alloc Temporary Directory Handle", 'afp')
10942 pkt.Request((16,270), [
10943 rec( 10, 1, VolumeNumber ),
10944 rec( 11, 4, MacBaseDirectoryID, BE ),
10945 rec( 15, (1,255), Path ),
10946 ], info_str=(Path, "AFP Allocate Temporary Directory Handle: %s", ", %s"))
10948 rec( 8, 1, DirHandle ),
10949 rec( 9, 1, AccessRightsMask ),
10951 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600,
10952 0x9804, 0x9b03, 0x9c03, 0x9d00, 0xa100,
10953 0xa201, 0xfd00, 0xff00])
10955 pkt = NCP(0x230C, "AFP Get Entry ID From Path Name", 'afp')
10956 pkt.Request((12,266), [
10957 rec( 10, 1, DirHandle ),
10958 rec( 11, (1,255), Path ),
10959 ], info_str=(Path, "AFP Get Entry ID from Path Name: %s", ", %s"))
10961 rec( 8, 4, AFPEntryID, BE ),
10963 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600,
10964 0x9804, 0x9b03, 0x9c03, 0xa100, 0xa201,
10967 pkt = NCP(0x230D, "AFP 2.0 Create Directory", 'afp')
10968 pkt.Request((55,309), [
10969 rec( 10, 1, VolumeNumber ),
10970 rec( 11, 4, BaseDirectoryID, BE ),
10971 rec( 15, 1, Reserved ),
10972 rec( 16, 4, CreatorID, BE ),
10973 rec( 20, 4, Reserved4 ),
10974 rec( 24, 2, FinderAttr ),
10975 rec( 26, 2, HorizLocation ),
10976 rec( 28, 2, VertLocation ),
10977 rec( 30, 2, FileDirWindow ),
10978 rec( 32, 16, Reserved16 ),
10979 rec( 48, 6, ProDOSInfo ),
10980 rec( 54, (1,255), Path ),
10981 ], info_str=(Path, "AFP 2.0 Create Directory: %s", ", %s"))
10983 rec( 8, 4, NewDirectoryID, BE ),
10985 pkt.CompletionCodes([0x0000, 0x8301, 0x8400, 0x8800, 0x9300,
10986 0x9600, 0x9804, 0x9900, 0x9c03, 0x9e00,
10987 0xa100, 0xa201, 0xfd00, 0xff00])
10989 pkt = NCP(0x230E, "AFP 2.0 Create File", 'afp')
10990 pkt.Request((55,309), [
10991 rec( 10, 1, VolumeNumber ),
10992 rec( 11, 4, BaseDirectoryID, BE ),
10993 rec( 15, 1, DeleteExistingFileFlag ),
10994 rec( 16, 4, CreatorID, BE ),
10995 rec( 20, 4, Reserved4 ),
10996 rec( 24, 2, FinderAttr ),
10997 rec( 26, 2, HorizLocation ),
10998 rec( 28, 2, VertLocation ),
10999 rec( 30, 2, FileDirWindow ),
11000 rec( 32, 16, Reserved16 ),
11001 rec( 48, 6, ProDOSInfo ),
11002 rec( 54, (1,255), Path ),
11003 ], info_str=(Path, "AFP 2.0 Create File: %s", ", %s"))
11005 rec( 8, 4, NewDirectoryID, BE ),
11007 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8400,
11008 0x8701, 0x8800, 0x8a00, 0x8d00, 0x8e00,
11009 0x8f00, 0x9001, 0x9300, 0x9600, 0x9804,
11010 0x9900, 0x9b03, 0x9c03, 0x9e00, 0xa100,
11011 0xa201, 0xfd00, 0xff00])
11013 pkt = NCP(0x230F, "AFP 2.0 Get File Or Directory Information", 'afp')
11014 pkt.Request((18,272), [
11015 rec( 10, 1, VolumeNumber ),
11016 rec( 11, 4, BaseDirectoryID, BE ),
11017 rec( 15, 2, RequestBitMap, BE ),
11018 rec( 17, (1,255), Path ),
11019 ], info_str=(Path, "AFP 2.0 Get Information: %s", ", %s"))
11021 rec( 8, 4, AFPEntryID, BE ),
11022 rec( 12, 4, ParentID, BE ),
11023 rec( 16, 2, AttributesDef16 ),
11024 rec( 18, 4, DataForkLen, BE ),
11025 rec( 22, 4, ResourceForkLen, BE ),
11026 rec( 26, 2, TotalOffspring, BE ),
11027 rec( 28, 2, CreationDate, BE ),
11028 rec( 30, 2, LastAccessedDate, BE ),
11029 rec( 32, 2, ModifiedDate, BE ),
11030 rec( 34, 2, ModifiedTime, BE ),
11031 rec( 36, 2, ArchivedDate, BE ),
11032 rec( 38, 2, ArchivedTime, BE ),
11033 rec( 40, 4, CreatorID, BE ),
11034 rec( 44, 4, Reserved4 ),
11035 rec( 48, 2, FinderAttr ),
11036 rec( 50, 2, HorizLocation ),
11037 rec( 52, 2, VertLocation ),
11038 rec( 54, 2, FileDirWindow ),
11039 rec( 56, 16, Reserved16 ),
11040 rec( 72, 32, LongName ),
11041 rec( 104, 4, CreatorID, BE ),
11042 rec( 108, 12, ShortName ),
11043 rec( 120, 1, AccessPrivileges ),
11044 rec( 121, 1, Reserved ),
11045 rec( 122, 6, ProDOSInfo ),
11047 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
11048 0xa100, 0xa201, 0xfd00, 0xff19])
11050 pkt = NCP(0x2310, "AFP 2.0 Set File Information", 'afp')
11051 pkt.Request((70, 324), [
11052 rec( 10, 1, VolumeNumber ),
11053 rec( 11, 4, MacBaseDirectoryID, BE ),
11054 rec( 15, 2, RequestBitMap, BE ),
11055 rec( 17, 2, AttributesDef16 ),
11056 rec( 19, 2, CreationDate, BE ),
11057 rec( 21, 2, LastAccessedDate, BE ),
11058 rec( 23, 2, ModifiedDate, BE ),
11059 rec( 25, 2, ModifiedTime, BE ),
11060 rec( 27, 2, ArchivedDate, BE ),
11061 rec( 29, 2, ArchivedTime, BE ),
11062 rec( 31, 4, CreatorID, BE ),
11063 rec( 35, 4, Reserved4 ),
11064 rec( 39, 2, FinderAttr ),
11065 rec( 41, 2, HorizLocation ),
11066 rec( 43, 2, VertLocation ),
11067 rec( 45, 2, FileDirWindow ),
11068 rec( 47, 16, Reserved16 ),
11069 rec( 63, 6, ProDOSInfo ),
11070 rec( 69, (1,255), Path ),
11071 ], info_str=(Path, "AFP 2.0 Set File Information: %s", ", %s"))
11073 pkt.CompletionCodes([0x0000, 0x0104, 0x8301, 0x8800, 0x9300, 0x9400,
11074 0x9500, 0x9600, 0x9804, 0x9c03, 0xa100, 0xa201,
11077 pkt = NCP(0x2311, "AFP 2.0 Scan File Information", 'afp')
11078 pkt.Request((26, 280), [
11079 rec( 10, 1, VolumeNumber ),
11080 rec( 11, 4, MacBaseDirectoryID, BE ),
11081 rec( 15, 4, MacLastSeenID, BE ),
11082 rec( 19, 2, DesiredResponseCount, BE ),
11083 rec( 21, 2, SearchBitMap, BE ),
11084 rec( 23, 2, RequestBitMap, BE ),
11085 rec( 25, (1,255), Path ),
11086 ], info_str=(Path, "AFP 2.0 Scan File Information: %s", ", %s"))
11088 rec( 8, 2, ActualResponseCount, var="x" ),
11089 rec( 10, 4, AFP20Struct, repeat="x" ),
11091 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804,
11092 0x9c03, 0xa100, 0xa201, 0xfd00, 0xff16])
11094 pkt = NCP(0x2312, "AFP Get DOS Name From Entry ID", 'afp')
11096 rec( 10, 1, VolumeNumber ),
11097 rec( 11, 4, AFPEntryID, BE ),
11099 pkt.Reply((9,263), [
11100 rec( 8, (1,255), Path ),
11102 pkt.CompletionCodes([0x0000, 0x8900, 0x9600, 0xbf00])
11104 pkt = NCP(0x2313, "AFP Get Macintosh Info On Deleted File", 'afp')
11106 rec( 10, 1, VolumeNumber ),
11107 rec( 11, 4, DirectoryNumber, BE ),
11109 pkt.Reply((51,305), [
11110 rec( 8, 4, CreatorID, BE ),
11111 rec( 12, 4, Reserved4 ),
11112 rec( 16, 2, FinderAttr ),
11113 rec( 18, 2, HorizLocation ),
11114 rec( 20, 2, VertLocation ),
11115 rec( 22, 2, FileDirWindow ),
11116 rec( 24, 16, Reserved16 ),
11117 rec( 40, 6, ProDOSInfo ),
11118 rec( 46, 4, ResourceForkSize, BE ),
11119 rec( 50, (1,255), FileName ),
11121 pkt.CompletionCodes([0x0000, 0x9c03, 0xbf00])
11123 pkt = NCP(0x2400, "Get NCP Extension Information", 'fileserver')
11125 rec( 10, 4, NCPextensionNumber, LE ),
11127 pkt.Reply((16,270), [
11128 rec( 8, 4, NCPextensionNumber ),
11129 rec( 12, 1, NCPextensionMajorVersion ),
11130 rec( 13, 1, NCPextensionMinorVersion ),
11131 rec( 14, 1, NCPextensionRevisionNumber ),
11132 rec( 15, (1, 255), NCPextensionName ),
11134 pkt.CompletionCodes([0x0000, 0xfe00])
11136 pkt = NCP(0x2401, "Get NCP Extension Maximum Data Size", 'fileserver')
11139 rec( 8, 2, NCPdataSize ),
11141 pkt.CompletionCodes([0x0000, 0xfe00])
11143 pkt = NCP(0x2402, "Get NCP Extension Information by Name", 'fileserver')
11144 pkt.Request((11, 265), [
11145 rec( 10, (1,255), NCPextensionName ),
11146 ], info_str=(NCPextensionName, "Get NCP Extension Information by Name: %s", ", %s"))
11147 pkt.Reply((16,270), [
11148 rec( 8, 4, NCPextensionNumber ),
11149 rec( 12, 1, NCPextensionMajorVersion ),
11150 rec( 13, 1, NCPextensionMinorVersion ),
11151 rec( 14, 1, NCPextensionRevisionNumber ),
11152 rec( 15, (1, 255), NCPextensionName ),
11154 pkt.CompletionCodes([0x0000, 0xfe00, 0xff20])
11156 pkt = NCP(0x2403, "Get Number of Registered NCP Extensions", 'fileserver')
11159 rec( 8, 4, NumberOfNCPExtensions ),
11161 pkt.CompletionCodes([0x0000, 0xfe00])
11163 pkt = NCP(0x2404, "Get NCP Extension Registered Verbs List", 'fileserver')
11165 rec( 10, 4, StartingNumber ),
11168 rec( 8, 4, ReturnedListCount, var="x" ),
11169 rec( 12, 4, nextStartingNumber ),
11170 rec( 16, 4, NCPExtensionNumbers, repeat="x" ),
11172 pkt.CompletionCodes([0x0000, 0xfe00])
11174 pkt = NCP(0x2405, "Return NCP Extension Information", 'fileserver')
11176 rec( 10, 4, NCPextensionNumber ),
11178 pkt.Reply((16,270), [
11179 rec( 8, 4, NCPextensionNumber ),
11180 rec( 12, 1, NCPextensionMajorVersion ),
11181 rec( 13, 1, NCPextensionMinorVersion ),
11182 rec( 14, 1, NCPextensionRevisionNumber ),
11183 rec( 15, (1, 255), NCPextensionName ),
11185 pkt.CompletionCodes([0x0000, 0xfe00])
11187 pkt = NCP(0x2406, "Return NCP Extension Maximum Data Size", 'fileserver')
11190 rec( 8, 4, NCPdataSize ),
11192 pkt.CompletionCodes([0x0000, 0xfe00])
11194 pkt = NCP(0x25, "Execute NCP Extension", 'fileserver')
11196 rec( 7, 4, NCPextensionNumber ),
11197 # The following value is Unicode
11198 #rec[ 13, (1,255), RequestData ],
11201 # The following value is Unicode
11202 #[ 8, (1, 255), ReplyBuffer ],
11203 pkt.CompletionCodes([0x0000, 0xee00, 0xfe00])
11205 pkt = NCP(0x3B, "Commit File", 'file', has_length=0 )
11207 rec( 7, 1, Reserved ),
11208 rec( 8, 6, FileHandle ),
11211 pkt.CompletionCodes([0x0000, 0x8800, 0x9804, 0xff00])
11213 pkt = NCP(0x3E, "File Search Initialize", 'file', has_length=0 )
11214 pkt.Request((9, 263), [
11215 rec( 7, 1, DirHandle ),
11216 rec( 8, (1,255), Path ),
11217 ], info_str=(Path, "Initialize File Search: %s", ", %s"))
11219 rec( 8, 1, VolumeNumber ),
11220 rec( 9, 2, DirectoryID, BE ),
11221 rec( 11, 2, SequenceNumber, BE ),
11222 rec( 13, 1, AccessRightsMask ),
11224 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100,
11227 pkt = NCP(0x3F, "File Search Continue", 'file', has_length=0 )
11228 pkt.Request((14, 268), [
11229 rec( 7, 1, VolumeNumber ),
11230 rec( 8, 2, DirectoryID, BE ),
11231 rec( 10, 2, SequenceNumber, BE ),
11232 rec( 12, 1, SearchAttributes ),
11233 rec( 13, (1,255), Path ),
11234 ], info_str=(Path, "File Search Continue: %s", ", %s"))
11235 pkt.Reply( NO_LENGTH_CHECK, [
11237 # XXX - don't show this if we got back a non-zero
11238 # completion code? For example, 255 means "No
11239 # matching files or directories were found", so
11240 # presumably it can't show you a matching file or
11241 # directory instance - it appears to just leave crap
11244 srec( DirectoryInstance, req_cond="ncp.sattr_sub==TRUE"),
11245 srec( FileInstance, req_cond="ncp.sattr_sub!=TRUE"),
11247 pkt.ReqCondSizeVariable()
11248 pkt.CompletionCodes([0x0000, 0xff16])
11250 pkt = NCP(0x40, "Search for a File", 'file')
11251 pkt.Request((12, 266), [
11252 rec( 7, 2, SequenceNumber, BE ),
11253 rec( 9, 1, DirHandle ),
11254 rec( 10, 1, SearchAttributes ),
11255 rec( 11, (1,255), FileName ),
11256 ], info_str=(FileName, "Search for File: %s", ", %s"))
11258 rec( 8, 2, SequenceNumber, BE ),
11259 rec( 10, 2, Reserved2 ),
11260 rec( 12, 14, FileName14 ),
11261 rec( 26, 1, AttributesDef ),
11262 rec( 27, 1, FileExecuteType ),
11263 rec( 28, 4, FileSize ),
11264 rec( 32, 2, CreationDate, BE ),
11265 rec( 34, 2, LastAccessedDate, BE ),
11266 rec( 36, 2, ModifiedDate, BE ),
11267 rec( 38, 2, ModifiedTime, BE ),
11269 pkt.CompletionCodes([0x0000, 0x8900, 0x9600, 0x9804, 0x9b03,
11270 0x9c03, 0xa100, 0xfd00, 0xff16])
11272 pkt = NCP(0x41, "Open File", 'file')
11273 pkt.Request((10, 264), [
11274 rec( 7, 1, DirHandle ),
11275 rec( 8, 1, SearchAttributes ),
11276 rec( 9, (1,255), FileName ),
11277 ], info_str=(FileName, "Open File: %s", ", %s"))
11279 rec( 8, 6, FileHandle ),
11280 rec( 14, 2, Reserved2 ),
11281 rec( 16, 14, FileName14 ),
11282 rec( 30, 1, AttributesDef ),
11283 rec( 31, 1, FileExecuteType ),
11284 rec( 32, 4, FileSize, BE ),
11285 rec( 36, 2, CreationDate, BE ),
11286 rec( 38, 2, LastAccessedDate, BE ),
11287 rec( 40, 2, ModifiedDate, BE ),
11288 rec( 42, 2, ModifiedTime, BE ),
11290 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8200, 0x9400,
11291 0x9600, 0x9804, 0x9c03, 0xa100, 0xfd00,
11294 pkt = NCP(0x42, "Close File", 'file')
11296 rec( 7, 1, Reserved ),
11297 rec( 8, 6, FileHandle ),
11300 pkt.CompletionCodes([0x0000, 0x8800, 0xff1a])
11302 pkt = NCP(0x43, "Create File", 'file')
11303 pkt.Request((10, 264), [
11304 rec( 7, 1, DirHandle ),
11305 rec( 8, 1, AttributesDef ),
11306 rec( 9, (1,255), FileName ),
11307 ], info_str=(FileName, "Create File: %s", ", %s"))
11309 rec( 8, 6, FileHandle ),
11310 rec( 14, 2, Reserved2 ),
11311 rec( 16, 14, FileName14 ),
11312 rec( 30, 1, AttributesDef ),
11313 rec( 31, 1, FileExecuteType ),
11314 rec( 32, 4, FileSize, BE ),
11315 rec( 36, 2, CreationDate, BE ),
11316 rec( 38, 2, LastAccessedDate, BE ),
11317 rec( 40, 2, ModifiedDate, BE ),
11318 rec( 42, 2, ModifiedTime, BE ),
11320 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11321 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11322 0x9804, 0x9900, 0x9b03, 0x9c03, 0xfd00,
11325 pkt = NCP(0x44, "Erase File", 'file')
11326 pkt.Request((10, 264), [
11327 rec( 7, 1, DirHandle ),
11328 rec( 8, 1, SearchAttributes ),
11329 rec( 9, (1,255), FileName ),
11330 ], info_str=(FileName, "Erase File: %s", ", %s"))
11332 pkt.CompletionCodes([0x0000, 0x8a00, 0x8d00, 0x8e00, 0x8f00,
11333 0x9001, 0x9600, 0x9804, 0x9b03, 0x9c03,
11334 0xa100, 0xfd00, 0xff00])
11336 pkt = NCP(0x45, "Rename File", 'file')
11337 pkt.Request((12, 520), [
11338 rec( 7, 1, DirHandle ),
11339 rec( 8, 1, SearchAttributes ),
11340 rec( 9, (1,255), FileName ),
11341 rec( -1, 1, TargetDirHandle ),
11342 rec( -1, (1, 255), NewFileNameLen ),
11343 ], info_str=(FileName, "Rename File: %s", ", %s"))
11345 pkt.CompletionCodes([0x0000, 0x8701, 0x8b00, 0x8d00, 0x8e00,
11346 0x8f00, 0x9001, 0x9101, 0x9201, 0x9600,
11347 0x9804, 0x9a00, 0x9b03, 0x9c03, 0xa100,
11350 pkt = NCP(0x46, "Set File Attributes", 'file')
11351 pkt.Request((11, 265), [
11352 rec( 7, 1, AttributesDef ),
11353 rec( 8, 1, DirHandle ),
11354 rec( 9, 1, SearchAttributes ),
11355 rec( 10, (1,255), FileName ),
11356 ], info_str=(FileName, "Set File Attributes: %s", ", %s"))
11358 pkt.CompletionCodes([0x0000, 0x8c00, 0x8d00, 0x8e00, 0x9600,
11359 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfd00,
11362 pkt = NCP(0x47, "Get Current Size of File", 'file')
11364 rec( 7, 6, FileHandle ),
11367 rec( 8, 4, FileSize, BE ),
11369 pkt.CompletionCodes([0x0000, 0x8800])
11371 pkt = NCP(0x48, "Read From A File", 'file')
11373 rec( 7, 1, Reserved ),
11374 rec( 8, 6, FileHandle ),
11375 rec( 14, 4, FileOffset, BE ),
11376 rec( 18, 2, MaxBytes, BE ),
11379 rec( 8, 2, NumBytes, BE ),
11381 pkt.CompletionCodes([0x0000, 0x8300, 0x8800, 0x9300, 0xff00])
11383 pkt = NCP(0x49, "Write to a File", 'file')
11385 rec( 7, 1, Reserved ),
11386 rec( 8, 6, FileHandle ),
11387 rec( 14, 4, FileOffset, BE ),
11388 rec( 18, 2, MaxBytes, BE ),
11391 pkt.CompletionCodes([0x0000, 0x0104, 0x8300, 0x8800, 0x9400, 0x9500, 0xa201, 0xff1b])
11393 pkt = NCP(0x4A, "Copy from One File to Another", 'file')
11395 rec( 7, 1, Reserved ),
11396 rec( 8, 6, FileHandle ),
11397 rec( 14, 6, TargetFileHandle ),
11398 rec( 20, 4, FileOffset, BE ),
11399 rec( 24, 4, TargetFileOffset, BE ),
11400 rec( 28, 2, BytesToCopy, BE ),
11403 rec( 8, 4, BytesActuallyTransferred, BE ),
11405 pkt.CompletionCodes([0x0000, 0x0104, 0x8300, 0x8800, 0x9300, 0x9400,
11406 0x9500, 0x9600, 0xa201, 0xff1b])
11408 pkt = NCP(0x4B, "Set File Time Date Stamp", 'file')
11410 rec( 7, 1, Reserved ),
11411 rec( 8, 6, FileHandle ),
11412 rec( 14, 2, FileTime, BE ),
11413 rec( 16, 2, FileDate, BE ),
11416 pkt.CompletionCodes([0x0000, 0x8800, 0x9600])
11418 pkt = NCP(0x4C, "Open File", 'file')
11419 pkt.Request((11, 265), [
11420 rec( 7, 1, DirHandle ),
11421 rec( 8, 1, SearchAttributes ),
11422 rec( 9, 1, AccessRightsMask ),
11423 rec( 10, (1,255), FileName ),
11424 ], info_str=(FileName, "Open File: %s", ", %s"))
11426 rec( 8, 6, FileHandle ),
11427 rec( 14, 2, Reserved2 ),
11428 rec( 16, 14, FileName14 ),
11429 rec( 30, 1, AttributesDef ),
11430 rec( 31, 1, FileExecuteType ),
11431 rec( 32, 4, FileSize, BE ),
11432 rec( 36, 2, CreationDate, BE ),
11433 rec( 38, 2, LastAccessedDate, BE ),
11434 rec( 40, 2, ModifiedDate, BE ),
11435 rec( 42, 2, ModifiedTime, BE ),
11437 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8200, 0x9400,
11438 0x9600, 0x9804, 0x9c03, 0xa100, 0xfd00,
11441 pkt = NCP(0x4D, "Create File", 'file')
11442 pkt.Request((10, 264), [
11443 rec( 7, 1, DirHandle ),
11444 rec( 8, 1, AttributesDef ),
11445 rec( 9, (1,255), FileName ),
11446 ], info_str=(FileName, "Create File: %s", ", %s"))
11448 rec( 8, 6, FileHandle ),
11449 rec( 14, 2, Reserved2 ),
11450 rec( 16, 14, FileName14 ),
11451 rec( 30, 1, AttributesDef ),
11452 rec( 31, 1, FileExecuteType ),
11453 rec( 32, 4, FileSize, BE ),
11454 rec( 36, 2, CreationDate, BE ),
11455 rec( 38, 2, LastAccessedDate, BE ),
11456 rec( 40, 2, ModifiedDate, BE ),
11457 rec( 42, 2, ModifiedTime, BE ),
11459 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11460 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11461 0x9804, 0x9900, 0x9b03, 0x9c03, 0xfd00,
11464 pkt = NCP(0x4F, "Set File Extended Attributes", 'file')
11465 pkt.Request((11, 265), [
11466 rec( 7, 1, AttributesDef ),
11467 rec( 8, 1, DirHandle ),
11468 rec( 9, 1, AccessRightsMask ),
11469 rec( 10, (1,255), FileName ),
11470 ], info_str=(FileName, "Set File Extended Attributes: %s", ", %s"))
11472 pkt.CompletionCodes([0x0000, 0x8c00, 0x8d00, 0x8e00, 0x9600,
11473 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfd00,
11476 pkt = NCP(0x54, "Open/Create File", 'file')
11477 pkt.Request((12, 266), [
11478 rec( 7, 1, DirHandle ),
11479 rec( 8, 1, AttributesDef ),
11480 rec( 9, 1, AccessRightsMask ),
11481 rec( 10, 1, ActionFlag ),
11482 rec( 11, (1,255), FileName ),
11483 ], info_str=(FileName, "Open/Create File: %s", ", %s"))
11485 rec( 8, 6, FileHandle ),
11486 rec( 14, 2, Reserved2 ),
11487 rec( 16, 14, FileName14 ),
11488 rec( 30, 1, AttributesDef ),
11489 rec( 31, 1, FileExecuteType ),
11490 rec( 32, 4, FileSize, BE ),
11491 rec( 36, 2, CreationDate, BE ),
11492 rec( 38, 2, LastAccessedDate, BE ),
11493 rec( 40, 2, ModifiedDate, BE ),
11494 rec( 42, 2, ModifiedTime, BE ),
11496 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11497 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11498 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
11500 pkt = NCP(0x55, "Get Sparse File Data Block Bit Map", 'file')
11502 rec( 7, 6, FileHandle ),
11503 rec( 13, 4, FileOffset ),
11506 rec( 8, 4, AllocationBlockSize ),
11507 rec( 12, 4, Reserved4 ),
11508 rec( 16, 512, BitMap ),
11510 pkt.CompletionCodes([0x0000, 0x8800])
11512 pkt = NCP(0x5601, "Close Extended Attribute Handle", 'file', has_length=0 )
11514 rec( 8, 2, Reserved2 ),
11515 rec( 10, 4, EAHandle ),
11518 pkt.CompletionCodes([0x0000, 0xcf00, 0xd301])
11520 pkt = NCP(0x5602, "Write Extended Attribute", 'file', has_length=0 )
11521 pkt.Request((35,97), [
11522 rec( 8, 2, EAFlags ),
11523 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11524 rec( 14, 4, ReservedOrDirectoryNumber ),
11525 rec( 18, 4, TtlWriteDataSize ),
11526 rec( 22, 4, FileOffset ),
11527 rec( 26, 4, EAAccessFlag ),
11528 rec( 30, 2, EAValueLength, var='x' ),
11529 rec( 32, (2,64), EAKey ),
11530 rec( -1, 1, EAValueRep, repeat='x' ),
11531 ], info_str=(EAKey, "Write Extended Attribute: %s", ", %s"))
11533 rec( 8, 4, EAErrorCodes ),
11534 rec( 12, 4, EABytesWritten ),
11535 rec( 16, 4, NewEAHandle ),
11537 pkt.CompletionCodes([0x0000, 0xc800, 0xc900, 0xcb00, 0xce00, 0xcf00, 0xd101,
11538 0xd203, 0xd301, 0xd402])
11540 pkt = NCP(0x5603, "Read Extended Attribute", 'file', has_length=0 )
11541 pkt.Request((28,538), [
11542 rec( 8, 2, EAFlags ),
11543 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11544 rec( 14, 4, ReservedOrDirectoryNumber ),
11545 rec( 18, 4, FileOffset ),
11546 rec( 22, 4, InspectSize ),
11547 rec( 26, (2,512), EAKey ),
11548 ], info_str=(EAKey, "Read Extended Attribute: %s", ", %s"))
11549 pkt.Reply((26,536), [
11550 rec( 8, 4, EAErrorCodes ),
11551 rec( 12, 4, TtlValuesLength ),
11552 rec( 16, 4, NewEAHandle ),
11553 rec( 20, 4, EAAccessFlag ),
11554 rec( 24, (2,512), EAValue ),
11556 pkt.CompletionCodes([0x0000, 0xc900, 0xce00, 0xcf00, 0xd101,
11559 pkt = NCP(0x5604, "Enumerate Extended Attribute", 'file', has_length=0 )
11560 pkt.Request((26,536), [
11561 rec( 8, 2, EAFlags ),
11562 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11563 rec( 14, 4, ReservedOrDirectoryNumber ),
11564 rec( 18, 4, InspectSize ),
11565 rec( 22, 2, SequenceNumber ),
11566 rec( 24, (2,512), EAKey ),
11567 ], info_str=(EAKey, "Enumerate Extended Attribute: %s", ", %s"))
11569 rec( 8, 4, EAErrorCodes ),
11570 rec( 12, 4, TtlEAs ),
11571 rec( 16, 4, TtlEAsDataSize ),
11572 rec( 20, 4, TtlEAsKeySize ),
11573 rec( 24, 4, NewEAHandle ),
11575 pkt.CompletionCodes([0x0000, 0x8800, 0xc900, 0xce00, 0xcf00, 0xd101,
11578 pkt = NCP(0x5605, "Duplicate Extended Attributes", 'file', has_length=0 )
11580 rec( 8, 2, EAFlags ),
11581 rec( 10, 2, DstEAFlags ),
11582 rec( 12, 4, EAHandleOrNetWareHandleOrVolume ),
11583 rec( 16, 4, ReservedOrDirectoryNumber ),
11584 rec( 20, 4, EAHandleOrNetWareHandleOrVolume ),
11585 rec( 24, 4, ReservedOrDirectoryNumber ),
11588 rec( 8, 4, EADuplicateCount ),
11589 rec( 12, 4, EADataSizeDuplicated ),
11590 rec( 16, 4, EAKeySizeDuplicated ),
11592 pkt.CompletionCodes([0x0000, 0xd101])
11594 pkt = NCP(0x5701, "Open/Create File or Subdirectory", 'file', has_length=0)
11595 pkt.Request((30, 284), [
11596 rec( 8, 1, NameSpace ),
11597 rec( 9, 1, OpenCreateMode ),
11598 rec( 10, 2, SearchAttributesLow ),
11599 rec( 12, 2, ReturnInfoMask ),
11600 rec( 14, 2, ExtendedInfo ),
11601 rec( 16, 4, AttributesDef32 ),
11602 rec( 20, 2, DesiredAccessRights ),
11603 rec( 22, 1, VolumeNumber ),
11604 rec( 23, 4, DirectoryBase ),
11605 rec( 27, 1, HandleFlag ),
11606 rec( 28, 1, PathCount, var="x" ),
11607 rec( 29, (1,255), Path, repeat="x" ),
11608 ], info_str=(Path, "Open or Create: %s", "/%s"))
11609 pkt.Reply( NO_LENGTH_CHECK, [
11610 rec( 8, 4, FileHandle ),
11611 rec( 12, 1, OpenCreateAction ),
11612 rec( 13, 1, Reserved ),
11613 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11614 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11615 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11616 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11617 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11618 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11619 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11620 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11621 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11622 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11623 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11624 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11625 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11626 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11627 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11628 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11629 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11630 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11631 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11632 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
11633 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
11634 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
11635 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
11636 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
11637 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
11638 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
11639 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
11640 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
11641 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
11642 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
11643 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
11644 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
11645 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
11646 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
11647 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
11648 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
11649 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
11650 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
11651 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
11652 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
11653 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
11654 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
11655 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
11656 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
11657 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
11658 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
11659 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
11661 pkt.ReqCondSizeVariable()
11662 pkt.CompletionCodes([0x0000, 0x8001, 0x8101, 0x8401, 0x8501,
11663 0x8701, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
11664 0x9804, 0x9b03, 0x9c03, 0xa500, 0xbf00, 0xfd00, 0xff16])
11666 pkt = NCP(0x5702, "Initialize Search", 'file', has_length=0)
11667 pkt.Request( (18,272), [
11668 rec( 8, 1, NameSpace ),
11669 rec( 9, 1, Reserved ),
11670 rec( 10, 1, VolumeNumber ),
11671 rec( 11, 4, DirectoryBase ),
11672 rec( 15, 1, HandleFlag ),
11673 rec( 16, 1, PathCount, var="x" ),
11674 rec( 17, (1,255), Path, repeat="x" ),
11675 ], info_str=(Path, "Set Search Pointer to: %s", "/%s"))
11677 rec( 8, 1, VolumeNumber ),
11678 rec( 9, 4, DirectoryNumber ),
11679 rec( 13, 4, DirectoryEntryNumber ),
11681 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11682 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11683 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11685 pkt = NCP(0x5703, "Search for File or Subdirectory", 'file', has_length=0)
11686 pkt.Request((26, 280), [
11687 rec( 8, 1, NameSpace ),
11688 rec( 9, 1, DataStream ),
11689 rec( 10, 2, SearchAttributesLow ),
11690 rec( 12, 2, ReturnInfoMask ),
11691 rec( 14, 2, ExtendedInfo ),
11692 rec( 16, 9, SearchSequence ),
11693 rec( 25, (1,255), SearchPattern ),
11694 ], info_str=(SearchPattern, "Search for: %s", "/%s"))
11695 pkt.Reply( NO_LENGTH_CHECK, [
11696 rec( 8, 9, SearchSequence ),
11697 rec( 17, 1, Reserved ),
11698 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11699 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11700 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11701 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11702 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11703 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11704 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11705 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11706 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11707 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11708 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11709 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11710 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11711 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11712 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11713 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11714 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11715 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11716 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11717 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
11718 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
11719 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
11720 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
11721 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
11722 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
11723 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
11724 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
11725 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
11726 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
11727 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
11728 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
11729 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
11730 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
11731 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
11732 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
11733 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
11734 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
11735 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
11736 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
11737 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
11738 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
11739 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
11740 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
11741 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
11742 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
11743 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
11744 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
11746 pkt.ReqCondSizeVariable()
11747 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11748 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11749 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11751 pkt = NCP(0x5704, "Rename Or Move a File or Subdirectory", 'file', has_length=0)
11752 pkt.Request((28, 536), [
11753 rec( 8, 1, NameSpace ),
11754 rec( 9, 1, RenameFlag ),
11755 rec( 10, 2, SearchAttributesLow ),
11756 rec( 12, 1, VolumeNumber ),
11757 rec( 13, 4, DirectoryBase ),
11758 rec( 17, 1, HandleFlag ),
11759 rec( 18, 1, PathCount, var="x" ),
11760 rec( 19, 1, VolumeNumber ),
11761 rec( 20, 4, DirectoryBase ),
11762 rec( 24, 1, HandleFlag ),
11763 rec( 25, 1, PathCount, var="y" ),
11764 rec( 26, (1, 255), Path, repeat="x" ),
11765 rec( -1, (1,255), Path, repeat="y" ),
11766 ], info_str=(Path, "Rename or Move: %s", "/%s"))
11768 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11769 0x8701, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9200, 0x9600,
11770 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11772 pkt = NCP(0x5705, "Scan File or Subdirectory for Trustees", 'file', has_length=0)
11773 pkt.Request((24, 278), [
11774 rec( 8, 1, NameSpace ),
11775 rec( 9, 1, Reserved ),
11776 rec( 10, 2, SearchAttributesLow ),
11777 rec( 12, 4, SequenceNumber ),
11778 rec( 16, 1, VolumeNumber ),
11779 rec( 17, 4, DirectoryBase ),
11780 rec( 21, 1, HandleFlag ),
11781 rec( 22, 1, PathCount, var="x" ),
11782 rec( 23, (1, 255), Path, repeat="x" ),
11783 ], info_str=(Path, "Scan Trustees for: %s", "/%s"))
11785 rec( 8, 4, SequenceNumber ),
11786 rec( 12, 2, ObjectIDCount, var="x" ),
11787 rec( 14, 6, TrusteeStruct, repeat="x" ),
11789 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11790 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11791 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11793 pkt = NCP(0x5706, "Obtain File or SubDirectory Information", 'file', has_length=0)
11794 pkt.Request((24,278), [
11795 rec( 10, 1, SrcNameSpace ),
11796 rec( 11, 1, DestNameSpace ),
11797 rec( 12, 2, SearchAttributesLow ),
11798 rec( 14, 2, ReturnInfoMask, LE ),
11799 rec( 16, 2, ExtendedInfo ),
11800 rec( 18, 1, VolumeNumber ),
11801 rec( 19, 4, DirectoryBase ),
11802 rec( 23, 1, HandleFlag ),
11803 rec( 24, 1, PathCount, var="x" ),
11804 rec( 25, (1,255), Path, repeat="x",),
11805 ], info_str=(Path, "Obtain Info for: %s", "/%s"))
11806 pkt.Reply(NO_LENGTH_CHECK, [
11807 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11808 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11809 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11810 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11811 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11812 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11813 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11814 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11815 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11816 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11817 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11818 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11819 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11820 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11821 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11822 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11823 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11824 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11825 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11826 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
11827 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
11828 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
11829 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
11830 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
11831 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
11832 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
11833 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
11834 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
11835 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
11836 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
11837 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
11838 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
11839 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
11840 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
11841 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
11842 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
11843 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
11844 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
11845 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
11846 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
11847 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
11848 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
11849 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
11850 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
11851 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
11852 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
11853 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
11855 pkt.ReqCondSizeVariable()
11856 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11857 0x8701, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
11858 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11860 pkt = NCP(0x5707, "Modify File or Subdirectory DOS Information", 'file', has_length=0)
11861 pkt.Request((62,316), [
11862 rec( 8, 1, NameSpace ),
11863 rec( 9, 1, Reserved ),
11864 rec( 10, 2, SearchAttributesLow ),
11865 rec( 12, 2, ModifyDOSInfoMask ),
11866 rec( 14, 2, Reserved2 ),
11867 rec( 16, 2, AttributesDef16 ),
11868 rec( 18, 1, FileMode ),
11869 rec( 19, 1, FileExtendedAttributes ),
11870 rec( 20, 2, CreationDate ),
11871 rec( 22, 2, CreationTime ),
11872 rec( 24, 4, CreatorID, BE ),
11873 rec( 28, 2, ModifiedDate ),
11874 rec( 30, 2, ModifiedTime ),
11875 rec( 32, 4, ModifierID, BE ),
11876 rec( 36, 2, ArchivedDate ),
11877 rec( 38, 2, ArchivedTime ),
11878 rec( 40, 4, ArchiverID, BE ),
11879 rec( 44, 2, LastAccessedDate ),
11880 rec( 46, 2, InheritedRightsMask ),
11881 rec( 48, 2, InheritanceRevokeMask ),
11882 rec( 50, 4, MaxSpace ),
11883 rec( 54, 1, VolumeNumber ),
11884 rec( 55, 4, DirectoryBase ),
11885 rec( 59, 1, HandleFlag ),
11886 rec( 60, 1, PathCount, var="x" ),
11887 rec( 61, (1,255), Path, repeat="x" ),
11888 ], info_str=(Path, "Modify DOS Information for: %s", "/%s"))
11890 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11891 0x8701, 0x8c01, 0x8d00, 0x8f00, 0x9001, 0x9600,
11892 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11894 pkt = NCP(0x5708, "Delete a File or Subdirectory", 'file', has_length=0)
11895 pkt.Request((20,274), [
11896 rec( 8, 1, NameSpace ),
11897 rec( 9, 1, Reserved ),
11898 rec( 10, 2, SearchAttributesLow ),
11899 rec( 12, 1, VolumeNumber ),
11900 rec( 13, 4, DirectoryBase ),
11901 rec( 17, 1, HandleFlag ),
11902 rec( 18, 1, PathCount, var="x" ),
11903 rec( 19, (1,255), Path, repeat="x" ),
11904 ], info_str=(Path, "Delete: %s", "/%s"))
11906 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11907 0x8701, 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
11908 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11910 pkt = NCP(0x5709, "Set Short Directory Handle", 'file', has_length=0)
11911 pkt.Request((20,274), [
11912 rec( 8, 1, NameSpace ),
11913 rec( 9, 1, DataStream ),
11914 rec( 10, 1, DestDirHandle ),
11915 rec( 11, 1, Reserved ),
11916 rec( 12, 1, VolumeNumber ),
11917 rec( 13, 4, DirectoryBase ),
11918 rec( 17, 1, HandleFlag ),
11919 rec( 18, 1, PathCount, var="x" ),
11920 rec( 19, (1,255), Path, repeat="x" ),
11921 ], info_str=(Path, "Set Short Directory Handle to: %s", "/%s"))
11923 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11924 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11925 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11927 pkt = NCP(0x570A, "Add Trustee Set to File or Subdirectory", 'file', has_length=0)
11928 pkt.Request((31,285), [
11929 rec( 8, 1, NameSpace ),
11930 rec( 9, 1, Reserved ),
11931 rec( 10, 2, SearchAttributesLow ),
11932 rec( 12, 2, AccessRightsMaskWord ),
11933 rec( 14, 2, ObjectIDCount, var="y" ),
11934 rec( 16, 1, VolumeNumber ),
11935 rec( 17, 4, DirectoryBase ),
11936 rec( 21, 1, HandleFlag ),
11937 rec( 22, 1, PathCount, var="x" ),
11938 rec( 23, (1,255), Path, repeat="x" ),
11939 rec( -1, 7, TrusteeStruct, repeat="y" ),
11940 ], info_str=(Path, "Add Trustee Set to: %s", "/%s"))
11942 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11943 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11944 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfc01, 0xfd00, 0xff16])
11946 pkt = NCP(0x570B, "Delete Trustee Set from File or SubDirectory", 'file', has_length=0)
11947 pkt.Request((27,281), [
11948 rec( 8, 1, NameSpace ),
11949 rec( 9, 1, Reserved ),
11950 rec( 10, 2, ObjectIDCount, var="y" ),
11951 rec( 12, 1, VolumeNumber ),
11952 rec( 13, 4, DirectoryBase ),
11953 rec( 17, 1, HandleFlag ),
11954 rec( 18, 1, PathCount, var="x" ),
11955 rec( 19, (1,255), Path, repeat="x" ),
11956 rec( -1, 7, TrusteeStruct, repeat="y" ),
11957 ], info_str=(Path, "Delete Trustee Set from: %s", "/%s"))
11959 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11960 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11961 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11963 pkt = NCP(0x570C, "Allocate Short Directory Handle", 'file', has_length=0)
11964 pkt.Request((20,274), [
11965 rec( 8, 1, NameSpace ),
11966 rec( 9, 1, Reserved ),
11967 rec( 10, 2, AllocateMode ),
11968 rec( 12, 1, VolumeNumber ),
11969 rec( 13, 4, DirectoryBase ),
11970 rec( 17, 1, HandleFlag ),
11971 rec( 18, 1, PathCount, var="x" ),
11972 rec( 19, (1,255), Path, repeat="x" ),
11973 ], info_str=(Path, "Allocate Short Directory Handle to: %s", "/%s"))
11975 rec( 8, 1, DirHandle ),
11976 rec( 9, 1, VolumeNumber ),
11977 rec( 10, 4, Reserved4 ),
11979 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11980 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11981 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11983 pkt = NCP(0x5710, "Scan Salvageable Files", 'file', has_length=0)
11984 pkt.Request((26,280), [
11985 rec( 8, 1, NameSpace ),
11986 rec( 9, 1, DataStream ),
11987 rec( 10, 2, ReturnInfoMask ),
11988 rec( 12, 2, ExtendedInfo ),
11989 rec( 14, 4, SequenceNumber ),
11990 rec( 18, 1, VolumeNumber ),
11991 rec( 19, 4, DirectoryBase ),
11992 rec( 23, 1, HandleFlag ),
11993 rec( 24, 1, PathCount, var="x" ),
11994 rec( 25, (1,255), Path, repeat="x" ),
11995 ], info_str=(Path, "Scan for Deleted Files in: %s", "/%s"))
11996 pkt.Reply(NO_LENGTH_CHECK, [
11997 rec( 8, 4, SequenceNumber ),
11998 rec( 12, 2, DeletedTime ),
11999 rec( 14, 2, DeletedDate ),
12000 rec( 16, 4, DeletedID, BE ),
12001 rec( 20, 4, VolumeID ),
12002 rec( 24, 4, DirectoryBase ),
12003 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12004 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12005 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12006 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12007 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12008 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12009 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12010 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12011 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12012 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12013 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12014 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12015 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12016 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12017 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12018 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12019 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12020 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12021 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12022 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12023 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12024 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12025 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12026 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12027 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12028 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12029 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12030 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12031 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12032 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12033 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12034 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12035 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12036 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12037 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12039 pkt.ReqCondSizeVariable()
12040 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12041 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12042 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12044 pkt = NCP(0x5711, "Recover Salvageable File", 'file', has_length=0)
12045 pkt.Request((23,277), [
12046 rec( 8, 1, NameSpace ),
12047 rec( 9, 1, Reserved ),
12048 rec( 10, 4, SequenceNumber ),
12049 rec( 14, 4, VolumeID ),
12050 rec( 18, 4, DirectoryBase ),
12051 rec( 22, (1,255), FileName ),
12052 ], info_str=(FileName, "Recover Deleted File: %s", ", %s"))
12054 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12055 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12056 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12058 pkt = NCP(0x5712, "Purge Salvageable Files", 'file', has_length=0)
12060 rec( 8, 1, NameSpace ),
12061 rec( 9, 1, Reserved ),
12062 rec( 10, 4, SequenceNumber ),
12063 rec( 14, 4, VolumeID ),
12064 rec( 18, 4, DirectoryBase ),
12067 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12068 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12069 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12071 pkt = NCP(0x5713, "Get Name Space Information", 'file', has_length=0)
12073 rec( 8, 1, SrcNameSpace ),
12074 rec( 9, 1, DestNameSpace ),
12075 rec( 10, 1, Reserved ),
12076 rec( 11, 1, VolumeNumber ),
12077 rec( 12, 4, DirectoryBase ),
12078 rec( 16, 2, NamesSpaceInfoMask ),
12080 pkt.Reply(NO_LENGTH_CHECK, [
12081 srec( FileNameStruct, req_cond="ncp.ns_info_mask_modify == TRUE" ),
12082 srec( FileAttributesStruct, req_cond="ncp.ns_info_mask_fatt == TRUE" ),
12083 srec( CreationDateStruct, req_cond="ncp.ns_info_mask_cdate == TRUE" ),
12084 srec( CreationTimeStruct, req_cond="ncp.ns_info_mask_ctime == TRUE" ),
12085 srec( OwnerIDStruct, req_cond="ncp.ns_info_mask_owner == TRUE" ),
12086 srec( ArchiveDateStruct, req_cond="ncp.ns_info_mask_adate == TRUE" ),
12087 srec( ArchiveTimeStruct, req_cond="ncp.ns_info_mask_atime == TRUE" ),
12088 srec( ArchiveIdStruct, req_cond="ncp.ns_info_mask_aid == TRUE" ),
12089 srec( UpdateDateStruct, req_cond="ncp.ns_info_mask_udate == TRUE" ),
12090 srec( UpdateTimeStruct, req_cond="ncp.ns_info_mask_utime == TRUE" ),
12091 srec( UpdateIDStruct, req_cond="ncp.ns_info_mask_uid == TRUE" ),
12092 srec( LastAccessStruct, req_cond="ncp.ns_info_mask_acc_date == TRUE" ),
12093 srec( RightsInfoStruct, req_cond="ncp.ns_info_mask_max_acc_mask == TRUE" ),
12095 pkt.ReqCondSizeVariable()
12096 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12097 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12098 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12100 pkt = NCP(0x5714, "Search for File or Subdirectory Set", 'file', has_length=0)
12101 pkt.Request((28, 282), [
12102 rec( 8, 1, NameSpace ),
12103 rec( 9, 1, DataStream ),
12104 rec( 10, 2, SearchAttributesLow ),
12105 rec( 12, 2, ReturnInfoMask ),
12106 rec( 14, 2, ExtendedInfo ),
12107 rec( 16, 2, ReturnInfoCount ),
12108 rec( 18, 9, SearchSequence ),
12109 rec( 27, (1,255), SearchPattern ),
12110 ], info_str=(SearchPattern, "Search for: %s", ", %s"))
12111 pkt.Reply(NO_LENGTH_CHECK, [
12112 rec( 8, 9, SearchSequence ),
12113 rec( 17, 1, MoreFlag ),
12114 rec( 18, 2, InfoCount ),
12115 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12116 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12117 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12118 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12119 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12120 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12121 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12122 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12123 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12124 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12125 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12126 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12127 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12128 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12129 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12130 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12131 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12132 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12133 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12134 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12135 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12136 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12137 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12138 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12139 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12140 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12141 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12142 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12143 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12144 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12145 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12146 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12147 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12148 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12149 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12150 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
12151 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
12152 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12153 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12154 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12155 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12156 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12157 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12158 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12159 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12160 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12161 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12163 pkt.ReqCondSizeVariable()
12164 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12165 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12166 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12168 pkt = NCP(0x5715, "Get Path String from Short Directory Handle", 'file', has_length=0)
12170 rec( 8, 1, NameSpace ),
12171 rec( 9, 1, DirHandle ),
12173 pkt.Reply((9,263), [
12174 rec( 8, (1,255), Path ),
12176 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12177 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12178 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
12180 pkt = NCP(0x5716, "Generate Directory Base and Volume Number", 'file', has_length=0)
12181 pkt.Request((20,274), [
12182 rec( 8, 1, SrcNameSpace ),
12183 rec( 9, 1, DestNameSpace ),
12184 rec( 10, 2, dstNSIndicator ),
12185 rec( 12, 1, VolumeNumber ),
12186 rec( 13, 4, DirectoryBase ),
12187 rec( 17, 1, HandleFlag ),
12188 rec( 18, 1, PathCount, var="x" ),
12189 rec( 19, (1,255), Path, repeat="x" ),
12190 ], info_str=(Path, "Get Volume and Directory Base from: %s", "/%s"))
12192 rec( 8, 4, DirectoryBase ),
12193 rec( 12, 4, DOSDirectoryBase ),
12194 rec( 16, 1, VolumeNumber ),
12196 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12197 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12198 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12200 pkt = NCP(0x5717, "Query Name Space Information Format", 'file', has_length=0)
12202 rec( 8, 1, NameSpace ),
12203 rec( 9, 1, VolumeNumber ),
12206 rec( 8, 4, FixedBitMask ),
12207 rec( 12, 4, VariableBitMask ),
12208 rec( 16, 4, HugeBitMask ),
12209 rec( 20, 2, FixedBitsDefined ),
12210 rec( 22, 2, VariableBitsDefined ),
12211 rec( 24, 2, HugeBitsDefined ),
12212 rec( 26, 32, FieldsLenTable ),
12214 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12215 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12216 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12218 pkt = NCP(0x5718, "Get Name Spaces Loaded List from Volume Number", 'file', has_length=0)
12220 rec( 8, 1, Reserved ),
12221 rec( 9, 1, VolumeNumber ),
12224 rec( 8, 2, NumberOfNSLoaded, var="x" ),
12225 rec( 10, 1, NameSpace, repeat="x" ),
12227 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12228 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12229 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12231 pkt = NCP(0x5719, "Set Name Space Information", 'file', has_length=0)
12233 rec( 8, 1, SrcNameSpace ),
12234 rec( 9, 1, DestNameSpace ),
12235 rec( 10, 1, VolumeNumber ),
12236 rec( 11, 4, DirectoryBase ),
12237 rec( 15, 2, NamesSpaceInfoMask ),
12238 rec( 17, 2, Reserved2 ),
12239 rec( 19, 512, NSSpecificInfo ),
12242 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12243 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12244 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12247 pkt = NCP(0x571A, "Get Huge Name Space Information", 'file', has_length=0)
12249 rec( 8, 1, NameSpace ),
12250 rec( 9, 1, VolumeNumber ),
12251 rec( 10, 4, DirectoryBase ),
12252 rec( 14, 4, HugeBitMask ),
12253 rec( 18, 16, HugeStateInfo ),
12255 pkt.Reply((25,279), [
12256 rec( 8, 16, NextHugeStateInfo ),
12257 rec( 24, (1,255), HugeData ),
12259 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12260 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12261 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12264 pkt = NCP(0x571B, "Set Huge Name Space Information", 'file', has_length=0)
12265 pkt.Request((35,289), [
12266 rec( 8, 1, NameSpace ),
12267 rec( 9, 1, VolumeNumber ),
12268 rec( 10, 4, DirectoryBase ),
12269 rec( 14, 4, HugeBitMask ),
12270 rec( 18, 16, HugeStateInfo ),
12271 rec( 34, (1,255), HugeData ),
12274 rec( 8, 16, NextHugeStateInfo ),
12275 rec( 24, 4, HugeDataUsed ),
12277 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12278 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12279 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12282 pkt = NCP(0x571C, "Get Full Path String", 'file', has_length=0)
12283 pkt.Request((28,282), [
12284 rec( 8, 1, SrcNameSpace ),
12285 rec( 9, 1, DestNameSpace ),
12286 rec( 10, 2, PathCookieFlags ),
12287 rec( 12, 4, Cookie1 ),
12288 rec( 16, 4, Cookie2 ),
12289 rec( 20, 1, VolumeNumber ),
12290 rec( 21, 4, DirectoryBase ),
12291 rec( 25, 1, HandleFlag ),
12292 rec( 26, 1, PathCount, var="x" ),
12293 rec( 27, (1,255), Path, repeat="x" ),
12294 ], info_str=(Path, "Get Full Path from: %s", "/%s"))
12295 pkt.Reply((23,277), [
12296 rec( 8, 2, PathCookieFlags ),
12297 rec( 10, 4, Cookie1 ),
12298 rec( 14, 4, Cookie2 ),
12299 rec( 18, 2, PathComponentSize ),
12300 rec( 20, 2, PathComponentCount, var='x' ),
12301 rec( 22, (1,255), Path, repeat='x' ),
12303 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12304 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12305 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12308 pkt = NCP(0x571D, "Get Effective Directory Rights", 'file', has_length=0)
12309 pkt.Request((24, 278), [
12310 rec( 8, 1, NameSpace ),
12311 rec( 9, 1, DestNameSpace ),
12312 rec( 10, 2, SearchAttributesLow ),
12313 rec( 12, 2, ReturnInfoMask ),
12314 rec( 14, 2, ExtendedInfo ),
12315 rec( 16, 1, VolumeNumber ),
12316 rec( 17, 4, DirectoryBase ),
12317 rec( 21, 1, HandleFlag ),
12318 rec( 22, 1, PathCount, var="x" ),
12319 rec( 23, (1,255), Path, repeat="x" ),
12320 ], info_str=(Path, "Get Effective Rights for: %s", "/%s"))
12321 pkt.Reply(NO_LENGTH_CHECK, [
12322 rec( 8, 2, EffectiveRights ),
12323 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12324 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12325 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12326 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12327 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12328 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12329 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12330 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12331 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12332 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12333 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12334 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12335 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12336 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12337 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12338 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12339 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12340 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12341 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12342 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12343 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12344 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12345 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12346 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12347 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12348 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12349 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12350 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12351 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12352 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12353 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12354 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12355 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12356 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12357 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12359 pkt.ReqCondSizeVariable()
12360 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12361 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12362 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12364 pkt = NCP(0x571E, "Open/Create File or Subdirectory", 'file', has_length=0)
12365 pkt.Request((34, 288), [
12366 rec( 8, 1, NameSpace ),
12367 rec( 9, 1, DataStream ),
12368 rec( 10, 1, OpenCreateMode ),
12369 rec( 11, 1, Reserved ),
12370 rec( 12, 2, SearchAttributesLow ),
12371 rec( 14, 2, Reserved2 ),
12372 rec( 16, 2, ReturnInfoMask ),
12373 rec( 18, 2, ExtendedInfo ),
12374 rec( 20, 4, AttributesDef32 ),
12375 rec( 24, 2, DesiredAccessRights ),
12376 rec( 26, 1, VolumeNumber ),
12377 rec( 27, 4, DirectoryBase ),
12378 rec( 31, 1, HandleFlag ),
12379 rec( 32, 1, PathCount, var="x" ),
12380 rec( 33, (1,255), Path, repeat="x" ),
12381 ], info_str=(Path, "Open or Create File: %s", "/%s"))
12382 pkt.Reply(NO_LENGTH_CHECK, [
12383 rec( 8, 4, FileHandle, BE ),
12384 rec( 12, 1, OpenCreateAction ),
12385 rec( 13, 1, Reserved ),
12386 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12387 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12388 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12389 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12390 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12391 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12392 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12393 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12394 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12395 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12396 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12397 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12398 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12399 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12400 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12401 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12402 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12403 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12404 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12405 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12406 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12407 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12408 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12409 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12410 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12411 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12412 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12413 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12414 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12415 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12416 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12417 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12418 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12419 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12420 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12422 pkt.ReqCondSizeVariable()
12423 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12424 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12425 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12427 pkt = NCP(0x571F, "Get File Information", 'file', has_length=0)
12429 rec( 8, 6, FileHandle ),
12430 rec( 14, 1, HandleInfoLevel ),
12431 rec( 15, 1, NameSpace ),
12433 pkt.Reply(NO_LENGTH_CHECK, [
12434 rec( 8, 4, VolumeNumberLong ),
12435 rec( 12, 4, DirectoryBase ),
12436 srec(HandleInfoLevel0, req_cond="ncp.handle_info_level==0x00" ),
12437 srec(HandleInfoLevel1, req_cond="ncp.handle_info_level==0x01" ),
12438 srec(HandleInfoLevel2, req_cond="ncp.handle_info_level==0x02" ),
12439 srec(HandleInfoLevel3, req_cond="ncp.handle_info_level==0x03" ),
12440 srec(HandleInfoLevel4, req_cond="ncp.handle_info_level==0x04" ),
12441 srec(HandleInfoLevel5, req_cond="ncp.handle_info_level==0x05" ),
12443 pkt.ReqCondSizeVariable()
12444 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12445 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12446 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12448 pkt = NCP(0x5720, "Open/Create File or Subdirectory with Callback", 'file', has_length=0)
12449 pkt.Request((30, 284), [
12450 rec( 8, 1, NameSpace ),
12451 rec( 9, 1, OpenCreateMode ),
12452 rec( 10, 2, SearchAttributesLow ),
12453 rec( 12, 2, ReturnInfoMask ),
12454 rec( 14, 2, ExtendedInfo ),
12455 rec( 16, 4, AttributesDef32 ),
12456 rec( 20, 2, DesiredAccessRights ),
12457 rec( 22, 1, VolumeNumber ),
12458 rec( 23, 4, DirectoryBase ),
12459 rec( 27, 1, HandleFlag ),
12460 rec( 28, 1, PathCount, var="x" ),
12461 rec( 29, (1,255), Path, repeat="x" ),
12462 ], info_str=(Path, "Open or Create with Op-Lock: %s", "/%s"))
12463 pkt.Reply( NO_LENGTH_CHECK, [
12464 rec( 8, 4, FileHandle, BE ),
12465 rec( 12, 1, OpenCreateAction ),
12466 rec( 13, 1, OCRetFlags ),
12467 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12468 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12469 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12470 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12471 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12472 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12473 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12474 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12475 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12476 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12477 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12478 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12479 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12480 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12481 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12482 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12483 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12484 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12485 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12486 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12487 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12488 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12489 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12490 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12491 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12492 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12493 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12494 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12495 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12496 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12497 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12498 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12499 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12500 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12501 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12502 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
12503 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
12504 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12505 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12506 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12507 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12508 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12509 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12510 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12511 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12512 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12513 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12515 pkt.ReqCondSizeVariable()
12516 pkt.CompletionCodes([0x0000, 0x7f00, 0x8000, 0x8101, 0x8401, 0x8501,
12517 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12518 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12520 pkt = NCP(0x5721, "Open/Create File or Subdirectory II with Callback", 'file', has_length=0)
12521 pkt.Request((34, 288), [
12522 rec( 8, 1, NameSpace ),
12523 rec( 9, 1, DataStream ),
12524 rec( 10, 1, OpenCreateMode ),
12525 rec( 11, 1, Reserved ),
12526 rec( 12, 2, SearchAttributesLow ),
12527 rec( 14, 2, Reserved2 ),
12528 rec( 16, 2, ReturnInfoMask ),
12529 rec( 18, 2, ExtendedInfo ),
12530 rec( 20, 4, AttributesDef32 ),
12531 rec( 24, 2, DesiredAccessRights ),
12532 rec( 26, 1, VolumeNumber ),
12533 rec( 27, 4, DirectoryBase ),
12534 rec( 31, 1, HandleFlag ),
12535 rec( 32, 1, PathCount, var="x" ),
12536 rec( 33, (1,255), Path, repeat="x" ),
12537 ], info_str=(FilePath, "Open or Create II with Op-Lock: %s", "/%s"))
12538 pkt.Reply((91,345), [
12539 rec( 8, 4, FileHandle ),
12540 rec( 12, 1, OpenCreateAction ),
12541 rec( 13, 1, OCRetFlags ),
12542 rec( 14, 4, DataStreamSpaceAlloc ),
12543 rec( 18, 6, AttributesStruct ),
12544 rec( 24, 4, DataStreamSize ),
12545 rec( 28, 4, TtlDSDskSpaceAlloc ),
12546 rec( 32, 2, NumberOfDataStreams ),
12547 rec( 34, 2, CreationTime ),
12548 rec( 36, 2, CreationDate ),
12549 rec( 38, 4, CreatorID, BE ),
12550 rec( 42, 2, ModifiedTime ),
12551 rec( 44, 2, ModifiedDate ),
12552 rec( 46, 4, ModifierID, BE ),
12553 rec( 50, 2, LastAccessedDate ),
12554 rec( 52, 2, ArchivedTime ),
12555 rec( 54, 2, ArchivedDate ),
12556 rec( 56, 4, ArchiverID, BE ),
12557 rec( 60, 2, InheritedRightsMask ),
12558 rec( 62, 4, DirectoryEntryNumber ),
12559 rec( 66, 4, DOSDirectoryEntryNumber ),
12560 rec( 70, 4, VolumeNumberLong ),
12561 rec( 74, 4, EADataSize ),
12562 rec( 78, 4, EACount ),
12563 rec( 82, 4, EAKeySize ),
12564 rec( 86, 1, CreatorNameSpaceNumber ),
12565 rec( 87, 3, Reserved3 ),
12566 rec( 90, (1,255), FileName ),
12568 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12569 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12570 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12572 pkt = NCP(0x5722, "Open CallBack Control (Op-Lock)", 'file', has_length=0)
12574 rec( 10, 4, CCFileHandle ),
12575 rec( 14, 1, CCFunction ),
12578 pkt.CompletionCodes([0x0000, 0x8800])
12580 pkt = NCP(0x5723, "Modify DOS Attributes on a File or Subdirectory", 'file', has_length=0)
12581 pkt.Request((28, 282), [
12582 rec( 8, 1, NameSpace ),
12583 rec( 9, 1, Flags ),
12584 rec( 10, 2, SearchAttributesLow ),
12585 rec( 12, 2, ReturnInfoMask ),
12586 rec( 14, 2, ExtendedInfo ),
12587 rec( 16, 4, AttributesDef32 ),
12588 rec( 20, 1, VolumeNumber ),
12589 rec( 21, 4, DirectoryBase ),
12590 rec( 25, 1, HandleFlag ),
12591 rec( 26, 1, PathCount, var="x" ),
12592 rec( 27, (1,255), Path, repeat="x" ),
12593 ], info_str=(Path, "Modify DOS Attributes for: %s", "/%s"))
12595 rec( 8, 4, ItemsChecked ),
12596 rec( 12, 4, ItemsChanged ),
12597 rec( 16, 4, AttributeValidFlag ),
12598 rec( 20, 4, AttributesDef32 ),
12600 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12601 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12602 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12604 pkt = NCP(0x5724, "Log File", 'file', has_length=0)
12605 pkt.Request((28, 282), [
12606 rec( 8, 1, NameSpace ),
12607 rec( 9, 1, Reserved ),
12608 rec( 10, 2, Reserved2 ),
12609 rec( 12, 1, LogFileFlagLow ),
12610 rec( 13, 1, LogFileFlagHigh ),
12611 rec( 14, 2, Reserved2 ),
12612 rec( 16, 4, WaitTime ),
12613 rec( 20, 1, VolumeNumber ),
12614 rec( 21, 4, DirectoryBase ),
12615 rec( 25, 1, HandleFlag ),
12616 rec( 26, 1, PathCount, var="x" ),
12617 rec( 27, (1,255), Path, repeat="x" ),
12618 ], info_str=(Path, "Lock File: %s", "/%s"))
12620 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12621 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12622 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12624 pkt = NCP(0x5725, "Release File", 'file', has_length=0)
12625 pkt.Request((20, 274), [
12626 rec( 8, 1, NameSpace ),
12627 rec( 9, 1, Reserved ),
12628 rec( 10, 2, Reserved2 ),
12629 rec( 12, 1, VolumeNumber ),
12630 rec( 13, 4, DirectoryBase ),
12631 rec( 17, 1, HandleFlag ),
12632 rec( 18, 1, PathCount, var="x" ),
12633 rec( 19, (1,255), Path, repeat="x" ),
12634 ], info_str=(Path, "Release Lock on: %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(0x5726, "Clear 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, "Clear File: %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(0x5727, "Get Directory Disk Space Restriction", 'file', has_length=0)
12657 pkt.Request((19, 273), [
12658 rec( 8, 1, NameSpace ),
12659 rec( 9, 2, Reserved2 ),
12660 rec( 11, 1, VolumeNumber ),
12661 rec( 12, 4, DirectoryBase ),
12662 rec( 16, 1, HandleFlag ),
12663 rec( 17, 1, PathCount, var="x" ),
12664 rec( 18, (1,255), Path, repeat="x" ),
12665 ], info_str=(Path, "Get Disk Space Restriction for: %s", "/%s"))
12667 rec( 8, 1, NumberOfEntries, var="x" ),
12668 rec( 9, 9, SpaceStruct, repeat="x" ),
12670 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12671 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12672 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12675 pkt = NCP(0x5728, "Search for File or Subdirectory Set (Extended Errors)", 'file', has_length=0)
12676 pkt.Request((28, 282), [
12677 rec( 8, 1, NameSpace ),
12678 rec( 9, 1, DataStream ),
12679 rec( 10, 2, SearchAttributesLow ),
12680 rec( 12, 2, ReturnInfoMask ),
12681 rec( 14, 2, ExtendedInfo ),
12682 rec( 16, 2, ReturnInfoCount ),
12683 rec( 18, 9, SearchSequence ),
12684 rec( 27, (1,255), SearchPattern ),
12685 ], info_str=(SearchPattern, "Search for: %s", ", %s"))
12686 pkt.Reply(NO_LENGTH_CHECK, [
12687 rec( 8, 9, SearchSequence ),
12688 rec( 17, 1, MoreFlag ),
12689 rec( 18, 2, InfoCount ),
12690 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12691 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12692 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12693 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12694 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12695 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12696 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12697 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12698 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12699 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12700 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12701 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12702 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12703 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12704 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12705 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12706 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12707 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12708 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12709 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12710 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12711 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12712 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12713 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12714 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12715 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12716 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12717 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12718 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12719 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12720 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12721 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12722 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12723 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12724 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12726 pkt.ReqCondSizeVariable()
12727 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12728 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12729 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12731 pkt = NCP(0x5729, "Scan Salvageable Files", 'file', has_length=0)
12732 pkt.Request((24,278), [
12733 rec( 8, 1, NameSpace ),
12734 rec( 9, 1, Reserved ),
12735 rec( 10, 2, CtrlFlags, LE ),
12736 rec( 12, 4, SequenceNumber ),
12737 rec( 16, 1, VolumeNumber ),
12738 rec( 17, 4, DirectoryBase ),
12739 rec( 21, 1, HandleFlag ),
12740 rec( 22, 1, PathCount, var="x" ),
12741 rec( 23, (1,255), Path, repeat="x" ),
12742 ], info_str=(Path, "Scan Deleted Files: %s", "/%s"))
12743 pkt.Reply(NO_LENGTH_CHECK, [
12744 rec( 8, 4, SequenceNumber ),
12745 rec( 12, 4, DirectoryBase ),
12746 rec( 16, 4, ScanItems, var="x" ),
12747 srec(ScanInfoFileName, req_cond="ncp.ctrl_flags==0x0001", repeat="x" ),
12748 srec(ScanInfoFileNoName, req_cond="ncp.ctrl_flags==0x0000", repeat="x" ),
12750 pkt.ReqCondSizeVariable()
12751 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12752 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12753 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12755 pkt = NCP(0x572A, "Purge Salvageable File List", 'file', has_length=0)
12757 rec( 8, 1, NameSpace ),
12758 rec( 9, 1, Reserved ),
12759 rec( 10, 2, PurgeFlags ),
12760 rec( 12, 4, VolumeNumberLong ),
12761 rec( 16, 4, DirectoryBase ),
12762 rec( 20, 4, PurgeCount, var="x" ),
12763 rec( 24, 4, PurgeList, repeat="x" ),
12766 rec( 8, 4, PurgeCount, var="x" ),
12767 rec( 12, 4, PurgeCcode, repeat="x" ),
12769 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12770 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12771 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12773 pkt = NCP(0x572B, "Revoke File Handle Rights", 'file', has_length=0)
12775 rec( 8, 3, Reserved3 ),
12776 rec( 11, 1, RevQueryFlag ),
12777 rec( 12, 4, FileHandle ),
12778 rec( 16, 1, RemoveOpenRights ),
12781 rec( 8, 4, FileHandle ),
12782 rec( 12, 1, OpenRights ),
12784 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12785 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12786 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12788 pkt = NCP(0x572C, "Update File Handle Rights", 'file', has_length=0)
12790 rec( 8, 2, Reserved2 ),
12791 rec( 10, 1, VolumeNumber ),
12792 rec( 11, 1, NameSpace ),
12793 rec( 12, 4, DirectoryNumber ),
12794 rec( 16, 2, AccessRightsMaskWord ),
12795 rec( 18, 2, NewAccessRights ),
12796 rec( 20, 4, FileHandle, BE ),
12799 rec( 8, 4, FileHandle, BE ),
12800 rec( 12, 4, EffectiveRights ),
12802 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12803 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12804 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12806 pkt = NCP(0x5742, "Novell Advanced Auditing Service (NAAS)", 'auditing', has_length=0)
12809 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12810 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12811 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12813 pkt = NCP(0x5801, "Query Volume Audit Status", "auditing", has_length=0)
12815 rec( 8, 4, ConnectionNumber ),
12818 rec(8, 32, NWAuditStatus ),
12820 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12821 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12822 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12824 pkt = NCP(0x5802, "Add User Audit Property", "auditing", has_length=0)
12826 rec(8, 4, AuditIDType ),
12827 rec(12, 4, AuditID ),
12828 rec(16, 4, AuditHandle ),
12829 rec(20, 4, ObjectID ),
12830 rec(24, 1, AuditFlag ),
12833 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12834 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12835 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12837 pkt = NCP(0x5803, "Add Auditor Access", "auditing", has_length=0)
12840 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12841 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12842 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12844 pkt = NCP(0x5804, "Change Auditor Volume Password", "auditing", has_length=0)
12847 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12848 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12849 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12851 pkt = NCP(0x5805, "Check Auditor Access", "auditing", has_length=0)
12854 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12855 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12856 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12858 pkt = NCP(0x5806, "Delete User Audit Property", "auditing", has_length=0)
12861 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12862 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12863 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12865 pkt = NCP(0x5807, "Disable Auditing On A Volume", "auditing", has_length=0)
12868 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12869 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12870 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12872 pkt = NCP(0x5808, "Enable Auditing On A Volume", "auditing", has_length=0)
12875 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12876 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12877 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12879 pkt = NCP(0x5809, "Query User Being Audited", "auditing", has_length=0)
12882 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12883 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12884 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12886 pkt = NCP(0x580A, "Read Audit Bit Map", "auditing", has_length=0)
12889 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12890 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12891 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12893 pkt = NCP(0x580B, "Read Audit File Configuration Header", "auditing", has_length=0)
12896 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12897 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12898 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12900 pkt = NCP(0x580D, "Remove Auditor Access", "auditing", has_length=0)
12903 pkt.CompletionCodes([0x0000, 0x300, 0x8000, 0x8101, 0x8401, 0x8501,
12904 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12905 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12907 pkt = NCP(0x580E, "Reset Audit File", "auditing", has_length=0)
12910 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12911 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12912 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12915 pkt = NCP(0x580F, "Auditing NCP", "auditing", has_length=0)
12918 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12919 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12920 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12922 pkt = NCP(0x5810, "Write Audit Bit Map", "auditing", has_length=0)
12925 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12926 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12927 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12929 pkt = NCP(0x5811, "Write Audit File Configuration Header", "auditing", has_length=0)
12932 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12933 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12934 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12936 pkt = NCP(0x5812, "Change Auditor Volume Password2", "auditing", has_length=0)
12939 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12940 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12941 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12943 pkt = NCP(0x5813, "Return Audit Flags", "auditing", has_length=0)
12946 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12947 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12948 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12950 pkt = NCP(0x5814, "Close Old Audit File", "auditing", has_length=0)
12953 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12954 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12955 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12957 pkt = NCP(0x5816, "Check Level Two Access", "auditing", has_length=0)
12960 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12961 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12962 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12964 pkt = NCP(0x5817, "Return Old Audit File List", "auditing", has_length=0)
12967 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12968 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12969 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12971 pkt = NCP(0x5818, "Init Audit File Reads", "auditing", has_length=0)
12974 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12975 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12976 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12978 pkt = NCP(0x5819, "Read Auditing File", "auditing", has_length=0)
12981 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12982 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12983 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12985 pkt = NCP(0x581A, "Delete Old Audit File", "auditing", has_length=0)
12988 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12989 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12990 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12992 pkt = NCP(0x581E, "Restart Volume auditing", "auditing", has_length=0)
12995 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12996 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12997 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12999 pkt = NCP(0x581F, "Set Volume Password", "auditing", has_length=0)
13002 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13003 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13004 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13006 pkt = NCP(0x5A01, "Parse Tree", 'file')
13008 rec( 10, 4, InfoMask ),
13009 rec( 14, 4, Reserved4 ),
13010 rec( 18, 4, Reserved4 ),
13011 rec( 22, 4, limbCount ),
13014 rec( 8, 4, limbCount ),
13015 rec( 12, 4, ItemsCount ),
13016 rec( 16, 4, nextLimbScanNum ),
13017 rec( 20, 4, CompletionCode ),
13018 rec( 24, 1, FolderFlag ),
13019 rec( 25, 3, Reserved ),
13020 rec( 28, 4, DirectoryBase ),
13022 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13023 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13024 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13026 pkt = NCP(0x5A0A, "Get Reference Count from Dir Entry Number", 'file')
13028 rec( 10, 4, VolumeNumberLong ),
13029 rec( 14, 4, DirectoryBase ),
13030 rec( 18, 1, NameSpace ),
13033 rec( 8, 4, ReferenceCount ),
13035 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13036 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13037 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13039 pkt = NCP(0x5A0B, "Get Reference Count from Dir Handle", 'file')
13041 rec( 10, 4, DirHandle ),
13044 rec( 8, 4, ReferenceCount ),
13046 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13047 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13048 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13050 pkt = NCP(0x5A0C, "Set Compressed File Size", 'file')
13052 rec( 10, 6, FileHandle ),
13053 rec( 16, 4, SuggestedFileSize ),
13056 rec( 8, 4, OldFileSize ),
13057 rec( 12, 4, NewFileSize ),
13059 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13060 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13061 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13062 # 2222/5A80, 90/128
13063 pkt = NCP(0x5A80, "Move File Data To Data Migration", 'file')
13065 rec( 10, 4, VolumeNumberLong ),
13066 rec( 14, 4, DirectoryEntryNumber ),
13067 rec( 18, 1, NameSpace ),
13068 rec( 19, 3, Reserved ),
13069 rec( 22, 4, SupportModuleID ),
13070 rec( 26, 1, DMFlags ),
13073 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13074 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13075 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13076 # 2222/5A81, 90/129
13077 pkt = NCP(0x5A81, "Data Migration File Information", 'file')
13079 rec( 10, 4, VolumeNumberLong ),
13080 rec( 14, 4, DirectoryEntryNumber ),
13081 rec( 18, 1, NameSpace ),
13084 rec( 8, 4, SupportModuleID ),
13085 rec( 12, 4, RestoreTime ),
13086 rec( 16, 4, DMInfoEntries, var="x" ),
13087 rec( 20, 4, DataSize, repeat="x" ),
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/5A82, 90/130
13093 pkt = NCP(0x5A82, "Volume Data Migration Status", 'file')
13095 rec( 10, 4, VolumeNumberLong ),
13096 rec( 14, 4, SupportModuleID ),
13099 rec( 8, 4, NumOfFilesMigrated ),
13100 rec( 12, 4, TtlMigratedSize ),
13101 rec( 16, 4, SpaceUsed ),
13102 rec( 20, 4, LimboUsed ),
13103 rec( 24, 4, SpaceMigrated ),
13104 rec( 28, 4, FileLimbo ),
13106 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13107 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13108 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13109 # 2222/5A83, 90/131
13110 pkt = NCP(0x5A83, "Migrator Status Info", 'file')
13113 rec( 8, 1, DMPresentFlag ),
13114 rec( 9, 3, Reserved3 ),
13115 rec( 12, 4, DMmajorVersion ),
13116 rec( 16, 4, DMminorVersion ),
13118 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13119 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13120 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13121 # 2222/5A84, 90/132
13122 pkt = NCP(0x5A84, "Data Migration Support Module Information", 'file')
13124 rec( 10, 1, DMInfoLevel ),
13125 rec( 11, 3, Reserved3),
13126 rec( 14, 4, SupportModuleID ),
13128 pkt.Reply(NO_LENGTH_CHECK, [
13129 srec( DMInfoLevel0, req_cond="ncp.dm_info_level == 0x00" ),
13130 srec( DMInfoLevel1, req_cond="ncp.dm_info_level == 0x01" ),
13131 srec( DMInfoLevel2, req_cond="ncp.dm_info_level == 0x02" ),
13133 pkt.ReqCondSizeVariable()
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/5A85, 90/133
13138 pkt = NCP(0x5A85, "Move File Data From Data Migration", 'file')
13140 rec( 10, 4, VolumeNumberLong ),
13141 rec( 14, 4, DirectoryEntryNumber ),
13142 rec( 18, 1, NameSpace ),
13145 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13146 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13147 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13148 # 2222/5A86, 90/134
13149 pkt = NCP(0x5A86, "Get/Set Default Read-Write Support Module ID", 'file')
13151 rec( 10, 1, GetSetFlag ),
13152 rec( 11, 3, Reserved3 ),
13153 rec( 14, 4, SupportModuleID ),
13156 rec( 8, 4, SupportModuleID ),
13158 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13159 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13160 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13161 # 2222/5A87, 90/135
13162 pkt = NCP(0x5A87, "Data Migration Support Module Capacity Request", 'file')
13164 rec( 10, 4, SupportModuleID ),
13165 rec( 14, 4, VolumeNumberLong ),
13166 rec( 18, 4, DirectoryBase ),
13169 rec( 8, 4, BlockSizeInSectors ),
13170 rec( 12, 4, TotalBlocks ),
13171 rec( 16, 4, UsedBlocks ),
13173 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13174 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13175 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13176 # 2222/5A88, 90/136
13177 pkt = NCP(0x5A88, "RTDM Request", 'file')
13179 rec( 10, 4, Verb ),
13180 rec( 14, 1, VerbData ),
13183 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13184 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13185 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13187 pkt = NCP(0x5C, "SecretStore Services", 'file')
13188 #Need info on this packet structure and SecretStore Verbs
13191 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13192 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13193 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13196 pkt = NCP(0x5e, "NMAS Communications Packet", 'comm')
13199 pkt.CompletionCodes([0x0000, 0xfb09])
13201 pkt = NCP(0x61, "Get Big Packet NCP Max Packet Size", 'comm')
13203 rec( 7, 2, ProposedMaxSize, BE ),
13204 rec( 9, 1, SecurityFlag ),
13205 ],info_str=(ProposedMaxSize, "Get Big Max Packet Size - %d", ", %d"))
13207 rec( 8, 2, AcceptedMaxSize, BE ),
13208 rec( 10, 2, EchoSocket, BE ),
13209 rec( 12, 1, SecurityFlag ),
13211 pkt.CompletionCodes([0x0000])
13213 pkt = NCP(0x63, "Undocumented Packet Burst", 'comm')
13216 pkt.CompletionCodes([0x0000])
13218 pkt = NCP(0x64, "Undocumented Packet Burst", 'comm')
13221 pkt.CompletionCodes([0x0000])
13223 pkt = NCP(0x65, "Packet Burst Connection Request", 'comm')
13225 rec( 7, 4, LocalConnectionID ),
13226 rec( 11, 4, LocalMaxPacketSize ),
13227 rec( 15, 2, LocalTargetSocket ),
13228 rec( 17, 4, LocalMaxSendSize ),
13229 rec( 21, 4, LocalMaxRecvSize ),
13232 rec( 8, 4, RemoteTargetID ),
13233 rec( 12, 4, RemoteMaxPacketSize ),
13235 pkt.CompletionCodes([0x0000])
13237 pkt = NCP(0x66, "Undocumented Packet Burst", 'comm')
13240 pkt.CompletionCodes([0x0000])
13242 pkt = NCP(0x67, "Undocumented Packet Burst", 'comm')
13245 pkt.CompletionCodes([0x0000])
13246 # 2222/6801, 104/01
13247 pkt = NCP(0x6801, "Ping for NDS NCP", "nds", has_length=0)
13250 pkt.ReqCondSizeVariable()
13251 pkt.CompletionCodes([0x0000, 0x8100, 0xfb04, 0xfe0c])
13252 # 2222/6802, 104/02
13254 # XXX - if FraggerHandle is not 0xffffffff, this is not the
13255 # first fragment, so we can only dissect this by reassembling;
13256 # the fields after "Fragment Handle" are bogus for non-0xffffffff
13257 # fragments, so we shouldn't dissect them.
13259 # XXX - are there TotalRequest requests in the packet, and
13260 # does each of them have NDSFlags and NDSVerb fields, or
13261 # does only the first one have it?
13263 pkt = NCP(0x6802, "Send NDS Fragmented Request/Reply", "nds", has_length=0)
13266 pkt.ReqCondSizeVariable()
13267 pkt.CompletionCodes([0x0000])
13268 # 2222/6803, 104/03
13269 pkt = NCP(0x6803, "Fragment Close", "nds", has_length=0)
13271 rec( 8, 4, FraggerHandle ),
13274 pkt.CompletionCodes([0x0000, 0xff00])
13275 # 2222/6804, 104/04
13276 pkt = NCP(0x6804, "Return Bindery Context", "nds", has_length=0)
13278 pkt.Reply((9, 263), [
13279 rec( 8, (1,255), binderyContext ),
13281 pkt.CompletionCodes([0x0000, 0xfe0c, 0xff00])
13282 # 2222/6805, 104/05
13283 pkt = NCP(0x6805, "Monitor NDS Connection", "nds", has_length=0)
13286 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13287 # 2222/6806, 104/06
13288 pkt = NCP(0x6806, "Return NDS Statistics", "nds", has_length=0)
13290 rec( 8, 2, NDSRequestFlags ),
13293 #Need to investigate how to decode Statistics Return Value
13294 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13295 # 2222/6807, 104/07
13296 pkt = NCP(0x6807, "Clear NDS Statistics", "nds", has_length=0)
13299 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13300 # 2222/6808, 104/08
13301 pkt = NCP(0x6808, "Reload NDS Software", "nds", has_length=0)
13304 rec( 8, 4, NDSStatus ),
13306 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13307 # 2222/68C8, 104/200
13308 pkt = NCP(0x68C8, "Query Container Audit Status", "auditing", has_length=0)
13310 rec( 8, 4, ConnectionNumber ),
13311 # rec( 12, 4, AuditIDType, LE ),
13312 # rec( 16, 4, AuditID ),
13313 # rec( 20, 2, BufferSize ),
13316 rec(8, 32, NWAuditStatus ),
13318 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13319 # 2222/68CA, 104/202
13320 pkt = NCP(0x68CA, "Add Auditor Access", "auditing", has_length=0)
13323 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13324 # 2222/68CB, 104/203
13325 pkt = NCP(0x68CB, "Change Auditor Container Password", "auditing", has_length=0)
13328 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13329 # 2222/68CC, 104/204
13330 pkt = NCP(0x68CC, "Check Auditor Access", "auditing", has_length=0)
13333 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13334 # 2222/68CE, 104/206
13335 pkt = NCP(0x680CE, "Disable Container Auditing", "auditing", has_length=0)
13338 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13339 # 2222/68CF, 104/207
13340 pkt = NCP(0x68CF, "Enable Container Auditing", "auditing", has_length=0)
13343 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13344 # 2222/68D1, 104/209
13345 pkt = NCP(0x68D1, "Read Audit File Header", "auditing", has_length=0)
13348 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13349 # 2222/68D3, 104/211
13350 pkt = NCP(0x68D3, "Remove Auditor Access", "auditing", has_length=0)
13353 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13354 # 2222/68D4, 104/212
13355 pkt = NCP(0x68D4, "Reset Audit File", "auditing", has_length=0)
13358 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13359 # 2222/68D6, 104/214
13360 pkt = NCP(0x68D6, "Write Audit File Configuration Header", "auditing", has_length=0)
13363 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13364 # 2222/68D7, 104/215
13365 pkt = NCP(0x68D7, "Change Auditor Container Password2", "auditing", has_length=0)
13368 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13369 # 2222/68D8, 104/216
13370 pkt = NCP(0x68D8, "Return Audit Flags", "auditing", has_length=0)
13373 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13374 # 2222/68D9, 104/217
13375 pkt = NCP(0x68D9, "Close Old Audit File", "auditing", has_length=0)
13378 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13379 # 2222/68DB, 104/219
13380 pkt = NCP(0x68DB, "Check Level Two Access", "auditing", has_length=0)
13383 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13384 # 2222/68DC, 104/220
13385 pkt = NCP(0x68DC, "Check Object Audited", "auditing", has_length=0)
13388 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13389 # 2222/68DD, 104/221
13390 pkt = NCP(0x68DD, "Change Object Audited", "auditing", has_length=0)
13393 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13394 # 2222/68DE, 104/222
13395 pkt = NCP(0x68DE, "Return Old Audit File List", "auditing", has_length=0)
13398 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13399 # 2222/68DF, 104/223
13400 pkt = NCP(0x68DF, "Init Audit File Reads", "auditing", has_length=0)
13403 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13404 # 2222/68E0, 104/224
13405 pkt = NCP(0x68E0, "Read Auditing File", "auditing", has_length=0)
13408 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13409 # 2222/68E1, 104/225
13410 pkt = NCP(0x68E1, "Delete Old Audit File", "auditing", has_length=0)
13413 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13414 # 2222/68E5, 104/229
13415 pkt = NCP(0x68E5, "Set Audit Password", "auditing", has_length=0)
13418 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13419 # 2222/68E7, 104/231
13420 pkt = NCP(0x68E7, "External Audit Append To File", "auditing", has_length=0)
13423 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13425 pkt = NCP(0x69, "Log File", 'file')
13426 pkt.Request( (12, 267), [
13427 rec( 7, 1, DirHandle ),
13428 rec( 8, 1, LockFlag ),
13429 rec( 9, 2, TimeoutLimit ),
13430 rec( 11, (1, 256), FilePath ),
13431 ], info_str=(FilePath, "Log File: %s", "/%s"))
13433 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x9600, 0xfe0d, 0xff01])
13435 pkt = NCP(0x6A, "Lock File Set", 'file')
13437 rec( 7, 2, TimeoutLimit ),
13440 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x9600, 0xfe0d, 0xff01])
13442 pkt = NCP(0x6B, "Log Logical Record", 'file')
13443 pkt.Request( (11, 266), [
13444 rec( 7, 1, LockFlag ),
13445 rec( 8, 2, TimeoutLimit ),
13446 rec( 10, (1, 256), SynchName ),
13447 ], info_str=(SynchName, "Log Logical Record: %s", ", %s"))
13449 pkt.CompletionCodes([0x0000, 0x7f00, 0x9600, 0xfe0d, 0xff01])
13451 pkt = NCP(0x6C, "Log Logical Record", 'file')
13453 rec( 7, 1, LockFlag ),
13454 rec( 8, 2, TimeoutLimit ),
13457 pkt.CompletionCodes([0x0000, 0x7f00, 0x9600, 0xfe0d, 0xff01])
13459 pkt = NCP(0x6D, "Log Physical Record", 'file')
13461 rec( 7, 1, LockFlag ),
13462 rec( 8, 6, FileHandle ),
13463 rec( 14, 4, LockAreasStartOffset ),
13464 rec( 18, 4, LockAreaLen ),
13465 rec( 22, 2, LockTimeout ),
13468 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
13470 pkt = NCP(0x6E, "Lock Physical Record Set", 'file')
13472 rec( 7, 1, LockFlag ),
13473 rec( 8, 2, LockTimeout ),
13476 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
13477 # 2222/6F00, 111/00
13478 pkt = NCP(0x6F00, "Open/Create a Semaphore", 'file', has_length=0)
13479 pkt.Request((10,521), [
13480 rec( 8, 1, InitialSemaphoreValue ),
13481 rec( 9, (1, 512), SemaphoreName ),
13482 ], info_str=(SemaphoreName, "Open/Create Semaphore: %s", ", %s"))
13484 rec( 8, 4, SemaphoreHandle ),
13485 rec( 12, 1, SemaphoreOpenCount ),
13487 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
13488 # 2222/6F01, 111/01
13489 pkt = NCP(0x6F01, "Examine Semaphore", 'file', has_length=0)
13491 rec( 8, 4, SemaphoreHandle ),
13494 rec( 8, 1, SemaphoreValue ),
13495 rec( 9, 1, SemaphoreOpenCount ),
13497 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
13498 # 2222/6F02, 111/02
13499 pkt = NCP(0x6F02, "Wait On (P) Semaphore", 'file', has_length=0)
13501 rec( 8, 4, SemaphoreHandle ),
13502 rec( 12, 2, LockTimeout ),
13505 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13506 # 2222/6F03, 111/03
13507 pkt = NCP(0x6F03, "Signal (V) Semaphore", 'file', has_length=0)
13509 rec( 8, 4, SemaphoreHandle ),
13512 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13513 # 2222/6F04, 111/04
13514 pkt = NCP(0x6F04, "Close Semaphore", 'file', has_length=0)
13516 rec( 8, 4, SemaphoreHandle ),
13519 rec( 8, 1, SemaphoreOpenCount ),
13520 rec( 9, 1, SemaphoreShareCount ),
13522 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13523 # 2222/7201, 114/01
13524 pkt = NCP(0x7201, "Timesync Get Time", 'file')
13527 rec( 8, 12, theTimeStruct ),
13528 rec(20, 8, eventOffset ),
13529 rec(28, 4, eventTime ),
13531 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13532 # 2222/7202, 114/02
13533 pkt = NCP(0x7202, "Timesync Exchange Time", 'file')
13534 pkt.Request((63,112), [
13535 rec( 10, 4, protocolFlags ),
13536 rec( 14, 4, nodeFlags ),
13537 rec( 18, 8, sourceOriginateTime ),
13538 rec( 26, 8, targetReceiveTime ),
13539 rec( 34, 8, targetTransmitTime ),
13540 rec( 42, 8, sourceReturnTime ),
13541 rec( 50, 8, eventOffset ),
13542 rec( 58, 4, eventTime ),
13543 rec( 62, (1,50), ServerNameLen ),
13544 ], info_str=(ServerNameLen, "Timesync Exchange Time: %s", ", %s"))
13545 pkt.Reply((64,113), [
13546 rec( 8, 3, Reserved3 ),
13547 rec( 11, 4, protocolFlags ),
13548 rec( 15, 4, nodeFlags ),
13549 rec( 19, 8, sourceOriginateTime ),
13550 rec( 27, 8, targetReceiveTime ),
13551 rec( 35, 8, targetTransmitTime ),
13552 rec( 43, 8, sourceReturnTime ),
13553 rec( 51, 8, eventOffset ),
13554 rec( 59, 4, eventTime ),
13555 rec( 63, (1,50), ServerNameLen ),
13557 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13558 # 2222/7205, 114/05
13559 pkt = NCP(0x7205, "Timesync Get Server List", 'file')
13561 rec( 10, 4, StartNumber ),
13564 rec( 8, 4, nameType ),
13565 rec( 12, 48, ServerName ),
13566 rec( 60, 4, serverListFlags ),
13567 rec( 64, 2, startNumberFlag ),
13569 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13570 # 2222/7206, 114/06
13571 pkt = NCP(0x7206, "Timesync Set Server List", 'file')
13573 rec( 10, 4, StartNumber ),
13576 rec( 8, 4, nameType ),
13577 rec( 12, 48, ServerName ),
13578 rec( 60, 4, serverListFlags ),
13579 rec( 64, 2, startNumberFlag ),
13581 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13582 # 2222/720C, 114/12
13583 pkt = NCP(0x720C, "Timesync Get Version", 'file')
13586 rec( 8, 4, version ),
13588 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13589 # 2222/7B01, 123/01
13590 pkt = NCP(0x7B01, "Get Cache Information", 'stats')
13592 rec(10, 1, VersionNumber),
13593 rec(11, 1, RevisionNumber),
13596 rec(8, 4, CurrentServerTime, LE),
13597 rec(12, 1, VConsoleVersion ),
13598 rec(13, 1, VConsoleRevision ),
13599 rec(14, 2, Reserved2 ),
13600 rec(16, 104, Counters ),
13601 rec(120, 40, ExtraCacheCntrs ),
13602 rec(160, 40, MemoryCounters ),
13603 rec(200, 48, TrendCounters ),
13604 rec(248, 40, CacheInfo ),
13606 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xff00])
13607 # 2222/7B02, 123/02
13608 pkt = NCP(0x7B02, "Get File Server Information", 'stats')
13611 rec(8, 4, CurrentServerTime ),
13612 rec(12, 1, VConsoleVersion ),
13613 rec(13, 1, VConsoleRevision ),
13614 rec(14, 2, Reserved2 ),
13615 rec(16, 4, NCPStaInUseCnt ),
13616 rec(20, 4, NCPPeakStaInUse ),
13617 rec(24, 4, NumOfNCPReqs ),
13618 rec(28, 4, ServerUtilization ),
13619 rec(32, 96, ServerInfo ),
13620 rec(128, 22, FileServerCounters ),
13622 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13623 # 2222/7B03, 123/03
13624 pkt = NCP(0x7B03, "NetWare File System Information", 'stats')
13626 rec(10, 1, FileSystemID ),
13629 rec(8, 4, CurrentServerTime ),
13630 rec(12, 1, VConsoleVersion ),
13631 rec(13, 1, VConsoleRevision ),
13632 rec(14, 2, Reserved2 ),
13633 rec(16, 52, FileSystemInfo ),
13635 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13636 # 2222/7B04, 123/04
13637 pkt = NCP(0x7B04, "User Information", 'stats')
13639 rec(10, 4, ConnectionNumber ),
13641 pkt.Reply((85, 132), [
13642 rec(8, 4, CurrentServerTime ),
13643 rec(12, 1, VConsoleVersion ),
13644 rec(13, 1, VConsoleRevision ),
13645 rec(14, 2, Reserved2 ),
13646 rec(16, 68, UserInformation ),
13647 rec(84, (1, 48), UserName ),
13649 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13650 # 2222/7B05, 123/05
13651 pkt = NCP(0x7B05, "Packet Burst Information", 'stats')
13654 rec(8, 4, CurrentServerTime ),
13655 rec(12, 1, VConsoleVersion ),
13656 rec(13, 1, VConsoleRevision ),
13657 rec(14, 2, Reserved2 ),
13658 rec(16, 200, PacketBurstInformation ),
13660 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13661 # 2222/7B06, 123/06
13662 pkt = NCP(0x7B06, "IPX SPX Information", 'stats')
13665 rec(8, 4, CurrentServerTime ),
13666 rec(12, 1, VConsoleVersion ),
13667 rec(13, 1, VConsoleRevision ),
13668 rec(14, 2, Reserved2 ),
13669 rec(16, 34, IPXInformation ),
13670 rec(50, 44, SPXInformation ),
13672 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13673 # 2222/7B07, 123/07
13674 pkt = NCP(0x7B07, "Garbage Collection Information", 'stats')
13677 rec(8, 4, CurrentServerTime ),
13678 rec(12, 1, VConsoleVersion ),
13679 rec(13, 1, VConsoleRevision ),
13680 rec(14, 2, Reserved2 ),
13681 rec(16, 4, FailedAllocReqCnt ),
13682 rec(20, 4, NumberOfAllocs ),
13683 rec(24, 4, NoMoreMemAvlCnt ),
13684 rec(28, 4, NumOfGarbageColl ),
13685 rec(32, 4, FoundSomeMem ),
13686 rec(36, 4, NumOfChecks ),
13688 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13689 # 2222/7B08, 123/08
13690 pkt = NCP(0x7B08, "CPU Information", 'stats')
13692 rec(10, 4, CPUNumber ),
13695 rec(8, 4, CurrentServerTime ),
13696 rec(12, 1, VConsoleVersion ),
13697 rec(13, 1, VConsoleRevision ),
13698 rec(14, 2, Reserved2 ),
13699 rec(16, 4, NumberOfCPUs ),
13700 rec(20, 31, CPUInformation ),
13702 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13703 # 2222/7B09, 123/09
13704 pkt = NCP(0x7B09, "Volume Switch Information", 'stats')
13706 rec(10, 4, StartNumber )
13709 rec(8, 4, CurrentServerTime ),
13710 rec(12, 1, VConsoleVersion ),
13711 rec(13, 1, VConsoleRevision ),
13712 rec(14, 2, Reserved2 ),
13713 rec(16, 4, TotalLFSCounters ),
13714 rec(20, 4, CurrentLFSCounters, var="x"),
13715 rec(24, 4, LFSCounters, repeat="x"),
13717 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13718 # 2222/7B0A, 123/10
13719 pkt = NCP(0x7B0A, "Get NLM Loaded List", 'stats')
13721 rec(10, 4, StartNumber )
13724 rec(8, 4, CurrentServerTime ),
13725 rec(12, 1, VConsoleVersion ),
13726 rec(13, 1, VConsoleRevision ),
13727 rec(14, 2, Reserved2 ),
13728 rec(16, 4, NLMcount ),
13729 rec(20, 4, NLMsInList, var="x" ),
13730 rec(24, 4, NLMNumbers, repeat="x" ),
13732 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13733 # 2222/7B0B, 123/11
13734 pkt = NCP(0x7B0B, "NLM Information", 'stats')
13736 rec(10, 4, NLMNumber ),
13738 pkt.Reply((79,841), [
13739 rec(8, 4, CurrentServerTime ),
13740 rec(12, 1, VConsoleVersion ),
13741 rec(13, 1, VConsoleRevision ),
13742 rec(14, 2, Reserved2 ),
13743 rec(16, 60, NLMInformation ),
13744 rec(76, (1,255), FileName ),
13745 rec(-1, (1,255), Name ),
13746 rec(-1, (1,255), Copyright ),
13748 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13749 # 2222/7B0C, 123/12
13750 pkt = NCP(0x7B0C, "Get Directory Cache Information", 'stats')
13753 rec(8, 4, CurrentServerTime ),
13754 rec(12, 1, VConsoleVersion ),
13755 rec(13, 1, VConsoleRevision ),
13756 rec(14, 2, Reserved2 ),
13757 rec(16, 56, DirCacheInfo ),
13759 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13760 # 2222/7B0D, 123/13
13761 pkt = NCP(0x7B0D, "Get Operating System Version Information", 'stats')
13764 rec(8, 4, CurrentServerTime ),
13765 rec(12, 1, VConsoleVersion ),
13766 rec(13, 1, VConsoleRevision ),
13767 rec(14, 2, Reserved2 ),
13768 rec(16, 1, OSMajorVersion ),
13769 rec(17, 1, OSMinorVersion ),
13770 rec(18, 1, OSRevision ),
13771 rec(19, 1, AccountVersion ),
13772 rec(20, 1, VAPVersion ),
13773 rec(21, 1, QueueingVersion ),
13774 rec(22, 1, SecurityRestrictionVersion ),
13775 rec(23, 1, InternetBridgeVersion ),
13776 rec(24, 4, MaxNumOfVol ),
13777 rec(28, 4, MaxNumOfConn ),
13778 rec(32, 4, MaxNumOfUsers ),
13779 rec(36, 4, MaxNumOfNmeSps ),
13780 rec(40, 4, MaxNumOfLANS ),
13781 rec(44, 4, MaxNumOfMedias ),
13782 rec(48, 4, MaxNumOfStacks ),
13783 rec(52, 4, MaxDirDepth ),
13784 rec(56, 4, MaxDataStreams ),
13785 rec(60, 4, MaxNumOfSpoolPr ),
13786 rec(64, 4, ServerSerialNumber ),
13787 rec(68, 2, ServerAppNumber ),
13789 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13790 # 2222/7B0E, 123/14
13791 pkt = NCP(0x7B0E, "Get Active Connection List by Type", 'stats')
13793 rec(10, 4, StartConnNumber ),
13794 rec(14, 1, ConnectionType ),
13797 rec(8, 4, CurrentServerTime ),
13798 rec(12, 1, VConsoleVersion ),
13799 rec(13, 1, VConsoleRevision ),
13800 rec(14, 2, Reserved2 ),
13801 rec(16, 512, ActiveConnBitList ),
13803 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfd01, 0xff00])
13804 # 2222/7B0F, 123/15
13805 pkt = NCP(0x7B0F, "Get NLM Resource Tag List", 'stats')
13807 rec(10, 4, NLMNumber ),
13808 rec(14, 4, NLMStartNumber ),
13811 rec(8, 4, CurrentServerTime ),
13812 rec(12, 1, VConsoleVersion ),
13813 rec(13, 1, VConsoleRevision ),
13814 rec(14, 2, Reserved2 ),
13815 rec(16, 4, TtlNumOfRTags ),
13816 rec(20, 4, CurNumOfRTags ),
13817 rec(24, 13, RTagStructure ),
13819 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13820 # 2222/7B10, 123/16
13821 pkt = NCP(0x7B10, "Enumerate Connection Information from Connection List", 'stats')
13823 rec(10, 1, EnumInfoMask),
13824 rec(11, 3, Reserved3),
13825 rec(14, 4, itemsInList, var="x"),
13826 rec(18, 4, connList, repeat="x"),
13828 pkt.Reply(NO_LENGTH_CHECK, [
13829 rec(8, 4, CurrentServerTime ),
13830 rec(12, 1, VConsoleVersion ),
13831 rec(13, 1, VConsoleRevision ),
13832 rec(14, 2, Reserved2 ),
13833 rec(16, 4, ItemsInPacket ),
13834 srec(netAddr, req_cond="ncp.enum_info_transport==TRUE"),
13835 srec(timeInfo, req_cond="ncp.enum_info_time==TRUE"),
13836 srec(nameInfo, req_cond="ncp.enum_info_name==TRUE"),
13837 srec(lockInfo, req_cond="ncp.enum_info_lock==TRUE"),
13838 srec(printInfo, req_cond="ncp.enum_info_print==TRUE"),
13839 srec(statsInfo, req_cond="ncp.enum_info_stats==TRUE"),
13840 srec(acctngInfo, req_cond="ncp.enum_info_account==TRUE"),
13841 srec(authInfo, req_cond="ncp.enum_info_auth==TRUE"),
13843 pkt.ReqCondSizeVariable()
13844 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13845 # 2222/7B11, 123/17
13846 pkt = NCP(0x7B11, "Enumerate NCP Service Network Addresses", 'stats')
13848 rec(10, 4, SearchNumber ),
13851 rec(8, 4, CurrentServerTime ),
13852 rec(12, 1, VConsoleVersion ),
13853 rec(13, 1, VConsoleRevision ),
13854 rec(14, 2, ServerInfoFlags ),
13855 rec(16, 16, GUID ),
13856 rec(32, 4, NextSearchNum ),
13857 rec(36, 4, ItemsInPacket, var="x"),
13858 rec(40, 20, NCPNetworkAddress, repeat="x" ),
13860 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13861 # 2222/7B14, 123/20
13862 pkt = NCP(0x7B14, "Active LAN Board List", 'stats')
13864 rec(10, 4, StartNumber ),
13867 rec(8, 4, CurrentServerTime ),
13868 rec(12, 1, VConsoleVersion ),
13869 rec(13, 1, VConsoleRevision ),
13870 rec(14, 2, Reserved2 ),
13871 rec(16, 4, MaxNumOfLANS ),
13872 rec(20, 4, ItemsInPacket, var="x"),
13873 rec(24, 4, BoardNumbers, repeat="x"),
13875 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13876 # 2222/7B15, 123/21
13877 pkt = NCP(0x7B15, "LAN Configuration Information", 'stats')
13879 rec(10, 4, BoardNumber ),
13882 rec(8, 4, CurrentServerTime ),
13883 rec(12, 1, VConsoleVersion ),
13884 rec(13, 1, VConsoleRevision ),
13885 rec(14, 2, Reserved2 ),
13886 rec(16,136, LANConfigInfo ),
13888 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13889 # 2222/7B16, 123/22
13890 pkt = NCP(0x7B16, "LAN Common Counters Information", 'stats')
13892 rec(10, 4, BoardNumber ),
13893 rec(14, 4, BlockNumber ),
13896 rec(8, 4, CurrentServerTime ),
13897 rec(12, 1, VConsoleVersion ),
13898 rec(13, 1, VConsoleRevision ),
13899 rec(14, 1, StatMajorVersion ),
13900 rec(15, 1, StatMinorVersion ),
13901 rec(16, 4, TotalCommonCnts ),
13902 rec(20, 4, TotalCntBlocks ),
13903 rec(24, 4, CustomCounters ),
13904 rec(28, 4, NextCntBlock ),
13905 rec(32, 54, CommonLanStruc ),
13907 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13908 # 2222/7B17, 123/23
13909 pkt = NCP(0x7B17, "LAN Custom Counters Information", 'stats')
13911 rec(10, 4, BoardNumber ),
13912 rec(14, 4, StartNumber ),
13915 rec(8, 4, CurrentServerTime ),
13916 rec(12, 1, VConsoleVersion ),
13917 rec(13, 1, VConsoleRevision ),
13918 rec(14, 2, Reserved2 ),
13919 rec(16, 4, NumOfCCinPkt, var="x"),
13920 rec(20, 5, CustomCntsInfo, repeat="x"),
13922 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13923 # 2222/7B18, 123/24
13924 pkt = NCP(0x7B18, "LAN Name Information", 'stats')
13926 rec(10, 4, BoardNumber ),
13929 rec(8, 4, CurrentServerTime ),
13930 rec(12, 1, VConsoleVersion ),
13931 rec(13, 1, VConsoleRevision ),
13932 rec(14, 2, Reserved2 ),
13933 rec(16, 3, BoardNameStruct ),
13935 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13936 # 2222/7B19, 123/25
13937 pkt = NCP(0x7B19, "LSL Information", 'stats')
13940 rec(8, 4, CurrentServerTime ),
13941 rec(12, 1, VConsoleVersion ),
13942 rec(13, 1, VConsoleRevision ),
13943 rec(14, 2, Reserved2 ),
13944 rec(16, 74, LSLInformation ),
13946 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13947 # 2222/7B1A, 123/26
13948 pkt = NCP(0x7B1A, "LSL Logical Board Statistics", 'stats')
13950 rec(10, 4, BoardNumber ),
13953 rec(8, 4, CurrentServerTime ),
13954 rec(12, 1, VConsoleVersion ),
13955 rec(13, 1, VConsoleRevision ),
13956 rec(14, 2, Reserved2 ),
13957 rec(16, 4, LogTtlTxPkts ),
13958 rec(20, 4, LogTtlRxPkts ),
13959 rec(24, 4, UnclaimedPkts ),
13961 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13962 # 2222/7B1B, 123/27
13963 pkt = NCP(0x7B1B, "MLID Board Information", 'stats')
13965 rec(10, 4, BoardNumber ),
13968 rec(8, 4, CurrentServerTime ),
13969 rec(12, 1, VConsoleVersion ),
13970 rec(13, 1, VConsoleRevision ),
13971 rec(14, 1, Reserved ),
13972 rec(15, 1, NumberOfProtocols ),
13973 rec(16, 28, MLIDBoardInfo ),
13975 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13976 # 2222/7B1E, 123/30
13977 pkt = NCP(0x7B1E, "Get Media Manager Object Information", 'stats')
13979 rec(10, 4, ObjectNumber ),
13982 rec(8, 4, CurrentServerTime ),
13983 rec(12, 1, VConsoleVersion ),
13984 rec(13, 1, VConsoleRevision ),
13985 rec(14, 2, Reserved2 ),
13986 rec(16, 196, GenericInfoDef ),
13988 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13989 # 2222/7B1F, 123/31
13990 pkt = NCP(0x7B1F, "Get Media Manager Objects List", 'stats')
13992 rec(10, 4, StartNumber ),
13993 rec(14, 1, MediaObjectType ),
13996 rec(8, 4, CurrentServerTime ),
13997 rec(12, 1, VConsoleVersion ),
13998 rec(13, 1, VConsoleRevision ),
13999 rec(14, 2, Reserved2 ),
14000 rec(16, 4, nextStartingNumber ),
14001 rec(20, 4, ObjectCount, var="x"),
14002 rec(24, 4, ObjectID, repeat="x"),
14004 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14005 # 2222/7B20, 123/32
14006 pkt = NCP(0x7B20, "Get Media Manager Object Childrens List", 'stats')
14008 rec(10, 4, StartNumber ),
14009 rec(14, 1, MediaObjectType ),
14010 rec(15, 3, Reserved3 ),
14011 rec(18, 4, ParentObjectNumber ),
14014 rec(8, 4, CurrentServerTime ),
14015 rec(12, 1, VConsoleVersion ),
14016 rec(13, 1, VConsoleRevision ),
14017 rec(14, 2, Reserved2 ),
14018 rec(16, 4, nextStartingNumber ),
14019 rec(20, 4, ObjectCount, var="x" ),
14020 rec(24, 4, ObjectID, repeat="x" ),
14022 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14023 # 2222/7B21, 123/33
14024 pkt = NCP(0x7B21, "Get Volume Segment List", 'stats')
14026 rec(10, 4, VolumeNumberLong ),
14029 rec(8, 4, CurrentServerTime ),
14030 rec(12, 1, VConsoleVersion ),
14031 rec(13, 1, VConsoleRevision ),
14032 rec(14, 2, Reserved2 ),
14033 rec(16, 4, NumOfSegments, var="x" ),
14034 rec(20, 12, Segments, repeat="x" ),
14036 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14037 # 2222/7B22, 123/34
14038 pkt = NCP(0x7B22, "Get Volume Information by Level", 'stats')
14040 rec(10, 4, VolumeNumberLong ),
14041 rec(14, 1, InfoLevelNumber ),
14043 pkt.Reply(NO_LENGTH_CHECK, [
14044 rec(8, 4, CurrentServerTime ),
14045 rec(12, 1, VConsoleVersion ),
14046 rec(13, 1, VConsoleRevision ),
14047 rec(14, 2, Reserved2 ),
14048 rec(16, 1, InfoLevelNumber ),
14049 rec(17, 3, Reserved3 ),
14050 srec(VolInfoStructure, req_cond="ncp.info_level_num==0x01"),
14051 srec(VolInfo2Struct, req_cond="ncp.info_level_num==0x02"),
14053 pkt.ReqCondSizeVariable()
14054 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14055 # 2222/7B28, 123/40
14056 pkt = NCP(0x7B28, "Active Protocol Stacks", 'stats')
14058 rec(10, 4, StartNumber ),
14061 rec(8, 4, CurrentServerTime ),
14062 rec(12, 1, VConsoleVersion ),
14063 rec(13, 1, VConsoleRevision ),
14064 rec(14, 2, Reserved2 ),
14065 rec(16, 4, MaxNumOfLANS ),
14066 rec(20, 4, StackCount, var="x" ),
14067 rec(24, 4, nextStartingNumber ),
14068 rec(28, 20, StackInfo, repeat="x" ),
14070 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14071 # 2222/7B29, 123/41
14072 pkt = NCP(0x7B29, "Get Protocol Stack Configuration Information", 'stats')
14074 rec(10, 4, StackNumber ),
14076 pkt.Reply((37,164), [
14077 rec(8, 4, CurrentServerTime ),
14078 rec(12, 1, VConsoleVersion ),
14079 rec(13, 1, VConsoleRevision ),
14080 rec(14, 2, Reserved2 ),
14081 rec(16, 1, ConfigMajorVN ),
14082 rec(17, 1, ConfigMinorVN ),
14083 rec(18, 1, StackMajorVN ),
14084 rec(19, 1, StackMinorVN ),
14085 rec(20, 16, ShortStkName ),
14086 rec(36, (1,128), StackFullNameStr ),
14088 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14089 # 2222/7B2A, 123/42
14090 pkt = NCP(0x7B2A, "Get Protocol Stack Statistics Information", 'stats')
14092 rec(10, 4, StackNumber ),
14095 rec(8, 4, CurrentServerTime ),
14096 rec(12, 1, VConsoleVersion ),
14097 rec(13, 1, VConsoleRevision ),
14098 rec(14, 2, Reserved2 ),
14099 rec(16, 1, StatMajorVersion ),
14100 rec(17, 1, StatMinorVersion ),
14101 rec(18, 2, ComCnts ),
14102 rec(20, 4, CounterMask ),
14103 rec(24, 4, TotalTxPkts ),
14104 rec(28, 4, TotalRxPkts ),
14105 rec(32, 4, IgnoredRxPkts ),
14106 rec(36, 2, CustomCnts ),
14108 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14109 # 2222/7B2B, 123/43
14110 pkt = NCP(0x7B2B, "Get Protocol Stack Custom Information", 'stats')
14112 rec(10, 4, StackNumber ),
14113 rec(14, 4, StartNumber ),
14116 rec(8, 4, CurrentServerTime ),
14117 rec(12, 1, VConsoleVersion ),
14118 rec(13, 1, VConsoleRevision ),
14119 rec(14, 2, Reserved2 ),
14120 rec(16, 4, CustomCount, var="x" ),
14121 rec(20, 5, CustomCntsInfo, repeat="x" ),
14123 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14124 # 2222/7B2C, 123/44
14125 pkt = NCP(0x7B2C, "Get Protocol Stack Numbers by Media Number", 'stats')
14127 rec(10, 4, MediaNumber ),
14130 rec(8, 4, CurrentServerTime ),
14131 rec(12, 1, VConsoleVersion ),
14132 rec(13, 1, VConsoleRevision ),
14133 rec(14, 2, Reserved2 ),
14134 rec(16, 4, StackCount, var="x" ),
14135 rec(20, 4, StackNumber, repeat="x" ),
14137 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14138 # 2222/7B2D, 123/45
14139 pkt = NCP(0x7B2D, "Get Protocol Stack Numbers by LAN Board Number", 'stats')
14141 rec(10, 4, BoardNumber ),
14144 rec(8, 4, CurrentServerTime ),
14145 rec(12, 1, VConsoleVersion ),
14146 rec(13, 1, VConsoleRevision ),
14147 rec(14, 2, Reserved2 ),
14148 rec(16, 4, StackCount, var="x" ),
14149 rec(20, 4, StackNumber, repeat="x" ),
14151 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14152 # 2222/7B2E, 123/46
14153 pkt = NCP(0x7B2E, "Get Media Name by Media Number", 'stats')
14155 rec(10, 4, MediaNumber ),
14157 pkt.Reply((17,144), [
14158 rec(8, 4, CurrentServerTime ),
14159 rec(12, 1, VConsoleVersion ),
14160 rec(13, 1, VConsoleRevision ),
14161 rec(14, 2, Reserved2 ),
14162 rec(16, (1,128), MediaName ),
14164 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14165 # 2222/7B2F, 123/47
14166 pkt = NCP(0x7B2F, "Get Loaded Media Number", 'stats')
14169 rec(8, 4, CurrentServerTime ),
14170 rec(12, 1, VConsoleVersion ),
14171 rec(13, 1, VConsoleRevision ),
14172 rec(14, 2, Reserved2 ),
14173 rec(16, 4, MaxNumOfMedias ),
14174 rec(20, 4, MediaListCount, var="x" ),
14175 rec(24, 4, MediaList, repeat="x" ),
14177 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14178 # 2222/7B32, 123/50
14179 pkt = NCP(0x7B32, "Get General Router and SAP Information", 'stats')
14182 rec(8, 4, CurrentServerTime ),
14183 rec(12, 1, VConsoleVersion ),
14184 rec(13, 1, VConsoleRevision ),
14185 rec(14, 2, Reserved2 ),
14186 rec(16, 2, RIPSocketNumber ),
14187 rec(18, 2, Reserved2 ),
14188 rec(20, 1, RouterDownFlag ),
14189 rec(21, 3, Reserved3 ),
14190 rec(24, 1, TrackOnFlag ),
14191 rec(25, 3, Reserved3 ),
14192 rec(28, 1, ExtRouterActiveFlag ),
14193 rec(29, 3, Reserved3 ),
14194 rec(32, 2, SAPSocketNumber ),
14195 rec(34, 2, Reserved2 ),
14196 rec(36, 1, RpyNearestSrvFlag ),
14198 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14199 # 2222/7B33, 123/51
14200 pkt = NCP(0x7B33, "Get Network Router Information", 'stats')
14202 rec(10, 4, NetworkNumber ),
14205 rec(8, 4, CurrentServerTime ),
14206 rec(12, 1, VConsoleVersion ),
14207 rec(13, 1, VConsoleRevision ),
14208 rec(14, 2, Reserved2 ),
14209 rec(16, 10, KnownRoutes ),
14211 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14212 # 2222/7B34, 123/52
14213 pkt = NCP(0x7B34, "Get Network Routers Information", 'stats')
14215 rec(10, 4, NetworkNumber),
14216 rec(14, 4, StartNumber ),
14219 rec(8, 4, CurrentServerTime ),
14220 rec(12, 1, VConsoleVersion ),
14221 rec(13, 1, VConsoleRevision ),
14222 rec(14, 2, Reserved2 ),
14223 rec(16, 4, NumOfEntries, var="x" ),
14224 rec(20, 14, RoutersInfo, repeat="x" ),
14226 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14227 # 2222/7B35, 123/53
14228 pkt = NCP(0x7B35, "Get Known Networks Information", 'stats')
14230 rec(10, 4, StartNumber ),
14233 rec(8, 4, CurrentServerTime ),
14234 rec(12, 1, VConsoleVersion ),
14235 rec(13, 1, VConsoleRevision ),
14236 rec(14, 2, Reserved2 ),
14237 rec(16, 4, NumOfEntries, var="x" ),
14238 rec(20, 10, KnownRoutes, repeat="x" ),
14240 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14241 # 2222/7B36, 123/54
14242 pkt = NCP(0x7B36, "Get Server Information", 'stats')
14243 pkt.Request((15,64), [
14244 rec(10, 2, ServerType ),
14245 rec(12, 2, Reserved2 ),
14246 rec(14, (1,50), ServerNameLen ),
14247 ], info_str=(ServerNameLen, "Get Server Information: %s", ", %s"))
14249 rec(8, 4, CurrentServerTime ),
14250 rec(12, 1, VConsoleVersion ),
14251 rec(13, 1, VConsoleRevision ),
14252 rec(14, 2, Reserved2 ),
14253 rec(16, 12, ServerAddress ),
14254 rec(28, 2, HopsToNet ),
14256 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14257 # 2222/7B37, 123/55
14258 pkt = NCP(0x7B37, "Get Server Sources Information", 'stats')
14259 pkt.Request((19,68), [
14260 rec(10, 4, StartNumber ),
14261 rec(14, 2, ServerType ),
14262 rec(16, 2, Reserved2 ),
14263 rec(18, (1,50), ServerNameLen ),
14264 ], info_str=(ServerNameLen, "Get Server Sources Info: %s", ", %s"))
14266 rec(8, 4, CurrentServerTime ),
14267 rec(12, 1, VConsoleVersion ),
14268 rec(13, 1, VConsoleRevision ),
14269 rec(14, 2, Reserved2 ),
14270 rec(16, 4, NumOfEntries, var="x" ),
14271 rec(20, 12, ServersSrcInfo, repeat="x" ),
14273 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14274 # 2222/7B38, 123/56
14275 pkt = NCP(0x7B38, "Get Known Servers Information", 'stats')
14277 rec(10, 4, StartNumber ),
14278 rec(14, 2, ServerType ),
14281 rec(8, 4, CurrentServerTime ),
14282 rec(12, 1, VConsoleVersion ),
14283 rec(13, 1, VConsoleRevision ),
14284 rec(14, 2, Reserved2 ),
14285 rec(16, 4, NumOfEntries, var="x" ),
14286 rec(20, 15, KnownServStruc, repeat="x" ),
14288 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14289 # 2222/7B3C, 123/60
14290 pkt = NCP(0x7B3C, "Get Server Set Commands Information", 'stats')
14292 rec(10, 4, StartNumber ),
14294 pkt.Reply(NO_LENGTH_CHECK, [
14295 rec(8, 4, CurrentServerTime ),
14296 rec(12, 1, VConsoleVersion ),
14297 rec(13, 1, VConsoleRevision ),
14298 rec(14, 2, Reserved2 ),
14299 rec(16, 4, TtlNumOfSetCmds ),
14300 rec(20, 4, nextStartingNumber ),
14301 rec(24, 1, SetCmdType ),
14302 rec(25, 3, Reserved3 ),
14303 rec(28, 1, SetCmdCategory ),
14304 rec(29, 3, Reserved3 ),
14305 rec(32, 1, SetCmdFlags ),
14306 rec(33, 3, Reserved3 ),
14307 rec(36, 100, SetCmdName ),
14308 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x00"),
14309 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x01"),
14310 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x02"),
14311 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x04"),
14312 srec(SetCmdValueString, req_cond="ncp.set_cmd_type==0x05"),
14313 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x06"),
14314 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x07"),
14316 pkt.ReqCondSizeVariable()
14317 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14318 # 2222/7B3D, 123/61
14319 pkt = NCP(0x7B3D, "Get Server Set Categories", 'stats')
14321 rec(10, 4, StartNumber ),
14324 rec(8, 4, CurrentServerTime ),
14325 rec(12, 1, VConsoleVersion ),
14326 rec(13, 1, VConsoleRevision ),
14327 rec(14, 2, Reserved2 ),
14328 rec(16, 4, NumberOfSetCategories ),
14329 rec(20, 4, nextStartingNumber ),
14330 rec(24, 100, CategoryName ),
14332 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14333 # 2222/7B3E, 123/62
14334 pkt = NCP(0x7B3E, "Get Server Set Commands Information By Name", 'stats')
14336 rec(10, 100, SetParmName ),
14337 ], info_str=(SetParmName, "Get Server Set Command Info for: %s", ", %s"))
14338 pkt.Reply(NO_LENGTH_CHECK, [
14339 rec(8, 4, CurrentServerTime ),
14340 rec(12, 1, VConsoleVersion ),
14341 rec(13, 1, VConsoleRevision ),
14342 rec(14, 2, Reserved2 ),
14343 rec(16, 4, TtlNumOfSetCmds ),
14344 rec(20, 4, nextStartingNumber ),
14345 rec(24, 1, SetCmdType ),
14346 rec(25, 3, Reserved3 ),
14347 rec(28, 1, SetCmdCategory ),
14348 rec(29, 3, Reserved3 ),
14349 rec(32, 1, SetCmdFlags ),
14350 rec(33, 3, Reserved3 ),
14351 rec(36, 100, SetCmdName ),
14352 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x00"),
14353 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x01"),
14354 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x02"),
14355 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x04"),
14356 srec(SetCmdValueString, req_cond="ncp.set_cmd_type==0x05"),
14357 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x06"),
14358 srec(SetCmdValueNum, req_cond="ncp.set_cmd_type==0x07"),
14360 pkt.ReqCondSizeVariable()
14361 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14362 # 2222/7B46, 123/70
14363 pkt = NCP(0x7B46, "Get Current Compressing File", 'stats')
14365 rec(10, 4, VolumeNumberLong ),
14368 rec(8, 4, ParentID ),
14369 rec(12, 4, DirectoryEntryNumber ),
14370 rec(16, 4, compressionStage ),
14371 rec(20, 4, ttlIntermediateBlks ),
14372 rec(24, 4, ttlCompBlks ),
14373 rec(28, 4, curIntermediateBlks ),
14374 rec(32, 4, curCompBlks ),
14375 rec(36, 4, curInitialBlks ),
14376 rec(40, 4, fileFlags ),
14377 rec(44, 4, projectedCompSize ),
14378 rec(48, 4, originalSize ),
14379 rec(52, 4, compressVolume ),
14381 pkt.CompletionCodes([0x0000, 0x7e00, 0x7901, 0xfb06, 0xff00])
14382 # 2222/7B47, 123/71
14383 pkt = NCP(0x7B47, "Get Current DeCompressing File Info List", 'stats')
14385 rec(10, 4, VolumeNumberLong ),
14388 rec(8, 4, FileListCount ),
14389 rec(12, 16, FileInfoStruct ),
14391 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
14392 # 2222/7B48, 123/72
14393 pkt = NCP(0x7B48, "Get Compression and Decompression Time and Counts", 'stats')
14395 rec(10, 4, VolumeNumberLong ),
14398 rec(8, 56, CompDeCompStat ),
14400 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
14401 # 2222/8301, 131/01
14402 pkt = NCP(0x8301, "RPC Load an NLM", 'fileserver')
14404 rec(10, 4, NLMLoadOptions ),
14405 rec(14, 16, Reserved16 ),
14406 rec(30, 255, PathAndName ),
14407 ], info_str=(PathAndName, "RPC Load NLM: %s", ", %s"))
14409 rec(8, 4, RPCccode ),
14411 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14412 # 2222/8302, 131/02
14413 pkt = NCP(0x8302, "RPC Unload an NLM", 'fileserver')
14415 rec(10, 20, Reserved20 ),
14416 rec(30, 70, NLMName ),
14417 ], info_str=(NLMName, "RPC Unload NLM: %s", ", %s"))
14419 rec(8, 4, RPCccode ),
14421 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14422 # 2222/8303, 131/03
14423 pkt = NCP(0x8303, "RPC Mount Volume", 'fileserver')
14425 rec(10, 20, Reserved20 ),
14426 rec(30, 70, VolumeNameStringz ),
14427 ], info_str=(VolumeNameStringz, "RPC Mount Volume: %s", ", %s"))
14429 rec(8, 4, RPCccode),
14430 rec(12, 16, Reserved16 ),
14431 rec(28, 4, VolumeNumberLong ),
14433 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14434 # 2222/8304, 131/04
14435 pkt = NCP(0x8304, "RPC Dismount Volume", 'fileserver')
14437 rec(10, 20, Reserved20 ),
14438 rec(30, 70, VolumeNameStringz ),
14439 ], info_str=(VolumeNameStringz, "RPC Dismount Volume: %s", ", %s"))
14441 rec(8, 4, RPCccode ),
14443 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14444 # 2222/8305, 131/05
14445 pkt = NCP(0x8305, "RPC Add Name Space To Volume", 'fileserver')
14447 rec(10, 20, Reserved20 ),
14448 rec(30, 70, AddNameSpaceAndVol ),
14449 ], info_str=(AddNameSpaceAndVol, "RPC Add Name Space to Volume: %s", ", %s"))
14451 rec(8, 4, RPCccode ),
14453 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14454 # 2222/8306, 131/06
14455 pkt = NCP(0x8306, "RPC Set Command Value", 'fileserver')
14457 rec(10, 1, SetCmdType ),
14458 rec(11, 3, Reserved3 ),
14459 rec(14, 4, SetCmdValueNum ),
14460 rec(18, 12, Reserved12 ),
14461 rec(30, 70, SetCmdName ),
14462 ], info_str=(SetCmdName, "RPC Set Command Value: %s", ", %s"))
14464 rec(8, 4, RPCccode ),
14466 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14467 # 2222/8307, 131/07
14468 pkt = NCP(0x8307, "RPC Execute NCF File", 'fileserver')
14470 rec(10, 20, Reserved20 ),
14471 rec(30, 255, PathAndName ),
14472 ], info_str=(PathAndName, "RPC Execute NCF File: %s", ", %s"))
14474 rec(8, 4, RPCccode ),
14476 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14477 if __name__ == '__main__':
14479 # filename = "ncp.pstats"
14480 # profile.run("main()", filename)
14484 # p = pstats.Stats(filename)
14486 # print "Stats sorted by cumulative time"
14487 # p.strip_dirs().sort_stats('cumulative').print_stats()
14489 # print "Function callees"
14490 # p.print_callees()