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/ncp.htm (where you can download an
19 *.exe file which installs a PDF, although you may have to create a login
24 http://developer.novell.com/ndk/doc/ncp/
25 for a badly-formatted HTML version of the same PDF.
28 $Id: ncp2222.py,v 1.63 2003/11/01 04:42:19 guy Exp $
31 Portions Copyright (c) 2000-2002 by Gilbert Ramirez <gram@alumni.rice.edu>.
32 Portions Copyright (c) Novell, Inc. 2000-2003.
34 This program is free software; you can redistribute it and/or
35 modify it under the terms of the GNU General Public License
36 as published by the Free Software Foundation; either version 2
37 of the License, or (at your option) any later version.
39 This program is distributed in the hope that it will be useful,
40 but WITHOUT ANY WARRANTY; without even the implied warranty of
41 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
42 GNU General Public License for more details.
44 You should have received a copy of the GNU General Public License
45 along with this program; if not, write to the Free Software
46 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
76 PROTO_LENGTH_UNKNOWN = -1
78 global_highest_var = -1
82 REQ_COND_SIZE_VARIABLE = "REQ_COND_SIZE_VARIABLE"
83 REQ_COND_SIZE_CONSTANT = "REQ_COND_SIZE_CONSTANT"
85 ##############################################################################
87 ##############################################################################
89 class UniqueCollection:
90 """The UniqueCollection class stores objects which can be compared to other
91 objects of the same class. If two objects in the collection are equivalent,
92 only one is stored."""
94 def __init__(self, name):
98 self.member_reprs = {}
100 def Add(self, object):
101 """Add an object to the members lists, if a comparable object
102 doesn't already exist. The object that is in the member list, that is
103 either the object that was added or the comparable object that was
104 already in the member list, is returned."""
107 # Is 'object' a duplicate of some other member?
108 if self.member_reprs.has_key(r):
109 return self.member_reprs[r]
111 self.member_reprs[r] = object
112 self.members.append(object)
116 "Returns the list of members."
119 def HasMember(self, object):
120 "Does the list of members contain the object?"
121 if self.members_reprs.has_key(repr(object)):
126 # This list needs to be defined before the NCP types are defined,
127 # because the NCP types are defined in the global scope, not inside
128 # a function's scope.
129 ptvc_lists = UniqueCollection('PTVC Lists')
131 ##############################################################################
134 "NamedList's keep track of PTVC's and Completion Codes"
135 def __init__(self, name, list):
140 def __cmp__(self, other):
141 "Compare this NamedList to another"
143 if isinstance(other, NamedList):
144 return cmp(self.list, other.list)
149 def Name(self, new_name = None):
150 "Get/Set name of list"
156 "Returns record lists"
160 "Is there no list (different from an empty list)?"
161 return self.list == None
164 "It the list empty (different from a null list)?"
165 assert(not self.Null())
173 return repr(self.list)
175 class PTVC(NamedList):
176 """ProtoTree TVBuff Cursor List ("PTVC List") Class"""
178 def __init__(self, name, records):
180 NamedList.__init__(self, name, [])
182 global global_highest_var
184 expected_offset = None
189 # Make a PTVCRecord object for each list in 'records'
190 for record in records:
191 offset = record[REC_START]
192 length = record[REC_LENGTH]
193 field = record[REC_FIELD]
194 endianness = record[REC_ENDIANNESS]
197 var_name = record[REC_VAR]
199 # Did we already define this var?
200 if named_vars.has_key(var_name):
201 sys.exit("%s has multiple %s vars." % \
204 highest_var = highest_var + 1
206 if highest_var > global_highest_var:
207 global_highest_var = highest_var
208 named_vars[var_name] = var
213 repeat_name = record[REC_REPEAT]
215 # Do we have this var?
216 if not named_vars.has_key(repeat_name):
217 sys.exit("%s does not have %s var defined." % \
219 repeat = named_vars[repeat_name]
224 req_cond = record[REC_REQ_COND]
225 if req_cond != NO_REQ_COND:
226 global_req_cond[req_cond] = None
228 ptvc_rec = PTVCRecord(field, length, endianness, var, repeat, req_cond)
230 if expected_offset == None:
231 expected_offset = offset
233 elif expected_offset == -1:
236 elif expected_offset != offset and offset != -1:
237 msg.write("Expected offset in %s for %s to be %d\n" % \
238 (name, field.HFName(), expected_offset))
241 # We can't make a PTVC list from a variable-length
242 # packet, unless the fields can tell us at run time
243 # how long the packet is. That is, nstring8 is fine, since
244 # the field has an integer telling us how long the string is.
245 # Fields that don't have a length determinable at run-time
246 # cannot be variable-length.
247 if type(ptvc_rec.Length()) == type(()):
248 if isinstance(ptvc_rec.Field(), nstring):
251 elif isinstance(ptvc_rec.Field(), nbytes):
254 elif isinstance(ptvc_rec.Field(), struct):
258 field = ptvc_rec.Field()
259 assert 0, "Cannot make PTVC from %s, type %s" % \
260 (field.HFName(), field)
262 elif expected_offset > -1:
263 if ptvc_rec.Length() < 0:
266 expected_offset = expected_offset + ptvc_rec.Length()
269 self.list.append(ptvc_rec)
272 return "ett_%s" % (self.Name(),)
276 x = "static const ptvc_record %s[] = {\n" % (self.Name())
277 for ptvc_rec in self.list:
278 x = x + "\t%s,\n" % (ptvc_rec.Code())
279 x = x + "\t{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }\n"
285 for ptvc_rec in self.list:
286 x = x + repr(ptvc_rec)
290 class PTVCBitfield(PTVC):
291 def __init__(self, name, vars):
292 NamedList.__init__(self, name, [])
295 ptvc_rec = PTVCRecord(var, var.Length(), var.Endianness(),
296 NO_VAR, NO_REPEAT, NO_REQ_COND)
297 self.list.append(ptvc_rec)
300 ett_name = self.ETTName()
301 x = "static gint %s;\n" % (ett_name,)
303 x = x + "static const ptvc_record ptvc_%s[] = {\n" % (self.Name())
304 for ptvc_rec in self.list:
305 x = x + "\t%s,\n" % (ptvc_rec.Code())
306 x = x + "\t{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }\n"
309 x = x + "static const sub_ptvc_record %s = {\n" % (self.Name(),)
310 x = x + "\t&%s,\n" % (ett_name,)
312 x = x + "\tptvc_%s,\n" % (self.Name(),)
318 def __init__(self, field, length, endianness, var, repeat, req_cond):
322 self.endianness = endianness
325 self.req_cond = req_cond
327 def __cmp__(self, other):
328 "Comparison operator"
329 if self.field != other.field:
331 elif self.length < other.length:
333 elif self.length > other.length:
335 elif self.endianness != other.endianness:
341 # Nice textual representations
342 if self.var == NO_VAR:
347 if self.repeat == NO_REPEAT:
352 if self.req_cond == NO_REQ_COND:
353 req_cond = "NO_REQ_COND"
355 req_cond = global_req_cond[self.req_cond]
356 assert req_cond != None
358 if isinstance(self.field, struct):
359 return self.field.ReferenceString(var, repeat, req_cond)
361 return self.RegularCode(var, repeat, req_cond)
363 def RegularCode(self, var, repeat, req_cond):
364 "String representation"
366 if self.endianness == LE:
371 if type(self.length) == type(0):
374 # This is for cases where a length is needed
375 # in order to determine a following variable-length,
376 # like nstring8, where 1 byte is needed in order
377 # to determine the variable length.
378 var_length = self.field.Length()
382 if length == PROTO_LENGTH_UNKNOWN:
383 # XXX length = "PROTO_LENGTH_UNKNOWN"
386 assert length, "Length not handled for %s" % (self.field.HFName(),)
388 sub_ptvc_name = self.field.PTVCName()
389 if sub_ptvc_name != "NULL":
390 sub_ptvc_name = "&%s" % (sub_ptvc_name,)
393 return "{ &%s, %s, %s, %s, %s, %s, %s, %s }" % \
394 (self.field.HFName(), length, sub_ptvc_name,
395 endianness, var, repeat, req_cond,
396 self.field.SpecialFmt())
408 return "{%s len=%s end=%s var=%s rpt=%s rqc=%s}" % \
409 (self.field.HFName(), self.length,
410 self.endianness, self.var, self.repeat, self.req_cond)
412 ##############################################################################
416 def __init__(self, func_code, description, group, has_length=1):
418 self.func_code = func_code
419 self.description = description
422 self.request_records = None
423 self.reply_records = None
424 self.has_length = has_length
425 self.req_cond_size = None
426 self.req_info_str = None
428 if not groups.has_key(group):
429 msg.write("NCP 0x%x has invalid group '%s'\n" % \
430 (self.func_code, group))
433 if self.HasSubFunction():
434 # NCP Function with SubFunction
435 self.start_offset = 10
437 # Simple NCP Function
438 self.start_offset = 7
440 def ReqCondSize(self):
441 return self.req_cond_size
443 def ReqCondSizeVariable(self):
444 self.req_cond_size = REQ_COND_SIZE_VARIABLE
446 def ReqCondSizeConstant(self):
447 self.req_cond_size = REQ_COND_SIZE_CONSTANT
449 def FunctionCode(self, part=None):
450 "Returns the function code for this NCP packet."
452 return self.func_code
454 if self.HasSubFunction():
455 return (self.func_code & 0xff00) >> 8
457 return self.func_code
459 if self.HasSubFunction():
460 return self.func_code & 0x00ff
464 msg.write("Unknown directive '%s' for function_code()\n" % (part))
467 def HasSubFunction(self):
468 "Does this NPC packet require a subfunction field?"
469 if self.func_code <= 0xff:
475 return self.has_length
477 def Description(self):
478 return self.description
483 def PTVCRequest(self):
484 return self.ptvc_request
487 return self.ptvc_reply
489 def Request(self, size, records=[], **kwargs):
490 self.request_size = size
491 self.request_records = records
492 if self.HasSubFunction():
494 self.CheckRecords(size, records, "Request", 10)
496 self.CheckRecords(size, records, "Request", 8)
498 self.CheckRecords(size, records, "Request", 7)
499 self.ptvc_request = self.MakePTVC(records, "request")
501 if kwargs.has_key("info_str"):
502 self.req_info_str = kwargs["info_str"]
504 def Reply(self, size, records=[]):
505 self.reply_size = size
506 self.reply_records = records
507 self.CheckRecords(size, records, "Reply", 8)
508 self.ptvc_reply = self.MakePTVC(records, "reply")
510 def CheckRecords(self, size, records, descr, min_hdr_length):
511 "Simple sanity check"
512 if size == NO_LENGTH_CHECK:
516 if type(size) == type(()):
520 lower = min_hdr_length
521 upper = min_hdr_length
523 for record in records:
524 rec_size = record[REC_LENGTH]
527 if type(rec_size) == type(()):
528 rec_lower = rec_size[0]
529 rec_upper = rec_size[1]
531 lower = lower + rec_lower
532 upper = upper + rec_upper
536 msg.write("%s records for 2222/0x%x sum to %d bytes minimum, but param1 shows %d\n" \
537 % (descr, self.FunctionCode(), lower, min))
540 msg.write("%s records for 2222/0x%x sum to %d bytes maximum, but param1 shows %d\n" \
541 % (descr, self.FunctionCode(), upper, max))
548 def MakePTVC(self, records, name_suffix):
549 """Makes a PTVC out of a request or reply record list. Possibly adds
550 it to the global list of PTVCs (the global list is a UniqueCollection,
551 so an equivalent PTVC may already be in the global list)."""
553 name = "%s_%s" % (self.CName(), name_suffix)
554 ptvc = PTVC(name, records)
555 return ptvc_lists.Add(ptvc)
558 "Returns a C symbol based on the NCP function code"
559 return "ncp_0x%x" % (self.func_code)
561 def InfoStrName(self):
562 "Returns a C symbol based on the NCP function code, for the info_str"
563 return "info_str_0x%x" % (self.func_code)
566 """Returns a list of variables used in the request and reply records.
567 A variable is listed only once, even if it is used twice (once in
568 the request, once in the reply)."""
571 if self.request_records:
572 for record in self.request_records:
573 var = record[REC_FIELD]
574 variables[var.HFName()] = var
576 sub_vars = var.SubVariables()
578 variables[sv.HFName()] = sv
580 if self.reply_records:
581 for record in self.reply_records:
582 var = record[REC_FIELD]
583 variables[var.HFName()] = var
585 sub_vars = var.SubVariables()
587 variables[sv.HFName()] = sv
589 return variables.values()
591 def CalculateReqConds(self):
592 """Returns a list of request conditions (dfilter text) used
593 in the reply records. A request condition is listed only once,
594 even it it used twice. """
596 if self.reply_records:
597 for record in self.reply_records:
598 text = record[REC_REQ_COND]
599 if text != NO_REQ_COND:
603 self.req_conds = None
606 dfilter_texts = texts.keys()
608 name = "%s_req_cond_indexes" % (self.CName(),)
609 return NamedList(name, dfilter_texts)
611 def GetReqConds(self):
612 return self.req_conds
614 def SetReqConds(self, new_val):
615 self.req_conds = new_val
618 def CompletionCodes(self, codes=None):
619 """Sets or returns the list of completion
620 codes. Internally, a NamedList is used to store the
621 completion codes, but the caller of this function never
622 realizes that because Python lists are the input and
631 if not errors.has_key(code):
632 msg.write("Errors table does not have key 0x%04x for NCP=0x%x\n" % (code,
636 # Delay the exit until here so that the programmer can get
637 # the complete list of missing error codes
641 # Create CompletionCode (NamedList) object and possible
642 # add it to the global list of completion code lists.
643 name = "%s_errors" % (self.CName(),)
645 codes_list = NamedList(name, codes)
646 self.codes = compcode_lists.Add(codes_list)
651 """Adds the NCP object to the global collection of NCP
652 objects. This is done automatically after setting the
653 CompletionCode list. Yes, this is a shortcut, but it makes
654 our list of NCP packet definitions look neater, since an
655 explicit "add to global list of packets" is not needed."""
657 # Add packet to global collection of packets
660 def rec(start, length, field, endianness=None, **kw):
661 return _rec(start, length, field, endianness, kw)
663 def srec(field, endianness=None, **kw):
664 return _rec(-1, -1, field, endianness, kw)
666 def _rec(start, length, field, endianness, kw):
667 # If endianness not explicitly given, use the field's
669 if endianness == None:
670 endianness = field.Endianness()
673 if kw.has_key("var"):
674 # Is the field an INT ?
675 if not isinstance(field, CountingNumber):
676 sys.exit("Field %s used as count variable, but not integer." \
682 # If 'var' not used, 'repeat' can be used.
683 if not var and kw.has_key("repeat"):
684 repeat = kw["repeat"]
688 # Request-condition ?
689 if kw.has_key("req_cond"):
690 req_cond = kw["req_cond"]
692 req_cond = NO_REQ_COND
694 return [start, length, field, endianness, var, repeat, req_cond]
699 ##############################################################################
701 LE = 1 # Little-Endian
703 NA = -1 # Not Applicable
706 " Virtual class for NCP field types"
713 def __init__(self, abbrev, descr, bytes, endianness = NA):
717 self.endianness = endianness
718 self.hfname = "hf_ncp_" + self.abbrev
719 self.special_fmt = "NCP_FMT_NONE"
724 def Abbreviation(self):
727 def Description(self):
734 return "ncp." + self.abbrev
736 def EtherealFType(self):
739 def Display(self, newval=None):
744 def ValuesName(self):
750 def Endianness(self):
751 return self.endianness
753 def SubVariables(self):
760 self.special_fmt = "NCP_FMT_NW_DATE"
763 self.special_fmt = "NCP_FMT_NW_TIME"
766 self.special_fmt = "NCP_FMT_UNICODE"
768 def SpecialFmt(self):
769 return self.special_fmt
771 def __cmp__(self, other):
772 return cmp(self.hfname, other.hfname)
774 class struct(PTVC, Type):
775 def __init__(self, name, items, descr=None):
776 name = "struct_%s" % (name,)
777 NamedList.__init__(self, name, [])
782 if isinstance(item, Type):
784 length = field.Length()
785 endianness = field.Endianness()
788 req_cond = NO_REQ_COND
789 elif type(item) == type([]):
790 field = item[REC_FIELD]
791 length = item[REC_LENGTH]
792 endianness = item[REC_ENDIANNESS]
794 repeat = item[REC_REPEAT]
795 req_cond = item[REC_REQ_COND]
797 assert 0, "Item %s item not handled." % (item,)
799 ptvc_rec = PTVCRecord(field, length, endianness, var,
801 self.list.append(ptvc_rec)
802 self.bytes = self.bytes + field.Length()
804 self.hfname = self.name
808 for ptvc_rec in self.list:
809 vars.append(ptvc_rec.Field())
812 def ReferenceString(self, var, repeat, req_cond):
813 return "{ PTVC_STRUCT, NO_LENGTH, &%s, NO_ENDIANNESS, %s, %s, %s, NCP_FMT_NONE }" % \
814 (self.name, var, repeat, req_cond)
817 ett_name = self.ETTName()
818 x = "static gint %s;\n" % (ett_name,)
819 x = x + "static const ptvc_record ptvc_%s[] = {\n" % (self.name,)
820 for ptvc_rec in self.list:
821 x = x + "\t%s,\n" % (ptvc_rec.Code())
822 x = x + "\t{ NULL, NO_LENGTH, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }\n"
825 x = x + "static const sub_ptvc_record %s = {\n" % (self.name,)
826 x = x + "\t&%s,\n" % (ett_name,)
828 x = x + '\t"%s",\n' % (self.descr,)
831 x = x + "\tptvc_%s,\n" % (self.Name(),)
835 def __cmp__(self, other):
836 return cmp(self.HFName(), other.HFName())
842 def __init__(self, abbrev, descr):
843 Type.__init__(self, abbrev, descr, 1)
845 class CountingNumber:
848 # Same as above. Both are provided for convenience
849 class uint8(Type, CountingNumber):
853 def __init__(self, abbrev, descr):
854 Type.__init__(self, abbrev, descr, 1)
856 class uint16(Type, CountingNumber):
859 def __init__(self, abbrev, descr, endianness = LE):
860 Type.__init__(self, abbrev, descr, 2, endianness)
862 class uint24(Type, CountingNumber):
865 def __init__(self, abbrev, descr, endianness = LE):
866 Type.__init__(self, abbrev, descr, 3, endianness)
868 class uint32(Type, CountingNumber):
871 def __init__(self, abbrev, descr, endianness = LE):
872 Type.__init__(self, abbrev, descr, 4, endianness)
874 class boolean8(uint8):
878 class boolean16(uint16):
882 class boolean24(uint24):
886 class boolean32(uint32):
893 class nstring8(Type, nstring):
894 """A string of up to (2^8)-1 characters. The first byte
895 gives the string length."""
898 ftype = "FT_UINT_STRING"
899 def __init__(self, abbrev, descr):
900 Type.__init__(self, abbrev, descr, 1)
902 class nstring16(Type, nstring):
903 """A string of up to (2^16)-2 characters. The first 2 bytes
904 gives the string length."""
907 ftype = "FT_UINT_STRING"
908 def __init__(self, abbrev, descr, endianness = LE):
909 Type.__init__(self, abbrev, descr, 2, endianness)
911 class nstring32(Type, nstring):
912 """A string of up to (2^32)-4 characters. The first 4 bytes
913 gives the string length."""
916 ftype = "FT_UINT_STRING"
917 def __init__(self, abbrev, descr, endianness = LE):
918 Type.__init__(self, abbrev, descr, 4, endianness)
920 class fw_string(Type):
921 """A fixed-width string of n bytes."""
926 def __init__(self, abbrev, descr, bytes):
927 Type.__init__(self, abbrev, descr, bytes)
931 "NUL-terminated string, with a maximum length"
935 def __init__(self, abbrev, descr):
936 Type.__init__(self, abbrev, descr, PROTO_LENGTH_UNKNOWN)
938 class val_string(Type):
939 """Abstract class for val_stringN, where N is number
940 of bits that key takes up."""
945 def __init__(self, abbrev, descr, val_string_array, endianness = LE):
946 Type.__init__(self, abbrev, descr, self.bytes, endianness)
947 self.values = val_string_array
950 result = "static const value_string %s[] = {\n" \
951 % (self.ValuesCName())
952 for val_record in self.values:
953 value = val_record[0]
955 value_repr = self.value_format % value
956 result = result + '\t{ %s,\t"%s" },\n' \
959 value_repr = self.value_format % 0
960 result = result + "\t{ %s,\tNULL },\n" % (value_repr)
961 result = result + "};\n"
962 REC_VAL_STRING_RES = self.value_format % value
965 def ValuesCName(self):
966 return "ncp_%s_vals" % (self.abbrev)
968 def ValuesName(self):
969 return "VALS(%s)" % (self.ValuesCName())
971 class val_string8(val_string):
975 value_format = "0x%02x"
977 class val_string16(val_string):
978 type = "val_string16"
981 value_format = "0x%04x"
983 class val_string32(val_string):
984 type = "val_string32"
987 value_format = "0x%08x"
993 def __init__(self, abbrev, descr, bytes):
994 Type.__init__(self, abbrev, descr, bytes, NA)
999 class nbytes8(Type, nbytes):
1000 """A series of up to (2^8)-1 bytes. The first byte
1001 gives the byte-string length."""
1004 ftype = "FT_UINT_BYTES"
1005 def __init__(self, abbrev, descr, endianness = LE):
1006 Type.__init__(self, abbrev, descr, 1, endianness)
1008 class nbytes16(Type, nbytes):
1009 """A series of up to (2^16)-2 bytes. The first 2 bytes
1010 gives the byte-string length."""
1013 ftype = "FT_UINT_BYTES"
1014 def __init__(self, abbrev, descr, endianness = LE):
1015 Type.__init__(self, abbrev, descr, 2, endianness)
1017 class nbytes32(Type, nbytes):
1018 """A series of up to (2^32)-4 bytes. The first 4 bytes
1019 gives the byte-string length."""
1022 ftype = "FT_UINT_BYTES"
1023 def __init__(self, abbrev, descr, endianness = LE):
1024 Type.__init__(self, abbrev, descr, 4, endianness)
1026 class bf_uint(Type):
1030 def __init__(self, bitmask, abbrev, descr, endianness=LE):
1031 Type.__init__(self, abbrev, descr, self.bytes, endianness)
1032 self.bitmask = bitmask
1037 class bf_val_str(bf_uint):
1041 def __init__(self, bitmask, abbrev, descr, val_string_array, endiannes=LE):
1042 bf_uint.__init__(self, bitmask, abbrev, descr, endiannes)
1043 self.values = val_string_array
1045 def ValuesName(self):
1046 return "VALS(%s)" % (self.ValuesCName())
1048 class bf_val_str8(bf_val_str, val_string8):
1049 type = "bf_val_str8"
1054 class bf_val_str16(bf_val_str, val_string16):
1055 type = "bf_val_str16"
1060 class bf_val_str32(bf_val_str, val_string32):
1061 type = "bf_val_str32"
1069 class bf_boolean8(bf_uint, boolean8, bf_boolean):
1070 type = "bf_boolean8"
1071 ftype = "FT_BOOLEAN"
1075 class bf_boolean16(bf_uint, boolean16, bf_boolean):
1076 type = "bf_boolean16"
1077 ftype = "FT_BOOLEAN"
1081 class bf_boolean24(bf_uint, boolean24, bf_boolean):
1082 type = "bf_boolean24"
1083 ftype = "FT_BOOLEAN"
1087 class bf_boolean32(bf_uint, boolean32, bf_boolean):
1088 type = "bf_boolean32"
1089 ftype = "FT_BOOLEAN"
1093 class bitfield(Type):
1097 def __init__(self, vars):
1100 if isinstance(var, bf_boolean):
1101 if not isinstance(var, self.bf_type):
1102 print "%s must be of type %s" % \
1103 (var.Abbreviation(),
1106 var_hash[var.bitmask] = var
1108 bitmasks = var_hash.keys()
1113 for bitmask in bitmasks:
1114 var = var_hash[bitmask]
1115 ordered_vars.append(var)
1117 self.vars = ordered_vars
1118 self.ptvcname = "ncp_%s_bitfield" % (self.abbrev,)
1119 self.hfname = "hf_ncp_%s" % (self.abbrev,)
1120 self.sub_ptvc = PTVCBitfield(self.PTVCName(), self.vars)
1122 def SubVariables(self):
1125 def SubVariablesPTVC(self):
1126 return self.sub_ptvc
1129 return self.ptvcname
1132 class bitfield8(bitfield, uint8):
1135 bf_type = bf_boolean8
1137 def __init__(self, abbrev, descr, vars):
1138 uint8.__init__(self, abbrev, descr)
1139 bitfield.__init__(self, vars)
1141 class bitfield16(bitfield, uint16):
1144 bf_type = bf_boolean16
1146 def __init__(self, abbrev, descr, vars, endianness=LE):
1147 uint16.__init__(self, abbrev, descr, endianness)
1148 bitfield.__init__(self, vars)
1150 class bitfield24(bitfield, uint24):
1153 bf_type = bf_boolean24
1155 def __init__(self, abbrev, descr, vars, endianness=LE):
1156 uint24.__init__(self, abbrev, descr, endianness)
1157 bitfield.__init__(self, vars)
1159 class bitfield32(bitfield, uint32):
1162 bf_type = bf_boolean32
1164 def __init__(self, abbrev, descr, vars, endianness=LE):
1165 uint32.__init__(self, abbrev, descr, endianness)
1166 bitfield.__init__(self, vars)
1169 # Force the endianness of a field to a non-default value; used in
1170 # the list of fields of a structure.
1172 def endian(field, endianness):
1173 return [-1, field.Length(), field, endianness, NO_VAR, NO_REPEAT, NO_REQ_COND]
1175 ##############################################################################
1176 # NCP Field Types. Defined in Appendix A of "Programmer's Guide..."
1177 ##############################################################################
1178 FileSize64bit = bytes("f_size_64bit", "64bit File Size", 64)
1179 Length64bit = bytes("length_64bit", "64bit Length", 64)
1180 StartOffset64bit = bytes("s_offset_64bit", "64bit Starting Offset", 64)
1182 AbortQueueFlag = val_string8("abort_q_flag", "Abort Queue Flag", [
1183 [ 0x00, "Place at End of Queue" ],
1184 [ 0x01, "Do Not Place Spool File, Examine Flags" ],
1186 AcceptedMaxSize = uint16("accepted_max_size", "Accepted Max Size")
1187 AccessControl = val_string8("access_control", "Access Control", [
1188 [ 0x00, "Open for read by this client" ],
1189 [ 0x01, "Open for write by this client" ],
1190 [ 0x02, "Deny read requests from other stations" ],
1191 [ 0x03, "Deny write requests from other stations" ],
1192 [ 0x04, "File detached" ],
1193 [ 0x05, "TTS holding detach" ],
1194 [ 0x06, "TTS holding open" ],
1196 AccessDate = uint16("access_date", "Access Date")
1198 AccessMode = bitfield8("access_mode", "Access Mode", [
1199 bf_boolean8(0x01, "acc_mode_read", "Read Access"),
1200 bf_boolean8(0x02, "acc_mode_write", "Write Access"),
1201 bf_boolean8(0x04, "acc_mode_deny_read", "Deny Read Access"),
1202 bf_boolean8(0x08, "acc_mode_deny_write", "Deny Write Access"),
1203 bf_boolean8(0x10, "acc_mode_comp", "Compatibility Mode"),
1205 AccessPrivileges = bitfield8("access_privileges", "Access Privileges", [
1206 bf_boolean8(0x01, "acc_priv_read", "Read Privileges (files only)"),
1207 bf_boolean8(0x02, "acc_priv_write", "Write Privileges (files only)"),
1208 bf_boolean8(0x04, "acc_priv_open", "Open Privileges (files only)"),
1209 bf_boolean8(0x08, "acc_priv_create", "Create Privileges (files only)"),
1210 bf_boolean8(0x10, "acc_priv_delete", "Delete Privileges (files only)"),
1211 bf_boolean8(0x20, "acc_priv_parent", "Parental Privileges (directories only for creating, deleting, and renaming)"),
1212 bf_boolean8(0x40, "acc_priv_search", "Search Privileges (directories only)"),
1213 bf_boolean8(0x80, "acc_priv_modify", "Modify File Status Flags Privileges (files and directories)"),
1215 AccessRightsMask = bitfield8("access_rights_mask", "Access Rights", [
1216 bf_boolean8(0x0001, "acc_rights_read", "Read Rights"),
1217 bf_boolean8(0x0002, "acc_rights_write", "Write Rights"),
1218 bf_boolean8(0x0004, "acc_rights_open", "Open Rights"),
1219 bf_boolean8(0x0008, "acc_rights_create", "Create Rights"),
1220 bf_boolean8(0x0010, "acc_rights_delete", "Delete Rights"),
1221 bf_boolean8(0x0020, "acc_rights_parent", "Parental Rights"),
1222 bf_boolean8(0x0040, "acc_rights_search", "Search Rights"),
1223 bf_boolean8(0x0080, "acc_rights_modify", "Modify Rights"),
1225 AccessRightsMaskWord = bitfield16("access_rights_mask_word", "Access Rights", [
1226 bf_boolean16(0x0001, "acc_rights1_read", "Read Rights"),
1227 bf_boolean16(0x0002, "acc_rights1_write", "Write Rights"),
1228 bf_boolean16(0x0004, "acc_rights1_open", "Open Rights"),
1229 bf_boolean16(0x0008, "acc_rights1_create", "Create Rights"),
1230 bf_boolean16(0x0010, "acc_rights1_delete", "Delete Rights"),
1231 bf_boolean16(0x0020, "acc_rights1_parent", "Parental Rights"),
1232 bf_boolean16(0x0040, "acc_rights1_search", "Search Rights"),
1233 bf_boolean16(0x0080, "acc_rights1_modify", "Modify Rights"),
1234 bf_boolean16(0x0100, "acc_rights1_supervisor", "Supervisor Access Rights"),
1236 AccountBalance = uint32("account_balance", "Account Balance")
1237 AccountVersion = uint8("acct_version", "Acct Version")
1238 ActionFlag = bitfield8("action_flag", "Action Flag", [
1239 bf_boolean8(0x01, "act_flag_open", "Open"),
1240 bf_boolean8(0x02, "act_flag_replace", "Replace"),
1241 bf_boolean8(0x10, "act_flag_create", "Create"),
1243 ActiveConnBitList = fw_string("active_conn_bit_list", "Active Connection List", 512)
1244 ActiveIndexedFiles = uint16("active_indexed_files", "Active Indexed Files")
1245 ActualMaxBinderyObjects = uint16("actual_max_bindery_objects", "Actual Max Bindery Objects")
1246 ActualMaxIndexedFiles = uint16("actual_max_indexed_files", "Actual Max Indexed Files")
1247 ActualMaxOpenFiles = uint16("actual_max_open_files", "Actual Max Open Files")
1248 ActualMaxSimultaneousTransactions = uint16("actual_max_sim_trans", "Actual Max Simultaneous Transactions")
1249 ActualMaxUsedDirectoryEntries = uint16("actual_max_used_directory_entries", "Actual Max Used Directory Entries")
1250 ActualMaxUsedRoutingBuffers = uint16("actual_max_used_routing_buffers", "Actual Max Used Routing Buffers")
1251 ActualResponseCount = uint16("actual_response_count", "Actual Response Count")
1252 AddNameSpaceAndVol = stringz("add_nm_spc_and_vol", "Add Name Space and Volume")
1253 AFPEntryID = uint32("afp_entry_id", "AFP Entry ID", BE)
1254 AFPEntryID.Display("BASE_HEX")
1255 AllocAvailByte = uint32("alloc_avail_byte", "Bytes Available for Allocation")
1256 AllocateMode = val_string16("allocate_mode", "Allocate Mode", [
1257 [ 0x0000, "Permanent Directory Handle" ],
1258 [ 0x0001, "Temporary Directory Handle" ],
1259 [ 0x0002, "Special Temporary Directory Handle" ],
1261 AllocationBlockSize = uint32("allocation_block_size", "Allocation Block Size")
1262 AllocFreeCount = uint32("alloc_free_count", "Reclaimable Free Bytes")
1263 ApplicationNumber = uint16("application_number", "Application Number")
1264 ArchivedTime = uint16("archived_time", "Archived Time")
1265 ArchivedTime.NWTime()
1266 ArchivedDate = uint16("archived_date", "Archived Date")
1267 ArchivedDate.NWDate()
1268 ArchiverID = uint32("archiver_id", "Archiver ID", BE)
1269 ArchiverID.Display("BASE_HEX")
1270 AssociatedNameSpace = uint8("associated_name_space", "Associated Name Space")
1271 AttachDuringProcessing = uint16("attach_during_processing", "Attach During Processing")
1272 AttachedIndexedFiles = uint8("attached_indexed_files", "Attached Indexed Files")
1273 AttachWhileProcessingAttach = uint16("attach_while_processing_attach", "Attach While Processing Attach")
1274 Attributes = uint32("attributes", "Attributes")
1275 AttributesDef = bitfield8("attr_def", "Attributes", [
1276 bf_boolean8(0x01, "att_def_ro", "Read Only"),
1277 bf_boolean8(0x02, "att_def_hidden", "Hidden"),
1278 bf_boolean8(0x04, "att_def_system", "System"),
1279 bf_boolean8(0x08, "att_def_execute", "Execute"),
1280 bf_boolean8(0x10, "att_def_sub_only", "Subdirectory"),
1281 bf_boolean8(0x20, "att_def_archive", "Archive"),
1282 bf_boolean8(0x80, "att_def_shareable", "Shareable"),
1284 AttributesDef16 = bitfield16("attr_def_16", "Attributes", [
1285 bf_boolean16(0x0001, "att_def16_ro", "Read Only"),
1286 bf_boolean16(0x0002, "att_def16_hidden", "Hidden"),
1287 bf_boolean16(0x0004, "att_def16_system", "System"),
1288 bf_boolean16(0x0008, "att_def16_execute", "Execute"),
1289 bf_boolean16(0x0010, "att_def16_sub_only", "Subdirectory"),
1290 bf_boolean16(0x0020, "att_def16_archive", "Archive"),
1291 bf_boolean16(0x0080, "att_def16_shareable", "Shareable"),
1292 bf_boolean16(0x1000, "att_def16_transaction", "Transactional"),
1293 bf_boolean16(0x4000, "att_def16_read_audit", "Read Audit"),
1294 bf_boolean16(0x8000, "att_def16_write_audit", "Write Audit"),
1296 AttributesDef32 = bitfield32("attr_def_32", "Attributes", [
1297 bf_boolean32(0x00000001, "att_def32_ro", "Read Only"),
1298 bf_boolean32(0x00000002, "att_def32_hidden", "Hidden"),
1299 bf_boolean32(0x00000004, "att_def32_system", "System"),
1300 bf_boolean32(0x00000008, "att_def32_execute", "Execute"),
1301 bf_boolean32(0x00000010, "att_def32_sub_only", "Subdirectory"),
1302 bf_boolean32(0x00000020, "att_def32_archive", "Archive"),
1303 bf_boolean32(0x00000080, "att_def32_shareable", "Shareable"),
1304 bf_boolean32(0x00001000, "att_def32_transaction", "Transactional"),
1305 bf_boolean32(0x00004000, "att_def32_read_audit", "Read Audit"),
1306 bf_boolean32(0x00008000, "att_def32_write_audit", "Write Audit"),
1307 bf_boolean32(0x00010000, "att_def_purge", "Purge"),
1308 bf_boolean32(0x00020000, "att_def_reninhibit", "Rename Inhibit"),
1309 bf_boolean32(0x00040000, "att_def_delinhibit", "Delete Inhibit"),
1310 bf_boolean32(0x00080000, "att_def_cpyinhibit", "Copy Inhibit"),
1311 bf_boolean32(0x02000000, "att_def_im_comp", "Immediate Compress"),
1312 bf_boolean32(0x04000000, "att_def_comp", "Compressed"),
1314 AttributeValidFlag = uint32("attribute_valid_flag", "Attribute Valid Flag")
1315 AuditFileVersionDate = uint16("audit_file_ver_date", "Audit File Version Date")
1316 AuditFileVersionDate.NWDate()
1317 AuditFlag = val_string8("audit_flag", "Audit Flag", [
1318 [ 0x00, "Do NOT audit object" ],
1319 [ 0x01, "Audit object" ],
1321 AuditHandle = uint32("audit_handle", "Audit File Handle")
1322 AuditHandle.Display("BASE_HEX")
1323 AuditID = uint32("audit_id", "Audit ID", BE)
1324 AuditID.Display("BASE_HEX")
1325 AuditIDType = val_string16("audit_id_type", "Audit ID Type", [
1326 [ 0x0000, "Volume" ],
1327 [ 0x0001, "Container" ],
1329 AuditVersionDate = uint16("audit_ver_date", "Auditing Version Date")
1330 AuditVersionDate.NWDate()
1331 AvailableBlocks = uint32("available_blocks", "Available Blocks")
1332 AvailableClusters = uint16("available_clusters", "Available Clusters")
1333 AvailableDirectorySlots = uint16("available_directory_slots", "Available Directory Slots")
1334 AvailableDirEntries = uint32("available_dir_entries", "Available Directory Entries")
1335 AvailableIndexedFiles = uint16("available_indexed_files", "Available Indexed Files")
1337 BackgroundAgedWrites = uint32("background_aged_writes", "Background Aged Writes")
1338 BackgroundDirtyWrites = uint32("background_dirty_writes", "Background Dirty Writes")
1339 BadLogicalConnectionCount = uint16("bad_logical_connection_count", "Bad Logical Connection Count")
1340 BannerName = fw_string("banner_name", "Banner Name", 14)
1341 BaseDirectoryID = uint32("base_directory_id", "Base Directory ID", BE)
1342 BaseDirectoryID.Display("BASE_HEX")
1343 binderyContext = nstring8("bindery_context", "Bindery Context")
1344 BitMap = bytes("bit_map", "Bit Map", 512)
1345 BlockNumber = uint32("block_number", "Block Number")
1346 BlockSize = uint16("block_size", "Block Size")
1347 BlockSizeInSectors = uint32("block_size_in_sectors", "Block Size in Sectors")
1348 BoardInstalled = uint8("board_installed", "Board Installed")
1349 BoardNumber = uint32("board_number", "Board Number")
1350 BoardNumbers = uint32("board_numbers", "Board Numbers")
1351 BufferSize = uint16("buffer_size", "Buffer Size")
1352 BusString = stringz("bus_string", "Bus String")
1353 BusType = val_string8("bus_type", "Bus Type", [
1355 [0x01, "Micro Channel" ],
1362 BytesActuallyTransferred = uint32("bytes_actually_transferred", "Bytes Actually Transferred")
1363 BytesRead = fw_string("bytes_read", "Bytes Read", 6)
1364 BytesToCopy = uint32("bytes_to_copy", "Bytes to Copy")
1365 BytesWritten = fw_string("bytes_written", "Bytes Written", 6)
1367 CacheAllocations = uint32("cache_allocations", "Cache Allocations")
1368 CacheBlockScrapped = uint16("cache_block_scrapped", "Cache Block Scrapped")
1369 CacheBufferCount = uint16("cache_buffer_count", "Cache Buffer Count")
1370 CacheBufferSize = uint16("cache_buffer_size", "Cache Buffer Size")
1371 CacheFullWriteRequests = uint32("cache_full_write_requests", "Cache Full Write Requests")
1372 CacheGetRequests = uint32("cache_get_requests", "Cache Get Requests")
1373 CacheHitOnUnavailableBlock = uint16("cache_hit_on_unavailable_block", "Cache Hit On Unavailable Block")
1374 CacheHits = uint32("cache_hits", "Cache Hits")
1375 CacheMisses = uint32("cache_misses", "Cache Misses")
1376 CachePartialWriteRequests = uint32("cache_partial_write_requests", "Cache Partial Write Requests")
1377 CacheReadRequests = uint32("cache_read_requests", "Cache Read Requests")
1378 CacheWriteRequests = uint32("cache_write_requests", "Cache Write Requests")
1379 CategoryName = stringz("category_name", "Category Name")
1380 CCFileHandle = uint32("cc_file_handle", "File Handle")
1381 CCFileHandle.Display("BASE_HEX")
1382 CCFunction = val_string8("cc_function", "OP-Lock Flag", [
1383 [ 0x01, "Clear OP-Lock" ],
1384 [ 0x02, "Acknowledge Callback" ],
1385 [ 0x03, "Decline Callback" ],
1386 [ 0x04, "Level 2" ],
1388 ChangeBits = bitfield16("change_bits", "Change Bits", [
1389 bf_boolean16(0x0001, "change_bits_modify", "Modify Name"),
1390 bf_boolean16(0x0002, "change_bits_fatt", "File Attributes"),
1391 bf_boolean16(0x0004, "change_bits_cdate", "Creation Date"),
1392 bf_boolean16(0x0008, "change_bits_ctime", "Creation Time"),
1393 bf_boolean16(0x0010, "change_bits_owner", "Owner ID"),
1394 bf_boolean16(0x0020, "change_bits_adate", "Archive Date"),
1395 bf_boolean16(0x0040, "change_bits_atime", "Archive Time"),
1396 bf_boolean16(0x0080, "change_bits_aid", "Archiver ID"),
1397 bf_boolean16(0x0100, "change_bits_udate", "Update Date"),
1398 bf_boolean16(0x0200, "change_bits_utime", "Update Time"),
1399 bf_boolean16(0x0400, "change_bits_uid", "Update ID"),
1400 bf_boolean16(0x0800, "change_bits_acc_date", "Access Date"),
1401 bf_boolean16(0x1000, "change_bits_max_acc_mask", "Maximum Access Mask"),
1402 bf_boolean16(0x2000, "change_bits_max_space", "Maximum Space"),
1404 ChannelState = val_string8("channel_state", "Channel State", [
1405 [ 0x00, "Channel is running" ],
1406 [ 0x01, "Channel is stopping" ],
1407 [ 0x02, "Channel is stopped" ],
1408 [ 0x03, "Channel is not functional" ],
1410 ChannelSynchronizationState = val_string8("channel_synchronization_state", "Channel Synchronization State", [
1411 [ 0x00, "Channel is not being used" ],
1412 [ 0x02, "NetWare is using the channel; no one else wants it" ],
1413 [ 0x04, "NetWare is using the channel; someone else wants it" ],
1414 [ 0x06, "Someone else is using the channel; NetWare does not need it" ],
1415 [ 0x08, "Someone else is using the channel; NetWare needs it" ],
1416 [ 0x0A, "Someone else has released the channel; NetWare should use it" ],
1418 ChargeAmount = uint32("charge_amount", "Charge Amount")
1419 ChargeInformation = uint32("charge_information", "Charge Information")
1420 ClientCompFlag = val_string16("client_comp_flag", "Completion Flag", [
1421 [ 0x0000, "Successful" ],
1422 [ 0x0001, "Illegal Station Number" ],
1423 [ 0x0002, "Client Not Logged In" ],
1424 [ 0x0003, "Client Not Accepting Messages" ],
1425 [ 0x0004, "Client Already has a Message" ],
1426 [ 0x0096, "No Alloc Space for the Message" ],
1427 [ 0x00fd, "Bad Station Number" ],
1428 [ 0x00ff, "Failure" ],
1430 ClientIDNumber = uint32("client_id_number", "Client ID Number", BE)
1431 ClientIDNumber.Display("BASE_HEX")
1432 ClientList = uint32("client_list", "Client List")
1433 ClientListCount = uint16("client_list_cnt", "Client List Count")
1434 ClientListLen = uint8("client_list_len", "Client List Length")
1435 ClientName = nstring8("client_name", "Client Name")
1436 ClientRecordArea = fw_string("client_record_area", "Client Record Area", 152)
1437 ClientStation = uint8("client_station", "Client Station")
1438 ClientStationLong = uint32("client_station_long", "Client Station")
1439 ClientTaskNumber = uint8("client_task_number", "Client Task Number")
1440 ClientTaskNumberLong = uint32("client_task_number_long", "Client Task Number")
1441 ClusterCount = uint16("cluster_count", "Cluster Count")
1442 ClustersUsedByDirectories = uint32("clusters_used_by_directories", "Clusters Used by Directories")
1443 ClustersUsedByExtendedDirectories = uint32("clusters_used_by_extended_dirs", "Clusters Used by Extended Directories")
1444 ClustersUsedByFAT = uint32("clusters_used_by_fat", "Clusters Used by FAT")
1445 ComCnts = uint16("com_cnts", "Communication Counters")
1446 Comment = nstring8("comment", "Comment")
1447 CommentType = uint16("comment_type", "Comment Type")
1448 CompletionCode = uint32("ncompletion_code", "Completion Code")
1449 CompressedDataStreamsCount = uint32("compressed_data_streams_count", "Compressed Data Streams Count")
1450 CompressedLimboDataStreamsCount = uint32("compressed_limbo_data_streams_count", "Compressed Limbo Data Streams Count")
1451 CompressedSectors = uint32("compressed_sectors", "Compressed Sectors")
1452 compressionStage = uint32("compression_stage", "Compression Stage")
1453 compressVolume = uint32("compress_volume", "Volume Compression")
1454 ConfigMajorVN = uint8("config_major_vn", "Configuration Major Version Number")
1455 ConfigMinorVN = uint8("config_minor_vn", "Configuration Minor Version Number")
1456 ConfigurationDescription = fw_string("configuration_description", "Configuration Description", 80)
1457 ConfigurationText = fw_string("configuration_text", "Configuration Text", 160)
1458 ConfiguredMaxBinderyObjects = uint16("configured_max_bindery_objects", "Configured Max Bindery Objects")
1459 ConfiguredMaxOpenFiles = uint16("configured_max_open_files", "Configured Max Open Files")
1460 ConfiguredMaxRoutingBuffers = uint16("configured_max_routing_buffers", "Configured Max Routing Buffers")
1461 ConfiguredMaxSimultaneousTransactions = uint16("cfg_max_simultaneous_transactions", "Configured Max Simultaneous Transactions")
1462 ConnectedLAN = uint32("connected_lan", "LAN Adapter")
1463 ConnectionControlBits = bitfield8("conn_ctrl_bits", "Connection Control", [
1464 bf_boolean8(0x01, "enable_brdcasts", "Enable Broadcasts"),
1465 bf_boolean8(0x02, "enable_personal_brdcasts", "Enable Personal Broadcasts"),
1466 bf_boolean8(0x04, "enable_wdog_messages", "Enable Watchdog Message"),
1467 bf_boolean8(0x10, "disable_brdcasts", "Disable Broadcasts"),
1468 bf_boolean8(0x20, "disable_personal_brdcasts", "Disable Personal Broadcasts"),
1469 bf_boolean8(0x40, "disable_wdog_messages", "Disable Watchdog Message"),
1471 ConnectionListCount = uint32("conn_list_count", "Connection List Count")
1472 ConnectionList = uint32("connection_list", "Connection List")
1473 ConnectionNumber = uint32("connection_number", "Connection Number", BE)
1474 ConnectionNumberList = nstring8("connection_number_list", "Connection Number List")
1475 ConnectionNumberWord = uint16("conn_number_word", "Connection Number")
1476 ConnectionNumberByte = uint8("conn_number_byte", "Connection Number")
1477 ConnectionServiceType = val_string8("connection_service_type","Connection Service Type",[
1478 [ 0x01, "CLIB backward Compatibility" ],
1479 [ 0x02, "NCP Connection" ],
1480 [ 0x03, "NLM Connection" ],
1481 [ 0x04, "AFP Connection" ],
1482 [ 0x05, "FTAM Connection" ],
1483 [ 0x06, "ANCP Connection" ],
1484 [ 0x07, "ACP Connection" ],
1485 [ 0x08, "SMB Connection" ],
1486 [ 0x09, "Winsock Connection" ],
1488 ConnectionsInUse = uint16("connections_in_use", "Connections In Use")
1489 ConnectionsMaxUsed = uint16("connections_max_used", "Connections Max Used")
1490 ConnectionsSupportedMax = uint16("connections_supported_max", "Connections Supported Max")
1491 ConnectionType = val_string8("connection_type", "Connection Type", [
1492 [ 0x00, "Not in use" ],
1494 [ 0x11, "UDP (for IP)" ],
1496 ConnListLen = uint8("conn_list_len", "Connection List Length")
1497 Copyright = nstring8("copyright", "Copyright")
1498 connList = uint32("conn_list", "Connection List")
1499 ControlFlags = val_string8("control_flags", "Control Flags", [
1500 [ 0x00, "Forced Record Locking is Off" ],
1501 [ 0x01, "Forced Record Locking is On" ],
1503 ControllerDriveNumber = uint8("controller_drive_number", "Controller Drive Number")
1504 ControllerNumber = uint8("controller_number", "Controller Number")
1505 ControllerType = uint8("controller_type", "Controller Type")
1506 Cookie1 = uint32("cookie_1", "Cookie 1")
1507 Cookie2 = uint32("cookie_2", "Cookie 2")
1508 Copies = uint8( "copies", "Copies" )
1509 CoprocessorFlag = uint32("co_processor_flag", "CoProcessor Present Flag")
1510 CoProcessorString = stringz("co_proc_string", "CoProcessor String")
1511 CounterMask = val_string8("counter_mask", "Counter Mask", [
1512 [ 0x00, "Counter is Valid" ],
1513 [ 0x01, "Counter is not Valid" ],
1515 CPUNumber = uint32("cpu_number", "CPU Number")
1516 CPUString = stringz("cpu_string", "CPU String")
1517 CPUType = val_string8("cpu_type", "CPU Type", [
1520 [ 0x02, "Pentium" ],
1521 [ 0x03, "Pentium Pro" ],
1523 CreationDate = uint16("creation_date", "Creation Date")
1524 CreationDate.NWDate()
1525 CreationTime = uint16("creation_time", "Creation Time")
1526 CreationTime.NWTime()
1527 CreatorID = uint32("creator_id", "Creator ID", BE)
1528 CreatorID.Display("BASE_HEX")
1529 CreatorNameSpaceNumber = val_string8("creator_name_space_number", "Creator Name Space Number", [
1530 [ 0x00, "DOS Name Space" ],
1531 [ 0x01, "MAC Name Space" ],
1532 [ 0x02, "NFS Name Space" ],
1533 [ 0x04, "Long Name Space" ],
1535 CreditLimit = uint32("credit_limit", "Credit Limit")
1536 CtrlFlags = val_string16("ctrl_flags", "Control Flags", [
1537 [ 0x0000, "Do Not Return File Name" ],
1538 [ 0x0001, "Return File Name" ],
1540 curCompBlks = uint32("cur_comp_blks", "Current Compression Blocks")
1541 curInitialBlks = uint32("cur_initial_blks", "Current Initial Blocks")
1542 curIntermediateBlks = uint32("cur_inter_blks", "Current Intermediate Blocks")
1543 CurNumOfRTags = uint32("cur_num_of_r_tags", "Current Number of Resource Tags")
1544 CurrentBlockBeingDecompressed = uint32("cur_blk_being_dcompress", "Current Block Being Decompressed")
1545 CurrentChangedFATs = uint16("current_changed_fats", "Current Changed FAT Entries")
1546 CurrentEntries = uint32("current_entries", "Current Entries")
1547 CurrentFormType = uint8( "current_form_type", "Current Form Type" )
1548 CurrentLFSCounters = uint32("current_lfs_counters", "Current LFS Counters")
1549 CurrentlyUsedRoutingBuffers = uint16("currently_used_routing_buffers", "Currently Used Routing Buffers")
1550 CurrentOpenFiles = uint16("current_open_files", "Current Open Files")
1551 CurrentReferenceID = uint16("curr_ref_id", "Current Reference ID")
1552 CurrentServers = uint32("current_servers", "Current Servers")
1553 CurrentServerTime = uint32("current_server_time", "Time Elapsed Since Server Was Brought Up")
1554 CurrentSpace = uint32("current_space", "Current Space")
1555 CurrentTransactionCount = uint32("current_trans_count", "Current Transaction Count")
1556 CurrentUsedBinderyObjects = uint16("current_used_bindery_objects", "Current Used Bindery Objects")
1557 CurrentUsedDynamicSpace = uint32("current_used_dynamic_space", "Current Used Dynamic Space")
1558 CustomCnts = uint32("custom_cnts", "Custom Counters")
1559 CustomCount = uint32("custom_count", "Custom Count")
1560 CustomCounters = uint32("custom_counters", "Custom Counters")
1561 CustomString = nstring8("custom_string", "Custom String")
1562 CustomVariableValue = uint32("custom_var_value", "Custom Variable Value")
1564 Data = nstring8("data", "Data")
1565 DataForkFirstFAT = uint32("data_fork_first_fat", "Data Fork First FAT Entry")
1566 DataForkLen = uint32("data_fork_len", "Data Fork Len")
1567 DataForkSize = uint32("data_fork_size", "Data Fork Size")
1568 DataSize = uint32("data_size", "Data Size")
1569 DataStream = val_string8("data_stream", "Data Stream", [
1570 [ 0x00, "Resource Fork or DOS" ],
1571 [ 0x01, "Data Fork" ],
1573 DataStreamName = nstring8("data_stream_name", "Data Stream Name")
1574 DataStreamNumber = uint8("data_stream_number", "Data Stream Number")
1575 DataStreamsCount = uint32("data_streams_count", "Data Streams Count")
1576 DataStreamSize = uint32("data_stream_size", "Size")
1577 DataStreamSpaceAlloc = uint32( "data_stream_space_alloc", "Space Allocated for Data Stream" )
1578 Day = uint8("s_day", "Day")
1579 DayOfWeek = val_string8("s_day_of_week", "Day of Week", [
1582 [ 0x02, "Tuesday" ],
1583 [ 0x03, "Wednesday" ],
1584 [ 0x04, "Thursday" ],
1586 [ 0x06, "Saturday" ],
1588 DeadMirrorTable = bytes("dead_mirror_table", "Dead Mirror Table", 32)
1589 DefinedDataStreams = uint8("defined_data_streams", "Defined Data Streams")
1590 DefinedNameSpaces = uint8("defined_name_spaces", "Defined Name Spaces")
1591 DeletedDate = uint16("deleted_date", "Deleted Date")
1592 DeletedDate.NWDate()
1593 DeletedFileTime = uint32( "deleted_file_time", "Deleted File Time")
1594 DeletedFileTime.Display("BASE_HEX")
1595 DeletedTime = uint16("deleted_time", "Deleted Time")
1596 DeletedTime.NWTime()
1597 DeletedID = uint32( "delete_id", "Deleted ID", BE)
1598 DeletedID.Display("BASE_HEX")
1599 DeleteExistingFileFlag = val_string8("delete_existing_file_flag", "Delete Existing File Flag", [
1600 [ 0x00, "Do Not Delete Existing File" ],
1601 [ 0x01, "Delete Existing File" ],
1603 DenyReadCount = uint16("deny_read_count", "Deny Read Count")
1604 DenyWriteCount = uint16("deny_write_count", "Deny Write Count")
1605 DescriptionStrings = fw_string("description_string", "Description", 512)
1606 DesiredAccessRights = bitfield16("desired_access_rights", "Desired Access Rights", [
1607 bf_boolean16(0x0001, "dsired_acc_rights_read_o", "Read Only"),
1608 bf_boolean16(0x0002, "dsired_acc_rights_write_o", "Write Only"),
1609 bf_boolean16(0x0004, "dsired_acc_rights_deny_r", "Deny Read"),
1610 bf_boolean16(0x0008, "dsired_acc_rights_deny_w", "Deny Write"),
1611 bf_boolean16(0x0010, "dsired_acc_rights_compat", "Compatibility"),
1612 bf_boolean16(0x0040, "dsired_acc_rights_w_thru", "File Write Through"),
1613 bf_boolean16(0x0400, "dsired_acc_rights_del_file_cls", "Delete File Close"),
1615 DesiredResponseCount = uint16("desired_response_count", "Desired Response Count")
1616 DestDirHandle = uint8("dest_dir_handle", "Destination Directory Handle")
1617 DestNameSpace = val_string8("dest_name_space", "Destination Name Space", [
1618 [ 0x00, "DOS Name Space" ],
1619 [ 0x01, "MAC Name Space" ],
1620 [ 0x02, "NFS Name Space" ],
1621 [ 0x04, "Long Name Space" ],
1623 DestPathComponentCount = uint8("dest_component_count", "Destination Path Component Count")
1624 DestPath = nstring8("dest_path", "Destination Path")
1625 DetachDuringProcessing = uint16("detach_during_processing", "Detach During Processing")
1626 DetachForBadConnectionNumber = uint16("detach_for_bad_connection_number", "Detach For Bad Connection Number")
1627 DirHandle = uint8("dir_handle", "Directory Handle")
1628 DirHandleName = uint8("dir_handle_name", "Handle Name")
1629 DirHandleLong = uint32("dir_handle_long", "Directory Handle")
1630 DirectoryAccessRights = uint8("directory_access_rights", "Directory Access Rights")
1632 # XXX - what do the bits mean here?
1634 DirectoryAttributes = uint8("directory_attributes", "Directory Attributes")
1635 DirectoryBase = uint32("dir_base", "Directory Base")
1636 DirectoryBase.Display("BASE_HEX")
1637 DirectoryCount = uint16("dir_count", "Directory Count")
1638 DirectoryEntryNumber = uint32("directory_entry_number", "Directory Entry Number")
1639 DirectoryEntryNumber.Display('BASE_HEX')
1640 DirectoryEntryNumberWord = uint16("directory_entry_number_word", "Directory Entry Number")
1641 DirectoryID = uint16("directory_id", "Directory ID", BE)
1642 DirectoryID.Display("BASE_HEX")
1643 DirectoryName = fw_string("directory_name", "Directory Name",12)
1644 DirectoryName14 = fw_string("directory_name_14", "Directory Name", 14)
1645 DirectoryNameLen = uint8("directory_name_len", "Directory Name Length")
1646 DirectoryNumber = uint32("directory_number", "Directory Number")
1647 DirectoryNumber.Display("BASE_HEX")
1648 DirectoryPath = fw_string("directory_path", "Directory Path", 16)
1649 DirectoryServicesObjectID = uint32("directory_services_object_id", "Directory Services Object ID")
1650 DirectoryServicesObjectID.Display("BASE_HEX")
1651 DirectoryStamp = uint16("directory_stamp", "Directory Stamp (0xD1D1)")
1652 DirtyCacheBuffers = uint16("dirty_cache_buffers", "Dirty Cache Buffers")
1653 DiskChannelNumber = uint8("disk_channel_number", "Disk Channel Number")
1654 DiskChannelTable = val_string8("disk_channel_table", "Disk Channel Table", [
1658 [ 0x04, "Disk Coprocessor" ],
1660 DiskSpaceLimit = uint32("disk_space_limit", "Disk Space Limit")
1661 DMAChannelsUsed = uint32("dma_channels_used", "DMA Channels Used")
1662 DMInfoEntries = uint32("dm_info_entries", "DM Info Entries")
1663 DMInfoLevel = val_string8("dm_info_level", "DM Info Level", [
1664 [ 0x00, "Return Detailed DM Support Module Information" ],
1665 [ 0x01, "Return Number of DM Support Modules" ],
1666 [ 0x02, "Return DM Support Modules Names" ],
1668 DMFlags = val_string8("dm_flags", "DM Flags", [
1669 [ 0x00, "OnLine Media" ],
1670 [ 0x01, "OffLine Media" ],
1672 DMmajorVersion = uint32("dm_major_version", "DM Major Version")
1673 DMminorVersion = uint32("dm_minor_version", "DM Minor Version")
1674 DMPresentFlag = val_string8("dm_present_flag", "Data Migration Present Flag", [
1675 [ 0x00, "Data Migration NLM is not loaded" ],
1676 [ 0x01, "Data Migration NLM has been loaded and is running" ],
1678 DOSDirectoryBase = uint32("dos_directory_base", "DOS Directory Base")
1679 DOSDirectoryBase.Display("BASE_HEX")
1680 DOSDirectoryEntry = uint32("dos_directory_entry", "DOS Directory Entry")
1681 DOSDirectoryEntry.Display("BASE_HEX")
1682 DOSDirectoryEntryNumber = uint32("dos_directory_entry_number", "DOS Directory Entry Number")
1683 DOSDirectoryEntryNumber.Display('BASE_HEX')
1684 DOSFileAttributes = uint8("dos_file_attributes", "DOS File Attributes")
1685 DOSParentDirectoryEntry = uint32("dos_parent_directory_entry", "DOS Parent Directory Entry")
1686 DOSParentDirectoryEntry.Display('BASE_HEX')
1687 DOSSequence = uint32("dos_sequence", "DOS Sequence")
1688 DriveCylinders = uint16("drive_cylinders", "Drive Cylinders")
1689 DriveDefinitionString = fw_string("drive_definition_string", "Drive Definition", 64)
1690 DriveHeads = uint8("drive_heads", "Drive Heads")
1691 DriveMappingTable = bytes("drive_mapping_table", "Drive Mapping Table", 32)
1692 DriveMirrorTable = bytes("drive_mirror_table", "Drive Mirror Table", 32)
1693 DriverBoardName = stringz("driver_board_name", "Driver Board Name")
1694 DriveRemovableFlag = val_string8("drive_removable_flag", "Drive Removable Flag", [
1695 [ 0x00, "Nonremovable" ],
1696 [ 0xff, "Removable" ],
1698 DriverLogicalName = stringz("driver_log_name", "Driver Logical Name")
1699 DriverShortName = stringz("driver_short_name", "Driver Short Name")
1700 DriveSize = uint32("drive_size", "Drive Size")
1701 DstEAFlags = val_string16("dst_ea_flags", "Destination EA Flags", [
1702 [ 0x0000, "Return EAHandle,Information Level 0" ],
1703 [ 0x0001, "Return NetWareHandle,Information Level 0" ],
1704 [ 0x0002, "Return Volume/Directory Number,Information Level 0" ],
1705 [ 0x0004, "Return EAHandle,Close Handle on Error,Information Level 0" ],
1706 [ 0x0005, "Return NetWareHandle,Close Handle on Error,Information Level 0" ],
1707 [ 0x0006, "Return Volume/Directory Number,Close Handle on Error,Information Level 0" ],
1708 [ 0x0010, "Return EAHandle,Information Level 1" ],
1709 [ 0x0011, "Return NetWareHandle,Information Level 1" ],
1710 [ 0x0012, "Return Volume/Directory Number,Information Level 1" ],
1711 [ 0x0014, "Return EAHandle,Close Handle on Error,Information Level 1" ],
1712 [ 0x0015, "Return NetWareHandle,Close Handle on Error,Information Level 1" ],
1713 [ 0x0016, "Return Volume/Directory Number,Close Handle on Error,Information Level 1" ],
1714 [ 0x0020, "Return EAHandle,Information Level 2" ],
1715 [ 0x0021, "Return NetWareHandle,Information Level 2" ],
1716 [ 0x0022, "Return Volume/Directory Number,Information Level 2" ],
1717 [ 0x0024, "Return EAHandle,Close Handle on Error,Information Level 2" ],
1718 [ 0x0025, "Return NetWareHandle,Close Handle on Error,Information Level 2" ],
1719 [ 0x0026, "Return Volume/Directory Number,Close Handle on Error,Information Level 2" ],
1720 [ 0x0030, "Return EAHandle,Information Level 3" ],
1721 [ 0x0031, "Return NetWareHandle,Information Level 3" ],
1722 [ 0x0032, "Return Volume/Directory Number,Information Level 3" ],
1723 [ 0x0034, "Return EAHandle,Close Handle on Error,Information Level 3" ],
1724 [ 0x0035, "Return NetWareHandle,Close Handle on Error,Information Level 3" ],
1725 [ 0x0036, "Return Volume/Directory Number,Close Handle on Error,Information Level 3" ],
1726 [ 0x0040, "Return EAHandle,Information Level 4" ],
1727 [ 0x0041, "Return NetWareHandle,Information Level 4" ],
1728 [ 0x0042, "Return Volume/Directory Number,Information Level 4" ],
1729 [ 0x0044, "Return EAHandle,Close Handle on Error,Information Level 4" ],
1730 [ 0x0045, "Return NetWareHandle,Close Handle on Error,Information Level 4" ],
1731 [ 0x0046, "Return Volume/Directory Number,Close Handle on Error,Information Level 4" ],
1732 [ 0x0050, "Return EAHandle,Information Level 5" ],
1733 [ 0x0051, "Return NetWareHandle,Information Level 5" ],
1734 [ 0x0052, "Return Volume/Directory Number,Information Level 5" ],
1735 [ 0x0054, "Return EAHandle,Close Handle on Error,Information Level 5" ],
1736 [ 0x0055, "Return NetWareHandle,Close Handle on Error,Information Level 5" ],
1737 [ 0x0056, "Return Volume/Directory Number,Close Handle on Error,Information Level 5" ],
1738 [ 0x0060, "Return EAHandle,Information Level 6" ],
1739 [ 0x0061, "Return NetWareHandle,Information Level 6" ],
1740 [ 0x0062, "Return Volume/Directory Number,Information Level 6" ],
1741 [ 0x0064, "Return EAHandle,Close Handle on Error,Information Level 6" ],
1742 [ 0x0065, "Return NetWareHandle,Close Handle on Error,Information Level 6" ],
1743 [ 0x0066, "Return Volume/Directory Number,Close Handle on Error,Information Level 6" ],
1744 [ 0x0070, "Return EAHandle,Information Level 7" ],
1745 [ 0x0071, "Return NetWareHandle,Information Level 7" ],
1746 [ 0x0072, "Return Volume/Directory Number,Information Level 7" ],
1747 [ 0x0074, "Return EAHandle,Close Handle on Error,Information Level 7" ],
1748 [ 0x0075, "Return NetWareHandle,Close Handle on Error,Information Level 7" ],
1749 [ 0x0076, "Return Volume/Directory Number,Close Handle on Error,Information Level 7" ],
1750 [ 0x0080, "Return EAHandle,Information Level 0,Immediate Close Handle" ],
1751 [ 0x0081, "Return NetWareHandle,Information Level 0,Immediate Close Handle" ],
1752 [ 0x0082, "Return Volume/Directory Number,Information Level 0,Immediate Close Handle" ],
1753 [ 0x0084, "Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1754 [ 0x0085, "Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1755 [ 0x0086, "Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1756 [ 0x0090, "Return EAHandle,Information Level 1,Immediate Close Handle" ],
1757 [ 0x0091, "Return NetWareHandle,Information Level 1,Immediate Close Handle" ],
1758 [ 0x0092, "Return Volume/Directory Number,Information Level 1,Immediate Close Handle" ],
1759 [ 0x0094, "Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1760 [ 0x0095, "Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1761 [ 0x0096, "Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1762 [ 0x00a0, "Return EAHandle,Information Level 2,Immediate Close Handle" ],
1763 [ 0x00a1, "Return NetWareHandle,Information Level 2,Immediate Close Handle" ],
1764 [ 0x00a2, "Return Volume/Directory Number,Information Level 2,Immediate Close Handle" ],
1765 [ 0x00a4, "Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1766 [ 0x00a5, "Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1767 [ 0x00a6, "Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1768 [ 0x00b0, "Return EAHandle,Information Level 3,Immediate Close Handle" ],
1769 [ 0x00b1, "Return NetWareHandle,Information Level 3,Immediate Close Handle" ],
1770 [ 0x00b2, "Return Volume/Directory Number,Information Level 3,Immediate Close Handle" ],
1771 [ 0x00b4, "Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1772 [ 0x00b5, "Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1773 [ 0x00b6, "Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1774 [ 0x00c0, "Return EAHandle,Information Level 4,Immediate Close Handle" ],
1775 [ 0x00c1, "Return NetWareHandle,Information Level 4,Immediate Close Handle" ],
1776 [ 0x00c2, "Return Volume/Directory Number,Information Level 4,Immediate Close Handle" ],
1777 [ 0x00c4, "Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1778 [ 0x00c5, "Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1779 [ 0x00c6, "Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1780 [ 0x00d0, "Return EAHandle,Information Level 5,Immediate Close Handle" ],
1781 [ 0x00d1, "Return NetWareHandle,Information Level 5,Immediate Close Handle" ],
1782 [ 0x00d2, "Return Volume/Directory Number,Information Level 5,Immediate Close Handle" ],
1783 [ 0x00d4, "Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1784 [ 0x00d5, "Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1785 [ 0x00d6, "Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1786 [ 0x00e0, "Return EAHandle,Information Level 6,Immediate Close Handle" ],
1787 [ 0x00e1, "Return NetWareHandle,Information Level 6,Immediate Close Handle" ],
1788 [ 0x00e2, "Return Volume/Directory Number,Information Level 6,Immediate Close Handle" ],
1789 [ 0x00e4, "Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1790 [ 0x00e5, "Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1791 [ 0x00e6, "Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1792 [ 0x00f0, "Return EAHandle,Information Level 7,Immediate Close Handle" ],
1793 [ 0x00f1, "Return NetWareHandle,Information Level 7,Immediate Close Handle" ],
1794 [ 0x00f2, "Return Volume/Directory Number,Information Level 7,Immediate Close Handle" ],
1795 [ 0x00f4, "Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1796 [ 0x00f5, "Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1797 [ 0x00f6, "Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1799 dstNSIndicator = val_string16("dst_ns_indicator", "Destination Name Space Indicator", [
1800 [ 0x0000, "Return Source Name Space Information" ],
1801 [ 0x0001, "Return Destination Name Space Information" ],
1803 DstQueueID = uint32("dst_queue_id", "Destination Queue ID")
1804 DuplicateRepliesSent = uint16("duplicate_replies_sent", "Duplicate Replies Sent")
1806 EAAccessFlag = bitfield16("ea_access_flag", "EA Access Flag", [
1807 bf_boolean16(0x0001, "ea_permanent_memory", "Permanent Memory"),
1808 bf_boolean16(0x0002, "ea_deep_freeze", "Deep Freeze"),
1809 bf_boolean16(0x0004, "ea_in_progress", "In Progress"),
1810 bf_boolean16(0x0008, "ea_header_being_enlarged", "Header Being Enlarged"),
1811 bf_boolean16(0x0010, "ea_new_tally_used", "New Tally Used"),
1812 bf_boolean16(0x0020, "ea_tally_need_update", "Tally Need Update"),
1813 bf_boolean16(0x0040, "ea_score_card_present", "Score Card Present"),
1814 bf_boolean16(0x0080, "ea_need_bit_flag", "EA Need Bit Flag"),
1815 bf_boolean16(0x0100, "ea_write_privileges", "Write Privileges"),
1816 bf_boolean16(0x0200, "ea_read_privileges", "Read Privileges"),
1817 bf_boolean16(0x0400, "ea_delete_privileges", "Delete Privileges"),
1818 bf_boolean16(0x0800, "ea_system_ea_only", "System EA Only"),
1819 bf_boolean16(0x1000, "ea_write_in_progress", "Write In Progress"),
1821 EABytesWritten = uint32("ea_bytes_written", "Bytes Written")
1822 EACount = uint32("ea_count", "Count")
1823 EADataSize = uint32("ea_data_size", "Data Size")
1824 EADataSizeDuplicated = uint32("ea_data_size_duplicated", "Data Size Duplicated")
1825 EADuplicateCount = uint32("ea_duplicate_count", "Duplicate Count")
1826 EAErrorCodes = val_string16("ea_error_codes", "EA Error Codes", [
1827 [ 0x0000, "SUCCESSFUL" ],
1828 [ 0x00c8, "ERR_MISSING_EA_KEY" ],
1829 [ 0x00c9, "ERR_EA_NOT_FOUND" ],
1830 [ 0x00ca, "ERR_INVALID_EA_HANDLE_TYPE" ],
1831 [ 0x00cb, "ERR_EA_NO_KEY_NO_DATA" ],
1832 [ 0x00cc, "ERR_EA_NUMBER_MISMATCH" ],
1833 [ 0x00cd, "ERR_EXTENT_NUMBER_OUT_OF_RANGE" ],
1834 [ 0x00ce, "ERR_EA_BAD_DIR_NUM" ],
1835 [ 0x00cf, "ERR_INVALID_EA_HANDLE" ],
1836 [ 0x00d0, "ERR_EA_POSITION_OUT_OF_RANGE" ],
1837 [ 0x00d1, "ERR_EA_ACCESS_DENIED" ],
1838 [ 0x00d2, "ERR_DATA_PAGE_ODD_SIZE" ],
1839 [ 0x00d3, "ERR_EA_VOLUME_NOT_MOUNTED" ],
1840 [ 0x00d4, "ERR_BAD_PAGE_BOUNDARY" ],
1841 [ 0x00d5, "ERR_INSPECT_FAILURE" ],
1842 [ 0x00d6, "ERR_EA_ALREADY_CLAIMED" ],
1843 [ 0x00d7, "ERR_ODD_BUFFER_SIZE" ],
1844 [ 0x00d8, "ERR_NO_SCORECARDS" ],
1845 [ 0x00d9, "ERR_BAD_EDS_SIGNATURE" ],
1846 [ 0x00da, "ERR_EA_SPACE_LIMIT" ],
1847 [ 0x00db, "ERR_EA_KEY_CORRUPT" ],
1848 [ 0x00dc, "ERR_EA_KEY_LIMIT" ],
1849 [ 0x00dd, "ERR_TALLY_CORRUPT" ],
1851 EAFlags = val_string16("ea_flags", "EA Flags", [
1852 [ 0x0000, "Return EAHandle,Information Level 0" ],
1853 [ 0x0001, "Return NetWareHandle,Information Level 0" ],
1854 [ 0x0002, "Return Volume/Directory Number,Information Level 0" ],
1855 [ 0x0004, "Return EAHandle,Close Handle on Error,Information Level 0" ],
1856 [ 0x0005, "Return NetWareHandle,Close Handle on Error,Information Level 0" ],
1857 [ 0x0006, "Return Volume/Directory Number,Close Handle on Error,Information Level 0" ],
1858 [ 0x0010, "Return EAHandle,Information Level 1" ],
1859 [ 0x0011, "Return NetWareHandle,Information Level 1" ],
1860 [ 0x0012, "Return Volume/Directory Number,Information Level 1" ],
1861 [ 0x0014, "Return EAHandle,Close Handle on Error,Information Level 1" ],
1862 [ 0x0015, "Return NetWareHandle,Close Handle on Error,Information Level 1" ],
1863 [ 0x0016, "Return Volume/Directory Number,Close Handle on Error,Information Level 1" ],
1864 [ 0x0020, "Return EAHandle,Information Level 2" ],
1865 [ 0x0021, "Return NetWareHandle,Information Level 2" ],
1866 [ 0x0022, "Return Volume/Directory Number,Information Level 2" ],
1867 [ 0x0024, "Return EAHandle,Close Handle on Error,Information Level 2" ],
1868 [ 0x0025, "Return NetWareHandle,Close Handle on Error,Information Level 2" ],
1869 [ 0x0026, "Return Volume/Directory Number,Close Handle on Error,Information Level 2" ],
1870 [ 0x0030, "Return EAHandle,Information Level 3" ],
1871 [ 0x0031, "Return NetWareHandle,Information Level 3" ],
1872 [ 0x0032, "Return Volume/Directory Number,Information Level 3" ],
1873 [ 0x0034, "Return EAHandle,Close Handle on Error,Information Level 3" ],
1874 [ 0x0035, "Return NetWareHandle,Close Handle on Error,Information Level 3" ],
1875 [ 0x0036, "Return Volume/Directory Number,Close Handle on Error,Information Level 3" ],
1876 [ 0x0040, "Return EAHandle,Information Level 4" ],
1877 [ 0x0041, "Return NetWareHandle,Information Level 4" ],
1878 [ 0x0042, "Return Volume/Directory Number,Information Level 4" ],
1879 [ 0x0044, "Return EAHandle,Close Handle on Error,Information Level 4" ],
1880 [ 0x0045, "Return NetWareHandle,Close Handle on Error,Information Level 4" ],
1881 [ 0x0046, "Return Volume/Directory Number,Close Handle on Error,Information Level 4" ],
1882 [ 0x0050, "Return EAHandle,Information Level 5" ],
1883 [ 0x0051, "Return NetWareHandle,Information Level 5" ],
1884 [ 0x0052, "Return Volume/Directory Number,Information Level 5" ],
1885 [ 0x0054, "Return EAHandle,Close Handle on Error,Information Level 5" ],
1886 [ 0x0055, "Return NetWareHandle,Close Handle on Error,Information Level 5" ],
1887 [ 0x0056, "Return Volume/Directory Number,Close Handle on Error,Information Level 5" ],
1888 [ 0x0060, "Return EAHandle,Information Level 6" ],
1889 [ 0x0061, "Return NetWareHandle,Information Level 6" ],
1890 [ 0x0062, "Return Volume/Directory Number,Information Level 6" ],
1891 [ 0x0064, "Return EAHandle,Close Handle on Error,Information Level 6" ],
1892 [ 0x0065, "Return NetWareHandle,Close Handle on Error,Information Level 6" ],
1893 [ 0x0066, "Return Volume/Directory Number,Close Handle on Error,Information Level 6" ],
1894 [ 0x0070, "Return EAHandle,Information Level 7" ],
1895 [ 0x0071, "Return NetWareHandle,Information Level 7" ],
1896 [ 0x0072, "Return Volume/Directory Number,Information Level 7" ],
1897 [ 0x0074, "Return EAHandle,Close Handle on Error,Information Level 7" ],
1898 [ 0x0075, "Return NetWareHandle,Close Handle on Error,Information Level 7" ],
1899 [ 0x0076, "Return Volume/Directory Number,Close Handle on Error,Information Level 7" ],
1900 [ 0x0080, "Return EAHandle,Information Level 0,Immediate Close Handle" ],
1901 [ 0x0081, "Return NetWareHandle,Information Level 0,Immediate Close Handle" ],
1902 [ 0x0082, "Return Volume/Directory Number,Information Level 0,Immediate Close Handle" ],
1903 [ 0x0084, "Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1904 [ 0x0085, "Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1905 [ 0x0086, "Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1906 [ 0x0090, "Return EAHandle,Information Level 1,Immediate Close Handle" ],
1907 [ 0x0091, "Return NetWareHandle,Information Level 1,Immediate Close Handle" ],
1908 [ 0x0092, "Return Volume/Directory Number,Information Level 1,Immediate Close Handle" ],
1909 [ 0x0094, "Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1910 [ 0x0095, "Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1911 [ 0x0096, "Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1912 [ 0x00a0, "Return EAHandle,Information Level 2,Immediate Close Handle" ],
1913 [ 0x00a1, "Return NetWareHandle,Information Level 2,Immediate Close Handle" ],
1914 [ 0x00a2, "Return Volume/Directory Number,Information Level 2,Immediate Close Handle" ],
1915 [ 0x00a4, "Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1916 [ 0x00a5, "Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1917 [ 0x00a6, "Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1918 [ 0x00b0, "Return EAHandle,Information Level 3,Immediate Close Handle" ],
1919 [ 0x00b1, "Return NetWareHandle,Information Level 3,Immediate Close Handle" ],
1920 [ 0x00b2, "Return Volume/Directory Number,Information Level 3,Immediate Close Handle" ],
1921 [ 0x00b4, "Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1922 [ 0x00b5, "Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1923 [ 0x00b6, "Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1924 [ 0x00c0, "Return EAHandle,Information Level 4,Immediate Close Handle" ],
1925 [ 0x00c1, "Return NetWareHandle,Information Level 4,Immediate Close Handle" ],
1926 [ 0x00c2, "Return Volume/Directory Number,Information Level 4,Immediate Close Handle" ],
1927 [ 0x00c4, "Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1928 [ 0x00c5, "Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1929 [ 0x00c6, "Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1930 [ 0x00d0, "Return EAHandle,Information Level 5,Immediate Close Handle" ],
1931 [ 0x00d1, "Return NetWareHandle,Information Level 5,Immediate Close Handle" ],
1932 [ 0x00d2, "Return Volume/Directory Number,Information Level 5,Immediate Close Handle" ],
1933 [ 0x00d4, "Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1934 [ 0x00d5, "Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1935 [ 0x00d6, "Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1936 [ 0x00e0, "Return EAHandle,Information Level 6,Immediate Close Handle" ],
1937 [ 0x00e1, "Return NetWareHandle,Information Level 6,Immediate Close Handle" ],
1938 [ 0x00e2, "Return Volume/Directory Number,Information Level 6,Immediate Close Handle" ],
1939 [ 0x00e4, "Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1940 [ 0x00e5, "Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1941 [ 0x00e6, "Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1942 [ 0x00f0, "Return EAHandle,Information Level 7,Immediate Close Handle" ],
1943 [ 0x00f1, "Return NetWareHandle,Information Level 7,Immediate Close Handle" ],
1944 [ 0x00f2, "Return Volume/Directory Number,Information Level 7,Immediate Close Handle" ],
1945 [ 0x00f4, "Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1946 [ 0x00f5, "Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1947 [ 0x00f6, "Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1949 EAHandle = uint32("ea_handle", "EA Handle")
1950 EAHandle.Display("BASE_HEX")
1951 EAHandleOrNetWareHandleOrVolume = uint32("ea_handle_or_netware_handle_or_volume", "EAHandle or NetWare Handle or Volume (see EAFlags)")
1952 EAHandleOrNetWareHandleOrVolume.Display("BASE_HEX")
1953 EAKey = nstring16("ea_key", "EA Key")
1954 EAKeySize = uint32("ea_key_size", "Key Size")
1955 EAKeySizeDuplicated = uint32("ea_key_size_duplicated", "Key Size Duplicated")
1956 EAValue = nstring16("ea_value", "EA Value")
1957 EAValueRep = fw_string("ea_value_rep", "EA Value", 1)
1958 EAValueLength = uint16("ea_value_length", "Value Length")
1959 EchoSocket = uint16("echo_socket", "Echo Socket")
1960 EchoSocket.Display('BASE_HEX')
1961 EffectiveRights = bitfield8("effective_rights", "Effective Rights", [
1962 bf_boolean8(0x01, "effective_rights_read", "Read Rights"),
1963 bf_boolean8(0x02, "effective_rights_write", "Write Rights"),
1964 bf_boolean8(0x04, "effective_rights_open", "Open Rights"),
1965 bf_boolean8(0x08, "effective_rights_create", "Create Rights"),
1966 bf_boolean8(0x10, "effective_rights_delete", "Delete Rights"),
1967 bf_boolean8(0x20, "effective_rights_parental", "Parental Rights"),
1968 bf_boolean8(0x40, "effective_rights_search", "Search Rights"),
1969 bf_boolean8(0x80, "effective_rights_modify", "Modify Rights"),
1971 EnumInfoMask = bitfield8("enum_info_mask", "Return Information Mask", [
1972 bf_boolean8(0x01, "enum_info_transport", "Transport Information"),
1973 bf_boolean8(0x02, "enum_info_time", "Time Information"),
1974 bf_boolean8(0x04, "enum_info_name", "Name Information"),
1975 bf_boolean8(0x08, "enum_info_lock", "Lock Information"),
1976 bf_boolean8(0x10, "enum_info_print", "Print Information"),
1977 bf_boolean8(0x20, "enum_info_stats", "Statistical Information"),
1978 bf_boolean8(0x40, "enum_info_account", "Accounting Information"),
1979 bf_boolean8(0x80, "enum_info_auth", "Authentication Information"),
1982 eventOffset = bytes("event_offset", "Event Offset", 8)
1983 eventOffset.Display("BASE_HEX")
1984 eventTime = uint32("event_time", "Event Time")
1985 eventTime.Display("BASE_HEX")
1986 ExpirationTime = uint32("expiration_time", "Expiration Time")
1987 ExpirationTime.Display('BASE_HEX')
1988 ExtAttrDataSize = uint32("ext_attr_data_size", "Extended Attributes Data Size")
1989 ExtAttrCount = uint32("ext_attr_count", "Extended Attributes Count")
1990 ExtAttrKeySize = uint32("ext_attr_key_size", "Extended Attributes Key Size")
1991 ExtendedAttributesDefined = uint32("extended_attributes_defined", "Extended Attributes Defined")
1992 ExtendedAttributeExtantsUsed = uint32("extended_attribute_extants_used", "Extended Attribute Extants Used")
1993 ExtendedInfo = bitfield16("ext_info", "Extended Return Information", [
1994 bf_boolean16(0x0001, "ext_info_update", "Update"),
1995 bf_boolean16(0x0002, "ext_info_dos_name", "DOS Name"),
1996 bf_boolean16(0x0004, "ext_info_flush", "Flush"),
1997 bf_boolean16(0x0008, "ext_info_parental", "Parental"),
1998 bf_boolean16(0x0010, "ext_info_mac_finder", "MAC Finder"),
1999 bf_boolean16(0x0020, "ext_info_sibling", "Sibling"),
2000 bf_boolean16(0x0040, "ext_info_effective", "Effective"),
2001 bf_boolean16(0x0080, "ext_info_mac_date", "MAC Date"),
2002 bf_boolean16(0x0100, "ext_info_access", "Last Access"),
2003 bf_boolean16(0x0400, "ext_info_64_bit_fs", "64 Bit File Sizes"),
2004 bf_boolean16(0x8000, "ext_info_newstyle", "New Style"),
2006 ExtRouterActiveFlag = boolean8("ext_router_active_flag", "External Router Active Flag")
2008 FailedAllocReqCnt = uint32("failed_alloc_req", "Failed Alloc Request Count")
2009 FatalFATWriteErrors = uint16("fatal_fat_write_errors", "Fatal FAT Write Errors")
2010 FATScanErrors = uint16("fat_scan_errors", "FAT Scan Errors")
2011 FATWriteErrors = uint16("fat_write_errors", "FAT Write Errors")
2012 FieldsLenTable = bytes("fields_len_table", "Fields Len Table", 32)
2013 FileCount = uint16("file_count", "File Count")
2014 FileDate = uint16("file_date", "File Date")
2016 FileDirWindow = uint16("file_dir_win", "File/Dir Window")
2017 FileDirWindow.Display("BASE_HEX")
2018 FileExecuteType = uint8("file_execute_type", "File Execute Type")
2019 FileExtendedAttributes = val_string8("file_ext_attr", "File Extended Attributes", [
2020 [ 0x00, "Search On All Read Only Opens" ],
2021 [ 0x01, "Search On Read Only Opens With No Path" ],
2022 [ 0x02, "Shell Default Search Mode" ],
2023 [ 0x03, "Search On All Opens With No Path" ],
2024 [ 0x04, "Do Not Search" ],
2025 [ 0x05, "Reserved" ],
2026 [ 0x06, "Search On All Opens" ],
2027 [ 0x07, "Reserved" ],
2028 [ 0x08, "Search On All Read Only Opens/Indexed" ],
2029 [ 0x09, "Search On Read Only Opens With No Path/Indexed" ],
2030 [ 0x0a, "Shell Default Search Mode/Indexed" ],
2031 [ 0x0b, "Search On All Opens With No Path/Indexed" ],
2032 [ 0x0c, "Do Not Search/Indexed" ],
2033 [ 0x0d, "Indexed" ],
2034 [ 0x0e, "Search On All Opens/Indexed" ],
2035 [ 0x0f, "Indexed" ],
2036 [ 0x10, "Search On All Read Only Opens/Transactional" ],
2037 [ 0x11, "Search On Read Only Opens With No Path/Transactional" ],
2038 [ 0x12, "Shell Default Search Mode/Transactional" ],
2039 [ 0x13, "Search On All Opens With No Path/Transactional" ],
2040 [ 0x14, "Do Not Search/Transactional" ],
2041 [ 0x15, "Transactional" ],
2042 [ 0x16, "Search On All Opens/Transactional" ],
2043 [ 0x17, "Transactional" ],
2044 [ 0x18, "Search On All Read Only Opens/Indexed/Transactional" ],
2045 [ 0x19, "Search On Read Only Opens With No Path/Indexed/Transactional" ],
2046 [ 0x1a, "Shell Default Search Mode/Indexed/Transactional" ],
2047 [ 0x1b, "Search On All Opens With No Path/Indexed/Transactional" ],
2048 [ 0x1c, "Do Not Search/Indexed/Transactional" ],
2049 [ 0x1d, "Indexed/Transactional" ],
2050 [ 0x1e, "Search On All Opens/Indexed/Transactional" ],
2051 [ 0x1f, "Indexed/Transactional" ],
2052 [ 0x40, "Search On All Read Only Opens/Read Audit" ],
2053 [ 0x41, "Search On Read Only Opens With No Path/Read Audit" ],
2054 [ 0x42, "Shell Default Search Mode/Read Audit" ],
2055 [ 0x43, "Search On All Opens With No Path/Read Audit" ],
2056 [ 0x44, "Do Not Search/Read Audit" ],
2057 [ 0x45, "Read Audit" ],
2058 [ 0x46, "Search On All Opens/Read Audit" ],
2059 [ 0x47, "Read Audit" ],
2060 [ 0x48, "Search On All Read Only Opens/Indexed/Read Audit" ],
2061 [ 0x49, "Search On Read Only Opens With No Path/Indexed/Read Audit" ],
2062 [ 0x4a, "Shell Default Search Mode/Indexed/Read Audit" ],
2063 [ 0x4b, "Search On All Opens With No Path/Indexed/Read Audit" ],
2064 [ 0x4c, "Do Not Search/Indexed/Read Audit" ],
2065 [ 0x4d, "Indexed/Read Audit" ],
2066 [ 0x4e, "Search On All Opens/Indexed/Read Audit" ],
2067 [ 0x4f, "Indexed/Read Audit" ],
2068 [ 0x50, "Search On All Read Only Opens/Transactional/Read Audit" ],
2069 [ 0x51, "Search On Read Only Opens With No Path/Transactional/Read Audit" ],
2070 [ 0x52, "Shell Default Search Mode/Transactional/Read Audit" ],
2071 [ 0x53, "Search On All Opens With No Path/Transactional/Read Audit" ],
2072 [ 0x54, "Do Not Search/Transactional/Read Audit" ],
2073 [ 0x55, "Transactional/Read Audit" ],
2074 [ 0x56, "Search On All Opens/Transactional/Read Audit" ],
2075 [ 0x57, "Transactional/Read Audit" ],
2076 [ 0x58, "Search On All Read Only Opens/Indexed/Transactional/Read Audit" ],
2077 [ 0x59, "Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit" ],
2078 [ 0x5a, "Shell Default Search Mode/Indexed/Transactional/Read Audit" ],
2079 [ 0x5b, "Search On All Opens With No Path/Indexed/Transactional/Read Audit" ],
2080 [ 0x5c, "Do Not Search/Indexed/Transactional/Read Audit" ],
2081 [ 0x5d, "Indexed/Transactional/Read Audit" ],
2082 [ 0x5e, "Search On All Opens/Indexed/Transactional/Read Audit" ],
2083 [ 0x5f, "Indexed/Transactional/Read Audit" ],
2084 [ 0x80, "Search On All Read Only Opens/Write Audit" ],
2085 [ 0x81, "Search On Read Only Opens With No Path/Write Audit" ],
2086 [ 0x82, "Shell Default Search Mode/Write Audit" ],
2087 [ 0x83, "Search On All Opens With No Path/Write Audit" ],
2088 [ 0x84, "Do Not Search/Write Audit" ],
2089 [ 0x85, "Write Audit" ],
2090 [ 0x86, "Search On All Opens/Write Audit" ],
2091 [ 0x87, "Write Audit" ],
2092 [ 0x88, "Search On All Read Only Opens/Indexed/Write Audit" ],
2093 [ 0x89, "Search On Read Only Opens With No Path/Indexed/Write Audit" ],
2094 [ 0x8a, "Shell Default Search Mode/Indexed/Write Audit" ],
2095 [ 0x8b, "Search On All Opens With No Path/Indexed/Write Audit" ],
2096 [ 0x8c, "Do Not Search/Indexed/Write Audit" ],
2097 [ 0x8d, "Indexed/Write Audit" ],
2098 [ 0x8e, "Search On All Opens/Indexed/Write Audit" ],
2099 [ 0x8f, "Indexed/Write Audit" ],
2100 [ 0x90, "Search On All Read Only Opens/Transactional/Write Audit" ],
2101 [ 0x91, "Search On Read Only Opens With No Path/Transactional/Write Audit" ],
2102 [ 0x92, "Shell Default Search Mode/Transactional/Write Audit" ],
2103 [ 0x93, "Search On All Opens With No Path/Transactional/Write Audit" ],
2104 [ 0x94, "Do Not Search/Transactional/Write Audit" ],
2105 [ 0x95, "Transactional/Write Audit" ],
2106 [ 0x96, "Search On All Opens/Transactional/Write Audit" ],
2107 [ 0x97, "Transactional/Write Audit" ],
2108 [ 0x98, "Search On All Read Only Opens/Indexed/Transactional/Write Audit" ],
2109 [ 0x99, "Search On Read Only Opens With No Path/Indexed/Transactional/Write Audit" ],
2110 [ 0x9a, "Shell Default Search Mode/Indexed/Transactional/Write Audit" ],
2111 [ 0x9b, "Search On All Opens With No Path/Indexed/Transactional/Write Audit" ],
2112 [ 0x9c, "Do Not Search/Indexed/Transactional/Write Audit" ],
2113 [ 0x9d, "Indexed/Transactional/Write Audit" ],
2114 [ 0x9e, "Search On All Opens/Indexed/Transactional/Write Audit" ],
2115 [ 0x9f, "Indexed/Transactional/Write Audit" ],
2116 [ 0xa0, "Search On All Read Only Opens/Read Audit/Write Audit" ],
2117 [ 0xa1, "Search On Read Only Opens With No Path/Read Audit/Write Audit" ],
2118 [ 0xa2, "Shell Default Search Mode/Read Audit/Write Audit" ],
2119 [ 0xa3, "Search On All Opens With No Path/Read Audit/Write Audit" ],
2120 [ 0xa4, "Do Not Search/Read Audit/Write Audit" ],
2121 [ 0xa5, "Read Audit/Write Audit" ],
2122 [ 0xa6, "Search On All Opens/Read Audit/Write Audit" ],
2123 [ 0xa7, "Read Audit/Write Audit" ],
2124 [ 0xa8, "Search On All Read Only Opens/Indexed/Read Audit/Write Audit" ],
2125 [ 0xa9, "Search On Read Only Opens With No Path/Indexed/Read Audit/Write Audit" ],
2126 [ 0xaa, "Shell Default Search Mode/Indexed/Read Audit/Write Audit" ],
2127 [ 0xab, "Search On All Opens With No Path/Indexed/Read Audit/Write Audit" ],
2128 [ 0xac, "Do Not Search/Indexed/Read Audit/Write Audit" ],
2129 [ 0xad, "Indexed/Read Audit/Write Audit" ],
2130 [ 0xae, "Search On All Opens/Indexed/Read Audit/Write Audit" ],
2131 [ 0xaf, "Indexed/Read Audit/Write Audit" ],
2132 [ 0xb0, "Search On All Read Only Opens/Transactional/Read Audit/Write Audit" ],
2133 [ 0xb1, "Search On Read Only Opens With No Path/Transactional/Read Audit/Write Audit" ],
2134 [ 0xb2, "Shell Default Search Mode/Transactional/Read Audit/Write Audit" ],
2135 [ 0xb3, "Search On All Opens With No Path/Transactional/Read Audit/Write Audit" ],
2136 [ 0xb4, "Do Not Search/Transactional/Read Audit/Write Audit" ],
2137 [ 0xb5, "Transactional/Read Audit/Write Audit" ],
2138 [ 0xb6, "Search On All Opens/Transactional/Read Audit/Write Audit" ],
2139 [ 0xb7, "Transactional/Read Audit/Write Audit" ],
2140 [ 0xb8, "Search On All Read Only Opens/Indexed/Transactional/Read Audit/Write Audit" ],
2141 [ 0xb9, "Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" ],
2142 [ 0xba, "Shell Default Search Mode/Indexed/Transactional/Read Audit/Write Audit" ],
2143 [ 0xbb, "Search On All Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" ],
2144 [ 0xbc, "Do Not Search/Indexed/Transactional/Read Audit/Write Audit" ],
2145 [ 0xbd, "Indexed/Transactional/Read Audit/Write Audit" ],
2146 [ 0xbe, "Search On All Opens/Indexed/Transactional/Read Audit/Write Audit" ],
2147 [ 0xbf, "Indexed/Transactional/Read Audit/Write Audit" ],
2149 fileFlags = uint32("file_flags", "File Flags")
2150 FileHandle = bytes("file_handle", "File Handle", 6)
2151 FileLimbo = uint32("file_limbo", "File Limbo")
2152 FileListCount = uint32("file_list_count", "File List Count")
2153 FileLock = val_string8("file_lock", "File Lock", [
2154 [ 0x00, "Not Locked" ],
2155 [ 0xfe, "Locked by file lock" ],
2156 [ 0xff, "Unknown" ],
2158 FileLockCount = uint16("file_lock_count", "File Lock Count")
2159 FileMode = uint8("file_mode", "File Mode")
2160 FileName = nstring8("file_name", "Filename")
2161 FileName12 = fw_string("file_name_12", "Filename", 12)
2162 FileName14 = fw_string("file_name_14", "Filename", 14)
2163 FileNameLen = uint8("file_name_len", "Filename Length")
2164 FileOffset = uint32("file_offset", "File Offset")
2165 FilePath = nstring8("file_path", "File Path")
2166 FileSize = uint32("file_size", "File Size", BE)
2167 FileSystemID = uint8("file_system_id", "File System ID")
2168 FileTime = uint16("file_time", "File Time")
2170 FileWriteFlags = val_string8("file_write_flags", "File Write Flags", [
2171 [ 0x01, "Writing" ],
2172 [ 0x02, "Write aborted" ],
2174 FileWriteState = val_string8("file_write_state", "File Write State", [
2175 [ 0x00, "Not Writing" ],
2176 [ 0x01, "Write in Progress" ],
2177 [ 0x02, "Write Being Stopped" ],
2179 Filler = uint8("filler", "Filler")
2180 FinderAttr = bitfield16("finder_attr", "Finder Info Attributes", [
2181 bf_boolean16(0x0001, "finder_attr_desktop", "Object on Desktop"),
2182 bf_boolean16(0x2000, "finder_attr_invisible", "Object is Invisible"),
2183 bf_boolean16(0x4000, "finder_attr_bundle", "Object Has Bundle"),
2185 FixedBitMask = uint32("fixed_bit_mask", "Fixed Bit Mask")
2186 FixedBitsDefined = uint16("fixed_bits_defined", "Fixed Bits Defined")
2187 FlagBits = uint8("flag_bits", "Flag Bits")
2188 Flags = uint8("flags", "Flags")
2189 FlagsDef = uint16("flags_def", "Flags")
2190 FlushTime = uint32("flush_time", "Flush Time")
2191 FolderFlag = val_string8("folder_flag", "Folder Flag", [
2192 [ 0x00, "Not a Folder" ],
2195 ForkCount = uint8("fork_count", "Fork Count")
2196 ForkIndicator = val_string8("fork_indicator", "Fork Indicator", [
2197 [ 0x00, "Data Fork" ],
2198 [ 0x01, "Resource Fork" ],
2200 ForceFlag = val_string8("force_flag", "Force Server Down Flag", [
2201 [ 0x00, "Down Server if No Files Are Open" ],
2202 [ 0xff, "Down Server Immediately, Auto-Close Open Files" ],
2204 ForgedDetachedRequests = uint16("forged_detached_requests", "Forged Detached Requests")
2205 FormType = uint16( "form_type", "Form Type" )
2206 FormTypeCnt = uint32("form_type_count", "Form Types Count")
2207 FoundSomeMem = uint32("found_some_mem", "Found Some Memory")
2208 FractionalSeconds = uint32("fractional_time", "Fractional Time in Seconds")
2209 FraggerHandle = uint32("fragger_handle", "Fragment Handle")
2210 FraggerHandle.Display('BASE_HEX')
2211 FragmentWriteOccurred = uint16("fragment_write_occurred", "Fragment Write Occurred")
2212 FragSize = uint32("frag_size", "Fragment Size")
2213 FreeableLimboSectors = uint32("freeable_limbo_sectors", "Freeable Limbo Sectors")
2214 FreeBlocks = uint32("free_blocks", "Free Blocks")
2215 FreedClusters = uint32("freed_clusters", "Freed Clusters")
2216 FreeDirectoryEntries = uint16("free_directory_entries", "Free Directory Entries")
2217 FSEngineFlag = boolean8("fs_engine_flag", "FS Engine Flag")
2218 FullName = fw_string("full_name", "Full Name", 39)
2220 GetSetFlag = val_string8("get_set_flag", "Get Set Flag", [
2221 [ 0x00, "Get the default support module ID" ],
2222 [ 0x01, "Set the default support module ID" ],
2224 GUID = bytes("guid", "GUID", 16)
2225 GUID.Display("BASE_HEX")
2227 HandleFlag = val_string8("handle_flag", "Handle Flag", [
2228 [ 0x00, "Short Directory Handle" ],
2229 [ 0x01, "Directory Base" ],
2230 [ 0xFF, "No Handle Present" ],
2232 HandleInfoLevel = val_string8("handle_info_level", "Handle Info Level", [
2233 [ 0x00, "Get Limited Information from a File Handle" ],
2234 [ 0x01, "Get Limited Information from a File Handle Using a Name Space" ],
2235 [ 0x02, "Get Information from a File Handle" ],
2236 [ 0x03, "Get Information from a Directory Handle" ],
2237 [ 0x04, "Get Complete Information from a Directory Handle" ],
2238 [ 0x05, "Get Complete Information from a File Handle" ],
2240 HeldBytesRead = bytes("held_bytes_read", "Held Bytes Read", 6)
2241 HeldBytesWritten = bytes("held_bytes_write", "Held Bytes Written", 6)
2242 HeldConnectTimeInMinutes = uint32("held_conn_time", "Held Connect Time in Minutes")
2243 HeldRequests = uint32("user_info_held_req", "Held Requests")
2244 HoldAmount = uint32("hold_amount", "Hold Amount")
2245 HoldCancelAmount = uint32("hold_cancel_amount", "Hold Cancel Amount")
2246 HolderID = uint32("holder_id", "Holder ID")
2247 HolderID.Display("BASE_HEX")
2248 HoldTime = uint32("hold_time", "Hold Time")
2249 HopsToNet = uint16("hops_to_net", "Hop Count")
2250 HorizLocation = uint16("horiz_location", "Horizontal Location")
2251 HostAddress = bytes("host_address", "Host Address", 6)
2252 HotFixBlocksAvailable = uint16("hot_fix_blocks_available", "Hot Fix Blocks Available")
2253 HotFixDisabled = val_string8("hot_fix_disabled", "Hot Fix Disabled", [
2254 [ 0x00, "Enabled" ],
2255 [ 0x01, "Disabled" ],
2257 HotFixTableSize = uint16("hot_fix_table_size", "Hot Fix Table Size")
2258 HotFixTableStart = uint32("hot_fix_table_start", "Hot Fix Table Start")
2259 Hour = uint8("s_hour", "Hour")
2260 HugeBitMask = uint32("huge_bit_mask", "Huge Bit Mask")
2261 HugeBitsDefined = uint16("huge_bits_defined", "Huge Bits Defined")
2262 HugeData = nstring8("huge_data", "Huge Data")
2263 HugeDataUsed = uint32("huge_data_used", "Huge Data Used")
2264 HugeStateInfo = bytes("huge_state_info", "Huge State Info", 16)
2266 IdentificationNumber = uint32("identification_number", "Identification Number")
2267 IgnoredRxPkts = uint32("ignored_rx_pkts", "Ignored Receive Packets")
2268 IncomingPacketDiscardedNoDGroup = uint16("incoming_packet_discarded_no_dgroup", "Incoming Packet Discarded No DGroup")
2269 IndexNumber = uint8("index_number", "Index Number")
2270 InfoCount = uint16("info_count", "Info Count")
2271 InfoFlags = bitfield32("info_flags", "Info Flags", [
2272 bf_boolean32(0x10000000, "info_flags_security", "Return Object Security"),
2273 bf_boolean32(0x20000000, "info_flags_flags", "Return Object Flags"),
2274 bf_boolean32(0x40000000, "info_flags_type", "Return Object Type"),
2275 bf_boolean32(0x80000000, "info_flags_name", "Return Object Name"),
2277 InfoLevelNumber = val_string8("info_level_num", "Information Level Number", [
2278 [ 0x01, "Volume Information Definition" ],
2279 [ 0x02, "Volume Information 2 Definition" ],
2281 InfoMask = bitfield32("info_mask", "Information Mask", [
2282 bf_boolean32(0x00000001, "info_flags_dos_time", "DOS Time"),
2283 bf_boolean32(0x00000002, "info_flags_ref_count", "Reference Count"),
2284 bf_boolean32(0x00000004, "info_flags_dos_attr", "DOS Attributes"),
2285 bf_boolean32(0x00000008, "info_flags_ids", "ID's"),
2286 bf_boolean32(0x00000010, "info_flags_ds_sizes", "Data Stream Sizes"),
2287 bf_boolean32(0x00000020, "info_flags_ns_attr", "Name Space Attributes"),
2288 bf_boolean32(0x00000040, "info_flags_ea_present", "EA Present Flag"),
2289 bf_boolean32(0x00000080, "info_flags_all_attr", "All Attributes"),
2290 bf_boolean32(0x00000100, "info_flags_all_dirbase_num", "All Directory Base Numbers"),
2291 bf_boolean32(0x00000200, "info_flags_max_access_mask", "Maximum Access Mask"),
2292 bf_boolean32(0x00000400, "info_flags_flush_time", "Flush Time"),
2293 bf_boolean32(0x00000800, "info_flags_prnt_base_id", "Parent Base ID"),
2294 bf_boolean32(0x00001000, "info_flags_mac_finder", "Mac Finder Information"),
2295 bf_boolean32(0x00002000, "info_flags_sibling_cnt", "Sibling Count"),
2296 bf_boolean32(0x00004000, "info_flags_effect_rights", "Effective Rights"),
2297 bf_boolean32(0x00008000, "info_flags_mac_time", "Mac Time"),
2298 bf_boolean32(0x20000000, "info_mask_dosname", "DOS Name"),
2299 bf_boolean32(0x40000000, "info_mask_c_name_space", "Creator Name Space & Name"),
2300 bf_boolean32(0x80000000, "info_mask_name", "Name"),
2302 InheritedRightsMask = bitfield16("inherited_rights_mask", "Inherited Rights Mask", [
2303 bf_boolean16(0x0001, "inh_rights_read", "Read Rights"),
2304 bf_boolean16(0x0002, "inh_rights_write", "Write Rights"),
2305 bf_boolean16(0x0004, "inh_rights_open", "Open Rights"),
2306 bf_boolean16(0x0008, "inh_rights_create", "Create Rights"),
2307 bf_boolean16(0x0010, "inh_rights_delete", "Delete Rights"),
2308 bf_boolean16(0x0020, "inh_rights_parent", "Change Access"),
2309 bf_boolean16(0x0040, "inh_rights_search", "See Files Flag"),
2310 bf_boolean16(0x0080, "inh_rights_modify", "Modify Rights"),
2311 bf_boolean16(0x0100, "inh_rights_supervisor", "Supervisor"),
2313 InheritanceRevokeMask = bitfield16("inheritance_revoke_mask", "Revoke Rights Mask", [
2314 bf_boolean16(0x0001, "inh_revoke_read", "Read Rights"),
2315 bf_boolean16(0x0002, "inh_revoke_write", "Write Rights"),
2316 bf_boolean16(0x0004, "inh_revoke_open", "Open Rights"),
2317 bf_boolean16(0x0008, "inh_revoke_create", "Create Rights"),
2318 bf_boolean16(0x0010, "inh_revoke_delete", "Delete Rights"),
2319 bf_boolean16(0x0020, "inh_revoke_parent", "Change Access"),
2320 bf_boolean16(0x0040, "inh_revoke_search", "See Files Flag"),
2321 bf_boolean16(0x0080, "inh_revoke_modify", "Modify Rights"),
2322 bf_boolean16(0x0100, "inh_revoke_supervisor", "Supervisor"),
2324 InitialSemaphoreValue = uint8("initial_semaphore_value", "Initial Semaphore Value")
2325 InspectSize = uint32("inspect_size", "Inspect Size")
2326 InternetBridgeVersion = uint8("internet_bridge_version", "Internet Bridge Version")
2327 InterruptNumbersUsed = uint32("interrupt_numbers_used", "Interrupt Numbers Used")
2328 InUse = uint32("in_use", "Bytes in Use")
2329 IOAddressesUsed = bytes("io_addresses_used", "IO Addresses Used", 8)
2330 IOErrorCount = uint16("io_error_count", "IO Error Count")
2331 IOEngineFlag = boolean8("io_engine_flag", "IO Engine Flag")
2332 IPXNotMyNetwork = uint16("ipx_not_my_network", "IPX Not My Network")
2333 ItemsChanged = uint32("items_changed", "Items Changed")
2334 ItemsChecked = uint32("items_checked", "Items Checked")
2335 ItemsCount = uint32("items_count", "Items Count")
2336 itemsInList = uint32("items_in_list", "Items in List")
2337 ItemsInPacket = uint32("items_in_packet", "Items in Packet")
2339 JobControlFlags = bitfield8("job_control_flags", "Job Control Flags", [
2340 bf_boolean8(0x08, "job_control_job_recovery", "Job Recovery"),
2341 bf_boolean8(0x10, "job_control_reservice", "ReService Job"),
2342 bf_boolean8(0x20, "job_control_file_open", "File Open"),
2343 bf_boolean8(0x40, "job_control_user_hold", "User Hold"),
2344 bf_boolean8(0x80, "job_control_operator_hold", "Operator Hold"),
2347 JobControlFlagsWord = bitfield16("job_control_flags_word", "Job Control Flags", [
2348 bf_boolean16(0x0008, "job_control1_job_recovery", "Job Recovery"),
2349 bf_boolean16(0x0010, "job_control1_reservice", "ReService Job"),
2350 bf_boolean16(0x0020, "job_control1_file_open", "File Open"),
2351 bf_boolean16(0x0040, "job_control1_user_hold", "User Hold"),
2352 bf_boolean16(0x0080, "job_control1_operator_hold", "Operator Hold"),
2355 JobCount = uint32("job_count", "Job Count")
2356 JobFileHandle = bytes("job_file_handle", "Job File Handle", 6)
2357 JobFileHandleLong = uint32("job_file_handle_long", "Job File Handle", BE)
2358 JobFileHandleLong.Display("BASE_HEX")
2359 JobFileName = fw_string("job_file_name", "Job File Name", 14)
2360 JobPosition = uint8("job_position", "Job Position")
2361 JobPositionWord = uint16("job_position_word", "Job Position")
2362 JobNumber = uint16("job_number", "Job Number", BE )
2363 JobNumberLong = uint32("job_number_long", "Job Number", BE )
2364 JobNumberLong.Display("BASE_HEX")
2365 JobType = uint16("job_type", "Job Type", BE )
2367 LANCustomVariablesCount = uint32("lan_cust_var_count", "LAN Custom Variables Count")
2368 LANdriverBoardInstance = uint16("lan_drv_bd_inst", "LAN Driver Board Instance")
2369 LANdriverBoardNumber = uint16("lan_drv_bd_num", "LAN Driver Board Number")
2370 LANdriverCardID = uint16("lan_drv_card_id", "LAN Driver Card ID")
2371 LANdriverCardName = fw_string("lan_drv_card_name", "LAN Driver Card Name", 28)
2372 LANdriverCFG_MajorVersion = uint8("lan_dvr_cfg_major_vrs", "LAN Driver Config - Major Version")
2373 LANdriverCFG_MinorVersion = uint8("lan_dvr_cfg_minor_vrs", "LAN Driver Config - Minor Version")
2374 LANdriverDMAUsage1 = uint8("lan_drv_dma_usage1", "Primary DMA Channel")
2375 LANdriverDMAUsage2 = uint8("lan_drv_dma_usage2", "Secondary DMA Channel")
2376 LANdriverFlags = uint16("lan_drv_flags", "LAN Driver Flags")
2377 LANdriverFlags.Display("BASE_HEX")
2378 LANdriverInterrupt1 = uint8("lan_drv_interrupt1", "Primary Interrupt Vector")
2379 LANdriverInterrupt2 = uint8("lan_drv_interrupt2", "Secondary Interrupt Vector")
2380 LANdriverIOPortsAndRanges1 = uint16("lan_drv_io_ports_and_ranges_1", "Primary Base I/O Port")
2381 LANdriverIOPortsAndRanges2 = uint16("lan_drv_io_ports_and_ranges_2", "Number of I/O Ports")
2382 LANdriverIOPortsAndRanges3 = uint16("lan_drv_io_ports_and_ranges_3", "Secondary Base I/O Port")
2383 LANdriverIOPortsAndRanges4 = uint16("lan_drv_io_ports_and_ranges_4", "Number of I/O Ports")
2384 LANdriverIOReserved = bytes("lan_drv_io_reserved", "LAN Driver IO Reserved", 14)
2385 LANdriverLineSpeed = uint16("lan_drv_line_speed", "LAN Driver Line Speed")
2386 LANdriverLink = uint32("lan_drv_link", "LAN Driver Link")
2387 LANdriverLogicalName = bytes("lan_drv_log_name", "LAN Driver Logical Name", 18)
2388 LANdriverMajorVersion = uint8("lan_drv_major_ver", "LAN Driver Major Version")
2389 LANdriverMaximumSize = uint32("lan_drv_max_size", "LAN Driver Maximum Size")
2390 LANdriverMaxRecvSize = uint32("lan_drv_max_rcv_size", "LAN Driver Maximum Receive Size")
2391 LANdriverMediaID = uint16("lan_drv_media_id", "LAN Driver Media ID")
2392 LANdriverMediaType = fw_string("lan_drv_media_type", "LAN Driver Media Type", 40)
2393 LANdriverMemoryDecode0 = uint32("lan_drv_mem_decode_0", "LAN Driver Memory Decode 0")
2394 LANdriverMemoryDecode1 = uint32("lan_drv_mem_decode_1", "LAN Driver Memory Decode 1")
2395 LANdriverMemoryLength0 = uint16("lan_drv_mem_length_0", "LAN Driver Memory Length 0")
2396 LANdriverMemoryLength1 = uint16("lan_drv_mem_length_1", "LAN Driver Memory Length 1")
2397 LANdriverMinorVersion = uint8("lan_drv_minor_ver", "LAN Driver Minor Version")
2398 LANdriverModeFlags = val_string8("lan_dvr_mode_flags", "LAN Driver Mode Flags", [
2399 [0x80, "Canonical Address" ],
2400 [0x81, "Canonical Address" ],
2401 [0x82, "Canonical Address" ],
2402 [0x83, "Canonical Address" ],
2403 [0x84, "Canonical Address" ],
2404 [0x85, "Canonical Address" ],
2405 [0x86, "Canonical Address" ],
2406 [0x87, "Canonical Address" ],
2407 [0x88, "Canonical Address" ],
2408 [0x89, "Canonical Address" ],
2409 [0x8a, "Canonical Address" ],
2410 [0x8b, "Canonical Address" ],
2411 [0x8c, "Canonical Address" ],
2412 [0x8d, "Canonical Address" ],
2413 [0x8e, "Canonical Address" ],
2414 [0x8f, "Canonical Address" ],
2415 [0x90, "Canonical Address" ],
2416 [0x91, "Canonical Address" ],
2417 [0x92, "Canonical Address" ],
2418 [0x93, "Canonical Address" ],
2419 [0x94, "Canonical Address" ],
2420 [0x95, "Canonical Address" ],
2421 [0x96, "Canonical Address" ],
2422 [0x97, "Canonical Address" ],
2423 [0x98, "Canonical Address" ],
2424 [0x99, "Canonical Address" ],
2425 [0x9a, "Canonical Address" ],
2426 [0x9b, "Canonical Address" ],
2427 [0x9c, "Canonical Address" ],
2428 [0x9d, "Canonical Address" ],
2429 [0x9e, "Canonical Address" ],
2430 [0x9f, "Canonical Address" ],
2431 [0xa0, "Canonical Address" ],
2432 [0xa1, "Canonical Address" ],
2433 [0xa2, "Canonical Address" ],
2434 [0xa3, "Canonical Address" ],
2435 [0xa4, "Canonical Address" ],
2436 [0xa5, "Canonical Address" ],
2437 [0xa6, "Canonical Address" ],
2438 [0xa7, "Canonical Address" ],
2439 [0xa8, "Canonical Address" ],
2440 [0xa9, "Canonical Address" ],
2441 [0xaa, "Canonical Address" ],
2442 [0xab, "Canonical Address" ],
2443 [0xac, "Canonical Address" ],
2444 [0xad, "Canonical Address" ],
2445 [0xae, "Canonical Address" ],
2446 [0xaf, "Canonical Address" ],
2447 [0xb0, "Canonical Address" ],
2448 [0xb1, "Canonical Address" ],
2449 [0xb2, "Canonical Address" ],
2450 [0xb3, "Canonical Address" ],
2451 [0xb4, "Canonical Address" ],
2452 [0xb5, "Canonical Address" ],
2453 [0xb6, "Canonical Address" ],
2454 [0xb7, "Canonical Address" ],
2455 [0xb8, "Canonical Address" ],
2456 [0xb9, "Canonical Address" ],
2457 [0xba, "Canonical Address" ],
2458 [0xbb, "Canonical Address" ],
2459 [0xbc, "Canonical Address" ],
2460 [0xbd, "Canonical Address" ],
2461 [0xbe, "Canonical Address" ],
2462 [0xbf, "Canonical Address" ],
2463 [0xc0, "Non-Canonical Address" ],
2464 [0xc1, "Non-Canonical Address" ],
2465 [0xc2, "Non-Canonical Address" ],
2466 [0xc3, "Non-Canonical Address" ],
2467 [0xc4, "Non-Canonical Address" ],
2468 [0xc5, "Non-Canonical Address" ],
2469 [0xc6, "Non-Canonical Address" ],
2470 [0xc7, "Non-Canonical Address" ],
2471 [0xc8, "Non-Canonical Address" ],
2472 [0xc9, "Non-Canonical Address" ],
2473 [0xca, "Non-Canonical Address" ],
2474 [0xcb, "Non-Canonical Address" ],
2475 [0xcc, "Non-Canonical Address" ],
2476 [0xcd, "Non-Canonical Address" ],
2477 [0xce, "Non-Canonical Address" ],
2478 [0xcf, "Non-Canonical Address" ],
2479 [0xd0, "Non-Canonical Address" ],
2480 [0xd1, "Non-Canonical Address" ],
2481 [0xd2, "Non-Canonical Address" ],
2482 [0xd3, "Non-Canonical Address" ],
2483 [0xd4, "Non-Canonical Address" ],
2484 [0xd5, "Non-Canonical Address" ],
2485 [0xd6, "Non-Canonical Address" ],
2486 [0xd7, "Non-Canonical Address" ],
2487 [0xd8, "Non-Canonical Address" ],
2488 [0xd9, "Non-Canonical Address" ],
2489 [0xda, "Non-Canonical Address" ],
2490 [0xdb, "Non-Canonical Address" ],
2491 [0xdc, "Non-Canonical Address" ],
2492 [0xdd, "Non-Canonical Address" ],
2493 [0xde, "Non-Canonical Address" ],
2494 [0xdf, "Non-Canonical Address" ],
2495 [0xe0, "Non-Canonical Address" ],
2496 [0xe1, "Non-Canonical Address" ],
2497 [0xe2, "Non-Canonical Address" ],
2498 [0xe3, "Non-Canonical Address" ],
2499 [0xe4, "Non-Canonical Address" ],
2500 [0xe5, "Non-Canonical Address" ],
2501 [0xe6, "Non-Canonical Address" ],
2502 [0xe7, "Non-Canonical Address" ],
2503 [0xe8, "Non-Canonical Address" ],
2504 [0xe9, "Non-Canonical Address" ],
2505 [0xea, "Non-Canonical Address" ],
2506 [0xeb, "Non-Canonical Address" ],
2507 [0xec, "Non-Canonical Address" ],
2508 [0xed, "Non-Canonical Address" ],
2509 [0xee, "Non-Canonical Address" ],
2510 [0xef, "Non-Canonical Address" ],
2511 [0xf0, "Non-Canonical Address" ],
2512 [0xf1, "Non-Canonical Address" ],
2513 [0xf2, "Non-Canonical Address" ],
2514 [0xf3, "Non-Canonical Address" ],
2515 [0xf4, "Non-Canonical Address" ],
2516 [0xf5, "Non-Canonical Address" ],
2517 [0xf6, "Non-Canonical Address" ],
2518 [0xf7, "Non-Canonical Address" ],
2519 [0xf8, "Non-Canonical Address" ],
2520 [0xf9, "Non-Canonical Address" ],
2521 [0xfa, "Non-Canonical Address" ],
2522 [0xfb, "Non-Canonical Address" ],
2523 [0xfc, "Non-Canonical Address" ],
2524 [0xfd, "Non-Canonical Address" ],
2525 [0xfe, "Non-Canonical Address" ],
2526 [0xff, "Non-Canonical Address" ],
2528 LANDriverNumber = uint8("lan_driver_number", "LAN Driver Number")
2529 LANdriverNodeAddress = bytes("lan_dvr_node_addr", "LAN Driver Node Address", 6)
2530 LANdriverRecvSize = uint32("lan_drv_rcv_size", "LAN Driver Receive Size")
2531 LANdriverReserved = uint16("lan_drv_reserved", "LAN Driver Reserved")
2532 LANdriverSendRetries = uint16("lan_drv_snd_retries", "LAN Driver Send Retries")
2533 LANdriverSharingFlags = uint16("lan_drv_share", "LAN Driver Sharing Flags")
2534 LANdriverShortName = fw_string("lan_drv_short_name", "LAN Driver Short Name", 40)
2535 LANdriverSlot = uint16("lan_drv_slot", "LAN Driver Slot")
2536 LANdriverSrcRouting = uint32("lan_drv_src_route", "LAN Driver Source Routing")
2537 LANdriverTransportTime = uint16("lan_drv_trans_time", "LAN Driver Transport Time")
2538 LastAccessedDate = uint16("last_access_date", "Last Accessed Date")
2539 LastAccessedDate.NWDate()
2540 LastAccessedTime = uint16("last_access_time", "Last Accessed Time")
2541 LastAccessedTime.NWTime()
2542 LastGarbCollect = uint32("last_garbage_collect", "Last Garbage Collection")
2543 LastInstance = uint32("last_instance", "Last Instance")
2544 LastRecordSeen = uint16("last_record_seen", "Last Record Seen")
2545 LastSearchIndex = uint16("last_search_index", "Search Index")
2546 LastSeen = uint32("last_seen", "Last Seen")
2547 LastSequenceNumber = uint16("last_sequence_number", "Sequence Number")
2548 Level = uint8("level", "Level")
2549 LFSCounters = uint32("lfs_counters", "LFS Counters")
2550 LimboDataStreamsCount = uint32("limbo_data_streams_count", "Limbo Data Streams Count")
2551 limbCount = uint32("limb_count", "Limb Count")
2552 LimboUsed = uint32("limbo_used", "Limbo Used")
2553 LoadedNameSpaces = uint8("loaded_name_spaces", "Loaded Name Spaces")
2554 LocalConnectionID = uint32("local_connection_id", "Local Connection ID")
2555 LocalConnectionID.Display("BASE_HEX")
2556 LocalMaxPacketSize = uint32("local_max_packet_size", "Local Max Packet Size")
2557 LocalMaxSendSize = uint32("local_max_send_size", "Local Max Send Size")
2558 LocalMaxRecvSize = uint32("local_max_recv_size", "Local Max Recv Size")
2559 LocalLoginInfoCcode = uint8("local_login_info_ccode", "Local Login Info C Code")
2560 LocalTargetSocket = uint32("local_target_socket", "Local Target Socket")
2561 LocalTargetSocket.Display("BASE_HEX")
2562 LockAreaLen = uint32("lock_area_len", "Lock Area Length")
2563 LockAreasStartOffset = uint32("lock_areas_start_offset", "Lock Areas Start Offset")
2564 LockTimeout = uint16("lock_timeout", "Lock Timeout")
2565 Locked = val_string8("locked", "Locked Flag", [
2566 [ 0x00, "Not Locked Exclusively" ],
2567 [ 0x01, "Locked Exclusively" ],
2569 LockFlag = val_string8("lock_flag", "Lock Flag", [
2570 [ 0x00, "Not Locked, Log for Future Exclusive Lock" ],
2571 [ 0x01, "Exclusive Lock (Read/Write)" ],
2572 [ 0x02, "Log for Future Shared Lock"],
2573 [ 0x03, "Shareable Lock (Read-Only)" ],
2574 [ 0xfe, "Locked by a File Lock" ],
2575 [ 0xff, "Locked by Begin Share File Set" ],
2577 LockName = nstring8("lock_name", "Lock Name")
2578 LockStatus = val_string8("lock_status", "Lock Status", [
2579 [ 0x00, "Locked Exclusive" ],
2580 [ 0x01, "Locked Shareable" ],
2582 [ 0x06, "Lock is Held by TTS"],
2584 LockType = val_string8("lock_type", "Lock Type", [
2586 [ 0x01, "Open Shareable" ],
2588 [ 0x03, "Open Normal" ],
2589 [ 0x06, "TTS Holding Lock" ],
2590 [ 0x07, "Transaction Flag Set on This File" ],
2592 LogFileFlagHigh = bitfield8("log_file_flag_high", "Log File Flag (byte 2)", [
2593 bf_boolean8(0x80, "log_flag_call_back", "Call Back Requested" ),
2595 LogFileFlagLow = bitfield8("log_file_flag_low", "Log File Flag", [
2596 bf_boolean8(0x01, "log_flag_lock_file", "Lock File Immediately" ),
2598 LoggedObjectID = uint32("logged_object_id", "Logged in Object ID")
2599 LoggedObjectID.Display("BASE_HEX")
2600 LoggedCount = uint16("logged_count", "Logged Count")
2601 LogicalConnectionNumber = uint16("logical_connection_number", "Logical Connection Number", BE)
2602 LogicalDriveCount = uint8("logical_drive_count", "Logical Drive Count")
2603 LogicalDriveNumber = uint8("logical_drive_number", "Logical Drive Number")
2604 LogicalLockThreshold = uint8("logical_lock_threshold", "LogicalLockThreshold")
2605 LogicalRecordName = nstring8("logical_record_name", "Logical Record Name")
2606 LoginKey = bytes("login_key", "Login Key", 8)
2607 LogLockType = uint8("log_lock_type", "Log Lock Type")
2608 LogTtlRxPkts = uint32("log_ttl_rx_pkts", "Total Received Packets")
2609 LogTtlTxPkts = uint32("log_ttl_tx_pkts", "Total Transmitted Packets")
2610 LongName = fw_string("long_name", "Long Name", 32)
2611 LRUBlockWasDirty = uint16("lru_block_was_dirty", "LRU Block Was Dirty")
2613 MacAttr = bitfield16("mac_attr", "Attributes", [
2614 bf_boolean16(0x0001, "mac_attr_smode1", "Search Mode"),
2615 bf_boolean16(0x0002, "mac_attr_smode2", "Search Mode"),
2616 bf_boolean16(0x0004, "mac_attr_smode3", "Search Mode"),
2617 bf_boolean16(0x0010, "mac_attr_transaction", "Transaction"),
2618 bf_boolean16(0x0020, "mac_attr_index", "Index"),
2619 bf_boolean16(0x0040, "mac_attr_r_audit", "Read Audit"),
2620 bf_boolean16(0x0080, "mac_attr_w_audit", "Write Audit"),
2621 bf_boolean16(0x0100, "mac_attr_r_only", "Read Only"),
2622 bf_boolean16(0x0200, "mac_attr_hidden", "Hidden"),
2623 bf_boolean16(0x0400, "mac_attr_system", "System"),
2624 bf_boolean16(0x0800, "mac_attr_execute_only", "Execute Only"),
2625 bf_boolean16(0x1000, "mac_attr_subdirectory", "Subdirectory"),
2626 bf_boolean16(0x2000, "mac_attr_archive", "Archive"),
2627 bf_boolean16(0x8000, "mac_attr_share", "Shareable File"),
2629 MACBackupDate = uint16("mac_backup_date", "Mac Backup Date")
2630 MACBackupDate.NWDate()
2631 MACBackupTime = uint16("mac_backup_time", "Mac Backup Time")
2632 MACBackupTime.NWTime()
2633 MacBaseDirectoryID = uint32("mac_base_directory_id", "Mac Base Directory ID", BE)
2634 MacBaseDirectoryID.Display("BASE_HEX")
2635 MACCreateDate = uint16("mac_create_date", "Mac Create Date")
2636 MACCreateDate.NWDate()
2637 MACCreateTime = uint16("mac_create_time", "Mac Create Time")
2638 MACCreateTime.NWTime()
2639 MacDestinationBaseID = uint32("mac_destination_base_id", "Mac Destination Base ID")
2640 MacDestinationBaseID.Display("BASE_HEX")
2641 MacFinderInfo = bytes("mac_finder_info", "Mac Finder Information", 32)
2642 MacLastSeenID = uint32("mac_last_seen_id", "Mac Last Seen ID")
2643 MacLastSeenID.Display("BASE_HEX")
2644 MacSourceBaseID = uint32("mac_source_base_id", "Mac Source Base ID")
2645 MacSourceBaseID.Display("BASE_HEX")
2646 MajorVersion = uint32("major_version", "Major Version")
2647 MaxBytes = uint16("max_bytes", "Maximum Number of Bytes")
2648 MaxDataStreams = uint32("max_data_streams", "Maximum Data Streams")
2649 MaxDirDepth = uint32("max_dir_depth", "Maximum Directory Depth")
2650 MaximumSpace = uint16("max_space", "Maximum Space")
2651 MaxNumOfConn = uint32("max_num_of_conn", "Maximum Number of Connections")
2652 MaxNumOfLANS = uint32("max_num_of_lans", "Maximum Number Of LAN's")
2653 MaxNumOfMedias = uint32("max_num_of_medias", "Maximum Number Of Media's")
2654 MaxNumOfNmeSps = uint32("max_num_of_nme_sps", "Maximum Number Of Name Spaces")
2655 MaxNumOfSpoolPr = uint32("max_num_of_spool_pr", "Maximum Number Of Spool Printers")
2656 MaxNumOfStacks = uint32("max_num_of_stacks", "Maximum Number Of Stacks")
2657 MaxNumOfUsers = uint32("max_num_of_users", "Maximum Number Of Users")
2658 MaxNumOfVol = uint32("max_num_of_vol", "Maximum Number of Volumes")
2659 MaxSpace = uint32("maxspace", "Maximum Space")
2660 MaxUsedDynamicSpace = uint32("max_used_dynamic_space", "Max Used Dynamic Space")
2661 MediaList = uint32("media_list", "Media List")
2662 MediaListCount = uint32("media_list_count", "Media List Count")
2663 MediaName = nstring8("media_name", "Media Name")
2664 MediaNumber = uint32("media_number", "Media Number")
2665 MediaObjectType = val_string8("media_object_type", "Object Type", [
2666 [ 0x00, "Adapter" ],
2667 [ 0x01, "Changer" ],
2668 [ 0x02, "Removable Device" ],
2670 [ 0x04, "Removable Media" ],
2671 [ 0x05, "Partition" ],
2676 [ 0x0a, "Volume Segment" ],
2679 [ 0x0d, "Fixed Media" ],
2680 [ 0x0e, "Unknown" ],
2682 MemberName = nstring8("member_name", "Member Name")
2683 MemberType = val_string16("member_type", "Member Type", [
2684 [ 0x0000, "Unknown" ],
2686 [ 0x0002, "User group" ],
2687 [ 0x0003, "Print queue" ],
2688 [ 0x0004, "NetWare file server" ],
2689 [ 0x0005, "Job server" ],
2690 [ 0x0006, "Gateway" ],
2691 [ 0x0007, "Print server" ],
2692 [ 0x0008, "Archive queue" ],
2693 [ 0x0009, "Archive server" ],
2694 [ 0x000a, "Job queue" ],
2695 [ 0x000b, "Administration" ],
2696 [ 0x0021, "NAS SNA gateway" ],
2697 [ 0x0026, "Remote bridge server" ],
2698 [ 0x0027, "TCP/IP gateway" ],
2700 MessageLanguage = uint32("message_language", "NLM Language")
2701 MigratedFiles = uint32("migrated_files", "Migrated Files")
2702 MigratedSectors = uint32("migrated_sectors", "Migrated Sectors")
2703 MinorVersion = uint32("minor_version", "Minor Version")
2704 Minute = uint8("s_minute", "Minutes")
2705 MixedModePathFlag = uint8("mixed_mode_path_flag", "Mixed Mode Path Flag")
2706 ModifiedDate = uint16("modified_date", "Modified Date")
2707 ModifiedDate.NWDate()
2708 ModifiedTime = uint16("modified_time", "Modified Time")
2709 ModifiedTime.NWTime()
2710 ModifierID = uint32("modifier_id", "Modifier ID", BE)
2711 ModifierID.Display("BASE_HEX")
2712 ModifyDOSInfoMask = bitfield16("modify_dos_info_mask", "Modify DOS Info Mask", [
2713 bf_boolean16(0x0002, "modify_dos_read", "Attributes"),
2714 bf_boolean16(0x0004, "modify_dos_write", "Creation Date"),
2715 bf_boolean16(0x0008, "modify_dos_open", "Creation Time"),
2716 bf_boolean16(0x0010, "modify_dos_create", "Creator ID"),
2717 bf_boolean16(0x0020, "modify_dos_delete", "Archive Date"),
2718 bf_boolean16(0x0040, "modify_dos_parent", "Archive Time"),
2719 bf_boolean16(0x0080, "modify_dos_search", "Archiver ID"),
2720 bf_boolean16(0x0100, "modify_dos_mdate", "Modify Date"),
2721 bf_boolean16(0x0200, "modify_dos_mtime", "Modify Time"),
2722 bf_boolean16(0x0400, "modify_dos_mid", "Modifier ID"),
2723 bf_boolean16(0x0800, "modify_dos_laccess", "Last Access"),
2724 bf_boolean16(0x1000, "modify_dos_inheritance", "Inheritance"),
2725 bf_boolean16(0x2000, "modify_dos_max_space", "Maximum Space"),
2727 Month = val_string8("s_month", "Month", [
2736 [ 0x09, "September"],
2738 [ 0x0b, "November"],
2739 [ 0x0c, "December"],
2742 MoreFlag = val_string8("more_flag", "More Flag", [
2743 [ 0x00, "No More Segments/Entries Available" ],
2744 [ 0x01, "More Segments/Entries Available" ],
2745 [ 0xff, "More Segments/Entries Available" ],
2747 MoreProperties = val_string8("more_properties", "More Properties", [
2748 [ 0x00, "No More Properties Available" ],
2749 [ 0x01, "No More Properties Available" ],
2750 [ 0xff, "More Properties Available" ],
2753 Name = nstring8("name", "Name")
2754 Name12 = fw_string("name12", "Name", 12)
2755 NameLen = uint8("name_len", "Name Space Length")
2756 NameLength = uint8("name_length", "Name Length")
2757 NameList = uint32("name_list", "Name List")
2759 # XXX - should this value be used to interpret the characters in names,
2760 # search patterns, and the like?
2762 # We need to handle character sets better, e.g. translating strings
2763 # from whatever character set they are in the packet (DOS/Windows code
2764 # pages, ISO character sets, UNIX EUC character sets, UTF-8, UCS-2/Unicode,
2765 # Mac character sets, etc.) into UCS-4 or UTF-8 and storing them as such
2766 # in the protocol tree, and displaying them as best we can.
2768 NameSpace = val_string8("name_space", "Name Space", [
2773 [ 0x04, "OS/2, Long" ],
2775 NamesSpaceInfoMask = bitfield16("ns_info_mask", "Names Space Info Mask", [
2776 bf_boolean16(0x0001, "ns_info_mask_modify", "Modify Name"),
2777 bf_boolean16(0x0002, "ns_info_mask_fatt", "File Attributes"),
2778 bf_boolean16(0x0004, "ns_info_mask_cdate", "Creation Date"),
2779 bf_boolean16(0x0008, "ns_info_mask_ctime", "Creation Time"),
2780 bf_boolean16(0x0010, "ns_info_mask_owner", "Owner ID"),
2781 bf_boolean16(0x0020, "ns_info_mask_adate", "Archive Date"),
2782 bf_boolean16(0x0040, "ns_info_mask_atime", "Archive Time"),
2783 bf_boolean16(0x0080, "ns_info_mask_aid", "Archiver ID"),
2784 bf_boolean16(0x0100, "ns_info_mask_udate", "Update Date"),
2785 bf_boolean16(0x0200, "ns_info_mask_utime", "Update Time"),
2786 bf_boolean16(0x0400, "ns_info_mask_uid", "Update ID"),
2787 bf_boolean16(0x0800, "ns_info_mask_acc_date", "Access Date"),
2788 bf_boolean16(0x1000, "ns_info_mask_max_acc_mask", "Inheritance"),
2789 bf_boolean16(0x2000, "ns_info_mask_max_space", "Maximum Space"),
2791 NameSpaceName = nstring8("name_space_name", "Name Space Name")
2792 nameType = uint32("name_type", "nameType")
2793 NCPdataSize = uint32("ncp_data_size", "NCP Data Size")
2794 NCPextensionMajorVersion = uint8("ncp_extension_major_version", "NCP Extension Major Version")
2795 NCPextensionMinorVersion = uint8("ncp_extension_minor_version", "NCP Extension Minor Version")
2796 NCPextensionName = nstring8("ncp_extension_name", "NCP Extension Name")
2797 NCPextensionNumber = uint32("ncp_extension_number", "NCP Extension Number")
2798 NCPextensionNumber.Display("BASE_HEX")
2799 NCPExtensionNumbers = uint32("ncp_extension_numbers", "NCP Extension Numbers")
2800 NCPextensionRevisionNumber = uint8("ncp_extension_revision_number", "NCP Extension Revision Number")
2801 NCPPeakStaInUse = uint32("ncp_peak_sta_in_use", "Peak Number of Connections since Server was brought up")
2802 NCPStaInUseCnt = uint32("ncp_sta_in_use", "Number of Workstations Connected to Server")
2803 NDSRequestFlags = bitfield16("nds_request_flags", "NDS Request Flags", [
2804 bf_boolean16(0x0001, "nds_request_flags_output", "Output Fields"),
2805 bf_boolean16(0x0002, "nds_request_flags_no_such_entry", "No Such Entry"),
2806 bf_boolean16(0x0004, "nds_request_flags_local_entry", "Local Entry"),
2807 bf_boolean16(0x0008, "nds_request_flags_type_ref", "Type Referral"),
2808 bf_boolean16(0x0010, "nds_request_flags_alias_ref", "Alias Referral"),
2809 bf_boolean16(0x0020, "nds_request_flags_req_cnt", "Request Count"),
2810 bf_boolean16(0x0040, "nds_request_flags_req_data_size", "Request Data Size"),
2811 bf_boolean16(0x0080, "nds_request_flags_reply_data_size", "Reply Data Size"),
2812 bf_boolean16(0x0100, "nds_request_flags_trans_ref", "Transport Referral"),
2813 bf_boolean16(0x0200, "nds_request_flags_trans_ref2", "Transport Referral"),
2814 bf_boolean16(0x0400, "nds_request_flags_up_ref", "Up Referral"),
2815 bf_boolean16(0x0800, "nds_request_flags_dn_ref", "Down Referral"),
2817 NDSStatus = uint32("nds_status", "NDS Status")
2818 NetBIOSBroadcastWasPropogated = uint32("netbios_broadcast_was_propogated", "NetBIOS Broadcast Was Propogated")
2819 NetIDNumber = uint32("net_id_number", "Net ID Number")
2820 NetIDNumber.Display("BASE_HEX")
2821 NetAddress = nbytes32("address", "Address")
2822 NetStatus = uint16("net_status", "Network Status")
2823 NetWareAccessHandle = bytes("netware_access_handle", "NetWare Access Handle", 6)
2824 NetworkAddress = uint32("network_address", "Network Address")
2825 NetworkAddress.Display("BASE_HEX")
2826 NetworkNodeAddress = bytes("network_node_address", "Network Node Address", 6)
2827 NetworkNumber = uint32("network_number", "Network Number")
2828 NetworkNumber.Display("BASE_HEX")
2830 # XXX - this should have the "ipx_socket_vals" value_string table
2831 # from "packet-ipx.c".
2833 NetworkSocket = uint16("network_socket", "Network Socket")
2834 NetworkSocket.Display("BASE_HEX")
2835 NewAccessRights = bitfield16("new_access_rights_mask", "New Access Rights", [
2836 bf_boolean16(0x0001, "new_access_rights_read", "Read"),
2837 bf_boolean16(0x0002, "new_access_rights_write", "Write"),
2838 bf_boolean16(0x0004, "new_access_rights_open", "Open"),
2839 bf_boolean16(0x0008, "new_access_rights_create", "Create"),
2840 bf_boolean16(0x0010, "new_access_rights_delete", "Delete"),
2841 bf_boolean16(0x0020, "new_access_rights_parental", "Parental"),
2842 bf_boolean16(0x0040, "new_access_rights_search", "Search"),
2843 bf_boolean16(0x0080, "new_access_rights_modify", "Modify"),
2844 bf_boolean16(0x0100, "new_access_rights_supervisor", "Supervisor"),
2846 NewDirectoryID = uint32("new_directory_id", "New Directory ID", BE)
2847 NewDirectoryID.Display("BASE_HEX")
2848 NewEAHandle = uint32("new_ea_handle", "New EA Handle")
2849 NewEAHandle.Display("BASE_HEX")
2850 NewFileName = fw_string("new_file_name", "New File Name", 14)
2851 NewFileNameLen = nstring8("new_file_name_len", "New File Name")
2852 NewFileSize = uint32("new_file_size", "New File Size")
2853 NewPassword = nstring8("new_password", "New Password")
2854 NewPath = nstring8("new_path", "New Path")
2855 NewPosition = uint8("new_position", "New Position")
2856 NewObjectName = nstring8("new_object_name", "New Object Name")
2857 NextCntBlock = uint32("next_cnt_block", "Next Count Block")
2858 NextHugeStateInfo = bytes("next_huge_state_info", "Next Huge State Info", 16)
2859 nextLimbScanNum = uint32("next_limb_scan_num", "Next Limb Scan Number")
2860 NextObjectID = uint32("next_object_id", "Next Object ID", BE)
2861 NextObjectID.Display("BASE_HEX")
2862 NextRecord = uint32("next_record", "Next Record")
2863 NextRequestRecord = uint16("next_request_record", "Next Request Record")
2864 NextSearchIndex = uint16("next_search_index", "Next Search Index")
2865 NextSearchNumber = uint16("next_search_number", "Next Search Number")
2866 NextSearchNum = uint32("nxt_search_num", "Next Search Number")
2867 nextStartingNumber = uint32("next_starting_number", "Next Starting Number")
2868 NextTrusteeEntry = uint32("next_trustee_entry", "Next Trustee Entry")
2869 NextVolumeNumber = uint32("next_volume_number", "Next Volume Number")
2870 NLMBuffer = nstring8("nlm_buffer", "Buffer")
2871 NLMcount = uint32("nlm_count", "NLM Count")
2872 NLMFlags = bitfield8("nlm_flags", "Flags", [
2873 bf_boolean8(0x01, "nlm_flags_reentrant", "ReEntrant"),
2874 bf_boolean8(0x02, "nlm_flags_multiple", "Can Load Multiple Times"),
2875 bf_boolean8(0x04, "nlm_flags_synchronize", "Synchronize Start"),
2876 bf_boolean8(0x08, "nlm_flags_pseudo", "PseudoPreemption"),
2878 NLMLoadOptions = uint32("nlm_load_options", "NLM Load Options")
2879 NLMName = stringz("nlm_name_stringz", "NLM Name")
2880 NLMNumber = uint32("nlm_number", "NLM Number")
2881 NLMNumbers = uint32("nlm_numbers", "NLM Numbers")
2882 NLMsInList = uint32("nlms_in_list", "NLM's in List")
2883 NLMStartNumber = uint32("nlm_start_num", "NLM Start Number")
2884 NLMType = val_string8("nlm_type", "NLM Type", [
2885 [ 0x00, "Generic NLM (.NLM)" ],
2886 [ 0x01, "LAN Driver (.LAN)" ],
2887 [ 0x02, "Disk Driver (.DSK)" ],
2888 [ 0x03, "Name Space Support Module (.NAM)" ],
2889 [ 0x04, "Utility or Support Program (.NLM)" ],
2890 [ 0x05, "Mirrored Server Link (.MSL)" ],
2891 [ 0x06, "OS NLM (.NLM)" ],
2892 [ 0x07, "Paged High OS NLM (.NLM)" ],
2893 [ 0x08, "Host Adapter Module (.HAM)" ],
2894 [ 0x09, "Custom Device Module (.CDM)" ],
2895 [ 0x0a, "File System Engine (.NLM)" ],
2896 [ 0x0b, "Real Mode NLM (.NLM)" ],
2897 [ 0x0c, "Hidden NLM (.NLM)" ],
2898 [ 0x15, "NICI Support (.NLM)" ],
2899 [ 0x16, "NICI Support (.NLM)" ],
2900 [ 0x17, "Cryptography (.NLM)" ],
2901 [ 0x18, "Encryption (.NLM)" ],
2902 [ 0x19, "NICI Support (.NLM)" ],
2903 [ 0x1c, "NICI Support (.NLM)" ],
2905 nodeFlags = uint32("node_flags", "Node Flags")
2906 nodeFlags.Display("BASE_HEX")
2907 NoMoreMemAvlCnt = uint32("no_more_mem_avail", "No More Memory Available Count")
2908 NonDedFlag = boolean8("non_ded_flag", "Non Dedicated Flag")
2909 NonFreeableAvailableSubAllocSectors = uint32("non_freeable_avail_sub_alloc_sectors", "Non Freeable Available Sub Alloc Sectors")
2910 NonFreeableLimboSectors = uint32("non_freeable_limbo_sectors", "Non Freeable Limbo Sectors")
2911 NotUsableSubAllocSectors = uint32("not_usable_sub_alloc_sectors", "Not Usable Sub Alloc Sectors")
2912 NotYetPurgeableBlocks = uint32("not_yet_purgeable_blocks", "Not Yet Purgeable Blocks")
2913 NSInfoBitMask = uint32("ns_info_bit_mask", "Name Space Info Bit Mask")
2914 NSSOAllInFlags = bitfield32("nsso_all_in_flags", "SecretStore All Input Flags",[
2915 bf_boolean32(0x00000010, "nsso_all_unicode", "Unicode Data"),
2916 bf_boolean32(0x00000080, "nsso_set_tree", "Set Tree"),
2917 bf_boolean32(0x00000200, "nsso_destroy_ctx", "Destroy Context"),
2919 NSSOGetServiceInFlags = bitfield32("nsso_get_svc_in_flags", "SecretStore Get Service Flags",[
2920 bf_boolean32(0x00000100, "nsso_get_ctx", "Get Context"),
2922 NSSOReadInFlags = bitfield32("nsso_read_in_flags", "SecretStore Read Flags",[
2923 bf_boolean32(0x00000001, "nsso_rw_enh_prot", "Read/Write Enhanced Protection"),
2924 bf_boolean32(0x00000008, "nsso_repair", "Repair SecretStore"),
2926 NSSOReadOrUnlockInFlags = bitfield32("nsso_read_or_unlock_in_flags", "SecretStore Read or Unlock Flags",[
2927 bf_boolean32(0x00000004, "nsso_ep_master_pwd", "Master Password used instead of ENH Password"),
2929 NSSOUnlockInFlags = bitfield32("nsso_unlock_in_flags", "SecretStore Unlock Flags",[
2930 bf_boolean32(0x00000004, "nsso_rmv_lock", "Remove Lock from Store"),
2932 NSSOWriteInFlags = bitfield32("nsso_write_in_flags", "SecretStore Write Flags",[
2933 bf_boolean32(0x00000001, "nsso_enh_prot", "Enhanced Protection"),
2934 bf_boolean32(0x00000002, "nsso_create_id", "Create ID"),
2935 bf_boolean32(0x00000040, "nsso_ep_pwd_used", "Enhanced Protection Password Used"),
2937 NSSOContextOutFlags = bitfield32("nsso_cts_out_flags", "Type of Context",[
2938 bf_boolean32(0x00000001, "nsso_ds_ctx", "DSAPI Context"),
2939 bf_boolean32(0x00000080, "nsso_ldap_ctx", "LDAP Context"),
2940 bf_boolean32(0x00000200, "nsso_dc_ctx", "Reserved"),
2942 NSSOGetServiceOutFlags = bitfield32("nsso_get_svc_out_flags", "SecretStore Status Flags",[
2943 bf_boolean32(0x00400000, "nsso_mstr_pwd", "Master Password Present"),
2945 NSSOGetServiceReadOutFlags = bitfield32("nsso_get_svc_read_out_flags", "SecretStore Status Flags",[
2946 bf_boolean32(0x00800000, "nsso_mp_disabled", "Master Password Disabled"),
2948 NSSOReadOutFlags = bitfield32("nsso_read_out_flags", "SecretStore Read Flags",[
2949 bf_boolean32(0x00010000, "nsso_secret_locked", "Enhanced Protection Lock on Secret"),
2950 bf_boolean32(0x00020000, "nsso_secret_not_init", "Secret Not Yet Initialized"),
2951 bf_boolean32(0x00040000, "nsso_secret_marked", "Secret Marked for Enhanced Protection"),
2952 bf_boolean32(0x00080000, "nsso_secret_not_sync", "Secret Not Yet Synchronized in NDS"),
2953 bf_boolean32(0x00200000, "nsso_secret_enh_pwd", "Enhanced Protection Password on Secret"),
2955 NSSOReadOutStatFlags = bitfield32("nsso_read_out_stat_flags", "SecretStore Read Status Flags",[
2956 bf_boolean32(0x00100000, "nsso_admin_mod", "Admin Modified Secret Last"),
2958 NSSOVerb = val_string8("nsso_verb", "SecretStore Verb", [
2959 [ 0x00, "Query Server" ],
2960 [ 0x01, "Read App Secrets" ],
2961 [ 0x02, "Write App Secrets" ],
2962 [ 0x03, "Add Secret ID" ],
2963 [ 0x04, "Remove Secret ID" ],
2964 [ 0x05, "Remove SecretStore" ],
2965 [ 0x06, "Enumerate SecretID's" ],
2966 [ 0x07, "Unlock Store" ],
2967 [ 0x08, "Set Master Password" ],
2968 [ 0x09, "Get Service Information" ],
2970 NSSpecificInfo = fw_string("ns_specific_info", "Name Space Specific Info", 512)
2971 NumberOfAllocs = uint32("num_of_allocs", "Number of Allocations")
2972 NumberOfAttributes = uint32("number_of_attributes", "Number of Attributes")
2973 NumberOfCPUs = uint32("number_of_cpus", "Number of CPU's")
2974 NumberOfDataStreams = uint16("number_of_data_streams", "Number of Data Streams")
2975 NumberOfDynamicMemoryAreas = uint16("number_of_dynamic_memory_areas", "Number Of Dynamic Memory Areas")
2976 NumberOfEntries = uint8("number_of_entries", "Number of Entries")
2977 NumberOfLocks = uint8("number_of_locks", "Number of Locks")
2978 NumberOfMinutesToDelay = uint32("number_of_minutes_to_delay", "Number of Minutes to Delay")
2979 NumberOfNCPExtensions = uint32("number_of_ncp_extensions", "Number Of NCP Extensions")
2980 NumberOfNSLoaded = uint16("number_of_ns_loaded", "Number Of Name Spaces Loaded")
2981 NumberOfProtocols = uint8("number_of_protocols", "Number of Protocols")
2982 NumberOfRecords = uint16("number_of_records", "Number of Records")
2983 NumberOfReferencedPublics = uint32("num_of_ref_publics", "Number of Referenced Public Symbols")
2984 NumberOfSemaphores = uint16("number_of_semaphores", "Number Of Semaphores")
2985 NumberOfServiceProcesses = uint8("number_of_service_processes", "Number Of Service Processes")
2986 NumberOfSetCategories = uint32("number_of_set_categories", "Number Of Set Categories")
2987 NumberOfSMs = uint32("number_of_sms", "Number Of Storage Medias")
2988 NumberOfStations = uint8("number_of_stations", "Number of Stations")
2989 NumBytes = uint16("num_bytes", "Number of Bytes")
2990 NumOfCCinPkt = uint32("num_of_cc_in_pkt", "Number of Custom Counters in Packet")
2991 NumOfChecks = uint32("num_of_checks", "Number of Checks")
2992 NumOfEntries = uint32("num_of_entries", "Number of Entries")
2993 NumOfFilesMigrated = uint32("num_of_files_migrated", "Number Of Files Migrated")
2994 NumOfGarbageColl = uint32("num_of_garb_coll", "Number of Garbage Collections")
2995 NumOfNCPReqs = uint32("num_of_ncp_reqs", "Number of NCP Requests since Server was brought up")
2996 NumOfSegments = uint32("num_of_segments", "Number of Segments")
2998 ObjectCount = uint32("object_count", "Object Count")
2999 ObjectFlags = val_string8("object_flags", "Object Flags", [
3000 [ 0x00, "Dynamic object" ],
3001 [ 0x01, "Static object" ],
3003 ObjectHasProperties = val_string8("object_has_properites", "Object Has Properties", [
3004 [ 0x00, "No properties" ],
3005 [ 0xff, "One or more properties" ],
3007 ObjectID = uint32("object_id", "Object ID", BE)
3008 ObjectID.Display('BASE_HEX')
3009 ObjectIDCount = uint16("object_id_count", "Object ID Count")
3010 ObjectIDInfo = uint32("object_id_info", "Object Information")
3011 ObjectInfoReturnCount = uint32("object_info_rtn_count", "Object Information Count")
3012 ObjectName = nstring8("object_name", "Object Name")
3013 ObjectNameLen = fw_string("object_name_len", "Object Name", 48)
3014 ObjectNameStringz = stringz("object_name_stringz", "Object Name")
3015 ObjectNumber = uint32("object_number", "Object Number")
3016 ObjectSecurity = val_string8("object_security", "Object Security", [
3017 [ 0x00, "Object Read (Anyone) / Object Write (Anyone)" ],
3018 [ 0x01, "Object Read (Logged in) / Object Write (Anyone)" ],
3019 [ 0x02, "Object Read (Logged in as Object) / Object Write (Anyone)" ],
3020 [ 0x03, "Object Read (Supervisor) / Object Write (Anyone)" ],
3021 [ 0x04, "Object Read (Operating System Only) / Object Write (Anyone)" ],
3022 [ 0x10, "Object Read (Anyone) / Object Write (Logged in)" ],
3023 [ 0x11, "Object Read (Logged in) / Object Write (Logged in)" ],
3024 [ 0x12, "Object Read (Logged in as Object) / Object Write (Logged in)" ],
3025 [ 0x13, "Object Read (Supervisor) / Object Write (Logged in)" ],
3026 [ 0x14, "Object Read (Operating System Only) / Object Write (Logged in)" ],
3027 [ 0x20, "Object Read (Anyone) / Object Write (Logged in as Object)" ],
3028 [ 0x21, "Object Read (Logged in) / Object Write (Logged in as Object)" ],
3029 [ 0x22, "Object Read (Logged in as Object) / Object Write (Logged in as Object)" ],
3030 [ 0x23, "Object Read (Supervisor) / Object Write (Logged in as Object)" ],
3031 [ 0x24, "Object Read (Operating System Only) / Object Write (Logged in as Object)" ],
3032 [ 0x30, "Object Read (Anyone) / Object Write (Supervisor)" ],
3033 [ 0x31, "Object Read (Logged in) / Object Write (Supervisor)" ],
3034 [ 0x32, "Object Read (Logged in as Object) / Object Write (Supervisor)" ],
3035 [ 0x33, "Object Read (Supervisor) / Object Write (Supervisor)" ],
3036 [ 0x34, "Object Read (Operating System Only) / Object Write (Supervisor)" ],
3037 [ 0x40, "Object Read (Anyone) / Object Write (Operating System Only)" ],
3038 [ 0x41, "Object Read (Logged in) / Object Write (Operating System Only)" ],
3039 [ 0x42, "Object Read (Logged in as Object) / Object Write (Operating System Only)" ],
3040 [ 0x43, "Object Read (Supervisor) / Object Write (Operating System Only)" ],
3041 [ 0x44, "Object Read (Operating System Only) / Object Write (Operating System Only)" ],
3044 # XXX - should this use the "server_vals[]" value_string array from
3047 # XXX - should this list be merged with that list? There are some
3048 # oddities, e.g. this list has 0x03f5 for "Microsoft SQL Server", but
3049 # the list from "packet-ipx.c" has 0xf503 for that - is that just
3050 # byte-order confusion?
3052 ObjectType = val_string16("object_type", "Object Type", [
3053 [ 0x0000, "Unknown" ],
3055 [ 0x0002, "User group" ],
3056 [ 0x0003, "Print queue" ],
3057 [ 0x0004, "NetWare file server" ],
3058 [ 0x0005, "Job server" ],
3059 [ 0x0006, "Gateway" ],
3060 [ 0x0007, "Print server" ],
3061 [ 0x0008, "Archive queue" ],
3062 [ 0x0009, "Archive server" ],
3063 [ 0x000a, "Job queue" ],
3064 [ 0x000b, "Administration" ],
3065 [ 0x0021, "NAS SNA gateway" ],
3066 [ 0x0026, "Remote bridge server" ],
3067 [ 0x0027, "TCP/IP gateway" ],
3068 [ 0x0047, "Novell Print Server" ],
3069 [ 0x004b, "Btrieve Server" ],
3070 [ 0x004c, "NetWare SQL Server" ],
3071 [ 0x0064, "ARCserve" ],
3072 [ 0x0066, "ARCserve 3.0" ],
3073 [ 0x0076, "NetWare SQL" ],
3074 [ 0x00a0, "Gupta SQL Base Server" ],
3075 [ 0x00a1, "Powerchute" ],
3076 [ 0x0107, "NetWare Remote Console" ],
3077 [ 0x01cb, "Shiva NetModem/E" ],
3078 [ 0x01cc, "Shiva LanRover/E" ],
3079 [ 0x01cd, "Shiva LanRover/T" ],
3080 [ 0x01d8, "Castelle FAXPress Server" ],
3081 [ 0x01da, "Castelle Print Server" ],
3082 [ 0x01dc, "Castelle Fax Server" ],
3083 [ 0x0200, "Novell SQL Server" ],
3084 [ 0x023a, "NetWare Lanalyzer Agent" ],
3085 [ 0x023c, "DOS Target Service Agent" ],
3086 [ 0x023f, "NetWare Server Target Service Agent" ],
3087 [ 0x024f, "Appletalk Remote Access Service" ],
3088 [ 0x0263, "NetWare Management Agent" ],
3089 [ 0x0264, "Global MHS" ],
3091 [ 0x026a, "NetWare Management/NMS Console" ],
3092 [ 0x026b, "NetWare Time Synchronization" ],
3093 [ 0x0273, "Nest Device" ],
3094 [ 0x0274, "GroupWise Message Multiple Servers" ],
3095 [ 0x0278, "NDS Replica Server" ],
3096 [ 0x0282, "NDPS Service Registry Service" ],
3097 [ 0x028a, "MPR/IPX Address Mapping Gateway" ],
3098 [ 0x028b, "ManageWise" ],
3099 [ 0x0293, "NetWare 6" ],
3100 [ 0x030c, "HP JetDirect" ],
3101 [ 0x0328, "Watcom SQL Server" ],
3102 [ 0x0355, "Backup Exec" ],
3103 [ 0x039b, "Lotus Notes" ],
3104 [ 0x03e1, "Univel Server" ],
3105 [ 0x03f5, "Microsoft SQL Server" ],
3106 [ 0x055e, "Lexmark Print Server" ],
3107 [ 0x0640, "Microsoft Gateway Services for NetWare" ],
3108 [ 0x064e, "Microsoft Internet Information Server" ],
3109 [ 0x077b, "Advantage Database Server" ],
3110 [ 0x07a7, "Backup Exec Job Queue" ],
3111 [ 0x07a8, "Backup Exec Job Manager" ],
3112 [ 0x07a9, "Backup Exec Job Service" ],
3113 [ 0x5555, "Site Lock" ],
3114 [ 0x8202, "NDPS Broker" ],
3116 OCRetFlags = val_string8("o_c_ret_flags", "Open Create Return Flags", [
3117 [ 0x00, "No CallBack has been registered (No Op-Lock)" ],
3118 [ 0x01, "Request has been registered for CallBack (Op-Lock)" ],
3120 OldestDeletedFileAgeInTicks = uint32("oldest_deleted_file_age_in_ticks", "Oldest Deleted File Age in Ticks")
3121 OldFileName = bytes("old_file_name", "Old File Name", 15)
3122 OldFileSize = uint32("old_file_size", "Old File Size")
3123 OpenCount = uint16("open_count", "Open Count")
3124 OpenCreateAction = bitfield8("open_create_action", "Open Create Action", [
3125 bf_boolean8(0x01, "open_create_action_opened", "Opened"),
3126 bf_boolean8(0x02, "open_create_action_created", "Created"),
3127 bf_boolean8(0x04, "open_create_action_replaced", "Replaced"),
3128 bf_boolean8(0x08, "open_create_action_compressed", "Compressed"),
3129 bf_boolean8(0x80, "open_create_action_read_only", "Read Only"),
3131 OpenCreateMode = bitfield8("open_create_mode", "Open Create Mode", [
3132 bf_boolean8(0x01, "open_create_mode_open", "Open existing file (file must exist)"),
3133 bf_boolean8(0x02, "open_create_mode_replace", "Replace existing file"),
3134 bf_boolean8(0x08, "open_create_mode_create", "Create new file or subdirectory (file or subdirectory cannot exist)"),
3135 bf_boolean8(0x80, "open_create_mode_oplock", "Open Callback (Op-Lock)"),
3137 OpenForReadCount = uint16("open_for_read_count", "Open For Read Count")
3138 OpenForWriteCount = uint16("open_for_write_count", "Open For Write Count")
3139 OpenRights = bitfield8("open_rights", "Open Rights", [
3140 bf_boolean8(0x01, "open_rights_read_only", "Read Only"),
3141 bf_boolean8(0x02, "open_rights_write_only", "Write Only"),
3142 bf_boolean8(0x04, "open_rights_deny_read", "Deny Read"),
3143 bf_boolean8(0x08, "open_rights_deny_write", "Deny Write"),
3144 bf_boolean8(0x10, "open_rights_compat", "Compatibility"),
3145 bf_boolean8(0x40, "open_rights_write_thru", "Write Through"),
3147 OptionNumber = uint8("option_number", "Option Number")
3148 originalSize = uint32("original_size", "Original Size")
3149 OSLanguageID = uint8("os_language_id", "OS Language ID")
3150 OSMajorVersion = uint8("os_major_version", "OS Major Version")
3151 OSMinorVersion = uint8("os_minor_version", "OS Minor Version")
3152 OSRevision = uint8("os_revision", "OS Revision")
3153 OtherFileForkSize = uint32("other_file_fork_size", "Other File Fork Size")
3154 OtherFileForkFAT = uint32("other_file_fork_fat", "Other File Fork FAT Entry")
3155 OutgoingPacketDiscardedNoTurboBuffer = uint16("outgoing_packet_discarded_no_turbo_buffer", "Outgoing Packet Discarded No Turbo Buffer")
3157 PacketsDiscardedByHopCount = uint16("packets_discarded_by_hop_count", "Packets Discarded By Hop Count")
3158 PacketsDiscardedUnknownNet = uint16("packets_discarded_unknown_net", "Packets Discarded Unknown Net")
3159 PacketsFromInvalidConnection = uint16("packets_from_invalid_connection", "Packets From Invalid Connection")
3160 PacketsReceivedDuringProcessing = uint16("packets_received_during_processing", "Packets Received During Processing")
3161 PacketsWithBadRequestType = uint16("packets_with_bad_request_type", "Packets With Bad Request Type")
3162 PacketsWithBadSequenceNumber = uint16("packets_with_bad_sequence_number", "Packets With Bad Sequence Number")
3163 PageTableOwnerFlag = uint32("page_table_owner_flag", "Page Table Owner")
3164 ParentID = uint32("parent_id", "Parent ID")
3165 ParentID.Display("BASE_HEX")
3166 ParentBaseID = uint32("parent_base_id", "Parent Base ID")
3167 ParentBaseID.Display("BASE_HEX")
3168 ParentDirectoryBase = uint32("parent_directory_base", "Parent Directory Base")
3169 ParentDOSDirectoryBase = uint32("parent_dos_directory_base", "Parent DOS Directory Base")
3170 ParentObjectNumber = uint32("parent_object_number", "Parent Object Number")
3171 ParentObjectNumber.Display("BASE_HEX")
3172 Password = nstring8("password", "Password")
3173 PathBase = uint8("path_base", "Path Base")
3174 PathComponentCount = uint16("path_component_count", "Path Component Count")
3175 PathComponentSize = uint16("path_component_size", "Path Component Size")
3176 PathCookieFlags = val_string16("path_cookie_flags", "Path Cookie Flags", [
3177 [ 0x0000, "Last component is Not a File Name" ],
3178 [ 0x0001, "Last component is a File Name" ],
3180 PathCount = uint8("path_count", "Path Count")
3181 Path = nstring8("path", "Path")
3182 PathAndName = stringz("path_and_name", "Path and Name")
3183 PendingIOCommands = uint16("pending_io_commands", "Pending IO Commands")
3184 PhysicalDiskNumber = uint8("physical_disk_number", "Physical Disk Number")
3185 PhysicalDriveCount = uint8("physical_drive_count", "Physical Drive Count")
3186 PhysicalLockThreshold = uint8("physical_lock_threshold", "Physical Lock Threshold")
3187 PingVersion = uint16("ping_version", "Ping Version")
3188 PositiveAcknowledgesSent = uint16("positive_acknowledges_sent", "Positive Acknowledges Sent")
3189 PreCompressedSectors = uint32("pre_compressed_sectors", "Precompressed Sectors")
3190 PreviousRecord = uint32("previous_record", "Previous Record")
3191 PrimaryEntry = uint32("primary_entry", "Primary Entry")
3192 PrintFlags = bitfield8("print_flags", "Print Flags", [
3193 bf_boolean8(0x08, "print_flags_ff", "Suppress Form Feeds"),
3194 bf_boolean8(0x10, "print_flags_cr", "Create"),
3195 bf_boolean8(0x20, "print_flags_del_spool", "Delete Spool File after Printing"),
3196 bf_boolean8(0x40, "print_flags_exp_tabs", "Expand Tabs in the File"),
3197 bf_boolean8(0x80, "print_flags_banner", "Print Banner Page"),
3199 PrinterHalted = val_string8("printer_halted", "Printer Halted", [
3200 [ 0x00, "Printer is not Halted" ],
3201 [ 0xff, "Printer is Halted" ],
3203 PrinterOffLine = val_string8( "printer_offline", "Printer Off-Line", [
3204 [ 0x00, "Printer is On-Line" ],
3205 [ 0xff, "Printer is Off-Line" ],
3207 PrintServerVersion = uint8("print_server_version", "Print Server Version")
3208 Priority = uint32("priority", "Priority")
3209 Privileges = uint32("privileges", "Login Privileges")
3210 ProcessorType = val_string8("processor_type", "Processor Type", [
3211 [ 0x00, "Motorola 68000" ],
3212 [ 0x01, "Intel 8088 or 8086" ],
3213 [ 0x02, "Intel 80286" ],
3215 ProDOSInfo = bytes("pro_dos_info", "Pro DOS Info", 6)
3216 ProductMajorVersion = uint16("product_major_version", "Product Major Version")
3217 ProductMinorVersion = uint16("product_minor_version", "Product Minor Version")
3218 ProductRevisionVersion = uint8("product_revision_version", "Product Revision Version")
3219 projectedCompSize = uint32("projected_comp_size", "Projected Compression Size")
3220 PropertyHasMoreSegments = val_string8("property_has_more_segments",
3221 "Property Has More Segments", [
3222 [ 0x00, "Is last segment" ],
3223 [ 0xff, "More segments are available" ],
3225 PropertyName = nstring8("property_name", "Property Name")
3226 PropertyName16 = fw_string("property_name_16", "Property Name", 16)
3227 PropertyData = bytes("property_data", "Property Data", 128)
3228 PropertySegment = uint8("property_segment", "Property Segment")
3229 PropertyType = val_string8("property_type", "Property Type", [
3230 [ 0x00, "Display Static property" ],
3231 [ 0x01, "Display Dynamic property" ],
3232 [ 0x02, "Set Static property" ],
3233 [ 0x03, "Set Dynamic property" ],
3235 PropertyValue = fw_string("property_value", "Property Value", 128)
3236 ProposedMaxSize = uint16("proposed_max_size", "Proposed Max Size")
3237 protocolFlags = uint32("protocol_flags", "Protocol Flags")
3238 protocolFlags.Display("BASE_HEX")
3239 PurgeableBlocks = uint32("purgeable_blocks", "Purgeable Blocks")
3240 PurgeCcode = uint32("purge_c_code", "Purge Completion Code")
3241 PurgeCount = uint32("purge_count", "Purge Count")
3242 PurgeFlags = val_string16("purge_flags", "Purge Flags", [
3243 [ 0x0000, "Do not Purge All" ],
3244 [ 0x0001, "Purge All" ],
3245 [ 0xffff, "Do not Purge All" ],
3247 PurgeList = uint32("purge_list", "Purge List")
3248 PhysicalDiskChannel = uint8("physical_disk_channel", "Physical Disk Channel")
3249 PhysicalDriveType = val_string8("physical_drive_type", "Physical Drive Type", [
3253 [ 0x04, "Disk Coprocessor" ],
3254 [ 0x05, "PS/2 with MFM Controller" ],
3255 [ 0x06, "PS/2 with ESDI Controller" ],
3256 [ 0x07, "Convergent Technology SBIC" ],
3258 PhysicalReadErrors = uint16("physical_read_errors", "Physical Read Errors")
3259 PhysicalReadRequests = uint32("physical_read_requests", "Physical Read Requests")
3260 PhysicalWriteErrors = uint16("physical_write_errors", "Physical Write Errors")
3261 PhysicalWriteRequests = uint32("physical_write_requests", "Physical Write Requests")
3262 PrintToFileFlag = boolean8("print_to_file_flag", "Print to File Flag")
3264 QueueID = uint32("queue_id", "Queue ID")
3265 QueueID.Display("BASE_HEX")
3266 QueueName = nstring8("queue_name", "Queue Name")
3267 QueueStartPosition = uint32("queue_start_position", "Queue Start Position")
3268 QueueStatus = bitfield8("queue_status", "Queue Status", [
3269 bf_boolean8(0x01, "queue_status_new_jobs", "Operator does not want to add jobs to the queue"),
3270 bf_boolean8(0x02, "queue_status_pserver", "Operator does not want additional servers attaching"),
3271 bf_boolean8(0x04, "queue_status_svc_jobs", "Operator does not want servers to service jobs"),
3273 QueueType = uint16("queue_type", "Queue Type")
3274 QueueingVersion = uint8("qms_version", "QMS Version")
3276 ReadBeyondWrite = uint16("read_beyond_write", "Read Beyond Write")
3277 RecordLockCount = uint16("rec_lock_count", "Record Lock Count")
3278 RecordStart = uint32("record_start", "Record Start")
3279 RecordEnd = uint32("record_end", "Record End")
3280 RecordInUseFlag = val_string16("record_in_use", "Record in Use", [
3281 [ 0x0000, "Record In Use" ],
3282 [ 0xffff, "Record Not In Use" ],
3284 RedirectedPrinter = uint8( "redirected_printer", "Redirected Printer" )
3285 ReferenceCount = uint32("reference_count", "Reference Count")
3286 RelationsCount = uint16("relations_count", "Relations Count")
3287 ReMirrorCurrentOffset = uint32("re_mirror_current_offset", "ReMirror Current Offset")
3288 ReMirrorDriveNumber = uint8("re_mirror_drive_number", "ReMirror Drive Number")
3289 RemoteMaxPacketSize = uint32("remote_max_packet_size", "Remote Max Packet Size")
3290 RemoteTargetID = uint32("remote_target_id", "Remote Target ID")
3291 RemoteTargetID.Display("BASE_HEX")
3292 RemovableFlag = uint16("removable_flag", "Removable Flag")
3293 RemoveOpenRights = bitfield8("remove_open_rights", "Remove Open Rights", [
3294 bf_boolean8(0x01, "remove_open_rights_ro", "Read Only"),
3295 bf_boolean8(0x02, "remove_open_rights_wo", "Write Only"),
3296 bf_boolean8(0x04, "remove_open_rights_dr", "Deny Read"),
3297 bf_boolean8(0x08, "remove_open_rights_dw", "Deny Write"),
3298 bf_boolean8(0x10, "remove_open_rights_comp", "Compatibility"),
3299 bf_boolean8(0x40, "remove_open_rights_write_thru", "Write Through"),
3301 RenameFlag = bitfield8("rename_flag", "Rename Flag", [
3302 bf_boolean8(0x01, "rename_flag_ren", "Rename to Myself allows file to be renamed to it's original name"),
3303 bf_boolean8(0x02, "rename_flag_comp", "Compatability allows files that are marked read only to be opened with read/write access"),
3304 bf_boolean8(0x04, "rename_flag_no", "Name Only renames only the specified name space entry name"),
3306 RepliesCancelled = uint16("replies_cancelled", "Replies Cancelled")
3307 ReplyBuffer = nstring8("reply_buffer", "Reply Buffer")
3308 ReplyBufferSize = uint32("reply_buffer_size", "Reply Buffer Size")
3309 ReplyQueueJobNumbers = uint32("reply_queue_job_numbers", "Reply Queue Job Numbers")
3310 RequestBitMap = bitfield16("request_bit_map", "Request Bit Map", [
3311 bf_boolean16(0x0001, "request_bit_map_ret_afp_ent", "AFP Entry ID"),
3312 bf_boolean16(0x0002, "request_bit_map_ret_data_fork", "Data Fork Length"),
3313 bf_boolean16(0x0004, "request_bit_map_ret_res_fork", "Resource Fork Length"),
3314 bf_boolean16(0x0008, "request_bit_map_ret_num_off", "Number of Offspring"),
3315 bf_boolean16(0x0010, "request_bit_map_ret_owner", "Owner ID"),
3316 bf_boolean16(0x0020, "request_bit_map_ret_short", "Short Name"),
3317 bf_boolean16(0x0040, "request_bit_map_ret_acc_priv", "Access Privileges"),
3318 bf_boolean16(0x0100, "request_bit_map_ratt", "Return Attributes"),
3319 bf_boolean16(0x0200, "request_bit_map_ret_afp_parent", "AFP Parent Entry ID"),
3320 bf_boolean16(0x0400, "request_bit_map_ret_cr_date", "Creation Date"),
3321 bf_boolean16(0x0800, "request_bit_map_ret_acc_date", "Access Date"),
3322 bf_boolean16(0x1000, "request_bit_map_ret_mod_date", "Modify Date&Time"),
3323 bf_boolean16(0x2000, "request_bit_map_ret_bak_date", "Backup Date&Time"),
3324 bf_boolean16(0x4000, "request_bit_map_ret_finder", "Finder Info"),
3325 bf_boolean16(0x8000, "request_bit_map_ret_long_nm", "Long Name"),
3327 ResourceForkLen = uint32("resource_fork_len", "Resource Fork Len")
3328 RequestCode = val_string8("request_code", "Request Code", [
3329 [ 0x00, "Change Logged in to Temporary Authenticated" ],
3330 [ 0x01, "Change Temporary Authenticated to Logged in" ],
3332 RequestData = nstring8("request_data", "Request Data")
3333 RequestsReprocessed = uint16("requests_reprocessed", "Requests Reprocessed")
3334 Reserved = uint8( "reserved", "Reserved" )
3335 Reserved2 = bytes("reserved2", "Reserved", 2)
3336 Reserved3 = bytes("reserved3", "Reserved", 3)
3337 Reserved4 = bytes("reserved4", "Reserved", 4)
3338 Reserved6 = bytes("reserved6", "Reserved", 6)
3339 Reserved8 = bytes("reserved8", "Reserved", 8)
3340 Reserved10 = bytes("reserved10", "Reserved", 10)
3341 Reserved12 = bytes("reserved12", "Reserved", 12)
3342 Reserved16 = bytes("reserved16", "Reserved", 16)
3343 Reserved20 = bytes("reserved20", "Reserved", 20)
3344 Reserved28 = bytes("reserved28", "Reserved", 28)
3345 Reserved36 = bytes("reserved36", "Reserved", 36)
3346 Reserved44 = bytes("reserved44", "Reserved", 44)
3347 Reserved48 = bytes("reserved48", "Reserved", 48)
3348 Reserved51 = bytes("reserved51", "Reserved", 51)
3349 Reserved56 = bytes("reserved56", "Reserved", 56)
3350 Reserved64 = bytes("reserved64", "Reserved", 64)
3351 Reserved120 = bytes("reserved120", "Reserved", 120)
3352 ReservedOrDirectoryNumber = uint32("reserved_or_directory_number", "Reserved or Directory Number (see EAFlags)")
3353 ResourceCount = uint32("resource_count", "Resource Count")
3354 ResourceForkSize = uint32("resource_fork_size", "Resource Fork Size")
3355 ResourceName = stringz("resource_name", "Resource Name")
3356 ResourceSignature = fw_string("resource_sig", "Resource Signature", 4)
3357 RestoreTime = uint32("restore_time", "Restore Time")
3358 Restriction = uint32("restriction", "Disk Space Restriction")
3359 RestrictionsEnforced = val_string8("restrictions_enforced", "Disk Restrictions Enforce Flag", [
3360 [ 0x00, "Enforced" ],
3361 [ 0xff, "Not Enforced" ],
3363 ReturnInfoCount = uint32("return_info_count", "Return Information Count")
3364 ReturnInfoMask = bitfield16("ret_info_mask", "Return Information", [
3365 bf_boolean16(0x0001, "ret_info_mask_fname", "Return File Name Information"),
3366 bf_boolean16(0x0002, "ret_info_mask_alloc", "Return Allocation Space Information"),
3367 bf_boolean16(0x0004, "ret_info_mask_attr", "Return Attribute Information"),
3368 bf_boolean16(0x0008, "ret_info_mask_size", "Return Size Information"),
3369 bf_boolean16(0x0010, "ret_info_mask_tspace", "Return Total Space Information"),
3370 bf_boolean16(0x0020, "ret_info_mask_eattr", "Return Extended Attributes Information"),
3371 bf_boolean16(0x0040, "ret_info_mask_arch", "Return Archive Information"),
3372 bf_boolean16(0x0080, "ret_info_mask_mod", "Return Modify Information"),
3373 bf_boolean16(0x0100, "ret_info_mask_create", "Return Creation Information"),
3374 bf_boolean16(0x0200, "ret_info_mask_ns", "Return Name Space Information"),
3375 bf_boolean16(0x0400, "ret_info_mask_dir", "Return Directory Information"),
3376 bf_boolean16(0x0800, "ret_info_mask_rights", "Return Rights Information"),
3377 bf_boolean16(0x1000, "ret_info_mask_id", "Return ID Information"),
3378 bf_boolean16(0x2000, "ret_info_mask_ns_attr", "Return Name Space Attributes Information"),
3379 bf_boolean16(0x4000, "ret_info_mask_actual", "Return Actual Information"),
3380 bf_boolean16(0x8000, "ret_info_mask_logical", "Return Logical Information"),
3382 ReturnedListCount = uint32("returned_list_count", "Returned List Count")
3383 Revision = uint32("revision", "Revision")
3384 RevisionNumber = uint8("revision_number", "Revision")
3385 RevQueryFlag = val_string8("rev_query_flag", "Revoke Rights Query Flag", [
3386 [ 0x00, "Do not query the locks engine for access rights" ],
3387 [ 0x01, "Query the locks engine and return the access rights" ],
3389 RightsGrantMask = bitfield8("rights_grant_mask", "Grant Rights", [
3390 bf_boolean8(0x01, "rights_grant_mask_read", "Read"),
3391 bf_boolean8(0x02, "rights_grant_mask_write", "Write"),
3392 bf_boolean8(0x04, "rights_grant_mask_open", "Open"),
3393 bf_boolean8(0x08, "rights_grant_mask_create", "Create"),
3394 bf_boolean8(0x10, "rights_grant_mask_del", "Delete"),
3395 bf_boolean8(0x20, "rights_grant_mask_parent", "Parental"),
3396 bf_boolean8(0x40, "rights_grant_mask_search", "Search"),
3397 bf_boolean8(0x80, "rights_grant_mask_mod", "Modify"),
3399 RightsRevokeMask = bitfield8("rights_revoke_mask", "Revoke Rights", [
3400 bf_boolean8(0x01, "rights_revoke_mask_read", "Read"),
3401 bf_boolean8(0x02, "rights_revoke_mask_write", "Write"),
3402 bf_boolean8(0x04, "rights_revoke_mask_open", "Open"),
3403 bf_boolean8(0x08, "rights_revoke_mask_create", "Create"),
3404 bf_boolean8(0x10, "rights_revoke_mask_del", "Delete"),
3405 bf_boolean8(0x20, "rights_revoke_mask_parent", "Parental"),
3406 bf_boolean8(0x40, "rights_revoke_mask_search", "Search"),
3407 bf_boolean8(0x80, "rights_revoke_mask_mod", "Modify"),
3409 RIPSocketNumber = uint16("rip_socket_num", "RIP Socket Number")
3410 RIPSocketNumber.Display("BASE_HEX")
3411 RouterDownFlag = boolean8("router_dn_flag", "Router Down Flag")
3412 RPCccode = val_string16("rpc_c_code", "RPC Completion Code", [
3413 [ 0x0000, "Successful" ],
3415 RTagNumber = uint32("r_tag_num", "Resource Tag Number")
3416 RTagNumber.Display("BASE_HEX")
3417 RpyNearestSrvFlag = boolean8("rpy_nearest_srv_flag", "Reply to Nearest Server Flag")
3419 SalvageableFileEntryNumber = uint32("salvageable_file_entry_number", "Salvageable File Entry Number")
3420 SalvageableFileEntryNumber.Display("BASE_HEX")
3421 SAPSocketNumber = uint16("sap_socket_number", "SAP Socket Number")
3422 SAPSocketNumber.Display("BASE_HEX")
3423 ScanItems = uint32("scan_items", "Number of Items returned from Scan")
3424 SearchAttributes = bitfield8("sattr", "Search Attributes", [
3425 bf_boolean8(0x01, "sattr_ronly", "Read-Only Files Allowed"),
3426 bf_boolean8(0x02, "sattr_hid", "Hidden Files Allowed"),
3427 bf_boolean8(0x04, "sattr_sys", "System Files Allowed"),
3428 bf_boolean8(0x08, "sattr_exonly", "Execute-Only Files Allowed"),
3429 bf_boolean8(0x10, "sattr_sub", "Subdirectories Only"),
3430 bf_boolean8(0x20, "sattr_archive", "Archive"),
3431 bf_boolean8(0x40, "sattr_execute_confirm", "Execute Confirm"),
3432 bf_boolean8(0x80, "sattr_shareable", "Shareable"),
3434 SearchAttributesLow = bitfield16("search_att_low", "Search Attributes", [
3435 bf_boolean16(0x0001, "search_att_read_only", "Read-Only"),
3436 bf_boolean16(0x0002, "search_att_hidden", "Hidden Files Allowed"),
3437 bf_boolean16(0x0004, "search_att_system", "System"),
3438 bf_boolean16(0x0008, "search_att_execute_only", "Execute-Only"),
3439 bf_boolean16(0x0010, "search_att_sub", "Subdirectories Only"),
3440 bf_boolean16(0x0020, "search_att_archive", "Archive"),
3441 bf_boolean16(0x0040, "search_att_execute_confirm", "Execute Confirm"),
3442 bf_boolean16(0x0080, "search_att_shareable", "Shareable"),
3443 bf_boolean16(0x8000, "search_attr_all_files", "All Files and Directories"),
3445 SearchBitMap = bitfield8("search_bit_map", "Search Bit Map", [
3446 bf_boolean8(0x01, "search_bit_map_hidden", "Hidden"),
3447 bf_boolean8(0x02, "search_bit_map_sys", "System"),
3448 bf_boolean8(0x04, "search_bit_map_sub", "Subdirectory"),
3449 bf_boolean8(0x08, "search_bit_map_files", "Files"),
3451 SearchConnNumber = uint32("search_conn_number", "Search Connection Number")
3452 SearchInstance = uint32("search_instance", "Search Instance")
3453 SearchNumber = uint32("search_number", "Search Number")
3454 SearchPattern = nstring8("search_pattern", "Search Pattern")
3455 SearchSequence = bytes("search_sequence", "Search Sequence", 9)
3456 SearchSequenceWord = uint16("search_sequence_word", "Search Sequence", BE)
3457 Second = uint8("s_second", "Seconds")
3458 SecondsRelativeToTheYear2000 = uint32("sec_rel_to_y2k", "Seconds Relative to the Year 2000")
3459 SecretStoreVerb = val_string8("ss_verb", "Secret Store Verb",[
3460 [ 0x00, "Query Server" ],
3461 [ 0x01, "Read App Secrets" ],
3462 [ 0x02, "Write App Secrets" ],
3463 [ 0x03, "Add Secret ID" ],
3464 [ 0x04, "Remove Secret ID" ],
3465 [ 0x05, "Remove SecretStore" ],
3466 [ 0x06, "Enumerate Secret IDs" ],
3467 [ 0x07, "Unlock Store" ],
3468 [ 0x08, "Set Master Password" ],
3469 [ 0x09, "Get Service Information" ],
3471 SecurityEquivalentList = fw_string("security_equiv_list", "Security Equivalent List", 128)
3472 SecurityFlag = bitfield8("security_flag", "Security Flag", [
3473 bf_boolean8(0x01, "checksuming", "Checksumming"),
3474 bf_boolean8(0x02, "signature", "Signature"),
3475 bf_boolean8(0x04, "complete_signatures", "Complete Signatures"),
3476 bf_boolean8(0x08, "encryption", "Encryption"),
3477 bf_boolean8(0x80, "large_internet_packets", "Large Internet Packets (LIP) Disabled"),
3479 SecurityRestrictionVersion = uint8("security_restriction_version", "Security Restriction Version")
3480 SectorsPerBlock = uint8("sectors_per_block", "Sectors Per Block")
3481 SectorsPerCluster = uint16("sectors_per_cluster", "Sectors Per Cluster" )
3482 SectorsPerClusterLong = uint32("sectors_per_cluster_long", "Sectors Per Cluster" )
3483 SectorsPerTrack = uint8("sectors_per_track", "Sectors Per Track")
3484 SectorSize = uint32("sector_size", "Sector Size")
3485 SemaphoreHandle = uint32("semaphore_handle", "Semaphore Handle")
3486 SemaphoreName = nstring8("semaphore_name", "Semaphore Name")
3487 SemaphoreNameLen = uint8("semaphore_name_len", "Semaphore Name Len")
3488 SemaphoreOpenCount = uint8("semaphore_open_count", "Semaphore Open Count")
3489 SemaphoreShareCount = uint8("semaphore_share_count", "Semaphore Share Count")
3490 SemaphoreTimeOut = uint16("semaphore_time_out", "Semaphore Time Out")
3491 SemaphoreValue = uint16("semaphore_value", "Semaphore Value")
3492 SendStatus = val_string8("send_status", "Send Status", [
3493 [ 0x00, "Successful" ],
3494 [ 0x01, "Illegal Station Number" ],
3495 [ 0x02, "Client Not Logged In" ],
3496 [ 0x03, "Client Not Accepting Messages" ],
3497 [ 0x04, "Client Already has a Message" ],
3498 [ 0x96, "No Alloc Space for the Message" ],
3499 [ 0xfd, "Bad Station Number" ],
3500 [ 0xff, "Failure" ],
3502 SequenceByte = uint8("sequence_byte", "Sequence")
3503 SequenceNumber = uint32("sequence_number", "Sequence Number")
3504 SequenceNumber.Display("BASE_HEX")
3505 ServerAddress = bytes("server_address", "Server Address", 12)
3506 ServerAppNumber = uint16("server_app_num", "Server App Number")
3507 #ServerIDList = uint32("server_id_list", "Server ID List")
3508 ServerID = uint32("server_id_number", "Server ID", BE )
3509 ServerID.Display("BASE_HEX")
3510 ServerInfoFlags = val_string16("server_info_flags", "Server Information Flags", [
3511 [ 0x0000, "This server is not a member of a Cluster" ],
3512 [ 0x0001, "This server is a member of a Cluster" ],
3514 serverListFlags = uint32("server_list_flags", "Server List Flags")
3515 ServerName = fw_string("server_name", "Server Name", 48)
3516 serverName50 = fw_string("server_name50", "Server Name", 50)
3517 ServerNameLen = nstring8("server_name_len", "Server Name")
3518 ServerNameStringz = stringz("server_name_stringz", "Server Name")
3519 ServerNetworkAddress = bytes("server_network_address", "Server Network Address", 10)
3520 ServerNode = bytes("server_node", "Server Node", 6)
3521 ServerSerialNumber = uint32("server_serial_number", "Server Serial Number")
3522 ServerStation = uint8("server_station", "Server Station")
3523 ServerStationLong = uint32("server_station_long", "Server Station")
3524 ServerStationList = uint8("server_station_list", "Server Station List")
3525 ServerStatusRecord = fw_string("server_status_record", "Server Status Record", 64)
3526 ServerTaskNumber = uint8("server_task_number", "Server Task Number")
3527 ServerTaskNumberLong = uint32("server_task_number_long", "Server Task Number")
3528 ServerType = uint16("server_type", "Server Type")
3529 ServerType.Display("BASE_HEX")
3530 ServerUtilization = uint32("server_utilization", "Server Utilization")
3531 ServerUtilizationPercentage = uint8("server_utilization_percentage", "Server Utilization Percentage")
3532 ServiceType = val_string16("Service_type", "Service Type", [
3533 [ 0x0000, "Unknown" ],
3535 [ 0x0002, "User group" ],
3536 [ 0x0003, "Print queue" ],
3537 [ 0x0004, "NetWare file server" ],
3538 [ 0x0005, "Job server" ],
3539 [ 0x0006, "Gateway" ],
3540 [ 0x0007, "Print server" ],
3541 [ 0x0008, "Archive queue" ],
3542 [ 0x0009, "Archive server" ],
3543 [ 0x000a, "Job queue" ],
3544 [ 0x000b, "Administration" ],
3545 [ 0x0021, "NAS SNA gateway" ],
3546 [ 0x0026, "Remote bridge server" ],
3547 [ 0x0027, "TCP/IP gateway" ],
3549 SetCmdCategory = val_string8("set_cmd_category", "Set Command Category", [
3550 [ 0x00, "Communications" ],
3552 [ 0x02, "File Cache" ],
3553 [ 0x03, "Directory Cache" ],
3554 [ 0x04, "File System" ],
3556 [ 0x06, "Transaction Tracking" ],
3560 [ 0x0a, "Miscellaneous" ],
3561 [ 0x0b, "Error Handling" ],
3562 [ 0x0c, "Directory Services" ],
3563 [ 0x0d, "MultiProcessor" ],
3564 [ 0x0e, "Service Location Protocol" ],
3565 [ 0x0f, "Licensing Services" ],
3567 SetCmdFlags = bitfield8("set_cmd_flags", "Set Command Flags", [
3568 bf_boolean8(0x01, "cmd_flags_startup_only", "Startup.ncf Only"),
3569 bf_boolean8(0x02, "cmd_flags_hidden", "Hidden"),
3570 bf_boolean8(0x04, "cmd_flags_advanced", "Advanced"),
3571 bf_boolean8(0x08, "cmd_flags_later", "Restart Server Required to Take Effect"),
3572 bf_boolean8(0x80, "cmd_flags_secure", "Console Secured"),
3574 SetCmdName = stringz("set_cmd_name", "Set Command Name")
3575 SetCmdType = val_string8("set_cmd_type", "Set Command Type", [
3576 [ 0x00, "Numeric Value" ],
3577 [ 0x01, "Boolean Value" ],
3578 [ 0x02, "Ticks Value" ],
3579 [ 0x04, "Time Value" ],
3580 [ 0x05, "String Value" ],
3581 [ 0x06, "Trigger Value" ],
3582 [ 0x07, "Numeric Value" ],
3584 SetCmdValueNum = uint32("set_cmd_value_num", "Set Command Value")
3585 SetCmdValueString = stringz("set_cmd_value_string", "Set Command Value")
3586 SetParmName = stringz("set_parm_name", "Set Parameter Name")
3587 SFTErrorTable = bytes("sft_error_table", "SFT Error Table", 60)
3588 SFTSupportLevel = val_string8("sft_support_level", "SFT Support Level", [
3589 [ 0x01, "Server Offers Hot Disk Error Fixing" ],
3590 [ 0x02, "Server Offers Disk Mirroring and Transaction Tracking" ],
3591 [ 0x03, "Server Offers Physical Server Mirroring" ],
3593 ShareableLockCount = uint16("shareable_lock_count", "Shareable Lock Count")
3594 SharedMemoryAddresses = bytes("shared_memory_addresses", "Shared Memory Addresses", 10)
3595 ShortName = fw_string("short_name", "Short Name", 12)
3596 ShortStkName = fw_string("short_stack_name", "Short Stack Name", 16)
3597 SiblingCount = uint32("sibling_count", "Sibling Count")
3598 SMIDs = uint32("smids", "Storage Media ID's")
3599 SoftwareDescription = fw_string("software_description", "Software Description", 65)
3600 SoftwareDriverType = uint8("software_driver_type", "Software Driver Type")
3601 SoftwareMajorVersionNumber = uint8("software_major_version_number", "Software Major Version Number")
3602 SoftwareMinorVersionNumber = uint8("software_minor_version_number", "Software Minor Version Number")
3603 SourceDirHandle = uint8("source_dir_handle", "Source Directory Handle")
3604 sourceOriginateTime = bytes("source_originate_time", "Source Originate Time", 8)
3605 sourceOriginateTime.Display("BASE_HEX")
3606 SourcePath = nstring8("source_path", "Source Path")
3607 SourcePathComponentCount = uint8("source_component_count", "Source Path Component Count")
3608 sourceReturnTime = bytes("source_return_time", "Source Return Time", 8)
3609 sourceReturnTime.Display("BASE_HEX")
3610 SpaceUsed = uint32("space_used", "Space Used")
3611 SpaceMigrated = uint32("space_migrated", "Space Migrated")
3612 SrcNameSpace = val_string8("src_name_space", "Source Name Space", [
3613 [ 0x00, "DOS Name Space" ],
3614 [ 0x01, "MAC Name Space" ],
3615 [ 0x02, "NFS Name Space" ],
3616 [ 0x04, "Long Name Space" ],
3618 SupModID = uint32("sup_mod_id", "Sup Mod ID")
3619 StackCount = uint32("stack_count", "Stack Count")
3620 StackFullNameStr = nstring8("stack_full_name_str", "Stack Full Name")
3621 StackMajorVN = uint8("stack_major_vn", "Stack Major Version Number")
3622 StackMinorVN = uint8("stack_minor_vn", "Stack Minor Version Number")
3623 StackNumber = uint32("stack_number", "Stack Number")
3624 StartConnNumber = uint32("start_conn_num", "Starting Connection Number")
3625 StartingBlock = uint16("starting_block", "Starting Block")
3626 StartingNumber = uint32("starting_number", "Starting Number")
3627 StartingSearchNumber = uint16("start_search_number", "Start Search Number")
3628 StartNumber = uint32("start_number", "Start Number")
3629 startNumberFlag = uint16("start_number_flag", "Start Number Flag")
3630 StartVolumeNumber = uint32("start_volume_number", "Starting Volume Number")
3631 StationList = uint32("station_list", "Station List")
3632 StationNumber = bytes("station_number", "Station Number", 3)
3633 StatMajorVersion = uint8("stat_major_version", "Statistics Table Major Version")
3634 StatMinorVersion = uint8("stat_minor_version", "Statistics Table Minor Version")
3635 Status = bitfield16("status", "Status", [
3636 bf_boolean16(0x0001, "user_info_logged_in", "Logged In"),
3637 bf_boolean16(0x0002, "user_info_being_abort", "Being Aborted"),
3638 bf_boolean16(0x0004, "user_info_audited", "Audited"),
3639 bf_boolean16(0x0008, "user_info_need_sec", "Needs Security Change"),
3640 bf_boolean16(0x0010, "user_info_mac_station", "MAC Station"),
3641 bf_boolean16(0x0020, "user_info_temp_authen", "Temporary Authenticated"),
3642 bf_boolean16(0x0040, "user_info_audit_conn", "Audit Connection Recorded"),
3643 bf_boolean16(0x0080, "user_info_dsaudit_conn", "DS Audit Connection Recorded"),
3644 bf_boolean16(0x0100, "user_info_logout", "Logout in Progress"),
3645 bf_boolean16(0x0200, "user_info_int_login", "Internal Login"),
3646 bf_boolean16(0x0400, "user_info_bindery", "Bindery Connection"),
3648 StatusFlagBits = bitfield32("status_flag_bits", "Status Flag", [
3649 bf_boolean32(0x00000001, "status_flag_bits_suballoc", "Sub Allocation"),
3650 bf_boolean32(0x00000002, "status_flag_bits_comp", "Compression"),
3651 bf_boolean32(0x00000004, "status_flag_bits_migrate", "Migration"),
3652 bf_boolean32(0x00000008, "status_flag_bits_audit", "Audit"),
3653 bf_boolean32(0x00000010, "status_flag_bits_ro", "Read Only"),
3654 bf_boolean32(0x00000020, "status_flag_bits_im_purge", "Immediate Purge"),
3655 bf_boolean32(0x80000000, "status_flag_bits_nss", "NSS Volume"),
3657 SubAllocClusters = uint32("sub_alloc_clusters", "Sub Alloc Clusters")
3658 SubAllocFreeableClusters = uint32("sub_alloc_freeable_clusters", "Sub Alloc Freeable Clusters")
3659 Subdirectory = uint32("sub_directory", "Subdirectory")
3660 Subdirectory.Display("BASE_HEX")
3661 SuggestedFileSize = uint32("suggested_file_size", "Suggested File Size")
3662 SupportModuleID = uint32("support_module_id", "Support Module ID")
3663 SynchName = nstring8("synch_name", "Synch Name")
3664 SystemIntervalMarker = uint32("system_interval_marker", "System Interval Marker")
3666 TabSize = uint8( "tab_size", "Tab Size" )
3667 TargetClientList = uint8("target_client_list", "Target Client List")
3668 TargetConnectionNumber = uint16("target_connection_number", "Target Connection Number")
3669 TargetDirectoryBase = uint32("target_directory_base", "Target Directory Base")
3670 TargetDirHandle = uint8("target_dir_handle", "Target Directory Handle")
3671 TargetEntryID = uint32("target_entry_id", "Target Entry ID")
3672 TargetEntryID.Display("BASE_HEX")
3673 TargetExecutionTime = bytes("target_execution_time", "Target Execution Time", 6)
3674 TargetFileHandle = bytes("target_file_handle", "Target File Handle", 6)
3675 TargetFileOffset = uint32("target_file_offset", "Target File Offset")
3676 TargetMessage = nstring8("target_message", "Message")
3677 TargetPrinter = uint8( "target_ptr", "Target Printer" )
3678 targetReceiveTime = bytes("target_receive_time", "Target Receive Time", 8)
3679 targetReceiveTime.Display("BASE_HEX")
3680 TargetServerIDNumber = uint32("target_server_id_number", "Target Server ID Number", BE )
3681 TargetServerIDNumber.Display("BASE_HEX")
3682 targetTransmitTime = bytes("target_transmit_time", "Target Transmit Time", 8)
3683 targetTransmitTime.Display("BASE_HEX")
3684 TaskNumByte = uint8("task_num_byte", "Task Number")
3685 TaskNumber = uint32("task_number", "Task Number")
3686 TaskNumberWord = uint16("task_number_word", "Task Number")
3687 TextJobDescription = fw_string("text_job_description", "Text Job Description", 50)
3688 ThrashingCount = uint16("thrashing_count", "Thrashing Count")
3689 TimeoutLimit = uint16("timeout_limit", "Timeout Limit")
3690 TimesyncStatus = bitfield32("timesync_status_flags", "Timesync Status", [
3691 bf_boolean32(0x00000001, "timesync_status_sync", "Time is Synchronized"),
3692 bf_boolean32(0x00000002, "timesync_status_net_sync", "Time is Synchronized to the Network"),
3693 bf_boolean32(0x00000004, "timesync_status_active", "Time Synchronization is Active"),
3694 bf_boolean32(0x00000008, "timesync_status_external", "External Time Synchronization Active"),
3695 bf_val_str32(0x00000700, "timesync_status_server_type", "Time Server Type", [
3696 [ 0x01, "Client Time Server" ],
3697 [ 0x02, "Secondary Time Server" ],
3698 [ 0x03, "Primary Time Server" ],
3699 [ 0x04, "Reference Time Server" ],
3700 [ 0x05, "Single Reference Time Server" ],
3702 bf_boolean32(0x000f0000, "timesync_status_ext_sync", "External Clock Status"),
3704 TimeToNet = uint16("time_to_net", "Time To Net")
3705 TotalBlocks = uint32("total_blocks", "Total Blocks")
3706 TotalBlocksToDecompress = uint32("total_blks_to_dcompress", "Total Blocks To Decompress")
3707 TotalBytesRead = bytes("user_info_ttl_bytes_rd", "Total Bytes Read", 6)
3708 TotalBytesWritten = bytes("user_info_ttl_bytes_wrt", "Total Bytes Written", 6)
3709 TotalCacheWrites = uint32("total_cache_writes", "Total Cache Writes")
3710 TotalChangedFATs = uint32("total_changed_fats", "Total Changed FAT Entries")
3711 TotalCommonCnts = uint32("total_common_cnts", "Total Common Counts")
3712 TotalCntBlocks = uint32("total_cnt_blocks", "Total Count Blocks")
3713 TotalDataStreamDiskSpaceAlloc = uint32("total_stream_size_struct_space_alloc", "Total Data Stream Disk Space Alloc")
3714 TotalDirectorySlots = uint16("total_directory_slots", "Total Directory Slots")
3715 TotalDirectoryEntries = uint32("total_dir_entries", "Total Directory Entries")
3716 TotalDynamicSpace = uint32("total_dynamic_space", "Total Dynamic Space")
3717 TotalExtendedDirectoryExtants = uint32("total_extended_directory_extants", "Total Extended Directory Extants")
3718 TotalFileServicePackets = uint32("total_file_service_packets", "Total File Service Packets")
3719 TotalFilesOpened = uint32("total_files_opened", "Total Files Opened")
3720 TotalLFSCounters = uint32("total_lfs_counters", "Total LFS Counters")
3721 TotalOffspring = uint16("total_offspring", "Total Offspring")
3722 TotalOtherPackets = uint32("total_other_packets", "Total Other Packets")
3723 TotalQueueJobs = uint32("total_queue_jobs", "Total Queue Jobs")
3724 TotalReadRequests = uint32("total_read_requests", "Total Read Requests")
3725 TotalRequest = uint32("total_request", "Total Requests")
3726 TotalRequestPackets = uint32("total_request_packets", "Total Request Packets")
3727 TotalRoutedPackets = uint32("total_routed_packets", "Total Routed Packets")
3728 TotalRxPkts = uint32("total_rx_pkts", "Total Receive Packets")
3729 TotalServerMemory = uint16("total_server_memory", "Total Server Memory", BE)
3730 TotalTransactionsBackedOut = uint32("total_trans_backed_out", "Total Transactions Backed Out")
3731 TotalTransactionsPerformed = uint32("total_trans_performed", "Total Transactions Performed")
3732 TotalTxPkts = uint32("total_tx_pkts", "Total Transmit Packets")
3733 TotalUnfilledBackoutRequests = uint16("total_unfilled_backout_requests", "Total Unfilled Backout Requests")
3734 TotalVolumeClusters = uint16("total_volume_clusters", "Total Volume Clusters")
3735 TotalWriteRequests = uint32("total_write_requests", "Total Write Requests")
3736 TotalWriteTransactionsPerformed = uint32("total_write_trans_performed", "Total Write Transactions Performed")
3737 TrackOnFlag = boolean8("track_on_flag", "Track On Flag")
3738 TransactionDiskSpace = uint16("transaction_disk_space", "Transaction Disk Space")
3739 TransactionFATAllocations = uint32("transaction_fat_allocations", "Transaction FAT Allocations")
3740 TransactionFileSizeChanges = uint32("transaction_file_size_changes", "Transaction File Size Changes")
3741 TransactionFilesTruncated = uint32("transaction_files_truncated", "Transaction Files Truncated")
3742 TransactionNumber = uint32("transaction_number", "Transaction Number")
3743 TransactionTrackingEnabled = uint8("transaction_tracking_enabled", "Transaction Tracking Enabled")
3744 TransactionTrackingFlag = uint16("tts_flag", "Transaction Tracking Flag")
3745 TransactionTrackingSupported = uint8("transaction_tracking_supported", "Transaction Tracking Supported")
3746 TransactionVolumeNumber = uint16("transaction_volume_number", "Transaction Volume Number")
3747 TransportType = val_string8("transport_type", "Communications Type", [
3748 [ 0x01, "Internet Packet Exchange (IPX)" ],
3749 [ 0x05, "User Datagram Protocol (UDP)" ],
3750 [ 0x06, "Transmission Control Protocol (TCP)" ],
3752 TreeLength = uint32("tree_length", "Tree Length")
3753 TreeName = nstring32("tree_name", "Tree Name")
3754 TreeName.NWUnicode()
3755 TrusteeRights = bitfield16("trustee_rights_low", "Trustee Rights", [
3756 bf_boolean16(0x0001, "trustee_rights_read", "Read"),
3757 bf_boolean16(0x0002, "trustee_rights_write", "Write"),
3758 bf_boolean16(0x0004, "trustee_rights_open", "Open"),
3759 bf_boolean16(0x0008, "trustee_rights_create", "Create"),
3760 bf_boolean16(0x0010, "trustee_rights_del", "Delete"),
3761 bf_boolean16(0x0020, "trustee_rights_parent", "Parental"),
3762 bf_boolean16(0x0040, "trustee_rights_search", "Search"),
3763 bf_boolean16(0x0080, "trustee_rights_modify", "Modify"),
3764 bf_boolean16(0x0100, "trustee_rights_super", "Supervisor"),
3766 TTSLevel = uint8("tts_level", "TTS Level")
3767 TrusteeSetNumber = uint8("trustee_set_number", "Trustee Set Number")
3768 TrusteeID = uint32("trustee_id_set", "Trustee ID")
3769 TrusteeID.Display("BASE_HEX")
3770 ttlCompBlks = uint32("ttl_comp_blks", "Total Compression Blocks")
3771 TtlDSDskSpaceAlloc = uint32("ttl_ds_disk_space_alloc", "Total Streams Space Allocated")
3772 TtlEAs = uint32("ttl_eas", "Total EA's")
3773 TtlEAsDataSize = uint32("ttl_eas_data_size", "Total EA's Data Size")
3774 TtlEAsKeySize = uint32("ttl_eas_key_size", "Total EA's Key Size")
3775 ttlIntermediateBlks = uint32("ttl_inter_blks", "Total Intermediate Blocks")
3776 TtlMigratedSize = uint32("ttl_migrated_size", "Total Migrated Size")
3777 TtlNumOfRTags = uint32("ttl_num_of_r_tags", "Total Number of Resource Tags")
3778 TtlNumOfSetCmds = uint32("ttl_num_of_set_cmds", "Total Number of Set Commands")
3779 TtlValuesLength = uint32("ttl_values_length", "Total Values Length")
3780 TtlWriteDataSize = uint32("ttl_write_data_size", "Total Write Data Size")
3781 TurboUsedForFileService = uint16("turbo_used_for_file_service", "Turbo Used For File Service")
3783 UnclaimedPkts = uint32("un_claimed_packets", "Unclaimed Packets")
3784 UnCompressableDataStreamsCount = uint32("un_compressable_data_streams_count", "Uncompressable Data Streams Count")
3785 Undefined8 = bytes("undefined_8", "Undefined", 8)
3786 Undefined28 = bytes("undefined_28", "Undefined", 28)
3787 UndefinedWord = uint16("undefined_word", "Undefined")
3788 UniqueID = uint8("unique_id", "Unique ID")
3789 UnknownByte = uint8("unknown_byte", "Unknown Byte")
3790 Unused = uint8("un_used", "Unused")
3791 UnusedBlocks = uint32("unused_blocks", "Unused Blocks")
3792 UnUsedDirectoryEntries = uint32("un_used_directory_entries", "Unused Directory Entries")
3793 UnusedDiskBlocks = uint32("unused_disk_blocks", "Unused Disk Blocks")
3794 UnUsedExtendedDirectoryExtants = uint32("un_used_extended_directory_extants", "Unused Extended Directory Extants")
3795 UpdateDate = uint16("update_date", "Update Date")
3797 UpdateID = uint32("update_id", "Update ID", BE)
3798 UpdateID.Display("BASE_HEX")
3799 UpdateTime = uint16("update_time", "Update Time")
3801 UseCount = val_string16("user_info_use_count", "Use Count", [
3802 [ 0x0000, "Connection is not in use" ],
3803 [ 0x0001, "Connection is in use" ],
3805 UsedBlocks = uint32("used_blocks", "Used Blocks")
3806 UserID = uint32("user_id", "User ID", BE)
3807 UserID.Display("BASE_HEX")
3808 UserLoginAllowed = val_string8("user_login_allowed", "Login Status", [
3809 [ 0x00, "Client Login Disabled" ],
3810 [ 0x01, "Client Login Enabled" ],
3813 UserName = nstring8("user_name", "User Name")
3814 UserName16 = fw_string("user_name_16", "User Name", 16)
3815 UserName48 = fw_string("user_name_48", "User Name", 48)
3816 UserType = uint16("user_type", "User Type")
3817 UTCTimeInSeconds = uint32("uts_time_in_seconds", "UTC Time in Seconds")
3819 ValueAvailable = val_string8("value_available", "Value Available", [
3820 [ 0x00, "Has No Value" ],
3821 [ 0xff, "Has Value" ],
3823 VAPVersion = uint8("vap_version", "VAP Version")
3824 VariableBitMask = uint32("variable_bit_mask", "Variable Bit Mask")
3825 VariableBitsDefined = uint16("variable_bits_defined", "Variable Bits Defined")
3826 VConsoleRevision = uint8("vconsole_rev", "Console Revision")
3827 VConsoleVersion = uint8("vconsole_ver", "Console Version")
3828 Verb = uint32("verb", "Verb")
3829 VerbData = uint8("verb_data", "Verb Data")
3830 version = uint32("version", "Version")
3831 VersionNumber = uint8("version_number", "Version")
3832 VertLocation = uint16("vert_location", "Vertical Location")
3833 VirtualConsoleVersion = uint8("virtual_console_version", "Virtual Console Version")
3834 VolumeID = uint32("volume_id", "Volume ID")
3835 VolumeID.Display("BASE_HEX")
3836 VolInfoReplyLen = uint16("vol_info_reply_len", "Volume Information Reply Length")
3837 VolumeCachedFlag = val_string8("volume_cached_flag", "Volume Cached Flag", [
3838 [ 0x00, "Volume is Not Cached" ],
3839 [ 0xff, "Volume is Cached" ],
3841 VolumeDataStreams = uint8("volume_data_streams", "Volume Data Streams")
3842 VolumeHashedFlag = val_string8("volume_hashed_flag", "Volume Hashed Flag", [
3843 [ 0x00, "Volume is Not Hashed" ],
3844 [ 0xff, "Volume is Hashed" ],
3846 VolumeLastModifiedDate = uint16("volume_last_modified_date", "Volume Last Modified Date")
3847 VolumeLastModifiedDate.NWDate()
3848 VolumeLastModifiedTime = uint16("volume_last_modified_time", "Volume Last Modified Time")
3849 VolumeLastModifiedTime.NWTime()
3850 VolumeMountedFlag = val_string8("volume_mounted_flag", "Volume Mounted Flag", [
3851 [ 0x00, "Volume is Not Mounted" ],
3852 [ 0xff, "Volume is Mounted" ],
3854 VolumeName = fw_string("volume_name", "Volume Name", 16)
3855 VolumeNameLen = nstring8("volume_name_len", "Volume Name")
3856 VolumeNameSpaces = uint8("volume_name_spaces", "Volume Name Spaces")
3857 VolumeNameStringz = stringz("volume_name_stringz", "Volume Name")
3858 VolumeNumber = uint8("volume_number", "Volume Number")
3859 VolumeNumberLong = uint32("volume_number_long", "Volume Number")
3860 VolumeRemovableFlag = val_string8("volume_removable_flag", "Volume Removable Flag", [
3861 [ 0x00, "Disk Cannot be Removed from Server" ],
3862 [ 0xff, "Disk Can be Removed from Server" ],
3864 VolumeRequestFlags = val_string16("volume_request_flags", "Volume Request Flags", [
3865 [ 0x0000, "Return name with volume number" ],
3866 [ 0x0001, "Do not return name with volume number" ],
3868 VolumeSizeInClusters = uint32("volume_size_in_clusters", "Volume Size in Clusters")
3869 VolumesSupportedMax = uint16("volumes_supported_max", "Volumes Supported Max")
3870 VolumeType = val_string16("volume_type", "Volume Type", [
3871 [ 0x0000, "NetWare 386" ],
3872 [ 0x0001, "NetWare 286" ],
3873 [ 0x0002, "NetWare 386 Version 30" ],
3874 [ 0x0003, "NetWare 386 Version 31" ],
3876 WastedServerMemory = uint16("wasted_server_memory", "Wasted Server Memory", BE)
3877 WaitTime = uint32("wait_time", "Wait Time")
3879 Year = val_string8("year", "Year",[
3961 ##############################################################################
3963 ##############################################################################
3966 acctngInfo = struct("acctng_info_struct", [
3970 HeldConnectTimeInMinutes,
3974 ],"Accounting Information")
3975 AFP10Struct = struct("afp_10_struct", [
3999 ], "AFP Information" )
4000 AFP20Struct = struct("afp_20_struct", [
4026 ], "AFP Information" )
4027 ArchiveDateStruct = struct("archive_date_struct", [
4030 ArchiveIdStruct = struct("archive_id_struct", [
4033 ArchiveInfoStruct = struct("archive_info_struct", [
4037 ], "Archive Information")
4038 ArchiveTimeStruct = struct("archive_time_struct", [
4041 AttributesStruct = struct("attributes_struct", [
4045 authInfo = struct("auth_info_struct", [
4050 BoardNameStruct = struct("board_name_struct", [
4055 CacheInfo = struct("cache_info", [
4056 uint32("max_byte_cnt", "Maximum Byte Count"),
4057 uint32("min_num_of_cache_buff", "Minimum Number Of Cache Buffers"),
4058 uint32("min_cache_report_thresh", "Minimum Cache Report Threshold"),
4059 uint32("alloc_waiting", "Allocate Waiting Count"),
4060 uint32("ndirty_blocks", "Number of Dirty Blocks"),
4061 uint32("cache_dirty_wait_time", "Cache Dirty Wait Time"),
4062 uint32("cache_max_concur_writes", "Cache Maximum Concurrent Writes"),
4063 uint32("max_dirty_time", "Maximum Dirty Time"),
4064 uint32("num_dir_cache_buff", "Number Of Directory Cache Buffers"),
4065 uint32("cache_byte_to_block", "Cache Byte To Block Shift Factor"),
4066 ], "Cache Information")
4067 CommonLanStruc = struct("common_lan_struct", [
4068 boolean8("not_supported_mask", "Bit Counter Supported"),
4070 uint32("total_tx_packet_count", "Total Transmit Packet Count"),
4071 uint32("total_rx_packet_count", "Total Receive Packet Count"),
4072 uint32("no_ecb_available_count", "No ECB Available Count"),
4073 uint32("packet_tx_too_big_count", "Transmit Packet Too Big Count"),
4074 uint32("packet_tx_too_small_count", "Transmit Packet Too Small Count"),
4075 uint32("packet_rx_overflow_count", "Receive Packet Overflow Count"),
4076 uint32("packet_rx_too_big_count", "Receive Packet Too Big Count"),
4077 uint32("packet_rs_too_small_count", "Receive Packet Too Small Count"),
4078 uint32("packet_tx_misc_error_count", "Transmit Packet Misc Error Count"),
4079 uint32("packet_rx_misc_error_count", "Receive Packet Misc Error Count"),
4080 uint32("retry_tx_count", "Transmit Retry Count"),
4081 uint32("checksum_error_count", "Checksum Error Count"),
4082 uint32("hardware_rx_mismatch_count", "Hardware Receive Mismatch Count"),
4083 ], "Common LAN Information")
4084 CompDeCompStat = struct("comp_d_comp_stat", [
4085 uint32("cmphitickhigh", "Compress High Tick"),
4086 uint32("cmphitickcnt", "Compress High Tick Count"),
4087 uint32("cmpbyteincount", "Compress Byte In Count"),
4088 uint32("cmpbyteoutcnt", "Compress Byte Out Count"),
4089 uint32("cmphibyteincnt", "Compress High Byte In Count"),
4090 uint32("cmphibyteoutcnt", "Compress High Byte Out Count"),
4091 uint32("decphitickhigh", "DeCompress High Tick"),
4092 uint32("decphitickcnt", "DeCompress High Tick Count"),
4093 uint32("decpbyteincount", "DeCompress Byte In Count"),
4094 uint32("decpbyteoutcnt", "DeCompress Byte Out Count"),
4095 uint32("decphibyteincnt", "DeCompress High Byte In Count"),
4096 uint32("decphibyteoutcnt", "DeCompress High Byte Out Count"),
4097 ], "Compression/Decompression Information")
4098 ConnFileStruct = struct("conn_file_struct", [
4099 ConnectionNumberWord,
4104 ], "File Connection Information")
4105 ConnStruct = struct("conn_struct", [
4111 DirectoryEntryNumberWord,
4113 ], "Connection Information")
4114 ConnTaskStruct = struct("conn_task_struct", [
4115 ConnectionNumberByte,
4117 ], "Task Information")
4118 Counters = struct("counters_struct", [
4119 uint32("read_exist_blck", "Read Existing Block Count"),
4120 uint32("read_exist_write_wait", "Read Existing Write Wait Count"),
4121 uint32("read_exist_part_read", "Read Existing Partial Read Count"),
4122 uint32("read_exist_read_err", "Read Existing Read Error Count"),
4123 uint32("wrt_blck_cnt", "Write Block Count"),
4124 uint32("wrt_entire_blck", "Write Entire Block Count"),
4125 uint32("internl_dsk_get", "Internal Disk Get Count"),
4126 uint32("internl_dsk_get_need_to_alloc", "Internal Disk Get Need To Allocate Count"),
4127 uint32("internl_dsk_get_someone_beat", "Internal Disk Get Someone Beat My Count"),
4128 uint32("internl_dsk_get_part_read", "Internal Disk Get Partial Read Count"),
4129 uint32("internl_dsk_get_read_err", "Internal Disk Get Read Error Count"),
4130 uint32("async_internl_dsk_get", "Async Internal Disk Get Count"),
4131 uint32("async_internl_dsk_get_need_to_alloc", "Async Internal Disk Get Need To Alloc"),
4132 uint32("async_internl_dsk_get_someone_beat", "Async Internal Disk Get Someone Beat Me"),
4133 uint32("err_doing_async_read", "Error Doing Async Read Count"),
4134 uint32("internl_dsk_get_no_read", "Internal Disk Get No Read Count"),
4135 uint32("internl_dsk_get_no_read_alloc", "Internal Disk Get No Read Allocate Count"),
4136 uint32("internl_dsk_get_no_read_someone_beat", "Internal Disk Get No Read Someone Beat Me Count"),
4137 uint32("internl_dsk_write", "Internal Disk Write Count"),
4138 uint32("internl_dsk_write_alloc", "Internal Disk Write Allocate Count"),
4139 uint32("internl_dsk_write_someone_beat", "Internal Disk Write Someone Beat Me Count"),
4140 uint32("write_err", "Write Error Count"),
4141 uint32("wait_on_sema", "Wait On Semaphore Count"),
4142 uint32("alloc_blck_i_had_to_wait_for", "Allocate Block I Had To Wait For Someone Count"),
4143 uint32("alloc_blck", "Allocate Block Count"),
4144 uint32("alloc_blck_i_had_to_wait", "Allocate Block I Had To Wait Count"),
4145 ], "Disk Counter Information")
4146 CPUInformation = struct("cpu_information", [
4162 ], "CPU Information")
4163 CreationDateStruct = struct("creation_date_struct", [
4166 CreationInfoStruct = struct("creation_info_struct", [
4170 ], "Creation Information")
4171 CreationTimeStruct = struct("creation_time_struct", [
4174 CustomCntsInfo = struct("custom_cnts_info", [
4175 CustomVariableValue,
4177 ], "Custom Counters" )
4178 DataStreamInfo = struct("data_stream_info", [
4179 AssociatedNameSpace,
4182 DataStreamSizeStruct = struct("data_stream_size_struct", [
4185 DirCacheInfo = struct("dir_cache_info", [
4186 uint32("min_time_since_file_delete", "Minimum Time Since File Delete"),
4187 uint32("abs_min_time_since_file_delete", "Absolute Minimum Time Since File Delete"),
4188 uint32("min_num_of_dir_cache_buff", "Minimum Number Of Directory Cache Buffers"),
4189 uint32("max_num_of_dir_cache_buff", "Maximum Number Of Directory Cache Buffers"),
4190 uint32("num_of_dir_cache_buff", "Number Of Directory Cache Buffers"),
4191 uint32("dc_min_non_ref_time", "DC Minimum Non-Referenced Time"),
4192 uint32("dc_wait_time_before_new_buff", "DC Wait Time Before New Buffer"),
4193 uint32("dc_max_concurrent_writes", "DC Maximum Concurrent Writes"),
4194 uint32("dc_dirty_wait_time", "DC Dirty Wait Time"),
4195 uint32("dc_double_read_flag", "DC Double Read Flag"),
4196 uint32("map_hash_node_count", "Map Hash Node Count"),
4197 uint32("space_restriction_node_count", "Space Restriction Node Count"),
4198 uint32("trustee_list_node_count", "Trustee List Node Count"),
4199 uint32("percent_of_vol_used_by_dirs", "Percent Of Volume Used By Directories"),
4200 ], "Directory Cache Information")
4201 DirEntryStruct = struct("dir_entry_struct", [
4202 DirectoryEntryNumber,
4203 DOSDirectoryEntryNumber,
4205 ], "Directory Entry Information")
4206 DirectoryInstance = struct("directory_instance", [
4210 DirectoryAttributes,
4211 DirectoryAccessRights,
4212 endian(CreationDate, BE),
4213 endian(AccessDate, BE),
4217 ], "Directory Information")
4218 DMInfoLevel0 = struct("dm_info_level_0", [
4219 uint32("io_flag", "IO Flag"),
4220 uint32("sm_info_size", "Storage Module Information Size"),
4221 uint32("avail_space", "Available Space"),
4222 uint32("used_space", "Used Space"),
4223 stringz("s_module_name", "Storage Module Name"),
4224 uint8("s_m_info", "Storage Media Information"),
4226 DMInfoLevel1 = struct("dm_info_level_1", [
4230 DMInfoLevel2 = struct("dm_info_level_2", [
4233 DOSDirectoryEntryStruct = struct("dos_directory_entry_struct", [
4250 InheritedRightsMask,
4251 ], "DOS Directory Information")
4252 DOSFileEntryStruct = struct("dos_file_entry_struct", [
4272 InheritedRightsMask,
4277 ], "DOS File Information")
4278 DSSpaceAllocateStruct = struct("ds_space_alloc_struct", [
4279 DataStreamSpaceAlloc,
4281 DynMemStruct = struct("dyn_mem_struct", [
4282 uint32("dyn_mem_struct_total", "Total Dynamic Space" ),
4283 uint32("dyn_mem_struct_max", "Max Used Dynamic Space" ),
4284 uint32("dyn_mem_struct_cur", "Current Used Dynamic Space" ),
4285 ], "Dynamic Memory Information")
4286 EAInfoStruct = struct("ea_info_struct", [
4290 ], "Extended Attribute Information")
4291 ExtraCacheCntrs = struct("extra_cache_cntrs", [
4292 uint32("internl_dsk_get_no_wait", "Internal Disk Get No Wait Count"),
4293 uint32("internl_dsk_get_no_wait_need", "Internal Disk Get No Wait Need To Allocate Count"),
4294 uint32("internl_dsk_get_no_wait_no_blk", "Internal Disk Get No Wait No Block Count"),
4295 uint32("id_get_no_read_no_wait", "ID Get No Read No Wait Count"),
4296 uint32("id_get_no_read_no_wait_sema", "ID Get No Read No Wait Semaphored Count"),
4297 uint32("id_get_no_read_no_wait_buffer", "ID Get No Read No Wait No Buffer Count"),
4298 uint32("id_get_no_read_no_wait_alloc", "ID Get No Read No Wait Allocate Count"),
4299 uint32("id_get_no_read_no_wait_no_alloc", "ID Get No Read No Wait No Alloc Count"),
4300 uint32("id_get_no_read_no_wait_no_alloc_sema", "ID Get No Read No Wait No Alloc Semaphored Count"),
4301 uint32("id_get_no_read_no_wait_no_alloc_alloc", "ID Get No Read No Wait No Alloc Allocate Count"),
4302 ], "Extra Cache Counters Information")
4305 ReferenceIDStruct = struct("ref_id_struct", [
4308 NSAttributeStruct = struct("ns_attrib_struct", [
4311 DStreamActual = struct("d_stream_actual", [
4313 # Need to look into how to format this correctly
4315 DStreamLogical = struct("d_string_logical", [
4317 # Need to look into how to format this correctly
4319 LastUpdatedInSecondsStruct = struct("last_update_in_seconds_struct", [
4320 SecondsRelativeToTheYear2000,
4322 DOSNameStruct = struct("dos_name_struct", [
4325 FlushTimeStruct = struct("flush_time_struct", [
4328 ParentBaseIDStruct = struct("parent_base_id_struct", [
4331 MacFinderInfoStruct = struct("mac_finder_info_struct", [
4334 SiblingCountStruct = struct("sibling_count_struct", [
4337 EffectiveRightsStruct = struct("eff_rights_struct", [
4341 MacTimeStruct = struct("mac_time_struct", [
4347 LastAccessedTimeStruct = struct("last_access_time_struct", [
4353 FileAttributesStruct = struct("file_attributes_struct", [
4356 FileInfoStruct = struct("file_info_struct", [
4358 DirectoryEntryNumber,
4359 TotalBlocksToDecompress,
4360 CurrentBlockBeingDecompressed,
4361 ], "File Information")
4362 FileInstance = struct("file_instance", [
4369 endian(CreationDate, BE),
4370 endian(AccessDate, BE),
4371 endian(UpdateDate, BE),
4372 endian(UpdateTime, BE),
4374 FileNameStruct = struct("file_name_struct", [
4377 FileServerCounters = struct("file_server_counters", [
4378 uint16("too_many_hops", "Too Many Hops"),
4379 uint16("unknown_network", "Unknown Network"),
4380 uint16("no_space_for_service", "No Space For Service"),
4381 uint16("no_receive_buff", "No Receive Buffers"),
4382 uint16("not_my_network", "Not My Network"),
4383 uint32("netbios_progated", "NetBIOS Propagated Count"),
4384 uint32("ttl_pckts_srvcd", "Total Packets Serviced"),
4385 uint32("ttl_pckts_routed", "Total Packets Routed"),
4386 ], "File Server Counters")
4387 FileSystemInfo = struct("file_system_info", [
4388 uint32("fat_moved", "Number of times the OS has move the location of FAT"),
4389 uint32("fat_write_err", "Number of write errors in both original and mirrored copies of FAT"),
4390 uint32("someone_else_did_it_0", "Someone Else Did It Count 0"),
4391 uint32("someone_else_did_it_1", "Someone Else Did It Count 1"),
4392 uint32("someone_else_did_it_2", "Someone Else Did It Count 2"),
4393 uint32("i_ran_out_someone_else_did_it_0", "I Ran Out Someone Else Did It Count 0"),
4394 uint32("i_ran_out_someone_else_did_it_1", "I Ran Out Someone Else Did It Count 1"),
4395 uint32("i_ran_out_someone_else_did_it_2", "I Ran Out Someone Else Did It Count 2"),
4396 uint32("turbo_fat_build_failed", "Turbo FAT Build Failed Count"),
4397 uint32("extra_use_count_node_count", "Errors allocating a use count node for TTS"),
4398 uint32("extra_extra_use_count_node_count", "Errors allocating an additional use count node for TTS"),
4399 uint32("error_read_last_fat", "Error Reading Last FAT Count"),
4400 uint32("someone_else_using_this_file", "Someone Else Using This File Count"),
4401 ], "File System Information")
4402 GenericInfoDef = struct("generic_info_def", [
4403 fw_string("generic_label", "Label", 64),
4404 uint32("generic_ident_type", "Identification Type"),
4405 uint32("generic_ident_time", "Identification Time"),
4406 uint32("generic_media_type", "Media Type"),
4407 uint32("generic_cartridge_type", "Cartridge Type"),
4408 uint32("generic_unit_size", "Unit Size"),
4409 uint32("generic_block_size", "Block Size"),
4410 uint32("generic_capacity", "Capacity"),
4411 uint32("generic_pref_unit_size", "Preferred Unit Size"),
4412 fw_string("generic_name", "Name",64),
4413 uint32("generic_type", "Type"),
4414 uint32("generic_status", "Status"),
4415 uint32("generic_func_mask", "Function Mask"),
4416 uint32("generic_ctl_mask", "Control Mask"),
4417 uint32("generic_parent_count", "Parent Count"),
4418 uint32("generic_sib_count", "Sibling Count"),
4419 uint32("generic_child_count", "Child Count"),
4420 uint32("generic_spec_info_sz", "Specific Information Size"),
4421 uint32("generic_object_uniq_id", "Unique Object ID"),
4422 uint32("generic_media_slot", "Media Slot"),
4423 ], "Generic Information")
4424 HandleInfoLevel0 = struct("handle_info_level_0", [
4427 HandleInfoLevel1 = struct("handle_info_level_1", [
4430 HandleInfoLevel2 = struct("handle_info_level_2", [
4435 HandleInfoLevel3 = struct("handle_info_level_3", [
4439 HandleInfoLevel4 = struct("handle_info_level_4", [
4442 ParentDirectoryBase,
4443 ParentDOSDirectoryBase,
4445 HandleInfoLevel5 = struct("handle_info_level_5", [
4449 ParentDirectoryBase,
4450 ParentDOSDirectoryBase,
4452 IPXInformation = struct("ipx_information", [
4453 uint32("ipx_send_pkt", "IPX Send Packet Count"),
4454 uint16("ipx_malform_pkt", "IPX Malformed Packet Count"),
4455 uint32("ipx_get_ecb_req", "IPX Get ECB Request Count"),
4456 uint32("ipx_get_ecb_fail", "IPX Get ECB Fail Count"),
4457 uint32("ipx_aes_event", "IPX AES Event Count"),
4458 uint16("ipx_postponed_aes", "IPX Postponed AES Count"),
4459 uint16("ipx_max_conf_sock", "IPX Max Configured Socket Count"),
4460 uint16("ipx_max_open_sock", "IPX Max Open Socket Count"),
4461 uint16("ipx_open_sock_fail", "IPX Open Socket Fail Count"),
4462 uint32("ipx_listen_ecb", "IPX Listen ECB Count"),
4463 uint16("ipx_ecb_cancel_fail", "IPX ECB Cancel Fail Count"),
4464 uint16("ipx_get_lcl_targ_fail", "IPX Get Local Target Fail Count"),
4465 ], "IPX Information")
4466 JobEntryTime = struct("job_entry_time", [
4473 ], "Job Entry Time")
4474 JobStruct3x = struct("job_struct_3x", [
4479 ClientTaskNumberLong,
4481 TargetServerIDNumber,
4482 TargetExecutionTime,
4487 JobControlFlagsWord,
4491 ServerTaskNumberLong,
4495 ], "Job Information")
4496 JobStruct = struct("job_struct", [
4500 TargetServerIDNumber,
4501 TargetExecutionTime,
4514 ], "Job Information")
4515 JobStructNew = struct("job_struct_new", [
4520 ClientTaskNumberLong,
4522 TargetServerIDNumber,
4523 TargetExecutionTime,
4528 JobControlFlagsWord,
4532 ServerTaskNumberLong,
4534 ], "Job Information")
4535 KnownRoutes = struct("known_routes", [
4541 KnownServStruc = struct("known_server_struct", [
4546 LANConfigInfo = struct("lan_cfg_info", [
4547 LANdriverCFG_MajorVersion,
4548 LANdriverCFG_MinorVersion,
4549 LANdriverNodeAddress,
4552 LANdriverBoardNumber,
4553 LANdriverBoardInstance,
4554 LANdriverMaximumSize,
4555 LANdriverMaxRecvSize,
4559 LANdriverTransportTime,
4560 LANdriverSrcRouting,
4563 LANdriverMajorVersion,
4564 LANdriverMinorVersion,
4566 LANdriverSendRetries,
4568 LANdriverSharingFlags,
4570 LANdriverIOPortsAndRanges1,
4571 LANdriverIOPortsAndRanges2,
4572 LANdriverIOPortsAndRanges3,
4573 LANdriverIOPortsAndRanges4,
4574 LANdriverMemoryDecode0,
4575 LANdriverMemoryLength0,
4576 LANdriverMemoryDecode1,
4577 LANdriverMemoryLength1,
4578 LANdriverInterrupt1,
4579 LANdriverInterrupt2,
4582 LANdriverLogicalName,
4583 LANdriverIOReserved,
4585 ], "LAN Configuration Information")
4586 LastAccessStruct = struct("last_access_struct", [
4589 lockInfo = struct("lock_info_struct", [
4590 LogicalLockThreshold,
4591 PhysicalLockThreshold,
4594 ], "Lock Information")
4595 LockStruct = struct("lock_struct", [
4601 LoginTime = struct("login_time", [
4610 LogLockStruct = struct("log_lock_struct", [
4615 LogRecStruct = struct("log_rec_struct", [
4616 ConnectionNumberWord,
4619 ], "Logical Record Locks")
4620 LSLInformation = struct("lsl_information", [
4621 uint32("rx_buffers", "Receive Buffers"),
4622 uint32("rx_buffers_75", "Receive Buffers Warning Level"),
4623 uint32("rx_buffers_checked_out", "Receive Buffers Checked Out Count"),
4624 uint32("rx_buffer_size", "Receive Buffer Size"),
4625 uint32("max_phy_packet_size", "Maximum Physical Packet Size"),
4626 uint32("last_time_rx_buff_was_alloc", "Last Time a Receive Buffer was Allocated"),
4627 uint32("max_num_of_protocols", "Maximum Number of Protocols"),
4628 uint32("max_num_of_media_types", "Maximum Number of Media Types"),
4629 uint32("total_tx_packets", "Total Transmit Packets"),
4630 uint32("get_ecb_buf", "Get ECB Buffers"),
4631 uint32("get_ecb_fails", "Get ECB Failures"),
4632 uint32("aes_event_count", "AES Event Count"),
4633 uint32("post_poned_events", "Postponed Events"),
4634 uint32("ecb_cxl_fails", "ECB Cancel Failures"),
4635 uint32("valid_bfrs_reused", "Valid Buffers Reused"),
4636 uint32("enqueued_send_cnt", "Enqueued Send Count"),
4637 uint32("total_rx_packets", "Total Receive Packets"),
4638 uint32("unclaimed_packets", "Unclaimed Packets"),
4639 uint8("stat_table_major_version", "Statistics Table Major Version"),
4640 uint8("stat_table_minor_version", "Statistics Table Minor Version"),
4641 ], "LSL Information")
4642 MaximumSpaceStruct = struct("max_space_struct", [
4645 MemoryCounters = struct("memory_counters", [
4646 uint32("orig_num_cache_buff", "Original Number Of Cache Buffers"),
4647 uint32("curr_num_cache_buff", "Current Number Of Cache Buffers"),
4648 uint32("cache_dirty_block_thresh", "Cache Dirty Block Threshold"),
4649 uint32("wait_node", "Wait Node Count"),
4650 uint32("wait_node_alloc_fail", "Wait Node Alloc Failure Count"),
4651 uint32("move_cache_node", "Move Cache Node Count"),
4652 uint32("move_cache_node_from_avai", "Move Cache Node From Avail Count"),
4653 uint32("accel_cache_node_write", "Accelerate Cache Node Write Count"),
4654 uint32("rem_cache_node", "Remove Cache Node Count"),
4655 uint32("rem_cache_node_from_avail", "Remove Cache Node From Avail Count"),
4656 ], "Memory Counters")
4657 MLIDBoardInfo = struct("mlid_board_info", [
4658 uint32("protocol_board_num", "Protocol Board Number"),
4659 uint16("protocol_number", "Protocol Number"),
4660 bytes("protocol_id", "Protocol ID", 6),
4661 nstring8("protocol_name", "Protocol Name"),
4662 ], "MLID Board Information")
4663 ModifyInfoStruct = struct("modify_info_struct", [
4668 ], "Modification Information")
4669 nameInfo = struct("name_info_struct", [
4671 nstring8("login_name", "Login Name"),
4672 ], "Name Information")
4673 NCPNetworkAddress = struct("ncp_network_address_struct", [
4677 ], "Network Address")
4679 netAddr = struct("net_addr_struct", [
4681 nbytes32("transport_addr", "Transport Address"),
4682 ], "Network Address")
4684 NetWareInformationStruct = struct("netware_information_struct", [
4685 DataStreamSpaceAlloc, # (Data Stream Alloc Bit)
4686 AttributesDef32, # (Attributes Bit)
4688 DataStreamSize, # (Data Stream Size Bit)
4689 TotalDataStreamDiskSpaceAlloc, # (Total Stream Size Bit)
4690 NumberOfDataStreams,
4691 CreationTime, # (Creation Bit)
4694 ModifiedTime, # (Modify Bit)
4698 ArchivedTime, # (Archive Bit)
4701 InheritedRightsMask, # (Rights Bit)
4702 DirectoryEntryNumber, # (Directory Entry Bit)
4703 DOSDirectoryEntryNumber,
4705 EADataSize, # (Extended Attribute Bit)
4708 CreatorNameSpaceNumber, # (Name Space Bit)
4710 ], "NetWare Information")
4711 NLMInformation = struct("nlm_information", [
4712 IdentificationNumber,
4731 NumberOfReferencedPublics,
4732 ], "NLM Information")
4733 NSInfoStruct = struct("ns_info_struct", [
4737 NWAuditStatus = struct("nw_audit_status", [
4739 AuditFileVersionDate,
4740 val_string16("audit_enable_flag", "Auditing Enabled Flag", [
4741 [ 0x0000, "Auditing Disabled" ],
4742 [ 0x0100, "Auditing Enabled" ],
4745 uint32("audit_file_size", "Audit File Size"),
4746 uint32("modified_counter", "Modified Counter"),
4747 uint32("audit_file_max_size", "Audit File Maximum Size"),
4748 uint32("audit_file_size_threshold", "Audit File Size Threshold"),
4749 uint32("audit_record_count", "Audit Record Count"),
4750 uint32("auditing_flags", "Auditing Flags"),
4751 ], "NetWare Audit Status")
4752 ObjectSecurityStruct = struct("object_security_struct", [
4755 ObjectFlagsStruct = struct("object_flags_struct", [
4758 ObjectTypeStruct = struct("object_type_struct", [
4762 ObjectNameStruct = struct("object_name_struct", [
4765 ObjectIDStruct = struct("object_id_struct", [
4769 OpnFilesStruct = struct("opn_files_struct", [
4775 DOSParentDirectoryEntry,
4780 ], "Open Files Information")
4781 OwnerIDStruct = struct("owner_id_struct", [
4784 PacketBurstInformation = struct("packet_burst_information", [
4785 uint32("big_invalid_slot", "Big Invalid Slot Count"),
4786 uint32("big_forged_packet", "Big Forged Packet Count"),
4787 uint32("big_invalid_packet", "Big Invalid Packet Count"),
4788 uint32("big_still_transmitting", "Big Still Transmitting Count"),
4789 uint32("still_doing_the_last_req", "Still Doing The Last Request Count"),
4790 uint32("invalid_control_req", "Invalid Control Request Count"),
4791 uint32("control_invalid_message_number", "Control Invalid Message Number Count"),
4792 uint32("control_being_torn_down", "Control Being Torn Down Count"),
4793 uint32("big_repeat_the_file_read", "Big Repeat the File Read Count"),
4794 uint32("big_send_extra_cc_count", "Big Send Extra CC Count"),
4795 uint32("big_return_abort_mess", "Big Return Abort Message Count"),
4796 uint32("big_read_invalid_mess", "Big Read Invalid Message Number Count"),
4797 uint32("big_read_do_it_over", "Big Read Do It Over Count"),
4798 uint32("big_read_being_torn_down", "Big Read Being Torn Down Count"),
4799 uint32("previous_control_packet", "Previous Control Packet Count"),
4800 uint32("send_hold_off_message", "Send Hold Off Message Count"),
4801 uint32("big_read_no_data_avail", "Big Read No Data Available Count"),
4802 uint32("big_read_trying_to_read", "Big Read Trying To Read Too Much Count"),
4803 uint32("async_read_error", "Async Read Error Count"),
4804 uint32("big_read_phy_read_err", "Big Read Physical Read Error Count"),
4805 uint32("ctl_bad_ack_frag_list", "Control Bad ACK Fragment List Count"),
4806 uint32("ctl_no_data_read", "Control No Data Read Count"),
4807 uint32("write_dup_req", "Write Duplicate Request Count"),
4808 uint32("shouldnt_be_ack_here", "Shouldn't Be ACKing Here Count"),
4809 uint32("write_incon_packet_len", "Write Inconsistent Packet Lengths Count"),
4810 uint32("first_packet_isnt_a_write", "First Packet Isn't A Write Count"),
4811 uint32("write_trash_dup_req", "Write Trashed Duplicate Request Count"),
4812 uint32("big_write_inv_message_num", "Big Write Invalid Message Number Count"),
4813 uint32("big_write_being_torn_down", "Big Write Being Torn Down Count"),
4814 uint32("big_write_being_abort", "Big Write Being Aborted Count"),
4815 uint32("zero_ack_frag", "Zero ACK Fragment Count"),
4816 uint32("write_curr_trans", "Write Currently Transmitting Count"),
4817 uint32("try_to_write_too_much", "Trying To Write Too Much Count"),
4818 uint32("write_out_of_mem_for_ctl_nodes", "Write Out Of Memory For Control Nodes Count"),
4819 uint32("write_didnt_need_this_frag", "Write Didn't Need This Fragment Count"),
4820 uint32("write_too_many_buf_check", "Write Too Many Buffers Checked Out Count"),
4821 uint32("write_timeout", "Write Time Out Count"),
4822 uint32("write_got_an_ack0", "Write Got An ACK Count 0"),
4823 uint32("write_got_an_ack1", "Write Got An ACK Count 1"),
4824 uint32("poll_abort_conn", "Poller Aborted The Connnection Count"),
4825 uint32("may_had_out_of_order", "Maybe Had Out Of Order Writes Count"),
4826 uint32("had_an_out_of_order", "Had An Out Of Order Write Count"),
4827 uint32("moved_the_ack_bit_dn", "Moved The ACK Bit Down Count"),
4828 uint32("bumped_out_of_order", "Bumped Out Of Order Write Count"),
4829 uint32("poll_rem_old_out_of_order", "Poller Removed Old Out Of Order Count"),
4830 uint32("write_didnt_need_but_req_ack", "Write Didn't Need But Requested ACK Count"),
4831 uint32("write_trash_packet", "Write Trashed Packet Count"),
4832 uint32("too_many_ack_frag", "Too Many ACK Fragments Count"),
4833 uint32("saved_an_out_of_order_packet", "Saved An Out Of Order Packet Count"),
4834 uint32("conn_being_aborted", "Connection Being Aborted Count"),
4835 ], "Packet Burst Information")
4837 PadDSSpaceAllocate = struct("pad_ds_space_alloc", [
4840 PadAttributes = struct("pad_attributes", [
4843 PadDataStreamSize = struct("pad_data_stream_size", [
4846 PadTotalStreamSize = struct("pad_total_stream_size", [
4849 PadCreationInfo = struct("pad_creation_info", [
4852 PadModifyInfo = struct("pad_modify_info", [
4855 PadArchiveInfo = struct("pad_archive_info", [
4858 PadRightsInfo = struct("pad_rights_info", [
4861 PadDirEntry = struct("pad_dir_entry", [
4864 PadEAInfo = struct("pad_ea_info", [
4867 PadNSInfo = struct("pad_ns_info", [
4870 PhyLockStruct = struct("phy_lock_struct", [
4875 LogicalConnectionNumber,
4878 ], "Physical Locks")
4879 printInfo = struct("print_info_struct", [
4887 ], "Print Information")
4888 RightsInfoStruct = struct("rights_info_struct", [
4889 InheritedRightsMask,
4891 RoutersInfo = struct("routers_info", [
4892 bytes("node", "Node", 6),
4894 uint16("route_hops", "Hop Count"),
4895 uint16("route_time", "Route Time"),
4896 ], "Router Information")
4897 RTagStructure = struct("r_tag_struct", [
4903 ScanInfoFileName = struct("scan_info_file_name", [
4904 SalvageableFileEntryNumber,
4907 ScanInfoFileNoName = struct("scan_info_file_no_name", [
4908 SalvageableFileEntryNumber,
4910 Segments = struct("segments", [
4911 uint32("volume_segment_dev_num", "Volume Segment Device Number"),
4912 uint32("volume_segment_offset", "Volume Segment Offset"),
4913 uint32("volume_segment_size", "Volume Segment Size"),
4914 ], "Volume Segment Information")
4915 SemaInfoStruct = struct("sema_info_struct", [
4916 LogicalConnectionNumber,
4919 SemaStruct = struct("sema_struct", [
4924 ], "Semaphore Information")
4925 ServerInfo = struct("server_info", [
4926 uint32("reply_canceled", "Reply Canceled Count"),
4927 uint32("write_held_off", "Write Held Off Count"),
4928 uint32("write_held_off_with_dup", "Write Held Off With Duplicate Request"),
4929 uint32("invalid_req_type", "Invalid Request Type Count"),
4930 uint32("being_aborted", "Being Aborted Count"),
4931 uint32("already_doing_realloc", "Already Doing Re-Allocate Count"),
4932 uint32("dealloc_invalid_slot", "De-Allocate Invalid Slot Count"),
4933 uint32("dealloc_being_proc", "De-Allocate Being Processed Count"),
4934 uint32("dealloc_forged_packet", "De-Allocate Forged Packet Count"),
4935 uint32("dealloc_still_transmit", "De-Allocate Still Transmitting Count"),
4936 uint32("start_station_error", "Start Station Error Count"),
4937 uint32("invalid_slot", "Invalid Slot Count"),
4938 uint32("being_processed", "Being Processed Count"),
4939 uint32("forged_packet", "Forged Packet Count"),
4940 uint32("still_transmitting", "Still Transmitting Count"),
4941 uint32("reexecute_request", "Re-Execute Request Count"),
4942 uint32("invalid_sequence_number", "Invalid Sequence Number Count"),
4943 uint32("dup_is_being_sent", "Duplicate Is Being Sent Already Count"),
4944 uint32("sent_pos_ack", "Sent Positive Acknowledge Count"),
4945 uint32("sent_a_dup_reply", "Sent A Duplicate Reply Count"),
4946 uint32("no_mem_for_station", "No Memory For Station Control Count"),
4947 uint32("no_avail_conns", "No Available Connections Count"),
4948 uint32("realloc_slot", "Re-Allocate Slot Count"),
4949 uint32("realloc_slot_came_too_soon", "Re-Allocate Slot Came Too Soon Count"),
4950 ], "Server Information")
4951 ServersSrcInfo = struct("servers_src_info", [
4955 ], "Source Server Information")
4956 SpaceStruct = struct("space_struct", [
4960 ], "Space Information")
4961 SPXInformation = struct("spx_information", [
4962 uint16("spx_max_conn", "SPX Max Connections Count"),
4963 uint16("spx_max_used_conn", "SPX Max Used Connections"),
4964 uint16("spx_est_conn_req", "SPX Establish Connection Requests"),
4965 uint16("spx_est_conn_fail", "SPX Establish Connection Fail"),
4966 uint16("spx_listen_con_req", "SPX Listen Connect Request"),
4967 uint16("spx_listen_con_fail", "SPX Listen Connect Fail"),
4968 uint32("spx_send", "SPX Send Count"),
4969 uint32("spx_window_choke", "SPX Window Choke Count"),
4970 uint16("spx_bad_send", "SPX Bad Send Count"),
4971 uint16("spx_send_fail", "SPX Send Fail Count"),
4972 uint16("spx_abort_conn", "SPX Aborted Connection"),
4973 uint32("spx_listen_pkt", "SPX Listen Packet Count"),
4974 uint16("spx_bad_listen", "SPX Bad Listen Count"),
4975 uint32("spx_incoming_pkt", "SPX Incoming Packet Count"),
4976 uint16("spx_bad_in_pkt", "SPX Bad In Packet Count"),
4977 uint16("spx_supp_pkt", "SPX Suppressed Packet Count"),
4978 uint16("spx_no_ses_listen", "SPX No Session Listen ECB Count"),
4979 uint16("spx_watch_dog", "SPX Watch Dog Destination Session Count"),
4980 ], "SPX Information")
4981 StackInfo = struct("stack_info", [
4983 fw_string("stack_short_name", "Stack Short Name", 16),
4984 ], "Stack Information")
4985 statsInfo = struct("stats_info_struct", [
4990 theTimeStruct = struct("the_time_struct", [
4995 timeInfo = struct("time_info", [
5003 uint32("login_expiration_time", "Login Expiration Time"),
5005 TotalStreamSizeStruct = struct("total_stream_size_struct", [
5006 TotalDataStreamDiskSpaceAlloc,
5007 NumberOfDataStreams,
5009 TrendCounters = struct("trend_counters", [
5010 uint32("num_of_cache_checks", "Number Of Cache Checks"),
5011 uint32("num_of_cache_hits", "Number Of Cache Hits"),
5012 uint32("num_of_dirty_cache_checks", "Number Of Dirty Cache Checks"),
5013 uint32("num_of_cache_dirty_checks", "Number Of Cache Dirty Checks"),
5014 uint32("cache_used_while_check", "Cache Used While Checking"),
5015 uint32("wait_till_dirty_blcks_dec", "Wait Till Dirty Blocks Decrease Count"),
5016 uint32("alloc_blck_frm_avail", "Allocate Block From Available Count"),
5017 uint32("alloc_blck_frm_lru", "Allocate Block From LRU Count"),
5018 uint32("alloc_blck_already_wait", "Allocate Block Already Waiting"),
5019 uint32("lru_sit_time", "LRU Sitting Time"),
5020 uint32("num_of_cache_check_no_wait", "Number Of Cache Check No Wait"),
5021 uint32("num_of_cache_hits_no_wait", "Number Of Cache Hits No Wait"),
5022 ], "Trend Counters")
5023 TrusteeStruct = struct("trustee_struct", [
5025 AccessRightsMaskWord,
5027 UpdateDateStruct = struct("update_date_struct", [
5030 UpdateIDStruct = struct("update_id_struct", [
5033 UpdateTimeStruct = struct("update_time_struct", [
5036 UserInformation = struct("user_info", [
5040 ConnectionServiceType,
5053 TransactionTrackingFlag,
5054 LogicalLockThreshold,
5066 ], "User Information")
5067 VolInfoStructure = struct("vol_info_struct", [
5072 SectorsPerClusterLong,
5073 VolumeSizeInClusters,
5075 SubAllocFreeableClusters,
5076 FreeableLimboSectors,
5077 NonFreeableLimboSectors,
5078 NonFreeableAvailableSubAllocSectors,
5079 NotUsableSubAllocSectors,
5082 LimboDataStreamsCount,
5083 OldestDeletedFileAgeInTicks,
5084 CompressedDataStreamsCount,
5085 CompressedLimboDataStreamsCount,
5086 UnCompressableDataStreamsCount,
5087 PreCompressedSectors,
5092 ClustersUsedByDirectories,
5093 ClustersUsedByExtendedDirectories,
5094 TotalDirectoryEntries,
5095 UnUsedDirectoryEntries,
5096 TotalExtendedDirectoryExtants,
5097 UnUsedExtendedDirectoryExtants,
5098 ExtendedAttributesDefined,
5099 ExtendedAttributeExtantsUsed,
5100 DirectoryServicesObjectID,
5101 VolumeLastModifiedTime,
5102 VolumeLastModifiedDate,
5103 ], "Volume Information")
5104 VolInfo2Struct = struct("vol_info_struct_2", [
5105 uint32("volume_active_count", "Volume Active Count"),
5106 uint32("volume_use_count", "Volume Use Count"),
5107 uint32("mac_root_ids", "MAC Root IDs"),
5108 VolumeLastModifiedTime,
5109 VolumeLastModifiedDate,
5110 uint32("volume_reference_count", "Volume Reference Count"),
5111 uint32("compression_lower_limit", "Compression Lower Limit"),
5112 uint32("outstanding_ios", "Outstanding IOs"),
5113 uint32("outstanding_compression_ios", "Outstanding Compression IOs"),
5114 uint32("compression_ios_limit", "Compression IOs Limit"),
5115 ], "Extended Volume Information")
5116 VolumeStruct = struct("volume_struct", [
5122 ##############################################################################
5124 ##############################################################################
5125 def define_groups():
5126 groups['accounting'] = "Accounting"
5127 groups['afp'] = "AFP"
5128 groups['auditing'] = "Auditing"
5129 groups['bindery'] = "Bindery"
5130 groups['comm'] = "Communication"
5131 groups['connection'] = "Connection"
5132 groups['directory'] = "Directory"
5133 groups['extended'] = "Extended Attribute"
5134 groups['file'] = "File"
5135 groups['fileserver'] = "File Server"
5136 groups['message'] = "Message"
5137 groups['migration'] = "Data Migration"
5138 groups['misc'] = "Miscellaneous"
5139 groups['name'] = "Name Space"
5140 groups['nds'] = "NetWare Directory"
5141 groups['print'] = "Print"
5142 groups['queue'] = "Queue"
5143 groups['sync'] = "Synchronization"
5144 groups['tts'] = "Transaction Tracking"
5145 groups['qms'] = "Queue Management System (QMS)"
5146 groups['stats'] = "Server Statistics"
5147 groups['nmas'] = "Novell Modular Authentication Service"
5148 groups['sss'] = "SecretStore Services"
5149 groups['unknown'] = "Unknown"
5151 ##############################################################################
5153 ##############################################################################
5154 def define_errors():
5155 errors[0x0000] = "Ok"
5156 errors[0x0001] = "Transaction tracking is available"
5157 errors[0x0002] = "Ok. The data has been written"
5158 errors[0x0003] = "Calling Station is a Manager"
5160 errors[0x0100] = "One or more of the Connection Numbers in the send list are invalid"
5161 errors[0x0101] = "Invalid space limit"
5162 errors[0x0102] = "Insufficient disk space"
5163 errors[0x0103] = "Queue server cannot add jobs"
5164 errors[0x0104] = "Out of disk space"
5165 errors[0x0105] = "Semaphore overflow"
5166 errors[0x0106] = "Invalid Parameter"
5167 errors[0x0107] = "Invalid Number of Minutes to Delay"
5168 errors[0x0108] = "Invalid Start or Network Number"
5169 errors[0x0109] = "Cannot Obtain License"
5171 errors[0x0200] = "One or more clients in the send list are not logged in"
5172 errors[0x0201] = "Queue server cannot attach"
5174 errors[0x0300] = "One or more clients in the send list are not accepting messages"
5176 errors[0x0400] = "Client already has message"
5177 errors[0x0401] = "Queue server cannot service job"
5179 errors[0x7300] = "Revoke Handle Rights Not Found"
5180 errors[0x7900] = "Invalid Parameter in Request Packet"
5181 errors[0x7901] = "Nothing being Compressed"
5182 errors[0x7a00] = "Connection Already Temporary"
5183 errors[0x7b00] = "Connection Already Logged in"
5184 errors[0x7c00] = "Connection Not Authenticated"
5186 errors[0x7e00] = "NCP failed boundary check"
5187 errors[0x7e01] = "Invalid Length"
5189 errors[0x7f00] = "Lock Waiting"
5190 errors[0x8000] = "Lock fail"
5191 errors[0x8001] = "File in Use"
5193 errors[0x8100] = "A file handle could not be allocated by the file server"
5194 errors[0x8101] = "Out of File Handles"
5196 errors[0x8200] = "Unauthorized to open the file"
5197 errors[0x8300] = "Unable to read/write the volume. Possible bad sector on the file server"
5198 errors[0x8301] = "Hard I/O Error"
5200 errors[0x8400] = "Unauthorized to create the directory"
5201 errors[0x8401] = "Unauthorized to create the file"
5203 errors[0x8500] = "Unauthorized to delete the specified file"
5204 errors[0x8501] = "Unauthorized to overwrite an existing file in this directory"
5206 errors[0x8700] = "An unexpected character was encountered in the filename"
5207 errors[0x8701] = "Create Filename Error"
5209 errors[0x8800] = "Invalid file handle"
5210 errors[0x8900] = "Unauthorized to search this file/directory"
5211 errors[0x8a00] = "Unauthorized to delete this file/directory"
5212 errors[0x8b00] = "Unauthorized to rename a file in this directory"
5214 errors[0x8c00] = "No set privileges"
5215 errors[0x8c01] = "Unauthorized to modify a file in this directory"
5216 errors[0x8c02] = "Unauthorized to change the restriction on this volume"
5218 errors[0x8d00] = "Some of the affected files are in use by another client"
5219 errors[0x8d01] = "The affected file is in use"
5221 errors[0x8e00] = "All of the affected files are in use by another client"
5222 errors[0x8f00] = "Some of the affected files are read-only"
5224 errors[0x9000] = "An attempt to modify a read-only volume occurred"
5225 errors[0x9001] = "All of the affected files are read-only"
5226 errors[0x9002] = "Read Only Access to Volume"
5228 errors[0x9100] = "Some of the affected files already exist"
5229 errors[0x9101] = "Some Names Exist"
5231 errors[0x9200] = "Directory with the new name already exists"
5232 errors[0x9201] = "All of the affected files already exist"
5234 errors[0x9300] = "Unauthorized to read from this file"
5235 errors[0x9400] = "Unauthorized to write to this file"
5236 errors[0x9500] = "The affected file is detached"
5238 errors[0x9600] = "The file server has run out of memory to service this request"
5239 errors[0x9601] = "No alloc space for message"
5240 errors[0x9602] = "Server Out of Space"
5242 errors[0x9800] = "The affected volume is not mounted"
5243 errors[0x9801] = "The volume associated with Volume Number is not mounted"
5244 errors[0x9802] = "The resulting volume does not exist"
5245 errors[0x9803] = "The destination volume is not mounted"
5246 errors[0x9804] = "Disk Map Error"
5248 errors[0x9900] = "The file server has run out of directory space on the affected volume"
5249 errors[0x9a00] = "Invalid request to rename the affected file to another volume"
5251 errors[0x9b00] = "DirHandle is not associated with a valid directory path"
5252 errors[0x9b01] = "A resulting directory handle is not associated with a valid directory path"
5253 errors[0x9b02] = "The directory associated with DirHandle does not exist"
5254 errors[0x9b03] = "Bad directory handle"
5256 errors[0x9c00] = "The resulting path is not valid"
5257 errors[0x9c01] = "The resulting file path is not valid"
5258 errors[0x9c02] = "The resulting directory path is not valid"
5259 errors[0x9c03] = "Invalid path"
5261 errors[0x9d00] = "A directory handle was not available for allocation"
5263 errors[0x9e00] = "The name of the directory does not conform to a legal name for this name space"
5264 errors[0x9e01] = "The new directory name does not conform to a legal name for this name space"
5265 errors[0x9e02] = "Bad File Name"
5267 errors[0x9f00] = "The request attempted to delete a directory that is in use by another client"
5269 errors[0xa000] = "The request attempted to delete a directory that is not empty"
5270 errors[0xa100] = "An unrecoverable error occured on the affected directory"
5272 errors[0xa200] = "The request attempted to read from a file region that is physically locked"
5273 errors[0xa201] = "I/O Lock Error"
5275 errors[0xa400] = "Invalid directory rename attempted"
5276 errors[0xa500] = "Invalid open create mode"
5277 errors[0xa600] = "Auditor Access has been Removed"
5278 errors[0xa700] = "Error Auditing Version"
5280 errors[0xa800] = "Invalid Support Module ID"
5281 errors[0xa801] = "No Auditing Access Rights"
5282 errors[0xa802] = "No Access Rights"
5284 errors[0xbe00] = "Invalid Data Stream"
5285 errors[0xbf00] = "Requests for this name space are not valid on this volume"
5287 errors[0xc000] = "Unauthorized to retrieve accounting data"
5289 errors[0xc100] = "The ACCOUNT_BALANCE property does not exist"
5290 errors[0xc101] = "No Account Balance"
5292 errors[0xc200] = "The object has exceeded its credit limit"
5293 errors[0xc300] = "Too many holds have been placed against this account"
5294 errors[0xc400] = "The client account has been disabled"
5296 errors[0xc500] = "Access to the account has been denied because of intruder detection"
5297 errors[0xc501] = "Login lockout"
5298 errors[0xc502] = "Server Login Locked"
5300 errors[0xc600] = "The caller does not have operator priviliges"
5301 errors[0xc601] = "The client does not have operator priviliges"
5303 errors[0xc800] = "Missing EA Key"
5304 errors[0xc900] = "EA Not Found"
5305 errors[0xca00] = "Invalid EA Handle Type"
5306 errors[0xcb00] = "EA No Key No Data"
5307 errors[0xcc00] = "EA Number Mismatch"
5308 errors[0xcd00] = "Extent Number Out of Range"
5309 errors[0xce00] = "EA Bad Directory Number"
5310 errors[0xcf00] = "Invalid EA Handle"
5312 errors[0xd000] = "Queue error"
5313 errors[0xd001] = "EA Position Out of Range"
5315 errors[0xd100] = "The queue does not exist"
5316 errors[0xd101] = "EA Access Denied"
5318 errors[0xd200] = "A queue server is not associated with this queue"
5319 errors[0xd201] = "A queue server is not associated with the selected queue"
5320 errors[0xd202] = "No queue server"
5321 errors[0xd203] = "Data Page Odd Size"
5323 errors[0xd300] = "No queue rights"
5324 errors[0xd301] = "EA Volume Not Mounted"
5326 errors[0xd400] = "The queue is full and cannot accept another request"
5327 errors[0xd401] = "The queue associated with ObjectId is full and cannot accept another request"
5328 errors[0xd402] = "Bad Page Boundary"
5330 errors[0xd500] = "A job does not exist in this queue"
5331 errors[0xd501] = "No queue job"
5332 errors[0xd502] = "The job associated with JobNumber does not exist in this queue"
5333 errors[0xd503] = "Inspect Failure"
5334 errors[0xd504] = "Unknown NCP Extension Number"
5336 errors[0xd600] = "The file server does not allow unencrypted passwords"
5337 errors[0xd601] = "No job right"
5338 errors[0xd602] = "EA Already Claimed"
5340 errors[0xd700] = "Bad account"
5341 errors[0xd701] = "The old and new password strings are identical"
5342 errors[0xd702] = "The job is currently being serviced"
5343 errors[0xd703] = "The queue is currently servicing a job"
5344 errors[0xd704] = "Queue servicing"
5345 errors[0xd705] = "Odd Buffer Size"
5347 errors[0xd800] = "Queue not active"
5348 errors[0xd801] = "No Scorecards"
5350 errors[0xd900] = "The file server cannot accept another connection as it has reached its limit"
5351 errors[0xd901] = "The client is not security equivalent to one of the objects in the Q_SERVERS group property of the target queue"
5352 errors[0xd902] = "Station is not a server"
5353 errors[0xd903] = "Bad EDS Signature"
5354 errors[0xd904] = "Attempt to log in using an account which has limits on the number of concurrent connections and that number has been reached."
5356 errors[0xda00] = "Attempted to login to the file server during a restricted time period"
5357 errors[0xda01] = "Queue halted"
5358 errors[0xda02] = "EA Space Limit"
5360 errors[0xdb00] = "Attempted to login to the file server from an unauthorized workstation or network"
5361 errors[0xdb01] = "The queue cannot attach another queue server"
5362 errors[0xdb02] = "Maximum queue servers"
5363 errors[0xdb03] = "EA Key Corrupt"
5365 errors[0xdc00] = "Account Expired"
5366 errors[0xdc01] = "EA Key Limit"
5368 errors[0xdd00] = "Tally Corrupt"
5369 errors[0xde00] = "Attempted to login to the file server with an incorrect password"
5370 errors[0xdf00] = "Attempted to login to the file server with a password that has expired"
5372 errors[0xe000] = "No Login Connections Available"
5373 errors[0xe700] = "No disk track"
5374 errors[0xe800] = "Write to group"
5375 errors[0xe900] = "The object is already a member of the group property"
5377 errors[0xea00] = "No such member"
5378 errors[0xea01] = "The bindery object is not a member of the set"
5379 errors[0xea02] = "Non-existent member"
5381 errors[0xeb00] = "The property is not a set property"
5383 errors[0xec00] = "No such set"
5384 errors[0xec01] = "The set property does not exist"
5386 errors[0xed00] = "Property exists"
5387 errors[0xed01] = "The property already exists"
5388 errors[0xed02] = "An attempt was made to create a bindery object property that already exists"
5390 errors[0xee00] = "The object already exists"
5391 errors[0xee01] = "The bindery object already exists"
5393 errors[0xef00] = "Illegal name"
5394 errors[0xef01] = "Illegal characters in ObjectName field"
5395 errors[0xef02] = "Invalid name"
5397 errors[0xf000] = "A wildcard was detected in a field that does not support wildcards"
5398 errors[0xf001] = "An illegal wildcard was detected in ObjectName"
5400 errors[0xf100] = "The client does not have the rights to access this bindery object"
5401 errors[0xf101] = "Bindery security"
5402 errors[0xf102] = "Invalid bindery security"
5404 errors[0xf200] = "Unauthorized to read from this object"
5405 errors[0xf300] = "Unauthorized to rename this object"
5407 errors[0xf400] = "Unauthorized to delete this object"
5408 errors[0xf401] = "No object delete privileges"
5409 errors[0xf402] = "Unauthorized to delete this queue"
5411 errors[0xf500] = "Unauthorized to create this object"
5412 errors[0xf501] = "No object create"
5414 errors[0xf600] = "No property delete"
5415 errors[0xf601] = "Unauthorized to delete the property of this object"
5416 errors[0xf602] = "Unauthorized to delete this property"
5418 errors[0xf700] = "Unauthorized to create this property"
5419 errors[0xf701] = "No property create privilege"
5421 errors[0xf800] = "Unauthorized to write to this property"
5422 errors[0xf900] = "Unauthorized to read this property"
5423 errors[0xfa00] = "Temporary remap error"
5425 errors[0xfb00] = "No such property"
5426 errors[0xfb01] = "The file server does not support this request"
5427 errors[0xfb02] = "The specified property does not exist"
5428 errors[0xfb03] = "The PASSWORD property does not exist for this bindery object"
5429 errors[0xfb04] = "NDS NCP not available"
5430 errors[0xfb05] = "Bad Directory Handle"
5431 errors[0xfb06] = "Unknown Request"
5432 errors[0xfb07] = "Invalid Subfunction Request"
5433 errors[0xfb08] = "Attempt to use an invalid parameter (drive number, path, or flag value) during a set drive path call"
5434 errors[0xfb09] = "NMAS not running on this server, NCP NOT Supported"
5435 errors[0xfb0a] = "Station Not Logged In"
5436 errors[0xfb0b] = "Secret Store not running on this server, NCP Not supported"
5438 errors[0xfc00] = "The message queue cannot accept another message"
5439 errors[0xfc01] = "The trustee associated with ObjectId does not exist"
5440 errors[0xfc02] = "The specified bindery object does not exist"
5441 errors[0xfc03] = "The bindery object associated with ObjectID does not exist"
5442 errors[0xfc04] = "A bindery object does not exist that matches"
5443 errors[0xfc05] = "The specified queue does not exist"
5444 errors[0xfc06] = "No such object"
5445 errors[0xfc07] = "The queue associated with ObjectID does not exist"
5447 errors[0xfd00] = "Bad station number"
5448 errors[0xfd01] = "The connection associated with ConnectionNumber is not active"
5449 errors[0xfd02] = "Lock collision"
5450 errors[0xfd03] = "Transaction tracking is disabled"
5452 errors[0xfe00] = "I/O failure"
5453 errors[0xfe01] = "The files containing the bindery on the file server are locked"
5454 errors[0xfe02] = "A file with the specified name already exists in this directory"
5455 errors[0xfe03] = "No more restrictions were found"
5456 errors[0xfe04] = "The file server was unable to lock the file within the specified time limit"
5457 errors[0xfe05] = "The file server was unable to lock all files within the specified time limit"
5458 errors[0xfe06] = "The bindery object associated with ObjectID is not a valid trustee"
5459 errors[0xfe07] = "Directory locked"
5460 errors[0xfe08] = "Bindery locked"
5461 errors[0xfe09] = "Invalid semaphore name length"
5462 errors[0xfe0a] = "The file server was unable to complete the operation within the specified time limit"
5463 errors[0xfe0b] = "Transaction restart"
5464 errors[0xfe0c] = "Bad packet"
5465 errors[0xfe0d] = "Timeout"
5466 errors[0xfe0e] = "User Not Found"
5467 errors[0xfe0f] = "Trustee Not Found"
5469 errors[0xff00] = "Failure"
5470 errors[0xff01] = "Lock error"
5471 errors[0xff02] = "File not found"
5472 errors[0xff03] = "The file not found or cannot be unlocked"
5473 errors[0xff04] = "Record not found"
5474 errors[0xff05] = "The logical record was not found"
5475 errors[0xff06] = "The printer associated with Printer Number does not exist"
5476 errors[0xff07] = "No such printer"
5477 errors[0xff08] = "Unable to complete the request"
5478 errors[0xff09] = "Unauthorized to change privileges of this trustee"
5479 errors[0xff0a] = "No files matching the search criteria were found"
5480 errors[0xff0b] = "A file matching the search criteria was not found"
5481 errors[0xff0c] = "Verification failed"
5482 errors[0xff0d] = "Object associated with ObjectID is not a manager"
5483 errors[0xff0e] = "Invalid initial semaphore value"
5484 errors[0xff0f] = "The semaphore handle is not valid"
5485 errors[0xff10] = "SemaphoreHandle is not associated with a valid sempahore"
5486 errors[0xff11] = "Invalid semaphore handle"
5487 errors[0xff12] = "Transaction tracking is not available"
5488 errors[0xff13] = "The transaction has not yet been written to disk"
5489 errors[0xff14] = "Directory already exists"
5490 errors[0xff15] = "The file already exists and the deletion flag was not set"
5491 errors[0xff16] = "No matching files or directories were found"
5492 errors[0xff17] = "A file or directory matching the search criteria was not found"
5493 errors[0xff18] = "The file already exists"
5494 errors[0xff19] = "Failure, No files found"
5495 errors[0xff1a] = "Unlock Error"
5496 errors[0xff1b] = "I/O Bound Error"
5497 errors[0xff1c] = "Not Accepting Messages"
5498 errors[0xff1d] = "No More Salvageable Files in Directory"
5499 errors[0xff1e] = "Calling Station is Not a Manager"
5500 errors[0xff1f] = "Bindery Failure"
5501 errors[0xff20] = "NCP Extension Not Found"
5503 ##############################################################################
5505 ##############################################################################
5506 def ExamineVars(vars, structs_hash, vars_hash):
5508 if isinstance(var, struct):
5509 structs_hash[var.HFName()] = var
5510 struct_vars = var.Variables()
5511 ExamineVars(struct_vars, structs_hash, vars_hash)
5513 vars_hash[repr(var)] = var
5514 if isinstance(var, bitfield):
5515 sub_vars = var.SubVariables()
5516 ExamineVars(sub_vars, structs_hash, vars_hash)
5523 print " * Generated automatically from %s" % (sys.argv[0])
5524 print " * Do not edit this file manually, as all changes will be lost."
5529 * Portions Copyright (c) Gilbert Ramirez 2000-2002
5530 * Portions Copyright (c) Novell, Inc. 2000-2003
5532 * This program is free software; you can redistribute it and/or
5533 * modify it under the terms of the GNU General Public License
5534 * as published by the Free Software Foundation; either version 2
5535 * of the License, or (at your option) any later version.
5537 * This program is distributed in the hope that it will be useful,
5538 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5539 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5540 * GNU General Public License for more details.
5542 * You should have received a copy of the GNU General Public License
5543 * along with this program; if not, write to the Free Software
5544 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
5547 #ifdef HAVE_CONFIG_H
5548 # include "config.h"
5553 #include <epan/packet.h>
5554 #include <epan/conversation.h>
5555 #include "ptvcursor.h"
5556 #include "packet-ncp-int.h"
5557 #include <epan/strutil.h>
5558 #include "reassemble.h"
5560 /* Function declarations for functions used in proto_register_ncp2222() */
5561 static void ncp_init_protocol(void);
5562 static void ncp_postseq_cleanup(void);
5564 /* Endianness macros */
5567 #define NO_ENDIANNESS 0
5569 #define NO_LENGTH -1
5571 /* We use this int-pointer as a special flag in ptvc_record's */
5572 static int ptvc_struct_int_storage;
5573 #define PTVC_STRUCT (&ptvc_struct_int_storage)
5575 /* Values used in the count-variable ("var"/"repeat") logic. */"""
5578 if global_highest_var > -1:
5579 print "#define NUM_REPEAT_VARS\t%d" % (global_highest_var + 1)
5580 print "guint repeat_vars[NUM_REPEAT_VARS];",
5582 print "#define NUM_REPEAT_VARS\t0"
5583 print "guint *repeat_vars = NULL;",
5586 #define NO_VAR NUM_REPEAT_VARS
5587 #define NO_REPEAT NUM_REPEAT_VARS
5589 #define REQ_COND_SIZE_CONSTANT 0
5590 #define REQ_COND_SIZE_VARIABLE 1
5591 #define NO_REQ_COND_SIZE 0
5594 #define NTREE 0x00020000
5595 #define NDEPTH 0x00000002
5596 #define NREV 0x00000004
5597 #define NFLAGS 0x00000008
5600 static int hf_ncp_func = -1;
5601 static int hf_ncp_length = -1;
5602 static int hf_ncp_subfunc = -1;
5603 static int hf_ncp_fragment_handle = -1;
5604 static int hf_ncp_completion_code = -1;
5605 static int hf_ncp_connection_status = -1;
5606 static int hf_ncp_req_frame_num = -1;
5607 static int hf_ncp_req_frame_time = -1;
5608 static int hf_ncp_fragment_size = -1;
5609 static int hf_ncp_message_size = -1;
5610 static int hf_ncp_nds_flag = -1;
5611 static int hf_ncp_nds_verb = -1;
5612 static int hf_ping_version = -1;
5613 static int hf_nds_version = -1;
5614 static int hf_nds_flags = -1;
5615 static int hf_nds_reply_depth = -1;
5616 static int hf_nds_reply_rev = -1;
5617 static int hf_nds_reply_flags = -1;
5618 static int hf_nds_p1type = -1;
5619 static int hf_nds_uint32value = -1;
5620 static int hf_nds_bit1 = -1;
5621 static int hf_nds_bit2 = -1;
5622 static int hf_nds_bit3 = -1;
5623 static int hf_nds_bit4 = -1;
5624 static int hf_nds_bit5 = -1;
5625 static int hf_nds_bit6 = -1;
5626 static int hf_nds_bit7 = -1;
5627 static int hf_nds_bit8 = -1;
5628 static int hf_nds_bit9 = -1;
5629 static int hf_nds_bit10 = -1;
5630 static int hf_nds_bit11 = -1;
5631 static int hf_nds_bit12 = -1;
5632 static int hf_nds_bit13 = -1;
5633 static int hf_nds_bit14 = -1;
5634 static int hf_nds_bit15 = -1;
5635 static int hf_nds_bit16 = -1;
5636 static int hf_bit1outflags = -1;
5637 static int hf_bit2outflags = -1;
5638 static int hf_bit3outflags = -1;
5639 static int hf_bit4outflags = -1;
5640 static int hf_bit5outflags = -1;
5641 static int hf_bit6outflags = -1;
5642 static int hf_bit7outflags = -1;
5643 static int hf_bit8outflags = -1;
5644 static int hf_bit9outflags = -1;
5645 static int hf_bit10outflags = -1;
5646 static int hf_bit11outflags = -1;
5647 static int hf_bit12outflags = -1;
5648 static int hf_bit13outflags = -1;
5649 static int hf_bit14outflags = -1;
5650 static int hf_bit15outflags = -1;
5651 static int hf_bit16outflags = -1;
5652 static int hf_bit1nflags = -1;
5653 static int hf_bit2nflags = -1;
5654 static int hf_bit3nflags = -1;
5655 static int hf_bit4nflags = -1;
5656 static int hf_bit5nflags = -1;
5657 static int hf_bit6nflags = -1;
5658 static int hf_bit7nflags = -1;
5659 static int hf_bit8nflags = -1;
5660 static int hf_bit9nflags = -1;
5661 static int hf_bit10nflags = -1;
5662 static int hf_bit11nflags = -1;
5663 static int hf_bit12nflags = -1;
5664 static int hf_bit13nflags = -1;
5665 static int hf_bit14nflags = -1;
5666 static int hf_bit15nflags = -1;
5667 static int hf_bit16nflags = -1;
5668 static int hf_bit1rflags = -1;
5669 static int hf_bit2rflags = -1;
5670 static int hf_bit3rflags = -1;
5671 static int hf_bit4rflags = -1;
5672 static int hf_bit5rflags = -1;
5673 static int hf_bit6rflags = -1;
5674 static int hf_bit7rflags = -1;
5675 static int hf_bit8rflags = -1;
5676 static int hf_bit9rflags = -1;
5677 static int hf_bit10rflags = -1;
5678 static int hf_bit11rflags = -1;
5679 static int hf_bit12rflags = -1;
5680 static int hf_bit13rflags = -1;
5681 static int hf_bit14rflags = -1;
5682 static int hf_bit15rflags = -1;
5683 static int hf_bit16rflags = -1;
5684 static int hf_bit1cflags = -1;
5685 static int hf_bit2cflags = -1;
5686 static int hf_bit3cflags = -1;
5687 static int hf_bit4cflags = -1;
5688 static int hf_bit5cflags = -1;
5689 static int hf_bit6cflags = -1;
5690 static int hf_bit7cflags = -1;
5691 static int hf_bit8cflags = -1;
5692 static int hf_bit9cflags = -1;
5693 static int hf_bit10cflags = -1;
5694 static int hf_bit11cflags = -1;
5695 static int hf_bit12cflags = -1;
5696 static int hf_bit13cflags = -1;
5697 static int hf_bit14cflags = -1;
5698 static int hf_bit15cflags = -1;
5699 static int hf_bit16cflags = -1;
5700 static int hf_bit1acflags = -1;
5701 static int hf_bit2acflags = -1;
5702 static int hf_bit3acflags = -1;
5703 static int hf_bit4acflags = -1;
5704 static int hf_bit5acflags = -1;
5705 static int hf_bit6acflags = -1;
5706 static int hf_bit7acflags = -1;
5707 static int hf_bit8acflags = -1;
5708 static int hf_bit9acflags = -1;
5709 static int hf_bit10acflags = -1;
5710 static int hf_bit11acflags = -1;
5711 static int hf_bit12acflags = -1;
5712 static int hf_bit13acflags = -1;
5713 static int hf_bit14acflags = -1;
5714 static int hf_bit15acflags = -1;
5715 static int hf_bit16acflags = -1;
5716 static int hf_bit1vflags = -1;
5717 static int hf_bit2vflags = -1;
5718 static int hf_bit3vflags = -1;
5719 static int hf_bit4vflags = -1;
5720 static int hf_bit5vflags = -1;
5721 static int hf_bit6vflags = -1;
5722 static int hf_bit7vflags = -1;
5723 static int hf_bit8vflags = -1;
5724 static int hf_bit9vflags = -1;
5725 static int hf_bit10vflags = -1;
5726 static int hf_bit11vflags = -1;
5727 static int hf_bit12vflags = -1;
5728 static int hf_bit13vflags = -1;
5729 static int hf_bit14vflags = -1;
5730 static int hf_bit15vflags = -1;
5731 static int hf_bit16vflags = -1;
5732 static int hf_bit1eflags = -1;
5733 static int hf_bit2eflags = -1;
5734 static int hf_bit3eflags = -1;
5735 static int hf_bit4eflags = -1;
5736 static int hf_bit5eflags = -1;
5737 static int hf_bit6eflags = -1;
5738 static int hf_bit7eflags = -1;
5739 static int hf_bit8eflags = -1;
5740 static int hf_bit9eflags = -1;
5741 static int hf_bit10eflags = -1;
5742 static int hf_bit11eflags = -1;
5743 static int hf_bit12eflags = -1;
5744 static int hf_bit13eflags = -1;
5745 static int hf_bit14eflags = -1;
5746 static int hf_bit15eflags = -1;
5747 static int hf_bit16eflags = -1;
5748 static int hf_bit1infoflagsl = -1;
5749 static int hf_bit2infoflagsl = -1;
5750 static int hf_bit3infoflagsl = -1;
5751 static int hf_bit4infoflagsl = -1;
5752 static int hf_bit5infoflagsl = -1;
5753 static int hf_bit6infoflagsl = -1;
5754 static int hf_bit7infoflagsl = -1;
5755 static int hf_bit8infoflagsl = -1;
5756 static int hf_bit9infoflagsl = -1;
5757 static int hf_bit10infoflagsl = -1;
5758 static int hf_bit11infoflagsl = -1;
5759 static int hf_bit12infoflagsl = -1;
5760 static int hf_bit13infoflagsl = -1;
5761 static int hf_bit14infoflagsl = -1;
5762 static int hf_bit15infoflagsl = -1;
5763 static int hf_bit16infoflagsl = -1;
5764 static int hf_bit1infoflagsh = -1;
5765 static int hf_bit2infoflagsh = -1;
5766 static int hf_bit3infoflagsh = -1;
5767 static int hf_bit4infoflagsh = -1;
5768 static int hf_bit5infoflagsh = -1;
5769 static int hf_bit6infoflagsh = -1;
5770 static int hf_bit7infoflagsh = -1;
5771 static int hf_bit8infoflagsh = -1;
5772 static int hf_bit9infoflagsh = -1;
5773 static int hf_bit10infoflagsh = -1;
5774 static int hf_bit11infoflagsh = -1;
5775 static int hf_bit12infoflagsh = -1;
5776 static int hf_bit13infoflagsh = -1;
5777 static int hf_bit14infoflagsh = -1;
5778 static int hf_bit15infoflagsh = -1;
5779 static int hf_bit16infoflagsh = -1;
5780 static int hf_bit1lflags = -1;
5781 static int hf_bit2lflags = -1;
5782 static int hf_bit3lflags = -1;
5783 static int hf_bit4lflags = -1;
5784 static int hf_bit5lflags = -1;
5785 static int hf_bit6lflags = -1;
5786 static int hf_bit7lflags = -1;
5787 static int hf_bit8lflags = -1;
5788 static int hf_bit9lflags = -1;
5789 static int hf_bit10lflags = -1;
5790 static int hf_bit11lflags = -1;
5791 static int hf_bit12lflags = -1;
5792 static int hf_bit13lflags = -1;
5793 static int hf_bit14lflags = -1;
5794 static int hf_bit15lflags = -1;
5795 static int hf_bit16lflags = -1;
5796 static int hf_bit1l1flagsl = -1;
5797 static int hf_bit2l1flagsl = -1;
5798 static int hf_bit3l1flagsl = -1;
5799 static int hf_bit4l1flagsl = -1;
5800 static int hf_bit5l1flagsl = -1;
5801 static int hf_bit6l1flagsl = -1;
5802 static int hf_bit7l1flagsl = -1;
5803 static int hf_bit8l1flagsl = -1;
5804 static int hf_bit9l1flagsl = -1;
5805 static int hf_bit10l1flagsl = -1;
5806 static int hf_bit11l1flagsl = -1;
5807 static int hf_bit12l1flagsl = -1;
5808 static int hf_bit13l1flagsl = -1;
5809 static int hf_bit14l1flagsl = -1;
5810 static int hf_bit15l1flagsl = -1;
5811 static int hf_bit16l1flagsl = -1;
5812 static int hf_bit1l1flagsh = -1;
5813 static int hf_bit2l1flagsh = -1;
5814 static int hf_bit3l1flagsh = -1;
5815 static int hf_bit4l1flagsh = -1;
5816 static int hf_bit5l1flagsh = -1;
5817 static int hf_bit6l1flagsh = -1;
5818 static int hf_bit7l1flagsh = -1;
5819 static int hf_bit8l1flagsh = -1;
5820 static int hf_bit9l1flagsh = -1;
5821 static int hf_bit10l1flagsh = -1;
5822 static int hf_bit11l1flagsh = -1;
5823 static int hf_bit12l1flagsh = -1;
5824 static int hf_bit13l1flagsh = -1;
5825 static int hf_bit14l1flagsh = -1;
5826 static int hf_bit15l1flagsh = -1;
5827 static int hf_bit16l1flagsh = -1;
5828 static int hf_nds_tree_name = -1;
5829 static int hf_nds_reply_error = -1;
5830 static int hf_nds_net = -1;
5831 static int hf_nds_node = -1;
5832 static int hf_nds_socket = -1;
5833 static int hf_add_ref_ip = -1;
5834 static int hf_add_ref_udp = -1;
5835 static int hf_add_ref_tcp = -1;
5836 static int hf_referral_record = -1;
5837 static int hf_referral_addcount = -1;
5838 static int hf_nds_port = -1;
5839 static int hf_mv_string = -1;
5840 static int hf_nds_syntax = -1;
5841 static int hf_value_string = -1;
5842 static int hf_nds_buffer_size = -1;
5843 static int hf_nds_ver = -1;
5844 static int hf_nds_nflags = -1;
5845 static int hf_nds_scope = -1;
5846 static int hf_nds_name = -1;
5847 static int hf_nds_comm_trans = -1;
5848 static int hf_nds_tree_trans = -1;
5849 static int hf_nds_iteration = -1;
5850 static int hf_nds_eid = -1;
5851 static int hf_nds_info_type = -1;
5852 static int hf_nds_all_attr = -1;
5853 static int hf_nds_req_flags = -1;
5854 static int hf_nds_attr = -1;
5855 static int hf_nds_crc = -1;
5856 static int hf_nds_referrals = -1;
5857 static int hf_nds_result_flags = -1;
5858 static int hf_nds_tag_string = -1;
5859 static int hf_value_bytes = -1;
5860 static int hf_replica_type = -1;
5861 static int hf_replica_state = -1;
5862 static int hf_replica_number = -1;
5863 static int hf_min_nds_ver = -1;
5864 static int hf_nds_ver_include = -1;
5865 static int hf_nds_ver_exclude = -1;
5866 static int hf_nds_es = -1;
5867 static int hf_es_type = -1;
5868 static int hf_delim_string = -1;
5869 static int hf_rdn_string = -1;
5870 static int hf_nds_revent = -1;
5871 static int hf_nds_rnum = -1;
5872 static int hf_nds_name_type = -1;
5873 static int hf_nds_rflags = -1;
5874 static int hf_nds_eflags = -1;
5875 static int hf_nds_depth = -1;
5876 static int hf_nds_class_def_type = -1;
5877 static int hf_nds_classes = -1;
5878 static int hf_nds_return_all_classes = -1;
5879 static int hf_nds_stream_flags = -1;
5880 static int hf_nds_stream_name = -1;
5881 static int hf_nds_file_handle = -1;
5882 static int hf_nds_file_size = -1;
5883 static int hf_nds_dn_output_type = -1;
5884 static int hf_nds_nested_output_type = -1;
5885 static int hf_nds_output_delimiter = -1;
5886 static int hf_nds_output_entry_specifier = -1;
5887 static int hf_es_value = -1;
5888 static int hf_es_rdn_count = -1;
5889 static int hf_nds_replica_num = -1;
5890 static int hf_nds_event_num = -1;
5891 static int hf_es_seconds = -1;
5892 static int hf_nds_compare_results = -1;
5893 static int hf_nds_parent = -1;
5894 static int hf_nds_name_filter = -1;
5895 static int hf_nds_class_filter = -1;
5896 static int hf_nds_time_filter = -1;
5897 static int hf_nds_partition_root_id = -1;
5898 static int hf_nds_replicas = -1;
5899 static int hf_nds_purge = -1;
5900 static int hf_nds_local_partition = -1;
5901 static int hf_partition_busy = -1;
5902 static int hf_nds_number_of_changes = -1;
5903 static int hf_sub_count = -1;
5904 static int hf_nds_revision = -1;
5905 static int hf_nds_base_class = -1;
5906 static int hf_nds_relative_dn = -1;
5907 static int hf_nds_root_dn = -1;
5908 static int hf_nds_parent_dn = -1;
5909 static int hf_deref_base = -1;
5910 static int hf_nds_entry_info = -1;
5911 static int hf_nds_base = -1;
5912 static int hf_nds_privileges = -1;
5913 static int hf_nds_vflags = -1;
5914 static int hf_nds_value_len = -1;
5915 static int hf_nds_cflags = -1;
5916 static int hf_nds_acflags = -1;
5917 static int hf_nds_asn1 = -1;
5918 static int hf_nds_upper = -1;
5919 static int hf_nds_lower = -1;
5920 static int hf_nds_trustee_dn = -1;
5921 static int hf_nds_attribute_dn = -1;
5922 static int hf_nds_acl_add = -1;
5923 static int hf_nds_acl_del = -1;
5924 static int hf_nds_att_add = -1;
5925 static int hf_nds_att_del = -1;
5926 static int hf_nds_keep = -1;
5927 static int hf_nds_new_rdn = -1;
5928 static int hf_nds_time_delay = -1;
5929 static int hf_nds_root_name = -1;
5930 static int hf_nds_new_part_id = -1;
5931 static int hf_nds_child_part_id = -1;
5932 static int hf_nds_master_part_id = -1;
5933 static int hf_nds_target_name = -1;
5934 static int hf_nds_super = -1;
5935 static int hf_bit1pingflags2 = -1;
5936 static int hf_bit2pingflags2 = -1;
5937 static int hf_bit3pingflags2 = -1;
5938 static int hf_bit4pingflags2 = -1;
5939 static int hf_bit5pingflags2 = -1;
5940 static int hf_bit6pingflags2 = -1;
5941 static int hf_bit7pingflags2 = -1;
5942 static int hf_bit8pingflags2 = -1;
5943 static int hf_bit9pingflags2 = -1;
5944 static int hf_bit10pingflags2 = -1;
5945 static int hf_bit11pingflags2 = -1;
5946 static int hf_bit12pingflags2 = -1;
5947 static int hf_bit13pingflags2 = -1;
5948 static int hf_bit14pingflags2 = -1;
5949 static int hf_bit15pingflags2 = -1;
5950 static int hf_bit16pingflags2 = -1;
5951 static int hf_bit1pingflags1 = -1;
5952 static int hf_bit2pingflags1 = -1;
5953 static int hf_bit3pingflags1 = -1;
5954 static int hf_bit4pingflags1 = -1;
5955 static int hf_bit5pingflags1 = -1;
5956 static int hf_bit6pingflags1 = -1;
5957 static int hf_bit7pingflags1 = -1;
5958 static int hf_bit8pingflags1 = -1;
5959 static int hf_bit9pingflags1 = -1;
5960 static int hf_bit10pingflags1 = -1;
5961 static int hf_bit11pingflags1 = -1;
5962 static int hf_bit12pingflags1 = -1;
5963 static int hf_bit13pingflags1 = -1;
5964 static int hf_bit14pingflags1 = -1;
5965 static int hf_bit15pingflags1 = -1;
5966 static int hf_bit16pingflags1 = -1;
5967 static int hf_bit1pingpflags1 = -1;
5968 static int hf_bit2pingpflags1 = -1;
5969 static int hf_bit3pingpflags1 = -1;
5970 static int hf_bit4pingpflags1 = -1;
5971 static int hf_bit5pingpflags1 = -1;
5972 static int hf_bit6pingpflags1 = -1;
5973 static int hf_bit7pingpflags1 = -1;
5974 static int hf_bit8pingpflags1 = -1;
5975 static int hf_bit9pingpflags1 = -1;
5976 static int hf_bit10pingpflags1 = -1;
5977 static int hf_bit11pingpflags1 = -1;
5978 static int hf_bit12pingpflags1 = -1;
5979 static int hf_bit13pingpflags1 = -1;
5980 static int hf_bit14pingpflags1 = -1;
5981 static int hf_bit15pingpflags1 = -1;
5982 static int hf_bit16pingpflags1 = -1;
5983 static int hf_bit1pingvflags1 = -1;
5984 static int hf_bit2pingvflags1 = -1;
5985 static int hf_bit3pingvflags1 = -1;
5986 static int hf_bit4pingvflags1 = -1;
5987 static int hf_bit5pingvflags1 = -1;
5988 static int hf_bit6pingvflags1 = -1;
5989 static int hf_bit7pingvflags1 = -1;
5990 static int hf_bit8pingvflags1 = -1;
5991 static int hf_bit9pingvflags1 = -1;
5992 static int hf_bit10pingvflags1 = -1;
5993 static int hf_bit11pingvflags1 = -1;
5994 static int hf_bit12pingvflags1 = -1;
5995 static int hf_bit13pingvflags1 = -1;
5996 static int hf_bit14pingvflags1 = -1;
5997 static int hf_bit15pingvflags1 = -1;
5998 static int hf_bit16pingvflags1 = -1;
5999 static int hf_nds_letter_ver = -1;
6000 static int hf_nds_os_ver = -1;
6001 static int hf_nds_lic_flags = -1;
6002 static int hf_nds_ds_time = -1;
6003 static int hf_nds_ping_version = -1;
6004 static int hf_nds_search_scope = -1;
6005 static int hf_nds_num_objects = -1;
6006 static int hf_bit1siflags = -1;
6007 static int hf_bit2siflags = -1;
6008 static int hf_bit3siflags = -1;
6009 static int hf_bit4siflags = -1;
6010 static int hf_bit5siflags = -1;
6011 static int hf_bit6siflags = -1;
6012 static int hf_bit7siflags = -1;
6013 static int hf_bit8siflags = -1;
6014 static int hf_bit9siflags = -1;
6015 static int hf_bit10siflags = -1;
6016 static int hf_bit11siflags = -1;
6017 static int hf_bit12siflags = -1;
6018 static int hf_bit13siflags = -1;
6019 static int hf_bit14siflags = -1;
6020 static int hf_bit15siflags = -1;
6021 static int hf_bit16siflags = -1;
6022 static int hf_nds_segments = -1;
6023 static int hf_nds_segment = -1;
6024 static int hf_nds_segment_overlap = -1;
6025 static int hf_nds_segment_overlap_conflict = -1;
6026 static int hf_nds_segment_multiple_tails = -1;
6027 static int hf_nds_segment_too_long_segment = -1;
6028 static int hf_nds_segment_error = -1;
6033 # Look at all packet types in the packets collection, and cull information
6035 errors_used_list = []
6036 errors_used_hash = {}
6037 groups_used_list = []
6038 groups_used_hash = {}
6039 variables_used_hash = {}
6040 structs_used_hash = {}
6043 # Determine which error codes are used.
6044 codes = pkt.CompletionCodes()
6045 for code in codes.Records():
6046 if not errors_used_hash.has_key(code):
6047 errors_used_hash[code] = len(errors_used_list)
6048 errors_used_list.append(code)
6050 # Determine which groups are used.
6052 if not groups_used_hash.has_key(group):
6053 groups_used_hash[group] = len(groups_used_list)
6054 groups_used_list.append(group)
6056 # Determine which variables are used.
6057 vars = pkt.Variables()
6058 ExamineVars(vars, structs_used_hash, variables_used_hash)
6061 # Print the hf variable declarations
6062 sorted_vars = variables_used_hash.values()
6064 for var in sorted_vars:
6065 print "static int " + var.HFName() + " = -1;"
6068 # Print the value_string's
6069 for var in sorted_vars:
6070 if isinstance(var, val_string):
6074 # Determine which error codes are not used
6075 errors_not_used = {}
6076 # Copy the keys from the error list...
6077 for code in errors.keys():
6078 errors_not_used[code] = 1
6079 # ... and remove the ones that *were* used.
6080 for code in errors_used_list:
6081 del errors_not_used[code]
6083 # Print a remark showing errors not used
6084 list_errors_not_used = errors_not_used.keys()
6085 list_errors_not_used.sort()
6086 for code in list_errors_not_used:
6087 print "/* Error 0x%04x not used: %s */" % (code, errors[code])
6090 # Print the errors table
6091 print "/* Error strings. */"
6092 print "static const char *ncp_errors[] = {"
6093 for code in errors_used_list:
6094 print '\t/* %02d (0x%04x) */ "%s",' % (errors_used_hash[code], code, errors[code])
6100 # Determine which groups are not used
6101 groups_not_used = {}
6102 # Copy the keys from the group list...
6103 for group in groups.keys():
6104 groups_not_used[group] = 1
6105 # ... and remove the ones that *were* used.
6106 for group in groups_used_list:
6107 del groups_not_used[group]
6109 # Print a remark showing groups not used
6110 list_groups_not_used = groups_not_used.keys()
6111 list_groups_not_used.sort()
6112 for group in list_groups_not_used:
6113 print "/* Group not used: %s = %s */" % (group, groups[group])
6116 # Print the groups table
6117 print "/* Group strings. */"
6118 print "static const char *ncp_groups[] = {"
6119 for group in groups_used_list:
6120 print '\t/* %02d (%s) */ "%s",' % (groups_used_hash[group], group, groups[group])
6123 # Print the group macros
6124 for group in groups_used_list:
6125 name = string.upper(group)
6126 print "#define NCP_GROUP_%s\t%d" % (name, groups_used_hash[group])
6130 # Print the conditional_records for all Request Conditions.
6132 print "/* Request-Condition dfilter records. The NULL pointer"
6133 print " is replaced by a pointer to the created dfilter_t. */"
6134 if len(global_req_cond) == 0:
6135 print "static conditional_record req_conds = NULL;"
6137 print "static conditional_record req_conds[] = {"
6138 for req_cond in global_req_cond.keys():
6139 print "\t{ \"%s\", NULL }," % (req_cond,)
6140 global_req_cond[req_cond] = num
6143 print "#define NUM_REQ_CONDS %d" % (num,)
6144 print "#define NO_REQ_COND NUM_REQ_CONDS\n\n"
6148 # Print PTVC's for bitfields
6150 print "/* PTVC records for bit-fields. */"
6151 for var in sorted_vars:
6152 if isinstance(var, bitfield):
6153 sub_vars_ptvc = var.SubVariablesPTVC()
6154 print "/* %s */" % (sub_vars_ptvc.Name())
6155 print sub_vars_ptvc.Code()
6156 ett_list.append(sub_vars_ptvc.ETTName())
6159 # Print the PTVC's for structures
6160 print "/* PTVC records for structs. */"
6163 for svar in structs_used_hash.values():
6164 svhash[svar.HFName()] = svar
6166 ett_list.append(svar.ETTName())
6168 struct_vars = svhash.keys()
6170 for varname in struct_vars:
6171 var = svhash[varname]
6176 # Print regular PTVC's
6177 print "/* PTVC records. These are re-used to save space. */"
6178 for ptvc in ptvc_lists.Members():
6179 if not ptvc.Null() and not ptvc.Empty():
6182 # Print error_equivalency tables
6183 print "/* Error-Equivalency Tables. These are re-used to save space. */"
6184 for compcodes in compcode_lists.Members():
6185 errors = compcodes.Records()
6186 # Make sure the record for error = 0x00 comes last.
6187 print "static const error_equivalency %s[] = {" % (compcodes.Name())
6188 for error in errors:
6189 error_in_packet = error >> 8;
6190 ncp_error_index = errors_used_hash[error]
6191 print "\t{ 0x%02x, %d }, /* 0x%04x */" % (error_in_packet,
6192 ncp_error_index, error)
6193 print "\t{ 0x00, -1 }\n};\n"
6197 # Print integer arrays for all ncp_records that need
6198 # a list of req_cond_indexes. Do it "uniquely" to save space;
6199 # if multiple packets share the same set of req_cond's,
6200 # then they'll share the same integer array
6201 print "/* Request Condition Indexes */"
6202 # First, make them unique
6203 req_cond_collection = UniqueCollection("req_cond_collection")
6205 req_conds = pkt.CalculateReqConds()
6207 unique_list = req_cond_collection.Add(req_conds)
6208 pkt.SetReqConds(unique_list)
6210 pkt.SetReqConds(None)
6213 for req_cond in req_cond_collection.Members():
6214 print "static const int %s[] = {" % (req_cond.Name(),)
6217 for text in req_cond.Records():
6218 vals.append(global_req_cond[text])
6221 print "%s, " % (val,),
6228 # Functions without length parameter
6229 funcs_without_length = {}
6231 # Print info string structures
6232 print "/* Info Strings */"
6234 if pkt.req_info_str:
6235 name = pkt.InfoStrName() + "_req"
6236 var = pkt.req_info_str[0]
6237 print "static const info_string_t %s = {" % (name,)
6238 print "\t&%s," % (var.HFName(),)
6239 print '\t"%s",' % (pkt.req_info_str[1],)
6240 print '\t"%s"' % (pkt.req_info_str[2],)
6245 # Print ncp_record packet records
6246 print "#define SUBFUNC_WITH_LENGTH 0x02"
6247 print "#define SUBFUNC_NO_LENGTH 0x01"
6248 print "#define NO_SUBFUNC 0x00"
6250 print "/* ncp_record structs for packets */"
6251 print "static const ncp_record ncp_packets[] = {"
6253 if pkt.HasSubFunction():
6254 func = pkt.FunctionCode('high')
6256 subfunc_string = "SUBFUNC_WITH_LENGTH"
6257 # Ensure that the function either has a length param or not
6258 if funcs_without_length.has_key(func):
6259 sys.exit("Function 0x%04x sometimes has length param, sometimes not." \
6260 % (pkt.FunctionCode(),))
6262 subfunc_string = "SUBFUNC_NO_LENGTH"
6263 funcs_without_length[func] = 1
6265 subfunc_string = "NO_SUBFUNC"
6266 print '\t{ 0x%02x, 0x%02x, %s, "%s",' % (pkt.FunctionCode('high'),
6267 pkt.FunctionCode('low'), subfunc_string, pkt.Description()),
6269 print '\t%d /* %s */,' % (groups_used_hash[pkt.Group()], pkt.Group())
6271 ptvc = pkt.PTVCRequest()
6272 if not ptvc.Null() and not ptvc.Empty():
6273 ptvc_request = ptvc.Name()
6275 ptvc_request = 'NULL'
6277 ptvc = pkt.PTVCReply()
6278 if not ptvc.Null() and not ptvc.Empty():
6279 ptvc_reply = ptvc.Name()
6283 errors = pkt.CompletionCodes()
6285 req_conds_obj = pkt.GetReqConds()
6287 req_conds = req_conds_obj.Name()
6291 if not req_conds_obj:
6292 req_cond_size = "NO_REQ_COND_SIZE"
6294 req_cond_size = pkt.ReqCondSize()
6295 if req_cond_size == None:
6296 msg.write("NCP packet %s nees a ReqCondSize*() call\n" \
6300 if pkt.req_info_str:
6301 req_info_str = "&" + pkt.InfoStrName() + "_req"
6303 req_info_str = "NULL"
6305 print '\t\t%s, %s, %s, %s, %s, %s },\n' % \
6306 (ptvc_request, ptvc_reply, errors.Name(), req_conds,
6307 req_cond_size, req_info_str)
6309 print '\t{ 0, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NO_REQ_COND_SIZE, NULL }'
6312 print "/* ncp funcs that require a subfunc */"
6313 print "static const guint8 ncp_func_requires_subfunc[] = {"
6316 if pkt.HasSubFunction():
6317 hi_func = pkt.FunctionCode('high')
6318 if not hi_seen.has_key(hi_func):
6319 print "\t0x%02x," % (hi_func)
6320 hi_seen[hi_func] = 1
6325 print "/* ncp funcs that have no length parameter */"
6326 print "static const guint8 ncp_func_has_no_length_parameter[] = {"
6327 funcs = funcs_without_length.keys()
6330 print "\t0x%02x," % (func,)
6334 # final_registration_ncp2222()
6337 final_registration_ncp2222(void)
6342 # Create dfilter_t's for conditional_record's
6344 for (i = 0; i < NUM_REQ_CONDS; i++) {
6345 if (!dfilter_compile((const gchar*)req_conds[i].dfilter_text,
6346 &req_conds[i].dfilter)) {
6347 g_message("NCP dissector failed to compiler dfilter: %s\\n",
6348 req_conds[i].dfilter_text);
6349 g_assert_not_reached();
6355 # proto_register_ncp2222()
6357 static const value_string ncp_nds_verb_vals[] = {
6358 { 1, "Resolve Name" },
6359 { 2, "Read Entry Information" },
6363 { 6, "Search Entries" },
6365 { 8, "Remove Entry" },
6366 { 9, "Modify Entry" },
6367 { 10, "Modify RDN" },
6368 { 11, "Create Attribute" },
6369 { 12, "Read Attribute Definition" },
6370 { 13, "Remove Attribute Definition" },
6371 { 14, "Define Class" },
6372 { 15, "Read Class Definition" },
6373 { 16, "Modify Class Definition" },
6374 { 17, "Remove Class Definition" },
6375 { 18, "List Containable Classes" },
6376 { 19, "Get Effective Rights" },
6377 { 20, "Add Partition" },
6378 { 21, "Remove Partition" },
6379 { 22, "List Partitions" },
6380 { 23, "Split Partition" },
6381 { 24, "Join Partitions" },
6382 { 25, "Add Replica" },
6383 { 26, "Remove Replica" },
6384 { 27, "Open Stream" },
6385 { 28, "Search Filter" },
6386 { 29, "Create Subordinate Reference" },
6387 { 30, "Link Replica" },
6388 { 31, "Change Replica Type" },
6389 { 32, "Start Update Schema" },
6390 { 33, "End Update Schema" },
6391 { 34, "Update Schema" },
6392 { 35, "Start Update Replica" },
6393 { 36, "End Update Replica" },
6394 { 37, "Update Replica" },
6395 { 38, "Synchronize Partition" },
6396 { 39, "Synchronize Schema" },
6397 { 40, "Read Syntaxes" },
6398 { 41, "Get Replica Root ID" },
6399 { 42, "Begin Move Entry" },
6400 { 43, "Finish Move Entry" },
6401 { 44, "Release Moved Entry" },
6402 { 45, "Backup Entry" },
6403 { 46, "Restore Entry" },
6406 { 49, "Remove Backlink" },
6407 { 50, "Close Iteration" },
6409 { 52, "Audit Skulking" },
6410 { 53, "Get Server Address" },
6412 { 55, "Change Password" },
6413 { 56, "Verify Password" },
6414 { 57, "Begin Login" },
6415 { 58, "Finish Login" },
6416 { 59, "Begin Authentication" },
6417 { 60, "Finish Authentication" },
6419 { 62, "Repair Ring" },
6420 { 63, "Repair Timestamps" },
6421 { 64, "Create Back Link" },
6422 { 65, "Delete External Reference" },
6423 { 66, "Rename External Reference" },
6424 { 67, "Create Directory Entry" },
6425 { 68, "Remove Directory Entry" },
6426 { 69, "Designate New Master" },
6427 { 70, "Change Tree Name" },
6428 { 71, "Partition Entry Count" },
6429 { 72, "Check Login Restrictions" },
6430 { 73, "Start Join" },
6431 { 74, "Low Level Split" },
6432 { 75, "Low Level Join" },
6433 { 76, "Abort Low Level Join" },
6434 { 77, "Get All Servers" },
6435 { 255, "EDirectory Call" },
6440 proto_register_ncp2222(void)
6443 static hf_register_info hf[] = {
6445 { "Function", "ncp.func", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6448 { "Packet Length", "ncp.length", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
6451 { "SubFunction", "ncp.subfunc", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6453 { &hf_ncp_completion_code,
6454 { "Completion Code", "ncp.completion_code", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6456 { &hf_ncp_fragment_handle,
6457 { "NDS Fragment Handle", "ncp.ndsfrag", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6459 { &hf_ncp_fragment_size,
6460 { "NDS Fragment Size", "ncp.ndsfragsize", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6462 { &hf_ncp_message_size,
6463 { "Message Size", "ncp.ndsmessagesize", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6466 { "Flags", "ncp.ndsflag", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6469 { "NDS Verb", "ncp.ndsverb", FT_UINT8, BASE_HEX, VALS(ncp_nds_verb_vals), 0x0, "", HFILL }},
6472 { "NDS Version", "ncp.ping_version", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
6475 { "NDS Version", "ncp.nds_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6477 { &hf_nds_tree_name,
6478 { "Tree Name", "ncp.nds_tree_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
6483 * http://www.odyssea.com/whats_new/tcpipnet/tcpipnet.html
6485 * says of the connection status "The Connection Code field may
6486 * contain values that indicate the status of the client host to
6487 * server connection. A value of 1 in the fourth bit of this data
6488 * byte indicates that the server is unavailable (server was
6493 * http://www.unm.edu/~network/presentations/course/appendix/appendix_f/tsld088.htm
6495 * says that bit 0 is "bad service", bit 2 is "no connection
6496 * available", bit 4 is "service down", and bit 6 is "server
6497 * has a broadcast message waiting for the client".
6499 * Should it be displayed in hex, and should those bits (and any
6500 * other bits with significance) be displayed as bitfields
6503 { &hf_ncp_connection_status,
6504 { "Connection Status", "ncp.connection_status", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
6506 { &hf_ncp_req_frame_num,
6507 { "Response to Request in Frame Number", "ncp.req_frame_num", FT_FRAMENUM, BASE_NONE,
6508 NULL, 0x0, "", HFILL }},
6510 { &hf_ncp_req_frame_time,
6511 { "Time from Request", "ncp.time", FT_RELATIVE_TIME, BASE_NONE,
6512 NULL, 0x0, "Time between request and response in seconds", HFILL }},
6515 { "NDS Return Flags", "ncp.nds_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6518 { &hf_nds_reply_depth,
6519 { "Distance from Root", "ncp.ndsdepth", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6521 { &hf_nds_reply_rev,
6522 { "NDS Revision", "ncp.ndsrev", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6524 { &hf_nds_reply_flags,
6525 { "Flags", "ncp.ndsflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6528 { "NDS Parameter Type", "ncp.p1type", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
6530 { &hf_nds_uint32value,
6531 { "NDS Value", "ncp.uint32value", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6534 { "Typeless", "ncp.nds_bit1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6537 { "All Containers", "ncp.nds_bit2", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6540 { "Slashed", "ncp.nds_bit3", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6543 { "Dotted", "ncp.nds_bit4", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6546 { "Tuned", "ncp.nds_bit5", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6549 { "Not Defined", "ncp.nds_bit6", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6552 { "Not Defined", "ncp.nds_bit7", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6555 { "Not Defined", "ncp.nds_bit8", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6558 { "Not Defined", "ncp.nds_bit9", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6561 { "Not Defined", "ncp.nds_bit10", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6564 { "Not Defined", "ncp.nds_bit11", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6567 { "Not Defined", "ncp.nds_bit12", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6570 { "Not Defined", "ncp.nds_bit13", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6573 { "Not Defined", "ncp.nds_bit14", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6576 { "Not Defined", "ncp.nds_bit15", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6579 { "Not Defined", "ncp.nds_bit16", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6582 { "Output Flags", "ncp.bit1outflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6585 { "Entry ID", "ncp.bit2outflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6588 { "Replica State", "ncp.bit3outflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6591 { "Modification Timestamp", "ncp.bit4outflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6594 { "Purge Time", "ncp.bit5outflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6597 { "Local Partition ID", "ncp.bit6outflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6600 { "Distinguished Name", "ncp.bit7outflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6603 { "Replica Type", "ncp.bit8outflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6606 { "Partition Busy", "ncp.bit9outflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6608 { &hf_bit10outflags,
6609 { "Not Defined", "ncp.bit10outflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6611 { &hf_bit11outflags,
6612 { "Not Defined", "ncp.bit11outflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6614 { &hf_bit12outflags,
6615 { "Not Defined", "ncp.bit12outflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6617 { &hf_bit13outflags,
6618 { "Not Defined", "ncp.bit13outflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6620 { &hf_bit14outflags,
6621 { "Not Defined", "ncp.bit14outflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6623 { &hf_bit15outflags,
6624 { "Not Defined", "ncp.bit15outflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6626 { &hf_bit16outflags,
6627 { "Not Defined", "ncp.bit16outflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6630 { "Entry ID", "ncp.bit1nflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6633 { "Readable", "ncp.bit2nflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6636 { "Writeable", "ncp.bit3nflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6639 { "Master", "ncp.bit4nflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6642 { "Create ID", "ncp.bit5nflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6645 { "Walk Tree", "ncp.bit6nflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6648 { "Dereference Alias", "ncp.bit7nflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6651 { "Not Defined", "ncp.bit8nflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6654 { "Not Defined", "ncp.bit9nflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6657 { "Not Defined", "ncp.bit10nflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6660 { "Not Defined", "ncp.bit11nflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6663 { "Not Defined", "ncp.bit12nflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6666 { "Not Defined", "ncp.bit13nflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6669 { "Prefer Referrals", "ncp.bit14nflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6672 { "Prefer Only Referrals", "ncp.bit15nflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6675 { "Not Defined", "ncp.bit16nflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6678 { "Typeless", "ncp.bit1rflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6681 { "Slashed", "ncp.bit2rflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6684 { "Dotted", "ncp.bit3rflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6687 { "Tuned", "ncp.bit4rflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6690 { "Not Defined", "ncp.bit5rflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6693 { "Not Defined", "ncp.bit6rflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6696 { "Not Defined", "ncp.bit7rflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6699 { "Not Defined", "ncp.bit8rflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6702 { "Not Defined", "ncp.bit9rflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6705 { "Not Defined", "ncp.bit10rflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6708 { "Not Defined", "ncp.bit11rflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6711 { "Not Defined", "ncp.bit12rflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6714 { "Not Defined", "ncp.bit13rflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6717 { "Not Defined", "ncp.bit14rflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6720 { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6723 { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6726 { "Alias Entry", "ncp.bit1eflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6729 { "Partition Root", "ncp.bit2eflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6732 { "Container Entry", "ncp.bit3eflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6735 { "Container Alias", "ncp.bit4eflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6738 { "Matches List Filter", "ncp.bit5eflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6741 { "Reference Entry", "ncp.bit6eflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6744 { "40x Reference Entry", "ncp.bit7eflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6747 { "Back Linked", "ncp.bit8eflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6750 { "New Entry", "ncp.bit9eflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6753 { "Temporary Reference", "ncp.bit10eflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6756 { "Audited", "ncp.bit11eflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6759 { "Entry Not Present", "ncp.bit12eflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6762 { "Entry Verify CTS", "ncp.bit13eflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6765 { "Entry Damaged", "ncp.bit14eflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6768 { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6771 { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6773 { &hf_bit1infoflagsl,
6774 { "Output Flags", "ncp.bit1infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6776 { &hf_bit2infoflagsl,
6777 { "Entry ID", "ncp.bit2infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6779 { &hf_bit3infoflagsl,
6780 { "Entry Flags", "ncp.bit3infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6782 { &hf_bit4infoflagsl,
6783 { "Subordinate Count", "ncp.bit4infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6785 { &hf_bit5infoflagsl,
6786 { "Modification Time", "ncp.bit5infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6788 { &hf_bit6infoflagsl,
6789 { "Modification Timestamp", "ncp.bit6infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6791 { &hf_bit7infoflagsl,
6792 { "Creation Timestamp", "ncp.bit7infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6794 { &hf_bit8infoflagsl,
6795 { "Partition Root ID", "ncp.bit8infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6797 { &hf_bit9infoflagsl,
6798 { "Parent ID", "ncp.bit9infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6800 { &hf_bit10infoflagsl,
6801 { "Revision Count", "ncp.bit10infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6803 { &hf_bit11infoflagsl,
6804 { "Replica Type", "ncp.bit11infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6806 { &hf_bit12infoflagsl,
6807 { "Base Class", "ncp.bit12infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6809 { &hf_bit13infoflagsl,
6810 { "Relative Distinguished Name", "ncp.bit13infoflagsl", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6812 { &hf_bit14infoflagsl,
6813 { "Distinguished Name", "ncp.bit14infoflagsl", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6815 { &hf_bit15infoflagsl,
6816 { "Root Distinguished Name", "ncp.bit15infoflagsl", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6818 { &hf_bit16infoflagsl,
6819 { "Parent Distinguished Name", "ncp.bit16infoflagsl", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6821 { &hf_bit1infoflagsh,
6822 { "Purge Time", "ncp.bit1infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6824 { &hf_bit2infoflagsh,
6825 { "Dereference Base Class", "ncp.bit2infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6827 { &hf_bit3infoflagsh,
6828 { "Not Defined", "ncp.bit3infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6830 { &hf_bit4infoflagsh,
6831 { "Not Defined", "ncp.bit4infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6833 { &hf_bit5infoflagsh,
6834 { "Not Defined", "ncp.bit5infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6836 { &hf_bit6infoflagsh,
6837 { "Not Defined", "ncp.bit6infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6839 { &hf_bit7infoflagsh,
6840 { "Not Defined", "ncp.bit7infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6842 { &hf_bit8infoflagsh,
6843 { "Not Defined", "ncp.bit8infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6845 { &hf_bit9infoflagsh,
6846 { "Not Defined", "ncp.bit9infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6848 { &hf_bit10infoflagsh,
6849 { "Not Defined", "ncp.bit10infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6851 { &hf_bit11infoflagsh,
6852 { "Not Defined", "ncp.bit11infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6854 { &hf_bit12infoflagsh,
6855 { "Not Defined", "ncp.bit12infoflagshs", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6857 { &hf_bit13infoflagsh,
6858 { "Not Defined", "ncp.bit13infoflagsh", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6860 { &hf_bit14infoflagsh,
6861 { "Not Defined", "ncp.bit14infoflagsh", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6863 { &hf_bit15infoflagsh,
6864 { "Not Defined", "ncp.bit15infoflagsh", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6866 { &hf_bit16infoflagsh,
6867 { "Not Defined", "ncp.bit16infoflagsh", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6870 { "List Typeless", "ncp.bit1lflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6873 { "List Containers", "ncp.bit2lflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6876 { "List Slashed", "ncp.bit3lflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6879 { "List Dotted", "ncp.bit4lflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6882 { "Dereference Alias", "ncp.bit5lflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6885 { "List All Containers", "ncp.bit6lflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6888 { "List Obsolete", "ncp.bit7lflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6891 { "List Tuned Output", "ncp.bit8lflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6894 { "List External Reference", "ncp.bit9lflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6897 { "Not Defined", "ncp.bit10lflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6900 { "Not Defined", "ncp.bit11lflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6903 { "Not Defined", "ncp.bit12lflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6906 { "Not Defined", "ncp.bit13lflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6909 { "Not Defined", "ncp.bit14lflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6912 { "Not Defined", "ncp.bit15lflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6915 { "Not Defined", "ncp.bit16lflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6918 { "Output Flags", "ncp.bit1l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6921 { "Entry ID", "ncp.bit2l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6924 { "Replica State", "ncp.bit3l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6927 { "Modification Timestamp", "ncp.bit4l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6930 { "Purge Time", "ncp.bit5l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6933 { "Local Partition ID", "ncp.bit6l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6936 { "Distinguished Name", "ncp.bit7l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6939 { "Replica Type", "ncp.bit8l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6942 { "Partition Busy", "ncp.bit9l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6944 { &hf_bit10l1flagsl,
6945 { "Not Defined", "ncp.bit10l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6947 { &hf_bit11l1flagsl,
6948 { "Not Defined", "ncp.bit11l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6950 { &hf_bit12l1flagsl,
6951 { "Not Defined", "ncp.bit12l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6953 { &hf_bit13l1flagsl,
6954 { "Not Defined", "ncp.bit13l1flagsl", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6956 { &hf_bit14l1flagsl,
6957 { "Not Defined", "ncp.bit14l1flagsl", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6959 { &hf_bit15l1flagsl,
6960 { "Not Defined", "ncp.bit15l1flagsl", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6962 { &hf_bit16l1flagsl,
6963 { "Not Defined", "ncp.bit16l1flagsl", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6966 { "Not Defined", "ncp.bit1l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6969 { "Not Defined", "ncp.bit2l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6972 { "Not Defined", "ncp.bit3l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6975 { "Not Defined", "ncp.bit4l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6978 { "Not Defined", "ncp.bit5l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6981 { "Not Defined", "ncp.bit6l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6984 { "Not Defined", "ncp.bit7l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6987 { "Not Defined", "ncp.bit8l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6990 { "Not Defined", "ncp.bit9l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6992 { &hf_bit10l1flagsh,
6993 { "Not Defined", "ncp.bit10l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6995 { &hf_bit11l1flagsh,
6996 { "Not Defined", "ncp.bit11l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6998 { &hf_bit12l1flagsh,
6999 { "Not Defined", "ncp.bit12l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7001 { &hf_bit13l1flagsh,
7002 { "Not Defined", "ncp.bit13l1flagsh", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7004 { &hf_bit14l1flagsh,
7005 { "Not Defined", "ncp.bit14l1flagsh", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7007 { &hf_bit15l1flagsh,
7008 { "Not Defined", "ncp.bit15l1flagsh", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7010 { &hf_bit16l1flagsh,
7011 { "Not Defined", "ncp.bit16l1flagsh", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7014 { "Naming", "ncp.bit1vflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7017 { "Base Class", "ncp.bit2vflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7020 { "Present", "ncp.bit3vflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7023 { "Value Damaged", "ncp.bit4vflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7026 { "Not Defined", "ncp.bit5vflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7029 { "Not Defined", "ncp.bit6vflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7032 { "Not Defined", "ncp.bit7vflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7035 { "Not Defined", "ncp.bit8vflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7038 { "Not Defined", "ncp.bit9vflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7041 { "Not Defined", "ncp.bit10vflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7044 { "Not Defined", "ncp.bit11vflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7047 { "Not Defined", "ncp.bit12vflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7050 { "Not Defined", "ncp.bit13vflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7053 { "Not Defined", "ncp.bit14vflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7056 { "Not Defined", "ncp.bit15vflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7059 { "Not Defined", "ncp.bit16vflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7062 { "Ambiguous Containment", "ncp.bit1cflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7065 { "Ambiguous Naming", "ncp.bit2cflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7068 { "Class Definition Cannot be Removed", "ncp.bit3cflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7071 { "Effective Class", "ncp.bit4cflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7074 { "Container Class", "ncp.bit5cflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7077 { "Not Defined", "ncp.bit6cflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7080 { "Not Defined", "ncp.bit7cflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7083 { "Not Defined", "ncp.bit8cflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7086 { "Not Defined", "ncp.bit9cflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7089 { "Not Defined", "ncp.bit10cflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7092 { "Not Defined", "ncp.bit11cflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7095 { "Not Defined", "ncp.bit12cflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7098 { "Not Defined", "ncp.bit13cflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7101 { "Not Defined", "ncp.bit14cflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7104 { "Not Defined", "ncp.bit15cflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7107 { "Not Defined", "ncp.bit16cflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7110 { "Single Valued", "ncp.bit1acflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7113 { "Sized", "ncp.bit2acflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7116 { "Non-Removable", "ncp.bit3acflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7119 { "Read Only", "ncp.bit4acflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7122 { "Hidden", "ncp.bit5acflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7125 { "String", "ncp.bit6acflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7128 { "Synchronize Immediate", "ncp.bit7acflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7131 { "Public Read", "ncp.bit8acflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7134 { "Server Read", "ncp.bit9acflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7137 { "Write Managed", "ncp.bit10acflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7140 { "Per Replica", "ncp.bit11acflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7143 { "Never Schedule Synchronization", "ncp.bit12acflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7146 { "Operational", "ncp.bit13acflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7149 { "Not Defined", "ncp.bit14acflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7152 { "Not Defined", "ncp.bit15acflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7155 { "Not Defined", "ncp.bit16acflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7158 { &hf_nds_reply_error,
7159 { "NDS Error", "ncp.ndsreplyerror", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7162 { "Network","ncp.ndsnet", FT_IPXNET, BASE_NONE, NULL, 0x0, "", HFILL }},
7165 { "Node", "ncp.ndsnode", FT_ETHER, BASE_NONE, NULL, 0x0, "", HFILL }},
7168 { "Socket", "ncp.ndssocket", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
7171 { "Address Referral", "ncp.ipref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7174 { "Address Referral", "ncp.udpref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7177 { "Address Referral", "ncp.tcpref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7179 { &hf_referral_record,
7180 { "Referral Record", "ncp.ref_rec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7182 { &hf_referral_addcount,
7183 { "Address Count", "ncp.ref_addcount", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7186 { "Port", "ncp.ndsport", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7189 { "Attribute Name ", "ncp.mv_string", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7192 { "Attribute Syntax ", "ncp.nds_syntax", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7195 { "Value ", "ncp.value_string", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7197 { &hf_nds_stream_name,
7198 { "Stream Name ", "ncp.nds_stream_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7200 { &hf_nds_buffer_size,
7201 { "NDS Reply Buffer Size", "ncp.nds_reply_buf", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7204 { "NDS Version", "ncp.nds_ver", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7207 { "Flags", "ncp.nds_nflags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7210 { "Request Flags", "ncp.nds_rflags", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7213 { "Entry Flags", "ncp.nds_eflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7216 { "Scope", "ncp.nds_scope", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7219 { "Name", "ncp.nds_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7221 { &hf_nds_name_type,
7222 { "Name Type", "ncp.nds_name_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7224 { &hf_nds_comm_trans,
7225 { "Communications Transport", "ncp.nds_comm_trans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7227 { &hf_nds_tree_trans,
7228 { "Tree Walker Transport", "ncp.nds_tree_trans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7230 { &hf_nds_iteration,
7231 { "Iteration Handle", "ncp.nds_iteration", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7233 { &hf_nds_file_handle,
7234 { "File Handle", "ncp.nds_file_handle", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7236 { &hf_nds_file_size,
7237 { "File Size", "ncp.nds_file_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7240 { "NDS EID", "ncp.nds_eid", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7243 { "Distance object is from Root", "ncp.nds_depth", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7245 { &hf_nds_info_type,
7246 { "Info Type", "ncp.nds_info_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7248 { &hf_nds_class_def_type,
7249 { "Class Definition Type", "ncp.nds_class_def_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7252 { "All Attributes", "ncp.nds_all_attr", FT_UINT32, BASE_DEC, NULL, 0x0, "Return all Attributes?", HFILL }},
7254 { &hf_nds_return_all_classes,
7255 { "All Classes", "ncp.nds_return_all_classes", FT_STRING, BASE_NONE, NULL, 0x0, "Return all Classes?", HFILL }},
7257 { &hf_nds_req_flags,
7258 { "Request Flags", "ncp.nds_req_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7261 { "Attributes", "ncp.nds_attributes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7264 { "Classes", "ncp.nds_classes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7267 { "CRC", "ncp.nds_crc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7269 { &hf_nds_referrals,
7270 { "Referrals", "ncp.nds_referrals", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7272 { &hf_nds_result_flags,
7273 { "Result Flags", "ncp.nds_result_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7275 { &hf_nds_stream_flags,
7276 { "Streams Flags", "ncp.nds_stream_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7278 { &hf_nds_tag_string,
7279 { "Tags", "ncp.nds_tags", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7282 { "Bytes", "ncp.value_bytes", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
7285 { "Replica Type", "ncp.rtype", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7287 { &hf_replica_state,
7288 { "Replica State", "ncp.rstate", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7291 { "Replica Number", "ncp.rnum", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7294 { "Event", "ncp.revent", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7296 { &hf_replica_number,
7297 { "Replica Number", "ncp.rnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7300 { "Minimum NDS Version", "ncp.min_nds_version", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7302 { &hf_nds_ver_include,
7303 { "Include NDS Version", "ncp.inc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7305 { &hf_nds_ver_exclude,
7306 { "Exclude NDS Version", "ncp.exc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7309 { "Input Entry Specifier", "ncp.nds_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7312 { "Entry Specifier Type", "ncp.nds_es_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7315 { "RDN", "ncp.nds_rdn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7318 { "Delimeter", "ncp.nds_delim", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7320 { &hf_nds_dn_output_type,
7321 { "Output Entry Specifier Type", "ncp.nds_out_es_type", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7323 { &hf_nds_nested_output_type,
7324 { "Nested Output Entry Specifier Type", "ncp.nds_nested_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7326 { &hf_nds_output_delimiter,
7327 { "Output Delimiter", "ncp.nds_out_delimiter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7329 { &hf_nds_output_entry_specifier,
7330 { "Output Entry Specifier", "ncp.nds_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7333 { "Entry Specifier Value", "ncp.nds_es_value", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7336 { "RDN Count", "ncp.nds_es_rdn_count", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7338 { &hf_nds_replica_num,
7339 { "Replica Number", "ncp.nds_replica_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7342 { "Seconds", "ncp.nds_es_seconds", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7344 { &hf_nds_event_num,
7345 { "Event Number", "ncp.nds_event_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7347 { &hf_nds_compare_results,
7348 { "Compare Results", "ncp.nds_compare_results", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7351 { "Parent ID", "ncp.nds_parent", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7353 { &hf_nds_name_filter,
7354 { "Name Filter", "ncp.nds_name_filter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7356 { &hf_nds_class_filter,
7357 { "Class Filter", "ncp.nds_class_filter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7359 { &hf_nds_time_filter,
7360 { "Time Filter", "ncp.nds_time_filter", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7362 { &hf_nds_partition_root_id,
7363 { "Partition Root ID", "ncp.nds_partition_root_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7366 { "Replicas", "ncp.nds_replicas", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7369 { "Purge Time", "ncp.nds_purge", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7371 { &hf_nds_local_partition,
7372 { "Local Partition ID", "ncp.nds_local_partition", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7374 { &hf_partition_busy,
7375 { "Partition Busy", "ncp.nds_partition_busy", FT_BOOLEAN, 16, NULL, 0x0, "", HFILL }},
7377 { &hf_nds_number_of_changes,
7378 { "Number of Attribute Changes", "ncp.nds_number_of_changes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7381 { "Subordinate Count", "ncp.sub_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7384 { "Revision Count", "ncp.nds_rev_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7386 { &hf_nds_base_class,
7387 { "Base Class", "ncp.nds_base_class", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7389 { &hf_nds_relative_dn,
7390 { "Relative Distinguished Name", "ncp.nds_relative_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7393 { "Root Distinguished Name", "ncp.nds_root_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7395 { &hf_nds_parent_dn,
7396 { "Parent Distinguished Name", "ncp.nds_parent_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7399 { "Dereference Base Class", "ncp.nds_deref_base", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7402 { "Base Class", "ncp.nds_base", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7405 { "Super Class", "ncp.nds_super", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7407 { &hf_nds_entry_info,
7408 { "Entry Information", "ncp.nds_entry_info", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7410 { &hf_nds_privileges,
7411 { "Privileges", "ncp.nds_privileges", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7414 { "Value Flags", "ncp.nds_vflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7416 { &hf_nds_value_len,
7417 { "Value Length", "ncp.nds_vlength", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7420 { "Class Flags", "ncp.nds_cflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7423 { "ASN.1 ID", "ncp.nds_asn1", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
7426 { "Attribute Constraint Flags", "ncp.nds_acflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7429 { "Upper Limit Value", "ncp.nds_upper", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7432 { "Lower Limit Value", "ncp.nds_lower", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7434 { &hf_nds_trustee_dn,
7435 { "Trustee Distinguished Name", "ncp.nds_trustee_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7437 { &hf_nds_attribute_dn,
7438 { "Attribute Name", "ncp.nds_attribute_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7441 { "Access Control Lists to Add", "ncp.nds_acl_add", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7444 { "Access Control Lists to Delete", "ncp.nds_acl_del", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7447 { "Attribute to Add", "ncp.nds_att_add", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7450 { "Attribute to Delete", "ncp.nds_att_del", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7453 { "Delete Original RDN", "ncp.nds_keep", FT_BOOLEAN, 32, NULL, 0x0, "", HFILL }},
7456 { "New Relative Distinguished Name", "ncp.nds_new_rdn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7458 { &hf_nds_time_delay,
7459 { "Time Delay", "ncp.nds_time_delay", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7461 { &hf_nds_root_name,
7462 { "Root Most Object Name", "ncp.nds_root_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7464 { &hf_nds_new_part_id,
7465 { "New Partition Root ID", "ncp.nds_new_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7467 { &hf_nds_child_part_id,
7468 { "Child Partition Root ID", "ncp.nds_child_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7470 { &hf_nds_master_part_id,
7471 { "Master Partition Root ID", "ncp.nds_master_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7473 { &hf_nds_target_name,
7474 { "Target Server Name", "ncp.nds_target_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7477 { &hf_bit1pingflags1,
7478 { "Supported Fields", "ncp.bit1pingflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7480 { &hf_bit2pingflags1,
7481 { "Depth", "ncp.bit2pingflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7483 { &hf_bit3pingflags1,
7484 { "Revision", "ncp.bit3pingflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7486 { &hf_bit4pingflags1,
7487 { "Flags", "ncp.bit4pingflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7489 { &hf_bit5pingflags1,
7490 { "Verification Flags", "ncp.bit5pingflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7492 { &hf_bit6pingflags1,
7493 { "Letter Version", "ncp.bit6pingflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7495 { &hf_bit7pingflags1,
7496 { "OS Version", "ncp.bit7pingflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7498 { &hf_bit8pingflags1,
7499 { "License Flags", "ncp.bit8pingflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7501 { &hf_bit9pingflags1,
7502 { "DS Time", "ncp.bit9pingflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7504 { &hf_bit10pingflags1,
7505 { "Not Defined", "ncp.bit10pingflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7507 { &hf_bit11pingflags1,
7508 { "Not Defined", "ncp.bit11pingflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7510 { &hf_bit12pingflags1,
7511 { "Not Defined", "ncp.bit12pingflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7513 { &hf_bit13pingflags1,
7514 { "Not Defined", "ncp.bit13pingflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7516 { &hf_bit14pingflags1,
7517 { "Not Defined", "ncp.bit14pingflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7519 { &hf_bit15pingflags1,
7520 { "Not Defined", "ncp.bit15pingflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7522 { &hf_bit16pingflags1,
7523 { "Not Defined", "ncp.bit16pingflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7525 { &hf_bit1pingflags2,
7526 { "Sap Name", "ncp.bit1pingflags2", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7528 { &hf_bit2pingflags2,
7529 { "Tree Name", "ncp.bit2pingflags2", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7531 { &hf_bit3pingflags2,
7532 { "OS Name", "ncp.bit3pingflags2", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7534 { &hf_bit4pingflags2,
7535 { "Hardware Name", "ncp.bit4pingflags2", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7537 { &hf_bit5pingflags2,
7538 { "Vendor Name", "ncp.bit5pingflags2", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7540 { &hf_bit6pingflags2,
7541 { "Not Defined", "ncp.bit6pingflags2", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7543 { &hf_bit7pingflags2,
7544 { "Not Defined", "ncp.bit7pingflags2", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7546 { &hf_bit8pingflags2,
7547 { "Not Defined", "ncp.bit8pingflags2", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7549 { &hf_bit9pingflags2,
7550 { "Not Defined", "ncp.bit9pingflags2", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7552 { &hf_bit10pingflags2,
7553 { "Not Defined", "ncp.bit10pingflags2", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7555 { &hf_bit11pingflags2,
7556 { "Not Defined", "ncp.bit11pingflags2", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7558 { &hf_bit12pingflags2,
7559 { "Not Defined", "ncp.bit12pingflags2", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7561 { &hf_bit13pingflags2,
7562 { "Not Defined", "ncp.bit13pingflags2", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7564 { &hf_bit14pingflags2,
7565 { "Not Defined", "ncp.bit14pingflags2", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7567 { &hf_bit15pingflags2,
7568 { "Not Defined", "ncp.bit15pingflags2", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7570 { &hf_bit16pingflags2,
7571 { "Not Defined", "ncp.bit16pingflags2", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7573 { &hf_bit1pingpflags1,
7574 { "Root Most Master Replica", "ncp.bit1pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7576 { &hf_bit2pingpflags1,
7577 { "Time Synchronized", "ncp.bit2pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7579 { &hf_bit3pingpflags1,
7580 { "Not Defined", "ncp.bit3pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7582 { &hf_bit4pingpflags1,
7583 { "Not Defined", "ncp.bit4pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7585 { &hf_bit5pingpflags1,
7586 { "Not Defined", "ncp.bit5pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7588 { &hf_bit6pingpflags1,
7589 { "Not Defined", "ncp.bit6pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7591 { &hf_bit7pingpflags1,
7592 { "Not Defined", "ncp.bit7pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7594 { &hf_bit8pingpflags1,
7595 { "Not Defined", "ncp.bit8pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7597 { &hf_bit9pingpflags1,
7598 { "Not Defined", "ncp.bit9pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7600 { &hf_bit10pingpflags1,
7601 { "Not Defined", "ncp.bit10pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7603 { &hf_bit11pingpflags1,
7604 { "Not Defined", "ncp.bit11pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7606 { &hf_bit12pingpflags1,
7607 { "Not Defined", "ncp.bit12pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7609 { &hf_bit13pingpflags1,
7610 { "Not Defined", "ncp.bit13pingpflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7612 { &hf_bit14pingpflags1,
7613 { "Not Defined", "ncp.bit14pingpflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7615 { &hf_bit15pingpflags1,
7616 { "Not Defined", "ncp.bit15pingpflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7618 { &hf_bit16pingpflags1,
7619 { "Not Defined", "ncp.bit16pingpflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7621 { &hf_bit1pingvflags1,
7622 { "Checksum", "ncp.bit1pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7624 { &hf_bit2pingvflags1,
7625 { "CRC32", "ncp.bit2pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7627 { &hf_bit3pingvflags1,
7628 { "Not Defined", "ncp.bit3pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7630 { &hf_bit4pingvflags1,
7631 { "Not Defined", "ncp.bit4pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7633 { &hf_bit5pingvflags1,
7634 { "Not Defined", "ncp.bit5pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7636 { &hf_bit6pingvflags1,
7637 { "Not Defined", "ncp.bit6pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7639 { &hf_bit7pingvflags1,
7640 { "Not Defined", "ncp.bit7pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7642 { &hf_bit8pingvflags1,
7643 { "Not Defined", "ncp.bit8pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7645 { &hf_bit9pingvflags1,
7646 { "Not Defined", "ncp.bit9pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7648 { &hf_bit10pingvflags1,
7649 { "Not Defined", "ncp.bit10pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7651 { &hf_bit11pingvflags1,
7652 { "Not Defined", "ncp.bit11pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7654 { &hf_bit12pingvflags1,
7655 { "Not Defined", "ncp.bit12pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7657 { &hf_bit13pingvflags1,
7658 { "Not Defined", "ncp.bit13pingvflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7660 { &hf_bit14pingvflags1,
7661 { "Not Defined", "ncp.bit14pingvflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7663 { &hf_bit15pingvflags1,
7664 { "Not Defined", "ncp.bit15pingvflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7666 { &hf_bit16pingvflags1,
7667 { "Not Defined", "ncp.bit16pingvflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7669 { &hf_nds_letter_ver,
7670 { "Letter Version", "ncp.nds_letter_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7673 { "OS Version", "ncp.nds_os_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7675 { &hf_nds_lic_flags,
7676 { "License Flags", "ncp.nds_lic_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7679 { "DS Time", "ncp.nds_ds_time", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7681 { &hf_nds_ping_version,
7682 { "Ping Version", "ncp.nds_ping_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7684 { &hf_nds_search_scope,
7685 { "Search Scope", "ncp.nds_search_scope", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7687 { &hf_nds_num_objects,
7688 { "Number of Objects to Search", "ncp.nds_num_objects", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7692 { "Names", "ncp.bit1siflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7695 { "Names and Values", "ncp.bit2siflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7698 { "Effective Privileges", "ncp.bit3siflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7701 { "Value Info", "ncp.bit4siflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7704 { "Abbreviated Value", "ncp.bit5siflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7707 { "Not Defined", "ncp.bit6siflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7710 { "Not Defined", "ncp.bit7siflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7713 { "Not Defined", "ncp.bit8siflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7716 { "Expanded Class", "ncp.bit9siflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7719 { "Not Defined", "ncp.bit10siflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7722 { "Not Defined", "ncp.bit11siflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7725 { "Not Defined", "ncp.bit12siflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7728 { "Not Defined", "ncp.bit13siflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7731 { "Not Defined", "ncp.bit14siflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7734 { "Not Defined", "ncp.bit15siflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7737 { "Not Defined", "ncp.bit16siflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7739 { &hf_nds_segment_overlap,
7740 { "Segment overlap", "nds.segment.overlap", FT_BOOLEAN, BASE_NONE,
7741 NULL, 0x0, "Segment overlaps with other segments", HFILL }},
7743 { &hf_nds_segment_overlap_conflict,
7744 { "Conflicting data in segment overlap", "nds.segment.overlap.conflict",
7745 FT_BOOLEAN, BASE_NONE,
7746 NULL, 0x0, "Overlapping segments contained conflicting data", HFILL }},
7748 { &hf_nds_segment_multiple_tails,
7749 { "Multiple tail segments found", "nds.segment.multipletails",
7750 FT_BOOLEAN, BASE_NONE,
7751 NULL, 0x0, "Several tails were found when desegmenting the packet", HFILL }},
7753 { &hf_nds_segment_too_long_segment,
7754 { "Segment too long", "nds.segment.toolongsegment", FT_BOOLEAN, BASE_NONE,
7755 NULL, 0x0, "Segment contained data past end of packet", HFILL }},
7757 { &hf_nds_segment_error,
7758 {"Desegmentation error", "nds.segment.error", FT_FRAMENUM, BASE_NONE,
7759 NULL, 0x0, "Desegmentation error due to illegal segments", HFILL }},
7762 { "NDS Fragment", "nds.fragment", FT_FRAMENUM, BASE_NONE,
7763 NULL, 0x0, "NDPS Fragment", HFILL }},
7766 { "NDS Fragments", "nds.fragments", FT_NONE, BASE_NONE,
7767 NULL, 0x0, "NDPS Fragments", HFILL }},
7772 # Print the registration code for the hf variables
7773 for var in sorted_vars:
7774 print "\t{ &%s," % (var.HFName())
7775 print "\t{ \"%s\", \"%s\", %s, %s, %s, 0x%x, \"\", HFILL }},\n" % \
7776 (var.Description(), var.DFilter(),
7777 var.EtherealFType(), var.Display(), var.ValuesName(),
7783 print "\tstatic gint *ett[] = {"
7785 for ett in ett_list:
7786 print "\t\t&%s," % (ett,)
7791 proto_register_field_array(proto_ncp, hf, array_length(hf));
7796 proto_register_subtree_array(ett, array_length(ett));
7800 register_init_routine(&ncp_init_protocol);
7801 register_postseq_cleanup_routine(&ncp_postseq_cleanup);
7802 register_final_registration_routine(final_registration_ncp2222);
7806 # End of proto_register_ncp2222()
7809 print '#include "packet-ncp2222.inc"'
7812 print "Usage: ncp2222.py -o output_file"
7816 global compcode_lists
7824 opts, args = getopt.getopt(sys.argv[1:], optstring)
7825 except getopt.error:
7828 for opt, arg in opts:
7837 if not out_filename:
7840 # Create the output file
7842 out_file = open(out_filename, "w")
7843 except IOError, err:
7844 sys.exit("Could not open %s for writing: %s" % (out_filename,
7847 # Set msg to current stdout
7850 # Set stdout to the output file
7851 sys.stdout = out_file
7853 msg.write("Processing NCP definitions...\n")
7854 # Run the code, and if we catch any exception,
7855 # erase the output file.
7857 compcode_lists = UniqueCollection('Completion Code Lists')
7858 ptvc_lists = UniqueCollection('PTVC Lists')
7865 msg.write("Defined %d NCP types.\n" % (len(packets),))
7868 traceback.print_exc(20, msg)
7871 except IOError, err:
7872 msg.write("Could not close %s: %s\n" % (out_filename, err))
7875 if os.path.exists(out_filename):
7876 os.remove(out_filename)
7877 except OSError, err:
7878 msg.write("Could not remove %s: %s\n" % (out_filename, err))
7884 def define_ncp2222():
7885 ##############################################################################
7886 # NCP Packets. Here I list functions and subfunctions in hexadecimal like the
7887 # NCP book (and I believe LanAlyzer does this too).
7888 # However, Novell lists these in decimal in their on-line documentation.
7889 ##############################################################################
7891 pkt = NCP(0x01, "File Set Lock", 'file')
7894 pkt.CompletionCodes([0x0000])
7896 pkt = NCP(0x02, "File Release Lock", 'file')
7899 pkt.CompletionCodes([0x0000, 0xff00])
7901 pkt = NCP(0x03, "Log File Exclusive", 'file')
7902 pkt.Request( (12, 267), [
7903 rec( 7, 1, DirHandle ),
7904 rec( 8, 1, LockFlag ),
7905 rec( 9, 2, TimeoutLimit, BE ),
7906 rec( 11, (1, 256), FilePath ),
7909 pkt.CompletionCodes([0x0000, 0x8200, 0x9600, 0xfe0d, 0xff01])
7911 pkt = NCP(0x04, "Lock File Set", 'file')
7913 rec( 7, 2, TimeoutLimit ),
7916 pkt.CompletionCodes([0x0000, 0xfe0d, 0xff01])
7918 pkt = NCP(0x05, "Release File", 'file')
7919 pkt.Request( (9, 264), [
7920 rec( 7, 1, DirHandle ),
7921 rec( 8, (1, 256), FilePath ),
7924 pkt.CompletionCodes([0x0000, 0x9b00, 0x9c03, 0xff1a])
7926 pkt = NCP(0x06, "Release File Set", 'file')
7928 rec( 7, 1, LockFlag ),
7931 pkt.CompletionCodes([0x0000])
7933 pkt = NCP(0x07, "Clear File", 'file')
7934 pkt.Request( (9, 264), [
7935 rec( 7, 1, DirHandle ),
7936 rec( 8, (1, 256), FilePath ),
7939 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03,
7940 0xa100, 0xfd00, 0xff1a])
7942 pkt = NCP(0x08, "Clear File Set", 'file')
7944 rec( 7, 1, LockFlag ),
7947 pkt.CompletionCodes([0x0000])
7949 pkt = NCP(0x09, "Log Logical Record", 'file')
7950 pkt.Request( (11, 138), [
7951 rec( 7, 1, LockFlag ),
7952 rec( 8, 2, TimeoutLimit, BE ),
7953 rec( 10, (1, 128), LogicalRecordName ),
7954 ], info_str=(LogicalRecordName, "Log Logical Record: %s", ", %s"))
7956 pkt.CompletionCodes([0x0000, 0x9600, 0xfe0d, 0xff1a])
7958 pkt = NCP(0x0A, "Lock Logical Record Set", 'file')
7960 rec( 7, 1, LockFlag ),
7961 rec( 8, 2, TimeoutLimit ),
7964 pkt.CompletionCodes([0x0000, 0xfe0d, 0xff1a])
7966 pkt = NCP(0x0B, "Clear Logical Record", 'file')
7967 pkt.Request( (8, 135), [
7968 rec( 7, (1, 128), LogicalRecordName ),
7969 ], info_str=(LogicalRecordName, "Clear Logical Record: %s", ", %s"))
7971 pkt.CompletionCodes([0x0000, 0xff1a])
7973 pkt = NCP(0x0C, "Release Logical Record", 'file')
7974 pkt.Request( (8, 135), [
7975 rec( 7, (1, 128), LogicalRecordName ),
7976 ], info_str=(LogicalRecordName, "Release Logical Record: %s", ", %s"))
7978 pkt.CompletionCodes([0x0000, 0xff1a])
7980 pkt = NCP(0x0D, "Release Logical Record Set", 'file')
7982 rec( 7, 1, LockFlag ),
7985 pkt.CompletionCodes([0x0000])
7987 pkt = NCP(0x0E, "Clear Logical Record Set", 'file')
7989 rec( 7, 1, LockFlag ),
7992 pkt.CompletionCodes([0x0000])
7994 pkt = NCP(0x1100, "Write to Spool File", 'qms')
7995 pkt.Request( (11, 16), [
7996 rec( 10, ( 1, 6 ), Data ),
7997 ], info_str=(Data, "Write to Spool File: %s", ", %s"))
7999 pkt.CompletionCodes([0x0000, 0x0104, 0x8000, 0x8101, 0x8701, 0x8800,
8000 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9400, 0x9500,
8001 0x9600, 0x9804, 0x9900, 0xa100, 0xa201, 0xff19])
8003 pkt = NCP(0x1101, "Close Spool File", 'qms')
8005 rec( 10, 1, AbortQueueFlag ),
8008 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8701, 0x8800, 0x8d00,
8009 0x8e00, 0x8f00, 0x9001, 0x9300, 0x9400, 0x9500,
8010 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03, 0x9d00,
8011 0xa100, 0xd000, 0xd100, 0xd202, 0xd300, 0xd400,
8012 0xda01, 0xe800, 0xea00, 0xeb00, 0xec00, 0xfc06,
8013 0xfd00, 0xfe07, 0xff06])
8015 pkt = NCP(0x1102, "Set Spool File Flags", 'qms')
8017 rec( 10, 1, PrintFlags ),
8018 rec( 11, 1, TabSize ),
8019 rec( 12, 1, TargetPrinter ),
8020 rec( 13, 1, Copies ),
8021 rec( 14, 1, FormType ),
8022 rec( 15, 1, Reserved ),
8023 rec( 16, 14, BannerName ),
8026 pkt.CompletionCodes([0x0000, 0x9600, 0xd202, 0xd300, 0xe800, 0xea00,
8027 0xeb00, 0xec00, 0xfc06, 0xfe07, 0xff06])
8030 pkt = NCP(0x1103, "Spool A Disk File", 'qms')
8031 pkt.Request( (12, 23), [
8032 rec( 10, 1, DirHandle ),
8033 rec( 11, (1, 12), Data ),
8034 ], info_str=(Data, "Spool a Disk File: %s", ", %s"))
8036 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8701, 0x8800, 0x8d00,
8037 0x8e00, 0x8f00, 0x9001, 0x9300, 0x9400, 0x9500,
8038 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03, 0x9d00,
8039 0xa100, 0xd000, 0xd100, 0xd202, 0xd300, 0xd400,
8040 0xda01, 0xe800, 0xea00, 0xeb00, 0xec00, 0xfc06,
8041 0xfd00, 0xfe07, 0xff06])
8044 pkt = NCP(0x1106, "Get Printer Status", 'qms')
8046 rec( 10, 1, TargetPrinter ),
8049 rec( 8, 1, PrinterHalted ),
8050 rec( 9, 1, PrinterOffLine ),
8051 rec( 10, 1, CurrentFormType ),
8052 rec( 11, 1, RedirectedPrinter ),
8054 pkt.CompletionCodes([0x0000, 0x9600, 0xfb05, 0xfd00, 0xff06])
8057 pkt = NCP(0x1109, "Create Spool File", 'qms')
8058 pkt.Request( (12, 23), [
8059 rec( 10, 1, DirHandle ),
8060 rec( 11, (1, 12), Data ),
8061 ], info_str=(Data, "Create Spool File: %s", ", %s"))
8063 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8400, 0x8701, 0x8d00,
8064 0x8f00, 0x9001, 0x9400, 0x9600, 0x9804, 0x9900,
8065 0x9b03, 0x9c03, 0xa100, 0xd000, 0xd100, 0xd202,
8066 0xd300, 0xd400, 0xda01, 0xe800, 0xea00, 0xeb00,
8067 0xec00, 0xfc06, 0xfd00, 0xfe07, 0xff06])
8070 pkt = NCP(0x110A, "Get Printer's Queue", 'qms')
8072 rec( 10, 1, TargetPrinter ),
8075 rec( 8, 4, ObjectID, BE ),
8077 pkt.CompletionCodes([0x0000, 0x9600, 0xff06])
8080 pkt = NCP(0x12, "Get Volume Info with Number", 'file')
8082 rec( 7, 1, VolumeNumber )
8083 ],info_str=(VolumeNumber, "Get Volume Information for Volume %d", ", %d"))
8085 rec( 8, 2, SectorsPerCluster, BE ),
8086 rec( 10, 2, TotalVolumeClusters, BE ),
8087 rec( 12, 2, AvailableClusters, BE ),
8088 rec( 14, 2, TotalDirectorySlots, BE ),
8089 rec( 16, 2, AvailableDirectorySlots, BE ),
8090 rec( 18, 16, VolumeName ),
8091 rec( 34, 2, RemovableFlag, BE ),
8093 pkt.CompletionCodes([0x0000, 0x9804])
8096 pkt = NCP(0x13, "Get Station Number", 'connection')
8099 rec( 8, 3, StationNumber )
8101 pkt.CompletionCodes([0x0000, 0xff00])
8104 pkt = NCP(0x14, "Get File Server Date And Time", 'fileserver')
8111 rec( 12, 1, Minute ),
8112 rec( 13, 1, Second ),
8113 rec( 14, 1, DayOfWeek ),
8115 pkt.CompletionCodes([0x0000])
8118 pkt = NCP(0x1500, "Send Broadcast Message", 'message')
8119 pkt.Request((13, 70), [
8120 rec( 10, 1, ClientListLen, var="x" ),
8121 rec( 11, 1, TargetClientList, repeat="x" ),
8122 rec( 12, (1, 58), TargetMessage ),
8123 ], info_str=(TargetMessage, "Send Broadcast Message: %s", ", %s"))
8125 rec( 8, 1, ClientListLen, var="x" ),
8126 rec( 9, 1, SendStatus, repeat="x" )
8128 pkt.CompletionCodes([0x0000, 0xfd00])
8131 pkt = NCP(0x1501, "Get Broadcast Message", 'message')
8134 rec( 8, (1, 58), TargetMessage )
8136 pkt.CompletionCodes([0x0000, 0xfd00])
8139 pkt = NCP(0x1502, "Disable Broadcasts", 'message')
8142 pkt.CompletionCodes([0x0000, 0xfb0a])
8145 pkt = NCP(0x1503, "Enable Broadcasts", 'message')
8148 pkt.CompletionCodes([0x0000])
8151 pkt = NCP(0x1509, "Broadcast To Console", 'message')
8152 pkt.Request((11, 68), [
8153 rec( 10, (1, 58), TargetMessage )
8154 ], info_str=(TargetMessage, "Broadcast to Console: %s", ", %s"))
8156 pkt.CompletionCodes([0x0000])
8158 pkt = NCP(0x150A, "Send Broadcast Message", 'message')
8159 pkt.Request((17, 74), [
8160 rec( 10, 2, ClientListCount, LE, var="x" ),
8161 rec( 12, 4, ClientList, LE, repeat="x" ),
8162 rec( 16, (1, 58), TargetMessage ),
8163 ], info_str=(TargetMessage, "Send Broadcast Message: %s", ", %s"))
8165 rec( 8, 2, ClientListCount, LE, var="x" ),
8166 rec( 10, 4, ClientCompFlag, LE, repeat="x" ),
8168 pkt.CompletionCodes([0x0000, 0xfd00])
8171 pkt = NCP(0x150B, "Get Broadcast Message", 'message')
8174 rec( 8, (1, 58), TargetMessage )
8176 pkt.CompletionCodes([0x0000, 0xfd00])
8179 pkt = NCP(0x150C, "Connection Message Control", 'message')
8181 rec( 10, 1, ConnectionControlBits ),
8182 rec( 11, 3, Reserved3 ),
8183 rec( 14, 4, ConnectionListCount, LE, var="x" ),
8184 rec( 18, 4, ConnectionList, LE, repeat="x" ),
8187 pkt.CompletionCodes([0x0000, 0xff00])
8190 pkt = NCP(0x1600, "Set Directory Handle", 'fileserver')
8191 pkt.Request((13,267), [
8192 rec( 10, 1, TargetDirHandle ),
8193 rec( 11, 1, DirHandle ),
8194 rec( 12, (1, 255), Path ),
8195 ], info_str=(Path, "Set Directory Handle to: %s", ", %s"))
8197 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8202 pkt = NCP(0x1601, "Get Directory Path", 'fileserver')
8204 rec( 10, 1, DirHandle ),
8205 ],info_str=(DirHandle, "Get Directory Path for Directory Handle %d", ", %d"))
8206 pkt.Reply((9,263), [
8207 rec( 8, (1,255), Path ),
8209 pkt.CompletionCodes([0x0000, 0x9600, 0x9b00, 0x9c00, 0xa100])
8212 pkt = NCP(0x1602, "Scan Directory Information", 'fileserver')
8213 pkt.Request((14,268), [
8214 rec( 10, 1, DirHandle ),
8215 rec( 11, 2, StartingSearchNumber, BE ),
8216 rec( 13, (1, 255), Path ),
8217 ], info_str=(Path, "Scan Directory Information: %s", ", %s"))
8219 rec( 8, 16, DirectoryPath ),
8220 rec( 24, 2, CreationDate, BE ),
8221 rec( 26, 2, CreationTime, BE ),
8222 rec( 28, 4, CreatorID, BE ),
8223 rec( 32, 1, AccessRightsMask ),
8224 rec( 33, 1, Reserved ),
8225 rec( 34, 2, NextSearchNumber, BE ),
8227 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8231 pkt = NCP(0x1603, "Get Effective Directory Rights", 'fileserver')
8232 pkt.Request((14,268), [
8233 rec( 10, 1, DirHandle ),
8234 rec( 11, 2, StartingSearchNumber ),
8235 rec( 13, (1, 255), Path ),
8236 ], info_str=(Path, "Get Effective Directory Rights: %s", ", %s"))
8238 rec( 8, 1, AccessRightsMask ),
8240 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8244 pkt = NCP(0x1604, "Modify Maximum Rights Mask", 'fileserver')
8245 pkt.Request((14,268), [
8246 rec( 10, 1, DirHandle ),
8247 rec( 11, 1, RightsGrantMask ),
8248 rec( 12, 1, RightsRevokeMask ),
8249 rec( 13, (1, 255), Path ),
8250 ], info_str=(Path, "Modify Maximum Rights Mask: %s", ", %s"))
8252 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8256 pkt = NCP(0x1605, "Get Volume Number", 'fileserver')
8257 pkt.Request((11, 265), [
8258 rec( 10, (1,255), VolumeNameLen ),
8259 ], info_str=(VolumeNameLen, "Get Volume Number for: %s", ", %s"))
8261 rec( 8, 1, VolumeNumber ),
8263 pkt.CompletionCodes([0x0000, 0x9600, 0x9804])
8266 pkt = NCP(0x1606, "Get Volume Name", 'fileserver')
8268 rec( 10, 1, VolumeNumber ),
8269 ],info_str=(VolumeNumber, "Get Name for Volume %d", ", %d"))
8270 pkt.Reply((9, 263), [
8271 rec( 8, (1,255), VolumeNameLen ),
8273 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0xff00])
8276 pkt = NCP(0x160A, "Create Directory", 'fileserver')
8277 pkt.Request((13,267), [
8278 rec( 10, 1, DirHandle ),
8279 rec( 11, 1, AccessRightsMask ),
8280 rec( 12, (1, 255), Path ),
8281 ], info_str=(Path, "Create Directory: %s", ", %s"))
8283 pkt.CompletionCodes([0x0000, 0x8400, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8284 0x9e00, 0xa100, 0xfd00, 0xff00])
8287 pkt = NCP(0x160B, "Delete Directory", 'fileserver')
8288 pkt.Request((13,267), [
8289 rec( 10, 1, DirHandle ),
8290 rec( 11, 1, Reserved ),
8291 rec( 12, (1, 255), Path ),
8292 ], info_str=(Path, "Delete Directory: %s", ", %s"))
8294 pkt.CompletionCodes([0x0000, 0x8a00, 0x9600, 0x9804, 0x9b03, 0x9c03,
8295 0x9f00, 0xa000, 0xa100, 0xfd00, 0xff00])
8298 pkt = NCP(0x160C, "Scan Directory for Trustees", 'fileserver')
8299 pkt.Request((13,267), [
8300 rec( 10, 1, DirHandle ),
8301 rec( 11, 1, TrusteeSetNumber ),
8302 rec( 12, (1, 255), Path ),
8303 ], info_str=(Path, "Scan Directory for Trustees: %s", ", %s"))
8305 rec( 8, 16, DirectoryPath ),
8306 rec( 24, 2, CreationDate, BE ),
8307 rec( 26, 2, CreationTime, BE ),
8308 rec( 28, 4, CreatorID ),
8309 rec( 32, 4, TrusteeID, BE ),
8310 rec( 36, 4, TrusteeID, BE ),
8311 rec( 40, 4, TrusteeID, BE ),
8312 rec( 44, 4, TrusteeID, BE ),
8313 rec( 48, 4, TrusteeID, BE ),
8314 rec( 52, 1, AccessRightsMask ),
8315 rec( 53, 1, AccessRightsMask ),
8316 rec( 54, 1, AccessRightsMask ),
8317 rec( 55, 1, AccessRightsMask ),
8318 rec( 56, 1, AccessRightsMask ),
8320 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c03,
8321 0xa100, 0xfd00, 0xff00])
8324 pkt = NCP(0x160D, "Add Trustee to Directory", 'fileserver')
8325 pkt.Request((17,271), [
8326 rec( 10, 1, DirHandle ),
8327 rec( 11, 4, TrusteeID, BE ),
8328 rec( 15, 1, AccessRightsMask ),
8329 rec( 16, (1, 255), Path ),
8330 ], info_str=(Path, "Add Trustee to Directory: %s", ", %s"))
8332 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8333 0xa100, 0xfc06, 0xfd00, 0xff00])
8336 pkt = NCP(0x160E, "Delete Trustee from Directory", 'fileserver')
8337 pkt.Request((17,271), [
8338 rec( 10, 1, DirHandle ),
8339 rec( 11, 4, TrusteeID, BE ),
8340 rec( 15, 1, Reserved ),
8341 rec( 16, (1, 255), Path ),
8342 ], info_str=(Path, "Delete Trustee from Directory: %s", ", %s"))
8344 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8345 0xa100, 0xfc06, 0xfd00, 0xfe07, 0xff00])
8348 pkt = NCP(0x160F, "Rename Directory", 'fileserver')
8349 pkt.Request((13, 521), [
8350 rec( 10, 1, DirHandle ),
8351 rec( 11, (1, 255), Path ),
8352 rec( -1, (1, 255), NewPath ),
8353 ], info_str=(Path, "Rename Directory: %s", ", %s"))
8355 pkt.CompletionCodes([0x0000, 0x8b00, 0x9200, 0x9600, 0x9804, 0x9b03, 0x9c03,
8356 0x9e00, 0xa100, 0xef00, 0xfd00, 0xff00])
8359 pkt = NCP(0x1610, "Purge Erased Files", 'file')
8362 pkt.CompletionCodes([0x0000, 0x8100, 0x9600, 0x9804, 0xa100, 0xff00])
8365 pkt = NCP(0x1611, "Recover Erased File", 'fileserver')
8367 rec( 10, 1, DirHandle ),
8368 ],info_str=(DirHandle, "Recover Erased File from Directory Handle %d", ", %d"))
8370 rec( 8, 15, OldFileName ),
8371 rec( 23, 15, NewFileName ),
8373 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03,
8374 0xa100, 0xfd00, 0xff00])
8376 pkt = NCP(0x1612, "Alloc Permanent Directory Handle", 'fileserver')
8377 pkt.Request((13, 267), [
8378 rec( 10, 1, DirHandle ),
8379 rec( 11, 1, DirHandleName ),
8380 rec( 12, (1,255), Path ),
8381 ], info_str=(Path, "Allocate Permanent Directory Handle: %s", ", %s"))
8383 rec( 8, 1, DirHandle ),
8384 rec( 9, 1, AccessRightsMask ),
8386 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8387 0xa100, 0xfd00, 0xff00])
8389 pkt = NCP(0x1613, "Alloc Temporary Directory Handle", 'fileserver')
8390 pkt.Request((13, 267), [
8391 rec( 10, 1, DirHandle ),
8392 rec( 11, 1, DirHandleName ),
8393 rec( 12, (1,255), Path ),
8394 ], info_str=(Path, "Allocate Temporary Directory Handle: %s", ", %s"))
8396 rec( 8, 1, DirHandle ),
8397 rec( 9, 1, AccessRightsMask ),
8399 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8400 0xa100, 0xfd00, 0xff00])
8402 pkt = NCP(0x1614, "Deallocate Directory Handle", 'fileserver')
8404 rec( 10, 1, DirHandle ),
8405 ],info_str=(DirHandle, "Deallocate Directory Handle %d", ", %d"))
8407 pkt.CompletionCodes([0x0000, 0x9b03])
8409 pkt = NCP(0x1615, "Get Volume Info with Handle", 'file')
8411 rec( 10, 1, DirHandle )
8412 ],info_str=(DirHandle, "Get Volume Information with Handle %d", ", %d"))
8414 rec( 8, 2, SectorsPerCluster, BE ),
8415 rec( 10, 2, TotalVolumeClusters, BE ),
8416 rec( 12, 2, AvailableClusters, BE ),
8417 rec( 14, 2, TotalDirectorySlots, BE ),
8418 rec( 16, 2, AvailableDirectorySlots, BE ),
8419 rec( 18, 16, VolumeName ),
8420 rec( 34, 2, RemovableFlag, BE ),
8422 pkt.CompletionCodes([0x0000, 0xff00])
8424 pkt = NCP(0x1616, "Alloc Special Temporary Directory Handle", 'fileserver')
8425 pkt.Request((13, 267), [
8426 rec( 10, 1, DirHandle ),
8427 rec( 11, 1, DirHandleName ),
8428 rec( 12, (1,255), Path ),
8429 ], info_str=(Path, "Allocate Special Temporary Directory Handle: %s", ", %s"))
8431 rec( 8, 1, DirHandle ),
8432 rec( 9, 1, AccessRightsMask ),
8434 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8435 0xa100, 0xfd00, 0xff00])
8437 pkt = NCP(0x1617, "Extract a Base Handle", 'fileserver')
8439 rec( 10, 1, DirHandle ),
8440 ],info_str=(DirHandle, "Extract a Base Handle from Directory Handle %d", ", %d"))
8442 rec( 8, 10, ServerNetworkAddress ),
8443 rec( 18, 4, DirHandleLong ),
8445 pkt.CompletionCodes([0x0000, 0x9600, 0x9b03])
8447 pkt = NCP(0x1618, "Restore an Extracted Base Handle", 'fileserver')
8449 rec( 10, 10, ServerNetworkAddress ),
8450 rec( 20, 4, DirHandleLong ),
8453 rec( 8, 1, DirHandle ),
8454 rec( 9, 1, AccessRightsMask ),
8456 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c00, 0x9d00, 0xa100,
8459 pkt = NCP(0x1619, "Set Directory Information", 'fileserver')
8460 pkt.Request((21, 275), [
8461 rec( 10, 1, DirHandle ),
8462 rec( 11, 2, CreationDate ),
8463 rec( 13, 2, CreationTime ),
8464 rec( 15, 4, CreatorID, BE ),
8465 rec( 19, 1, AccessRightsMask ),
8466 rec( 20, (1,255), Path ),
8467 ], info_str=(Path, "Set Directory Information: %s", ", %s"))
8469 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c00, 0xa100,
8472 pkt = NCP(0x161A, "Get Path Name of a Volume-Directory Number Pair", 'fileserver')
8474 rec( 10, 1, VolumeNumber ),
8475 rec( 11, 2, DirectoryEntryNumberWord ),
8477 pkt.Reply((9,263), [
8478 rec( 8, (1,255), Path ),
8480 pkt.CompletionCodes([0x0000, 0x9804, 0x9c00, 0xa100])
8482 pkt = NCP(0x161B, "Scan Salvageable Files", 'fileserver')
8484 rec( 10, 1, DirHandle ),
8485 rec( 11, 4, SequenceNumber ),
8488 rec( 8, 4, SequenceNumber ),
8489 rec( 12, 2, Subdirectory ),
8490 rec( 14, 2, Reserved2 ),
8491 rec( 16, 4, AttributesDef32 ),
8492 rec( 20, 1, UniqueID ),
8493 rec( 21, 1, FlagsDef ),
8494 rec( 22, 1, DestNameSpace ),
8495 rec( 23, 1, FileNameLen ),
8496 rec( 24, 12, FileName12 ),
8497 rec( 36, 2, CreationTime ),
8498 rec( 38, 2, CreationDate ),
8499 rec( 40, 4, CreatorID, BE ),
8500 rec( 44, 2, ArchivedTime ),
8501 rec( 46, 2, ArchivedDate ),
8502 rec( 48, 4, ArchiverID, BE ),
8503 rec( 52, 2, UpdateTime ),
8504 rec( 54, 2, UpdateDate ),
8505 rec( 56, 4, UpdateID, BE ),
8506 rec( 60, 4, FileSize, BE ),
8507 rec( 64, 44, Reserved44 ),
8508 rec( 108, 2, InheritedRightsMask ),
8509 rec( 110, 2, LastAccessedDate ),
8510 rec( 112, 4, DeletedFileTime ),
8511 rec( 116, 2, DeletedTime ),
8512 rec( 118, 2, DeletedDate ),
8513 rec( 120, 4, DeletedID, BE ),
8514 rec( 124, 16, Reserved16 ),
8516 pkt.CompletionCodes([0x0000, 0xfb01, 0xff1d])
8518 pkt = NCP(0x161C, "Recover Salvageable File", 'fileserver')
8519 pkt.Request((17,525), [
8520 rec( 10, 1, DirHandle ),
8521 rec( 11, 4, SequenceNumber ),
8522 rec( 15, (1, 255), FileName ),
8523 rec( -1, (1, 255), NewFileNameLen ),
8524 ], info_str=(FileName, "Recover File: %s", ", %s"))
8526 pkt.CompletionCodes([0x0000, 0x8401, 0x9c03, 0xfe02])
8528 pkt = NCP(0x161D, "Purge Salvageable File", 'fileserver')
8530 rec( 10, 1, DirHandle ),
8531 rec( 11, 4, SequenceNumber ),
8534 pkt.CompletionCodes([0x0000, 0x8500, 0x9c03])
8536 pkt = NCP(0x161E, "Scan a Directory", 'fileserver')
8537 pkt.Request((17, 271), [
8538 rec( 10, 1, DirHandle ),
8539 rec( 11, 1, DOSFileAttributes ),
8540 rec( 12, 4, SequenceNumber ),
8541 rec( 16, (1, 255), SearchPattern ),
8542 ], info_str=(SearchPattern, "Scan a Directory: %s", ", %s"))
8544 rec( 8, 4, SequenceNumber ),
8545 rec( 12, 4, Subdirectory ),
8546 rec( 16, 4, AttributesDef32 ),
8547 rec( 20, 1, UniqueID, LE ),
8548 rec( 21, 1, PurgeFlags ),
8549 rec( 22, 1, DestNameSpace ),
8550 rec( 23, 1, NameLen ),
8551 rec( 24, 12, Name12 ),
8552 rec( 36, 2, CreationTime ),
8553 rec( 38, 2, CreationDate ),
8554 rec( 40, 4, CreatorID, BE ),
8555 rec( 44, 2, ArchivedTime ),
8556 rec( 46, 2, ArchivedDate ),
8557 rec( 48, 4, ArchiverID, BE ),
8558 rec( 52, 2, UpdateTime ),
8559 rec( 54, 2, UpdateDate ),
8560 rec( 56, 4, UpdateID, BE ),
8561 rec( 60, 4, FileSize, BE ),
8562 rec( 64, 44, Reserved44 ),
8563 rec( 108, 2, InheritedRightsMask ),
8564 rec( 110, 2, LastAccessedDate ),
8565 rec( 112, 28, Reserved28 ),
8567 pkt.CompletionCodes([0x0000, 0x8500, 0x9c03])
8569 pkt = NCP(0x161F, "Get Directory Entry", 'fileserver')
8571 rec( 10, 1, DirHandle ),
8574 rec( 8, 4, Subdirectory ),
8575 rec( 12, 4, AttributesDef32 ),
8576 rec( 16, 1, UniqueID, LE ),
8577 rec( 17, 1, PurgeFlags ),
8578 rec( 18, 1, DestNameSpace ),
8579 rec( 19, 1, NameLen ),
8580 rec( 20, 12, Name12 ),
8581 rec( 32, 2, CreationTime ),
8582 rec( 34, 2, CreationDate ),
8583 rec( 36, 4, CreatorID, BE ),
8584 rec( 40, 2, ArchivedTime ),
8585 rec( 42, 2, ArchivedDate ),
8586 rec( 44, 4, ArchiverID, BE ),
8587 rec( 48, 2, UpdateTime ),
8588 rec( 50, 2, UpdateDate ),
8589 rec( 52, 4, NextTrusteeEntry, BE ),
8590 rec( 56, 48, Reserved48 ),
8591 rec( 104, 2, MaximumSpace ),
8592 rec( 106, 2, InheritedRightsMask ),
8593 rec( 108, 28, Undefined28 ),
8595 pkt.CompletionCodes([0x0000, 0x8900, 0xbf00, 0xfb00])
8597 pkt = NCP(0x1620, "Scan Volume's User Disk Restrictions", 'fileserver')
8599 rec( 10, 1, VolumeNumber ),
8600 rec( 11, 4, SequenceNumber ),
8603 rec( 8, 1, NumberOfEntries, var="x" ),
8604 rec( 9, 8, ObjectIDStruct, repeat="x" ),
8606 pkt.CompletionCodes([0x0000, 0x9800])
8608 pkt = NCP(0x1621, "Add User Disk Space Restriction", 'fileserver')
8610 rec( 10, 1, VolumeNumber ),
8611 rec( 11, 4, ObjectID ),
8612 rec( 15, 4, DiskSpaceLimit ),
8615 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9800])
8617 pkt = NCP(0x1622, "Remove User Disk Space Restrictions", 'fileserver')
8619 rec( 10, 1, VolumeNumber ),
8620 rec( 11, 4, ObjectID ),
8623 pkt.CompletionCodes([0x0000, 0x8c00, 0xfe0e])
8625 pkt = NCP(0x1623, "Get Directory Disk Space Restriction", 'fileserver')
8627 rec( 10, 1, DirHandle ),
8630 rec( 8, 1, NumberOfEntries ),
8632 rec( 10, 4, MaxSpace ),
8633 rec( 14, 4, CurrentSpace ),
8635 pkt.CompletionCodes([0x0000])
8637 pkt = NCP(0x1624, "Set Directory Disk Space Restriction", 'fileserver')
8639 rec( 10, 1, DirHandle ),
8640 rec( 11, 4, DiskSpaceLimit ),
8643 pkt.CompletionCodes([0x0000, 0x0101, 0x8c00, 0xbf00])
8645 pkt = NCP(0x1625, "Set Directory Entry Information", 'fileserver')
8646 pkt.Request(NO_LENGTH_CHECK, [
8648 # XXX - this didn't match what was in the spec for 22/37
8649 # on the Novell Web site.
8651 rec( 10, 1, DirHandle ),
8652 rec( 11, 1, SearchAttributes ),
8653 rec( 12, 4, SequenceNumber ),
8654 rec( 16, 2, ChangeBits ),
8655 rec( 18, 2, Reserved2 ),
8656 rec( 20, 4, Subdirectory ),
8657 srec(DOSDirectoryEntryStruct, req_cond="ncp.search_att_sub == TRUE"),
8658 srec(DOSFileEntryStruct, req_cond="ncp.search_att_sub == FALSE"),
8661 pkt.ReqCondSizeConstant()
8662 pkt.CompletionCodes([0x0000, 0x0106, 0x8c00, 0xbf00])
8664 pkt = NCP(0x1626, "Scan File or Directory for Extended Trustees", 'fileserver')
8665 pkt.Request((13,267), [
8666 rec( 10, 1, DirHandle ),
8667 rec( 11, 1, SequenceByte ),
8668 rec( 12, (1, 255), Path ),
8669 ], info_str=(Path, "Scan for Extended Trustees: %s", ", %s"))
8671 rec( 8, 1, NumberOfEntries, var="x" ),
8672 rec( 9, 4, ObjectID ),
8673 rec( 13, 4, ObjectID ),
8674 rec( 17, 4, ObjectID ),
8675 rec( 21, 4, ObjectID ),
8676 rec( 25, 4, ObjectID ),
8677 rec( 29, 4, ObjectID ),
8678 rec( 33, 4, ObjectID ),
8679 rec( 37, 4, ObjectID ),
8680 rec( 41, 4, ObjectID ),
8681 rec( 45, 4, ObjectID ),
8682 rec( 49, 4, ObjectID ),
8683 rec( 53, 4, ObjectID ),
8684 rec( 57, 4, ObjectID ),
8685 rec( 61, 4, ObjectID ),
8686 rec( 65, 4, ObjectID ),
8687 rec( 69, 4, ObjectID ),
8688 rec( 73, 4, ObjectID ),
8689 rec( 77, 4, ObjectID ),
8690 rec( 81, 4, ObjectID ),
8691 rec( 85, 4, ObjectID ),
8692 rec( 89, 2, AccessRightsMaskWord, repeat="x" ),
8694 pkt.CompletionCodes([0x0000, 0x9800, 0x9b00, 0x9c00])
8696 pkt = NCP(0x1627, "Add Extended Trustee to Directory or File", 'fileserver')
8697 pkt.Request((18,272), [
8698 rec( 10, 1, DirHandle ),
8699 rec( 11, 4, ObjectID, BE ),
8700 rec( 15, 2, TrusteeRights ),
8701 rec( 17, (1, 255), Path ),
8702 ], info_str=(Path, "Add Extended Trustee: %s", ", %s"))
8704 pkt.CompletionCodes([0x0000, 0x9000])
8706 pkt = NCP(0x1628, "Scan Directory Disk Space", 'fileserver')
8707 pkt.Request((17,271), [
8708 rec( 10, 1, DirHandle ),
8709 rec( 11, 1, SearchAttributes ),
8710 rec( 12, 4, SequenceNumber ),
8711 rec( 16, (1, 255), SearchPattern ),
8712 ], info_str=(SearchPattern, "Scan Directory Disk Space: %s", ", %s"))
8714 rec( 8, 4, SequenceNumber ),
8715 rec( 12, 4, Subdirectory ),
8716 rec( 16, 4, AttributesDef32 ),
8717 rec( 20, 1, UniqueID ),
8718 rec( 21, 1, PurgeFlags ),
8719 rec( 22, 1, DestNameSpace ),
8720 rec( 23, 1, NameLen ),
8721 rec( 24, 12, Name12 ),
8722 rec( 36, 2, CreationTime ),
8723 rec( 38, 2, CreationDate ),
8724 rec( 40, 4, CreatorID, BE ),
8725 rec( 44, 2, ArchivedTime ),
8726 rec( 46, 2, ArchivedDate ),
8727 rec( 48, 4, ArchiverID, BE ),
8728 rec( 52, 2, UpdateTime ),
8729 rec( 54, 2, UpdateDate ),
8730 rec( 56, 4, UpdateID, BE ),
8731 rec( 60, 4, DataForkSize, BE ),
8732 rec( 64, 4, DataForkFirstFAT, BE ),
8733 rec( 68, 4, NextTrusteeEntry, BE ),
8734 rec( 72, 36, Reserved36 ),
8735 rec( 108, 2, InheritedRightsMask ),
8736 rec( 110, 2, LastAccessedDate ),
8737 rec( 112, 4, DeletedFileTime ),
8738 rec( 116, 2, DeletedTime ),
8739 rec( 118, 2, DeletedDate ),
8740 rec( 120, 4, DeletedID, BE ),
8741 rec( 124, 8, Undefined8 ),
8742 rec( 132, 4, PrimaryEntry, LE ),
8743 rec( 136, 4, NameList, LE ),
8744 rec( 140, 4, OtherFileForkSize, BE ),
8745 rec( 144, 4, OtherFileForkFAT, BE ),
8747 pkt.CompletionCodes([0x0000, 0x8900, 0x9c03, 0xfb01, 0xff00])
8749 pkt = NCP(0x1629, "Get Object Disk Usage and Restrictions", 'fileserver')
8751 rec( 10, 1, VolumeNumber ),
8752 rec( 11, 4, ObjectID, BE ),
8755 rec( 8, 4, Restriction ),
8756 rec( 12, 4, InUse ),
8758 pkt.CompletionCodes([0x0000, 0x9802])
8760 pkt = NCP(0x162A, "Get Effective Rights for Directory Entry", 'fileserver')
8761 pkt.Request((12,266), [
8762 rec( 10, 1, DirHandle ),
8763 rec( 11, (1, 255), Path ),
8764 ], info_str=(Path, "Get Effective Rights: %s", ", %s"))
8766 rec( 8, 2, AccessRightsMaskWord ),
8768 pkt.CompletionCodes([0x0000, 0x9804, 0x9c03])
8770 pkt = NCP(0x162B, "Remove Extended Trustee from Dir or File", 'fileserver')
8771 pkt.Request((17,271), [
8772 rec( 10, 1, DirHandle ),
8773 rec( 11, 4, ObjectID, BE ),
8774 rec( 15, 1, Unused ),
8775 rec( 16, (1, 255), Path ),
8776 ], info_str=(Path, "Remove Extended Trustee from %s", ", %s"))
8778 pkt.CompletionCodes([0x0000, 0x9002, 0x9c03, 0xfe0f, 0xff09])
8780 pkt = NCP(0x162C, "Get Volume and Purge Information", 'file')
8782 rec( 10, 1, VolumeNumber )
8783 ],info_str=(VolumeNumber, "Get Volume and Purge Information for Volume %d", ", %d"))
8784 pkt.Reply( (38,53), [
8785 rec( 8, 4, TotalBlocks ),
8786 rec( 12, 4, FreeBlocks ),
8787 rec( 16, 4, PurgeableBlocks ),
8788 rec( 20, 4, NotYetPurgeableBlocks ),
8789 rec( 24, 4, TotalDirectoryEntries ),
8790 rec( 28, 4, AvailableDirEntries ),
8791 rec( 32, 4, Reserved4 ),
8792 rec( 36, 1, SectorsPerBlock ),
8793 rec( 37, (1,16), VolumeNameLen ),
8795 pkt.CompletionCodes([0x0000])
8797 pkt = NCP(0x162D, "Get Directory Information", 'file')
8799 rec( 10, 1, DirHandle )
8801 pkt.Reply( (30, 45), [
8802 rec( 8, 4, TotalBlocks ),
8803 rec( 12, 4, AvailableBlocks ),
8804 rec( 16, 4, TotalDirectoryEntries ),
8805 rec( 20, 4, AvailableDirEntries ),
8806 rec( 24, 4, Reserved4 ),
8807 rec( 28, 1, SectorsPerBlock ),
8808 rec( 29, (1,16), VolumeNameLen ),
8810 pkt.CompletionCodes([0x0000, 0x9b03])
8812 pkt = NCP(0x162E, "Rename Or Move", 'file')
8813 pkt.Request( (17,525), [
8814 rec( 10, 1, SourceDirHandle ),
8815 rec( 11, 1, SearchAttributes ),
8816 rec( 12, 1, SourcePathComponentCount ),
8817 rec( 13, (1,255), SourcePath ),
8818 rec( -1, 1, DestDirHandle ),
8819 rec( -1, 1, DestPathComponentCount ),
8820 rec( -1, (1,255), DestPath ),
8821 ], info_str=(SourcePath, "Rename or Move: %s", ", %s"))
8823 pkt.CompletionCodes([0x0000, 0x0102, 0x8701, 0x8b00, 0x8d00, 0x8e00,
8824 0x8f00, 0x9001, 0x9101, 0x9201, 0x9a00, 0x9b03,
8825 0x9c03, 0xa400, 0xff17])
8827 pkt = NCP(0x162F, "Get Name Space Information", 'file')
8829 rec( 10, 1, VolumeNumber )
8830 ],info_str=(VolumeNumber, "Get Name Space Information for Volume %d", ", %d"))
8831 pkt.Reply( (15,523), [
8833 # XXX - why does this not display anything at all
8834 # if the stuff after the first IndexNumber is
8835 # un-commented? That stuff really is there....
8837 rec( 8, 1, DefinedNameSpaces, var="v" ),
8838 rec( 9, (1,255), NameSpaceName, repeat="v" ),
8839 rec( -1, 1, DefinedDataStreams, var="w" ),
8840 rec( -1, (2,256), DataStreamInfo, repeat="w" ),
8841 rec( -1, 1, LoadedNameSpaces, var="x" ),
8842 rec( -1, 1, IndexNumber, repeat="x" ),
8843 # rec( -1, 1, VolumeNameSpaces, var="y" ),
8844 # rec( -1, 1, IndexNumber, repeat="y" ),
8845 # rec( -1, 1, VolumeDataStreams, var="z" ),
8846 # rec( -1, 1, IndexNumber, repeat="z" ),
8848 pkt.CompletionCodes([0x0000, 0x9802, 0xff00])
8850 pkt = NCP(0x1630, "Get Name Space Directory Entry", 'file')
8852 rec( 10, 1, VolumeNumber ),
8853 rec( 11, 4, DOSSequence ),
8854 rec( 15, 1, SrcNameSpace ),
8857 rec( 8, 4, SequenceNumber ),
8858 rec( 12, 4, Subdirectory ),
8859 rec( 16, 4, AttributesDef32 ),
8860 rec( 20, 1, UniqueID ),
8861 rec( 21, 1, Flags ),
8862 rec( 22, 1, SrcNameSpace ),
8863 rec( 23, 1, NameLength ),
8864 rec( 24, 12, Name12 ),
8865 rec( 36, 2, CreationTime ),
8866 rec( 38, 2, CreationDate ),
8867 rec( 40, 4, CreatorID, BE ),
8868 rec( 44, 2, ArchivedTime ),
8869 rec( 46, 2, ArchivedDate ),
8870 rec( 48, 4, ArchiverID ),
8871 rec( 52, 2, UpdateTime ),
8872 rec( 54, 2, UpdateDate ),
8873 rec( 56, 4, UpdateID ),
8874 rec( 60, 4, FileSize ),
8875 rec( 64, 44, Reserved44 ),
8876 rec( 108, 2, InheritedRightsMask ),
8877 rec( 110, 2, LastAccessedDate ),
8879 pkt.CompletionCodes([0x0000, 0x8900, 0x9802, 0xbf00])
8881 pkt = NCP(0x1631, "Open Data Stream", 'file')
8882 pkt.Request( (15,269), [
8883 rec( 10, 1, DataStream ),
8884 rec( 11, 1, DirHandle ),
8885 rec( 12, 1, AttributesDef ),
8886 rec( 13, 1, OpenRights ),
8887 rec( 14, (1, 255), FileName ),
8888 ], info_str=(FileName, "Open Data Stream: %s", ", %s"))
8890 rec( 8, 4, CCFileHandle, BE ),
8892 pkt.CompletionCodes([0x0000, 0x8000, 0x8200, 0x9002, 0xbe00, 0xff00])
8894 pkt = NCP(0x1632, "Get Object Effective Rights for Directory Entry", 'file')
8895 pkt.Request( (16,270), [
8896 rec( 10, 4, ObjectID, BE ),
8897 rec( 14, 1, DirHandle ),
8898 rec( 15, (1, 255), Path ),
8899 ], info_str=(Path, "Get Object Effective Rights: %s", ", %s"))
8901 rec( 8, 2, TrusteeRights ),
8903 pkt.CompletionCodes([0x0000, 0x7e01, 0x9b00, 0x9c03])
8905 pkt = NCP(0x1633, "Get Extended Volume Information", 'file')
8907 rec( 10, 1, VolumeNumber ),
8908 ],info_str=(VolumeNumber, "Get Extended Volume Information for Volume %d", ", %d"))
8909 pkt.Reply( (139,266), [
8910 rec( 8, 2, VolInfoReplyLen ),
8911 rec( 10, 128, VolInfoStructure),
8912 rec( 138, (1,128), VolumeNameLen ),
8914 pkt.CompletionCodes([0x0000, 0x7e01, 0x9804, 0xfb08, 0xff00])
8916 pkt = NCP(0x1634, "Get Mount Volume List", 'file')
8918 rec( 10, 4, StartVolumeNumber ),
8919 rec( 14, 4, VolumeRequestFlags, LE ),
8920 rec( 18, 4, SrcNameSpace ),
8923 rec( 8, 4, ItemsInPacket, var="x" ),
8924 rec( 12, 4, NextVolumeNumber ),
8925 rec( 16, 18, VolumeStruct, repeat="x"),
8927 pkt.CompletionCodes([0x0000])
8929 pkt = NCP(0x1700, "Login User", 'file')
8930 pkt.Request( (12, 58), [
8931 rec( 10, (1,16), UserName ),
8932 rec( -1, (1,32), Password ),
8933 ], info_str=(UserName, "Login User: %s", ", %s"))
8935 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc501, 0xd700,
8936 0xd900, 0xda00, 0xdb00, 0xde00, 0xdf00, 0xe800,
8937 0xec00, 0xed00, 0xef00, 0xf001, 0xf100, 0xf200,
8938 0xf600, 0xfb00, 0xfc06, 0xfe07, 0xff00])
8940 pkt = NCP(0x1701, "Change User Password", 'file')
8941 pkt.Request( (13, 90), [
8942 rec( 10, (1,16), UserName ),
8943 rec( -1, (1,32), Password ),
8944 rec( -1, (1,32), NewPassword ),
8945 ], info_str=(UserName, "Change Password for User: %s", ", %s"))
8947 pkt.CompletionCodes([0x0000, 0x9600, 0xd600, 0xf001, 0xf101, 0xf501,
8948 0xfc06, 0xfe07, 0xff00])
8950 pkt = NCP(0x1702, "Get User Connection List", 'file')
8951 pkt.Request( (11, 26), [
8952 rec( 10, (1,16), UserName ),
8953 ], info_str=(UserName, "Get User Connection: %s", ", %s"))
8954 pkt.Reply( (9, 136), [
8955 rec( 8, (1, 128), ConnectionNumberList ),
8957 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
8959 pkt = NCP(0x1703, "Get User Number", 'file')
8960 pkt.Request( (11, 26), [
8961 rec( 10, (1,16), UserName ),
8962 ], info_str=(UserName, "Get User Number: %s", ", %s"))
8964 rec( 8, 4, ObjectID, BE ),
8966 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
8968 pkt = NCP(0x1705, "Get Station's Logged Info", 'file')
8970 rec( 10, 1, TargetConnectionNumber ),
8971 ],info_str=(TargetConnectionNumber, "Get Station's Logged Information on Connection %d", ", %d"))
8973 rec( 8, 16, UserName16 ),
8974 rec( 24, 7, LoginTime ),
8975 rec( 31, 39, FullName ),
8976 rec( 70, 4, UserID, BE ),
8977 rec( 74, 128, SecurityEquivalentList ),
8978 rec( 202, 64, Reserved64 ),
8980 pkt.CompletionCodes([0x0000, 0x9602, 0xfc06, 0xfd00, 0xfe07, 0xff00])
8982 pkt = NCP(0x1707, "Get Group Number", 'file')
8984 rec( 10, 4, ObjectID, BE ),
8987 rec( 8, 4, ObjectID, BE ),
8988 rec( 12, 2, ObjectType, BE ),
8989 rec( 14, 48, ObjectNameLen ),
8991 pkt.CompletionCodes([0x0000, 0x9602, 0xf101, 0xfc06, 0xfe07, 0xff00])
8993 pkt = NCP(0x170C, "Verify Serialization", 'file')
8995 rec( 10, 4, ServerSerialNumber ),
8998 pkt.CompletionCodes([0x0000, 0xff00])
9000 pkt = NCP(0x170D, "Log Network Message", 'file')
9001 pkt.Request( (11, 68), [
9002 rec( 10, (1, 58), TargetMessage ),
9003 ], info_str=(TargetMessage, "Log Network Message: %s", ", %s"))
9005 pkt.CompletionCodes([0x0000, 0x8000, 0x8100, 0x8800, 0x8d00, 0x8e00, 0x8f00,
9006 0x9001, 0x9400, 0x9600, 0x9804, 0x9900, 0x9b00, 0xa100,
9009 pkt = NCP(0x170E, "Get Disk Utilization", 'file')
9011 rec( 10, 1, VolumeNumber ),
9012 rec( 11, 4, TrusteeID, BE ),
9015 rec( 8, 1, VolumeNumber ),
9016 rec( 9, 4, TrusteeID, BE ),
9017 rec( 13, 2, DirectoryCount, BE ),
9018 rec( 15, 2, FileCount, BE ),
9019 rec( 17, 2, ClusterCount, BE ),
9021 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0xa100, 0xf200])
9023 pkt = NCP(0x170F, "Scan File Information", 'file')
9024 pkt.Request((15,269), [
9025 rec( 10, 2, LastSearchIndex ),
9026 rec( 12, 1, DirHandle ),
9027 rec( 13, 1, SearchAttributes ),
9028 rec( 14, (1, 255), FileName ),
9029 ], info_str=(FileName, "Scan File Information: %s", ", %s"))
9031 rec( 8, 2, NextSearchIndex ),
9032 rec( 10, 14, FileName14 ),
9033 rec( 24, 2, AttributesDef16 ),
9034 rec( 26, 4, FileSize, BE ),
9035 rec( 30, 2, CreationDate, BE ),
9036 rec( 32, 2, LastAccessedDate, BE ),
9037 rec( 34, 2, ModifiedDate, BE ),
9038 rec( 36, 2, ModifiedTime, BE ),
9039 rec( 38, 4, CreatorID, BE ),
9040 rec( 42, 2, ArchivedDate, BE ),
9041 rec( 44, 2, ArchivedTime, BE ),
9042 rec( 46, 56, Reserved56 ),
9044 pkt.CompletionCodes([0x0000, 0x8800, 0x8900, 0x9300, 0x9400, 0x9804, 0x9b00, 0x9c00,
9045 0xa100, 0xfd00, 0xff17])
9047 pkt = NCP(0x1710, "Set File Information", 'file')
9048 pkt.Request((91,345), [
9049 rec( 10, 2, AttributesDef16 ),
9050 rec( 12, 4, FileSize, BE ),
9051 rec( 16, 2, CreationDate, BE ),
9052 rec( 18, 2, LastAccessedDate, BE ),
9053 rec( 20, 2, ModifiedDate, BE ),
9054 rec( 22, 2, ModifiedTime, BE ),
9055 rec( 24, 4, CreatorID, BE ),
9056 rec( 28, 2, ArchivedDate, BE ),
9057 rec( 30, 2, ArchivedTime, BE ),
9058 rec( 32, 56, Reserved56 ),
9059 rec( 88, 1, DirHandle ),
9060 rec( 89, 1, SearchAttributes ),
9061 rec( 90, (1, 255), FileName ),
9062 ], info_str=(FileName, "Set Information for File: %s", ", %s"))
9064 pkt.CompletionCodes([0x0000, 0x8800, 0x8c00, 0x8e00, 0x9400, 0x9600, 0x9804,
9065 0x9b03, 0x9c00, 0xa100, 0xa201, 0xfc06, 0xfd00, 0xfe07,
9068 pkt = NCP(0x1711, "Get File Server Information", 'fileserver')
9071 rec( 8, 48, ServerName ),
9072 rec( 56, 1, OSMajorVersion ),
9073 rec( 57, 1, OSMinorVersion ),
9074 rec( 58, 2, ConnectionsSupportedMax, BE ),
9075 rec( 60, 2, ConnectionsInUse, BE ),
9076 rec( 62, 2, VolumesSupportedMax, BE ),
9077 rec( 64, 1, OSRevision ),
9078 rec( 65, 1, SFTSupportLevel ),
9079 rec( 66, 1, TTSLevel ),
9080 rec( 67, 2, ConnectionsMaxUsed, BE ),
9081 rec( 69, 1, AccountVersion ),
9082 rec( 70, 1, VAPVersion ),
9083 rec( 71, 1, QueueingVersion ),
9084 rec( 72, 1, PrintServerVersion ),
9085 rec( 73, 1, VirtualConsoleVersion ),
9086 rec( 74, 1, SecurityRestrictionVersion ),
9087 rec( 75, 1, InternetBridgeVersion ),
9088 rec( 76, 1, MixedModePathFlag ),
9089 rec( 77, 1, LocalLoginInfoCcode ),
9090 rec( 78, 2, ProductMajorVersion, BE ),
9091 rec( 80, 2, ProductMinorVersion, BE ),
9092 rec( 82, 2, ProductRevisionVersion, BE ),
9093 rec( 84, 1, OSLanguageID, LE ),
9094 rec( 85, 51, Reserved51 ),
9096 pkt.CompletionCodes([0x0000, 0x9600])
9098 pkt = NCP(0x1712, "Get Network Serial Number", 'fileserver')
9101 rec( 8, 4, ServerSerialNumber ),
9102 rec( 12, 2, ApplicationNumber ),
9104 pkt.CompletionCodes([0x0000, 0x9600])
9106 pkt = NCP(0x1713, "Get Internet Address", 'fileserver')
9108 rec( 10, 1, TargetConnectionNumber ),
9109 ],info_str=(TargetConnectionNumber, "Get Internet Address for Connection %d", ", %d"))
9111 rec( 8, 4, NetworkAddress, BE ),
9112 rec( 12, 6, NetworkNodeAddress ),
9113 rec( 18, 2, NetworkSocket, BE ),
9115 pkt.CompletionCodes([0x0000, 0xff00])
9117 pkt = NCP(0x1714, "Login Object", 'bindery')
9118 pkt.Request( (14, 60), [
9119 rec( 10, 2, ObjectType, BE ),
9120 rec( 12, (1,16), ClientName ),
9121 rec( -1, (1,32), Password ),
9122 ], info_str=(UserName, "Login Object: %s", ", %s"))
9124 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc501, 0xd600, 0xd700,
9125 0xd900, 0xda00, 0xdb00, 0xde00, 0xdf00, 0xe800, 0xec00,
9126 0xed00, 0xef00, 0xf001, 0xf100, 0xf200, 0xf600, 0xfb00,
9127 0xfc06, 0xfe07, 0xff00])
9129 pkt = NCP(0x1715, "Get Object Connection List", 'bindery')
9130 pkt.Request( (13, 28), [
9131 rec( 10, 2, ObjectType, BE ),
9132 rec( 12, (1,16), ObjectName ),
9133 ], info_str=(UserName, "Get Object Connection List: %s", ", %s"))
9134 pkt.Reply( (9, 136), [
9135 rec( 8, (1, 128), ConnectionNumberList ),
9137 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9139 pkt = NCP(0x1716, "Get Station's Logged Info", 'bindery')
9141 rec( 10, 1, TargetConnectionNumber ),
9144 rec( 8, 4, UserID, BE ),
9145 rec( 12, 2, ObjectType, BE ),
9146 rec( 14, 48, ObjectNameLen ),
9147 rec( 62, 7, LoginTime ),
9148 rec( 69, 1, Reserved ),
9150 pkt.CompletionCodes([0x0000, 0x9602, 0xfb0a, 0xfc06, 0xfd00, 0xfe07, 0xff00])
9152 pkt = NCP(0x1717, "Get Login Key", 'bindery')
9155 rec( 8, 8, LoginKey ),
9157 pkt.CompletionCodes([0x0000, 0x9602])
9159 pkt = NCP(0x1718, "Keyed Object Login", 'bindery')
9160 pkt.Request( (21, 68), [
9161 rec( 10, 8, LoginKey ),
9162 rec( 18, 2, ObjectType, BE ),
9163 rec( 20, (1,48), ObjectName ),
9164 ], info_str=(ObjectName, "Keyed Object Login: %s", ", %s"))
9166 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc500, 0xd904, 0xda00,
9167 0xdb00, 0xdc00, 0xde00, 0xff00])
9170 # XXX - for NCP-over-IP, the NetworkAddress field appears to be
9171 # an IP address, rather than an IPX network address, and should
9172 # be dissected as an FT_IPv4 value; the NetworkNodeAddress and
9173 # NetworkSocket are 0.
9175 # For NCP-over-IPX, it should probably be dissected as an
9178 pkt = NCP(0x171A, "Get Internet Address", 'fileserver')
9180 rec( 10, 1, TargetConnectionNumber ),
9183 rec( 8, 4, NetworkAddress, BE ),
9184 rec( 12, 6, NetworkNodeAddress ),
9185 rec( 18, 2, NetworkSocket, BE ),
9186 rec( 20, 1, ConnectionType ),
9188 pkt.CompletionCodes([0x0000])
9190 pkt = NCP(0x171B, "Get Object Connection List", 'bindery')
9191 pkt.Request( (17,64), [
9192 rec( 10, 4, SearchConnNumber ),
9193 rec( 14, 2, ObjectType, BE ),
9194 rec( 16, (1,48), ObjectName ),
9195 ], info_str=(ObjectName, "Get Object Connection List: %s", ", %s"))
9196 pkt.Reply( (10,137), [
9197 rec( 8, 1, ConnListLen, var="x" ),
9198 rec( 9, (1,128), ConnectionNumberList, repeat="x" ),
9200 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9202 pkt = NCP(0x171C, "Get Station's Logged Info", 'connection')
9204 rec( 10, 4, TargetConnectionNumber ),
9207 rec( 8, 4, UserID, BE ),
9208 rec( 12, 2, ObjectType, BE ),
9209 rec( 14, 48, ObjectNameLen ),
9210 rec( 62, 7, LoginTime ),
9211 rec( 69, 1, Reserved ),
9213 pkt.CompletionCodes([0x0000, 0x9602, 0xfb02, 0xfc06, 0xfd00, 0xfe07, 0xff00])
9215 pkt = NCP(0x171D, "Change Connection State", 'connection')
9217 rec( 10, 1, RequestCode ),
9220 pkt.CompletionCodes([0x0000, 0x0109, 0x7a00, 0x7b00, 0x7c00, 0xe000, 0xfb06, 0xfd00])
9222 pkt = NCP(0x171E, "Set Watchdog Delay Interval", 'connection')
9224 rec( 10, 4, NumberOfMinutesToDelay ),
9227 pkt.CompletionCodes([0x0000, 0x0107])
9229 pkt = NCP(0x171F, "Get Connection List From Object", 'bindery')
9231 rec( 10, 4, ObjectID, BE ),
9232 rec( 14, 4, ConnectionNumber ),
9234 pkt.Reply( (9, 136), [
9235 rec( 8, (1, 128), ConnectionNumberList ),
9237 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9239 pkt = NCP(0x1720, "Scan Bindery Object (List)", 'bindery')
9240 pkt.Request((23,70), [
9241 rec( 10, 4, NextObjectID, BE ),
9242 rec( 14, 4, ObjectType, BE ),
9243 rec( 18, 4, InfoFlags ),
9244 rec( 22, (1,48), ObjectName ),
9245 ], info_str=(ObjectName, "Scan Bindery Object: %s", ", %s"))
9246 pkt.Reply(NO_LENGTH_CHECK, [
9247 rec( 8, 4, ObjectInfoReturnCount ),
9248 rec( 12, 4, NextObjectID, BE ),
9249 rec( 16, 4, ObjectIDInfo ),
9250 srec(ObjectTypeStruct, req_cond="ncp.info_flags_type == TRUE"),
9251 srec(ObjectSecurityStruct, req_cond="ncp.info_flags_security == TRUE"),
9252 srec(ObjectFlagsStruct, req_cond="ncp.info_flags_flags == TRUE"),
9253 srec(ObjectNameStruct, req_cond="ncp.info_flags_name == TRUE"),
9255 pkt.ReqCondSizeVariable()
9256 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xfc02, 0xfe01, 0xff00])
9258 pkt = NCP(0x1721, "Generate GUIDs", 'nds')
9260 rec( 10, 4, ReturnInfoCount ),
9263 rec( 8, 4, ReturnInfoCount, var="x" ),
9264 rec( 12, 16, GUID, repeat="x" ),
9266 pkt.CompletionCodes([0x0000])
9268 pkt = NCP(0x1732, "Create Bindery Object", 'bindery')
9269 pkt.Request( (15,62), [
9270 rec( 10, 1, ObjectFlags ),
9271 rec( 11, 1, ObjectSecurity ),
9272 rec( 12, 2, ObjectType, BE ),
9273 rec( 14, (1,48), ObjectName ),
9274 ], info_str=(ObjectName, "Create Bindery Object: %s", ", %s"))
9276 pkt.CompletionCodes([0x0000, 0x9600, 0xe700, 0xee00, 0xef00, 0xf101, 0xf501,
9277 0xfc06, 0xfe07, 0xff00])
9279 pkt = NCP(0x1733, "Delete Bindery Object", 'bindery')
9280 pkt.Request( (13,60), [
9281 rec( 10, 2, ObjectType, BE ),
9282 rec( 12, (1,48), ObjectName ),
9283 ], info_str=(ObjectName, "Delete Bindery Object: %s", ", %s"))
9285 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf200, 0xf400, 0xf600, 0xfb00,
9286 0xfc06, 0xfe07, 0xff00])
9288 pkt = NCP(0x1734, "Rename Bindery Object", 'bindery')
9289 pkt.Request( (14,108), [
9290 rec( 10, 2, ObjectType, BE ),
9291 rec( 12, (1,48), ObjectName ),
9292 rec( -1, (1,48), NewObjectName ),
9293 ], info_str=(ObjectName, "Rename Bindery Object: %s", ", %s"))
9295 pkt.CompletionCodes([0x0000, 0x9600, 0xee00, 0xf000, 0xf300, 0xfc06, 0xfe07, 0xff00])
9297 pkt = NCP(0x1735, "Get Bindery Object ID", 'bindery')
9298 pkt.Request((13,60), [
9299 rec( 10, 2, ObjectType, BE ),
9300 rec( 12, (1,48), ObjectName ),
9301 ], info_str=(ObjectName, "Get Bindery Object: %s", ", %s"))
9303 rec( 8, 4, ObjectID, BE ),
9304 rec( 12, 2, ObjectType, BE ),
9305 rec( 14, 48, ObjectNameLen ),
9307 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xf000, 0xfc02, 0xfe01, 0xff00])
9309 pkt = NCP(0x1736, "Get Bindery Object Name", 'bindery')
9311 rec( 10, 4, ObjectID, BE ),
9314 rec( 8, 4, ObjectID, BE ),
9315 rec( 12, 2, ObjectType, BE ),
9316 rec( 14, 48, ObjectNameLen ),
9318 pkt.CompletionCodes([0x0000, 0x9600, 0xf101, 0xfc02, 0xfe01, 0xff00])
9320 pkt = NCP(0x1737, "Scan Bindery Object", 'bindery')
9321 pkt.Request((17,64), [
9322 rec( 10, 4, ObjectID, BE ),
9323 rec( 14, 2, ObjectType, BE ),
9324 rec( 16, (1,48), ObjectName ),
9325 ], info_str=(ObjectName, "Scan Bindery Object: %s", ", %s"))
9327 rec( 8, 4, ObjectID, BE ),
9328 rec( 12, 2, ObjectType, BE ),
9329 rec( 14, 48, ObjectNameLen ),
9330 rec( 62, 1, ObjectFlags ),
9331 rec( 63, 1, ObjectSecurity ),
9332 rec( 64, 1, ObjectHasProperties ),
9334 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xfc02,
9337 pkt = NCP(0x1738, "Change Bindery Object Security", 'bindery')
9338 pkt.Request((14,61), [
9339 rec( 10, 1, ObjectSecurity ),
9340 rec( 11, 2, ObjectType, BE ),
9341 rec( 13, (1,48), ObjectName ),
9342 ], info_str=(ObjectName, "Change Bindery Object Security: %s", ", %s"))
9344 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf501, 0xfc02, 0xfe01, 0xff00])
9346 pkt = NCP(0x1739, "Create Property", 'bindery')
9347 pkt.Request((16,78), [
9348 rec( 10, 2, ObjectType, BE ),
9349 rec( 12, (1,48), ObjectName ),
9350 rec( -1, 1, PropertyType ),
9351 rec( -1, 1, ObjectSecurity ),
9352 rec( -1, (1,16), PropertyName ),
9353 ], info_str=(PropertyName, "Create Property: %s", ", %s"))
9355 pkt.CompletionCodes([0x0000, 0x9600, 0xed00, 0xef00, 0xf000, 0xf101,
9356 0xf200, 0xf600, 0xf700, 0xfb00, 0xfc02, 0xfe01,
9359 pkt = NCP(0x173A, "Delete Property", 'bindery')
9360 pkt.Request((14,76), [
9361 rec( 10, 2, ObjectType, BE ),
9362 rec( 12, (1,48), ObjectName ),
9363 rec( -1, (1,16), PropertyName ),
9364 ], info_str=(PropertyName, "Delete Property: %s", ", %s"))
9366 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf600, 0xfb00, 0xfc02,
9369 pkt = NCP(0x173B, "Change Property Security", 'bindery')
9370 pkt.Request((15,77), [
9371 rec( 10, 2, ObjectType, BE ),
9372 rec( 12, (1,48), ObjectName ),
9373 rec( -1, 1, ObjectSecurity ),
9374 rec( -1, (1,16), PropertyName ),
9375 ], info_str=(PropertyName, "Change Property Security: %s", ", %s"))
9377 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf200, 0xf600, 0xfb00,
9378 0xfc02, 0xfe01, 0xff00])
9380 pkt = NCP(0x173C, "Scan Property", 'bindery')
9381 pkt.Request((18,80), [
9382 rec( 10, 2, ObjectType, BE ),
9383 rec( 12, (1,48), ObjectName ),
9384 rec( -1, 4, LastInstance, BE ),
9385 rec( -1, (1,16), PropertyName ),
9386 ], info_str=(PropertyName, "Scan Property: %s", ", %s"))
9388 rec( 8, 16, PropertyName16 ),
9389 rec( 24, 1, ObjectFlags ),
9390 rec( 25, 1, ObjectSecurity ),
9391 rec( 26, 4, SearchInstance, BE ),
9392 rec( 30, 1, ValueAvailable ),
9393 rec( 31, 1, MoreProperties ),
9395 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf200, 0xf600, 0xfb00,
9396 0xfc02, 0xfe01, 0xff00])
9398 pkt = NCP(0x173D, "Read Property Value", 'bindery')
9399 pkt.Request((15,77), [
9400 rec( 10, 2, ObjectType, BE ),
9401 rec( 12, (1,48), ObjectName ),
9402 rec( -1, 1, PropertySegment ),
9403 rec( -1, (1,16), PropertyName ),
9404 ], info_str=(PropertyName, "Read Property Value: %s", ", %s"))
9406 rec( 8, 128, PropertyData ),
9407 rec( 136, 1, PropertyHasMoreSegments ),
9408 rec( 137, 1, PropertyType ),
9410 pkt.CompletionCodes([0x0000, 0x8800, 0x9300, 0x9600, 0xec01,
9411 0xf000, 0xf100, 0xf900, 0xfb02, 0xfc02,
9414 pkt = NCP(0x173E, "Write Property Value", 'bindery')
9415 pkt.Request((144,206), [
9416 rec( 10, 2, ObjectType, BE ),
9417 rec( 12, (1,48), ObjectName ),
9418 rec( -1, 1, PropertySegment ),
9419 rec( -1, 1, MoreFlag ),
9420 rec( -1, (1,16), PropertyName ),
9422 # XXX - don't show this if MoreFlag isn't set?
9423 # In at least some packages where it's not set,
9424 # PropertyValue appears to be garbage.
9426 rec( -1, 128, PropertyValue ),
9427 ], info_str=(PropertyName, "Write Property Value: %s", ", %s"))
9429 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xec01, 0xf000, 0xf800,
9430 0xfb02, 0xfc03, 0xfe01, 0xff00 ])
9432 pkt = NCP(0x173F, "Verify Bindery Object Password", 'bindery')
9433 pkt.Request((14,92), [
9434 rec( 10, 2, ObjectType, BE ),
9435 rec( 12, (1,48), ObjectName ),
9436 rec( -1, (1,32), Password ),
9437 ], info_str=(ObjectName, "Verify Bindery Object Password: %s", ", %s"))
9439 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xec01, 0xf000, 0xf101,
9440 0xfb02, 0xfc03, 0xfe01, 0xff00 ])
9442 pkt = NCP(0x1740, "Change Bindery Object Password", 'bindery')
9443 pkt.Request((15,124), [
9444 rec( 10, 2, ObjectType, BE ),
9445 rec( 12, (1,48), ObjectName ),
9446 rec( -1, (1,32), Password ),
9447 rec( -1, (1,32), NewPassword ),
9448 ], info_str=(ObjectName, "Change Bindery Object Password: %s", ", %s"))
9450 pkt.CompletionCodes([0x0000, 0x9600, 0xc501, 0xd701, 0xe800, 0xec01, 0xf001,
9451 0xf100, 0xf800, 0xfb02, 0xfc03, 0xfe01, 0xff00])
9453 pkt = NCP(0x1741, "Add Bindery Object To Set", 'bindery')
9454 pkt.Request((17,126), [
9455 rec( 10, 2, ObjectType, BE ),
9456 rec( 12, (1,48), ObjectName ),
9457 rec( -1, (1,16), PropertyName ),
9458 rec( -1, 2, MemberType, BE ),
9459 rec( -1, (1,48), MemberName ),
9460 ], info_str=(MemberName, "Add Bindery Object to Set: %s", ", %s"))
9462 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xe900, 0xea00, 0xeb00,
9463 0xec01, 0xf000, 0xf800, 0xfb02, 0xfc03, 0xfe01,
9466 pkt = NCP(0x1742, "Delete Bindery Object From Set", 'bindery')
9467 pkt.Request((17,126), [
9468 rec( 10, 2, ObjectType, BE ),
9469 rec( 12, (1,48), ObjectName ),
9470 rec( -1, (1,16), PropertyName ),
9471 rec( -1, 2, MemberType, BE ),
9472 rec( -1, (1,48), MemberName ),
9473 ], info_str=(MemberName, "Delete Bindery Object from Set: %s", ", %s"))
9475 pkt.CompletionCodes([0x0000, 0x9600, 0xeb00, 0xf000, 0xf800, 0xfb02,
9476 0xfc03, 0xfe01, 0xff00])
9478 pkt = NCP(0x1743, "Is Bindery Object In Set", 'bindery')
9479 pkt.Request((17,126), [
9480 rec( 10, 2, ObjectType, BE ),
9481 rec( 12, (1,48), ObjectName ),
9482 rec( -1, (1,16), PropertyName ),
9483 rec( -1, 2, MemberType, BE ),
9484 rec( -1, (1,48), MemberName ),
9485 ], info_str=(MemberName, "Is Bindery Object in Set: %s", ", %s"))
9487 pkt.CompletionCodes([0x0000, 0x9600, 0xea00, 0xeb00, 0xec01, 0xf000,
9488 0xfb02, 0xfc03, 0xfe01, 0xff00])
9490 pkt = NCP(0x1744, "Close Bindery", 'bindery')
9493 pkt.CompletionCodes([0x0000, 0xff00])
9495 pkt = NCP(0x1745, "Open Bindery", 'bindery')
9498 pkt.CompletionCodes([0x0000, 0xff00])
9500 pkt = NCP(0x1746, "Get Bindery Access Level", 'bindery')
9503 rec( 8, 1, ObjectSecurity ),
9504 rec( 9, 4, LoggedObjectID, BE ),
9506 pkt.CompletionCodes([0x0000, 0x9600])
9508 pkt = NCP(0x1747, "Scan Bindery Object Trustee Paths", 'bindery')
9510 rec( 10, 1, VolumeNumber ),
9511 rec( 11, 2, LastSequenceNumber, BE ),
9512 rec( 13, 4, ObjectID, BE ),
9514 pkt.Reply((16,270), [
9515 rec( 8, 2, LastSequenceNumber, BE),
9516 rec( 10, 4, ObjectID, BE ),
9517 rec( 14, 1, ObjectSecurity ),
9518 rec( 15, (1,255), Path ),
9520 pkt.CompletionCodes([0x0000, 0x9300, 0x9600, 0xa100, 0xf000, 0xf100,
9521 0xf200, 0xfc02, 0xfe01, 0xff00])
9523 pkt = NCP(0x1748, "Get Bindery Object Access Level", 'bindery')
9525 rec( 10, 4, ObjectID, BE ),
9528 rec( 8, 1, ObjectSecurity ),
9530 pkt.CompletionCodes([0x0000, 0x9600])
9532 pkt = NCP(0x1749, "Is Calling Station a Manager", 'bindery')
9535 pkt.CompletionCodes([0x0003, 0xff1e])
9537 pkt = NCP(0x174A, "Keyed Verify Password", 'bindery')
9538 pkt.Request((21,68), [
9539 rec( 10, 8, LoginKey ),
9540 rec( 18, 2, ObjectType, BE ),
9541 rec( 20, (1,48), ObjectName ),
9542 ], info_str=(ObjectName, "Keyed Verify Password: %s", ", %s"))
9544 pkt.CompletionCodes([0x0000, 0xc500, 0xfe01, 0xff0c])
9546 pkt = NCP(0x174B, "Keyed Change Password", 'bindery')
9547 pkt.Request((22,100), [
9548 rec( 10, 8, LoginKey ),
9549 rec( 18, 2, ObjectType, BE ),
9550 rec( 20, (1,48), ObjectName ),
9551 rec( -1, (1,32), Password ),
9552 ], info_str=(ObjectName, "Keyed Change Password: %s", ", %s"))
9554 pkt.CompletionCodes([0x0000, 0xc500, 0xfe01, 0xff0c])
9556 pkt = NCP(0x174C, "List Relations Of an Object", 'bindery')
9557 pkt.Request((18,80), [
9558 rec( 10, 4, LastSeen, BE ),
9559 rec( 14, 2, ObjectType, BE ),
9560 rec( 16, (1,48), ObjectName ),
9561 rec( -1, (1,16), PropertyName ),
9562 ], info_str=(ObjectName, "List Relations of an Object: %s", ", %s"))
9564 rec( 8, 2, RelationsCount, BE, var="x" ),
9565 rec( 10, 4, ObjectID, BE, repeat="x" ),
9567 pkt.CompletionCodes([0x0000, 0xf000, 0xf200, 0xfe01, 0xff00])
9569 pkt = NCP(0x1764, "Create Queue", 'qms')
9570 pkt.Request((15,316), [
9571 rec( 10, 2, QueueType, BE ),
9572 rec( 12, (1,48), QueueName ),
9573 rec( -1, 1, PathBase ),
9574 rec( -1, (1,255), Path ),
9575 ], info_str=(QueueName, "Create Queue: %s", ", %s"))
9577 rec( 8, 4, QueueID ),
9579 pkt.CompletionCodes([0x0000, 0x9600, 0x9900, 0xd000, 0xd100,
9580 0xd200, 0xd300, 0xd400, 0xd500, 0xd601,
9581 0xd703, 0xd800, 0xd902, 0xda01, 0xdb02,
9584 pkt = NCP(0x1765, "Destroy Queue", 'qms')
9586 rec( 10, 4, QueueID ),
9589 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9590 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9591 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9593 pkt = NCP(0x1766, "Read Queue Current Status", 'qms')
9595 rec( 10, 4, QueueID ),
9598 rec( 8, 4, QueueID ),
9599 rec( 12, 1, QueueStatus ),
9600 rec( 13, 1, CurrentEntries ),
9601 rec( 14, 1, CurrentServers, var="x" ),
9602 rec( 15, 4, ServerID, repeat="x" ),
9603 rec( 19, 1, ServerStationList, repeat="x" ),
9605 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9606 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9607 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9609 pkt = NCP(0x1767, "Set Queue Current Status", 'qms')
9611 rec( 10, 4, QueueID ),
9612 rec( 14, 1, QueueStatus ),
9615 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9616 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9617 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07,
9620 pkt = NCP(0x1768, "Create Queue Job And File", 'qms')
9622 rec( 10, 4, QueueID ),
9623 rec( 14, 250, JobStruct ),
9626 rec( 8, 1, ClientStation ),
9627 rec( 9, 1, ClientTaskNumber ),
9628 rec( 10, 4, ClientIDNumber, BE ),
9629 rec( 14, 4, TargetServerIDNumber, BE ),
9630 rec( 18, 6, TargetExecutionTime ),
9631 rec( 24, 6, JobEntryTime ),
9632 rec( 30, 2, JobNumber, BE ),
9633 rec( 32, 2, JobType, BE ),
9634 rec( 34, 1, JobPosition ),
9635 rec( 35, 1, JobControlFlags ),
9636 rec( 36, 14, JobFileName ),
9637 rec( 50, 6, JobFileHandle ),
9638 rec( 56, 1, ServerStation ),
9639 rec( 57, 1, ServerTaskNumber ),
9640 rec( 58, 4, ServerID, BE ),
9642 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9643 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9644 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07,
9647 pkt = NCP(0x1769, "Close File And Start Queue Job", 'qms')
9649 rec( 10, 4, QueueID ),
9650 rec( 14, 2, JobNumber, BE ),
9653 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9654 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9655 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9657 pkt = NCP(0x176A, "Remove Job From Queue", 'qms')
9659 rec( 10, 4, QueueID ),
9660 rec( 14, 2, JobNumber, BE ),
9663 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9664 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9665 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9667 pkt = NCP(0x176B, "Get Queue Job List", 'qms')
9669 rec( 10, 4, QueueID ),
9672 rec( 8, 2, JobCount, BE, var="x" ),
9673 rec( 10, 2, JobNumber, BE, repeat="x" ),
9675 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9676 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9677 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9679 pkt = NCP(0x176C, "Read Queue Job Entry", 'qms')
9681 rec( 10, 4, QueueID ),
9682 rec( 14, 2, JobNumber, BE ),
9685 rec( 8, 250, JobStruct ),
9687 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9688 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9689 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9691 pkt = NCP(0x176D, "Change Queue Job Entry", 'qms')
9693 rec( 14, 250, JobStruct ),
9696 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9697 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9698 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9700 pkt = NCP(0x176E, "Change Queue Job Position", 'qms')
9702 rec( 10, 4, QueueID ),
9703 rec( 14, 2, JobNumber, BE ),
9704 rec( 16, 1, NewPosition ),
9707 pkt.CompletionCodes([0x0000, 0x9600, 0xd000, 0xd100, 0xd500,
9708 0xd601, 0xfe07, 0xff1f])
9710 pkt = NCP(0x176F, "Attach Queue Server To Queue", 'qms')
9712 rec( 10, 4, QueueID ),
9715 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9716 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9717 0xd800, 0xd902, 0xda01, 0xdb02, 0xea00,
9720 pkt = NCP(0x1770, "Detach Queue Server From Queue", 'qms')
9722 rec( 10, 4, QueueID ),
9725 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9726 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9727 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9729 pkt = NCP(0x1771, "Service Queue Job", 'qms')
9731 rec( 10, 4, QueueID ),
9732 rec( 14, 2, ServiceType, BE ),
9735 rec( 8, 1, ClientStation ),
9736 rec( 9, 1, ClientTaskNumber ),
9737 rec( 10, 4, ClientIDNumber, BE ),
9738 rec( 14, 4, TargetServerIDNumber, BE ),
9739 rec( 18, 6, TargetExecutionTime ),
9740 rec( 24, 6, JobEntryTime ),
9741 rec( 30, 2, JobNumber, BE ),
9742 rec( 32, 2, JobType, BE ),
9743 rec( 34, 1, JobPosition ),
9744 rec( 35, 1, JobControlFlags ),
9745 rec( 36, 14, JobFileName ),
9746 rec( 50, 6, JobFileHandle ),
9747 rec( 56, 1, ServerStation ),
9748 rec( 57, 1, ServerTaskNumber ),
9749 rec( 58, 4, ServerID, BE ),
9751 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9752 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9753 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9755 pkt = NCP(0x1772, "Finish Servicing Queue Job", 'qms')
9757 rec( 10, 4, QueueID ),
9758 rec( 14, 2, JobNumber, BE ),
9759 rec( 16, 4, ChargeInformation, BE ),
9762 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9763 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9764 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9766 pkt = NCP(0x1773, "Abort Servicing Queue Job", 'qms')
9768 rec( 10, 4, QueueID ),
9769 rec( 14, 2, JobNumber, BE ),
9772 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9773 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9774 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9776 pkt = NCP(0x1774, "Change To Client Rights", 'qms')
9778 rec( 10, 4, QueueID ),
9779 rec( 14, 2, JobNumber, BE ),
9782 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9783 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9784 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9786 pkt = NCP(0x1775, "Restore Queue Server Rights", 'qms')
9789 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9790 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9791 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9793 pkt = NCP(0x1776, "Read Queue Server Current Status", 'qms')
9795 rec( 10, 4, QueueID ),
9796 rec( 14, 4, ServerID, BE ),
9797 rec( 18, 1, ServerStation ),
9800 rec( 8, 64, ServerStatusRecord ),
9802 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9803 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9804 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9806 pkt = NCP(0x1777, "Set Queue Server Current Status", 'qms')
9808 rec( 10, 4, QueueID ),
9809 rec( 14, 64, ServerStatusRecord ),
9812 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9813 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9814 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9816 pkt = NCP(0x1778, "Get Queue Job File Size", 'qms')
9818 rec( 10, 4, QueueID ),
9819 rec( 14, 2, JobNumber, BE ),
9822 rec( 8, 4, QueueID ),
9823 rec( 12, 4, JobNumberLong ),
9824 rec( 16, 4, FileSize, BE ),
9826 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9827 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9828 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9830 pkt = NCP(0x1779, "Create Queue Job And File", 'qms')
9832 rec( 10, 4, QueueID ),
9833 rec( 14, 250, JobStruct3x ),
9836 rec( 8, 86, JobStructNew ),
9838 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9839 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9840 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00])
9842 pkt = NCP(0x177A, "Read Queue Job Entry", 'qms')
9844 rec( 10, 4, QueueID ),
9845 rec( 14, 4, JobNumberLong ),
9848 rec( 8, 250, JobStruct3x ),
9850 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9851 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9852 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9854 pkt = NCP(0x177B, "Change Queue Job Entry", 'qms')
9856 rec( 10, 4, QueueID ),
9857 rec( 14, 250, JobStruct ),
9860 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9861 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9862 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00])
9864 pkt = NCP(0x177C, "Service Queue Job", 'qms')
9866 rec( 10, 4, QueueID ),
9867 rec( 14, 2, ServiceType ),
9870 rec( 8, 86, JobStructNew ),
9872 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9873 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9874 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9876 pkt = NCP(0x177D, "Read Queue Current Status", 'qms')
9878 rec( 10, 4, QueueID ),
9881 rec( 8, 4, QueueID ),
9882 rec( 12, 1, QueueStatus ),
9883 rec( 13, 3, Reserved3 ),
9884 rec( 16, 4, CurrentEntries ),
9885 rec( 20, 4, CurrentServers, var="x" ),
9886 rec( 24, 4, ServerID, repeat="x" ),
9887 rec( 28, 4, ServerStationLong, LE, repeat="x" ),
9889 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9890 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9891 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9893 pkt = NCP(0x177E, "Set Queue Current Status", 'qms')
9895 rec( 10, 4, QueueID ),
9896 rec( 14, 1, QueueStatus ),
9899 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9900 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9901 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9903 pkt = NCP(0x177F, "Close File And Start Queue Job", 'qms')
9905 rec( 10, 4, QueueID ),
9906 rec( 14, 4, JobNumberLong ),
9909 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9910 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9911 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00])
9913 pkt = NCP(0x1780, "Remove Job From Queue", 'qms')
9915 rec( 10, 4, QueueID ),
9916 rec( 14, 4, JobNumberLong ),
9919 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9920 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9921 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9923 pkt = NCP(0x1781, "Get Queue Job List", 'qms')
9925 rec( 10, 4, QueueID ),
9926 rec( 14, 4, JobNumberLong ),
9929 rec( 8, 4, TotalQueueJobs ),
9930 rec( 12, 4, ReplyQueueJobNumbers, var="x" ),
9931 rec( 16, 4, JobNumberLong, repeat="x" ),
9933 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9934 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9935 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9937 pkt = NCP(0x1782, "Change Job Priority", 'qms')
9939 rec( 10, 4, QueueID ),
9940 rec( 14, 4, JobNumberLong ),
9941 rec( 18, 4, Priority ),
9944 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9945 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9946 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9948 pkt = NCP(0x1783, "Finish Servicing Queue Job", 'qms')
9950 rec( 10, 4, QueueID ),
9951 rec( 14, 4, JobNumberLong ),
9952 rec( 18, 4, ChargeInformation ),
9955 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9956 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9957 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9959 pkt = NCP(0x1784, "Abort Servicing Queue Job", 'qms')
9961 rec( 10, 4, QueueID ),
9962 rec( 14, 4, JobNumberLong ),
9965 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9966 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9967 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9969 pkt = NCP(0x1785, "Change To Client Rights", 'qms')
9971 rec( 10, 4, QueueID ),
9972 rec( 14, 4, JobNumberLong ),
9975 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9976 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9977 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9979 pkt = NCP(0x1786, "Read Queue Server Current Status", 'qms')
9981 rec( 10, 4, QueueID ),
9982 rec( 14, 4, ServerID, BE ),
9983 rec( 18, 4, ServerStation ),
9986 rec( 8, 64, ServerStatusRecord ),
9988 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9989 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9990 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9992 pkt = NCP(0x1787, "Get Queue Job File Size", 'qms')
9994 rec( 10, 4, QueueID ),
9995 rec( 14, 4, JobNumberLong ),
9998 rec( 8, 4, QueueID ),
9999 rec( 12, 4, JobNumberLong ),
10000 rec( 16, 4, FileSize, BE ),
10002 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10003 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10004 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10005 # 2222/1788, 23/136
10006 pkt = NCP(0x1788, "Move Queue Job From Src Q to Dst Q", 'qms')
10008 rec( 10, 4, QueueID ),
10009 rec( 14, 4, JobNumberLong ),
10010 rec( 18, 4, DstQueueID ),
10013 rec( 8, 4, JobNumberLong ),
10015 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
10016 # 2222/1789, 23/137
10017 pkt = NCP(0x1789, "Get Queue Jobs From Form List", 'qms')
10019 rec( 10, 4, QueueID ),
10020 rec( 14, 4, QueueStartPosition ),
10021 rec( 18, 4, FormTypeCnt, var="x" ),
10022 rec( 22, 2, FormType, repeat="x" ),
10025 rec( 8, 4, TotalQueueJobs ),
10026 rec( 12, 4, JobCount, var="x" ),
10027 rec( 16, 4, JobNumberLong, repeat="x" ),
10029 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
10030 # 2222/178A, 23/138
10031 pkt = NCP(0x178A, "Service Queue Job By Form List", 'qms')
10033 rec( 10, 4, QueueID ),
10034 rec( 14, 4, QueueStartPosition ),
10035 rec( 18, 4, FormTypeCnt, var= "x" ),
10036 rec( 22, 2, FormType, repeat="x" ),
10039 rec( 8, 86, JobStructNew ),
10041 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
10042 # 2222/1796, 23/150
10043 pkt = NCP(0x1796, "Get Current Account Status", 'accounting')
10044 pkt.Request((13,60), [
10045 rec( 10, 2, ObjectType, BE ),
10046 rec( 12, (1,48), ObjectName ),
10047 ], info_str=(ObjectName, "Get Current Account Status: %s", ", %s"))
10049 rec( 8, 4, AccountBalance, BE ),
10050 rec( 12, 4, CreditLimit, BE ),
10051 rec( 16, 120, Reserved120 ),
10052 rec( 136, 4, HolderID, BE ),
10053 rec( 140, 4, HoldAmount, BE ),
10054 rec( 144, 4, HolderID, BE ),
10055 rec( 148, 4, HoldAmount, BE ),
10056 rec( 152, 4, HolderID, BE ),
10057 rec( 156, 4, HoldAmount, BE ),
10058 rec( 160, 4, HolderID, BE ),
10059 rec( 164, 4, HoldAmount, BE ),
10060 rec( 168, 4, HolderID, BE ),
10061 rec( 172, 4, HoldAmount, BE ),
10062 rec( 176, 4, HolderID, BE ),
10063 rec( 180, 4, HoldAmount, BE ),
10064 rec( 184, 4, HolderID, BE ),
10065 rec( 188, 4, HoldAmount, BE ),
10066 rec( 192, 4, HolderID, BE ),
10067 rec( 196, 4, HoldAmount, BE ),
10068 rec( 200, 4, HolderID, BE ),
10069 rec( 204, 4, HoldAmount, BE ),
10070 rec( 208, 4, HolderID, BE ),
10071 rec( 212, 4, HoldAmount, BE ),
10072 rec( 216, 4, HolderID, BE ),
10073 rec( 220, 4, HoldAmount, BE ),
10074 rec( 224, 4, HolderID, BE ),
10075 rec( 228, 4, HoldAmount, BE ),
10076 rec( 232, 4, HolderID, BE ),
10077 rec( 236, 4, HoldAmount, BE ),
10078 rec( 240, 4, HolderID, BE ),
10079 rec( 244, 4, HoldAmount, BE ),
10080 rec( 248, 4, HolderID, BE ),
10081 rec( 252, 4, HoldAmount, BE ),
10082 rec( 256, 4, HolderID, BE ),
10083 rec( 260, 4, HoldAmount, BE ),
10085 pkt.CompletionCodes([0x0000, 0x9600, 0xc000, 0xc101, 0xc400, 0xe800,
10086 0xea00, 0xeb00, 0xec00, 0xfc06, 0xfe07, 0xff00])
10087 # 2222/1797, 23/151
10088 pkt = NCP(0x1797, "Submit Account Charge", 'accounting')
10089 pkt.Request((26,327), [
10090 rec( 10, 2, ServiceType, BE ),
10091 rec( 12, 4, ChargeAmount, BE ),
10092 rec( 16, 4, HoldCancelAmount, BE ),
10093 rec( 20, 2, ObjectType, BE ),
10094 rec( 22, 2, CommentType, BE ),
10095 rec( 24, (1,48), ObjectName ),
10096 rec( -1, (1,255), Comment ),
10097 ], info_str=(ObjectName, "Submit Account Charge: %s", ", %s"))
10099 pkt.CompletionCodes([0x0000, 0x0102, 0x8800, 0x9400, 0x9600, 0xa201,
10100 0xc000, 0xc101, 0xc200, 0xc400, 0xe800, 0xea00,
10101 0xeb00, 0xec00, 0xfe07, 0xff00])
10102 # 2222/1798, 23/152
10103 pkt = NCP(0x1798, "Submit Account Hold", 'accounting')
10104 pkt.Request((17,64), [
10105 rec( 10, 4, HoldCancelAmount, BE ),
10106 rec( 14, 2, ObjectType, BE ),
10107 rec( 16, (1,48), ObjectName ),
10108 ], info_str=(ObjectName, "Submit Account Hold: %s", ", %s"))
10110 pkt.CompletionCodes([0x0000, 0x0102, 0x8800, 0x9400, 0x9600, 0xa201,
10111 0xc000, 0xc101, 0xc200, 0xc400, 0xe800, 0xea00,
10112 0xeb00, 0xec00, 0xfe07, 0xff00])
10113 # 2222/1799, 23/153
10114 pkt = NCP(0x1799, "Submit Account Note", 'accounting')
10115 pkt.Request((18,319), [
10116 rec( 10, 2, ServiceType, BE ),
10117 rec( 12, 2, ObjectType, BE ),
10118 rec( 14, 2, CommentType, BE ),
10119 rec( 16, (1,48), ObjectName ),
10120 rec( -1, (1,255), Comment ),
10121 ], info_str=(ObjectName, "Submit Account Note: %s", ", %s"))
10123 pkt.CompletionCodes([0x0000, 0x0102, 0x9600, 0xc000, 0xc101, 0xc400,
10124 0xe800, 0xea00, 0xeb00, 0xec00, 0xf000, 0xfc06,
10126 # 2222/17c8, 23/200
10127 pkt = NCP(0x17c8, "Check Console Privileges", 'stats')
10130 pkt.CompletionCodes([0x0000, 0xc601])
10131 # 2222/17c9, 23/201
10132 pkt = NCP(0x17c9, "Get File Server Description Strings", 'stats')
10135 rec( 8, 512, DescriptionStrings ),
10137 pkt.CompletionCodes([0x0000, 0x9600])
10138 # 2222/17CA, 23/202
10139 pkt = NCP(0x17CA, "Set File Server Date And Time", 'stats')
10141 rec( 10, 1, Year ),
10142 rec( 11, 1, Month ),
10144 rec( 13, 1, Hour ),
10145 rec( 14, 1, Minute ),
10146 rec( 15, 1, Second ),
10149 pkt.CompletionCodes([0x0000, 0xc601])
10150 # 2222/17CB, 23/203
10151 pkt = NCP(0x17CB, "Disable File Server Login", 'stats')
10154 pkt.CompletionCodes([0x0000, 0xc601])
10155 # 2222/17CC, 23/204
10156 pkt = NCP(0x17CC, "Enable File Server Login", 'stats')
10159 pkt.CompletionCodes([0x0000, 0xc601])
10160 # 2222/17CD, 23/205
10161 pkt = NCP(0x17CD, "Get File Server Login Status", 'stats')
10164 rec( 8, 4, UserLoginAllowed ),
10166 pkt.CompletionCodes([0x0000, 0x9600, 0xfb01])
10167 # 2222/17CF, 23/207
10168 pkt = NCP(0x17CF, "Disable Transaction Tracking", 'stats')
10171 pkt.CompletionCodes([0x0000, 0xc601])
10172 # 2222/17D0, 23/208
10173 pkt = NCP(0x17D0, "Enable Transaction Tracking", 'stats')
10176 pkt.CompletionCodes([0x0000, 0xc601])
10177 # 2222/17D1, 23/209
10178 pkt = NCP(0x17D1, "Send Console Broadcast", 'stats')
10179 pkt.Request((13,267), [
10180 rec( 10, 1, NumberOfStations, var="x" ),
10181 rec( 11, 1, StationList, repeat="x" ),
10182 rec( 12, (1, 255), TargetMessage ),
10183 ], info_str=(TargetMessage, "Send Console Broadcast: %s", ", %s"))
10185 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10186 # 2222/17D2, 23/210
10187 pkt = NCP(0x17D2, "Clear Connection Number", 'stats')
10189 rec( 10, 1, ConnectionNumber ),
10190 ],info_str=(ConnectionNumber, "Clear Connection Number %d", ", %d"))
10192 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10193 # 2222/17D3, 23/211
10194 pkt = NCP(0x17D3, "Down File Server", 'stats')
10196 rec( 10, 1, ForceFlag ),
10199 pkt.CompletionCodes([0x0000, 0xc601, 0xff00])
10200 # 2222/17D4, 23/212
10201 pkt = NCP(0x17D4, "Get File System Statistics", 'stats')
10204 rec( 8, 4, SystemIntervalMarker, BE ),
10205 rec( 12, 2, ConfiguredMaxOpenFiles ),
10206 rec( 14, 2, ActualMaxOpenFiles ),
10207 rec( 16, 2, CurrentOpenFiles ),
10208 rec( 18, 4, TotalFilesOpened ),
10209 rec( 22, 4, TotalReadRequests ),
10210 rec( 26, 4, TotalWriteRequests ),
10211 rec( 30, 2, CurrentChangedFATs ),
10212 rec( 32, 4, TotalChangedFATs ),
10213 rec( 36, 2, FATWriteErrors ),
10214 rec( 38, 2, FatalFATWriteErrors ),
10215 rec( 40, 2, FATScanErrors ),
10216 rec( 42, 2, ActualMaxIndexedFiles ),
10217 rec( 44, 2, ActiveIndexedFiles ),
10218 rec( 46, 2, AttachedIndexedFiles ),
10219 rec( 48, 2, AvailableIndexedFiles ),
10221 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10222 # 2222/17D5, 23/213
10223 pkt = NCP(0x17D5, "Get Transaction Tracking Statistics", 'stats')
10224 pkt.Request((13,267), [
10225 rec( 10, 2, LastRecordSeen ),
10226 rec( 12, (1,255), SemaphoreName ),
10229 rec( 8, 4, SystemIntervalMarker, BE ),
10230 rec( 12, 1, TransactionTrackingSupported ),
10231 rec( 13, 1, TransactionTrackingEnabled ),
10232 rec( 14, 2, TransactionVolumeNumber ),
10233 rec( 16, 2, ConfiguredMaxSimultaneousTransactions ),
10234 rec( 18, 2, ActualMaxSimultaneousTransactions ),
10235 rec( 20, 2, CurrentTransactionCount ),
10236 rec( 22, 4, TotalTransactionsPerformed ),
10237 rec( 26, 4, TotalWriteTransactionsPerformed ),
10238 rec( 30, 4, TotalTransactionsBackedOut ),
10239 rec( 34, 2, TotalUnfilledBackoutRequests ),
10240 rec( 36, 2, TransactionDiskSpace ),
10241 rec( 38, 4, TransactionFATAllocations ),
10242 rec( 42, 4, TransactionFileSizeChanges ),
10243 rec( 46, 4, TransactionFilesTruncated ),
10244 rec( 50, 1, NumberOfEntries, var="x" ),
10245 rec( 51, 2, ConnTaskStruct, repeat="x" ),
10247 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10248 # 2222/17D6, 23/214
10249 pkt = NCP(0x17D6, "Read Disk Cache Statistics", 'stats')
10252 rec( 8, 4, SystemIntervalMarker, BE ),
10253 rec( 12, 2, CacheBufferCount ),
10254 rec( 14, 2, CacheBufferSize ),
10255 rec( 16, 2, DirtyCacheBuffers ),
10256 rec( 18, 4, CacheReadRequests ),
10257 rec( 22, 4, CacheWriteRequests ),
10258 rec( 26, 4, CacheHits ),
10259 rec( 30, 4, CacheMisses ),
10260 rec( 34, 4, PhysicalReadRequests ),
10261 rec( 38, 4, PhysicalWriteRequests ),
10262 rec( 42, 2, PhysicalReadErrors ),
10263 rec( 44, 2, PhysicalWriteErrors ),
10264 rec( 46, 4, CacheGetRequests ),
10265 rec( 50, 4, CacheFullWriteRequests ),
10266 rec( 54, 4, CachePartialWriteRequests ),
10267 rec( 58, 4, BackgroundDirtyWrites ),
10268 rec( 62, 4, BackgroundAgedWrites ),
10269 rec( 66, 4, TotalCacheWrites ),
10270 rec( 70, 4, CacheAllocations ),
10271 rec( 74, 2, ThrashingCount ),
10272 rec( 76, 2, LRUBlockWasDirty ),
10273 rec( 78, 2, ReadBeyondWrite ),
10274 rec( 80, 2, FragmentWriteOccurred ),
10275 rec( 82, 2, CacheHitOnUnavailableBlock ),
10276 rec( 84, 2, CacheBlockScrapped ),
10278 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10279 # 2222/17D7, 23/215
10280 pkt = NCP(0x17D7, "Get Drive Mapping Table", 'stats')
10283 rec( 8, 4, SystemIntervalMarker, BE ),
10284 rec( 12, 1, SFTSupportLevel ),
10285 rec( 13, 1, LogicalDriveCount ),
10286 rec( 14, 1, PhysicalDriveCount ),
10287 rec( 15, 1, DiskChannelTable ),
10288 rec( 16, 4, Reserved4 ),
10289 rec( 20, 2, PendingIOCommands, BE ),
10290 rec( 22, 32, DriveMappingTable ),
10291 rec( 54, 32, DriveMirrorTable ),
10292 rec( 86, 32, DeadMirrorTable ),
10293 rec( 118, 1, ReMirrorDriveNumber ),
10294 rec( 119, 1, Filler ),
10295 rec( 120, 4, ReMirrorCurrentOffset, BE ),
10296 rec( 124, 60, SFTErrorTable ),
10298 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10299 # 2222/17D8, 23/216
10300 pkt = NCP(0x17D8, "Read Physical Disk Statistics", 'stats')
10302 rec( 10, 1, PhysicalDiskNumber ),
10305 rec( 8, 4, SystemIntervalMarker, BE ),
10306 rec( 12, 1, PhysicalDiskChannel ),
10307 rec( 13, 1, DriveRemovableFlag ),
10308 rec( 14, 1, PhysicalDriveType ),
10309 rec( 15, 1, ControllerDriveNumber ),
10310 rec( 16, 1, ControllerNumber ),
10311 rec( 17, 1, ControllerType ),
10312 rec( 18, 4, DriveSize ),
10313 rec( 22, 2, DriveCylinders ),
10314 rec( 24, 1, DriveHeads ),
10315 rec( 25, 1, SectorsPerTrack ),
10316 rec( 26, 64, DriveDefinitionString ),
10317 rec( 90, 2, IOErrorCount ),
10318 rec( 92, 4, HotFixTableStart ),
10319 rec( 96, 2, HotFixTableSize ),
10320 rec( 98, 2, HotFixBlocksAvailable ),
10321 rec( 100, 1, HotFixDisabled ),
10323 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10324 # 2222/17D9, 23/217
10325 pkt = NCP(0x17D9, "Get Disk Channel Statistics", 'stats')
10327 rec( 10, 1, DiskChannelNumber ),
10330 rec( 8, 4, SystemIntervalMarker, BE ),
10331 rec( 12, 2, ChannelState, BE ),
10332 rec( 14, 2, ChannelSynchronizationState, BE ),
10333 rec( 16, 1, SoftwareDriverType ),
10334 rec( 17, 1, SoftwareMajorVersionNumber ),
10335 rec( 18, 1, SoftwareMinorVersionNumber ),
10336 rec( 19, 65, SoftwareDescription ),
10337 rec( 84, 8, IOAddressesUsed ),
10338 rec( 92, 10, SharedMemoryAddresses ),
10339 rec( 102, 4, InterruptNumbersUsed ),
10340 rec( 106, 4, DMAChannelsUsed ),
10341 rec( 110, 1, FlagBits ),
10342 rec( 111, 1, Reserved ),
10343 rec( 112, 80, ConfigurationDescription ),
10345 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10346 # 2222/17DB, 23/219
10347 pkt = NCP(0x17DB, "Get Connection's Open Files", 'file')
10349 rec( 10, 2, ConnectionNumber ),
10350 rec( 12, 2, LastRecordSeen, BE ),
10353 rec( 8, 2, NextRequestRecord ),
10354 rec( 10, 1, NumberOfRecords, var="x" ),
10355 rec( 11, 21, ConnStruct, repeat="x" ),
10357 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10358 # 2222/17DC, 23/220
10359 pkt = NCP(0x17DC, "Get Connection Using A File", 'file')
10360 pkt.Request((14,268), [
10361 rec( 10, 2, LastRecordSeen, BE ),
10362 rec( 12, 1, DirHandle ),
10363 rec( 13, (1,255), Path ),
10364 ], info_str=(Path, "Get Connection Using File: %s", ", %s"))
10366 rec( 8, 2, UseCount, BE ),
10367 rec( 10, 2, OpenCount, BE ),
10368 rec( 12, 2, OpenForReadCount, BE ),
10369 rec( 14, 2, OpenForWriteCount, BE ),
10370 rec( 16, 2, DenyReadCount, BE ),
10371 rec( 18, 2, DenyWriteCount, BE ),
10372 rec( 20, 2, NextRequestRecord, BE ),
10373 rec( 22, 1, Locked ),
10374 rec( 23, 1, NumberOfRecords, var="x" ),
10375 rec( 24, 6, ConnFileStruct, repeat="x" ),
10377 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10378 # 2222/17DD, 23/221
10379 pkt = NCP(0x17DD, "Get Physical Record Locks By Connection And File", 'file')
10381 rec( 10, 2, TargetConnectionNumber ),
10382 rec( 12, 2, LastRecordSeen, BE ),
10383 rec( 14, 1, VolumeNumber ),
10384 rec( 15, 2, DirectoryID ),
10385 rec( 17, 14, FileName14 ),
10386 ], info_str=(FileName14, "Get Physical Record Locks by Connection and File: %s", ", %s"))
10388 rec( 8, 2, NextRequestRecord ),
10389 rec( 10, 1, NumberOfLocks, var="x" ),
10390 rec( 11, 1, Reserved ),
10391 rec( 12, 10, LockStruct, repeat="x" ),
10393 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10394 # 2222/17DE, 23/222
10395 pkt = NCP(0x17DE, "Get Physical Record Locks By File", 'file')
10396 pkt.Request((14,268), [
10397 rec( 10, 2, TargetConnectionNumber ),
10398 rec( 12, 1, DirHandle ),
10399 rec( 13, (1,255), Path ),
10400 ], info_str=(Path, "Get Physical Record Locks by File: %s", ", %s"))
10402 rec( 8, 2, NextRequestRecord ),
10403 rec( 10, 1, NumberOfLocks, var="x" ),
10404 rec( 11, 1, Reserved ),
10405 rec( 12, 16, PhyLockStruct, repeat="x" ),
10407 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10408 # 2222/17DF, 23/223
10409 pkt = NCP(0x17DF, "Get Logical Records By Connection", 'file')
10411 rec( 10, 2, TargetConnectionNumber ),
10412 rec( 12, 2, LastRecordSeen, BE ),
10414 pkt.Reply((14,268), [
10415 rec( 8, 2, NextRequestRecord ),
10416 rec( 10, 1, NumberOfRecords, var="x" ),
10417 rec( 11, (3, 257), LogLockStruct, repeat="x" ),
10419 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10420 # 2222/17E0, 23/224
10421 pkt = NCP(0x17E0, "Get Logical Record Information", 'file')
10422 pkt.Request((13,267), [
10423 rec( 10, 2, LastRecordSeen ),
10424 rec( 12, (1,255), LogicalRecordName ),
10425 ], info_str=(LogicalRecordName, "Get Logical Record Information: %s", ", %s"))
10427 rec( 8, 2, UseCount, BE ),
10428 rec( 10, 2, ShareableLockCount, BE ),
10429 rec( 12, 2, NextRequestRecord ),
10430 rec( 14, 1, Locked ),
10431 rec( 15, 1, NumberOfRecords, var="x" ),
10432 rec( 16, 4, LogRecStruct, repeat="x" ),
10434 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10435 # 2222/17E1, 23/225
10436 pkt = NCP(0x17E1, "Get Connection's Semaphores", 'file')
10438 rec( 10, 2, ConnectionNumber ),
10439 rec( 12, 2, LastRecordSeen ),
10441 pkt.Reply((18,272), [
10442 rec( 8, 2, NextRequestRecord ),
10443 rec( 10, 2, NumberOfSemaphores, var="x" ),
10444 rec( 12, (6,260), SemaStruct, repeat="x" ),
10446 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10447 # 2222/17E2, 23/226
10448 pkt = NCP(0x17E2, "Get Semaphore Information", 'file')
10449 pkt.Request((13,267), [
10450 rec( 10, 2, LastRecordSeen ),
10451 rec( 12, (1,255), SemaphoreName ),
10452 ], info_str=(SemaphoreName, "Get Semaphore Information: %s", ", %s"))
10454 rec( 8, 2, NextRequestRecord, BE ),
10455 rec( 10, 2, OpenCount, BE ),
10456 rec( 12, 1, SemaphoreValue ),
10457 rec( 13, 1, NumberOfRecords, var="x" ),
10458 rec( 14, 3, SemaInfoStruct, repeat="x" ),
10460 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10461 # 2222/17E3, 23/227
10462 pkt = NCP(0x17E3, "Get LAN Driver Configuration Information", 'stats')
10464 rec( 10, 1, LANDriverNumber ),
10467 rec( 8, 4, NetworkAddress, BE ),
10468 rec( 12, 6, HostAddress ),
10469 rec( 18, 1, BoardInstalled ),
10470 rec( 19, 1, OptionNumber ),
10471 rec( 20, 160, ConfigurationText ),
10473 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10474 # 2222/17E5, 23/229
10475 pkt = NCP(0x17E5, "Get Connection Usage Statistics", 'stats')
10477 rec( 10, 2, ConnectionNumber ),
10480 rec( 8, 2, NextRequestRecord ),
10481 rec( 10, 6, BytesRead ),
10482 rec( 16, 6, BytesWritten ),
10483 rec( 22, 4, TotalRequestPackets ),
10485 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10486 # 2222/17E6, 23/230
10487 pkt = NCP(0x17E6, "Get Object's Remaining Disk Space", 'stats')
10489 rec( 10, 4, ObjectID, BE ),
10492 rec( 8, 4, SystemIntervalMarker, BE ),
10493 rec( 12, 4, ObjectID ),
10494 rec( 16, 4, UnusedDiskBlocks, BE ),
10495 rec( 20, 1, RestrictionsEnforced ),
10497 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10498 # 2222/17E7, 23/231
10499 pkt = NCP(0x17E7, "Get File Server LAN I/O Statistics", 'stats')
10502 rec( 8, 4, SystemIntervalMarker, BE ),
10503 rec( 12, 2, ConfiguredMaxRoutingBuffers ),
10504 rec( 14, 2, ActualMaxUsedRoutingBuffers ),
10505 rec( 16, 2, CurrentlyUsedRoutingBuffers ),
10506 rec( 18, 4, TotalFileServicePackets ),
10507 rec( 22, 2, TurboUsedForFileService ),
10508 rec( 24, 2, PacketsFromInvalidConnection ),
10509 rec( 26, 2, BadLogicalConnectionCount ),
10510 rec( 28, 2, PacketsReceivedDuringProcessing ),
10511 rec( 30, 2, RequestsReprocessed ),
10512 rec( 32, 2, PacketsWithBadSequenceNumber ),
10513 rec( 34, 2, DuplicateRepliesSent ),
10514 rec( 36, 2, PositiveAcknowledgesSent ),
10515 rec( 38, 2, PacketsWithBadRequestType ),
10516 rec( 40, 2, AttachDuringProcessing ),
10517 rec( 42, 2, AttachWhileProcessingAttach ),
10518 rec( 44, 2, ForgedDetachedRequests ),
10519 rec( 46, 2, DetachForBadConnectionNumber ),
10520 rec( 48, 2, DetachDuringProcessing ),
10521 rec( 50, 2, RepliesCancelled ),
10522 rec( 52, 2, PacketsDiscardedByHopCount ),
10523 rec( 54, 2, PacketsDiscardedUnknownNet ),
10524 rec( 56, 2, IncomingPacketDiscardedNoDGroup ),
10525 rec( 58, 2, OutgoingPacketDiscardedNoTurboBuffer ),
10526 rec( 60, 2, IPXNotMyNetwork ),
10527 rec( 62, 4, NetBIOSBroadcastWasPropogated ),
10528 rec( 66, 4, TotalOtherPackets ),
10529 rec( 70, 4, TotalRoutedPackets ),
10531 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10532 # 2222/17E8, 23/232
10533 pkt = NCP(0x17E8, "Get File Server Misc Information", 'stats')
10536 rec( 8, 4, SystemIntervalMarker, BE ),
10537 rec( 12, 1, ProcessorType ),
10538 rec( 13, 1, Reserved ),
10539 rec( 14, 1, NumberOfServiceProcesses ),
10540 rec( 15, 1, ServerUtilizationPercentage ),
10541 rec( 16, 2, ConfiguredMaxBinderyObjects ),
10542 rec( 18, 2, ActualMaxBinderyObjects ),
10543 rec( 20, 2, CurrentUsedBinderyObjects ),
10544 rec( 22, 2, TotalServerMemory ),
10545 rec( 24, 2, WastedServerMemory ),
10546 rec( 26, 2, NumberOfDynamicMemoryAreas, var="x" ),
10547 rec( 28, 12, DynMemStruct, repeat="x" ),
10549 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10550 # 2222/17E9, 23/233
10551 pkt = NCP(0x17E9, "Get Volume Information", 'stats')
10553 rec( 10, 1, VolumeNumber ),
10554 ],info_str=(VolumeNumber, "Get Information on Volume %d", ", %d"))
10556 rec( 8, 4, SystemIntervalMarker, BE ),
10557 rec( 12, 1, VolumeNumber ),
10558 rec( 13, 1, LogicalDriveNumber ),
10559 rec( 14, 2, BlockSize ),
10560 rec( 16, 2, StartingBlock ),
10561 rec( 18, 2, TotalBlocks ),
10562 rec( 20, 2, FreeBlocks ),
10563 rec( 22, 2, TotalDirectoryEntries ),
10564 rec( 24, 2, FreeDirectoryEntries ),
10565 rec( 26, 2, ActualMaxUsedDirectoryEntries ),
10566 rec( 28, 1, VolumeHashedFlag ),
10567 rec( 29, 1, VolumeCachedFlag ),
10568 rec( 30, 1, VolumeRemovableFlag ),
10569 rec( 31, 1, VolumeMountedFlag ),
10570 rec( 32, 16, VolumeName ),
10572 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10573 # 2222/17EA, 23/234
10574 pkt = NCP(0x17EA, "Get Connection's Task Information", 'stats')
10576 rec( 10, 2, ConnectionNumber ),
10579 rec( 8, 2, NextRequestRecord ),
10580 rec( 10, 4, NumberOfAttributes, var="x" ),
10581 rec( 14, 4, Attributes, repeat="x" ),
10583 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10584 # 2222/17EB, 23/235
10585 pkt = NCP(0x17EB, "Get Connection's Open Files", 'file')
10587 rec( 10, 2, ConnectionNumber ),
10588 rec( 12, 2, LastRecordSeen ),
10590 pkt.Reply((29,283), [
10591 rec( 8, 2, NextRequestRecord ),
10592 rec( 10, 2, NumberOfRecords, var="x" ),
10593 rec( 12, (17, 271), OpnFilesStruct, repeat="x" ),
10595 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10596 # 2222/17EC, 23/236
10597 pkt = NCP(0x17EC, "Get Connection Using A File", 'file')
10599 rec( 10, 1, DataStreamNumber ),
10600 rec( 11, 1, VolumeNumber ),
10601 rec( 12, 4, DirectoryBase, LE ),
10602 rec( 16, 2, LastRecordSeen ),
10605 rec( 8, 2, NextRequestRecord ),
10606 rec( 10, 2, UseCount ),
10607 rec( 12, 2, OpenCount ),
10608 rec( 14, 2, OpenForReadCount ),
10609 rec( 16, 2, OpenForWriteCount ),
10610 rec( 18, 2, DenyReadCount ),
10611 rec( 20, 2, DenyWriteCount ),
10612 rec( 22, 1, Locked ),
10613 rec( 23, 1, ForkCount ),
10614 rec( 24, 2, NumberOfRecords, var="x" ),
10615 rec( 26, 7, ConnStruct, repeat="x" ),
10617 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10618 # 2222/17ED, 23/237
10619 pkt = NCP(0x17ED, "Get Physical Record Locks By Connection And File", 'file')
10621 rec( 10, 2, TargetConnectionNumber ),
10622 rec( 12, 1, DataStreamNumber ),
10623 rec( 13, 1, VolumeNumber ),
10624 rec( 14, 4, DirectoryBase, LE ),
10625 rec( 18, 2, LastRecordSeen ),
10628 rec( 8, 2, NextRequestRecord ),
10629 rec( 10, 2, NumberOfLocks, var="x" ),
10630 rec( 12, 11, LockStruct, repeat="x" ),
10632 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10633 # 2222/17EE, 23/238
10634 pkt = NCP(0x17EE, "Get Physical Record Locks By File", 'file')
10636 rec( 10, 1, DataStreamNumber ),
10637 rec( 11, 1, VolumeNumber ),
10638 rec( 12, 4, DirectoryBase ),
10639 rec( 16, 2, LastRecordSeen ),
10642 rec( 8, 2, NextRequestRecord ),
10643 rec( 10, 2, NumberOfLocks, var="x" ),
10644 rec( 12, 18, PhyLockStruct, repeat="x" ),
10646 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10647 # 2222/17EF, 23/239
10648 pkt = NCP(0x17EF, "Get Logical Records By Connection", 'file')
10650 rec( 10, 2, TargetConnectionNumber ),
10651 rec( 12, 2, LastRecordSeen ),
10653 pkt.Reply((16,270), [
10654 rec( 8, 2, NextRequestRecord ),
10655 rec( 10, 2, NumberOfRecords, var="x" ),
10656 rec( 12, (4, 258), LogLockStruct, repeat="x" ),
10658 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10659 # 2222/17F0, 23/240
10660 pkt = NCP(0x17F0, "Get Logical Record Information (old)", 'file')
10661 pkt.Request((13,267), [
10662 rec( 10, 2, LastRecordSeen ),
10663 rec( 12, (1,255), LogicalRecordName ),
10666 rec( 8, 2, ShareableLockCount ),
10667 rec( 10, 2, UseCount ),
10668 rec( 12, 1, Locked ),
10669 rec( 13, 2, NextRequestRecord ),
10670 rec( 15, 2, NumberOfRecords, var="x" ),
10671 rec( 17, 5, LogRecStruct, repeat="x" ),
10673 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10674 # 2222/17F1, 23/241
10675 pkt = NCP(0x17F1, "Get Connection's Semaphores", 'file')
10677 rec( 10, 2, ConnectionNumber ),
10678 rec( 12, 2, LastRecordSeen ),
10680 pkt.Reply((19,273), [
10681 rec( 8, 2, NextRequestRecord ),
10682 rec( 10, 2, NumberOfSemaphores, var="x" ),
10683 rec( 12, (7, 261), SemaStruct, repeat="x" ),
10685 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10686 # 2222/17F2, 23/242
10687 pkt = NCP(0x17F2, "Get Semaphore Information", 'file')
10688 pkt.Request((13,267), [
10689 rec( 10, 2, LastRecordSeen ),
10690 rec( 12, (1,255), SemaphoreName ),
10691 ], info_str=(SemaphoreName, "Get Semaphore Information: %s", ", %s"))
10693 rec( 8, 2, NextRequestRecord ),
10694 rec( 10, 2, OpenCount ),
10695 rec( 12, 2, SemaphoreValue ),
10696 rec( 14, 2, NumberOfRecords, var="x" ),
10697 rec( 16, 4, SemaInfoStruct, repeat="x" ),
10699 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10700 # 2222/17F3, 23/243
10701 pkt = NCP(0x17F3, "Map Directory Number to Path", 'file')
10703 rec( 10, 1, VolumeNumber ),
10704 rec( 11, 4, DirectoryNumber ),
10705 rec( 15, 1, NameSpace ),
10707 pkt.Reply((9,263), [
10708 rec( 8, (1,255), Path ),
10710 pkt.CompletionCodes([0x0000, 0x9600, 0x9c00, 0xc601, 0xfd00, 0xff00])
10711 # 2222/17F4, 23/244
10712 pkt = NCP(0x17F4, "Convert Path to Dir Entry", 'file')
10713 pkt.Request((12,266), [
10714 rec( 10, 1, DirHandle ),
10715 rec( 11, (1,255), Path ),
10716 ], info_str=(Path, "Convert Path to Directory Entry: %s", ", %s"))
10718 rec( 8, 1, VolumeNumber ),
10719 rec( 9, 4, DirectoryNumber ),
10721 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10722 # 2222/17FD, 23/253
10723 pkt = NCP(0x17FD, "Send Console Broadcast", 'stats')
10724 pkt.Request((16, 270), [
10725 rec( 10, 1, NumberOfStations, var="x" ),
10726 rec( 11, 4, StationList, repeat="x" ),
10727 rec( 15, (1, 255), TargetMessage ),
10728 ], info_str=(TargetMessage, "Send Console Broadcast: %s", ", %s"))
10730 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10731 # 2222/17FE, 23/254
10732 pkt = NCP(0x17FE, "Clear Connection Number", 'stats')
10734 rec( 10, 4, ConnectionNumber ),
10737 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10739 pkt = NCP(0x18, "End of Job", 'connection')
10742 pkt.CompletionCodes([0x0000])
10744 pkt = NCP(0x19, "Logout", 'connection')
10747 pkt.CompletionCodes([0x0000])
10749 pkt = NCP(0x1A, "Log Physical Record", 'file')
10751 rec( 7, 1, LockFlag ),
10752 rec( 8, 6, FileHandle ),
10753 rec( 14, 4, LockAreasStartOffset, BE ),
10754 rec( 18, 4, LockAreaLen, BE ),
10755 rec( 22, 2, LockTimeout ),
10758 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
10760 pkt = NCP(0x1B, "Lock Physical Record Set", 'file')
10762 rec( 7, 1, LockFlag ),
10763 rec( 8, 2, LockTimeout ),
10766 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
10768 pkt = NCP(0x1C, "Release Physical Record", 'file')
10770 rec( 7, 1, Reserved ),
10771 rec( 8, 6, FileHandle ),
10772 rec( 14, 4, LockAreasStartOffset ),
10773 rec( 18, 4, LockAreaLen ),
10776 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10778 pkt = NCP(0x1D, "Release Physical Record Set", 'file')
10780 rec( 7, 1, LockFlag ),
10783 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10784 # 2222/1E, 30 #Tested and fixed 6-14-02 GM
10785 pkt = NCP(0x1E, "Clear Physical Record", 'file')
10787 rec( 7, 1, Reserved ),
10788 rec( 8, 6, FileHandle ),
10789 rec( 14, 4, LockAreasStartOffset, BE ),
10790 rec( 18, 4, LockAreaLen, BE ),
10793 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10795 pkt = NCP(0x1F, "Clear Physical Record Set", 'file')
10797 rec( 7, 1, LockFlag ),
10800 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10802 pkt = NCP(0x2000, "Open Semaphore", 'file', has_length=0)
10804 rec( 8, 1, InitialSemaphoreValue ),
10805 rec( 9, 1, SemaphoreNameLen ),
10808 rec( 8, 4, SemaphoreHandle, BE ),
10809 rec( 12, 1, SemaphoreOpenCount ),
10811 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10813 pkt = NCP(0x2001, "Examine Semaphore", 'file', has_length=0)
10815 rec( 8, 4, SemaphoreHandle, BE ),
10818 rec( 8, 1, SemaphoreValue ),
10819 rec( 9, 1, SemaphoreOpenCount ),
10821 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10823 pkt = NCP(0x2002, "Wait On Semaphore", 'file', has_length=0)
10825 rec( 8, 4, SemaphoreHandle, BE ),
10826 rec( 12, 2, SemaphoreTimeOut, BE ),
10829 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10831 pkt = NCP(0x2003, "Signal Semaphore", 'file', has_length=0)
10833 rec( 8, 4, SemaphoreHandle, BE ),
10836 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10838 pkt = NCP(0x2004, "Close Semaphore", 'file', has_length=0)
10840 rec( 8, 4, SemaphoreHandle, BE ),
10843 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10845 pkt = NCP(0x21, "Negotiate Buffer Size", 'connection')
10847 rec( 7, 2, BufferSize, BE ),
10850 rec( 8, 2, BufferSize, BE ),
10852 pkt.CompletionCodes([0x0000])
10854 pkt = NCP(0x2200, "TTS Is Available", 'tts', has_length=0)
10857 pkt.CompletionCodes([0x0001, 0xfd03, 0xff12])
10859 pkt = NCP(0x2201, "TTS Begin Transaction", 'tts', has_length=0)
10862 pkt.CompletionCodes([0x0000])
10864 pkt = NCP(0x2202, "TTS End Transaction", 'tts', has_length=0)
10867 rec( 8, 4, TransactionNumber, BE ),
10869 pkt.CompletionCodes([0x0000, 0xff01])
10871 pkt = NCP(0x2203, "TTS Abort Transaction", 'tts', has_length=0)
10874 pkt.CompletionCodes([0x0000, 0xfd03, 0xfe0b, 0xff01])
10876 pkt = NCP(0x2204, "TTS Transaction Status", 'tts', has_length=0)
10878 rec( 8, 4, TransactionNumber, BE ),
10881 pkt.CompletionCodes([0x0000])
10883 pkt = NCP(0x2205, "TTS Get Application Thresholds", 'tts', has_length=0)
10886 rec( 8, 1, LogicalLockThreshold ),
10887 rec( 9, 1, PhysicalLockThreshold ),
10889 pkt.CompletionCodes([0x0000])
10891 pkt = NCP(0x2206, "TTS Set Application Thresholds", 'tts', has_length=0)
10893 rec( 8, 1, LogicalLockThreshold ),
10894 rec( 9, 1, PhysicalLockThreshold ),
10897 pkt.CompletionCodes([0x0000, 0x9600])
10899 pkt = NCP(0x2207, "TTS Get Workstation Thresholds", 'tts', has_length=0)
10901 rec( 8, 1, LogicalLockThreshold ),
10902 rec( 9, 1, PhysicalLockThreshold ),
10905 pkt.CompletionCodes([0x0000])
10907 pkt = NCP(0x2208, "TTS Set Workstation Thresholds", 'tts', has_length=0)
10909 rec( 8, 1, LogicalLockThreshold ),
10910 rec( 9, 1, PhysicalLockThreshold ),
10913 pkt.CompletionCodes([0x0000])
10915 pkt = NCP(0x2209, "TTS Get Transaction Bits", 'tts', has_length=0)
10918 rec( 8, 1, ControlFlags ),
10920 pkt.CompletionCodes([0x0000])
10922 pkt = NCP(0x220A, "TTS Set Transaction Bits", 'tts', has_length=0)
10924 rec( 8, 1, ControlFlags ),
10927 pkt.CompletionCodes([0x0000])
10929 pkt = NCP(0x2301, "AFP Create Directory", 'afp')
10930 pkt.Request((49, 303), [
10931 rec( 10, 1, VolumeNumber ),
10932 rec( 11, 4, BaseDirectoryID ),
10933 rec( 15, 1, Reserved ),
10934 rec( 16, 4, CreatorID ),
10935 rec( 20, 4, Reserved4 ),
10936 rec( 24, 2, FinderAttr ),
10937 rec( 26, 2, HorizLocation ),
10938 rec( 28, 2, VertLocation ),
10939 rec( 30, 2, FileDirWindow ),
10940 rec( 32, 16, Reserved16 ),
10941 rec( 48, (1,255), Path ),
10942 ], info_str=(Path, "AFP Create Directory: %s", ", %s"))
10944 rec( 8, 4, NewDirectoryID ),
10946 pkt.CompletionCodes([0x0000, 0x8301, 0x8400, 0x8800, 0x9300, 0x9600, 0x9804,
10947 0x9900, 0x9c03, 0x9e02, 0xa100, 0xa201, 0xfd00, 0xff18])
10949 pkt = NCP(0x2302, "AFP Create File", 'afp')
10950 pkt.Request((49, 303), [
10951 rec( 10, 1, VolumeNumber ),
10952 rec( 11, 4, BaseDirectoryID ),
10953 rec( 15, 1, DeleteExistingFileFlag ),
10954 rec( 16, 4, CreatorID, BE ),
10955 rec( 20, 4, Reserved4 ),
10956 rec( 24, 2, FinderAttr ),
10957 rec( 26, 2, HorizLocation, BE ),
10958 rec( 28, 2, VertLocation, BE ),
10959 rec( 30, 2, FileDirWindow, BE ),
10960 rec( 32, 16, Reserved16 ),
10961 rec( 48, (1,255), Path ),
10962 ], info_str=(Path, "AFP Create File: %s", ", %s"))
10964 rec( 8, 4, NewDirectoryID ),
10966 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8400, 0x8701, 0x8800,
10967 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9300, 0x9600, 0x9804,
10968 0x9900, 0x9b03, 0x9c03, 0x9e02, 0xa100, 0xa201, 0xfd00,
10971 pkt = NCP(0x2303, "AFP Delete", 'afp')
10972 pkt.Request((16,270), [
10973 rec( 10, 1, VolumeNumber ),
10974 rec( 11, 4, BaseDirectoryID ),
10975 rec( 15, (1,255), Path ),
10976 ], info_str=(Path, "AFP Delete: %s", ", %s"))
10978 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x8a00, 0x8d00, 0x8e00, 0x8f00,
10979 0x9000, 0x9300, 0x9600, 0x9804, 0x9b03, 0x9c03, 0x9e02,
10980 0xa000, 0xa100, 0xa201, 0xfd00, 0xff19])
10982 pkt = NCP(0x2304, "AFP Get Entry ID From Name", 'afp')
10983 pkt.Request((16,270), [
10984 rec( 10, 1, VolumeNumber ),
10985 rec( 11, 4, BaseDirectoryID ),
10986 rec( 15, (1,255), Path ),
10987 ], info_str=(Path, "AFP Get Entry from Name: %s", ", %s"))
10989 rec( 8, 4, TargetEntryID, BE ),
10991 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
10992 0xa100, 0xa201, 0xfd00, 0xff19])
10994 pkt = NCP(0x2305, "AFP Get File Information", 'afp')
10995 pkt.Request((18,272), [
10996 rec( 10, 1, VolumeNumber ),
10997 rec( 11, 4, BaseDirectoryID ),
10998 rec( 15, 2, RequestBitMap, BE ),
10999 rec( 17, (1,255), Path ),
11000 ], info_str=(Path, "AFP Get File Information: %s", ", %s"))
11002 rec( 8, 4, AFPEntryID, BE ),
11003 rec( 12, 4, ParentID, BE ),
11004 rec( 16, 2, AttributesDef16, LE ),
11005 rec( 18, 4, DataForkLen, BE ),
11006 rec( 22, 4, ResourceForkLen, BE ),
11007 rec( 26, 2, TotalOffspring, BE ),
11008 rec( 28, 2, CreationDate, BE ),
11009 rec( 30, 2, LastAccessedDate, BE ),
11010 rec( 32, 2, ModifiedDate, BE ),
11011 rec( 34, 2, ModifiedTime, BE ),
11012 rec( 36, 2, ArchivedDate, BE ),
11013 rec( 38, 2, ArchivedTime, BE ),
11014 rec( 40, 4, CreatorID, BE ),
11015 rec( 44, 4, Reserved4 ),
11016 rec( 48, 2, FinderAttr ),
11017 rec( 50, 2, HorizLocation ),
11018 rec( 52, 2, VertLocation ),
11019 rec( 54, 2, FileDirWindow ),
11020 rec( 56, 16, Reserved16 ),
11021 rec( 72, 32, LongName ),
11022 rec( 104, 4, CreatorID, BE ),
11023 rec( 108, 12, ShortName ),
11024 rec( 120, 1, AccessPrivileges ),
11026 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
11027 0xa100, 0xa201, 0xfd00, 0xff19])
11029 pkt = NCP(0x2306, "AFP Get Entry ID From NetWare Handle", 'afp')
11031 rec( 10, 6, FileHandle ),
11034 rec( 8, 1, VolumeID ),
11035 rec( 9, 4, TargetEntryID, BE ),
11036 rec( 13, 1, ForkIndicator ),
11038 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0xa201])
11040 pkt = NCP(0x2307, "AFP Rename", 'afp')
11041 pkt.Request((21, 529), [
11042 rec( 10, 1, VolumeNumber ),
11043 rec( 11, 4, MacSourceBaseID, BE ),
11044 rec( 15, 4, MacDestinationBaseID, BE ),
11045 rec( 19, (1,255), Path ),
11046 rec( -1, (1,255), NewFileNameLen ),
11047 ], info_str=(Path, "AFP Rename: %s", ", %s"))
11049 pkt.CompletionCodes([0x0000, 0x8301, 0x8401, 0x8800, 0x8b00, 0x8e00,
11050 0x9001, 0x9201, 0x9300, 0x9600, 0x9804, 0x9900,
11051 0x9c03, 0x9e00, 0xa100, 0xa201, 0xfd00, 0xff0a])
11053 pkt = NCP(0x2308, "AFP Open File Fork", 'afp')
11054 pkt.Request((18, 272), [
11055 rec( 10, 1, VolumeNumber ),
11056 rec( 11, 4, MacBaseDirectoryID ),
11057 rec( 15, 1, ForkIndicator ),
11058 rec( 16, 1, AccessMode ),
11059 rec( 17, (1,255), Path ),
11060 ], info_str=(Path, "AFP Open File Fork: %s", ", %s"))
11062 rec( 8, 4, AFPEntryID, BE ),
11063 rec( 12, 4, DataForkLen, BE ),
11064 rec( 16, 6, NetWareAccessHandle ),
11066 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8800, 0x9300,
11067 0x9400, 0x9600, 0x9804, 0x9900, 0x9c03, 0xa100,
11068 0xa201, 0xfd00, 0xff16])
11070 pkt = NCP(0x2309, "AFP Set File Information", 'afp')
11071 pkt.Request((64, 318), [
11072 rec( 10, 1, VolumeNumber ),
11073 rec( 11, 4, MacBaseDirectoryID ),
11074 rec( 15, 2, RequestBitMap, BE ),
11075 rec( 17, 2, MacAttr, BE ),
11076 rec( 19, 2, CreationDate, BE ),
11077 rec( 21, 2, LastAccessedDate, BE ),
11078 rec( 23, 2, ModifiedDate, BE ),
11079 rec( 25, 2, ModifiedTime, BE ),
11080 rec( 27, 2, ArchivedDate, BE ),
11081 rec( 29, 2, ArchivedTime, BE ),
11082 rec( 31, 4, CreatorID, BE ),
11083 rec( 35, 4, Reserved4 ),
11084 rec( 39, 2, FinderAttr ),
11085 rec( 41, 2, HorizLocation ),
11086 rec( 43, 2, VertLocation ),
11087 rec( 45, 2, FileDirWindow ),
11088 rec( 47, 16, Reserved16 ),
11089 rec( 63, (1,255), Path ),
11090 ], info_str=(Path, "AFP Set File Information: %s", ", %s"))
11092 pkt.CompletionCodes([0x0000, 0x0104, 0x8301, 0x8800, 0x9300, 0x9400,
11093 0x9500, 0x9600, 0x9804, 0x9c03, 0xa100, 0xa201,
11096 pkt = NCP(0x230A, "AFP Scan File Information", 'afp')
11097 pkt.Request((26, 280), [
11098 rec( 10, 1, VolumeNumber ),
11099 rec( 11, 4, MacBaseDirectoryID ),
11100 rec( 15, 4, MacLastSeenID, BE ),
11101 rec( 19, 2, DesiredResponseCount, BE ),
11102 rec( 21, 2, SearchBitMap, BE ),
11103 rec( 23, 2, RequestBitMap, BE ),
11104 rec( 25, (1,255), Path ),
11105 ], info_str=(Path, "AFP Scan File Information: %s", ", %s"))
11107 rec( 8, 2, ActualResponseCount, BE, var="x" ),
11108 rec( 10, 113, AFP10Struct, repeat="x" ),
11110 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804,
11111 0x9c03, 0xa100, 0xa201, 0xfd00, 0xff16])
11113 pkt = NCP(0x230B, "AFP Alloc Temporary Directory Handle", 'afp')
11114 pkt.Request((16,270), [
11115 rec( 10, 1, VolumeNumber ),
11116 rec( 11, 4, MacBaseDirectoryID ),
11117 rec( 15, (1,255), Path ),
11118 ], info_str=(Path, "AFP Allocate Temporary Directory Handle: %s", ", %s"))
11120 rec( 8, 1, DirHandle ),
11121 rec( 9, 1, AccessRightsMask ),
11123 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600,
11124 0x9804, 0x9b03, 0x9c03, 0x9d00, 0xa100,
11125 0xa201, 0xfd00, 0xff00])
11127 pkt = NCP(0x230C, "AFP Get Entry ID From Path Name", 'afp')
11128 pkt.Request((12,266), [
11129 rec( 10, 1, DirHandle ),
11130 rec( 11, (1,255), Path ),
11131 ], info_str=(Path, "AFP Get Entry ID from Path Name: %s", ", %s"))
11133 rec( 8, 4, AFPEntryID, BE ),
11135 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600,
11136 0x9804, 0x9b03, 0x9c03, 0xa100, 0xa201,
11139 pkt = NCP(0x230D, "AFP 2.0 Create Directory", 'afp')
11140 pkt.Request((55,309), [
11141 rec( 10, 1, VolumeNumber ),
11142 rec( 11, 4, BaseDirectoryID ),
11143 rec( 15, 1, Reserved ),
11144 rec( 16, 4, CreatorID, BE ),
11145 rec( 20, 4, Reserved4 ),
11146 rec( 24, 2, FinderAttr ),
11147 rec( 26, 2, HorizLocation ),
11148 rec( 28, 2, VertLocation ),
11149 rec( 30, 2, FileDirWindow ),
11150 rec( 32, 16, Reserved16 ),
11151 rec( 48, 6, ProDOSInfo ),
11152 rec( 54, (1,255), Path ),
11153 ], info_str=(Path, "AFP 2.0 Create Directory: %s", ", %s"))
11155 rec( 8, 4, NewDirectoryID ),
11157 pkt.CompletionCodes([0x0000, 0x8301, 0x8400, 0x8800, 0x9300,
11158 0x9600, 0x9804, 0x9900, 0x9c03, 0x9e00,
11159 0xa100, 0xa201, 0xfd00, 0xff00])
11161 pkt = NCP(0x230E, "AFP 2.0 Create File", 'afp')
11162 pkt.Request((55,309), [
11163 rec( 10, 1, VolumeNumber ),
11164 rec( 11, 4, BaseDirectoryID ),
11165 rec( 15, 1, DeleteExistingFileFlag ),
11166 rec( 16, 4, CreatorID, BE ),
11167 rec( 20, 4, Reserved4 ),
11168 rec( 24, 2, FinderAttr ),
11169 rec( 26, 2, HorizLocation ),
11170 rec( 28, 2, VertLocation ),
11171 rec( 30, 2, FileDirWindow ),
11172 rec( 32, 16, Reserved16 ),
11173 rec( 48, 6, ProDOSInfo ),
11174 rec( 54, (1,255), Path ),
11175 ], info_str=(Path, "AFP 2.0 Create File: %s", ", %s"))
11177 rec( 8, 4, NewDirectoryID ),
11179 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8400,
11180 0x8701, 0x8800, 0x8a00, 0x8d00, 0x8e00,
11181 0x8f00, 0x9001, 0x9300, 0x9600, 0x9804,
11182 0x9900, 0x9b03, 0x9c03, 0x9e00, 0xa100,
11183 0xa201, 0xfd00, 0xff00])
11185 pkt = NCP(0x230F, "AFP 2.0 Get File Or Directory Information", 'afp')
11186 pkt.Request((18,272), [
11187 rec( 10, 1, VolumeNumber ),
11188 rec( 11, 4, BaseDirectoryID ),
11189 rec( 15, 2, RequestBitMap, BE ),
11190 rec( 17, (1,255), Path ),
11191 ], info_str=(Path, "AFP 2.0 Get Information: %s", ", %s"))
11193 rec( 8, 4, AFPEntryID, BE ),
11194 rec( 12, 4, ParentID, BE ),
11195 rec( 16, 2, AttributesDef16 ),
11196 rec( 18, 4, DataForkLen, BE ),
11197 rec( 22, 4, ResourceForkLen, BE ),
11198 rec( 26, 2, TotalOffspring, BE ),
11199 rec( 28, 2, CreationDate, BE ),
11200 rec( 30, 2, LastAccessedDate, BE ),
11201 rec( 32, 2, ModifiedDate, BE ),
11202 rec( 34, 2, ModifiedTime, BE ),
11203 rec( 36, 2, ArchivedDate, BE ),
11204 rec( 38, 2, ArchivedTime, BE ),
11205 rec( 40, 4, CreatorID, BE ),
11206 rec( 44, 4, Reserved4 ),
11207 rec( 48, 2, FinderAttr ),
11208 rec( 50, 2, HorizLocation ),
11209 rec( 52, 2, VertLocation ),
11210 rec( 54, 2, FileDirWindow ),
11211 rec( 56, 16, Reserved16 ),
11212 rec( 72, 32, LongName ),
11213 rec( 104, 4, CreatorID, BE ),
11214 rec( 108, 12, ShortName ),
11215 rec( 120, 1, AccessPrivileges ),
11216 rec( 121, 1, Reserved ),
11217 rec( 122, 6, ProDOSInfo ),
11219 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
11220 0xa100, 0xa201, 0xfd00, 0xff19])
11222 pkt = NCP(0x2310, "AFP 2.0 Set File Information", 'afp')
11223 pkt.Request((70, 324), [
11224 rec( 10, 1, VolumeNumber ),
11225 rec( 11, 4, MacBaseDirectoryID ),
11226 rec( 15, 2, RequestBitMap, BE ),
11227 rec( 17, 2, AttributesDef16 ),
11228 rec( 19, 2, CreationDate, BE ),
11229 rec( 21, 2, LastAccessedDate, BE ),
11230 rec( 23, 2, ModifiedDate, BE ),
11231 rec( 25, 2, ModifiedTime, BE ),
11232 rec( 27, 2, ArchivedDate, BE ),
11233 rec( 29, 2, ArchivedTime, BE ),
11234 rec( 31, 4, CreatorID, BE ),
11235 rec( 35, 4, Reserved4 ),
11236 rec( 39, 2, FinderAttr ),
11237 rec( 41, 2, HorizLocation ),
11238 rec( 43, 2, VertLocation ),
11239 rec( 45, 2, FileDirWindow ),
11240 rec( 47, 16, Reserved16 ),
11241 rec( 63, 6, ProDOSInfo ),
11242 rec( 69, (1,255), Path ),
11243 ], info_str=(Path, "AFP 2.0 Set File Information: %s", ", %s"))
11245 pkt.CompletionCodes([0x0000, 0x0104, 0x8301, 0x8800, 0x9300, 0x9400,
11246 0x9500, 0x9600, 0x9804, 0x9c03, 0xa100, 0xa201,
11249 pkt = NCP(0x2311, "AFP 2.0 Scan File Information", 'afp')
11250 pkt.Request((26, 280), [
11251 rec( 10, 1, VolumeNumber ),
11252 rec( 11, 4, MacBaseDirectoryID ),
11253 rec( 15, 4, MacLastSeenID, BE ),
11254 rec( 19, 2, DesiredResponseCount, BE ),
11255 rec( 21, 2, SearchBitMap, BE ),
11256 rec( 23, 2, RequestBitMap, BE ),
11257 rec( 25, (1,255), Path ),
11258 ], info_str=(Path, "AFP 2.0 Scan File Information: %s", ", %s"))
11260 rec( 8, 2, ActualResponseCount, var="x" ),
11261 rec( 10, 4, AFP20Struct, repeat="x" ),
11263 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804,
11264 0x9c03, 0xa100, 0xa201, 0xfd00, 0xff16])
11266 pkt = NCP(0x2312, "AFP Get DOS Name From Entry ID", 'afp')
11268 rec( 10, 1, VolumeNumber ),
11269 rec( 11, 4, AFPEntryID, BE ),
11271 pkt.Reply((9,263), [
11272 rec( 8, (1,255), Path ),
11274 pkt.CompletionCodes([0x0000, 0x8900, 0x9600, 0xbf00])
11276 pkt = NCP(0x2313, "AFP Get Macintosh Info On Deleted File", 'afp')
11278 rec( 10, 1, VolumeNumber ),
11279 rec( 11, 4, DirectoryNumber, BE ),
11281 pkt.Reply((51,305), [
11282 rec( 8, 4, CreatorID, BE ),
11283 rec( 12, 4, Reserved4 ),
11284 rec( 16, 2, FinderAttr ),
11285 rec( 18, 2, HorizLocation ),
11286 rec( 20, 2, VertLocation ),
11287 rec( 22, 2, FileDirWindow ),
11288 rec( 24, 16, Reserved16 ),
11289 rec( 40, 6, ProDOSInfo ),
11290 rec( 46, 4, ResourceForkSize, BE ),
11291 rec( 50, (1,255), FileName ),
11293 pkt.CompletionCodes([0x0000, 0x9c03, 0xbf00])
11295 pkt = NCP(0x2400, "Get NCP Extension Information", 'fileserver')
11297 rec( 10, 4, NCPextensionNumber, LE ),
11299 pkt.Reply((16,270), [
11300 rec( 8, 4, NCPextensionNumber ),
11301 rec( 12, 1, NCPextensionMajorVersion ),
11302 rec( 13, 1, NCPextensionMinorVersion ),
11303 rec( 14, 1, NCPextensionRevisionNumber ),
11304 rec( 15, (1, 255), NCPextensionName ),
11306 pkt.CompletionCodes([0x0000, 0xfe00])
11308 pkt = NCP(0x2401, "Get NCP Extension Maximum Data Size", 'fileserver')
11311 rec( 8, 2, NCPdataSize ),
11313 pkt.CompletionCodes([0x0000, 0xfe00])
11315 pkt = NCP(0x2402, "Get NCP Extension Information by Name", 'fileserver')
11316 pkt.Request((11, 265), [
11317 rec( 10, (1,255), NCPextensionName ),
11318 ], info_str=(NCPextensionName, "Get NCP Extension Information by Name: %s", ", %s"))
11319 pkt.Reply((16,270), [
11320 rec( 8, 4, NCPextensionNumber ),
11321 rec( 12, 1, NCPextensionMajorVersion ),
11322 rec( 13, 1, NCPextensionMinorVersion ),
11323 rec( 14, 1, NCPextensionRevisionNumber ),
11324 rec( 15, (1, 255), NCPextensionName ),
11326 pkt.CompletionCodes([0x0000, 0xfe00, 0xff20])
11328 pkt = NCP(0x2403, "Get Number of Registered NCP Extensions", 'fileserver')
11331 rec( 8, 4, NumberOfNCPExtensions ),
11333 pkt.CompletionCodes([0x0000, 0xfe00])
11335 pkt = NCP(0x2404, "Get NCP Extension Registered Verbs List", 'fileserver')
11337 rec( 10, 4, StartingNumber ),
11340 rec( 8, 4, ReturnedListCount, var="x" ),
11341 rec( 12, 4, nextStartingNumber ),
11342 rec( 16, 4, NCPExtensionNumbers, repeat="x" ),
11344 pkt.CompletionCodes([0x0000, 0xfe00])
11346 pkt = NCP(0x2405, "Return NCP Extension Information", 'fileserver')
11348 rec( 10, 4, NCPextensionNumber ),
11350 pkt.Reply((16,270), [
11351 rec( 8, 4, NCPextensionNumber ),
11352 rec( 12, 1, NCPextensionMajorVersion ),
11353 rec( 13, 1, NCPextensionMinorVersion ),
11354 rec( 14, 1, NCPextensionRevisionNumber ),
11355 rec( 15, (1, 255), NCPextensionName ),
11357 pkt.CompletionCodes([0x0000, 0xfe00])
11359 pkt = NCP(0x2406, "Return NCP Extension Maximum Data Size", 'fileserver')
11362 rec( 8, 4, NCPdataSize ),
11364 pkt.CompletionCodes([0x0000, 0xfe00])
11366 pkt = NCP(0x25, "Execute NCP Extension", 'fileserver')
11368 rec( 7, 4, NCPextensionNumber ),
11369 # The following value is Unicode
11370 #rec[ 13, (1,255), RequestData ],
11373 # The following value is Unicode
11374 #[ 8, (1, 255), ReplyBuffer ],
11375 pkt.CompletionCodes([0x0000, 0xd504, 0xee00, 0xfe00])
11377 pkt = NCP(0x3B, "Commit File", 'file', has_length=0 )
11379 rec( 7, 1, Reserved ),
11380 rec( 8, 6, FileHandle ),
11381 ], info_str=(FileHandle, "Commit File - 0x%s", ", %s"))
11383 pkt.CompletionCodes([0x0000, 0x8800, 0x9804, 0xff00])
11385 pkt = NCP(0x3E, "File Search Initialize", 'file', has_length=0 )
11386 pkt.Request((9, 263), [
11387 rec( 7, 1, DirHandle ),
11388 rec( 8, (1,255), Path ),
11389 ], info_str=(Path, "Initialize File Search: %s", ", %s"))
11391 rec( 8, 1, VolumeNumber ),
11392 rec( 9, 2, DirectoryID ),
11393 rec( 11, 2, SequenceNumber, BE ),
11394 rec( 13, 1, AccessRightsMask ),
11396 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100,
11399 pkt = NCP(0x3F, "File Search Continue", 'file', has_length=0 )
11400 pkt.Request((14, 268), [
11401 rec( 7, 1, VolumeNumber ),
11402 rec( 8, 2, DirectoryID ),
11403 rec( 10, 2, SequenceNumber, BE ),
11404 rec( 12, 1, SearchAttributes ),
11405 rec( 13, (1,255), Path ),
11406 ], info_str=(Path, "File Search Continue: %s", ", %s"))
11407 pkt.Reply( NO_LENGTH_CHECK, [
11409 # XXX - don't show this if we got back a non-zero
11410 # completion code? For example, 255 means "No
11411 # matching files or directories were found", so
11412 # presumably it can't show you a matching file or
11413 # directory instance - it appears to just leave crap
11416 srec( DirectoryInstance, req_cond="ncp.sattr_sub==TRUE"),
11417 srec( FileInstance, req_cond="ncp.sattr_sub!=TRUE"),
11419 pkt.ReqCondSizeVariable()
11420 pkt.CompletionCodes([0x0000, 0xff16])
11422 pkt = NCP(0x40, "Search for a File", 'file')
11423 pkt.Request((12, 266), [
11424 rec( 7, 2, SequenceNumber, BE ),
11425 rec( 9, 1, DirHandle ),
11426 rec( 10, 1, SearchAttributes ),
11427 rec( 11, (1,255), FileName ),
11428 ], info_str=(FileName, "Search for File: %s", ", %s"))
11430 rec( 8, 2, SequenceNumber, BE ),
11431 rec( 10, 2, Reserved2 ),
11432 rec( 12, 14, FileName14 ),
11433 rec( 26, 1, AttributesDef ),
11434 rec( 27, 1, FileExecuteType ),
11435 rec( 28, 4, FileSize ),
11436 rec( 32, 2, CreationDate, BE ),
11437 rec( 34, 2, LastAccessedDate, BE ),
11438 rec( 36, 2, ModifiedDate, BE ),
11439 rec( 38, 2, ModifiedTime, BE ),
11441 pkt.CompletionCodes([0x0000, 0x8900, 0x9600, 0x9804, 0x9b03,
11442 0x9c03, 0xa100, 0xfd00, 0xff16])
11444 pkt = NCP(0x41, "Open File", 'file')
11445 pkt.Request((10, 264), [
11446 rec( 7, 1, DirHandle ),
11447 rec( 8, 1, SearchAttributes ),
11448 rec( 9, (1,255), FileName ),
11449 ], info_str=(FileName, "Open File: %s", ", %s"))
11451 rec( 8, 6, FileHandle ),
11452 rec( 14, 2, Reserved2 ),
11453 rec( 16, 14, FileName14 ),
11454 rec( 30, 1, AttributesDef ),
11455 rec( 31, 1, FileExecuteType ),
11456 rec( 32, 4, FileSize, BE ),
11457 rec( 36, 2, CreationDate, BE ),
11458 rec( 38, 2, LastAccessedDate, BE ),
11459 rec( 40, 2, ModifiedDate, BE ),
11460 rec( 42, 2, ModifiedTime, BE ),
11462 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8200, 0x9400,
11463 0x9600, 0x9804, 0x9c03, 0xa100, 0xfd00,
11466 pkt = NCP(0x42, "Close File", 'file')
11468 rec( 7, 1, Reserved ),
11469 rec( 8, 6, FileHandle ),
11470 ], info_str=(FileHandle, "Close File - 0x%s", ", %s"))
11472 pkt.CompletionCodes([0x0000, 0x8800, 0xff1a])
11474 pkt = NCP(0x43, "Create File", 'file')
11475 pkt.Request((10, 264), [
11476 rec( 7, 1, DirHandle ),
11477 rec( 8, 1, AttributesDef ),
11478 rec( 9, (1,255), FileName ),
11479 ], info_str=(FileName, "Create File: %s", ", %s"))
11481 rec( 8, 6, FileHandle ),
11482 rec( 14, 2, Reserved2 ),
11483 rec( 16, 14, FileName14 ),
11484 rec( 30, 1, AttributesDef ),
11485 rec( 31, 1, FileExecuteType ),
11486 rec( 32, 4, FileSize, BE ),
11487 rec( 36, 2, CreationDate, BE ),
11488 rec( 38, 2, LastAccessedDate, BE ),
11489 rec( 40, 2, ModifiedDate, BE ),
11490 rec( 42, 2, ModifiedTime, BE ),
11492 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11493 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11494 0x9804, 0x9900, 0x9b03, 0x9c03, 0xfd00,
11497 pkt = NCP(0x44, "Erase File", 'file')
11498 pkt.Request((10, 264), [
11499 rec( 7, 1, DirHandle ),
11500 rec( 8, 1, SearchAttributes ),
11501 rec( 9, (1,255), FileName ),
11502 ], info_str=(FileName, "Erase File: %s", ", %s"))
11504 pkt.CompletionCodes([0x0000, 0x8a00, 0x8d00, 0x8e00, 0x8f00,
11505 0x9001, 0x9600, 0x9804, 0x9b03, 0x9c03,
11506 0xa100, 0xfd00, 0xff00])
11508 pkt = NCP(0x45, "Rename File", 'file')
11509 pkt.Request((12, 520), [
11510 rec( 7, 1, DirHandle ),
11511 rec( 8, 1, SearchAttributes ),
11512 rec( 9, (1,255), FileName ),
11513 rec( -1, 1, TargetDirHandle ),
11514 rec( -1, (1, 255), NewFileNameLen ),
11515 ], info_str=(FileName, "Rename File: %s", ", %s"))
11517 pkt.CompletionCodes([0x0000, 0x8701, 0x8b00, 0x8d00, 0x8e00,
11518 0x8f00, 0x9001, 0x9101, 0x9201, 0x9600,
11519 0x9804, 0x9a00, 0x9b03, 0x9c03, 0xa100,
11522 pkt = NCP(0x46, "Set File Attributes", 'file')
11523 pkt.Request((11, 265), [
11524 rec( 7, 1, AttributesDef ),
11525 rec( 8, 1, DirHandle ),
11526 rec( 9, 1, SearchAttributes ),
11527 rec( 10, (1,255), FileName ),
11528 ], info_str=(FileName, "Set File Attributes: %s", ", %s"))
11530 pkt.CompletionCodes([0x0000, 0x8c00, 0x8d00, 0x8e00, 0x9600,
11531 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfd00,
11534 pkt = NCP(0x47, "Get Current Size of File", 'file')
11536 rec(7, 1, Reserved ),
11537 rec( 8, 6, FileHandle ),
11538 ], info_str=(FileHandle, "Get Current Size of File - 0x%s", ", %s"))
11540 rec( 8, 4, FileSize, BE ),
11542 pkt.CompletionCodes([0x0000, 0x8800])
11544 pkt = NCP(0x48, "Read From A File", 'file')
11546 rec( 7, 1, Reserved ),
11547 rec( 8, 6, FileHandle ),
11548 rec( 14, 4, FileOffset, BE ),
11549 rec( 18, 2, MaxBytes, BE ),
11550 ], info_str=(FileHandle, "Read From File - 0x%s", ", %s"))
11552 rec( 8, 2, NumBytes, BE ),
11554 pkt.CompletionCodes([0x0000, 0x8300, 0x8800, 0x9300, 0xff1b])
11556 pkt = NCP(0x49, "Write to a File", 'file')
11558 rec( 7, 1, Reserved ),
11559 rec( 8, 6, FileHandle ),
11560 rec( 14, 4, FileOffset, BE ),
11561 rec( 18, 2, MaxBytes, BE ),
11562 ], info_str=(FileHandle, "Write to a File - 0x%s", ", %s"))
11564 pkt.CompletionCodes([0x0000, 0x0104, 0x8300, 0x8800, 0x9400, 0x9500, 0xa201, 0xff1b])
11566 pkt = NCP(0x4A, "Copy from One File to Another", 'file')
11568 rec( 7, 1, Reserved ),
11569 rec( 8, 6, FileHandle ),
11570 rec( 14, 6, TargetFileHandle ),
11571 rec( 20, 4, FileOffset, BE ),
11572 rec( 24, 4, TargetFileOffset, BE ),
11573 rec( 28, 2, BytesToCopy, BE ),
11576 rec( 8, 4, BytesActuallyTransferred, BE ),
11578 pkt.CompletionCodes([0x0000, 0x0104, 0x8300, 0x8800, 0x9300, 0x9400,
11579 0x9500, 0x9600, 0xa201, 0xff1b])
11581 pkt = NCP(0x4B, "Set File Time Date Stamp", 'file')
11583 rec( 7, 1, Reserved ),
11584 rec( 8, 6, FileHandle ),
11585 rec( 14, 2, FileTime, BE ),
11586 rec( 16, 2, FileDate, BE ),
11587 ], info_str=(FileHandle, "Set Time and Date Stamp for File - 0x%s", ", %s"))
11589 pkt.CompletionCodes([0x0000, 0x8800, 0x9400, 0x9600, 0xfb08])
11591 pkt = NCP(0x4C, "Open File", 'file')
11592 pkt.Request((11, 265), [
11593 rec( 7, 1, DirHandle ),
11594 rec( 8, 1, SearchAttributes ),
11595 rec( 9, 1, AccessRightsMask ),
11596 rec( 10, (1,255), FileName ),
11597 ], info_str=(FileName, "Open File: %s", ", %s"))
11599 rec( 8, 6, FileHandle ),
11600 rec( 14, 2, Reserved2 ),
11601 rec( 16, 14, FileName14 ),
11602 rec( 30, 1, AttributesDef ),
11603 rec( 31, 1, FileExecuteType ),
11604 rec( 32, 4, FileSize, BE ),
11605 rec( 36, 2, CreationDate, BE ),
11606 rec( 38, 2, LastAccessedDate, BE ),
11607 rec( 40, 2, ModifiedDate, BE ),
11608 rec( 42, 2, ModifiedTime, BE ),
11610 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8200, 0x9400,
11611 0x9600, 0x9804, 0x9c03, 0xa100, 0xfd00,
11614 pkt = NCP(0x4D, "Create File", 'file')
11615 pkt.Request((10, 264), [
11616 rec( 7, 1, DirHandle ),
11617 rec( 8, 1, AttributesDef ),
11618 rec( 9, (1,255), FileName ),
11619 ], info_str=(FileName, "Create File: %s", ", %s"))
11621 rec( 8, 6, FileHandle ),
11622 rec( 14, 2, Reserved2 ),
11623 rec( 16, 14, FileName14 ),
11624 rec( 30, 1, AttributesDef ),
11625 rec( 31, 1, FileExecuteType ),
11626 rec( 32, 4, FileSize, BE ),
11627 rec( 36, 2, CreationDate, BE ),
11628 rec( 38, 2, LastAccessedDate, BE ),
11629 rec( 40, 2, ModifiedDate, BE ),
11630 rec( 42, 2, ModifiedTime, BE ),
11632 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11633 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11634 0x9804, 0x9900, 0x9b03, 0x9c03, 0xfd00,
11637 pkt = NCP(0x4F, "Set File Extended Attributes", 'file')
11638 pkt.Request((11, 265), [
11639 rec( 7, 1, AttributesDef ),
11640 rec( 8, 1, DirHandle ),
11641 rec( 9, 1, AccessRightsMask ),
11642 rec( 10, (1,255), FileName ),
11643 ], info_str=(FileName, "Set File Extended Attributes: %s", ", %s"))
11645 pkt.CompletionCodes([0x0000, 0x8c00, 0x8d00, 0x8e00, 0x9600,
11646 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfd00,
11649 pkt = NCP(0x54, "Open/Create File", 'file')
11650 pkt.Request((12, 266), [
11651 rec( 7, 1, DirHandle ),
11652 rec( 8, 1, AttributesDef ),
11653 rec( 9, 1, AccessRightsMask ),
11654 rec( 10, 1, ActionFlag ),
11655 rec( 11, (1,255), FileName ),
11656 ], info_str=(FileName, "Open/Create File: %s", ", %s"))
11658 rec( 8, 6, FileHandle ),
11659 rec( 14, 2, Reserved2 ),
11660 rec( 16, 14, FileName14 ),
11661 rec( 30, 1, AttributesDef ),
11662 rec( 31, 1, FileExecuteType ),
11663 rec( 32, 4, FileSize, BE ),
11664 rec( 36, 2, CreationDate, BE ),
11665 rec( 38, 2, LastAccessedDate, BE ),
11666 rec( 40, 2, ModifiedDate, BE ),
11667 rec( 42, 2, ModifiedTime, BE ),
11669 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11670 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11671 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
11673 pkt = NCP(0x55, "Get Sparse File Data Block Bit Map", 'file')
11675 rec( 7, 6, FileHandle ),
11676 rec( 13, 4, FileOffset ),
11677 ], info_str=(FileHandle, "Get Sparse File Data Block Bitmap for File - 0x%s", ", %s"))
11679 rec( 8, 4, AllocationBlockSize ),
11680 rec( 12, 4, Reserved4 ),
11681 rec( 16, 512, BitMap ),
11683 pkt.CompletionCodes([0x0000, 0x8800])
11685 pkt = NCP(0x5601, "Close Extended Attribute Handle", 'file', has_length=0 )
11687 rec( 8, 2, Reserved2 ),
11688 rec( 10, 4, EAHandle ),
11691 pkt.CompletionCodes([0x0000, 0xcf00, 0xd301])
11693 pkt = NCP(0x5602, "Write Extended Attribute", 'file', has_length=0 )
11694 pkt.Request((35,97), [
11695 rec( 8, 2, EAFlags ),
11696 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11697 rec( 14, 4, ReservedOrDirectoryNumber ),
11698 rec( 18, 4, TtlWriteDataSize ),
11699 rec( 22, 4, FileOffset ),
11700 rec( 26, 4, EAAccessFlag ),
11701 rec( 30, 2, EAValueLength, var='x' ),
11702 rec( 32, (2,64), EAKey ),
11703 rec( -1, 1, EAValueRep, repeat='x' ),
11704 ], info_str=(EAKey, "Write Extended Attribute: %s", ", %s"))
11706 rec( 8, 4, EAErrorCodes ),
11707 rec( 12, 4, EABytesWritten ),
11708 rec( 16, 4, NewEAHandle ),
11710 pkt.CompletionCodes([0x0000, 0xc800, 0xc900, 0xcb00, 0xce00, 0xcf00, 0xd101,
11711 0xd203, 0xd301, 0xd402])
11713 pkt = NCP(0x5603, "Read Extended Attribute", 'file', has_length=0 )
11714 pkt.Request((28,538), [
11715 rec( 8, 2, EAFlags ),
11716 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11717 rec( 14, 4, ReservedOrDirectoryNumber ),
11718 rec( 18, 4, FileOffset ),
11719 rec( 22, 4, InspectSize ),
11720 rec( 26, (2,512), EAKey ),
11721 ], info_str=(EAKey, "Read Extended Attribute: %s", ", %s"))
11722 pkt.Reply((26,536), [
11723 rec( 8, 4, EAErrorCodes ),
11724 rec( 12, 4, TtlValuesLength ),
11725 rec( 16, 4, NewEAHandle ),
11726 rec( 20, 4, EAAccessFlag ),
11727 rec( 24, (2,512), EAValue ),
11729 pkt.CompletionCodes([0x0000, 0xc900, 0xce00, 0xcf00, 0xd101,
11732 pkt = NCP(0x5604, "Enumerate Extended Attribute", 'file', has_length=0 )
11733 pkt.Request((26,536), [
11734 rec( 8, 2, EAFlags ),
11735 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11736 rec( 14, 4, ReservedOrDirectoryNumber ),
11737 rec( 18, 4, InspectSize ),
11738 rec( 22, 2, SequenceNumber ),
11739 rec( 24, (2,512), EAKey ),
11740 ], info_str=(EAKey, "Enumerate Extended Attribute: %s", ", %s"))
11742 rec( 8, 4, EAErrorCodes ),
11743 rec( 12, 4, TtlEAs ),
11744 rec( 16, 4, TtlEAsDataSize ),
11745 rec( 20, 4, TtlEAsKeySize ),
11746 rec( 24, 4, NewEAHandle ),
11748 pkt.CompletionCodes([0x0000, 0x8800, 0xc900, 0xce00, 0xcf00, 0xd101,
11751 pkt = NCP(0x5605, "Duplicate Extended Attributes", 'file', has_length=0 )
11753 rec( 8, 2, EAFlags ),
11754 rec( 10, 2, DstEAFlags ),
11755 rec( 12, 4, EAHandleOrNetWareHandleOrVolume ),
11756 rec( 16, 4, ReservedOrDirectoryNumber ),
11757 rec( 20, 4, EAHandleOrNetWareHandleOrVolume ),
11758 rec( 24, 4, ReservedOrDirectoryNumber ),
11761 rec( 8, 4, EADuplicateCount ),
11762 rec( 12, 4, EADataSizeDuplicated ),
11763 rec( 16, 4, EAKeySizeDuplicated ),
11765 pkt.CompletionCodes([0x0000, 0xd101])
11767 pkt = NCP(0x5701, "Open/Create File or Subdirectory", 'file', has_length=0)
11768 pkt.Request((30, 284), [
11769 rec( 8, 1, NameSpace ),
11770 rec( 9, 1, OpenCreateMode ),
11771 rec( 10, 2, SearchAttributesLow ),
11772 rec( 12, 2, ReturnInfoMask ),
11773 rec( 14, 2, ExtendedInfo ),
11774 rec( 16, 4, AttributesDef32 ),
11775 rec( 20, 2, DesiredAccessRights ),
11776 rec( 22, 1, VolumeNumber ),
11777 rec( 23, 4, DirectoryBase ),
11778 rec( 27, 1, HandleFlag ),
11779 rec( 28, 1, PathCount, var="x" ),
11780 rec( 29, (1,255), Path, repeat="x" ),
11781 ], info_str=(Path, "Open or Create: %s", "/%s"))
11782 pkt.Reply( NO_LENGTH_CHECK, [
11783 rec( 8, 4, FileHandle ),
11784 rec( 12, 1, OpenCreateAction ),
11785 rec( 13, 1, Reserved ),
11786 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11787 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11788 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11789 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11790 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11791 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11792 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11793 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11794 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11795 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11796 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11797 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11798 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11799 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11800 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11801 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11802 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11803 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11804 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11805 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
11806 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
11807 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
11808 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
11809 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
11810 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
11811 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
11812 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
11813 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
11814 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
11815 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
11816 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
11817 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
11818 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
11819 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
11820 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
11821 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
11822 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
11823 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
11824 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
11825 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
11826 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
11827 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
11828 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
11829 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
11830 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
11831 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
11832 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
11834 pkt.ReqCondSizeVariable()
11835 pkt.CompletionCodes([0x0000, 0x7f00, 0x8001, 0x8101, 0x8401, 0x8501,
11836 0x8701, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
11837 0x9804, 0x9b03, 0x9c03, 0xa500, 0xa802, 0xbf00, 0xfd00, 0xff16])
11839 pkt = NCP(0x5702, "Initialize Search", 'file', has_length=0)
11840 pkt.Request( (18,272), [
11841 rec( 8, 1, NameSpace ),
11842 rec( 9, 1, Reserved ),
11843 rec( 10, 1, VolumeNumber ),
11844 rec( 11, 4, DirectoryBase ),
11845 rec( 15, 1, HandleFlag ),
11846 rec( 16, 1, PathCount, var="x" ),
11847 rec( 17, (1,255), Path, repeat="x" ),
11848 ], info_str=(Path, "Set Search Pointer to: %s", "/%s"))
11850 rec( 8, 1, VolumeNumber ),
11851 rec( 9, 4, DirectoryNumber ),
11852 rec( 13, 4, DirectoryEntryNumber ),
11854 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11855 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11856 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11858 pkt = NCP(0x5703, "Search for File or Subdirectory", 'file', has_length=0)
11859 pkt.Request((26, 280), [
11860 rec( 8, 1, NameSpace ),
11861 rec( 9, 1, DataStream ),
11862 rec( 10, 2, SearchAttributesLow ),
11863 rec( 12, 2, ReturnInfoMask ),
11864 rec( 14, 2, ExtendedInfo ),
11865 rec( 16, 9, SearchSequence ),
11866 rec( 25, (1,255), SearchPattern ),
11867 ], info_str=(SearchPattern, "Search for: %s", "/%s"))
11868 pkt.Reply( NO_LENGTH_CHECK, [
11869 rec( 8, 9, SearchSequence ),
11870 rec( 17, 1, Reserved ),
11871 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11872 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11873 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11874 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11875 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11876 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11877 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11878 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11879 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11880 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11881 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11882 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11883 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11884 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11885 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11886 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11887 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11888 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11889 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11890 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
11891 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
11892 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
11893 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
11894 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
11895 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
11896 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
11897 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
11898 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
11899 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
11900 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
11901 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
11902 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
11903 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
11904 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
11905 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
11906 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
11907 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
11908 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
11909 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
11910 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
11911 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
11912 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
11913 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
11914 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
11915 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
11916 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
11917 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
11919 pkt.ReqCondSizeVariable()
11920 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11921 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11922 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11924 pkt = NCP(0x5704, "Rename Or Move a File or Subdirectory", 'file', has_length=0)
11925 pkt.Request((28, 536), [
11926 rec( 8, 1, NameSpace ),
11927 rec( 9, 1, RenameFlag ),
11928 rec( 10, 2, SearchAttributesLow ),
11929 rec( 12, 1, VolumeNumber ),
11930 rec( 13, 4, DirectoryBase ),
11931 rec( 17, 1, HandleFlag ),
11932 rec( 18, 1, PathCount, var="x" ),
11933 rec( 19, 1, VolumeNumber ),
11934 rec( 20, 4, DirectoryBase ),
11935 rec( 24, 1, HandleFlag ),
11936 rec( 25, 1, PathCount, var="y" ),
11937 rec( 26, (1, 255), Path, repeat="x" ),
11938 rec( -1, (1,255), Path, repeat="y" ),
11939 ], info_str=(Path, "Rename or Move: %s", "/%s"))
11941 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11942 0x8701, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9200, 0x9600,
11943 0x9804, 0x9a00, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11945 pkt = NCP(0x5705, "Scan File or Subdirectory for Trustees", 'file', has_length=0)
11946 pkt.Request((24, 278), [
11947 rec( 8, 1, NameSpace ),
11948 rec( 9, 1, Reserved ),
11949 rec( 10, 2, SearchAttributesLow ),
11950 rec( 12, 4, SequenceNumber ),
11951 rec( 16, 1, VolumeNumber ),
11952 rec( 17, 4, DirectoryBase ),
11953 rec( 21, 1, HandleFlag ),
11954 rec( 22, 1, PathCount, var="x" ),
11955 rec( 23, (1, 255), Path, repeat="x" ),
11956 ], info_str=(Path, "Scan Trustees for: %s", "/%s"))
11958 rec( 8, 4, SequenceNumber ),
11959 rec( 12, 2, ObjectIDCount, var="x" ),
11960 rec( 14, 6, TrusteeStruct, repeat="x" ),
11962 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11963 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11964 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11966 pkt = NCP(0x5706, "Obtain File or SubDirectory Information", 'file', has_length=0)
11967 pkt.Request((24,278), [
11968 rec( 10, 1, SrcNameSpace ),
11969 rec( 11, 1, DestNameSpace ),
11970 rec( 12, 2, SearchAttributesLow ),
11971 rec( 14, 2, ReturnInfoMask, LE ),
11972 rec( 16, 2, ExtendedInfo ),
11973 rec( 18, 1, VolumeNumber ),
11974 rec( 19, 4, DirectoryBase ),
11975 rec( 23, 1, HandleFlag ),
11976 rec( 24, 1, PathCount, var="x" ),
11977 rec( 25, (1,255), Path, repeat="x",),
11978 ], info_str=(Path, "Obtain Info for: %s", "/%s"))
11979 pkt.Reply(NO_LENGTH_CHECK, [
11980 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11981 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11982 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11983 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11984 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11985 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11986 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11987 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11988 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11989 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11990 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11991 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11992 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11993 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11994 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11995 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11996 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11997 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11998 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11999 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12000 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12001 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12002 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12003 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12004 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12005 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12006 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12007 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12008 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12009 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12010 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12011 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12012 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12013 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12014 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12015 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
12016 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
12017 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12018 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12019 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12020 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12021 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12022 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12023 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12024 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12025 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12026 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12028 pkt.ReqCondSizeVariable()
12029 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12030 0x8700, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
12031 0x9804, 0x9b03, 0x9c03, 0xa802, 0xbf00, 0xfd00, 0xff16])
12033 pkt = NCP(0x5707, "Modify File or Subdirectory DOS Information", 'file', has_length=0)
12034 pkt.Request((62,316), [
12035 rec( 8, 1, NameSpace ),
12036 rec( 9, 1, Reserved ),
12037 rec( 10, 2, SearchAttributesLow ),
12038 rec( 12, 2, ModifyDOSInfoMask ),
12039 rec( 14, 2, Reserved2 ),
12040 rec( 16, 2, AttributesDef16 ),
12041 rec( 18, 1, FileMode ),
12042 rec( 19, 1, FileExtendedAttributes ),
12043 rec( 20, 2, CreationDate ),
12044 rec( 22, 2, CreationTime ),
12045 rec( 24, 4, CreatorID, BE ),
12046 rec( 28, 2, ModifiedDate ),
12047 rec( 30, 2, ModifiedTime ),
12048 rec( 32, 4, ModifierID, BE ),
12049 rec( 36, 2, ArchivedDate ),
12050 rec( 38, 2, ArchivedTime ),
12051 rec( 40, 4, ArchiverID, BE ),
12052 rec( 44, 2, LastAccessedDate ),
12053 rec( 46, 2, InheritedRightsMask ),
12054 rec( 48, 2, InheritanceRevokeMask ),
12055 rec( 50, 4, MaxSpace ),
12056 rec( 54, 1, VolumeNumber ),
12057 rec( 55, 4, DirectoryBase ),
12058 rec( 59, 1, HandleFlag ),
12059 rec( 60, 1, PathCount, var="x" ),
12060 rec( 61, (1,255), Path, repeat="x" ),
12061 ], info_str=(Path, "Modify DOS Information for: %s", "/%s"))
12063 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12064 0x8701, 0x8c01, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
12065 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12067 pkt = NCP(0x5708, "Delete a File or Subdirectory", 'file', has_length=0)
12068 pkt.Request((20,274), [
12069 rec( 8, 1, NameSpace ),
12070 rec( 9, 1, Reserved ),
12071 rec( 10, 2, SearchAttributesLow ),
12072 rec( 12, 1, VolumeNumber ),
12073 rec( 13, 4, DirectoryBase ),
12074 rec( 17, 1, HandleFlag ),
12075 rec( 18, 1, PathCount, var="x" ),
12076 rec( 19, (1,255), Path, repeat="x" ),
12077 ], info_str=(Path, "Delete a File or Subdirectory: %s", "/%s"))
12079 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12080 0x8701, 0x8900, 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
12081 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12083 pkt = NCP(0x5709, "Set Short Directory Handle", 'file', has_length=0)
12084 pkt.Request((20,274), [
12085 rec( 8, 1, NameSpace ),
12086 rec( 9, 1, DataStream ),
12087 rec( 10, 1, DestDirHandle ),
12088 rec( 11, 1, Reserved ),
12089 rec( 12, 1, VolumeNumber ),
12090 rec( 13, 4, DirectoryBase ),
12091 rec( 17, 1, HandleFlag ),
12092 rec( 18, 1, PathCount, var="x" ),
12093 rec( 19, (1,255), Path, repeat="x" ),
12094 ], info_str=(Path, "Set Short Directory Handle to: %s", "/%s"))
12096 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12097 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12098 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12100 pkt = NCP(0x570A, "Add Trustee Set to File or Subdirectory", 'file', has_length=0)
12101 pkt.Request((31,285), [
12102 rec( 8, 1, NameSpace ),
12103 rec( 9, 1, Reserved ),
12104 rec( 10, 2, SearchAttributesLow ),
12105 rec( 12, 2, AccessRightsMaskWord ),
12106 rec( 14, 2, ObjectIDCount, var="y" ),
12107 rec( 16, 1, VolumeNumber ),
12108 rec( 17, 4, DirectoryBase ),
12109 rec( 21, 1, HandleFlag ),
12110 rec( 22, 1, PathCount, var="x" ),
12111 rec( 23, (1,255), Path, repeat="x" ),
12112 rec( -1, 7, TrusteeStruct, repeat="y" ),
12113 ], info_str=(Path, "Add Trustee Set to: %s", "/%s"))
12115 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12116 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12117 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfc01, 0xfd00, 0xff16])
12119 pkt = NCP(0x570B, "Delete Trustee Set from File or SubDirectory", 'file', has_length=0)
12120 pkt.Request((27,281), [
12121 rec( 8, 1, NameSpace ),
12122 rec( 9, 1, Reserved ),
12123 rec( 10, 2, ObjectIDCount, var="y" ),
12124 rec( 12, 1, VolumeNumber ),
12125 rec( 13, 4, DirectoryBase ),
12126 rec( 17, 1, HandleFlag ),
12127 rec( 18, 1, PathCount, var="x" ),
12128 rec( 19, (1,255), Path, repeat="x" ),
12129 rec( -1, 7, TrusteeStruct, repeat="y" ),
12130 ], info_str=(Path, "Delete Trustee Set from: %s", "/%s"))
12132 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12133 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12134 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12136 pkt = NCP(0x570C, "Allocate Short Directory Handle", 'file', has_length=0)
12137 pkt.Request((20,274), [
12138 rec( 8, 1, NameSpace ),
12139 rec( 9, 1, Reserved ),
12140 rec( 10, 2, AllocateMode ),
12141 rec( 12, 1, VolumeNumber ),
12142 rec( 13, 4, DirectoryBase ),
12143 rec( 17, 1, HandleFlag ),
12144 rec( 18, 1, PathCount, var="x" ),
12145 rec( 19, (1,255), Path, repeat="x" ),
12146 ], info_str=(Path, "Allocate Short Directory Handle to: %s", "/%s"))
12148 rec( 8, 1, DirHandle ),
12149 rec( 9, 1, VolumeNumber ),
12150 rec( 10, 4, Reserved4 ),
12152 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12153 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12154 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12156 pkt = NCP(0x5710, "Scan Salvageable Files", 'file', has_length=0)
12157 pkt.Request((26,280), [
12158 rec( 8, 1, NameSpace ),
12159 rec( 9, 1, DataStream ),
12160 rec( 10, 2, ReturnInfoMask ),
12161 rec( 12, 2, ExtendedInfo ),
12162 rec( 14, 4, SequenceNumber ),
12163 rec( 18, 1, VolumeNumber ),
12164 rec( 19, 4, DirectoryBase ),
12165 rec( 23, 1, HandleFlag ),
12166 rec( 24, 1, PathCount, var="x" ),
12167 rec( 25, (1,255), Path, repeat="x" ),
12168 ], info_str=(Path, "Scan for Deleted Files in: %s", "/%s"))
12169 pkt.Reply(NO_LENGTH_CHECK, [
12170 rec( 8, 4, SequenceNumber ),
12171 rec( 12, 2, DeletedTime ),
12172 rec( 14, 2, DeletedDate ),
12173 rec( 16, 4, DeletedID, BE ),
12174 rec( 20, 4, VolumeID ),
12175 rec( 24, 4, DirectoryBase ),
12176 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12177 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12178 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12179 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12180 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12181 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12182 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12183 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12184 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12185 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12186 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12187 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12188 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12189 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12190 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12191 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12192 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12193 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12194 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12195 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12196 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12197 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12198 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12199 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12200 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12201 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12202 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12203 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12204 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12205 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12206 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12207 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12208 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12209 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12210 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12212 pkt.ReqCondSizeVariable()
12213 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12214 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12215 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12217 pkt = NCP(0x5711, "Recover Salvageable File", 'file', has_length=0)
12218 pkt.Request((23,277), [
12219 rec( 8, 1, NameSpace ),
12220 rec( 9, 1, Reserved ),
12221 rec( 10, 4, SequenceNumber ),
12222 rec( 14, 4, VolumeID ),
12223 rec( 18, 4, DirectoryBase ),
12224 rec( 22, (1,255), FileName ),
12225 ], info_str=(FileName, "Recover Deleted File: %s", ", %s"))
12227 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12228 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12229 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12231 pkt = NCP(0x5712, "Purge Salvageable Files", 'file', has_length=0)
12233 rec( 8, 1, NameSpace ),
12234 rec( 9, 1, Reserved ),
12235 rec( 10, 4, SequenceNumber ),
12236 rec( 14, 4, VolumeID ),
12237 rec( 18, 4, DirectoryBase ),
12240 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12241 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12242 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12244 pkt = NCP(0x5713, "Get Name Space Information", 'file', has_length=0)
12246 rec( 8, 1, SrcNameSpace ),
12247 rec( 9, 1, DestNameSpace ),
12248 rec( 10, 1, Reserved ),
12249 rec( 11, 1, VolumeNumber ),
12250 rec( 12, 4, DirectoryBase ),
12251 rec( 16, 2, NamesSpaceInfoMask ),
12253 pkt.Reply(NO_LENGTH_CHECK, [
12254 srec( FileNameStruct, req_cond="ncp.ns_info_mask_modify == TRUE" ),
12255 srec( FileAttributesStruct, req_cond="ncp.ns_info_mask_fatt == TRUE" ),
12256 srec( CreationDateStruct, req_cond="ncp.ns_info_mask_cdate == TRUE" ),
12257 srec( CreationTimeStruct, req_cond="ncp.ns_info_mask_ctime == TRUE" ),
12258 srec( OwnerIDStruct, req_cond="ncp.ns_info_mask_owner == TRUE" ),
12259 srec( ArchiveDateStruct, req_cond="ncp.ns_info_mask_adate == TRUE" ),
12260 srec( ArchiveTimeStruct, req_cond="ncp.ns_info_mask_atime == TRUE" ),
12261 srec( ArchiveIdStruct, req_cond="ncp.ns_info_mask_aid == TRUE" ),
12262 srec( UpdateDateStruct, req_cond="ncp.ns_info_mask_udate == TRUE" ),
12263 srec( UpdateTimeStruct, req_cond="ncp.ns_info_mask_utime == TRUE" ),
12264 srec( UpdateIDStruct, req_cond="ncp.ns_info_mask_uid == TRUE" ),
12265 srec( LastAccessStruct, req_cond="ncp.ns_info_mask_acc_date == TRUE" ),
12266 srec( RightsInfoStruct, req_cond="ncp.ns_info_mask_max_acc_mask == TRUE" ),
12268 pkt.ReqCondSizeVariable()
12269 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12270 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12271 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12273 pkt = NCP(0x5714, "Search for File or Subdirectory Set", 'file', has_length=0)
12274 pkt.Request((28, 282), [
12275 rec( 8, 1, NameSpace ),
12276 rec( 9, 1, DataStream ),
12277 rec( 10, 2, SearchAttributesLow ),
12278 rec( 12, 2, ReturnInfoMask ),
12279 rec( 14, 2, ExtendedInfo ),
12280 rec( 16, 2, ReturnInfoCount ),
12281 rec( 18, 9, SearchSequence ),
12282 rec( 27, (1,255), SearchPattern ),
12284 pkt.Reply(NO_LENGTH_CHECK, [
12285 rec( 8, 9, SearchSequence ),
12286 rec( 17, 1, MoreFlag ),
12287 rec( 18, 2, InfoCount ),
12288 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12289 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12290 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12291 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12292 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12293 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12294 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12295 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12296 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12297 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12298 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12299 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12300 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12301 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12302 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12303 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12304 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12305 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12306 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12307 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12308 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12309 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12310 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12311 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12312 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12313 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12314 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12315 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12316 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12317 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12318 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12319 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12320 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12321 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12322 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12323 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
12324 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
12325 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12326 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12327 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12328 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12329 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12330 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12331 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12332 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12333 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12334 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12336 pkt.ReqCondSizeVariable()
12337 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12338 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12339 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12341 pkt = NCP(0x5715, "Get Path String from Short Directory Handle", 'file', has_length=0)
12343 rec( 8, 1, NameSpace ),
12344 rec( 9, 1, DirHandle ),
12346 pkt.Reply((9,263), [
12347 rec( 8, (1,255), Path ),
12349 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12350 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12351 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
12353 pkt = NCP(0x5716, "Generate Directory Base and Volume Number", 'file', has_length=0)
12354 pkt.Request((20,274), [
12355 rec( 8, 1, SrcNameSpace ),
12356 rec( 9, 1, DestNameSpace ),
12357 rec( 10, 2, dstNSIndicator ),
12358 rec( 12, 1, VolumeNumber ),
12359 rec( 13, 4, DirectoryBase ),
12360 rec( 17, 1, HandleFlag ),
12361 rec( 18, 1, PathCount, var="x" ),
12362 rec( 19, (1,255), Path, repeat="x" ),
12363 ], info_str=(Path, "Get Volume and Directory Base from: %s", "/%s"))
12365 rec( 8, 4, DirectoryBase ),
12366 rec( 12, 4, DOSDirectoryBase ),
12367 rec( 16, 1, VolumeNumber ),
12369 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12370 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12371 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12373 pkt = NCP(0x5717, "Query Name Space Information Format", 'file', has_length=0)
12375 rec( 8, 1, NameSpace ),
12376 rec( 9, 1, VolumeNumber ),
12379 rec( 8, 4, FixedBitMask ),
12380 rec( 12, 4, VariableBitMask ),
12381 rec( 16, 4, HugeBitMask ),
12382 rec( 20, 2, FixedBitsDefined ),
12383 rec( 22, 2, VariableBitsDefined ),
12384 rec( 24, 2, HugeBitsDefined ),
12385 rec( 26, 32, FieldsLenTable ),
12387 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12388 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12389 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12391 pkt = NCP(0x5718, "Get Name Spaces Loaded List from Volume Number", 'file', has_length=0)
12393 rec( 8, 1, Reserved ),
12394 rec( 9, 1, VolumeNumber ),
12397 rec( 8, 2, NumberOfNSLoaded, var="x" ),
12398 rec( 10, 1, NameSpace, repeat="x" ),
12400 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12401 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12402 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12404 pkt = NCP(0x5719, "Set Name Space Information", 'file', has_length=0)
12406 rec( 8, 1, SrcNameSpace ),
12407 rec( 9, 1, DestNameSpace ),
12408 rec( 10, 1, VolumeNumber ),
12409 rec( 11, 4, DirectoryBase ),
12410 rec( 15, 2, NamesSpaceInfoMask ),
12411 rec( 17, 2, Reserved2 ),
12412 rec( 19, 512, NSSpecificInfo ),
12415 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12416 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12417 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12420 pkt = NCP(0x571A, "Get Huge Name Space Information", 'file', has_length=0)
12422 rec( 8, 1, NameSpace ),
12423 rec( 9, 1, VolumeNumber ),
12424 rec( 10, 4, DirectoryBase ),
12425 rec( 14, 4, HugeBitMask ),
12426 rec( 18, 16, HugeStateInfo ),
12428 pkt.Reply((25,279), [
12429 rec( 8, 16, NextHugeStateInfo ),
12430 rec( 24, (1,255), HugeData ),
12432 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12433 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12434 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12437 pkt = NCP(0x571B, "Set Huge Name Space Information", 'file', has_length=0)
12438 pkt.Request((35,289), [
12439 rec( 8, 1, NameSpace ),
12440 rec( 9, 1, VolumeNumber ),
12441 rec( 10, 4, DirectoryBase ),
12442 rec( 14, 4, HugeBitMask ),
12443 rec( 18, 16, HugeStateInfo ),
12444 rec( 34, (1,255), HugeData ),
12447 rec( 8, 16, NextHugeStateInfo ),
12448 rec( 24, 4, HugeDataUsed ),
12450 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12451 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12452 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12455 pkt = NCP(0x571C, "Get Full Path String", 'file', has_length=0)
12456 pkt.Request((28,282), [
12457 rec( 8, 1, SrcNameSpace ),
12458 rec( 9, 1, DestNameSpace ),
12459 rec( 10, 2, PathCookieFlags ),
12460 rec( 12, 4, Cookie1 ),
12461 rec( 16, 4, Cookie2 ),
12462 rec( 20, 1, VolumeNumber ),
12463 rec( 21, 4, DirectoryBase ),
12464 rec( 25, 1, HandleFlag ),
12465 rec( 26, 1, PathCount, var="x" ),
12466 rec( 27, (1,255), Path, repeat="x" ),
12467 ], info_str=(Path, "Get Full Path from: %s", "/%s"))
12468 pkt.Reply((23,277), [
12469 rec( 8, 2, PathCookieFlags ),
12470 rec( 10, 4, Cookie1 ),
12471 rec( 14, 4, Cookie2 ),
12472 rec( 18, 2, PathComponentSize ),
12473 rec( 20, 2, PathComponentCount, var='x' ),
12474 rec( 22, (1,255), Path, repeat='x' ),
12476 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12477 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12478 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12481 pkt = NCP(0x571D, "Get Effective Directory Rights", 'file', has_length=0)
12482 pkt.Request((24, 278), [
12483 rec( 8, 1, NameSpace ),
12484 rec( 9, 1, DestNameSpace ),
12485 rec( 10, 2, SearchAttributesLow ),
12486 rec( 12, 2, ReturnInfoMask ),
12487 rec( 14, 2, ExtendedInfo ),
12488 rec( 16, 1, VolumeNumber ),
12489 rec( 17, 4, DirectoryBase ),
12490 rec( 21, 1, HandleFlag ),
12491 rec( 22, 1, PathCount, var="x" ),
12492 rec( 23, (1,255), Path, repeat="x" ),
12493 ], info_str=(Path, "Get Effective Rights for: %s", "/%s"))
12494 pkt.Reply(NO_LENGTH_CHECK, [
12495 rec( 8, 2, EffectiveRights ),
12496 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12497 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12498 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12499 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12500 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12501 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12502 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12503 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12504 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12505 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12506 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12507 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12508 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12509 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12510 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12511 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12512 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12513 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12514 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12515 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12516 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12517 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12518 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12519 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12520 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12521 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12522 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12523 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12524 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12525 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12526 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12527 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12528 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12529 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12530 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12532 pkt.ReqCondSizeVariable()
12533 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12534 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12535 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12537 pkt = NCP(0x571E, "Open/Create File or Subdirectory", 'file', has_length=0)
12538 pkt.Request((34, 288), [
12539 rec( 8, 1, NameSpace ),
12540 rec( 9, 1, DataStream ),
12541 rec( 10, 1, OpenCreateMode ),
12542 rec( 11, 1, Reserved ),
12543 rec( 12, 2, SearchAttributesLow ),
12544 rec( 14, 2, Reserved2 ),
12545 rec( 16, 2, ReturnInfoMask ),
12546 rec( 18, 2, ExtendedInfo ),
12547 rec( 20, 4, AttributesDef32 ),
12548 rec( 24, 2, DesiredAccessRights ),
12549 rec( 26, 1, VolumeNumber ),
12550 rec( 27, 4, DirectoryBase ),
12551 rec( 31, 1, HandleFlag ),
12552 rec( 32, 1, PathCount, var="x" ),
12553 rec( 33, (1,255), Path, repeat="x" ),
12554 ], info_str=(Path, "Open or Create File: %s", "/%s"))
12555 pkt.Reply(NO_LENGTH_CHECK, [
12556 rec( 8, 4, FileHandle, BE ),
12557 rec( 12, 1, OpenCreateAction ),
12558 rec( 13, 1, Reserved ),
12559 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12560 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12561 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12562 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12563 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12564 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12565 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12566 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12567 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12568 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12569 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12570 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12571 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12572 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12573 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12574 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12575 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12576 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12577 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12578 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12579 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12580 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12581 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12582 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12583 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12584 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12585 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12586 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12587 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12588 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12589 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12590 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12591 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12592 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12593 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12595 pkt.ReqCondSizeVariable()
12596 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12597 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12598 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12600 pkt = NCP(0x571F, "Get File Information", 'file', has_length=0)
12602 rec( 8, 6, FileHandle ),
12603 rec( 14, 1, HandleInfoLevel ),
12604 rec( 15, 1, NameSpace ),
12606 pkt.Reply(NO_LENGTH_CHECK, [
12607 rec( 8, 4, VolumeNumberLong ),
12608 rec( 12, 4, DirectoryBase ),
12609 srec(HandleInfoLevel0, req_cond="ncp.handle_info_level==0x00" ),
12610 srec(HandleInfoLevel1, req_cond="ncp.handle_info_level==0x01" ),
12611 srec(HandleInfoLevel2, req_cond="ncp.handle_info_level==0x02" ),
12612 srec(HandleInfoLevel3, req_cond="ncp.handle_info_level==0x03" ),
12613 srec(HandleInfoLevel4, req_cond="ncp.handle_info_level==0x04" ),
12614 srec(HandleInfoLevel5, req_cond="ncp.handle_info_level==0x05" ),
12616 pkt.ReqCondSizeVariable()
12617 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12618 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12619 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12621 pkt = NCP(0x5720, "Open/Create File or Subdirectory with Callback", 'file', has_length=0)
12622 pkt.Request((30, 284), [
12623 rec( 8, 1, NameSpace ),
12624 rec( 9, 1, OpenCreateMode ),
12625 rec( 10, 2, SearchAttributesLow ),
12626 rec( 12, 2, ReturnInfoMask ),
12627 rec( 14, 2, ExtendedInfo ),
12628 rec( 16, 4, AttributesDef32 ),
12629 rec( 20, 2, DesiredAccessRights ),
12630 rec( 22, 1, VolumeNumber ),
12631 rec( 23, 4, DirectoryBase ),
12632 rec( 27, 1, HandleFlag ),
12633 rec( 28, 1, PathCount, var="x" ),
12634 rec( 29, (1,255), Path, repeat="x" ),
12635 ], info_str=(Path, "Open or Create with Op-Lock: %s", "/%s"))
12636 pkt.Reply( NO_LENGTH_CHECK, [
12637 rec( 8, 4, FileHandle, BE ),
12638 rec( 12, 1, OpenCreateAction ),
12639 rec( 13, 1, OCRetFlags ),
12640 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12641 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12642 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12643 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12644 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12645 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12646 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12647 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12648 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12649 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12650 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12651 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12652 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12653 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12654 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12655 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12656 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12657 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12658 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12659 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12660 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12661 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12662 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12663 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12664 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12665 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12666 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12667 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12668 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12669 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12670 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12671 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12672 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12673 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12674 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12675 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
12676 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
12677 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12678 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12679 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12680 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12681 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12682 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12683 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12684 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12685 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12686 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12688 pkt.ReqCondSizeVariable()
12689 pkt.CompletionCodes([0x0000, 0x7f00, 0x8000, 0x8101, 0x8401, 0x8501,
12690 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12691 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12693 pkt = NCP(0x5721, "Open/Create File or Subdirectory II with Callback", 'file', has_length=0)
12694 pkt.Request((34, 288), [
12695 rec( 8, 1, NameSpace ),
12696 rec( 9, 1, DataStream ),
12697 rec( 10, 1, OpenCreateMode ),
12698 rec( 11, 1, Reserved ),
12699 rec( 12, 2, SearchAttributesLow ),
12700 rec( 14, 2, Reserved2 ),
12701 rec( 16, 2, ReturnInfoMask ),
12702 rec( 18, 2, ExtendedInfo ),
12703 rec( 20, 4, AttributesDef32 ),
12704 rec( 24, 2, DesiredAccessRights ),
12705 rec( 26, 1, VolumeNumber ),
12706 rec( 27, 4, DirectoryBase ),
12707 rec( 31, 1, HandleFlag ),
12708 rec( 32, 1, PathCount, var="x" ),
12709 rec( 33, (1,255), Path, repeat="x" ),
12710 ], info_str=(FilePath, "Open or Create II with Op-Lock: %s", "/%s"))
12711 pkt.Reply((91,345), [
12712 rec( 8, 4, FileHandle ),
12713 rec( 12, 1, OpenCreateAction ),
12714 rec( 13, 1, OCRetFlags ),
12715 rec( 14, 4, DataStreamSpaceAlloc ),
12716 rec( 18, 6, AttributesStruct ),
12717 rec( 24, 4, DataStreamSize ),
12718 rec( 28, 4, TtlDSDskSpaceAlloc ),
12719 rec( 32, 2, NumberOfDataStreams ),
12720 rec( 34, 2, CreationTime ),
12721 rec( 36, 2, CreationDate ),
12722 rec( 38, 4, CreatorID, BE ),
12723 rec( 42, 2, ModifiedTime ),
12724 rec( 44, 2, ModifiedDate ),
12725 rec( 46, 4, ModifierID, BE ),
12726 rec( 50, 2, LastAccessedDate ),
12727 rec( 52, 2, ArchivedTime ),
12728 rec( 54, 2, ArchivedDate ),
12729 rec( 56, 4, ArchiverID, BE ),
12730 rec( 60, 2, InheritedRightsMask ),
12731 rec( 62, 4, DirectoryEntryNumber ),
12732 rec( 66, 4, DOSDirectoryEntryNumber ),
12733 rec( 70, 4, VolumeNumberLong ),
12734 rec( 74, 4, EADataSize ),
12735 rec( 78, 4, EACount ),
12736 rec( 82, 4, EAKeySize ),
12737 rec( 86, 1, CreatorNameSpaceNumber ),
12738 rec( 87, 3, Reserved3 ),
12739 rec( 90, (1,255), FileName ),
12741 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12742 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12743 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12745 pkt = NCP(0x5722, "Open CallBack Control (Op-Lock)", 'file', has_length=0)
12747 rec( 10, 4, CCFileHandle, BE ),
12748 rec( 14, 1, CCFunction ),
12751 pkt.CompletionCodes([0x0000, 0x8800, 0xff16])
12753 pkt = NCP(0x5723, "Modify DOS Attributes on a File or Subdirectory", 'file', has_length=0)
12754 pkt.Request((28, 282), [
12755 rec( 8, 1, NameSpace ),
12756 rec( 9, 1, Flags ),
12757 rec( 10, 2, SearchAttributesLow ),
12758 rec( 12, 2, ReturnInfoMask ),
12759 rec( 14, 2, ExtendedInfo ),
12760 rec( 16, 4, AttributesDef32 ),
12761 rec( 20, 1, VolumeNumber ),
12762 rec( 21, 4, DirectoryBase ),
12763 rec( 25, 1, HandleFlag ),
12764 rec( 26, 1, PathCount, var="x" ),
12765 rec( 27, (1,255), Path, repeat="x" ),
12766 ], info_str=(Path, "Modify DOS Attributes for: %s", "/%s"))
12768 rec( 8, 4, ItemsChecked ),
12769 rec( 12, 4, ItemsChanged ),
12770 rec( 16, 4, AttributeValidFlag ),
12771 rec( 20, 4, AttributesDef32 ),
12773 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12774 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12775 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12777 pkt = NCP(0x5724, "Log File", 'file', has_length=0)
12778 pkt.Request((28, 282), [
12779 rec( 8, 1, NameSpace ),
12780 rec( 9, 1, Reserved ),
12781 rec( 10, 2, Reserved2 ),
12782 rec( 12, 1, LogFileFlagLow ),
12783 rec( 13, 1, LogFileFlagHigh ),
12784 rec( 14, 2, Reserved2 ),
12785 rec( 16, 4, WaitTime ),
12786 rec( 20, 1, VolumeNumber ),
12787 rec( 21, 4, DirectoryBase ),
12788 rec( 25, 1, HandleFlag ),
12789 rec( 26, 1, PathCount, var="x" ),
12790 rec( 27, (1,255), Path, repeat="x" ),
12791 ], info_str=(Path, "Lock File: %s", "/%s"))
12793 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12794 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12795 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12797 pkt = NCP(0x5725, "Release File", 'file', has_length=0)
12798 pkt.Request((20, 274), [
12799 rec( 8, 1, NameSpace ),
12800 rec( 9, 1, Reserved ),
12801 rec( 10, 2, Reserved2 ),
12802 rec( 12, 1, VolumeNumber ),
12803 rec( 13, 4, DirectoryBase ),
12804 rec( 17, 1, HandleFlag ),
12805 rec( 18, 1, PathCount, var="x" ),
12806 rec( 19, (1,255), Path, repeat="x" ),
12807 ], info_str=(Path, "Release Lock on: %s", "/%s"))
12809 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12810 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12811 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12813 pkt = NCP(0x5726, "Clear File", 'file', has_length=0)
12814 pkt.Request((20, 274), [
12815 rec( 8, 1, NameSpace ),
12816 rec( 9, 1, Reserved ),
12817 rec( 10, 2, Reserved2 ),
12818 rec( 12, 1, VolumeNumber ),
12819 rec( 13, 4, DirectoryBase ),
12820 rec( 17, 1, HandleFlag ),
12821 rec( 18, 1, PathCount, var="x" ),
12822 rec( 19, (1,255), Path, repeat="x" ),
12823 ], info_str=(Path, "Clear File: %s", "/%s"))
12825 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12826 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12827 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12829 pkt = NCP(0x5727, "Get Directory Disk Space Restriction", 'file', has_length=0)
12830 pkt.Request((19, 273), [
12831 rec( 8, 1, NameSpace ),
12832 rec( 9, 2, Reserved2 ),
12833 rec( 11, 1, VolumeNumber ),
12834 rec( 12, 4, DirectoryBase ),
12835 rec( 16, 1, HandleFlag ),
12836 rec( 17, 1, PathCount, var="x" ),
12837 rec( 18, (1,255), Path, repeat="x" ),
12838 ], info_str=(Path, "Get Disk Space Restriction for: %s", "/%s"))
12840 rec( 8, 1, NumberOfEntries, var="x" ),
12841 rec( 9, 9, SpaceStruct, repeat="x" ),
12843 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12844 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12845 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12848 pkt = NCP(0x5728, "Search for File or Subdirectory Set (Extended Errors)", 'file', has_length=0)
12849 pkt.Request((28, 282), [
12850 rec( 8, 1, NameSpace ),
12851 rec( 9, 1, DataStream ),
12852 rec( 10, 2, SearchAttributesLow ),
12853 rec( 12, 2, ReturnInfoMask ),
12854 rec( 14, 2, ExtendedInfo ),
12855 rec( 16, 2, ReturnInfoCount ),
12856 rec( 18, 9, SearchSequence ),
12857 rec( 27, (1,255), SearchPattern ),
12858 ], info_str=(SearchPattern, "Search for: %s", ", %s"))
12859 pkt.Reply(NO_LENGTH_CHECK, [
12860 rec( 8, 9, SearchSequence ),
12861 rec( 17, 1, MoreFlag ),
12862 rec( 18, 2, InfoCount ),
12863 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12864 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12865 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12866 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12867 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12868 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12869 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12870 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12871 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12872 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12873 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12874 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12875 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12876 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12877 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12878 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12879 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12880 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12881 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12882 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12883 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12884 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12885 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12886 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12887 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12888 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12889 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12890 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12891 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12892 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12893 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12894 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12895 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12896 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12897 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12899 pkt.ReqCondSizeVariable()
12900 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12901 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12902 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12904 pkt = NCP(0x5729, "Scan Salvageable Files", 'file', has_length=0)
12905 pkt.Request((24,278), [
12906 rec( 8, 1, NameSpace ),
12907 rec( 9, 1, Reserved ),
12908 rec( 10, 2, CtrlFlags, LE ),
12909 rec( 12, 4, SequenceNumber ),
12910 rec( 16, 1, VolumeNumber ),
12911 rec( 17, 4, DirectoryBase ),
12912 rec( 21, 1, HandleFlag ),
12913 rec( 22, 1, PathCount, var="x" ),
12914 rec( 23, (1,255), Path, repeat="x" ),
12915 ], info_str=(Path, "Scan Deleted Files: %s", "/%s"))
12916 pkt.Reply(NO_LENGTH_CHECK, [
12917 rec( 8, 4, SequenceNumber ),
12918 rec( 12, 4, DirectoryBase ),
12919 rec( 16, 4, ScanItems, var="x" ),
12920 srec(ScanInfoFileName, req_cond="ncp.ctrl_flags==0x0001", repeat="x" ),
12921 srec(ScanInfoFileNoName, req_cond="ncp.ctrl_flags==0x0000", repeat="x" ),
12923 pkt.ReqCondSizeVariable()
12924 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12925 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12926 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12928 pkt = NCP(0x572A, "Purge Salvageable File List", 'file', has_length=0)
12930 rec( 8, 1, NameSpace ),
12931 rec( 9, 1, Reserved ),
12932 rec( 10, 2, PurgeFlags ),
12933 rec( 12, 4, VolumeNumberLong ),
12934 rec( 16, 4, DirectoryBase ),
12935 rec( 20, 4, PurgeCount, var="x" ),
12936 rec( 24, 4, PurgeList, repeat="x" ),
12939 rec( 8, 4, PurgeCount, var="x" ),
12940 rec( 12, 4, PurgeCcode, repeat="x" ),
12942 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12943 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12944 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12946 pkt = NCP(0x572B, "Revoke File Handle Rights", 'file', has_length=0)
12948 rec( 8, 3, Reserved3 ),
12949 rec( 11, 1, RevQueryFlag ),
12950 rec( 12, 4, FileHandle ),
12951 rec( 16, 1, RemoveOpenRights ),
12954 rec( 8, 4, FileHandle ),
12955 rec( 12, 1, OpenRights ),
12957 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12958 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12959 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12961 pkt = NCP(0x572C, "Update File Handle Rights", 'file', has_length=0)
12963 rec( 8, 2, Reserved2 ),
12964 rec( 10, 1, VolumeNumber ),
12965 rec( 11, 1, NameSpace ),
12966 rec( 12, 4, DirectoryNumber ),
12967 rec( 16, 2, AccessRightsMaskWord ),
12968 rec( 18, 2, NewAccessRights ),
12969 rec( 20, 4, FileHandle, BE ),
12972 rec( 8, 4, FileHandle, BE ),
12973 rec( 12, 4, EffectiveRights ),
12975 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12976 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12977 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12979 pkt = NCP(0x5740, "Read from File", 'file', has_length=0)
12981 rec( 8, 4, FileHandle, BE ),
12982 rec( 12, 8, StartOffset64bit, BE ),
12983 rec( 20, 2, NumBytes, BE ),
12986 rec( 8, 2, NumBytes, BE),
12988 pkt.CompletionCodes([0x0000, 0x8300, 0x8800, 0x9300, 0x9500, 0xa201, 0xfd00, 0xff1b])
12990 pkt = NCP(0x5741, "Write to File", 'file', has_length=0)
12992 rec( 8, 4, FileHandle, BE ),
12993 rec( 12, 8, StartOffset64bit, BE ),
12994 rec( 20, 2, NumBytes, BE ),
12997 pkt.CompletionCodes([0x0000, 0x8300, 0x8800, 0x9400, 0x9500, 0xa201, 0xfd00, 0xff1b])
12999 pkt = NCP(0x5742, "Get Current Size of File", 'file', has_length=0)
13001 rec( 8, 4, FileHandle, BE ),
13004 rec( 8, 8, FileSize64bit, BE ),
13006 pkt.CompletionCodes([0x0000, 0x7f00, 0x8800, 0x9600, 0xfd02, 0xff01])
13008 pkt = NCP(0x5743, "Log Physical Record", 'file', has_length=0)
13010 rec( 8, 4, LockFlag, BE ),
13011 rec(12, 4, FileHandle, BE ),
13012 rec(16, 8, StartOffset64bit, BE ),
13013 rec(24, 8, Length64bit, BE ),
13014 rec(32, 4, LockTimeout, BE),
13017 pkt.CompletionCodes([0x0000, 0x7f00, 0x8800, 0x9600, 0xfb08, 0xfd02, 0xff01])
13019 pkt = NCP(0x5744, "Release Physical Record", 'file', has_length=0)
13021 rec(8, 4, FileHandle, BE ),
13022 rec(12, 8, StartOffset64bit, BE ),
13023 rec(20, 8, Length64bit, BE ),
13026 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13027 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13028 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff1a])
13030 pkt = NCP(0x5745, "Clear Physical Record", 'file', has_length=0)
13032 rec(8, 4, FileHandle, BE ),
13033 rec(12, 8, StartOffset64bit, BE ),
13034 rec(20, 8, Length64bit, BE ),
13037 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13038 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13039 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff1a])
13041 pkt = NCP(0x5801, "Query Volume Audit Status", "auditing", has_length=0)
13043 rec( 8, 4, ConnectionNumber ),
13046 rec(8, 32, NWAuditStatus ),
13048 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13049 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13050 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13052 pkt = NCP(0x5802, "Add User Audit Property", "auditing", has_length=0)
13054 rec(8, 4, AuditIDType ),
13055 rec(12, 4, AuditID ),
13056 rec(16, 4, AuditHandle ),
13057 rec(20, 4, ObjectID ),
13058 rec(24, 1, AuditFlag ),
13061 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13062 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13063 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13065 pkt = NCP(0x5803, "Add Auditor Access", "auditing", has_length=0)
13068 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13069 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13070 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13072 pkt = NCP(0x5804, "Change Auditor Volume Password", "auditing", has_length=0)
13075 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13076 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13077 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13079 pkt = NCP(0x5805, "Check Auditor Access", "auditing", has_length=0)
13082 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13083 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13084 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13086 pkt = NCP(0x5806, "Delete User Audit Property", "auditing", has_length=0)
13089 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13090 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13091 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13093 pkt = NCP(0x5807, "Disable Auditing On A Volume", "auditing", has_length=0)
13096 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13097 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13098 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13100 pkt = NCP(0x5808, "Enable Auditing On A Volume", "auditing", has_length=0)
13103 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13104 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13105 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13107 pkt = NCP(0x5809, "Query User Being Audited", "auditing", has_length=0)
13110 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13111 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13112 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13114 pkt = NCP(0x580A, "Read Audit Bit Map", "auditing", has_length=0)
13117 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13118 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13119 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13121 pkt = NCP(0x580B, "Read Audit File Configuration Header", "auditing", has_length=0)
13124 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13125 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13126 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13128 pkt = NCP(0x580D, "Remove Auditor Access", "auditing", has_length=0)
13131 pkt.CompletionCodes([0x0000, 0x300, 0x8000, 0x8101, 0x8401, 0x8501,
13132 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13133 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13135 pkt = NCP(0x580E, "Reset Audit File", "auditing", has_length=0)
13138 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13139 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13140 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13143 pkt = NCP(0x580F, "Auditing NCP", "auditing", has_length=0)
13146 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13147 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13148 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13150 pkt = NCP(0x5810, "Write Audit Bit Map", "auditing", has_length=0)
13153 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13154 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13155 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13157 pkt = NCP(0x5811, "Write Audit File Configuration Header", "auditing", has_length=0)
13160 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13161 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13162 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13164 pkt = NCP(0x5812, "Change Auditor Volume Password2", "auditing", has_length=0)
13167 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13168 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13169 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13171 pkt = NCP(0x5813, "Return Audit Flags", "auditing", has_length=0)
13174 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13175 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13176 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13178 pkt = NCP(0x5814, "Close Old Audit File", "auditing", has_length=0)
13181 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13182 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13183 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13185 pkt = NCP(0x5816, "Check Level Two Access", "auditing", has_length=0)
13188 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13189 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13190 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13192 pkt = NCP(0x5817, "Return Old Audit File List", "auditing", has_length=0)
13195 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13196 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13197 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13199 pkt = NCP(0x5818, "Init Audit File Reads", "auditing", has_length=0)
13202 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13203 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13204 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13206 pkt = NCP(0x5819, "Read Auditing File", "auditing", has_length=0)
13209 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13210 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13211 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13213 pkt = NCP(0x581A, "Delete Old Audit File", "auditing", has_length=0)
13216 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13217 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13218 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13220 pkt = NCP(0x581E, "Restart Volume auditing", "auditing", has_length=0)
13223 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13224 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13225 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13227 pkt = NCP(0x581F, "Set Volume Password", "auditing", has_length=0)
13230 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13231 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13232 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13234 pkt = NCP(0x5A01, "Parse Tree", 'file')
13236 rec( 10, 4, InfoMask ),
13237 rec( 14, 4, Reserved4 ),
13238 rec( 18, 4, Reserved4 ),
13239 rec( 22, 4, limbCount ),
13242 rec( 8, 4, limbCount ),
13243 rec( 12, 4, ItemsCount ),
13244 rec( 16, 4, nextLimbScanNum ),
13245 rec( 20, 4, CompletionCode ),
13246 rec( 24, 1, FolderFlag ),
13247 rec( 25, 3, Reserved ),
13248 rec( 28, 4, DirectoryBase ),
13250 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13251 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13252 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13254 pkt = NCP(0x5A0A, "Get Reference Count from Dir Entry Number", 'file')
13256 rec( 10, 4, VolumeNumberLong ),
13257 rec( 14, 4, DirectoryBase ),
13258 rec( 18, 1, NameSpace ),
13261 rec( 8, 4, ReferenceCount ),
13263 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13264 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13265 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13267 pkt = NCP(0x5A0B, "Get Reference Count from Dir Handle", 'file')
13269 rec( 10, 4, DirHandle ),
13272 rec( 8, 4, ReferenceCount ),
13274 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13275 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13276 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13278 pkt = NCP(0x5A0C, "Set Compressed File Size", 'file')
13280 rec( 10, 6, FileHandle ),
13281 rec( 16, 4, SuggestedFileSize ),
13284 rec( 8, 4, OldFileSize ),
13285 rec( 12, 4, NewFileSize ),
13287 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13288 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13289 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13290 # 2222/5A80, 90/128
13291 pkt = NCP(0x5A80, "Move File Data To Data Migration", 'file')
13293 rec( 10, 4, VolumeNumberLong ),
13294 rec( 14, 4, DirectoryEntryNumber ),
13295 rec( 18, 1, NameSpace ),
13296 rec( 19, 3, Reserved ),
13297 rec( 22, 4, SupportModuleID ),
13298 rec( 26, 1, DMFlags ),
13301 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13302 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13303 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13304 # 2222/5A81, 90/129
13305 pkt = NCP(0x5A81, "Data Migration File Information", 'file')
13307 rec( 10, 4, VolumeNumberLong ),
13308 rec( 14, 4, DirectoryEntryNumber ),
13309 rec( 18, 1, NameSpace ),
13312 rec( 8, 4, SupportModuleID ),
13313 rec( 12, 4, RestoreTime ),
13314 rec( 16, 4, DMInfoEntries, var="x" ),
13315 rec( 20, 4, DataSize, repeat="x" ),
13317 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13318 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13319 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13320 # 2222/5A82, 90/130
13321 pkt = NCP(0x5A82, "Volume Data Migration Status", 'file')
13323 rec( 10, 4, VolumeNumberLong ),
13324 rec( 14, 4, SupportModuleID ),
13327 rec( 8, 4, NumOfFilesMigrated ),
13328 rec( 12, 4, TtlMigratedSize ),
13329 rec( 16, 4, SpaceUsed ),
13330 rec( 20, 4, LimboUsed ),
13331 rec( 24, 4, SpaceMigrated ),
13332 rec( 28, 4, FileLimbo ),
13334 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13335 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13336 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13337 # 2222/5A83, 90/131
13338 pkt = NCP(0x5A83, "Migrator Status Info", 'file')
13341 rec( 8, 1, DMPresentFlag ),
13342 rec( 9, 3, Reserved3 ),
13343 rec( 12, 4, DMmajorVersion ),
13344 rec( 16, 4, DMminorVersion ),
13346 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13347 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13348 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13349 # 2222/5A84, 90/132
13350 pkt = NCP(0x5A84, "Data Migration Support Module Information", 'file')
13352 rec( 10, 1, DMInfoLevel ),
13353 rec( 11, 3, Reserved3),
13354 rec( 14, 4, SupportModuleID ),
13356 pkt.Reply(NO_LENGTH_CHECK, [
13357 srec( DMInfoLevel0, req_cond="ncp.dm_info_level == 0x00" ),
13358 srec( DMInfoLevel1, req_cond="ncp.dm_info_level == 0x01" ),
13359 srec( DMInfoLevel2, req_cond="ncp.dm_info_level == 0x02" ),
13361 pkt.ReqCondSizeVariable()
13362 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13363 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13364 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13365 # 2222/5A85, 90/133
13366 pkt = NCP(0x5A85, "Move File Data From Data Migration", 'file')
13368 rec( 10, 4, VolumeNumberLong ),
13369 rec( 14, 4, DirectoryEntryNumber ),
13370 rec( 18, 1, NameSpace ),
13373 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13374 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13375 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13376 # 2222/5A86, 90/134
13377 pkt = NCP(0x5A86, "Get/Set Default Read-Write Support Module ID", 'file')
13379 rec( 10, 1, GetSetFlag ),
13380 rec( 11, 3, Reserved3 ),
13381 rec( 14, 4, SupportModuleID ),
13384 rec( 8, 4, SupportModuleID ),
13386 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13387 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13388 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13389 # 2222/5A87, 90/135
13390 pkt = NCP(0x5A87, "Data Migration Support Module Capacity Request", 'file')
13392 rec( 10, 4, SupportModuleID ),
13393 rec( 14, 4, VolumeNumberLong ),
13394 rec( 18, 4, DirectoryBase ),
13397 rec( 8, 4, BlockSizeInSectors ),
13398 rec( 12, 4, TotalBlocks ),
13399 rec( 16, 4, UsedBlocks ),
13401 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13402 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13403 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13404 # 2222/5A88, 90/136
13405 pkt = NCP(0x5A88, "RTDM Request", 'file')
13407 rec( 10, 4, Verb ),
13408 rec( 14, 1, VerbData ),
13411 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13412 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13413 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13415 pkt = NCP(0x5B, "NMAS Graded Authentication", 'nmas')
13416 #Need info on this packet structure
13419 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13420 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13421 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13423 pkt = NCP(0x5C01, "SecretStore Services (Ping Server)", 'sss', 0)
13424 #Need info on this packet structure and SecretStore Verbs
13427 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13428 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13429 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13431 pkt = NCP(0x5C02, "SecretStore Services", 'sss', 0)
13432 #Need info on this packet structure and SecretStore Verbs
13435 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13436 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13437 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13439 pkt = NCP(0x5C03, "SecretStore Services", 'sss', 0)
13440 #Need info on this packet structure and SecretStore Verbs
13443 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13444 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13445 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13447 pkt = NCP(0x5C04, "SecretStore Services", 'sss', 0)
13448 #Need info on this packet structure and SecretStore Verbs
13451 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13452 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13453 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13455 pkt = NCP(0x5C05, "SecretStore Services", 'sss', 0)
13456 #Need info on this packet structure and SecretStore Verbs
13459 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13460 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13461 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13463 pkt = NCP(0x5C06, "SecretStore Services", 'sss', 0)
13464 #Need info on this packet structure and SecretStore Verbs
13467 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13468 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13469 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13471 pkt = NCP(0x5C07, "SecretStore Services", 'sss', 0)
13472 #Need info on this packet structure and SecretStore Verbs
13475 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13476 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13477 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13479 pkt = NCP(0x5C08, "SecretStore Services", 'sss', 0)
13480 #Need info on this packet structure and SecretStore Verbs
13483 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13484 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13485 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13487 pkt = NCP(0x5C09, "SecretStore Services", 'sss', 0)
13488 #Need info on this packet structure and SecretStore Verbs
13491 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13492 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13493 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13495 pkt = NCP(0x5C0a, "SecretStore Services", 'sss', 0)
13496 #Need info on this packet structure and SecretStore Verbs
13499 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13500 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13501 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13503 pkt = NCP(0x5E01, "NMAS Communications Packet", 'nmas', 0)
13506 pkt.CompletionCodes([0x0000, 0xfb09])
13508 pkt = NCP(0x5E02, "NMAS Communications Packet", 'nmas', 0)
13511 pkt.CompletionCodes([0x0000, 0xfb09])
13513 pkt = NCP(0x5E03, "NMAS Communications Packet", 'nmas', 0)
13516 pkt.CompletionCodes([0x0000, 0xfb09])
13518 pkt = NCP(0x61, "Get Big Packet NCP Max Packet Size", 'comm')
13520 rec( 7, 2, ProposedMaxSize, BE ),
13521 rec( 9, 1, SecurityFlag ),
13522 ],info_str=(ProposedMaxSize, "Get Big Max Packet Size - %d", ", %d"))
13524 rec( 8, 2, AcceptedMaxSize, BE ),
13525 rec( 10, 2, EchoSocket, BE ),
13526 rec( 12, 1, SecurityFlag ),
13528 pkt.CompletionCodes([0x0000])
13530 pkt = NCP(0x63, "Undocumented Packet Burst", 'comm')
13533 pkt.CompletionCodes([0x0000])
13535 pkt = NCP(0x64, "Undocumented Packet Burst", 'comm')
13538 pkt.CompletionCodes([0x0000])
13540 pkt = NCP(0x65, "Packet Burst Connection Request", 'comm')
13542 rec( 7, 4, LocalConnectionID, BE ),
13543 rec( 11, 4, LocalMaxPacketSize, BE ),
13544 rec( 15, 2, LocalTargetSocket, BE ),
13545 rec( 17, 4, LocalMaxSendSize, BE ),
13546 rec( 21, 4, LocalMaxRecvSize, BE ),
13549 rec( 8, 4, RemoteTargetID, BE ),
13550 rec( 12, 4, RemoteMaxPacketSize, BE ),
13552 pkt.CompletionCodes([0x0000])
13554 pkt = NCP(0x66, "Undocumented Packet Burst", 'comm')
13557 pkt.CompletionCodes([0x0000])
13559 pkt = NCP(0x67, "Undocumented Packet Burst", 'comm')
13562 pkt.CompletionCodes([0x0000])
13563 # 2222/6801, 104/01
13564 pkt = NCP(0x6801, "Ping for NDS NCP", "nds", has_length=0)
13567 pkt.ReqCondSizeVariable()
13568 pkt.CompletionCodes([0x0000, 0x8100, 0xfb04, 0xfe0c])
13569 # 2222/6802, 104/02
13571 # XXX - if FraggerHandle is not 0xffffffff, this is not the
13572 # first fragment, so we can only dissect this by reassembling;
13573 # the fields after "Fragment Handle" are bogus for non-0xffffffff
13574 # fragments, so we shouldn't dissect them.
13576 # XXX - are there TotalRequest requests in the packet, and
13577 # does each of them have NDSFlags and NDSVerb fields, or
13578 # does only the first one have it?
13580 pkt = NCP(0x6802, "Send NDS Fragmented Request/Reply", "nds", has_length=0)
13583 pkt.ReqCondSizeVariable()
13584 pkt.CompletionCodes([0x0000, 0xfd01])
13585 # 2222/6803, 104/03
13586 pkt = NCP(0x6803, "Fragment Close", "nds", has_length=0)
13588 rec( 8, 4, FraggerHandle ),
13591 pkt.CompletionCodes([0x0000, 0xff00])
13592 # 2222/6804, 104/04
13593 pkt = NCP(0x6804, "Return Bindery Context", "nds", has_length=0)
13595 pkt.Reply((9, 263), [
13596 rec( 8, (1,255), binderyContext ),
13598 pkt.CompletionCodes([0x0000, 0xfe0c, 0xff00])
13599 # 2222/6805, 104/05
13600 pkt = NCP(0x6805, "Monitor NDS Connection", "nds", has_length=0)
13603 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13604 # 2222/6806, 104/06
13605 pkt = NCP(0x6806, "Return NDS Statistics", "nds", has_length=0)
13607 rec( 8, 2, NDSRequestFlags ),
13610 #Need to investigate how to decode Statistics Return Value
13611 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13612 # 2222/6807, 104/07
13613 pkt = NCP(0x6807, "Clear NDS Statistics", "nds", has_length=0)
13616 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13617 # 2222/6808, 104/08
13618 pkt = NCP(0x6808, "Reload NDS Software", "nds", has_length=0)
13621 rec( 8, 4, NDSStatus ),
13623 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13624 # 2222/68C8, 104/200
13625 pkt = NCP(0x68C8, "Query Container Audit Status", "auditing", has_length=0)
13627 rec( 8, 4, ConnectionNumber ),
13628 # rec( 12, 4, AuditIDType, LE ),
13629 # rec( 16, 4, AuditID ),
13630 # rec( 20, 2, BufferSize ),
13633 rec(8, 32, NWAuditStatus ),
13635 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13636 # 2222/68CA, 104/202
13637 pkt = NCP(0x68CA, "Add Auditor Access", "auditing", has_length=0)
13640 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13641 # 2222/68CB, 104/203
13642 pkt = NCP(0x68CB, "Change Auditor Container Password", "auditing", has_length=0)
13645 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13646 # 2222/68CC, 104/204
13647 pkt = NCP(0x68CC, "Check Auditor Access", "auditing", has_length=0)
13650 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13651 # 2222/68CE, 104/206
13652 pkt = NCP(0x680CE, "Disable Container Auditing", "auditing", has_length=0)
13655 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13656 # 2222/68CF, 104/207
13657 pkt = NCP(0x68CF, "Enable Container Auditing", "auditing", has_length=0)
13660 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13661 # 2222/68D1, 104/209
13662 pkt = NCP(0x68D1, "Read Audit File Header", "auditing", has_length=0)
13665 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13666 # 2222/68D3, 104/211
13667 pkt = NCP(0x68D3, "Remove Auditor Access", "auditing", has_length=0)
13670 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13671 # 2222/68D4, 104/212
13672 pkt = NCP(0x68D4, "Reset Audit File", "auditing", has_length=0)
13675 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13676 # 2222/68D6, 104/214
13677 pkt = NCP(0x68D6, "Write Audit File Configuration Header", "auditing", has_length=0)
13680 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13681 # 2222/68D7, 104/215
13682 pkt = NCP(0x68D7, "Change Auditor Container Password2", "auditing", has_length=0)
13685 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13686 # 2222/68D8, 104/216
13687 pkt = NCP(0x68D8, "Return Audit Flags", "auditing", has_length=0)
13690 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13691 # 2222/68D9, 104/217
13692 pkt = NCP(0x68D9, "Close Old Audit File", "auditing", has_length=0)
13695 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13696 # 2222/68DB, 104/219
13697 pkt = NCP(0x68DB, "Check Level Two Access", "auditing", has_length=0)
13700 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13701 # 2222/68DC, 104/220
13702 pkt = NCP(0x68DC, "Check Object Audited", "auditing", has_length=0)
13705 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13706 # 2222/68DD, 104/221
13707 pkt = NCP(0x68DD, "Change Object Audited", "auditing", has_length=0)
13710 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13711 # 2222/68DE, 104/222
13712 pkt = NCP(0x68DE, "Return Old Audit File List", "auditing", has_length=0)
13715 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13716 # 2222/68DF, 104/223
13717 pkt = NCP(0x68DF, "Init Audit File Reads", "auditing", has_length=0)
13720 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13721 # 2222/68E0, 104/224
13722 pkt = NCP(0x68E0, "Read Auditing File", "auditing", has_length=0)
13725 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13726 # 2222/68E1, 104/225
13727 pkt = NCP(0x68E1, "Delete Old Audit File", "auditing", has_length=0)
13730 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13731 # 2222/68E5, 104/229
13732 pkt = NCP(0x68E5, "Set Audit Password", "auditing", has_length=0)
13735 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13736 # 2222/68E7, 104/231
13737 pkt = NCP(0x68E7, "External Audit Append To File", "auditing", has_length=0)
13740 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13742 pkt = NCP(0x69, "Log File", 'file')
13743 pkt.Request( (12, 267), [
13744 rec( 7, 1, DirHandle ),
13745 rec( 8, 1, LockFlag ),
13746 rec( 9, 2, TimeoutLimit ),
13747 rec( 11, (1, 256), FilePath ),
13748 ], info_str=(FilePath, "Log File: %s", "/%s"))
13750 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x9600, 0xfe0d, 0xff01])
13752 pkt = NCP(0x6A, "Lock File Set", 'file')
13754 rec( 7, 2, TimeoutLimit ),
13757 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x9600, 0xfe0d, 0xff01])
13759 pkt = NCP(0x6B, "Log Logical Record", 'file')
13760 pkt.Request( (11, 266), [
13761 rec( 7, 1, LockFlag ),
13762 rec( 8, 2, TimeoutLimit ),
13763 rec( 10, (1, 256), SynchName ),
13764 ], info_str=(SynchName, "Log Logical Record: %s", ", %s"))
13766 pkt.CompletionCodes([0x0000, 0x7f00, 0x9600, 0xfe0d, 0xff01])
13768 pkt = NCP(0x6C, "Log Logical Record", 'file')
13770 rec( 7, 1, LockFlag ),
13771 rec( 8, 2, TimeoutLimit ),
13774 pkt.CompletionCodes([0x0000, 0x7f00, 0x9600, 0xfe0d, 0xff01])
13776 pkt = NCP(0x6D, "Log Physical Record", 'file')
13778 rec( 7, 1, LockFlag ),
13779 rec( 8, 6, FileHandle ),
13780 rec( 14, 4, LockAreasStartOffset ),
13781 rec( 18, 4, LockAreaLen ),
13782 rec( 22, 2, LockTimeout ),
13785 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
13787 pkt = NCP(0x6E, "Lock Physical Record Set", 'file')
13789 rec( 7, 1, LockFlag ),
13790 rec( 8, 2, LockTimeout ),
13793 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
13794 # 2222/6F00, 111/00
13795 pkt = NCP(0x6F00, "Open/Create a Semaphore", 'file', has_length=0)
13796 pkt.Request((10,521), [
13797 rec( 8, 1, InitialSemaphoreValue ),
13798 rec( 9, (1, 512), SemaphoreName ),
13799 ], info_str=(SemaphoreName, "Open/Create Semaphore: %s", ", %s"))
13801 rec( 8, 4, SemaphoreHandle ),
13802 rec( 12, 1, SemaphoreOpenCount ),
13804 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
13805 # 2222/6F01, 111/01
13806 pkt = NCP(0x6F01, "Examine Semaphore", 'file', has_length=0)
13808 rec( 8, 4, SemaphoreHandle ),
13811 rec( 8, 1, SemaphoreValue ),
13812 rec( 9, 1, SemaphoreOpenCount ),
13814 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
13815 # 2222/6F02, 111/02
13816 pkt = NCP(0x6F02, "Wait On (P) Semaphore", 'file', has_length=0)
13818 rec( 8, 4, SemaphoreHandle ),
13819 rec( 12, 2, LockTimeout ),
13822 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13823 # 2222/6F03, 111/03
13824 pkt = NCP(0x6F03, "Signal (V) Semaphore", 'file', has_length=0)
13826 rec( 8, 4, SemaphoreHandle ),
13829 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13830 # 2222/6F04, 111/04
13831 pkt = NCP(0x6F04, "Close Semaphore", 'file', has_length=0)
13833 rec( 8, 4, SemaphoreHandle ),
13836 rec( 8, 1, SemaphoreOpenCount ),
13837 rec( 9, 1, SemaphoreShareCount ),
13839 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13840 # 2222/7201, 114/01
13841 pkt = NCP(0x7201, "Timesync Get Time", 'file')
13844 rec( 8, 12, theTimeStruct ),
13845 rec(20, 8, eventOffset ),
13846 rec(28, 4, eventTime ),
13848 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13849 # 2222/7202, 114/02
13850 pkt = NCP(0x7202, "Timesync Exchange Time", 'file')
13851 pkt.Request((63,112), [
13852 rec( 10, 4, protocolFlags ),
13853 rec( 14, 4, nodeFlags ),
13854 rec( 18, 8, sourceOriginateTime ),
13855 rec( 26, 8, targetReceiveTime ),
13856 rec( 34, 8, targetTransmitTime ),
13857 rec( 42, 8, sourceReturnTime ),
13858 rec( 50, 8, eventOffset ),
13859 rec( 58, 4, eventTime ),
13860 rec( 62, (1,50), ServerNameLen ),
13861 ], info_str=(ServerNameLen, "Timesync Exchange Time: %s", ", %s"))
13862 pkt.Reply((64,113), [
13863 rec( 8, 3, Reserved3 ),
13864 rec( 11, 4, protocolFlags ),
13865 rec( 15, 4, nodeFlags ),
13866 rec( 19, 8, sourceOriginateTime ),
13867 rec( 27, 8, targetReceiveTime ),
13868 rec( 35, 8, targetTransmitTime ),
13869 rec( 43, 8, sourceReturnTime ),
13870 rec( 51, 8, eventOffset ),
13871 rec( 59, 4, eventTime ),
13872 rec( 63, (1,50), ServerNameLen ),
13874 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13875 # 2222/7205, 114/05
13876 pkt = NCP(0x7205, "Timesync Get Server List", 'file')
13878 rec( 10, 4, StartNumber ),
13881 rec( 8, 4, nameType ),
13882 rec( 12, 48, ServerName ),
13883 rec( 60, 4, serverListFlags ),
13884 rec( 64, 2, startNumberFlag ),
13886 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13887 # 2222/7206, 114/06
13888 pkt = NCP(0x7206, "Timesync Set Server List", 'file')
13890 rec( 10, 4, StartNumber ),
13893 rec( 8, 4, nameType ),
13894 rec( 12, 48, ServerName ),
13895 rec( 60, 4, serverListFlags ),
13896 rec( 64, 2, startNumberFlag ),
13898 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13899 # 2222/720C, 114/12
13900 pkt = NCP(0x720C, "Timesync Get Version", 'file')
13903 rec( 8, 4, version ),
13905 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13906 # 2222/7B01, 123/01
13907 pkt = NCP(0x7B01, "Get Cache Information", 'stats')
13909 rec(10, 1, VersionNumber),
13910 rec(11, 1, RevisionNumber),
13913 rec(8, 4, CurrentServerTime, LE),
13914 rec(12, 1, VConsoleVersion ),
13915 rec(13, 1, VConsoleRevision ),
13916 rec(14, 2, Reserved2 ),
13917 rec(16, 104, Counters ),
13918 rec(120, 40, ExtraCacheCntrs ),
13919 rec(160, 40, MemoryCounters ),
13920 rec(200, 48, TrendCounters ),
13921 rec(248, 40, CacheInfo ),
13923 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xff00])
13924 # 2222/7B02, 123/02
13925 pkt = NCP(0x7B02, "Get File Server Information", 'stats')
13928 rec(8, 4, CurrentServerTime ),
13929 rec(12, 1, VConsoleVersion ),
13930 rec(13, 1, VConsoleRevision ),
13931 rec(14, 2, Reserved2 ),
13932 rec(16, 4, NCPStaInUseCnt ),
13933 rec(20, 4, NCPPeakStaInUse ),
13934 rec(24, 4, NumOfNCPReqs ),
13935 rec(28, 4, ServerUtilization ),
13936 rec(32, 96, ServerInfo ),
13937 rec(128, 22, FileServerCounters ),
13939 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13940 # 2222/7B03, 123/03
13941 pkt = NCP(0x7B03, "NetWare File System Information", 'stats')
13943 rec(10, 1, FileSystemID ),
13946 rec(8, 4, CurrentServerTime ),
13947 rec(12, 1, VConsoleVersion ),
13948 rec(13, 1, VConsoleRevision ),
13949 rec(14, 2, Reserved2 ),
13950 rec(16, 52, FileSystemInfo ),
13952 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13953 # 2222/7B04, 123/04
13954 pkt = NCP(0x7B04, "User Information", 'stats')
13956 rec(10, 4, ConnectionNumber ),
13958 pkt.Reply((85, 132), [
13959 rec(8, 4, CurrentServerTime ),
13960 rec(12, 1, VConsoleVersion ),
13961 rec(13, 1, VConsoleRevision ),
13962 rec(14, 2, Reserved2 ),
13963 rec(16, 68, UserInformation ),
13964 rec(84, (1, 48), UserName ),
13966 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13967 # 2222/7B05, 123/05
13968 pkt = NCP(0x7B05, "Packet Burst Information", 'stats')
13971 rec(8, 4, CurrentServerTime ),
13972 rec(12, 1, VConsoleVersion ),
13973 rec(13, 1, VConsoleRevision ),
13974 rec(14, 2, Reserved2 ),
13975 rec(16, 200, PacketBurstInformation ),
13977 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13978 # 2222/7B06, 123/06
13979 pkt = NCP(0x7B06, "IPX SPX Information", 'stats')
13982 rec(8, 4, CurrentServerTime ),
13983 rec(12, 1, VConsoleVersion ),
13984 rec(13, 1, VConsoleRevision ),
13985 rec(14, 2, Reserved2 ),
13986 rec(16, 34, IPXInformation ),
13987 rec(50, 44, SPXInformation ),
13989 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13990 # 2222/7B07, 123/07
13991 pkt = NCP(0x7B07, "Garbage Collection Information", 'stats')
13994 rec(8, 4, CurrentServerTime ),
13995 rec(12, 1, VConsoleVersion ),
13996 rec(13, 1, VConsoleRevision ),
13997 rec(14, 2, Reserved2 ),
13998 rec(16, 4, FailedAllocReqCnt ),
13999 rec(20, 4, NumberOfAllocs ),
14000 rec(24, 4, NoMoreMemAvlCnt ),
14001 rec(28, 4, NumOfGarbageColl ),
14002 rec(32, 4, FoundSomeMem ),
14003 rec(36, 4, NumOfChecks ),
14005 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14006 # 2222/7B08, 123/08
14007 pkt = NCP(0x7B08, "CPU Information", 'stats')
14009 rec(10, 4, CPUNumber ),
14012 rec(8, 4, CurrentServerTime ),
14013 rec(12, 1, VConsoleVersion ),
14014 rec(13, 1, VConsoleRevision ),
14015 rec(14, 2, Reserved2 ),
14016 rec(16, 4, NumberOfCPUs ),
14017 rec(20, 31, CPUInformation ),
14019 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14020 # 2222/7B09, 123/09
14021 pkt = NCP(0x7B09, "Volume Switch Information", 'stats')
14023 rec(10, 4, StartNumber )
14026 rec(8, 4, CurrentServerTime ),
14027 rec(12, 1, VConsoleVersion ),
14028 rec(13, 1, VConsoleRevision ),
14029 rec(14, 2, Reserved2 ),
14030 rec(16, 4, TotalLFSCounters ),
14031 rec(20, 4, CurrentLFSCounters, var="x"),
14032 rec(24, 4, LFSCounters, repeat="x"),
14034 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14035 # 2222/7B0A, 123/10
14036 pkt = NCP(0x7B0A, "Get NLM Loaded List", 'stats')
14038 rec(10, 4, StartNumber )
14041 rec(8, 4, CurrentServerTime ),
14042 rec(12, 1, VConsoleVersion ),
14043 rec(13, 1, VConsoleRevision ),
14044 rec(14, 2, Reserved2 ),
14045 rec(16, 4, NLMcount ),
14046 rec(20, 4, NLMsInList, var="x" ),
14047 rec(24, 4, NLMNumbers, repeat="x" ),
14049 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14050 # 2222/7B0B, 123/11
14051 pkt = NCP(0x7B0B, "NLM Information", 'stats')
14053 rec(10, 4, NLMNumber ),
14055 pkt.Reply((79,841), [
14056 rec(8, 4, CurrentServerTime ),
14057 rec(12, 1, VConsoleVersion ),
14058 rec(13, 1, VConsoleRevision ),
14059 rec(14, 2, Reserved2 ),
14060 rec(16, 60, NLMInformation ),
14061 rec(76, (1,255), FileName ),
14062 rec(-1, (1,255), Name ),
14063 rec(-1, (1,255), Copyright ),
14065 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14066 # 2222/7B0C, 123/12
14067 pkt = NCP(0x7B0C, "Get Directory Cache Information", 'stats')
14070 rec(8, 4, CurrentServerTime ),
14071 rec(12, 1, VConsoleVersion ),
14072 rec(13, 1, VConsoleRevision ),
14073 rec(14, 2, Reserved2 ),
14074 rec(16, 56, DirCacheInfo ),
14076 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14077 # 2222/7B0D, 123/13
14078 pkt = NCP(0x7B0D, "Get Operating System Version Information", 'stats')
14081 rec(8, 4, CurrentServerTime ),
14082 rec(12, 1, VConsoleVersion ),
14083 rec(13, 1, VConsoleRevision ),
14084 rec(14, 2, Reserved2 ),
14085 rec(16, 1, OSMajorVersion ),
14086 rec(17, 1, OSMinorVersion ),
14087 rec(18, 1, OSRevision ),
14088 rec(19, 1, AccountVersion ),
14089 rec(20, 1, VAPVersion ),
14090 rec(21, 1, QueueingVersion ),
14091 rec(22, 1, SecurityRestrictionVersion ),
14092 rec(23, 1, InternetBridgeVersion ),
14093 rec(24, 4, MaxNumOfVol ),
14094 rec(28, 4, MaxNumOfConn ),
14095 rec(32, 4, MaxNumOfUsers ),
14096 rec(36, 4, MaxNumOfNmeSps ),
14097 rec(40, 4, MaxNumOfLANS ),
14098 rec(44, 4, MaxNumOfMedias ),
14099 rec(48, 4, MaxNumOfStacks ),
14100 rec(52, 4, MaxDirDepth ),
14101 rec(56, 4, MaxDataStreams ),
14102 rec(60, 4, MaxNumOfSpoolPr ),
14103 rec(64, 4, ServerSerialNumber ),
14104 rec(68, 2, ServerAppNumber ),
14106 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14107 # 2222/7B0E, 123/14
14108 pkt = NCP(0x7B0E, "Get Active Connection List by Type", 'stats')
14110 rec(10, 4, StartConnNumber ),
14111 rec(14, 1, ConnectionType ),
14114 rec(8, 4, CurrentServerTime ),
14115 rec(12, 1, VConsoleVersion ),
14116 rec(13, 1, VConsoleRevision ),
14117 rec(14, 2, Reserved2 ),
14118 rec(16, 512, ActiveConnBitList ),
14120 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfd01, 0xff00])
14121 # 2222/7B0F, 123/15
14122 pkt = NCP(0x7B0F, "Get NLM Resource Tag List", 'stats')
14124 rec(10, 4, NLMNumber ),
14125 rec(14, 4, NLMStartNumber ),
14128 rec(8, 4, CurrentServerTime ),
14129 rec(12, 1, VConsoleVersion ),
14130 rec(13, 1, VConsoleRevision ),
14131 rec(14, 2, Reserved2 ),
14132 rec(16, 4, TtlNumOfRTags ),
14133 rec(20, 4, CurNumOfRTags ),
14134 rec(24, 13, RTagStructure ),
14136 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14137 # 2222/7B10, 123/16
14138 pkt = NCP(0x7B10, "Enumerate Connection Information from Connection List", 'stats')
14140 rec(10, 1, EnumInfoMask),
14141 rec(11, 3, Reserved3),
14142 rec(14, 4, itemsInList, var="x"),
14143 rec(18, 4, connList, repeat="x"),
14145 pkt.Reply(NO_LENGTH_CHECK, [
14146 rec(8, 4, CurrentServerTime ),
14147 rec(12, 1, VConsoleVersion ),
14148 rec(13, 1, VConsoleRevision ),
14149 rec(14, 2, Reserved2 ),
14150 rec(16, 4, ItemsInPacket ),
14151 srec(netAddr, req_cond="ncp.enum_info_transport==TRUE"),
14152 srec(timeInfo, req_cond="ncp.enum_info_time==TRUE"),
14153 srec(nameInfo, req_cond="ncp.enum_info_name==TRUE"),
14154 srec(lockInfo, req_cond="ncp.enum_info_lock==TRUE"),
14155 srec(printInfo, req_cond="ncp.enum_info_print==TRUE"),
14156 srec(statsInfo, req_cond="ncp.enum_info_stats==TRUE"),
14157 srec(acctngInfo, req_cond="ncp.enum_info_account==TRUE"),
14158 srec(authInfo, req_cond="ncp.enum_info_auth==TRUE"),
14160 pkt.ReqCondSizeVariable()
14161 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14162 # 2222/7B11, 123/17
14163 pkt = NCP(0x7B11, "Enumerate NCP Service Network Addresses", 'stats')
14165 rec(10, 4, SearchNumber ),
14168 rec(8, 4, CurrentServerTime ),
14169 rec(12, 1, VConsoleVersion ),
14170 rec(13, 1, VConsoleRevision ),
14171 rec(14, 2, ServerInfoFlags ),
14172 rec(16, 16, GUID ),
14173 rec(32, 4, NextSearchNum ),
14174 rec(36, 4, ItemsInPacket, var="x"),
14175 rec(40, 20, NCPNetworkAddress, repeat="x" ),
14177 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14178 # 2222/7B14, 123/20
14179 pkt = NCP(0x7B14, "Active LAN Board List", 'stats')
14181 rec(10, 4, StartNumber ),
14184 rec(8, 4, CurrentServerTime ),
14185 rec(12, 1, VConsoleVersion ),
14186 rec(13, 1, VConsoleRevision ),
14187 rec(14, 2, Reserved2 ),
14188 rec(16, 4, MaxNumOfLANS ),
14189 rec(20, 4, ItemsInPacket, var="x"),
14190 rec(24, 4, BoardNumbers, repeat="x"),
14192 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14193 # 2222/7B15, 123/21
14194 pkt = NCP(0x7B15, "LAN Configuration Information", 'stats')
14196 rec(10, 4, BoardNumber ),
14199 rec(8, 4, CurrentServerTime ),
14200 rec(12, 1, VConsoleVersion ),
14201 rec(13, 1, VConsoleRevision ),
14202 rec(14, 2, Reserved2 ),
14203 rec(16,136, LANConfigInfo ),
14205 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14206 # 2222/7B16, 123/22
14207 pkt = NCP(0x7B16, "LAN Common Counters Information", 'stats')
14209 rec(10, 4, BoardNumber ),
14210 rec(14, 4, BlockNumber ),
14213 rec(8, 4, CurrentServerTime ),
14214 rec(12, 1, VConsoleVersion ),
14215 rec(13, 1, VConsoleRevision ),
14216 rec(14, 1, StatMajorVersion ),
14217 rec(15, 1, StatMinorVersion ),
14218 rec(16, 4, TotalCommonCnts ),
14219 rec(20, 4, TotalCntBlocks ),
14220 rec(24, 4, CustomCounters ),
14221 rec(28, 4, NextCntBlock ),
14222 rec(32, 54, CommonLanStruc ),
14224 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14225 # 2222/7B17, 123/23
14226 pkt = NCP(0x7B17, "LAN Custom Counters Information", 'stats')
14228 rec(10, 4, BoardNumber ),
14229 rec(14, 4, StartNumber ),
14232 rec(8, 4, CurrentServerTime ),
14233 rec(12, 1, VConsoleVersion ),
14234 rec(13, 1, VConsoleRevision ),
14235 rec(14, 2, Reserved2 ),
14236 rec(16, 4, NumOfCCinPkt, var="x"),
14237 rec(20, 5, CustomCntsInfo, repeat="x"),
14239 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14240 # 2222/7B18, 123/24
14241 pkt = NCP(0x7B18, "LAN Name Information", 'stats')
14243 rec(10, 4, BoardNumber ),
14246 rec(8, 4, CurrentServerTime ),
14247 rec(12, 1, VConsoleVersion ),
14248 rec(13, 1, VConsoleRevision ),
14249 rec(14, 2, Reserved2 ),
14250 rec(16, 3, BoardNameStruct ),
14252 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14253 # 2222/7B19, 123/25
14254 pkt = NCP(0x7B19, "LSL Information", 'stats')
14257 rec(8, 4, CurrentServerTime ),
14258 rec(12, 1, VConsoleVersion ),
14259 rec(13, 1, VConsoleRevision ),
14260 rec(14, 2, Reserved2 ),
14261 rec(16, 74, LSLInformation ),
14263 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14264 # 2222/7B1A, 123/26
14265 pkt = NCP(0x7B1A, "LSL Logical Board Statistics", 'stats')
14267 rec(10, 4, BoardNumber ),
14270 rec(8, 4, CurrentServerTime ),
14271 rec(12, 1, VConsoleVersion ),
14272 rec(13, 1, VConsoleRevision ),
14273 rec(14, 2, Reserved2 ),
14274 rec(16, 4, LogTtlTxPkts ),
14275 rec(20, 4, LogTtlRxPkts ),
14276 rec(24, 4, UnclaimedPkts ),
14278 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14279 # 2222/7B1B, 123/27
14280 pkt = NCP(0x7B1B, "MLID Board Information", 'stats')
14282 rec(10, 4, BoardNumber ),
14285 rec(8, 4, CurrentServerTime ),
14286 rec(12, 1, VConsoleVersion ),
14287 rec(13, 1, VConsoleRevision ),
14288 rec(14, 1, Reserved ),
14289 rec(15, 1, NumberOfProtocols ),
14290 rec(16, 28, MLIDBoardInfo ),
14292 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14293 # 2222/7B1E, 123/30
14294 pkt = NCP(0x7B1E, "Get Media Manager Object Information", 'stats')
14296 rec(10, 4, ObjectNumber ),
14299 rec(8, 4, CurrentServerTime ),
14300 rec(12, 1, VConsoleVersion ),
14301 rec(13, 1, VConsoleRevision ),
14302 rec(14, 2, Reserved2 ),
14303 rec(16, 196, GenericInfoDef ),
14305 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14306 # 2222/7B1F, 123/31
14307 pkt = NCP(0x7B1F, "Get Media Manager Objects List", 'stats')
14309 rec(10, 4, StartNumber ),
14310 rec(14, 1, MediaObjectType ),
14313 rec(8, 4, CurrentServerTime ),
14314 rec(12, 1, VConsoleVersion ),
14315 rec(13, 1, VConsoleRevision ),
14316 rec(14, 2, Reserved2 ),
14317 rec(16, 4, nextStartingNumber ),
14318 rec(20, 4, ObjectCount, var="x"),
14319 rec(24, 4, ObjectID, repeat="x"),
14321 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14322 # 2222/7B20, 123/32
14323 pkt = NCP(0x7B20, "Get Media Manager Object Childrens List", 'stats')
14325 rec(10, 4, StartNumber ),
14326 rec(14, 1, MediaObjectType ),
14327 rec(15, 3, Reserved3 ),
14328 rec(18, 4, ParentObjectNumber ),
14331 rec(8, 4, CurrentServerTime ),
14332 rec(12, 1, VConsoleVersion ),
14333 rec(13, 1, VConsoleRevision ),
14334 rec(14, 2, Reserved2 ),
14335 rec(16, 4, nextStartingNumber ),
14336 rec(20, 4, ObjectCount, var="x" ),
14337 rec(24, 4, ObjectID, repeat="x" ),
14339 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14340 # 2222/7B21, 123/33
14341 pkt = NCP(0x7B21, "Get Volume Segment List", 'stats')
14343 rec(10, 4, VolumeNumberLong ),
14346 rec(8, 4, CurrentServerTime ),
14347 rec(12, 1, VConsoleVersion ),
14348 rec(13, 1, VConsoleRevision ),
14349 rec(14, 2, Reserved2 ),
14350 rec(16, 4, NumOfSegments, var="x" ),
14351 rec(20, 12, Segments, repeat="x" ),
14353 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14354 # 2222/7B22, 123/34
14355 pkt = NCP(0x7B22, "Get Volume Information by Level", 'stats')
14357 rec(10, 4, VolumeNumberLong ),
14358 rec(14, 1, InfoLevelNumber ),
14360 pkt.Reply(NO_LENGTH_CHECK, [
14361 rec(8, 4, CurrentServerTime ),
14362 rec(12, 1, VConsoleVersion ),
14363 rec(13, 1, VConsoleRevision ),
14364 rec(14, 2, Reserved2 ),
14365 rec(16, 1, InfoLevelNumber ),
14366 rec(17, 3, Reserved3 ),
14367 srec(VolInfoStructure, req_cond="ncp.info_level_num==0x01"),
14368 srec(VolInfo2Struct, req_cond="ncp.info_level_num==0x02"),
14370 pkt.ReqCondSizeVariable()
14371 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14372 # 2222/7B28, 123/40
14373 pkt = NCP(0x7B28, "Active Protocol Stacks", 'stats')
14375 rec(10, 4, StartNumber ),
14378 rec(8, 4, CurrentServerTime ),
14379 rec(12, 1, VConsoleVersion ),
14380 rec(13, 1, VConsoleRevision ),
14381 rec(14, 2, Reserved2 ),
14382 rec(16, 4, MaxNumOfLANS ),
14383 rec(20, 4, StackCount, var="x" ),
14384 rec(24, 4, nextStartingNumber ),
14385 rec(28, 20, StackInfo, repeat="x" ),
14387 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14388 # 2222/7B29, 123/41
14389 pkt = NCP(0x7B29, "Get Protocol Stack Configuration Information", 'stats')
14391 rec(10, 4, StackNumber ),
14393 pkt.Reply((37,164), [
14394 rec(8, 4, CurrentServerTime ),
14395 rec(12, 1, VConsoleVersion ),
14396 rec(13, 1, VConsoleRevision ),
14397 rec(14, 2, Reserved2 ),
14398 rec(16, 1, ConfigMajorVN ),
14399 rec(17, 1, ConfigMinorVN ),
14400 rec(18, 1, StackMajorVN ),
14401 rec(19, 1, StackMinorVN ),
14402 rec(20, 16, ShortStkName ),
14403 rec(36, (1,128), StackFullNameStr ),
14405 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14406 # 2222/7B2A, 123/42
14407 pkt = NCP(0x7B2A, "Get Protocol Stack Statistics Information", 'stats')
14409 rec(10, 4, StackNumber ),
14412 rec(8, 4, CurrentServerTime ),
14413 rec(12, 1, VConsoleVersion ),
14414 rec(13, 1, VConsoleRevision ),
14415 rec(14, 2, Reserved2 ),
14416 rec(16, 1, StatMajorVersion ),
14417 rec(17, 1, StatMinorVersion ),
14418 rec(18, 2, ComCnts ),
14419 rec(20, 4, CounterMask ),
14420 rec(24, 4, TotalTxPkts ),
14421 rec(28, 4, TotalRxPkts ),
14422 rec(32, 4, IgnoredRxPkts ),
14423 rec(36, 2, CustomCnts ),
14425 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14426 # 2222/7B2B, 123/43
14427 pkt = NCP(0x7B2B, "Get Protocol Stack Custom Information", 'stats')
14429 rec(10, 4, StackNumber ),
14430 rec(14, 4, StartNumber ),
14433 rec(8, 4, CurrentServerTime ),
14434 rec(12, 1, VConsoleVersion ),
14435 rec(13, 1, VConsoleRevision ),
14436 rec(14, 2, Reserved2 ),
14437 rec(16, 4, CustomCount, var="x" ),
14438 rec(20, 5, CustomCntsInfo, repeat="x" ),
14440 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14441 # 2222/7B2C, 123/44
14442 pkt = NCP(0x7B2C, "Get Protocol Stack Numbers by Media Number", 'stats')
14444 rec(10, 4, MediaNumber ),
14447 rec(8, 4, CurrentServerTime ),
14448 rec(12, 1, VConsoleVersion ),
14449 rec(13, 1, VConsoleRevision ),
14450 rec(14, 2, Reserved2 ),
14451 rec(16, 4, StackCount, var="x" ),
14452 rec(20, 4, StackNumber, repeat="x" ),
14454 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14455 # 2222/7B2D, 123/45
14456 pkt = NCP(0x7B2D, "Get Protocol Stack Numbers by LAN Board Number", 'stats')
14458 rec(10, 4, BoardNumber ),
14461 rec(8, 4, CurrentServerTime ),
14462 rec(12, 1, VConsoleVersion ),
14463 rec(13, 1, VConsoleRevision ),
14464 rec(14, 2, Reserved2 ),
14465 rec(16, 4, StackCount, var="x" ),
14466 rec(20, 4, StackNumber, repeat="x" ),
14468 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14469 # 2222/7B2E, 123/46
14470 pkt = NCP(0x7B2E, "Get Media Name by Media Number", 'stats')
14472 rec(10, 4, MediaNumber ),
14474 pkt.Reply((17,144), [
14475 rec(8, 4, CurrentServerTime ),
14476 rec(12, 1, VConsoleVersion ),
14477 rec(13, 1, VConsoleRevision ),
14478 rec(14, 2, Reserved2 ),
14479 rec(16, (1,128), MediaName ),
14481 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14482 # 2222/7B2F, 123/47
14483 pkt = NCP(0x7B2F, "Get Loaded Media Number", 'stats')
14486 rec(8, 4, CurrentServerTime ),
14487 rec(12, 1, VConsoleVersion ),
14488 rec(13, 1, VConsoleRevision ),
14489 rec(14, 2, Reserved2 ),
14490 rec(16, 4, MaxNumOfMedias ),
14491 rec(20, 4, MediaListCount, var="x" ),
14492 rec(24, 4, MediaList, repeat="x" ),
14494 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14495 # 2222/7B32, 123/50
14496 pkt = NCP(0x7B32, "Get General Router and SAP Information", 'stats')
14499 rec(8, 4, CurrentServerTime ),
14500 rec(12, 1, VConsoleVersion ),
14501 rec(13, 1, VConsoleRevision ),
14502 rec(14, 2, Reserved2 ),
14503 rec(16, 2, RIPSocketNumber ),
14504 rec(18, 2, Reserved2 ),
14505 rec(20, 1, RouterDownFlag ),
14506 rec(21, 3, Reserved3 ),
14507 rec(24, 1, TrackOnFlag ),
14508 rec(25, 3, Reserved3 ),
14509 rec(28, 1, ExtRouterActiveFlag ),
14510 rec(29, 3, Reserved3 ),
14511 rec(32, 2, SAPSocketNumber ),
14512 rec(34, 2, Reserved2 ),
14513 rec(36, 1, RpyNearestSrvFlag ),
14515 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14516 # 2222/7B33, 123/51
14517 pkt = NCP(0x7B33, "Get Network Router Information", 'stats')
14519 rec(10, 4, NetworkNumber ),
14522 rec(8, 4, CurrentServerTime ),
14523 rec(12, 1, VConsoleVersion ),
14524 rec(13, 1, VConsoleRevision ),
14525 rec(14, 2, Reserved2 ),
14526 rec(16, 10, KnownRoutes ),
14528 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14529 # 2222/7B34, 123/52
14530 pkt = NCP(0x7B34, "Get Network Routers Information", 'stats')
14532 rec(10, 4, NetworkNumber),
14533 rec(14, 4, StartNumber ),
14536 rec(8, 4, CurrentServerTime ),
14537 rec(12, 1, VConsoleVersion ),
14538 rec(13, 1, VConsoleRevision ),
14539 rec(14, 2, Reserved2 ),
14540 rec(16, 4, NumOfEntries, var="x" ),
14541 rec(20, 14, RoutersInfo, repeat="x" ),
14543 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14544 # 2222/7B35, 123/53
14545 pkt = NCP(0x7B35, "Get Known Networks Information", 'stats')
14547 rec(10, 4, StartNumber ),
14550 rec(8, 4, CurrentServerTime ),
14551 rec(12, 1, VConsoleVersion ),
14552 rec(13, 1, VConsoleRevision ),
14553 rec(14, 2, Reserved2 ),
14554 rec(16, 4, NumOfEntries, var="x" ),
14555 rec(20, 10, KnownRoutes, repeat="x" ),
14557 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14558 # 2222/7B36, 123/54
14559 pkt = NCP(0x7B36, "Get Server Information", 'stats')
14560 pkt.Request((15,64), [
14561 rec(10, 2, ServerType ),
14562 rec(12, 2, Reserved2 ),
14563 rec(14, (1,50), ServerNameLen ),
14564 ], info_str=(ServerNameLen, "Get Server Information: %s", ", %s"))
14566 rec(8, 4, CurrentServerTime ),
14567 rec(12, 1, VConsoleVersion ),
14568 rec(13, 1, VConsoleRevision ),
14569 rec(14, 2, Reserved2 ),
14570 rec(16, 12, ServerAddress ),
14571 rec(28, 2, HopsToNet ),
14573 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14574 # 2222/7B37, 123/55
14575 pkt = NCP(0x7B37, "Get Server Sources Information", 'stats')
14576 pkt.Request((19,68), [
14577 rec(10, 4, StartNumber ),
14578 rec(14, 2, ServerType ),
14579 rec(16, 2, Reserved2 ),
14580 rec(18, (1,50), ServerNameLen ),
14581 ], info_str=(ServerNameLen, "Get Server Sources Info: %s", ", %s"))
14583 rec(8, 4, CurrentServerTime ),
14584 rec(12, 1, VConsoleVersion ),
14585 rec(13, 1, VConsoleRevision ),
14586 rec(14, 2, Reserved2 ),
14587 rec(16, 4, NumOfEntries, var="x" ),
14588 rec(20, 12, ServersSrcInfo, repeat="x" ),
14590 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14591 # 2222/7B38, 123/56
14592 pkt = NCP(0x7B38, "Get Known Servers Information", 'stats')
14594 rec(10, 4, StartNumber ),
14595 rec(14, 2, ServerType ),
14598 rec(8, 4, CurrentServerTime ),
14599 rec(12, 1, VConsoleVersion ),
14600 rec(13, 1, VConsoleRevision ),
14601 rec(14, 2, Reserved2 ),
14602 rec(16, 4, NumOfEntries, var="x" ),
14603 rec(20, 15, KnownServStruc, repeat="x" ),
14605 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14606 # 2222/7B3C, 123/60
14607 pkt = NCP(0x7B3C, "Get Server Set Commands Information", 'stats')
14609 rec(10, 4, StartNumber ),
14611 pkt.Reply(NO_LENGTH_CHECK, [
14612 rec(8, 4, CurrentServerTime ),
14613 rec(12, 1, VConsoleVersion ),
14614 rec(13, 1, VConsoleRevision ),
14615 rec(14, 2, Reserved2 ),
14616 rec(16, 4, TtlNumOfSetCmds ),
14617 rec(20, 4, nextStartingNumber ),
14618 rec(24, 1, SetCmdType ),
14619 rec(25, 3, Reserved3 ),
14620 rec(28, 1, SetCmdCategory ),
14621 rec(29, 3, Reserved3 ),
14622 rec(32, 1, SetCmdFlags ),
14623 rec(33, 3, Reserved3 ),
14624 rec(36, 100, SetCmdName ),
14625 rec(136, 4, SetCmdValueNum ),
14627 pkt.ReqCondSizeVariable()
14628 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14629 # 2222/7B3D, 123/61
14630 pkt = NCP(0x7B3D, "Get Server Set Categories", 'stats')
14632 rec(10, 4, StartNumber ),
14634 pkt.Reply(NO_LENGTH_CHECK, [
14635 rec(8, 4, CurrentServerTime ),
14636 rec(12, 1, VConsoleVersion ),
14637 rec(13, 1, VConsoleRevision ),
14638 rec(14, 2, Reserved2 ),
14639 rec(16, 4, NumberOfSetCategories ),
14640 rec(20, 4, nextStartingNumber ),
14641 rec(24, PROTO_LENGTH_UNKNOWN, CategoryName ),
14643 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14644 # 2222/7B3E, 123/62
14645 pkt = NCP(0x7B3E, "Get Server Set Commands Information By Name", 'stats')
14646 pkt.Request(NO_LENGTH_CHECK, [
14647 rec(10, PROTO_LENGTH_UNKNOWN, SetParmName ),
14648 ], info_str=(SetParmName, "Get Server Set Command Info for: %s", ", %s"))
14649 pkt.Reply(NO_LENGTH_CHECK, [
14650 rec(8, 4, CurrentServerTime ),
14651 rec(12, 1, VConsoleVersion ),
14652 rec(13, 1, VConsoleRevision ),
14653 rec(14, 2, Reserved2 ),
14654 rec(16, 4, TtlNumOfSetCmds ),
14655 rec(20, 4, nextStartingNumber ),
14656 rec(24, 1, SetCmdType ),
14657 rec(25, 3, Reserved3 ),
14658 rec(28, 1, SetCmdCategory ),
14659 rec(29, 3, Reserved3 ),
14660 rec(32, 1, SetCmdFlags ),
14661 rec(33, 3, Reserved3 ),
14662 rec(36, PROTO_LENGTH_UNKNOWN, SetCmdName ),
14663 #rec(136, 4, SetCmdValueNum ),
14665 pkt.ReqCondSizeVariable()
14666 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14667 # 2222/7B46, 123/70
14668 pkt = NCP(0x7B46, "Get Current Compressing File", 'stats')
14670 rec(10, 4, VolumeNumberLong ),
14673 rec(8, 4, ParentID ),
14674 rec(12, 4, DirectoryEntryNumber ),
14675 rec(16, 4, compressionStage ),
14676 rec(20, 4, ttlIntermediateBlks ),
14677 rec(24, 4, ttlCompBlks ),
14678 rec(28, 4, curIntermediateBlks ),
14679 rec(32, 4, curCompBlks ),
14680 rec(36, 4, curInitialBlks ),
14681 rec(40, 4, fileFlags ),
14682 rec(44, 4, projectedCompSize ),
14683 rec(48, 4, originalSize ),
14684 rec(52, 4, compressVolume ),
14686 pkt.CompletionCodes([0x0000, 0x7e00, 0x7901, 0xfb06, 0xff00])
14687 # 2222/7B47, 123/71
14688 pkt = NCP(0x7B47, "Get Current DeCompressing File Info List", 'stats')
14690 rec(10, 4, VolumeNumberLong ),
14693 rec(8, 4, FileListCount ),
14694 rec(12, 16, FileInfoStruct ),
14696 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
14697 # 2222/7B48, 123/72
14698 pkt = NCP(0x7B48, "Get Compression and Decompression Time and Counts", 'stats')
14700 rec(10, 4, VolumeNumberLong ),
14703 rec(8, 56, CompDeCompStat ),
14705 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
14706 # 2222/8301, 131/01
14707 pkt = NCP(0x8301, "RPC Load an NLM", 'fileserver')
14708 pkt.Request(NO_LENGTH_CHECK, [
14709 rec(10, 4, NLMLoadOptions ),
14710 rec(14, 16, Reserved16 ),
14711 rec(30, PROTO_LENGTH_UNKNOWN, PathAndName ),
14712 ], info_str=(PathAndName, "RPC Load NLM: %s", ", %s"))
14714 rec(8, 4, RPCccode ),
14716 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14717 # 2222/8302, 131/02
14718 pkt = NCP(0x8302, "RPC Unload an NLM", 'fileserver')
14719 pkt.Request(NO_LENGTH_CHECK, [
14720 rec(10, 20, Reserved20 ),
14721 rec(30, PROTO_LENGTH_UNKNOWN, NLMName ),
14722 ], info_str=(NLMName, "RPC Unload NLM: %s", ", %s"))
14724 rec(8, 4, RPCccode ),
14726 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14727 # 2222/8303, 131/03
14728 pkt = NCP(0x8303, "RPC Mount Volume", 'fileserver')
14729 pkt.Request(NO_LENGTH_CHECK, [
14730 rec(10, 20, Reserved20 ),
14731 rec(30, PROTO_LENGTH_UNKNOWN, VolumeNameStringz ),
14732 ], info_str=(VolumeNameStringz, "RPC Mount Volume: %s", ", %s"))
14734 rec(8, 4, RPCccode),
14735 rec(12, 16, Reserved16 ),
14736 rec(28, 4, VolumeNumberLong ),
14738 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14739 # 2222/8304, 131/04
14740 pkt = NCP(0x8304, "RPC Dismount Volume", 'fileserver')
14741 pkt.Request(NO_LENGTH_CHECK, [
14742 rec(10, 20, Reserved20 ),
14743 rec(30, PROTO_LENGTH_UNKNOWN, VolumeNameStringz ),
14744 ], info_str=(VolumeNameStringz, "RPC Dismount Volume: %s", ", %s"))
14746 rec(8, 4, RPCccode ),
14748 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14749 # 2222/8305, 131/05
14750 pkt = NCP(0x8305, "RPC Add Name Space To Volume", 'fileserver')
14751 pkt.Request(NO_LENGTH_CHECK, [
14752 rec(10, 20, Reserved20 ),
14753 rec(30, PROTO_LENGTH_UNKNOWN, AddNameSpaceAndVol ),
14754 ], info_str=(AddNameSpaceAndVol, "RPC Add Name Space to Volume: %s", ", %s"))
14756 rec(8, 4, RPCccode ),
14758 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14759 # 2222/8306, 131/06
14760 pkt = NCP(0x8306, "RPC Set Command Value", 'fileserver')
14761 pkt.Request(NO_LENGTH_CHECK, [
14762 rec(10, 1, SetCmdType ),
14763 rec(11, 3, Reserved3 ),
14764 rec(14, 4, SetCmdValueNum ),
14765 rec(18, 12, Reserved12 ),
14766 rec(30, PROTO_LENGTH_UNKNOWN, SetCmdName ),
14768 # XXX - optional string, if SetCmdType is 0
14770 ], info_str=(SetCmdName, "RPC Set Command Value: %s", ", %s"))
14772 rec(8, 4, RPCccode ),
14774 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14775 # 2222/8307, 131/07
14776 pkt = NCP(0x8307, "RPC Execute NCF File", 'fileserver')
14777 pkt.Request(NO_LENGTH_CHECK, [
14778 rec(10, 20, Reserved20 ),
14779 rec(30, PROTO_LENGTH_UNKNOWN, PathAndName ),
14780 ], info_str=(PathAndName, "RPC Execute NCF File: %s", ", %s"))
14782 rec(8, 4, RPCccode ),
14784 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14785 if __name__ == '__main__':
14787 # filename = "ncp.pstats"
14788 # profile.run("main()", filename)
14792 # p = pstats.Stats(filename)
14794 # print "Stats sorted by cumulative time"
14795 # p.strip_dirs().sort_stats('cumulative').print_stats()
14797 # print "Function callees"
14798 # p.print_callees()