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.62 2003/08/25 22:06:38 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 AbortQueueFlag = val_string8("abort_q_flag", "Abort Queue Flag", [
1179 [ 0x00, "Place at End of Queue" ],
1180 [ 0x01, "Do Not Place Spool File, Examine Flags" ],
1182 AcceptedMaxSize = uint16("accepted_max_size", "Accepted Max Size")
1183 AccessControl = val_string8("access_control", "Access Control", [
1184 [ 0x00, "Open for read by this client" ],
1185 [ 0x01, "Open for write by this client" ],
1186 [ 0x02, "Deny read requests from other stations" ],
1187 [ 0x03, "Deny write requests from other stations" ],
1188 [ 0x04, "File detached" ],
1189 [ 0x05, "TTS holding detach" ],
1190 [ 0x06, "TTS holding open" ],
1192 AccessDate = uint16("access_date", "Access Date")
1194 AccessMode = bitfield8("access_mode", "Access Mode", [
1195 bf_boolean8(0x01, "acc_mode_read", "Read Access"),
1196 bf_boolean8(0x02, "acc_mode_write", "Write Access"),
1197 bf_boolean8(0x04, "acc_mode_deny_read", "Deny Read Access"),
1198 bf_boolean8(0x08, "acc_mode_deny_write", "Deny Write Access"),
1199 bf_boolean8(0x10, "acc_mode_comp", "Compatibility Mode"),
1201 AccessPrivileges = bitfield8("access_privileges", "Access Privileges", [
1202 bf_boolean8(0x01, "acc_priv_read", "Read Privileges (files only)"),
1203 bf_boolean8(0x02, "acc_priv_write", "Write Privileges (files only)"),
1204 bf_boolean8(0x04, "acc_priv_open", "Open Privileges (files only)"),
1205 bf_boolean8(0x08, "acc_priv_create", "Create Privileges (files only)"),
1206 bf_boolean8(0x10, "acc_priv_delete", "Delete Privileges (files only)"),
1207 bf_boolean8(0x20, "acc_priv_parent", "Parental Privileges (directories only for creating, deleting, and renaming)"),
1208 bf_boolean8(0x40, "acc_priv_search", "Search Privileges (directories only)"),
1209 bf_boolean8(0x80, "acc_priv_modify", "Modify File Status Flags Privileges (files and directories)"),
1211 AccessRightsMask = bitfield8("access_rights_mask", "Access Rights", [
1212 bf_boolean8(0x0001, "acc_rights_read", "Read Rights"),
1213 bf_boolean8(0x0002, "acc_rights_write", "Write Rights"),
1214 bf_boolean8(0x0004, "acc_rights_open", "Open Rights"),
1215 bf_boolean8(0x0008, "acc_rights_create", "Create Rights"),
1216 bf_boolean8(0x0010, "acc_rights_delete", "Delete Rights"),
1217 bf_boolean8(0x0020, "acc_rights_parent", "Parental Rights"),
1218 bf_boolean8(0x0040, "acc_rights_search", "Search Rights"),
1219 bf_boolean8(0x0080, "acc_rights_modify", "Modify Rights"),
1221 AccessRightsMaskWord = bitfield16("access_rights_mask_word", "Access Rights", [
1222 bf_boolean16(0x0001, "acc_rights1_read", "Read Rights"),
1223 bf_boolean16(0x0002, "acc_rights1_write", "Write Rights"),
1224 bf_boolean16(0x0004, "acc_rights1_open", "Open Rights"),
1225 bf_boolean16(0x0008, "acc_rights1_create", "Create Rights"),
1226 bf_boolean16(0x0010, "acc_rights1_delete", "Delete Rights"),
1227 bf_boolean16(0x0020, "acc_rights1_parent", "Parental Rights"),
1228 bf_boolean16(0x0040, "acc_rights1_search", "Search Rights"),
1229 bf_boolean16(0x0080, "acc_rights1_modify", "Modify Rights"),
1230 bf_boolean16(0x0100, "acc_rights1_supervisor", "Supervisor Access Rights"),
1232 AccountBalance = uint32("account_balance", "Account Balance")
1233 AccountVersion = uint8("acct_version", "Acct Version")
1234 ActionFlag = bitfield8("action_flag", "Action Flag", [
1235 bf_boolean8(0x01, "act_flag_open", "Open"),
1236 bf_boolean8(0x02, "act_flag_replace", "Replace"),
1237 bf_boolean8(0x10, "act_flag_create", "Create"),
1239 ActiveConnBitList = fw_string("active_conn_bit_list", "Active Connection List", 512)
1240 ActiveIndexedFiles = uint16("active_indexed_files", "Active Indexed Files")
1241 ActualMaxBinderyObjects = uint16("actual_max_bindery_objects", "Actual Max Bindery Objects")
1242 ActualMaxIndexedFiles = uint16("actual_max_indexed_files", "Actual Max Indexed Files")
1243 ActualMaxOpenFiles = uint16("actual_max_open_files", "Actual Max Open Files")
1244 ActualMaxSimultaneousTransactions = uint16("actual_max_sim_trans", "Actual Max Simultaneous Transactions")
1245 ActualMaxUsedDirectoryEntries = uint16("actual_max_used_directory_entries", "Actual Max Used Directory Entries")
1246 ActualMaxUsedRoutingBuffers = uint16("actual_max_used_routing_buffers", "Actual Max Used Routing Buffers")
1247 ActualResponseCount = uint16("actual_response_count", "Actual Response Count")
1248 AddNameSpaceAndVol = stringz("add_nm_spc_and_vol", "Add Name Space and Volume")
1249 AFPEntryID = uint32("afp_entry_id", "AFP Entry ID", BE)
1250 AFPEntryID.Display("BASE_HEX")
1251 AllocAvailByte = uint32("alloc_avail_byte", "Bytes Available for Allocation")
1252 AllocateMode = val_string16("allocate_mode", "Allocate Mode", [
1253 [ 0x0000, "Permanent Directory Handle" ],
1254 [ 0x0001, "Temporary Directory Handle" ],
1255 [ 0x0002, "Special Temporary Directory Handle" ],
1257 AllocationBlockSize = uint32("allocation_block_size", "Allocation Block Size")
1258 AllocFreeCount = uint32("alloc_free_count", "Reclaimable Free Bytes")
1259 ApplicationNumber = uint16("application_number", "Application Number")
1260 ArchivedTime = uint16("archived_time", "Archived Time")
1261 ArchivedTime.NWTime()
1262 ArchivedDate = uint16("archived_date", "Archived Date")
1263 ArchivedDate.NWDate()
1264 ArchiverID = uint32("archiver_id", "Archiver ID", BE)
1265 ArchiverID.Display("BASE_HEX")
1266 AssociatedNameSpace = uint8("associated_name_space", "Associated Name Space")
1267 AttachDuringProcessing = uint16("attach_during_processing", "Attach During Processing")
1268 AttachedIndexedFiles = uint8("attached_indexed_files", "Attached Indexed Files")
1269 AttachWhileProcessingAttach = uint16("attach_while_processing_attach", "Attach While Processing Attach")
1270 Attributes = uint32("attributes", "Attributes")
1271 AttributesDef = bitfield8("attr_def", "Attributes", [
1272 bf_boolean8(0x01, "att_def_ro", "Read Only"),
1273 bf_boolean8(0x02, "att_def_hidden", "Hidden"),
1274 bf_boolean8(0x04, "att_def_system", "System"),
1275 bf_boolean8(0x08, "att_def_execute", "Execute"),
1276 bf_boolean8(0x10, "att_def_sub_only", "Subdirectory"),
1277 bf_boolean8(0x20, "att_def_archive", "Archive"),
1278 bf_boolean8(0x80, "att_def_shareable", "Shareable"),
1280 AttributesDef16 = bitfield16("attr_def_16", "Attributes", [
1281 bf_boolean16(0x0001, "att_def16_ro", "Read Only"),
1282 bf_boolean16(0x0002, "att_def16_hidden", "Hidden"),
1283 bf_boolean16(0x0004, "att_def16_system", "System"),
1284 bf_boolean16(0x0008, "att_def16_execute", "Execute"),
1285 bf_boolean16(0x0010, "att_def16_sub_only", "Subdirectory"),
1286 bf_boolean16(0x0020, "att_def16_archive", "Archive"),
1287 bf_boolean16(0x0080, "att_def16_shareable", "Shareable"),
1288 bf_boolean16(0x1000, "att_def16_transaction", "Transactional"),
1289 bf_boolean16(0x4000, "att_def16_read_audit", "Read Audit"),
1290 bf_boolean16(0x8000, "att_def16_write_audit", "Write Audit"),
1292 AttributesDef32 = bitfield32("attr_def_32", "Attributes", [
1293 bf_boolean32(0x00000001, "att_def32_ro", "Read Only"),
1294 bf_boolean32(0x00000002, "att_def32_hidden", "Hidden"),
1295 bf_boolean32(0x00000004, "att_def32_system", "System"),
1296 bf_boolean32(0x00000008, "att_def32_execute", "Execute"),
1297 bf_boolean32(0x00000010, "att_def32_sub_only", "Subdirectory"),
1298 bf_boolean32(0x00000020, "att_def32_archive", "Archive"),
1299 bf_boolean32(0x00000080, "att_def32_shareable", "Shareable"),
1300 bf_boolean32(0x00001000, "att_def32_transaction", "Transactional"),
1301 bf_boolean32(0x00004000, "att_def32_read_audit", "Read Audit"),
1302 bf_boolean32(0x00008000, "att_def32_write_audit", "Write Audit"),
1303 bf_boolean32(0x00010000, "att_def_purge", "Purge"),
1304 bf_boolean32(0x00020000, "att_def_reninhibit", "Rename Inhibit"),
1305 bf_boolean32(0x00040000, "att_def_delinhibit", "Delete Inhibit"),
1306 bf_boolean32(0x00080000, "att_def_cpyinhibit", "Copy Inhibit"),
1307 bf_boolean32(0x02000000, "att_def_im_comp", "Immediate Compress"),
1308 bf_boolean32(0x04000000, "att_def_comp", "Compressed"),
1310 AttributeValidFlag = uint32("attribute_valid_flag", "Attribute Valid Flag")
1311 AuditFileVersionDate = uint16("audit_file_ver_date", "Audit File Version Date")
1312 AuditFileVersionDate.NWDate()
1313 AuditFlag = val_string8("audit_flag", "Audit Flag", [
1314 [ 0x00, "Do NOT audit object" ],
1315 [ 0x01, "Audit object" ],
1317 AuditHandle = uint32("audit_handle", "Audit File Handle")
1318 AuditHandle.Display("BASE_HEX")
1319 AuditID = uint32("audit_id", "Audit ID", BE)
1320 AuditID.Display("BASE_HEX")
1321 AuditIDType = val_string16("audit_id_type", "Audit ID Type", [
1322 [ 0x0000, "Volume" ],
1323 [ 0x0001, "Container" ],
1325 AuditVersionDate = uint16("audit_ver_date", "Auditing Version Date")
1326 AuditVersionDate.NWDate()
1327 AvailableBlocks = uint32("available_blocks", "Available Blocks")
1328 AvailableClusters = uint16("available_clusters", "Available Clusters")
1329 AvailableDirectorySlots = uint16("available_directory_slots", "Available Directory Slots")
1330 AvailableDirEntries = uint32("available_dir_entries", "Available Directory Entries")
1331 AvailableIndexedFiles = uint16("available_indexed_files", "Available Indexed Files")
1333 BackgroundAgedWrites = uint32("background_aged_writes", "Background Aged Writes")
1334 BackgroundDirtyWrites = uint32("background_dirty_writes", "Background Dirty Writes")
1335 BadLogicalConnectionCount = uint16("bad_logical_connection_count", "Bad Logical Connection Count")
1336 BannerName = fw_string("banner_name", "Banner Name", 14)
1337 BaseDirectoryID = uint32("base_directory_id", "Base Directory ID", BE)
1338 BaseDirectoryID.Display("BASE_HEX")
1339 binderyContext = nstring8("bindery_context", "Bindery Context")
1340 BitMap = bytes("bit_map", "Bit Map", 512)
1341 BlockNumber = uint32("block_number", "Block Number")
1342 BlockSize = uint16("block_size", "Block Size")
1343 BlockSizeInSectors = uint32("block_size_in_sectors", "Block Size in Sectors")
1344 BoardInstalled = uint8("board_installed", "Board Installed")
1345 BoardNumber = uint32("board_number", "Board Number")
1346 BoardNumbers = uint32("board_numbers", "Board Numbers")
1347 BufferSize = uint16("buffer_size", "Buffer Size")
1348 BusString = stringz("bus_string", "Bus String")
1349 BusType = val_string8("bus_type", "Bus Type", [
1351 [0x01, "Micro Channel" ],
1358 BytesActuallyTransferred = uint32("bytes_actually_transferred", "Bytes Actually Transferred")
1359 BytesRead = fw_string("bytes_read", "Bytes Read", 6)
1360 BytesToCopy = uint32("bytes_to_copy", "Bytes to Copy")
1361 BytesWritten = fw_string("bytes_written", "Bytes Written", 6)
1363 CacheAllocations = uint32("cache_allocations", "Cache Allocations")
1364 CacheBlockScrapped = uint16("cache_block_scrapped", "Cache Block Scrapped")
1365 CacheBufferCount = uint16("cache_buffer_count", "Cache Buffer Count")
1366 CacheBufferSize = uint16("cache_buffer_size", "Cache Buffer Size")
1367 CacheFullWriteRequests = uint32("cache_full_write_requests", "Cache Full Write Requests")
1368 CacheGetRequests = uint32("cache_get_requests", "Cache Get Requests")
1369 CacheHitOnUnavailableBlock = uint16("cache_hit_on_unavailable_block", "Cache Hit On Unavailable Block")
1370 CacheHits = uint32("cache_hits", "Cache Hits")
1371 CacheMisses = uint32("cache_misses", "Cache Misses")
1372 CachePartialWriteRequests = uint32("cache_partial_write_requests", "Cache Partial Write Requests")
1373 CacheReadRequests = uint32("cache_read_requests", "Cache Read Requests")
1374 CacheWriteRequests = uint32("cache_write_requests", "Cache Write Requests")
1375 CategoryName = stringz("category_name", "Category Name")
1376 CCFileHandle = uint32("cc_file_handle", "File Handle")
1377 CCFileHandle.Display("BASE_HEX")
1378 CCFunction = val_string8("cc_function", "OP-Lock Flag", [
1379 [ 0x01, "Clear OP-Lock" ],
1380 [ 0x02, "Acknowledge Callback" ],
1381 [ 0x03, "Decline Callback" ],
1382 [ 0x04, "Level 2" ],
1384 ChangeBits = bitfield16("change_bits", "Change Bits", [
1385 bf_boolean16(0x0001, "change_bits_modify", "Modify Name"),
1386 bf_boolean16(0x0002, "change_bits_fatt", "File Attributes"),
1387 bf_boolean16(0x0004, "change_bits_cdate", "Creation Date"),
1388 bf_boolean16(0x0008, "change_bits_ctime", "Creation Time"),
1389 bf_boolean16(0x0010, "change_bits_owner", "Owner ID"),
1390 bf_boolean16(0x0020, "change_bits_adate", "Archive Date"),
1391 bf_boolean16(0x0040, "change_bits_atime", "Archive Time"),
1392 bf_boolean16(0x0080, "change_bits_aid", "Archiver ID"),
1393 bf_boolean16(0x0100, "change_bits_udate", "Update Date"),
1394 bf_boolean16(0x0200, "change_bits_utime", "Update Time"),
1395 bf_boolean16(0x0400, "change_bits_uid", "Update ID"),
1396 bf_boolean16(0x0800, "change_bits_acc_date", "Access Date"),
1397 bf_boolean16(0x1000, "change_bits_max_acc_mask", "Maximum Access Mask"),
1398 bf_boolean16(0x2000, "change_bits_max_space", "Maximum Space"),
1400 ChannelState = val_string8("channel_state", "Channel State", [
1401 [ 0x00, "Channel is running" ],
1402 [ 0x01, "Channel is stopping" ],
1403 [ 0x02, "Channel is stopped" ],
1404 [ 0x03, "Channel is not functional" ],
1406 ChannelSynchronizationState = val_string8("channel_synchronization_state", "Channel Synchronization State", [
1407 [ 0x00, "Channel is not being used" ],
1408 [ 0x02, "NetWare is using the channel; no one else wants it" ],
1409 [ 0x04, "NetWare is using the channel; someone else wants it" ],
1410 [ 0x06, "Someone else is using the channel; NetWare does not need it" ],
1411 [ 0x08, "Someone else is using the channel; NetWare needs it" ],
1412 [ 0x0A, "Someone else has released the channel; NetWare should use it" ],
1414 ChargeAmount = uint32("charge_amount", "Charge Amount")
1415 ChargeInformation = uint32("charge_information", "Charge Information")
1416 ClientCompFlag = val_string16("client_comp_flag", "Completion Flag", [
1417 [ 0x0000, "Successful" ],
1418 [ 0x0001, "Illegal Station Number" ],
1419 [ 0x0002, "Client Not Logged In" ],
1420 [ 0x0003, "Client Not Accepting Messages" ],
1421 [ 0x0004, "Client Already has a Message" ],
1422 [ 0x0096, "No Alloc Space for the Message" ],
1423 [ 0x00fd, "Bad Station Number" ],
1424 [ 0x00ff, "Failure" ],
1426 ClientIDNumber = uint32("client_id_number", "Client ID Number", BE)
1427 ClientIDNumber.Display("BASE_HEX")
1428 ClientList = uint32("client_list", "Client List")
1429 ClientListCount = uint16("client_list_cnt", "Client List Count")
1430 ClientListLen = uint8("client_list_len", "Client List Length")
1431 ClientName = nstring8("client_name", "Client Name")
1432 ClientRecordArea = fw_string("client_record_area", "Client Record Area", 152)
1433 ClientStation = uint8("client_station", "Client Station")
1434 ClientStationLong = uint32("client_station_long", "Client Station")
1435 ClientTaskNumber = uint8("client_task_number", "Client Task Number")
1436 ClientTaskNumberLong = uint32("client_task_number_long", "Client Task Number")
1437 ClusterCount = uint16("cluster_count", "Cluster Count")
1438 ClustersUsedByDirectories = uint32("clusters_used_by_directories", "Clusters Used by Directories")
1439 ClustersUsedByExtendedDirectories = uint32("clusters_used_by_extended_dirs", "Clusters Used by Extended Directories")
1440 ClustersUsedByFAT = uint32("clusters_used_by_fat", "Clusters Used by FAT")
1441 ComCnts = uint16("com_cnts", "Communication Counters")
1442 Comment = nstring8("comment", "Comment")
1443 CommentType = uint16("comment_type", "Comment Type")
1444 CompletionCode = uint32("ncompletion_code", "Completion Code")
1445 CompressedDataStreamsCount = uint32("compressed_data_streams_count", "Compressed Data Streams Count")
1446 CompressedLimboDataStreamsCount = uint32("compressed_limbo_data_streams_count", "Compressed Limbo Data Streams Count")
1447 CompressedSectors = uint32("compressed_sectors", "Compressed Sectors")
1448 compressionStage = uint32("compression_stage", "Compression Stage")
1449 compressVolume = uint32("compress_volume", "Volume Compression")
1450 ConfigMajorVN = uint8("config_major_vn", "Configuration Major Version Number")
1451 ConfigMinorVN = uint8("config_minor_vn", "Configuration Minor Version Number")
1452 ConfigurationDescription = fw_string("configuration_description", "Configuration Description", 80)
1453 ConfigurationText = fw_string("configuration_text", "Configuration Text", 160)
1454 ConfiguredMaxBinderyObjects = uint16("configured_max_bindery_objects", "Configured Max Bindery Objects")
1455 ConfiguredMaxOpenFiles = uint16("configured_max_open_files", "Configured Max Open Files")
1456 ConfiguredMaxRoutingBuffers = uint16("configured_max_routing_buffers", "Configured Max Routing Buffers")
1457 ConfiguredMaxSimultaneousTransactions = uint16("cfg_max_simultaneous_transactions", "Configured Max Simultaneous Transactions")
1458 ConnectedLAN = uint32("connected_lan", "LAN Adapter")
1459 ConnectionControlBits = bitfield8("conn_ctrl_bits", "Connection Control", [
1460 bf_boolean8(0x01, "enable_brdcasts", "Enable Broadcasts"),
1461 bf_boolean8(0x02, "enable_personal_brdcasts", "Enable Personal Broadcasts"),
1462 bf_boolean8(0x04, "enable_wdog_messages", "Enable Watchdog Message"),
1463 bf_boolean8(0x10, "disable_brdcasts", "Disable Broadcasts"),
1464 bf_boolean8(0x20, "disable_personal_brdcasts", "Disable Personal Broadcasts"),
1465 bf_boolean8(0x40, "disable_wdog_messages", "Disable Watchdog Message"),
1467 ConnectionListCount = uint32("conn_list_count", "Connection List Count")
1468 ConnectionList = uint32("connection_list", "Connection List")
1469 ConnectionNumber = uint32("connection_number", "Connection Number", BE)
1470 ConnectionNumberList = nstring8("connection_number_list", "Connection Number List")
1471 ConnectionNumberWord = uint16("conn_number_word", "Connection Number")
1472 ConnectionNumberByte = uint8("conn_number_byte", "Connection Number")
1473 ConnectionServiceType = val_string8("connection_service_type","Connection Service Type",[
1474 [ 0x01, "CLIB backward Compatibility" ],
1475 [ 0x02, "NCP Connection" ],
1476 [ 0x03, "NLM Connection" ],
1477 [ 0x04, "AFP Connection" ],
1478 [ 0x05, "FTAM Connection" ],
1479 [ 0x06, "ANCP Connection" ],
1480 [ 0x07, "ACP Connection" ],
1481 [ 0x08, "SMB Connection" ],
1482 [ 0x09, "Winsock Connection" ],
1484 ConnectionsInUse = uint16("connections_in_use", "Connections In Use")
1485 ConnectionsMaxUsed = uint16("connections_max_used", "Connections Max Used")
1486 ConnectionsSupportedMax = uint16("connections_supported_max", "Connections Supported Max")
1487 ConnectionType = val_string8("connection_type", "Connection Type", [
1488 [ 0x00, "Not in use" ],
1490 [ 0x11, "UDP (for IP)" ],
1492 ConnListLen = uint8("conn_list_len", "Connection List Length")
1493 Copyright = nstring8("copyright", "Copyright")
1494 connList = uint32("conn_list", "Connection List")
1495 ControlFlags = val_string8("control_flags", "Control Flags", [
1496 [ 0x00, "Forced Record Locking is Off" ],
1497 [ 0x01, "Forced Record Locking is On" ],
1499 ControllerDriveNumber = uint8("controller_drive_number", "Controller Drive Number")
1500 ControllerNumber = uint8("controller_number", "Controller Number")
1501 ControllerType = uint8("controller_type", "Controller Type")
1502 Cookie1 = uint32("cookie_1", "Cookie 1")
1503 Cookie2 = uint32("cookie_2", "Cookie 2")
1504 Copies = uint8( "copies", "Copies" )
1505 CoprocessorFlag = uint32("co_processor_flag", "CoProcessor Present Flag")
1506 CoProcessorString = stringz("co_proc_string", "CoProcessor String")
1507 CounterMask = val_string8("counter_mask", "Counter Mask", [
1508 [ 0x00, "Counter is Valid" ],
1509 [ 0x01, "Counter is not Valid" ],
1511 CPUNumber = uint32("cpu_number", "CPU Number")
1512 CPUString = stringz("cpu_string", "CPU String")
1513 CPUType = val_string8("cpu_type", "CPU Type", [
1516 [ 0x02, "Pentium" ],
1517 [ 0x03, "Pentium Pro" ],
1519 CreationDate = uint16("creation_date", "Creation Date")
1520 CreationDate.NWDate()
1521 CreationTime = uint16("creation_time", "Creation Time")
1522 CreationTime.NWTime()
1523 CreatorID = uint32("creator_id", "Creator ID", BE)
1524 CreatorID.Display("BASE_HEX")
1525 CreatorNameSpaceNumber = val_string8("creator_name_space_number", "Creator Name Space Number", [
1526 [ 0x00, "DOS Name Space" ],
1527 [ 0x01, "MAC Name Space" ],
1528 [ 0x02, "NFS Name Space" ],
1529 [ 0x04, "Long Name Space" ],
1531 CreditLimit = uint32("credit_limit", "Credit Limit")
1532 CtrlFlags = val_string16("ctrl_flags", "Control Flags", [
1533 [ 0x0000, "Do Not Return File Name" ],
1534 [ 0x0001, "Return File Name" ],
1536 curCompBlks = uint32("cur_comp_blks", "Current Compression Blocks")
1537 curInitialBlks = uint32("cur_initial_blks", "Current Initial Blocks")
1538 curIntermediateBlks = uint32("cur_inter_blks", "Current Intermediate Blocks")
1539 CurNumOfRTags = uint32("cur_num_of_r_tags", "Current Number of Resource Tags")
1540 CurrentBlockBeingDecompressed = uint32("cur_blk_being_dcompress", "Current Block Being Decompressed")
1541 CurrentChangedFATs = uint16("current_changed_fats", "Current Changed FAT Entries")
1542 CurrentEntries = uint32("current_entries", "Current Entries")
1543 CurrentFormType = uint8( "current_form_type", "Current Form Type" )
1544 CurrentLFSCounters = uint32("current_lfs_counters", "Current LFS Counters")
1545 CurrentlyUsedRoutingBuffers = uint16("currently_used_routing_buffers", "Currently Used Routing Buffers")
1546 CurrentOpenFiles = uint16("current_open_files", "Current Open Files")
1547 CurrentReferenceID = uint16("curr_ref_id", "Current Reference ID")
1548 CurrentServers = uint32("current_servers", "Current Servers")
1549 CurrentServerTime = uint32("current_server_time", "Time Elapsed Since Server Was Brought Up")
1550 CurrentSpace = uint32("current_space", "Current Space")
1551 CurrentTransactionCount = uint32("current_trans_count", "Current Transaction Count")
1552 CurrentUsedBinderyObjects = uint16("current_used_bindery_objects", "Current Used Bindery Objects")
1553 CurrentUsedDynamicSpace = uint32("current_used_dynamic_space", "Current Used Dynamic Space")
1554 CustomCnts = uint32("custom_cnts", "Custom Counters")
1555 CustomCount = uint32("custom_count", "Custom Count")
1556 CustomCounters = uint32("custom_counters", "Custom Counters")
1557 CustomString = nstring8("custom_string", "Custom String")
1558 CustomVariableValue = uint32("custom_var_value", "Custom Variable Value")
1560 Data = nstring8("data", "Data")
1561 DataForkFirstFAT = uint32("data_fork_first_fat", "Data Fork First FAT Entry")
1562 DataForkLen = uint32("data_fork_len", "Data Fork Len")
1563 DataForkSize = uint32("data_fork_size", "Data Fork Size")
1564 DataSize = uint32("data_size", "Data Size")
1565 DataStream = val_string8("data_stream", "Data Stream", [
1566 [ 0x00, "Resource Fork or DOS" ],
1567 [ 0x01, "Data Fork" ],
1569 DataStreamName = nstring8("data_stream_name", "Data Stream Name")
1570 DataStreamNumber = uint8("data_stream_number", "Data Stream Number")
1571 DataStreamsCount = uint32("data_streams_count", "Data Streams Count")
1572 DataStreamSize = uint32("data_stream_size", "Size")
1573 DataStreamSpaceAlloc = uint32( "data_stream_space_alloc", "Space Allocated for Data Stream" )
1574 Day = uint8("s_day", "Day")
1575 DayOfWeek = val_string8("s_day_of_week", "Day of Week", [
1578 [ 0x02, "Tuesday" ],
1579 [ 0x03, "Wednesday" ],
1580 [ 0x04, "Thursday" ],
1582 [ 0x06, "Saturday" ],
1584 DeadMirrorTable = bytes("dead_mirror_table", "Dead Mirror Table", 32)
1585 DefinedDataStreams = uint8("defined_data_streams", "Defined Data Streams")
1586 DefinedNameSpaces = uint8("defined_name_spaces", "Defined Name Spaces")
1587 DeletedDate = uint16("deleted_date", "Deleted Date")
1588 DeletedDate.NWDate()
1589 DeletedFileTime = uint32( "deleted_file_time", "Deleted File Time")
1590 DeletedFileTime.Display("BASE_HEX")
1591 DeletedTime = uint16("deleted_time", "Deleted Time")
1592 DeletedTime.NWTime()
1593 DeletedID = uint32( "delete_id", "Deleted ID", BE)
1594 DeletedID.Display("BASE_HEX")
1595 DeleteExistingFileFlag = val_string8("delete_existing_file_flag", "Delete Existing File Flag", [
1596 [ 0x00, "Do Not Delete Existing File" ],
1597 [ 0x01, "Delete Existing File" ],
1599 DenyReadCount = uint16("deny_read_count", "Deny Read Count")
1600 DenyWriteCount = uint16("deny_write_count", "Deny Write Count")
1601 DescriptionStrings = fw_string("description_string", "Description", 512)
1602 DesiredAccessRights = bitfield16("desired_access_rights", "Desired Access Rights", [
1603 bf_boolean16(0x0001, "dsired_acc_rights_read_o", "Read Only"),
1604 bf_boolean16(0x0002, "dsired_acc_rights_write_o", "Write Only"),
1605 bf_boolean16(0x0004, "dsired_acc_rights_deny_r", "Deny Read"),
1606 bf_boolean16(0x0008, "dsired_acc_rights_deny_w", "Deny Write"),
1607 bf_boolean16(0x0010, "dsired_acc_rights_compat", "Compatibility"),
1608 bf_boolean16(0x0040, "dsired_acc_rights_w_thru", "File Write Through"),
1609 bf_boolean16(0x0400, "dsired_acc_rights_del_file_cls", "Delete File Close"),
1611 DesiredResponseCount = uint16("desired_response_count", "Desired Response Count")
1612 DestDirHandle = uint8("dest_dir_handle", "Destination Directory Handle")
1613 DestNameSpace = val_string8("dest_name_space", "Destination Name Space", [
1614 [ 0x00, "DOS Name Space" ],
1615 [ 0x01, "MAC Name Space" ],
1616 [ 0x02, "NFS Name Space" ],
1617 [ 0x04, "Long Name Space" ],
1619 DestPathComponentCount = uint8("dest_component_count", "Destination Path Component Count")
1620 DestPath = nstring8("dest_path", "Destination Path")
1621 DetachDuringProcessing = uint16("detach_during_processing", "Detach During Processing")
1622 DetachForBadConnectionNumber = uint16("detach_for_bad_connection_number", "Detach For Bad Connection Number")
1623 DirHandle = uint8("dir_handle", "Directory Handle")
1624 DirHandleName = uint8("dir_handle_name", "Handle Name")
1625 DirHandleLong = uint32("dir_handle_long", "Directory Handle")
1626 DirectoryAccessRights = uint8("directory_access_rights", "Directory Access Rights")
1628 # XXX - what do the bits mean here?
1630 DirectoryAttributes = uint8("directory_attributes", "Directory Attributes")
1631 DirectoryBase = uint32("dir_base", "Directory Base")
1632 DirectoryBase.Display("BASE_HEX")
1633 DirectoryCount = uint16("dir_count", "Directory Count")
1634 DirectoryEntryNumber = uint32("directory_entry_number", "Directory Entry Number")
1635 DirectoryEntryNumber.Display('BASE_HEX')
1636 DirectoryEntryNumberWord = uint16("directory_entry_number_word", "Directory Entry Number")
1637 DirectoryID = uint16("directory_id", "Directory ID", BE)
1638 DirectoryID.Display("BASE_HEX")
1639 DirectoryName = fw_string("directory_name", "Directory Name",12)
1640 DirectoryName14 = fw_string("directory_name_14", "Directory Name", 14)
1641 DirectoryNameLen = uint8("directory_name_len", "Directory Name Length")
1642 DirectoryNumber = uint32("directory_number", "Directory Number")
1643 DirectoryNumber.Display("BASE_HEX")
1644 DirectoryPath = fw_string("directory_path", "Directory Path", 16)
1645 DirectoryServicesObjectID = uint32("directory_services_object_id", "Directory Services Object ID")
1646 DirectoryServicesObjectID.Display("BASE_HEX")
1647 DirectoryStamp = uint16("directory_stamp", "Directory Stamp (0xD1D1)")
1648 DirtyCacheBuffers = uint16("dirty_cache_buffers", "Dirty Cache Buffers")
1649 DiskChannelNumber = uint8("disk_channel_number", "Disk Channel Number")
1650 DiskChannelTable = val_string8("disk_channel_table", "Disk Channel Table", [
1654 [ 0x04, "Disk Coprocessor" ],
1656 DiskSpaceLimit = uint32("disk_space_limit", "Disk Space Limit")
1657 DMAChannelsUsed = uint32("dma_channels_used", "DMA Channels Used")
1658 DMInfoEntries = uint32("dm_info_entries", "DM Info Entries")
1659 DMInfoLevel = val_string8("dm_info_level", "DM Info Level", [
1660 [ 0x00, "Return Detailed DM Support Module Information" ],
1661 [ 0x01, "Return Number of DM Support Modules" ],
1662 [ 0x02, "Return DM Support Modules Names" ],
1664 DMFlags = val_string8("dm_flags", "DM Flags", [
1665 [ 0x00, "OnLine Media" ],
1666 [ 0x01, "OffLine Media" ],
1668 DMmajorVersion = uint32("dm_major_version", "DM Major Version")
1669 DMminorVersion = uint32("dm_minor_version", "DM Minor Version")
1670 DMPresentFlag = val_string8("dm_present_flag", "Data Migration Present Flag", [
1671 [ 0x00, "Data Migration NLM is not loaded" ],
1672 [ 0x01, "Data Migration NLM has been loaded and is running" ],
1674 DOSDirectoryBase = uint32("dos_directory_base", "DOS Directory Base")
1675 DOSDirectoryBase.Display("BASE_HEX")
1676 DOSDirectoryEntry = uint32("dos_directory_entry", "DOS Directory Entry")
1677 DOSDirectoryEntry.Display("BASE_HEX")
1678 DOSDirectoryEntryNumber = uint32("dos_directory_entry_number", "DOS Directory Entry Number")
1679 DOSDirectoryEntryNumber.Display('BASE_HEX')
1680 DOSFileAttributes = uint8("dos_file_attributes", "DOS File Attributes")
1681 DOSParentDirectoryEntry = uint32("dos_parent_directory_entry", "DOS Parent Directory Entry")
1682 DOSParentDirectoryEntry.Display('BASE_HEX')
1683 DOSSequence = uint32("dos_sequence", "DOS Sequence")
1684 DriveCylinders = uint16("drive_cylinders", "Drive Cylinders")
1685 DriveDefinitionString = fw_string("drive_definition_string", "Drive Definition", 64)
1686 DriveHeads = uint8("drive_heads", "Drive Heads")
1687 DriveMappingTable = bytes("drive_mapping_table", "Drive Mapping Table", 32)
1688 DriveMirrorTable = bytes("drive_mirror_table", "Drive Mirror Table", 32)
1689 DriverBoardName = stringz("driver_board_name", "Driver Board Name")
1690 DriveRemovableFlag = val_string8("drive_removable_flag", "Drive Removable Flag", [
1691 [ 0x00, "Nonremovable" ],
1692 [ 0xff, "Removable" ],
1694 DriverLogicalName = stringz("driver_log_name", "Driver Logical Name")
1695 DriverShortName = stringz("driver_short_name", "Driver Short Name")
1696 DriveSize = uint32("drive_size", "Drive Size")
1697 DstEAFlags = val_string16("dst_ea_flags", "Destination EA Flags", [
1698 [ 0x0000, "Return EAHandle,Information Level 0" ],
1699 [ 0x0001, "Return NetWareHandle,Information Level 0" ],
1700 [ 0x0002, "Return Volume/Directory Number,Information Level 0" ],
1701 [ 0x0004, "Return EAHandle,Close Handle on Error,Information Level 0" ],
1702 [ 0x0005, "Return NetWareHandle,Close Handle on Error,Information Level 0" ],
1703 [ 0x0006, "Return Volume/Directory Number,Close Handle on Error,Information Level 0" ],
1704 [ 0x0010, "Return EAHandle,Information Level 1" ],
1705 [ 0x0011, "Return NetWareHandle,Information Level 1" ],
1706 [ 0x0012, "Return Volume/Directory Number,Information Level 1" ],
1707 [ 0x0014, "Return EAHandle,Close Handle on Error,Information Level 1" ],
1708 [ 0x0015, "Return NetWareHandle,Close Handle on Error,Information Level 1" ],
1709 [ 0x0016, "Return Volume/Directory Number,Close Handle on Error,Information Level 1" ],
1710 [ 0x0020, "Return EAHandle,Information Level 2" ],
1711 [ 0x0021, "Return NetWareHandle,Information Level 2" ],
1712 [ 0x0022, "Return Volume/Directory Number,Information Level 2" ],
1713 [ 0x0024, "Return EAHandle,Close Handle on Error,Information Level 2" ],
1714 [ 0x0025, "Return NetWareHandle,Close Handle on Error,Information Level 2" ],
1715 [ 0x0026, "Return Volume/Directory Number,Close Handle on Error,Information Level 2" ],
1716 [ 0x0030, "Return EAHandle,Information Level 3" ],
1717 [ 0x0031, "Return NetWareHandle,Information Level 3" ],
1718 [ 0x0032, "Return Volume/Directory Number,Information Level 3" ],
1719 [ 0x0034, "Return EAHandle,Close Handle on Error,Information Level 3" ],
1720 [ 0x0035, "Return NetWareHandle,Close Handle on Error,Information Level 3" ],
1721 [ 0x0036, "Return Volume/Directory Number,Close Handle on Error,Information Level 3" ],
1722 [ 0x0040, "Return EAHandle,Information Level 4" ],
1723 [ 0x0041, "Return NetWareHandle,Information Level 4" ],
1724 [ 0x0042, "Return Volume/Directory Number,Information Level 4" ],
1725 [ 0x0044, "Return EAHandle,Close Handle on Error,Information Level 4" ],
1726 [ 0x0045, "Return NetWareHandle,Close Handle on Error,Information Level 4" ],
1727 [ 0x0046, "Return Volume/Directory Number,Close Handle on Error,Information Level 4" ],
1728 [ 0x0050, "Return EAHandle,Information Level 5" ],
1729 [ 0x0051, "Return NetWareHandle,Information Level 5" ],
1730 [ 0x0052, "Return Volume/Directory Number,Information Level 5" ],
1731 [ 0x0054, "Return EAHandle,Close Handle on Error,Information Level 5" ],
1732 [ 0x0055, "Return NetWareHandle,Close Handle on Error,Information Level 5" ],
1733 [ 0x0056, "Return Volume/Directory Number,Close Handle on Error,Information Level 5" ],
1734 [ 0x0060, "Return EAHandle,Information Level 6" ],
1735 [ 0x0061, "Return NetWareHandle,Information Level 6" ],
1736 [ 0x0062, "Return Volume/Directory Number,Information Level 6" ],
1737 [ 0x0064, "Return EAHandle,Close Handle on Error,Information Level 6" ],
1738 [ 0x0065, "Return NetWareHandle,Close Handle on Error,Information Level 6" ],
1739 [ 0x0066, "Return Volume/Directory Number,Close Handle on Error,Information Level 6" ],
1740 [ 0x0070, "Return EAHandle,Information Level 7" ],
1741 [ 0x0071, "Return NetWareHandle,Information Level 7" ],
1742 [ 0x0072, "Return Volume/Directory Number,Information Level 7" ],
1743 [ 0x0074, "Return EAHandle,Close Handle on Error,Information Level 7" ],
1744 [ 0x0075, "Return NetWareHandle,Close Handle on Error,Information Level 7" ],
1745 [ 0x0076, "Return Volume/Directory Number,Close Handle on Error,Information Level 7" ],
1746 [ 0x0080, "Return EAHandle,Information Level 0,Immediate Close Handle" ],
1747 [ 0x0081, "Return NetWareHandle,Information Level 0,Immediate Close Handle" ],
1748 [ 0x0082, "Return Volume/Directory Number,Information Level 0,Immediate Close Handle" ],
1749 [ 0x0084, "Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1750 [ 0x0085, "Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1751 [ 0x0086, "Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1752 [ 0x0090, "Return EAHandle,Information Level 1,Immediate Close Handle" ],
1753 [ 0x0091, "Return NetWareHandle,Information Level 1,Immediate Close Handle" ],
1754 [ 0x0092, "Return Volume/Directory Number,Information Level 1,Immediate Close Handle" ],
1755 [ 0x0094, "Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1756 [ 0x0095, "Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1757 [ 0x0096, "Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1758 [ 0x00a0, "Return EAHandle,Information Level 2,Immediate Close Handle" ],
1759 [ 0x00a1, "Return NetWareHandle,Information Level 2,Immediate Close Handle" ],
1760 [ 0x00a2, "Return Volume/Directory Number,Information Level 2,Immediate Close Handle" ],
1761 [ 0x00a4, "Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1762 [ 0x00a5, "Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1763 [ 0x00a6, "Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1764 [ 0x00b0, "Return EAHandle,Information Level 3,Immediate Close Handle" ],
1765 [ 0x00b1, "Return NetWareHandle,Information Level 3,Immediate Close Handle" ],
1766 [ 0x00b2, "Return Volume/Directory Number,Information Level 3,Immediate Close Handle" ],
1767 [ 0x00b4, "Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1768 [ 0x00b5, "Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1769 [ 0x00b6, "Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1770 [ 0x00c0, "Return EAHandle,Information Level 4,Immediate Close Handle" ],
1771 [ 0x00c1, "Return NetWareHandle,Information Level 4,Immediate Close Handle" ],
1772 [ 0x00c2, "Return Volume/Directory Number,Information Level 4,Immediate Close Handle" ],
1773 [ 0x00c4, "Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1774 [ 0x00c5, "Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1775 [ 0x00c6, "Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1776 [ 0x00d0, "Return EAHandle,Information Level 5,Immediate Close Handle" ],
1777 [ 0x00d1, "Return NetWareHandle,Information Level 5,Immediate Close Handle" ],
1778 [ 0x00d2, "Return Volume/Directory Number,Information Level 5,Immediate Close Handle" ],
1779 [ 0x00d4, "Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1780 [ 0x00d5, "Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1781 [ 0x00d6, "Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1782 [ 0x00e0, "Return EAHandle,Information Level 6,Immediate Close Handle" ],
1783 [ 0x00e1, "Return NetWareHandle,Information Level 6,Immediate Close Handle" ],
1784 [ 0x00e2, "Return Volume/Directory Number,Information Level 6,Immediate Close Handle" ],
1785 [ 0x00e4, "Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1786 [ 0x00e5, "Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1787 [ 0x00e6, "Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1788 [ 0x00f0, "Return EAHandle,Information Level 7,Immediate Close Handle" ],
1789 [ 0x00f1, "Return NetWareHandle,Information Level 7,Immediate Close Handle" ],
1790 [ 0x00f2, "Return Volume/Directory Number,Information Level 7,Immediate Close Handle" ],
1791 [ 0x00f4, "Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1792 [ 0x00f5, "Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1793 [ 0x00f6, "Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1795 dstNSIndicator = val_string16("dst_ns_indicator", "Destination Name Space Indicator", [
1796 [ 0x0000, "Return Source Name Space Information" ],
1797 [ 0x0001, "Return Destination Name Space Information" ],
1799 DstQueueID = uint32("dst_queue_id", "Destination Queue ID")
1800 DuplicateRepliesSent = uint16("duplicate_replies_sent", "Duplicate Replies Sent")
1802 EAAccessFlag = bitfield16("ea_access_flag", "EA Access Flag", [
1803 bf_boolean16(0x0001, "ea_permanent_memory", "Permanent Memory"),
1804 bf_boolean16(0x0002, "ea_deep_freeze", "Deep Freeze"),
1805 bf_boolean16(0x0004, "ea_in_progress", "In Progress"),
1806 bf_boolean16(0x0008, "ea_header_being_enlarged", "Header Being Enlarged"),
1807 bf_boolean16(0x0010, "ea_new_tally_used", "New Tally Used"),
1808 bf_boolean16(0x0020, "ea_tally_need_update", "Tally Need Update"),
1809 bf_boolean16(0x0040, "ea_score_card_present", "Score Card Present"),
1810 bf_boolean16(0x0080, "ea_need_bit_flag", "EA Need Bit Flag"),
1811 bf_boolean16(0x0100, "ea_write_privileges", "Write Privileges"),
1812 bf_boolean16(0x0200, "ea_read_privileges", "Read Privileges"),
1813 bf_boolean16(0x0400, "ea_delete_privileges", "Delete Privileges"),
1814 bf_boolean16(0x0800, "ea_system_ea_only", "System EA Only"),
1815 bf_boolean16(0x1000, "ea_write_in_progress", "Write In Progress"),
1817 EABytesWritten = uint32("ea_bytes_written", "Bytes Written")
1818 EACount = uint32("ea_count", "Count")
1819 EADataSize = uint32("ea_data_size", "Data Size")
1820 EADataSizeDuplicated = uint32("ea_data_size_duplicated", "Data Size Duplicated")
1821 EADuplicateCount = uint32("ea_duplicate_count", "Duplicate Count")
1822 EAErrorCodes = val_string16("ea_error_codes", "EA Error Codes", [
1823 [ 0x0000, "SUCCESSFUL" ],
1824 [ 0x00c8, "ERR_MISSING_EA_KEY" ],
1825 [ 0x00c9, "ERR_EA_NOT_FOUND" ],
1826 [ 0x00ca, "ERR_INVALID_EA_HANDLE_TYPE" ],
1827 [ 0x00cb, "ERR_EA_NO_KEY_NO_DATA" ],
1828 [ 0x00cc, "ERR_EA_NUMBER_MISMATCH" ],
1829 [ 0x00cd, "ERR_EXTENT_NUMBER_OUT_OF_RANGE" ],
1830 [ 0x00ce, "ERR_EA_BAD_DIR_NUM" ],
1831 [ 0x00cf, "ERR_INVALID_EA_HANDLE" ],
1832 [ 0x00d0, "ERR_EA_POSITION_OUT_OF_RANGE" ],
1833 [ 0x00d1, "ERR_EA_ACCESS_DENIED" ],
1834 [ 0x00d2, "ERR_DATA_PAGE_ODD_SIZE" ],
1835 [ 0x00d3, "ERR_EA_VOLUME_NOT_MOUNTED" ],
1836 [ 0x00d4, "ERR_BAD_PAGE_BOUNDARY" ],
1837 [ 0x00d5, "ERR_INSPECT_FAILURE" ],
1838 [ 0x00d6, "ERR_EA_ALREADY_CLAIMED" ],
1839 [ 0x00d7, "ERR_ODD_BUFFER_SIZE" ],
1840 [ 0x00d8, "ERR_NO_SCORECARDS" ],
1841 [ 0x00d9, "ERR_BAD_EDS_SIGNATURE" ],
1842 [ 0x00da, "ERR_EA_SPACE_LIMIT" ],
1843 [ 0x00db, "ERR_EA_KEY_CORRUPT" ],
1844 [ 0x00dc, "ERR_EA_KEY_LIMIT" ],
1845 [ 0x00dd, "ERR_TALLY_CORRUPT" ],
1847 EAFlags = val_string16("ea_flags", "EA Flags", [
1848 [ 0x0000, "Return EAHandle,Information Level 0" ],
1849 [ 0x0001, "Return NetWareHandle,Information Level 0" ],
1850 [ 0x0002, "Return Volume/Directory Number,Information Level 0" ],
1851 [ 0x0004, "Return EAHandle,Close Handle on Error,Information Level 0" ],
1852 [ 0x0005, "Return NetWareHandle,Close Handle on Error,Information Level 0" ],
1853 [ 0x0006, "Return Volume/Directory Number,Close Handle on Error,Information Level 0" ],
1854 [ 0x0010, "Return EAHandle,Information Level 1" ],
1855 [ 0x0011, "Return NetWareHandle,Information Level 1" ],
1856 [ 0x0012, "Return Volume/Directory Number,Information Level 1" ],
1857 [ 0x0014, "Return EAHandle,Close Handle on Error,Information Level 1" ],
1858 [ 0x0015, "Return NetWareHandle,Close Handle on Error,Information Level 1" ],
1859 [ 0x0016, "Return Volume/Directory Number,Close Handle on Error,Information Level 1" ],
1860 [ 0x0020, "Return EAHandle,Information Level 2" ],
1861 [ 0x0021, "Return NetWareHandle,Information Level 2" ],
1862 [ 0x0022, "Return Volume/Directory Number,Information Level 2" ],
1863 [ 0x0024, "Return EAHandle,Close Handle on Error,Information Level 2" ],
1864 [ 0x0025, "Return NetWareHandle,Close Handle on Error,Information Level 2" ],
1865 [ 0x0026, "Return Volume/Directory Number,Close Handle on Error,Information Level 2" ],
1866 [ 0x0030, "Return EAHandle,Information Level 3" ],
1867 [ 0x0031, "Return NetWareHandle,Information Level 3" ],
1868 [ 0x0032, "Return Volume/Directory Number,Information Level 3" ],
1869 [ 0x0034, "Return EAHandle,Close Handle on Error,Information Level 3" ],
1870 [ 0x0035, "Return NetWareHandle,Close Handle on Error,Information Level 3" ],
1871 [ 0x0036, "Return Volume/Directory Number,Close Handle on Error,Information Level 3" ],
1872 [ 0x0040, "Return EAHandle,Information Level 4" ],
1873 [ 0x0041, "Return NetWareHandle,Information Level 4" ],
1874 [ 0x0042, "Return Volume/Directory Number,Information Level 4" ],
1875 [ 0x0044, "Return EAHandle,Close Handle on Error,Information Level 4" ],
1876 [ 0x0045, "Return NetWareHandle,Close Handle on Error,Information Level 4" ],
1877 [ 0x0046, "Return Volume/Directory Number,Close Handle on Error,Information Level 4" ],
1878 [ 0x0050, "Return EAHandle,Information Level 5" ],
1879 [ 0x0051, "Return NetWareHandle,Information Level 5" ],
1880 [ 0x0052, "Return Volume/Directory Number,Information Level 5" ],
1881 [ 0x0054, "Return EAHandle,Close Handle on Error,Information Level 5" ],
1882 [ 0x0055, "Return NetWareHandle,Close Handle on Error,Information Level 5" ],
1883 [ 0x0056, "Return Volume/Directory Number,Close Handle on Error,Information Level 5" ],
1884 [ 0x0060, "Return EAHandle,Information Level 6" ],
1885 [ 0x0061, "Return NetWareHandle,Information Level 6" ],
1886 [ 0x0062, "Return Volume/Directory Number,Information Level 6" ],
1887 [ 0x0064, "Return EAHandle,Close Handle on Error,Information Level 6" ],
1888 [ 0x0065, "Return NetWareHandle,Close Handle on Error,Information Level 6" ],
1889 [ 0x0066, "Return Volume/Directory Number,Close Handle on Error,Information Level 6" ],
1890 [ 0x0070, "Return EAHandle,Information Level 7" ],
1891 [ 0x0071, "Return NetWareHandle,Information Level 7" ],
1892 [ 0x0072, "Return Volume/Directory Number,Information Level 7" ],
1893 [ 0x0074, "Return EAHandle,Close Handle on Error,Information Level 7" ],
1894 [ 0x0075, "Return NetWareHandle,Close Handle on Error,Information Level 7" ],
1895 [ 0x0076, "Return Volume/Directory Number,Close Handle on Error,Information Level 7" ],
1896 [ 0x0080, "Return EAHandle,Information Level 0,Immediate Close Handle" ],
1897 [ 0x0081, "Return NetWareHandle,Information Level 0,Immediate Close Handle" ],
1898 [ 0x0082, "Return Volume/Directory Number,Information Level 0,Immediate Close Handle" ],
1899 [ 0x0084, "Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1900 [ 0x0085, "Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1901 [ 0x0086, "Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1902 [ 0x0090, "Return EAHandle,Information Level 1,Immediate Close Handle" ],
1903 [ 0x0091, "Return NetWareHandle,Information Level 1,Immediate Close Handle" ],
1904 [ 0x0092, "Return Volume/Directory Number,Information Level 1,Immediate Close Handle" ],
1905 [ 0x0094, "Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1906 [ 0x0095, "Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1907 [ 0x0096, "Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1908 [ 0x00a0, "Return EAHandle,Information Level 2,Immediate Close Handle" ],
1909 [ 0x00a1, "Return NetWareHandle,Information Level 2,Immediate Close Handle" ],
1910 [ 0x00a2, "Return Volume/Directory Number,Information Level 2,Immediate Close Handle" ],
1911 [ 0x00a4, "Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1912 [ 0x00a5, "Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1913 [ 0x00a6, "Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1914 [ 0x00b0, "Return EAHandle,Information Level 3,Immediate Close Handle" ],
1915 [ 0x00b1, "Return NetWareHandle,Information Level 3,Immediate Close Handle" ],
1916 [ 0x00b2, "Return Volume/Directory Number,Information Level 3,Immediate Close Handle" ],
1917 [ 0x00b4, "Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1918 [ 0x00b5, "Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1919 [ 0x00b6, "Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1920 [ 0x00c0, "Return EAHandle,Information Level 4,Immediate Close Handle" ],
1921 [ 0x00c1, "Return NetWareHandle,Information Level 4,Immediate Close Handle" ],
1922 [ 0x00c2, "Return Volume/Directory Number,Information Level 4,Immediate Close Handle" ],
1923 [ 0x00c4, "Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1924 [ 0x00c5, "Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1925 [ 0x00c6, "Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1926 [ 0x00d0, "Return EAHandle,Information Level 5,Immediate Close Handle" ],
1927 [ 0x00d1, "Return NetWareHandle,Information Level 5,Immediate Close Handle" ],
1928 [ 0x00d2, "Return Volume/Directory Number,Information Level 5,Immediate Close Handle" ],
1929 [ 0x00d4, "Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1930 [ 0x00d5, "Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1931 [ 0x00d6, "Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1932 [ 0x00e0, "Return EAHandle,Information Level 6,Immediate Close Handle" ],
1933 [ 0x00e1, "Return NetWareHandle,Information Level 6,Immediate Close Handle" ],
1934 [ 0x00e2, "Return Volume/Directory Number,Information Level 6,Immediate Close Handle" ],
1935 [ 0x00e4, "Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1936 [ 0x00e5, "Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1937 [ 0x00e6, "Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1938 [ 0x00f0, "Return EAHandle,Information Level 7,Immediate Close Handle" ],
1939 [ 0x00f1, "Return NetWareHandle,Information Level 7,Immediate Close Handle" ],
1940 [ 0x00f2, "Return Volume/Directory Number,Information Level 7,Immediate Close Handle" ],
1941 [ 0x00f4, "Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1942 [ 0x00f5, "Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1943 [ 0x00f6, "Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1945 EAHandle = uint32("ea_handle", "EA Handle")
1946 EAHandle.Display("BASE_HEX")
1947 EAHandleOrNetWareHandleOrVolume = uint32("ea_handle_or_netware_handle_or_volume", "EAHandle or NetWare Handle or Volume (see EAFlags)")
1948 EAHandleOrNetWareHandleOrVolume.Display("BASE_HEX")
1949 EAKey = nstring16("ea_key", "EA Key")
1950 EAKeySize = uint32("ea_key_size", "Key Size")
1951 EAKeySizeDuplicated = uint32("ea_key_size_duplicated", "Key Size Duplicated")
1952 EAValue = nstring16("ea_value", "EA Value")
1953 EAValueRep = fw_string("ea_value_rep", "EA Value", 1)
1954 EAValueLength = uint16("ea_value_length", "Value Length")
1955 EchoSocket = uint16("echo_socket", "Echo Socket")
1956 EchoSocket.Display('BASE_HEX')
1957 EffectiveRights = bitfield8("effective_rights", "Effective Rights", [
1958 bf_boolean8(0x01, "effective_rights_read", "Read Rights"),
1959 bf_boolean8(0x02, "effective_rights_write", "Write Rights"),
1960 bf_boolean8(0x04, "effective_rights_open", "Open Rights"),
1961 bf_boolean8(0x08, "effective_rights_create", "Create Rights"),
1962 bf_boolean8(0x10, "effective_rights_delete", "Delete Rights"),
1963 bf_boolean8(0x20, "effective_rights_parental", "Parental Rights"),
1964 bf_boolean8(0x40, "effective_rights_search", "Search Rights"),
1965 bf_boolean8(0x80, "effective_rights_modify", "Modify Rights"),
1967 EnumInfoMask = bitfield8("enum_info_mask", "Return Information Mask", [
1968 bf_boolean8(0x01, "enum_info_transport", "Transport Information"),
1969 bf_boolean8(0x02, "enum_info_time", "Time Information"),
1970 bf_boolean8(0x04, "enum_info_name", "Name Information"),
1971 bf_boolean8(0x08, "enum_info_lock", "Lock Information"),
1972 bf_boolean8(0x10, "enum_info_print", "Print Information"),
1973 bf_boolean8(0x20, "enum_info_stats", "Statistical Information"),
1974 bf_boolean8(0x40, "enum_info_account", "Accounting Information"),
1975 bf_boolean8(0x80, "enum_info_auth", "Authentication Information"),
1978 eventOffset = bytes("event_offset", "Event Offset", 8)
1979 eventOffset.Display("BASE_HEX")
1980 eventTime = uint32("event_time", "Event Time")
1981 eventTime.Display("BASE_HEX")
1982 ExpirationTime = uint32("expiration_time", "Expiration Time")
1983 ExpirationTime.Display('BASE_HEX')
1984 ExtAttrDataSize = uint32("ext_attr_data_size", "Extended Attributes Data Size")
1985 ExtAttrCount = uint32("ext_attr_count", "Extended Attributes Count")
1986 ExtAttrKeySize = uint32("ext_attr_key_size", "Extended Attributes Key Size")
1987 ExtendedAttributesDefined = uint32("extended_attributes_defined", "Extended Attributes Defined")
1988 ExtendedAttributeExtantsUsed = uint32("extended_attribute_extants_used", "Extended Attribute Extants Used")
1989 ExtendedInfo = bitfield16("ext_info", "Extended Return Information", [
1990 bf_boolean16(0x0001, "ext_info_update", "Update"),
1991 bf_boolean16(0x0002, "ext_info_dos_name", "DOS Name"),
1992 bf_boolean16(0x0004, "ext_info_flush", "Flush"),
1993 bf_boolean16(0x0008, "ext_info_parental", "Parental"),
1994 bf_boolean16(0x0010, "ext_info_mac_finder", "MAC Finder"),
1995 bf_boolean16(0x0020, "ext_info_sibling", "Sibling"),
1996 bf_boolean16(0x0040, "ext_info_effective", "Effective"),
1997 bf_boolean16(0x0080, "ext_info_mac_date", "MAC Date"),
1998 bf_boolean16(0x0100, "ext_info_access", "Last Access"),
1999 bf_boolean16(0x0400, "ext_info_64_bit_fs", "64 Bit File Sizes"),
2000 bf_boolean16(0x8000, "ext_info_newstyle", "New Style"),
2002 ExtRouterActiveFlag = boolean8("ext_router_active_flag", "External Router Active Flag")
2004 FailedAllocReqCnt = uint32("failed_alloc_req", "Failed Alloc Request Count")
2005 FatalFATWriteErrors = uint16("fatal_fat_write_errors", "Fatal FAT Write Errors")
2006 FATScanErrors = uint16("fat_scan_errors", "FAT Scan Errors")
2007 FATWriteErrors = uint16("fat_write_errors", "FAT Write Errors")
2008 FieldsLenTable = bytes("fields_len_table", "Fields Len Table", 32)
2009 FileCount = uint16("file_count", "File Count")
2010 FileDate = uint16("file_date", "File Date")
2012 FileDirWindow = uint16("file_dir_win", "File/Dir Window")
2013 FileDirWindow.Display("BASE_HEX")
2014 FileExecuteType = uint8("file_execute_type", "File Execute Type")
2015 FileExtendedAttributes = val_string8("file_ext_attr", "File Extended Attributes", [
2016 [ 0x00, "Search On All Read Only Opens" ],
2017 [ 0x01, "Search On Read Only Opens With No Path" ],
2018 [ 0x02, "Shell Default Search Mode" ],
2019 [ 0x03, "Search On All Opens With No Path" ],
2020 [ 0x04, "Do Not Search" ],
2021 [ 0x05, "Reserved" ],
2022 [ 0x06, "Search On All Opens" ],
2023 [ 0x07, "Reserved" ],
2024 [ 0x08, "Search On All Read Only Opens/Indexed" ],
2025 [ 0x09, "Search On Read Only Opens With No Path/Indexed" ],
2026 [ 0x0a, "Shell Default Search Mode/Indexed" ],
2027 [ 0x0b, "Search On All Opens With No Path/Indexed" ],
2028 [ 0x0c, "Do Not Search/Indexed" ],
2029 [ 0x0d, "Indexed" ],
2030 [ 0x0e, "Search On All Opens/Indexed" ],
2031 [ 0x0f, "Indexed" ],
2032 [ 0x10, "Search On All Read Only Opens/Transactional" ],
2033 [ 0x11, "Search On Read Only Opens With No Path/Transactional" ],
2034 [ 0x12, "Shell Default Search Mode/Transactional" ],
2035 [ 0x13, "Search On All Opens With No Path/Transactional" ],
2036 [ 0x14, "Do Not Search/Transactional" ],
2037 [ 0x15, "Transactional" ],
2038 [ 0x16, "Search On All Opens/Transactional" ],
2039 [ 0x17, "Transactional" ],
2040 [ 0x18, "Search On All Read Only Opens/Indexed/Transactional" ],
2041 [ 0x19, "Search On Read Only Opens With No Path/Indexed/Transactional" ],
2042 [ 0x1a, "Shell Default Search Mode/Indexed/Transactional" ],
2043 [ 0x1b, "Search On All Opens With No Path/Indexed/Transactional" ],
2044 [ 0x1c, "Do Not Search/Indexed/Transactional" ],
2045 [ 0x1d, "Indexed/Transactional" ],
2046 [ 0x1e, "Search On All Opens/Indexed/Transactional" ],
2047 [ 0x1f, "Indexed/Transactional" ],
2048 [ 0x40, "Search On All Read Only Opens/Read Audit" ],
2049 [ 0x41, "Search On Read Only Opens With No Path/Read Audit" ],
2050 [ 0x42, "Shell Default Search Mode/Read Audit" ],
2051 [ 0x43, "Search On All Opens With No Path/Read Audit" ],
2052 [ 0x44, "Do Not Search/Read Audit" ],
2053 [ 0x45, "Read Audit" ],
2054 [ 0x46, "Search On All Opens/Read Audit" ],
2055 [ 0x47, "Read Audit" ],
2056 [ 0x48, "Search On All Read Only Opens/Indexed/Read Audit" ],
2057 [ 0x49, "Search On Read Only Opens With No Path/Indexed/Read Audit" ],
2058 [ 0x4a, "Shell Default Search Mode/Indexed/Read Audit" ],
2059 [ 0x4b, "Search On All Opens With No Path/Indexed/Read Audit" ],
2060 [ 0x4c, "Do Not Search/Indexed/Read Audit" ],
2061 [ 0x4d, "Indexed/Read Audit" ],
2062 [ 0x4e, "Search On All Opens/Indexed/Read Audit" ],
2063 [ 0x4f, "Indexed/Read Audit" ],
2064 [ 0x50, "Search On All Read Only Opens/Transactional/Read Audit" ],
2065 [ 0x51, "Search On Read Only Opens With No Path/Transactional/Read Audit" ],
2066 [ 0x52, "Shell Default Search Mode/Transactional/Read Audit" ],
2067 [ 0x53, "Search On All Opens With No Path/Transactional/Read Audit" ],
2068 [ 0x54, "Do Not Search/Transactional/Read Audit" ],
2069 [ 0x55, "Transactional/Read Audit" ],
2070 [ 0x56, "Search On All Opens/Transactional/Read Audit" ],
2071 [ 0x57, "Transactional/Read Audit" ],
2072 [ 0x58, "Search On All Read Only Opens/Indexed/Transactional/Read Audit" ],
2073 [ 0x59, "Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit" ],
2074 [ 0x5a, "Shell Default Search Mode/Indexed/Transactional/Read Audit" ],
2075 [ 0x5b, "Search On All Opens With No Path/Indexed/Transactional/Read Audit" ],
2076 [ 0x5c, "Do Not Search/Indexed/Transactional/Read Audit" ],
2077 [ 0x5d, "Indexed/Transactional/Read Audit" ],
2078 [ 0x5e, "Search On All Opens/Indexed/Transactional/Read Audit" ],
2079 [ 0x5f, "Indexed/Transactional/Read Audit" ],
2080 [ 0x80, "Search On All Read Only Opens/Write Audit" ],
2081 [ 0x81, "Search On Read Only Opens With No Path/Write Audit" ],
2082 [ 0x82, "Shell Default Search Mode/Write Audit" ],
2083 [ 0x83, "Search On All Opens With No Path/Write Audit" ],
2084 [ 0x84, "Do Not Search/Write Audit" ],
2085 [ 0x85, "Write Audit" ],
2086 [ 0x86, "Search On All Opens/Write Audit" ],
2087 [ 0x87, "Write Audit" ],
2088 [ 0x88, "Search On All Read Only Opens/Indexed/Write Audit" ],
2089 [ 0x89, "Search On Read Only Opens With No Path/Indexed/Write Audit" ],
2090 [ 0x8a, "Shell Default Search Mode/Indexed/Write Audit" ],
2091 [ 0x8b, "Search On All Opens With No Path/Indexed/Write Audit" ],
2092 [ 0x8c, "Do Not Search/Indexed/Write Audit" ],
2093 [ 0x8d, "Indexed/Write Audit" ],
2094 [ 0x8e, "Search On All Opens/Indexed/Write Audit" ],
2095 [ 0x8f, "Indexed/Write Audit" ],
2096 [ 0x90, "Search On All Read Only Opens/Transactional/Write Audit" ],
2097 [ 0x91, "Search On Read Only Opens With No Path/Transactional/Write Audit" ],
2098 [ 0x92, "Shell Default Search Mode/Transactional/Write Audit" ],
2099 [ 0x93, "Search On All Opens With No Path/Transactional/Write Audit" ],
2100 [ 0x94, "Do Not Search/Transactional/Write Audit" ],
2101 [ 0x95, "Transactional/Write Audit" ],
2102 [ 0x96, "Search On All Opens/Transactional/Write Audit" ],
2103 [ 0x97, "Transactional/Write Audit" ],
2104 [ 0x98, "Search On All Read Only Opens/Indexed/Transactional/Write Audit" ],
2105 [ 0x99, "Search On Read Only Opens With No Path/Indexed/Transactional/Write Audit" ],
2106 [ 0x9a, "Shell Default Search Mode/Indexed/Transactional/Write Audit" ],
2107 [ 0x9b, "Search On All Opens With No Path/Indexed/Transactional/Write Audit" ],
2108 [ 0x9c, "Do Not Search/Indexed/Transactional/Write Audit" ],
2109 [ 0x9d, "Indexed/Transactional/Write Audit" ],
2110 [ 0x9e, "Search On All Opens/Indexed/Transactional/Write Audit" ],
2111 [ 0x9f, "Indexed/Transactional/Write Audit" ],
2112 [ 0xa0, "Search On All Read Only Opens/Read Audit/Write Audit" ],
2113 [ 0xa1, "Search On Read Only Opens With No Path/Read Audit/Write Audit" ],
2114 [ 0xa2, "Shell Default Search Mode/Read Audit/Write Audit" ],
2115 [ 0xa3, "Search On All Opens With No Path/Read Audit/Write Audit" ],
2116 [ 0xa4, "Do Not Search/Read Audit/Write Audit" ],
2117 [ 0xa5, "Read Audit/Write Audit" ],
2118 [ 0xa6, "Search On All Opens/Read Audit/Write Audit" ],
2119 [ 0xa7, "Read Audit/Write Audit" ],
2120 [ 0xa8, "Search On All Read Only Opens/Indexed/Read Audit/Write Audit" ],
2121 [ 0xa9, "Search On Read Only Opens With No Path/Indexed/Read Audit/Write Audit" ],
2122 [ 0xaa, "Shell Default Search Mode/Indexed/Read Audit/Write Audit" ],
2123 [ 0xab, "Search On All Opens With No Path/Indexed/Read Audit/Write Audit" ],
2124 [ 0xac, "Do Not Search/Indexed/Read Audit/Write Audit" ],
2125 [ 0xad, "Indexed/Read Audit/Write Audit" ],
2126 [ 0xae, "Search On All Opens/Indexed/Read Audit/Write Audit" ],
2127 [ 0xaf, "Indexed/Read Audit/Write Audit" ],
2128 [ 0xb0, "Search On All Read Only Opens/Transactional/Read Audit/Write Audit" ],
2129 [ 0xb1, "Search On Read Only Opens With No Path/Transactional/Read Audit/Write Audit" ],
2130 [ 0xb2, "Shell Default Search Mode/Transactional/Read Audit/Write Audit" ],
2131 [ 0xb3, "Search On All Opens With No Path/Transactional/Read Audit/Write Audit" ],
2132 [ 0xb4, "Do Not Search/Transactional/Read Audit/Write Audit" ],
2133 [ 0xb5, "Transactional/Read Audit/Write Audit" ],
2134 [ 0xb6, "Search On All Opens/Transactional/Read Audit/Write Audit" ],
2135 [ 0xb7, "Transactional/Read Audit/Write Audit" ],
2136 [ 0xb8, "Search On All Read Only Opens/Indexed/Transactional/Read Audit/Write Audit" ],
2137 [ 0xb9, "Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" ],
2138 [ 0xba, "Shell Default Search Mode/Indexed/Transactional/Read Audit/Write Audit" ],
2139 [ 0xbb, "Search On All Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" ],
2140 [ 0xbc, "Do Not Search/Indexed/Transactional/Read Audit/Write Audit" ],
2141 [ 0xbd, "Indexed/Transactional/Read Audit/Write Audit" ],
2142 [ 0xbe, "Search On All Opens/Indexed/Transactional/Read Audit/Write Audit" ],
2143 [ 0xbf, "Indexed/Transactional/Read Audit/Write Audit" ],
2145 fileFlags = uint32("file_flags", "File Flags")
2146 FileHandle = bytes("file_handle", "File Handle", 6)
2147 FileLimbo = uint32("file_limbo", "File Limbo")
2148 FileListCount = uint32("file_list_count", "File List Count")
2149 FileLock = val_string8("file_lock", "File Lock", [
2150 [ 0x00, "Not Locked" ],
2151 [ 0xfe, "Locked by file lock" ],
2152 [ 0xff, "Unknown" ],
2154 FileLockCount = uint16("file_lock_count", "File Lock Count")
2155 FileMode = uint8("file_mode", "File Mode")
2156 FileName = nstring8("file_name", "Filename")
2157 FileName12 = fw_string("file_name_12", "Filename", 12)
2158 FileName14 = fw_string("file_name_14", "Filename", 14)
2159 FileNameLen = uint8("file_name_len", "Filename Length")
2160 FileOffset = uint32("file_offset", "File Offset")
2161 FilePath = nstring8("file_path", "File Path")
2162 FileSize = uint32("file_size", "File Size", BE)
2163 FileSystemID = uint8("file_system_id", "File System ID")
2164 FileTime = uint16("file_time", "File Time")
2166 FileWriteFlags = val_string8("file_write_flags", "File Write Flags", [
2167 [ 0x01, "Writing" ],
2168 [ 0x02, "Write aborted" ],
2170 FileWriteState = val_string8("file_write_state", "File Write State", [
2171 [ 0x00, "Not Writing" ],
2172 [ 0x01, "Write in Progress" ],
2173 [ 0x02, "Write Being Stopped" ],
2175 Filler = uint8("filler", "Filler")
2176 FinderAttr = bitfield16("finder_attr", "Finder Info Attributes", [
2177 bf_boolean16(0x0001, "finder_attr_desktop", "Object on Desktop"),
2178 bf_boolean16(0x2000, "finder_attr_invisible", "Object is Invisible"),
2179 bf_boolean16(0x4000, "finder_attr_bundle", "Object Has Bundle"),
2181 FixedBitMask = uint32("fixed_bit_mask", "Fixed Bit Mask")
2182 FixedBitsDefined = uint16("fixed_bits_defined", "Fixed Bits Defined")
2183 FlagBits = uint8("flag_bits", "Flag Bits")
2184 Flags = uint8("flags", "Flags")
2185 FlagsDef = uint16("flags_def", "Flags")
2186 FlushTime = uint32("flush_time", "Flush Time")
2187 FolderFlag = val_string8("folder_flag", "Folder Flag", [
2188 [ 0x00, "Not a Folder" ],
2191 ForkCount = uint8("fork_count", "Fork Count")
2192 ForkIndicator = val_string8("fork_indicator", "Fork Indicator", [
2193 [ 0x00, "Data Fork" ],
2194 [ 0x01, "Resource Fork" ],
2196 ForceFlag = val_string8("force_flag", "Force Server Down Flag", [
2197 [ 0x00, "Down Server if No Files Are Open" ],
2198 [ 0xff, "Down Server Immediately, Auto-Close Open Files" ],
2200 ForgedDetachedRequests = uint16("forged_detached_requests", "Forged Detached Requests")
2201 FormType = uint16( "form_type", "Form Type" )
2202 FormTypeCnt = uint32("form_type_count", "Form Types Count")
2203 FoundSomeMem = uint32("found_some_mem", "Found Some Memory")
2204 FractionalSeconds = uint32("fractional_time", "Fractional Time in Seconds")
2205 FraggerHandle = uint32("fragger_handle", "Fragment Handle")
2206 FraggerHandle.Display('BASE_HEX')
2207 FragmentWriteOccurred = uint16("fragment_write_occurred", "Fragment Write Occurred")
2208 FragSize = uint32("frag_size", "Fragment Size")
2209 FreeableLimboSectors = uint32("freeable_limbo_sectors", "Freeable Limbo Sectors")
2210 FreeBlocks = uint32("free_blocks", "Free Blocks")
2211 FreedClusters = uint32("freed_clusters", "Freed Clusters")
2212 FreeDirectoryEntries = uint16("free_directory_entries", "Free Directory Entries")
2213 FSEngineFlag = boolean8("fs_engine_flag", "FS Engine Flag")
2214 FullName = fw_string("full_name", "Full Name", 39)
2216 GetSetFlag = val_string8("get_set_flag", "Get Set Flag", [
2217 [ 0x00, "Get the default support module ID" ],
2218 [ 0x01, "Set the default support module ID" ],
2220 GUID = bytes("guid", "GUID", 16)
2221 GUID.Display("BASE_HEX")
2223 HandleFlag = val_string8("handle_flag", "Handle Flag", [
2224 [ 0x00, "Short Directory Handle" ],
2225 [ 0x01, "Directory Base" ],
2226 [ 0xFF, "No Handle Present" ],
2228 HandleInfoLevel = val_string8("handle_info_level", "Handle Info Level", [
2229 [ 0x00, "Get Limited Information from a File Handle" ],
2230 [ 0x01, "Get Limited Information from a File Handle Using a Name Space" ],
2231 [ 0x02, "Get Information from a File Handle" ],
2232 [ 0x03, "Get Information from a Directory Handle" ],
2233 [ 0x04, "Get Complete Information from a Directory Handle" ],
2234 [ 0x05, "Get Complete Information from a File Handle" ],
2236 HeldBytesRead = bytes("held_bytes_read", "Held Bytes Read", 6)
2237 HeldBytesWritten = bytes("held_bytes_write", "Held Bytes Written", 6)
2238 HeldConnectTimeInMinutes = uint32("held_conn_time", "Held Connect Time in Minutes")
2239 HeldRequests = uint32("user_info_held_req", "Held Requests")
2240 HoldAmount = uint32("hold_amount", "Hold Amount")
2241 HoldCancelAmount = uint32("hold_cancel_amount", "Hold Cancel Amount")
2242 HolderID = uint32("holder_id", "Holder ID")
2243 HolderID.Display("BASE_HEX")
2244 HoldTime = uint32("hold_time", "Hold Time")
2245 HopsToNet = uint16("hops_to_net", "Hop Count")
2246 HorizLocation = uint16("horiz_location", "Horizontal Location")
2247 HostAddress = bytes("host_address", "Host Address", 6)
2248 HotFixBlocksAvailable = uint16("hot_fix_blocks_available", "Hot Fix Blocks Available")
2249 HotFixDisabled = val_string8("hot_fix_disabled", "Hot Fix Disabled", [
2250 [ 0x00, "Enabled" ],
2251 [ 0x01, "Disabled" ],
2253 HotFixTableSize = uint16("hot_fix_table_size", "Hot Fix Table Size")
2254 HotFixTableStart = uint32("hot_fix_table_start", "Hot Fix Table Start")
2255 Hour = uint8("s_hour", "Hour")
2256 HugeBitMask = uint32("huge_bit_mask", "Huge Bit Mask")
2257 HugeBitsDefined = uint16("huge_bits_defined", "Huge Bits Defined")
2258 HugeData = nstring8("huge_data", "Huge Data")
2259 HugeDataUsed = uint32("huge_data_used", "Huge Data Used")
2260 HugeStateInfo = bytes("huge_state_info", "Huge State Info", 16)
2262 IdentificationNumber = uint32("identification_number", "Identification Number")
2263 IgnoredRxPkts = uint32("ignored_rx_pkts", "Ignored Receive Packets")
2264 IncomingPacketDiscardedNoDGroup = uint16("incoming_packet_discarded_no_dgroup", "Incoming Packet Discarded No DGroup")
2265 IndexNumber = uint8("index_number", "Index Number")
2266 InfoCount = uint16("info_count", "Info Count")
2267 InfoFlags = bitfield32("info_flags", "Info Flags", [
2268 bf_boolean32(0x10000000, "info_flags_security", "Return Object Security"),
2269 bf_boolean32(0x20000000, "info_flags_flags", "Return Object Flags"),
2270 bf_boolean32(0x40000000, "info_flags_type", "Return Object Type"),
2271 bf_boolean32(0x80000000, "info_flags_name", "Return Object Name"),
2273 InfoLevelNumber = val_string8("info_level_num", "Information Level Number", [
2274 [ 0x01, "Volume Information Definition" ],
2275 [ 0x02, "Volume Information 2 Definition" ],
2277 InfoMask = bitfield32("info_mask", "Information Mask", [
2278 bf_boolean32(0x00000001, "info_flags_dos_time", "DOS Time"),
2279 bf_boolean32(0x00000002, "info_flags_ref_count", "Reference Count"),
2280 bf_boolean32(0x00000004, "info_flags_dos_attr", "DOS Attributes"),
2281 bf_boolean32(0x00000008, "info_flags_ids", "ID's"),
2282 bf_boolean32(0x00000010, "info_flags_ds_sizes", "Data Stream Sizes"),
2283 bf_boolean32(0x00000020, "info_flags_ns_attr", "Name Space Attributes"),
2284 bf_boolean32(0x00000040, "info_flags_ea_present", "EA Present Flag"),
2285 bf_boolean32(0x00000080, "info_flags_all_attr", "All Attributes"),
2286 bf_boolean32(0x00000100, "info_flags_all_dirbase_num", "All Directory Base Numbers"),
2287 bf_boolean32(0x00000200, "info_flags_max_access_mask", "Maximum Access Mask"),
2288 bf_boolean32(0x00000400, "info_flags_flush_time", "Flush Time"),
2289 bf_boolean32(0x00000800, "info_flags_prnt_base_id", "Parent Base ID"),
2290 bf_boolean32(0x00001000, "info_flags_mac_finder", "Mac Finder Information"),
2291 bf_boolean32(0x00002000, "info_flags_sibling_cnt", "Sibling Count"),
2292 bf_boolean32(0x00004000, "info_flags_effect_rights", "Effective Rights"),
2293 bf_boolean32(0x00008000, "info_flags_mac_time", "Mac Time"),
2294 bf_boolean32(0x20000000, "info_mask_dosname", "DOS Name"),
2295 bf_boolean32(0x40000000, "info_mask_c_name_space", "Creator Name Space & Name"),
2296 bf_boolean32(0x80000000, "info_mask_name", "Name"),
2298 InheritedRightsMask = bitfield16("inherited_rights_mask", "Inherited Rights Mask", [
2299 bf_boolean16(0x0001, "inh_rights_read", "Read Rights"),
2300 bf_boolean16(0x0002, "inh_rights_write", "Write Rights"),
2301 bf_boolean16(0x0004, "inh_rights_open", "Open Rights"),
2302 bf_boolean16(0x0008, "inh_rights_create", "Create Rights"),
2303 bf_boolean16(0x0010, "inh_rights_delete", "Delete Rights"),
2304 bf_boolean16(0x0020, "inh_rights_parent", "Change Access"),
2305 bf_boolean16(0x0040, "inh_rights_search", "See Files Flag"),
2306 bf_boolean16(0x0080, "inh_rights_modify", "Modify Rights"),
2307 bf_boolean16(0x0100, "inh_rights_supervisor", "Supervisor"),
2309 InheritanceRevokeMask = bitfield16("inheritance_revoke_mask", "Revoke Rights Mask", [
2310 bf_boolean16(0x0001, "inh_revoke_read", "Read Rights"),
2311 bf_boolean16(0x0002, "inh_revoke_write", "Write Rights"),
2312 bf_boolean16(0x0004, "inh_revoke_open", "Open Rights"),
2313 bf_boolean16(0x0008, "inh_revoke_create", "Create Rights"),
2314 bf_boolean16(0x0010, "inh_revoke_delete", "Delete Rights"),
2315 bf_boolean16(0x0020, "inh_revoke_parent", "Change Access"),
2316 bf_boolean16(0x0040, "inh_revoke_search", "See Files Flag"),
2317 bf_boolean16(0x0080, "inh_revoke_modify", "Modify Rights"),
2318 bf_boolean16(0x0100, "inh_revoke_supervisor", "Supervisor"),
2320 InitialSemaphoreValue = uint8("initial_semaphore_value", "Initial Semaphore Value")
2321 InspectSize = uint32("inspect_size", "Inspect Size")
2322 InternetBridgeVersion = uint8("internet_bridge_version", "Internet Bridge Version")
2323 InterruptNumbersUsed = uint32("interrupt_numbers_used", "Interrupt Numbers Used")
2324 InUse = uint32("in_use", "Bytes in Use")
2325 IOAddressesUsed = bytes("io_addresses_used", "IO Addresses Used", 8)
2326 IOErrorCount = uint16("io_error_count", "IO Error Count")
2327 IOEngineFlag = boolean8("io_engine_flag", "IO Engine Flag")
2328 IPXNotMyNetwork = uint16("ipx_not_my_network", "IPX Not My Network")
2329 ItemsChanged = uint32("items_changed", "Items Changed")
2330 ItemsChecked = uint32("items_checked", "Items Checked")
2331 ItemsCount = uint32("items_count", "Items Count")
2332 itemsInList = uint32("items_in_list", "Items in List")
2333 ItemsInPacket = uint32("items_in_packet", "Items in Packet")
2335 JobControlFlags = bitfield8("job_control_flags", "Job Control Flags", [
2336 bf_boolean8(0x08, "job_control_job_recovery", "Job Recovery"),
2337 bf_boolean8(0x10, "job_control_reservice", "ReService Job"),
2338 bf_boolean8(0x20, "job_control_file_open", "File Open"),
2339 bf_boolean8(0x40, "job_control_user_hold", "User Hold"),
2340 bf_boolean8(0x80, "job_control_operator_hold", "Operator Hold"),
2343 JobControlFlagsWord = bitfield16("job_control_flags_word", "Job Control Flags", [
2344 bf_boolean16(0x0008, "job_control1_job_recovery", "Job Recovery"),
2345 bf_boolean16(0x0010, "job_control1_reservice", "ReService Job"),
2346 bf_boolean16(0x0020, "job_control1_file_open", "File Open"),
2347 bf_boolean16(0x0040, "job_control1_user_hold", "User Hold"),
2348 bf_boolean16(0x0080, "job_control1_operator_hold", "Operator Hold"),
2351 JobCount = uint32("job_count", "Job Count")
2352 JobFileHandle = bytes("job_file_handle", "Job File Handle", 6)
2353 JobFileHandleLong = uint32("job_file_handle_long", "Job File Handle")
2354 JobFileHandleLong.Display("BASE_HEX")
2355 JobFileName = fw_string("job_file_name", "Job File Name", 14)
2356 JobPosition = uint8("job_position", "Job Position")
2357 JobPositionWord = uint16("job_position_word", "Job Position")
2358 JobNumber = uint16("job_number", "Job Number", BE )
2359 JobNumberLong = uint32("job_number_long", "Job Number", BE )
2360 JobNumberList = uint32("job_number_list", "Job Number List")
2361 JobType = uint16("job_type", "Job Type", BE )
2363 LANCustomVariablesCount = uint32("lan_cust_var_count", "LAN Custom Variables Count")
2364 LANdriverBoardInstance = uint16("lan_drv_bd_inst", "LAN Driver Board Instance")
2365 LANdriverBoardNumber = uint16("lan_drv_bd_num", "LAN Driver Board Number")
2366 LANdriverCardID = uint16("lan_drv_card_id", "LAN Driver Card ID")
2367 LANdriverCardName = fw_string("lan_drv_card_name", "LAN Driver Card Name", 28)
2368 LANdriverCFG_MajorVersion = uint8("lan_dvr_cfg_major_vrs", "LAN Driver Config - Major Version")
2369 LANdriverCFG_MinorVersion = uint8("lan_dvr_cfg_minor_vrs", "LAN Driver Config - Minor Version")
2370 LANdriverDMAUsage1 = uint8("lan_drv_dma_usage1", "Primary DMA Channel")
2371 LANdriverDMAUsage2 = uint8("lan_drv_dma_usage2", "Secondary DMA Channel")
2372 LANdriverFlags = uint16("lan_drv_flags", "LAN Driver Flags")
2373 LANdriverFlags.Display("BASE_HEX")
2374 LANdriverInterrupt1 = uint8("lan_drv_interrupt1", "Primary Interrupt Vector")
2375 LANdriverInterrupt2 = uint8("lan_drv_interrupt2", "Secondary Interrupt Vector")
2376 LANdriverIOPortsAndRanges1 = uint16("lan_drv_io_ports_and_ranges_1", "Primary Base I/O Port")
2377 LANdriverIOPortsAndRanges2 = uint16("lan_drv_io_ports_and_ranges_2", "Number of I/O Ports")
2378 LANdriverIOPortsAndRanges3 = uint16("lan_drv_io_ports_and_ranges_3", "Secondary Base I/O Port")
2379 LANdriverIOPortsAndRanges4 = uint16("lan_drv_io_ports_and_ranges_4", "Number of I/O Ports")
2380 LANdriverIOReserved = bytes("lan_drv_io_reserved", "LAN Driver IO Reserved", 14)
2381 LANdriverLineSpeed = uint16("lan_drv_line_speed", "LAN Driver Line Speed")
2382 LANdriverLink = uint32("lan_drv_link", "LAN Driver Link")
2383 LANdriverLogicalName = bytes("lan_drv_log_name", "LAN Driver Logical Name", 18)
2384 LANdriverMajorVersion = uint8("lan_drv_major_ver", "LAN Driver Major Version")
2385 LANdriverMaximumSize = uint32("lan_drv_max_size", "LAN Driver Maximum Size")
2386 LANdriverMaxRecvSize = uint32("lan_drv_max_rcv_size", "LAN Driver Maximum Receive Size")
2387 LANdriverMediaID = uint16("lan_drv_media_id", "LAN Driver Media ID")
2388 LANdriverMediaType = fw_string("lan_drv_media_type", "LAN Driver Media Type", 40)
2389 LANdriverMemoryDecode0 = uint32("lan_drv_mem_decode_0", "LAN Driver Memory Decode 0")
2390 LANdriverMemoryDecode1 = uint32("lan_drv_mem_decode_1", "LAN Driver Memory Decode 1")
2391 LANdriverMemoryLength0 = uint16("lan_drv_mem_length_0", "LAN Driver Memory Length 0")
2392 LANdriverMemoryLength1 = uint16("lan_drv_mem_length_1", "LAN Driver Memory Length 1")
2393 LANdriverMinorVersion = uint8("lan_drv_minor_ver", "LAN Driver Minor Version")
2394 LANdriverModeFlags = val_string8("lan_dvr_mode_flags", "LAN Driver Mode Flags", [
2395 [0x80, "Canonical Address" ],
2396 [0x81, "Canonical Address" ],
2397 [0x82, "Canonical Address" ],
2398 [0x83, "Canonical Address" ],
2399 [0x84, "Canonical Address" ],
2400 [0x85, "Canonical Address" ],
2401 [0x86, "Canonical Address" ],
2402 [0x87, "Canonical Address" ],
2403 [0x88, "Canonical Address" ],
2404 [0x89, "Canonical Address" ],
2405 [0x8a, "Canonical Address" ],
2406 [0x8b, "Canonical Address" ],
2407 [0x8c, "Canonical Address" ],
2408 [0x8d, "Canonical Address" ],
2409 [0x8e, "Canonical Address" ],
2410 [0x8f, "Canonical Address" ],
2411 [0x90, "Canonical Address" ],
2412 [0x91, "Canonical Address" ],
2413 [0x92, "Canonical Address" ],
2414 [0x93, "Canonical Address" ],
2415 [0x94, "Canonical Address" ],
2416 [0x95, "Canonical Address" ],
2417 [0x96, "Canonical Address" ],
2418 [0x97, "Canonical Address" ],
2419 [0x98, "Canonical Address" ],
2420 [0x99, "Canonical Address" ],
2421 [0x9a, "Canonical Address" ],
2422 [0x9b, "Canonical Address" ],
2423 [0x9c, "Canonical Address" ],
2424 [0x9d, "Canonical Address" ],
2425 [0x9e, "Canonical Address" ],
2426 [0x9f, "Canonical Address" ],
2427 [0xa0, "Canonical Address" ],
2428 [0xa1, "Canonical Address" ],
2429 [0xa2, "Canonical Address" ],
2430 [0xa3, "Canonical Address" ],
2431 [0xa4, "Canonical Address" ],
2432 [0xa5, "Canonical Address" ],
2433 [0xa6, "Canonical Address" ],
2434 [0xa7, "Canonical Address" ],
2435 [0xa8, "Canonical Address" ],
2436 [0xa9, "Canonical Address" ],
2437 [0xaa, "Canonical Address" ],
2438 [0xab, "Canonical Address" ],
2439 [0xac, "Canonical Address" ],
2440 [0xad, "Canonical Address" ],
2441 [0xae, "Canonical Address" ],
2442 [0xaf, "Canonical Address" ],
2443 [0xb0, "Canonical Address" ],
2444 [0xb1, "Canonical Address" ],
2445 [0xb2, "Canonical Address" ],
2446 [0xb3, "Canonical Address" ],
2447 [0xb4, "Canonical Address" ],
2448 [0xb5, "Canonical Address" ],
2449 [0xb6, "Canonical Address" ],
2450 [0xb7, "Canonical Address" ],
2451 [0xb8, "Canonical Address" ],
2452 [0xb9, "Canonical Address" ],
2453 [0xba, "Canonical Address" ],
2454 [0xbb, "Canonical Address" ],
2455 [0xbc, "Canonical Address" ],
2456 [0xbd, "Canonical Address" ],
2457 [0xbe, "Canonical Address" ],
2458 [0xbf, "Canonical Address" ],
2459 [0xc0, "Non-Canonical Address" ],
2460 [0xc1, "Non-Canonical Address" ],
2461 [0xc2, "Non-Canonical Address" ],
2462 [0xc3, "Non-Canonical Address" ],
2463 [0xc4, "Non-Canonical Address" ],
2464 [0xc5, "Non-Canonical Address" ],
2465 [0xc6, "Non-Canonical Address" ],
2466 [0xc7, "Non-Canonical Address" ],
2467 [0xc8, "Non-Canonical Address" ],
2468 [0xc9, "Non-Canonical Address" ],
2469 [0xca, "Non-Canonical Address" ],
2470 [0xcb, "Non-Canonical Address" ],
2471 [0xcc, "Non-Canonical Address" ],
2472 [0xcd, "Non-Canonical Address" ],
2473 [0xce, "Non-Canonical Address" ],
2474 [0xcf, "Non-Canonical Address" ],
2475 [0xd0, "Non-Canonical Address" ],
2476 [0xd1, "Non-Canonical Address" ],
2477 [0xd2, "Non-Canonical Address" ],
2478 [0xd3, "Non-Canonical Address" ],
2479 [0xd4, "Non-Canonical Address" ],
2480 [0xd5, "Non-Canonical Address" ],
2481 [0xd6, "Non-Canonical Address" ],
2482 [0xd7, "Non-Canonical Address" ],
2483 [0xd8, "Non-Canonical Address" ],
2484 [0xd9, "Non-Canonical Address" ],
2485 [0xda, "Non-Canonical Address" ],
2486 [0xdb, "Non-Canonical Address" ],
2487 [0xdc, "Non-Canonical Address" ],
2488 [0xdd, "Non-Canonical Address" ],
2489 [0xde, "Non-Canonical Address" ],
2490 [0xdf, "Non-Canonical Address" ],
2491 [0xe0, "Non-Canonical Address" ],
2492 [0xe1, "Non-Canonical Address" ],
2493 [0xe2, "Non-Canonical Address" ],
2494 [0xe3, "Non-Canonical Address" ],
2495 [0xe4, "Non-Canonical Address" ],
2496 [0xe5, "Non-Canonical Address" ],
2497 [0xe6, "Non-Canonical Address" ],
2498 [0xe7, "Non-Canonical Address" ],
2499 [0xe8, "Non-Canonical Address" ],
2500 [0xe9, "Non-Canonical Address" ],
2501 [0xea, "Non-Canonical Address" ],
2502 [0xeb, "Non-Canonical Address" ],
2503 [0xec, "Non-Canonical Address" ],
2504 [0xed, "Non-Canonical Address" ],
2505 [0xee, "Non-Canonical Address" ],
2506 [0xef, "Non-Canonical Address" ],
2507 [0xf0, "Non-Canonical Address" ],
2508 [0xf1, "Non-Canonical Address" ],
2509 [0xf2, "Non-Canonical Address" ],
2510 [0xf3, "Non-Canonical Address" ],
2511 [0xf4, "Non-Canonical Address" ],
2512 [0xf5, "Non-Canonical Address" ],
2513 [0xf6, "Non-Canonical Address" ],
2514 [0xf7, "Non-Canonical Address" ],
2515 [0xf8, "Non-Canonical Address" ],
2516 [0xf9, "Non-Canonical Address" ],
2517 [0xfa, "Non-Canonical Address" ],
2518 [0xfb, "Non-Canonical Address" ],
2519 [0xfc, "Non-Canonical Address" ],
2520 [0xfd, "Non-Canonical Address" ],
2521 [0xfe, "Non-Canonical Address" ],
2522 [0xff, "Non-Canonical Address" ],
2524 LANDriverNumber = uint8("lan_driver_number", "LAN Driver Number")
2525 LANdriverNodeAddress = bytes("lan_dvr_node_addr", "LAN Driver Node Address", 6)
2526 LANdriverRecvSize = uint32("lan_drv_rcv_size", "LAN Driver Receive Size")
2527 LANdriverReserved = uint16("lan_drv_reserved", "LAN Driver Reserved")
2528 LANdriverSendRetries = uint16("lan_drv_snd_retries", "LAN Driver Send Retries")
2529 LANdriverSharingFlags = uint16("lan_drv_share", "LAN Driver Sharing Flags")
2530 LANdriverShortName = fw_string("lan_drv_short_name", "LAN Driver Short Name", 40)
2531 LANdriverSlot = uint16("lan_drv_slot", "LAN Driver Slot")
2532 LANdriverSrcRouting = uint32("lan_drv_src_route", "LAN Driver Source Routing")
2533 LANdriverTransportTime = uint16("lan_drv_trans_time", "LAN Driver Transport Time")
2534 LastAccessedDate = uint16("last_access_date", "Last Accessed Date")
2535 LastAccessedDate.NWDate()
2536 LastAccessedTime = uint16("last_access_time", "Last Accessed Time")
2537 LastAccessedTime.NWTime()
2538 LastGarbCollect = uint32("last_garbage_collect", "Last Garbage Collection")
2539 LastInstance = uint32("last_instance", "Last Instance")
2540 LastRecordSeen = uint16("last_record_seen", "Last Record Seen")
2541 LastSearchIndex = uint16("last_search_index", "Search Index")
2542 LastSeen = uint32("last_seen", "Last Seen")
2543 LastSequenceNumber = uint16("last_sequence_number", "Sequence Number")
2544 Level = uint8("level", "Level")
2545 LFSCounters = uint32("lfs_counters", "LFS Counters")
2546 LimboDataStreamsCount = uint32("limbo_data_streams_count", "Limbo Data Streams Count")
2547 limbCount = uint32("limb_count", "Limb Count")
2548 LimboUsed = uint32("limbo_used", "Limbo Used")
2549 LoadedNameSpaces = uint8("loaded_name_spaces", "Loaded Name Spaces")
2550 LocalConnectionID = uint32("local_connection_id", "Local Connection ID")
2551 LocalConnectionID.Display("BASE_HEX")
2552 LocalMaxPacketSize = uint32("local_max_packet_size", "Local Max Packet Size")
2553 LocalMaxSendSize = uint32("local_max_send_size", "Local Max Send Size")
2554 LocalMaxRecvSize = uint32("local_max_recv_size", "Local Max Recv Size")
2555 LocalLoginInfoCcode = uint8("local_login_info_ccode", "Local Login Info C Code")
2556 LocalTargetSocket = uint32("local_target_socket", "Local Target Socket")
2557 LocalTargetSocket.Display("BASE_HEX")
2558 LockAreaLen = uint32("lock_area_len", "Lock Area Length")
2559 LockAreasStartOffset = uint32("lock_areas_start_offset", "Lock Areas Start Offset")
2560 LockTimeout = uint16("lock_timeout", "Lock Timeout")
2561 Locked = val_string8("locked", "Locked Flag", [
2562 [ 0x00, "Not Locked Exclusively" ],
2563 [ 0x01, "Locked Exclusively" ],
2565 LockFlag = val_string8("lock_flag", "Lock Flag", [
2566 [ 0x00, "Not Locked, Log for Future Exclusive Lock" ],
2567 [ 0x01, "Exclusive Lock (Read/Write)" ],
2568 [ 0x02, "Log for Future Shared Lock"],
2569 [ 0x03, "Shareable Lock (Read-Only)" ],
2570 [ 0xfe, "Locked by a File Lock" ],
2571 [ 0xff, "Locked by Begin Share File Set" ],
2573 LockName = nstring8("lock_name", "Lock Name")
2574 LockStatus = val_string8("lock_status", "Lock Status", [
2575 [ 0x00, "Locked Exclusive" ],
2576 [ 0x01, "Locked Shareable" ],
2578 [ 0x06, "Lock is Held by TTS"],
2580 LockType = val_string8("lock_type", "Lock Type", [
2582 [ 0x01, "Open Shareable" ],
2584 [ 0x03, "Open Normal" ],
2585 [ 0x06, "TTS Holding Lock" ],
2586 [ 0x07, "Transaction Flag Set on This File" ],
2588 LogFileFlagHigh = bitfield8("log_file_flag_high", "Log File Flag (byte 2)", [
2589 bf_boolean8(0x80, "log_flag_call_back", "Call Back Requested" ),
2591 LogFileFlagLow = bitfield8("log_file_flag_low", "Log File Flag", [
2592 bf_boolean8(0x01, "log_flag_lock_file", "Lock File Immediately" ),
2594 LoggedObjectID = uint32("logged_object_id", "Logged in Object ID")
2595 LoggedObjectID.Display("BASE_HEX")
2596 LoggedCount = uint16("logged_count", "Logged Count")
2597 LogicalConnectionNumber = uint16("logical_connection_number", "Logical Connection Number", BE)
2598 LogicalDriveCount = uint8("logical_drive_count", "Logical Drive Count")
2599 LogicalDriveNumber = uint8("logical_drive_number", "Logical Drive Number")
2600 LogicalLockThreshold = uint8("logical_lock_threshold", "LogicalLockThreshold")
2601 LogicalRecordName = nstring8("logical_record_name", "Logical Record Name")
2602 LoginKey = bytes("login_key", "Login Key", 8)
2603 LogLockType = uint8("log_lock_type", "Log Lock Type")
2604 LogTtlRxPkts = uint32("log_ttl_rx_pkts", "Total Received Packets")
2605 LogTtlTxPkts = uint32("log_ttl_tx_pkts", "Total Transmitted Packets")
2606 LongName = fw_string("long_name", "Long Name", 32)
2607 LRUBlockWasDirty = uint16("lru_block_was_dirty", "LRU Block Was Dirty")
2609 MacAttr = bitfield16("mac_attr", "Attributes", [
2610 bf_boolean16(0x0001, "mac_attr_smode1", "Search Mode"),
2611 bf_boolean16(0x0002, "mac_attr_smode2", "Search Mode"),
2612 bf_boolean16(0x0004, "mac_attr_smode3", "Search Mode"),
2613 bf_boolean16(0x0010, "mac_attr_transaction", "Transaction"),
2614 bf_boolean16(0x0020, "mac_attr_index", "Index"),
2615 bf_boolean16(0x0040, "mac_attr_r_audit", "Read Audit"),
2616 bf_boolean16(0x0080, "mac_attr_w_audit", "Write Audit"),
2617 bf_boolean16(0x0100, "mac_attr_r_only", "Read Only"),
2618 bf_boolean16(0x0200, "mac_attr_hidden", "Hidden"),
2619 bf_boolean16(0x0400, "mac_attr_system", "System"),
2620 bf_boolean16(0x0800, "mac_attr_execute_only", "Execute Only"),
2621 bf_boolean16(0x1000, "mac_attr_subdirectory", "Subdirectory"),
2622 bf_boolean16(0x2000, "mac_attr_archive", "Archive"),
2623 bf_boolean16(0x8000, "mac_attr_share", "Shareable File"),
2625 MACBackupDate = uint16("mac_backup_date", "Mac Backup Date")
2626 MACBackupDate.NWDate()
2627 MACBackupTime = uint16("mac_backup_time", "Mac Backup Time")
2628 MACBackupTime.NWTime()
2629 MacBaseDirectoryID = uint32("mac_base_directory_id", "Mac Base Directory ID", BE)
2630 MacBaseDirectoryID.Display("BASE_HEX")
2631 MACCreateDate = uint16("mac_create_date", "Mac Create Date")
2632 MACCreateDate.NWDate()
2633 MACCreateTime = uint16("mac_create_time", "Mac Create Time")
2634 MACCreateTime.NWTime()
2635 MacDestinationBaseID = uint32("mac_destination_base_id", "Mac Destination Base ID")
2636 MacDestinationBaseID.Display("BASE_HEX")
2637 MacFinderInfo = bytes("mac_finder_info", "Mac Finder Information", 32)
2638 MacLastSeenID = uint32("mac_last_seen_id", "Mac Last Seen ID")
2639 MacLastSeenID.Display("BASE_HEX")
2640 MacSourceBaseID = uint32("mac_source_base_id", "Mac Source Base ID")
2641 MacSourceBaseID.Display("BASE_HEX")
2642 MajorVersion = uint32("major_version", "Major Version")
2643 MaxBytes = uint16("max_bytes", "Maximum Number of Bytes")
2644 MaxDataStreams = uint32("max_data_streams", "Maximum Data Streams")
2645 MaxDirDepth = uint32("max_dir_depth", "Maximum Directory Depth")
2646 MaximumSpace = uint16("max_space", "Maximum Space")
2647 MaxNumOfConn = uint32("max_num_of_conn", "Maximum Number of Connections")
2648 MaxNumOfLANS = uint32("max_num_of_lans", "Maximum Number Of LAN's")
2649 MaxNumOfMedias = uint32("max_num_of_medias", "Maximum Number Of Media's")
2650 MaxNumOfNmeSps = uint32("max_num_of_nme_sps", "Maximum Number Of Name Spaces")
2651 MaxNumOfSpoolPr = uint32("max_num_of_spool_pr", "Maximum Number Of Spool Printers")
2652 MaxNumOfStacks = uint32("max_num_of_stacks", "Maximum Number Of Stacks")
2653 MaxNumOfUsers = uint32("max_num_of_users", "Maximum Number Of Users")
2654 MaxNumOfVol = uint32("max_num_of_vol", "Maximum Number of Volumes")
2655 MaxSpace = uint32("maxspace", "Maximum Space")
2656 MaxUsedDynamicSpace = uint32("max_used_dynamic_space", "Max Used Dynamic Space")
2657 MediaList = uint32("media_list", "Media List")
2658 MediaListCount = uint32("media_list_count", "Media List Count")
2659 MediaName = nstring8("media_name", "Media Name")
2660 MediaNumber = uint32("media_number", "Media Number")
2661 MediaObjectType = val_string8("media_object_type", "Object Type", [
2662 [ 0x00, "Adapter" ],
2663 [ 0x01, "Changer" ],
2664 [ 0x02, "Removable Device" ],
2666 [ 0x04, "Removable Media" ],
2667 [ 0x05, "Partition" ],
2672 [ 0x0a, "Volume Segment" ],
2675 [ 0x0d, "Fixed Media" ],
2676 [ 0x0e, "Unknown" ],
2678 MemberName = nstring8("member_name", "Member Name")
2679 MemberType = val_string16("member_type", "Member Type", [
2680 [ 0x0000, "Unknown" ],
2682 [ 0x0002, "User group" ],
2683 [ 0x0003, "Print queue" ],
2684 [ 0x0004, "NetWare file server" ],
2685 [ 0x0005, "Job server" ],
2686 [ 0x0006, "Gateway" ],
2687 [ 0x0007, "Print server" ],
2688 [ 0x0008, "Archive queue" ],
2689 [ 0x0009, "Archive server" ],
2690 [ 0x000a, "Job queue" ],
2691 [ 0x000b, "Administration" ],
2692 [ 0x0021, "NAS SNA gateway" ],
2693 [ 0x0026, "Remote bridge server" ],
2694 [ 0x0027, "TCP/IP gateway" ],
2696 MessageLanguage = uint32("message_language", "NLM Language")
2697 MigratedFiles = uint32("migrated_files", "Migrated Files")
2698 MigratedSectors = uint32("migrated_sectors", "Migrated Sectors")
2699 MinorVersion = uint32("minor_version", "Minor Version")
2700 Minute = uint8("s_minute", "Minutes")
2701 MixedModePathFlag = uint8("mixed_mode_path_flag", "Mixed Mode Path Flag")
2702 ModifiedDate = uint16("modified_date", "Modified Date")
2703 ModifiedDate.NWDate()
2704 ModifiedTime = uint16("modified_time", "Modified Time")
2705 ModifiedTime.NWTime()
2706 ModifierID = uint32("modifier_id", "Modifier ID", BE)
2707 ModifierID.Display("BASE_HEX")
2708 ModifyDOSInfoMask = bitfield16("modify_dos_info_mask", "Modify DOS Info Mask", [
2709 bf_boolean16(0x0002, "modify_dos_read", "Attributes"),
2710 bf_boolean16(0x0004, "modify_dos_write", "Creation Date"),
2711 bf_boolean16(0x0008, "modify_dos_open", "Creation Time"),
2712 bf_boolean16(0x0010, "modify_dos_create", "Creator ID"),
2713 bf_boolean16(0x0020, "modify_dos_delete", "Archive Date"),
2714 bf_boolean16(0x0040, "modify_dos_parent", "Archive Time"),
2715 bf_boolean16(0x0080, "modify_dos_search", "Archiver ID"),
2716 bf_boolean16(0x0100, "modify_dos_mdate", "Modify Date"),
2717 bf_boolean16(0x0200, "modify_dos_mtime", "Modify Time"),
2718 bf_boolean16(0x0400, "modify_dos_mid", "Modifier ID"),
2719 bf_boolean16(0x0800, "modify_dos_laccess", "Last Access"),
2720 bf_boolean16(0x1000, "modify_dos_inheritance", "Inheritance"),
2721 bf_boolean16(0x2000, "modify_dos_max_space", "Maximum Space"),
2723 Month = val_string8("s_month", "Month", [
2732 [ 0x09, "September"],
2734 [ 0x0b, "November"],
2735 [ 0x0c, "December"],
2738 MoreFlag = val_string8("more_flag", "More Flag", [
2739 [ 0x00, "No More Segments/Entries Available" ],
2740 [ 0x01, "More Segments/Entries Available" ],
2741 [ 0xff, "More Segments/Entries Available" ],
2743 MoreProperties = val_string8("more_properties", "More Properties", [
2744 [ 0x00, "No More Properties Available" ],
2745 [ 0x01, "No More Properties Available" ],
2746 [ 0xff, "More Properties Available" ],
2749 Name = nstring8("name", "Name")
2750 Name12 = fw_string("name12", "Name", 12)
2751 NameLen = uint8("name_len", "Name Space Length")
2752 NameLength = uint8("name_length", "Name Length")
2753 NameList = uint32("name_list", "Name List")
2755 # XXX - should this value be used to interpret the characters in names,
2756 # search patterns, and the like?
2758 # We need to handle character sets better, e.g. translating strings
2759 # from whatever character set they are in the packet (DOS/Windows code
2760 # pages, ISO character sets, UNIX EUC character sets, UTF-8, UCS-2/Unicode,
2761 # Mac character sets, etc.) into UCS-4 or UTF-8 and storing them as such
2762 # in the protocol tree, and displaying them as best we can.
2764 NameSpace = val_string8("name_space", "Name Space", [
2769 [ 0x04, "OS/2, Long" ],
2771 NamesSpaceInfoMask = bitfield16("ns_info_mask", "Names Space Info Mask", [
2772 bf_boolean16(0x0001, "ns_info_mask_modify", "Modify Name"),
2773 bf_boolean16(0x0002, "ns_info_mask_fatt", "File Attributes"),
2774 bf_boolean16(0x0004, "ns_info_mask_cdate", "Creation Date"),
2775 bf_boolean16(0x0008, "ns_info_mask_ctime", "Creation Time"),
2776 bf_boolean16(0x0010, "ns_info_mask_owner", "Owner ID"),
2777 bf_boolean16(0x0020, "ns_info_mask_adate", "Archive Date"),
2778 bf_boolean16(0x0040, "ns_info_mask_atime", "Archive Time"),
2779 bf_boolean16(0x0080, "ns_info_mask_aid", "Archiver ID"),
2780 bf_boolean16(0x0100, "ns_info_mask_udate", "Update Date"),
2781 bf_boolean16(0x0200, "ns_info_mask_utime", "Update Time"),
2782 bf_boolean16(0x0400, "ns_info_mask_uid", "Update ID"),
2783 bf_boolean16(0x0800, "ns_info_mask_acc_date", "Access Date"),
2784 bf_boolean16(0x1000, "ns_info_mask_max_acc_mask", "Inheritance"),
2785 bf_boolean16(0x2000, "ns_info_mask_max_space", "Maximum Space"),
2787 NameSpaceName = nstring8("name_space_name", "Name Space Name")
2788 nameType = uint32("name_type", "nameType")
2789 NCPdataSize = uint32("ncp_data_size", "NCP Data Size")
2790 NCPextensionMajorVersion = uint8("ncp_extension_major_version", "NCP Extension Major Version")
2791 NCPextensionMinorVersion = uint8("ncp_extension_minor_version", "NCP Extension Minor Version")
2792 NCPextensionName = nstring8("ncp_extension_name", "NCP Extension Name")
2793 NCPextensionNumber = uint32("ncp_extension_number", "NCP Extension Number")
2794 NCPextensionNumber.Display("BASE_HEX")
2795 NCPExtensionNumbers = uint32("ncp_extension_numbers", "NCP Extension Numbers")
2796 NCPextensionRevisionNumber = uint8("ncp_extension_revision_number", "NCP Extension Revision Number")
2797 NCPPeakStaInUse = uint32("ncp_peak_sta_in_use", "Peak Number of Connections since Server was brought up")
2798 NCPStaInUseCnt = uint32("ncp_sta_in_use", "Number of Workstations Connected to Server")
2799 NDSRequestFlags = bitfield16("nds_request_flags", "NDS Request Flags", [
2800 bf_boolean16(0x0001, "nds_request_flags_output", "Output Fields"),
2801 bf_boolean16(0x0002, "nds_request_flags_no_such_entry", "No Such Entry"),
2802 bf_boolean16(0x0004, "nds_request_flags_local_entry", "Local Entry"),
2803 bf_boolean16(0x0008, "nds_request_flags_type_ref", "Type Referral"),
2804 bf_boolean16(0x0010, "nds_request_flags_alias_ref", "Alias Referral"),
2805 bf_boolean16(0x0020, "nds_request_flags_req_cnt", "Request Count"),
2806 bf_boolean16(0x0040, "nds_request_flags_req_data_size", "Request Data Size"),
2807 bf_boolean16(0x0080, "nds_request_flags_reply_data_size", "Reply Data Size"),
2808 bf_boolean16(0x0100, "nds_request_flags_trans_ref", "Transport Referral"),
2809 bf_boolean16(0x0200, "nds_request_flags_trans_ref2", "Transport Referral"),
2810 bf_boolean16(0x0400, "nds_request_flags_up_ref", "Up Referral"),
2811 bf_boolean16(0x0800, "nds_request_flags_dn_ref", "Down Referral"),
2813 NDSStatus = uint32("nds_status", "NDS Status")
2814 NetBIOSBroadcastWasPropogated = uint32("netbios_broadcast_was_propogated", "NetBIOS Broadcast Was Propogated")
2815 NetIDNumber = uint32("net_id_number", "Net ID Number")
2816 NetIDNumber.Display("BASE_HEX")
2817 NetAddress = nbytes32("address", "Address")
2818 NetStatus = uint16("net_status", "Network Status")
2819 NetWareAccessHandle = bytes("netware_access_handle", "NetWare Access Handle", 6)
2820 NetworkAddress = uint32("network_address", "Network Address")
2821 NetworkAddress.Display("BASE_HEX")
2822 NetworkNodeAddress = bytes("network_node_address", "Network Node Address", 6)
2823 NetworkNumber = uint32("network_number", "Network Number")
2824 NetworkNumber.Display("BASE_HEX")
2826 # XXX - this should have the "ipx_socket_vals" value_string table
2827 # from "packet-ipx.c".
2829 NetworkSocket = uint16("network_socket", "Network Socket")
2830 NetworkSocket.Display("BASE_HEX")
2831 NewAccessRights = bitfield16("new_access_rights_mask", "New Access Rights", [
2832 bf_boolean16(0x0001, "new_access_rights_read", "Read"),
2833 bf_boolean16(0x0002, "new_access_rights_write", "Write"),
2834 bf_boolean16(0x0004, "new_access_rights_open", "Open"),
2835 bf_boolean16(0x0008, "new_access_rights_create", "Create"),
2836 bf_boolean16(0x0010, "new_access_rights_delete", "Delete"),
2837 bf_boolean16(0x0020, "new_access_rights_parental", "Parental"),
2838 bf_boolean16(0x0040, "new_access_rights_search", "Search"),
2839 bf_boolean16(0x0080, "new_access_rights_modify", "Modify"),
2840 bf_boolean16(0x0100, "new_access_rights_supervisor", "Supervisor"),
2842 NewDirectoryID = uint32("new_directory_id", "New Directory ID", BE)
2843 NewDirectoryID.Display("BASE_HEX")
2844 NewEAHandle = uint32("new_ea_handle", "New EA Handle")
2845 NewEAHandle.Display("BASE_HEX")
2846 NewFileName = fw_string("new_file_name", "New File Name", 14)
2847 NewFileNameLen = nstring8("new_file_name_len", "New File Name")
2848 NewFileSize = uint32("new_file_size", "New File Size")
2849 NewPassword = nstring8("new_password", "New Password")
2850 NewPath = nstring8("new_path", "New Path")
2851 NewPosition = uint8("new_position", "New Position")
2852 NewObjectName = nstring8("new_object_name", "New Object Name")
2853 NextCntBlock = uint32("next_cnt_block", "Next Count Block")
2854 NextHugeStateInfo = bytes("next_huge_state_info", "Next Huge State Info", 16)
2855 nextLimbScanNum = uint32("next_limb_scan_num", "Next Limb Scan Number")
2856 NextObjectID = uint32("next_object_id", "Next Object ID", BE)
2857 NextObjectID.Display("BASE_HEX")
2858 NextRecord = uint32("next_record", "Next Record")
2859 NextRequestRecord = uint16("next_request_record", "Next Request Record")
2860 NextSearchIndex = uint16("next_search_index", "Next Search Index")
2861 NextSearchNumber = uint16("next_search_number", "Next Search Number")
2862 NextSearchNum = uint32("nxt_search_num", "Next Search Number")
2863 nextStartingNumber = uint32("next_starting_number", "Next Starting Number")
2864 NextTrusteeEntry = uint32("next_trustee_entry", "Next Trustee Entry")
2865 NextVolumeNumber = uint32("next_volume_number", "Next Volume Number")
2866 NLMBuffer = nstring8("nlm_buffer", "Buffer")
2867 NLMcount = uint32("nlm_count", "NLM Count")
2868 NLMFlags = bitfield8("nlm_flags", "Flags", [
2869 bf_boolean8(0x01, "nlm_flags_reentrant", "ReEntrant"),
2870 bf_boolean8(0x02, "nlm_flags_multiple", "Can Load Multiple Times"),
2871 bf_boolean8(0x04, "nlm_flags_synchronize", "Synchronize Start"),
2872 bf_boolean8(0x08, "nlm_flags_pseudo", "PseudoPreemption"),
2874 NLMLoadOptions = uint32("nlm_load_options", "NLM Load Options")
2875 NLMName = stringz("nlm_name_stringz", "NLM Name")
2876 NLMNumber = uint32("nlm_number", "NLM Number")
2877 NLMNumbers = uint32("nlm_numbers", "NLM Numbers")
2878 NLMsInList = uint32("nlms_in_list", "NLM's in List")
2879 NLMStartNumber = uint32("nlm_start_num", "NLM Start Number")
2880 NLMType = val_string8("nlm_type", "NLM Type", [
2881 [ 0x00, "Generic NLM (.NLM)" ],
2882 [ 0x01, "LAN Driver (.LAN)" ],
2883 [ 0x02, "Disk Driver (.DSK)" ],
2884 [ 0x03, "Name Space Support Module (.NAM)" ],
2885 [ 0x04, "Utility or Support Program (.NLM)" ],
2886 [ 0x05, "Mirrored Server Link (.MSL)" ],
2887 [ 0x06, "OS NLM (.NLM)" ],
2888 [ 0x07, "Paged High OS NLM (.NLM)" ],
2889 [ 0x08, "Host Adapter Module (.HAM)" ],
2890 [ 0x09, "Custom Device Module (.CDM)" ],
2891 [ 0x0a, "File System Engine (.NLM)" ],
2892 [ 0x0b, "Real Mode NLM (.NLM)" ],
2893 [ 0x0c, "Hidden NLM (.NLM)" ],
2894 [ 0x15, "NICI Support (.NLM)" ],
2895 [ 0x16, "NICI Support (.NLM)" ],
2896 [ 0x17, "Cryptography (.NLM)" ],
2897 [ 0x18, "Encryption (.NLM)" ],
2898 [ 0x19, "NICI Support (.NLM)" ],
2899 [ 0x1c, "NICI Support (.NLM)" ],
2901 nodeFlags = uint32("node_flags", "Node Flags")
2902 nodeFlags.Display("BASE_HEX")
2903 NoMoreMemAvlCnt = uint32("no_more_mem_avail", "No More Memory Available Count")
2904 NonDedFlag = boolean8("non_ded_flag", "Non Dedicated Flag")
2905 NonFreeableAvailableSubAllocSectors = uint32("non_freeable_avail_sub_alloc_sectors", "Non Freeable Available Sub Alloc Sectors")
2906 NonFreeableLimboSectors = uint32("non_freeable_limbo_sectors", "Non Freeable Limbo Sectors")
2907 NotUsableSubAllocSectors = uint32("not_usable_sub_alloc_sectors", "Not Usable Sub Alloc Sectors")
2908 NotYetPurgeableBlocks = uint32("not_yet_purgeable_blocks", "Not Yet Purgeable Blocks")
2909 NSInfoBitMask = uint32("ns_info_bit_mask", "Name Space Info Bit Mask")
2910 NSSOAllInFlags = bitfield32("nsso_all_in_flags", "SecretStore All Input Flags",[
2911 bf_boolean32(0x00000010, "nsso_all_unicode", "Unicode Data"),
2912 bf_boolean32(0x00000080, "nsso_set_tree", "Set Tree"),
2913 bf_boolean32(0x00000200, "nsso_destroy_ctx", "Destroy Context"),
2915 NSSOGetServiceInFlags = bitfield32("nsso_get_svc_in_flags", "SecretStore Get Service Flags",[
2916 bf_boolean32(0x00000100, "nsso_get_ctx", "Get Context"),
2918 NSSOReadInFlags = bitfield32("nsso_read_in_flags", "SecretStore Read Flags",[
2919 bf_boolean32(0x00000001, "nsso_rw_enh_prot", "Read/Write Enhanced Protection"),
2920 bf_boolean32(0x00000008, "nsso_repair", "Repair SecretStore"),
2922 NSSOReadOrUnlockInFlags = bitfield32("nsso_read_or_unlock_in_flags", "SecretStore Read or Unlock Flags",[
2923 bf_boolean32(0x00000004, "nsso_ep_master_pwd", "Master Password used instead of ENH Password"),
2925 NSSOUnlockInFlags = bitfield32("nsso_unlock_in_flags", "SecretStore Unlock Flags",[
2926 bf_boolean32(0x00000004, "nsso_rmv_lock", "Remove Lock from Store"),
2928 NSSOWriteInFlags = bitfield32("nsso_write_in_flags", "SecretStore Write Flags",[
2929 bf_boolean32(0x00000001, "nsso_enh_prot", "Enhanced Protection"),
2930 bf_boolean32(0x00000002, "nsso_create_id", "Create ID"),
2931 bf_boolean32(0x00000040, "nsso_ep_pwd_used", "Enhanced Protection Password Used"),
2933 NSSOContextOutFlags = bitfield32("nsso_cts_out_flags", "Type of Context",[
2934 bf_boolean32(0x00000001, "nsso_ds_ctx", "DSAPI Context"),
2935 bf_boolean32(0x00000080, "nsso_ldap_ctx", "LDAP Context"),
2936 bf_boolean32(0x00000200, "nsso_dc_ctx", "Reserved"),
2938 NSSOGetServiceOutFlags = bitfield32("nsso_get_svc_out_flags", "SecretStore Status Flags",[
2939 bf_boolean32(0x00400000, "nsso_mstr_pwd", "Master Password Present"),
2941 NSSOGetServiceReadOutFlags = bitfield32("nsso_get_svc_read_out_flags", "SecretStore Status Flags",[
2942 bf_boolean32(0x00800000, "nsso_mp_disabled", "Master Password Disabled"),
2944 NSSOReadOutFlags = bitfield32("nsso_read_out_flags", "SecretStore Read Flags",[
2945 bf_boolean32(0x00010000, "nsso_secret_locked", "Enhanced Protection Lock on Secret"),
2946 bf_boolean32(0x00020000, "nsso_secret_not_init", "Secret Not Yet Initialized"),
2947 bf_boolean32(0x00040000, "nsso_secret_marked", "Secret Marked for Enhanced Protection"),
2948 bf_boolean32(0x00080000, "nsso_secret_not_sync", "Secret Not Yet Synchronized in NDS"),
2949 bf_boolean32(0x00200000, "nsso_secret_enh_pwd", "Enhanced Protection Password on Secret"),
2951 NSSOReadOutStatFlags = bitfield32("nsso_read_out_stat_flags", "SecretStore Read Status Flags",[
2952 bf_boolean32(0x00100000, "nsso_admin_mod", "Admin Modified Secret Last"),
2954 NSSOVerb = val_string8("nsso_verb", "SecretStore Verb", [
2955 [ 0x00, "Query Server" ],
2956 [ 0x01, "Read App Secrets" ],
2957 [ 0x02, "Write App Secrets" ],
2958 [ 0x03, "Add Secret ID" ],
2959 [ 0x04, "Remove Secret ID" ],
2960 [ 0x05, "Remove SecretStore" ],
2961 [ 0x06, "Enumerate SecretID's" ],
2962 [ 0x07, "Unlock Store" ],
2963 [ 0x08, "Set Master Password" ],
2964 [ 0x09, "Get Service Information" ],
2966 NSSpecificInfo = fw_string("ns_specific_info", "Name Space Specific Info", 512)
2967 NumberOfAllocs = uint32("num_of_allocs", "Number of Allocations")
2968 NumberOfAttributes = uint32("number_of_attributes", "Number of Attributes")
2969 NumberOfCPUs = uint32("number_of_cpus", "Number of CPU's")
2970 NumberOfDataStreams = uint16("number_of_data_streams", "Number of Data Streams")
2971 NumberOfDynamicMemoryAreas = uint16("number_of_dynamic_memory_areas", "Number Of Dynamic Memory Areas")
2972 NumberOfEntries = uint8("number_of_entries", "Number of Entries")
2973 NumberOfLocks = uint8("number_of_locks", "Number of Locks")
2974 NumberOfMinutesToDelay = uint32("number_of_minutes_to_delay", "Number of Minutes to Delay")
2975 NumberOfNCPExtensions = uint32("number_of_ncp_extensions", "Number Of NCP Extensions")
2976 NumberOfNSLoaded = uint16("number_of_ns_loaded", "Number Of Name Spaces Loaded")
2977 NumberOfProtocols = uint8("number_of_protocols", "Number of Protocols")
2978 NumberOfRecords = uint16("number_of_records", "Number of Records")
2979 NumberOfReferencedPublics = uint32("num_of_ref_publics", "Number of Referenced Public Symbols")
2980 NumberOfSemaphores = uint16("number_of_semaphores", "Number Of Semaphores")
2981 NumberOfServiceProcesses = uint8("number_of_service_processes", "Number Of Service Processes")
2982 NumberOfSetCategories = uint32("number_of_set_categories", "Number Of Set Categories")
2983 NumberOfSMs = uint32("number_of_sms", "Number Of Storage Medias")
2984 NumberOfStations = uint8("number_of_stations", "Number of Stations")
2985 NumBytes = uint16("num_bytes", "Number of Bytes")
2986 NumOfCCinPkt = uint32("num_of_cc_in_pkt", "Number of Custom Counters in Packet")
2987 NumOfChecks = uint32("num_of_checks", "Number of Checks")
2988 NumOfEntries = uint32("num_of_entries", "Number of Entries")
2989 NumOfFilesMigrated = uint32("num_of_files_migrated", "Number Of Files Migrated")
2990 NumOfGarbageColl = uint32("num_of_garb_coll", "Number of Garbage Collections")
2991 NumOfNCPReqs = uint32("num_of_ncp_reqs", "Number of NCP Requests since Server was brought up")
2992 NumOfSegments = uint32("num_of_segments", "Number of Segments")
2994 ObjectCount = uint32("object_count", "Object Count")
2995 ObjectFlags = val_string8("object_flags", "Object Flags", [
2996 [ 0x00, "Dynamic object" ],
2997 [ 0x01, "Static object" ],
2999 ObjectHasProperties = val_string8("object_has_properites", "Object Has Properties", [
3000 [ 0x00, "No properties" ],
3001 [ 0xff, "One or more properties" ],
3003 ObjectID = uint32("object_id", "Object ID", BE)
3004 ObjectID.Display('BASE_HEX')
3005 ObjectIDCount = uint16("object_id_count", "Object ID Count")
3006 ObjectIDInfo = uint32("object_id_info", "Object Information")
3007 ObjectInfoReturnCount = uint32("object_info_rtn_count", "Object Information Count")
3008 ObjectName = nstring8("object_name", "Object Name")
3009 ObjectNameLen = fw_string("object_name_len", "Object Name", 48)
3010 ObjectNameStringz = stringz("object_name_stringz", "Object Name")
3011 ObjectNumber = uint32("object_number", "Object Number")
3012 ObjectSecurity = val_string8("object_security", "Object Security", [
3013 [ 0x00, "Object Read (Anyone) / Object Write (Anyone)" ],
3014 [ 0x01, "Object Read (Logged in) / Object Write (Anyone)" ],
3015 [ 0x02, "Object Read (Logged in as Object) / Object Write (Anyone)" ],
3016 [ 0x03, "Object Read (Supervisor) / Object Write (Anyone)" ],
3017 [ 0x04, "Object Read (Operating System Only) / Object Write (Anyone)" ],
3018 [ 0x10, "Object Read (Anyone) / Object Write (Logged in)" ],
3019 [ 0x11, "Object Read (Logged in) / Object Write (Logged in)" ],
3020 [ 0x12, "Object Read (Logged in as Object) / Object Write (Logged in)" ],
3021 [ 0x13, "Object Read (Supervisor) / Object Write (Logged in)" ],
3022 [ 0x14, "Object Read (Operating System Only) / Object Write (Logged in)" ],
3023 [ 0x20, "Object Read (Anyone) / Object Write (Logged in as Object)" ],
3024 [ 0x21, "Object Read (Logged in) / Object Write (Logged in as Object)" ],
3025 [ 0x22, "Object Read (Logged in as Object) / Object Write (Logged in as Object)" ],
3026 [ 0x23, "Object Read (Supervisor) / Object Write (Logged in as Object)" ],
3027 [ 0x24, "Object Read (Operating System Only) / Object Write (Logged in as Object)" ],
3028 [ 0x30, "Object Read (Anyone) / Object Write (Supervisor)" ],
3029 [ 0x31, "Object Read (Logged in) / Object Write (Supervisor)" ],
3030 [ 0x32, "Object Read (Logged in as Object) / Object Write (Supervisor)" ],
3031 [ 0x33, "Object Read (Supervisor) / Object Write (Supervisor)" ],
3032 [ 0x34, "Object Read (Operating System Only) / Object Write (Supervisor)" ],
3033 [ 0x40, "Object Read (Anyone) / Object Write (Operating System Only)" ],
3034 [ 0x41, "Object Read (Logged in) / Object Write (Operating System Only)" ],
3035 [ 0x42, "Object Read (Logged in as Object) / Object Write (Operating System Only)" ],
3036 [ 0x43, "Object Read (Supervisor) / Object Write (Operating System Only)" ],
3037 [ 0x44, "Object Read (Operating System Only) / Object Write (Operating System Only)" ],
3040 # XXX - should this use the "server_vals[]" value_string array from
3043 # XXX - should this list be merged with that list? There are some
3044 # oddities, e.g. this list has 0x03f5 for "Microsoft SQL Server", but
3045 # the list from "packet-ipx.c" has 0xf503 for that - is that just
3046 # byte-order confusion?
3048 ObjectType = val_string16("object_type", "Object Type", [
3049 [ 0x0000, "Unknown" ],
3051 [ 0x0002, "User group" ],
3052 [ 0x0003, "Print queue" ],
3053 [ 0x0004, "NetWare file server" ],
3054 [ 0x0005, "Job server" ],
3055 [ 0x0006, "Gateway" ],
3056 [ 0x0007, "Print server" ],
3057 [ 0x0008, "Archive queue" ],
3058 [ 0x0009, "Archive server" ],
3059 [ 0x000a, "Job queue" ],
3060 [ 0x000b, "Administration" ],
3061 [ 0x0021, "NAS SNA gateway" ],
3062 [ 0x0026, "Remote bridge server" ],
3063 [ 0x0027, "TCP/IP gateway" ],
3064 [ 0x0047, "Novell Print Server" ],
3065 [ 0x004b, "Btrieve Server" ],
3066 [ 0x004c, "NetWare SQL Server" ],
3067 [ 0x0064, "ARCserve" ],
3068 [ 0x0066, "ARCserve 3.0" ],
3069 [ 0x0076, "NetWare SQL" ],
3070 [ 0x00a0, "Gupta SQL Base Server" ],
3071 [ 0x00a1, "Powerchute" ],
3072 [ 0x0107, "NetWare Remote Console" ],
3073 [ 0x01cb, "Shiva NetModem/E" ],
3074 [ 0x01cc, "Shiva LanRover/E" ],
3075 [ 0x01cd, "Shiva LanRover/T" ],
3076 [ 0x01d8, "Castelle FAXPress Server" ],
3077 [ 0x01da, "Castelle Print Server" ],
3078 [ 0x01dc, "Castelle Fax Server" ],
3079 [ 0x0200, "Novell SQL Server" ],
3080 [ 0x023a, "NetWare Lanalyzer Agent" ],
3081 [ 0x023c, "DOS Target Service Agent" ],
3082 [ 0x023f, "NetWare Server Target Service Agent" ],
3083 [ 0x024f, "Appletalk Remote Access Service" ],
3084 [ 0x0263, "NetWare Management Agent" ],
3085 [ 0x0264, "Global MHS" ],
3087 [ 0x026a, "NetWare Management/NMS Console" ],
3088 [ 0x026b, "NetWare Time Synchronization" ],
3089 [ 0x0273, "Nest Device" ],
3090 [ 0x0274, "GroupWise Message Multiple Servers" ],
3091 [ 0x0278, "NDS Replica Server" ],
3092 [ 0x0282, "NDPS Service Registry Service" ],
3093 [ 0x028a, "MPR/IPX Address Mapping Gateway" ],
3094 [ 0x028b, "ManageWise" ],
3095 [ 0x0293, "NetWare 6" ],
3096 [ 0x030c, "HP JetDirect" ],
3097 [ 0x0328, "Watcom SQL Server" ],
3098 [ 0x0355, "Backup Exec" ],
3099 [ 0x039b, "Lotus Notes" ],
3100 [ 0x03e1, "Univel Server" ],
3101 [ 0x03f5, "Microsoft SQL Server" ],
3102 [ 0x055e, "Lexmark Print Server" ],
3103 [ 0x0640, "Microsoft Gateway Services for NetWare" ],
3104 [ 0x064e, "Microsoft Internet Information Server" ],
3105 [ 0x077b, "Advantage Database Server" ],
3106 [ 0x07a7, "Backup Exec Job Queue" ],
3107 [ 0x07a8, "Backup Exec Job Manager" ],
3108 [ 0x07a9, "Backup Exec Job Service" ],
3109 [ 0x5555, "Site Lock" ],
3110 [ 0x8202, "NDPS Broker" ],
3112 OCRetFlags = val_string8("o_c_ret_flags", "Open Create Return Flags", [
3113 [ 0x00, "No CallBack has been registered (No Op-Lock)" ],
3114 [ 0x01, "Request has been registered for CallBack (Op-Lock)" ],
3116 OldestDeletedFileAgeInTicks = uint32("oldest_deleted_file_age_in_ticks", "Oldest Deleted File Age in Ticks")
3117 OldFileName = bytes("old_file_name", "Old File Name", 15)
3118 OldFileSize = uint32("old_file_size", "Old File Size")
3119 OpenCount = uint16("open_count", "Open Count")
3120 OpenCreateAction = bitfield8("open_create_action", "Open Create Action", [
3121 bf_boolean8(0x01, "open_create_action_opened", "Opened"),
3122 bf_boolean8(0x02, "open_create_action_created", "Created"),
3123 bf_boolean8(0x04, "open_create_action_replaced", "Replaced"),
3124 bf_boolean8(0x08, "open_create_action_compressed", "Compressed"),
3125 bf_boolean8(0x80, "open_create_action_read_only", "Read Only"),
3127 OpenCreateMode = bitfield8("open_create_mode", "Open Create Mode", [
3128 bf_boolean8(0x01, "open_create_mode_open", "Open existing file (file must exist)"),
3129 bf_boolean8(0x02, "open_create_mode_replace", "Replace existing file"),
3130 bf_boolean8(0x08, "open_create_mode_create", "Create new file or subdirectory (file or subdirectory cannot exist)"),
3131 bf_boolean8(0x80, "open_create_mode_oplock", "Open Callback (Op-Lock)"),
3133 OpenForReadCount = uint16("open_for_read_count", "Open For Read Count")
3134 OpenForWriteCount = uint16("open_for_write_count", "Open For Write Count")
3135 OpenRights = bitfield8("open_rights", "Open Rights", [
3136 bf_boolean8(0x01, "open_rights_read_only", "Read Only"),
3137 bf_boolean8(0x02, "open_rights_write_only", "Write Only"),
3138 bf_boolean8(0x04, "open_rights_deny_read", "Deny Read"),
3139 bf_boolean8(0x08, "open_rights_deny_write", "Deny Write"),
3140 bf_boolean8(0x10, "open_rights_compat", "Compatibility"),
3141 bf_boolean8(0x40, "open_rights_write_thru", "Write Through"),
3143 OptionNumber = uint8("option_number", "Option Number")
3144 originalSize = uint32("original_size", "Original Size")
3145 OSLanguageID = uint8("os_language_id", "OS Language ID")
3146 OSMajorVersion = uint8("os_major_version", "OS Major Version")
3147 OSMinorVersion = uint8("os_minor_version", "OS Minor Version")
3148 OSRevision = uint8("os_revision", "OS Revision")
3149 OtherFileForkSize = uint32("other_file_fork_size", "Other File Fork Size")
3150 OtherFileForkFAT = uint32("other_file_fork_fat", "Other File Fork FAT Entry")
3151 OutgoingPacketDiscardedNoTurboBuffer = uint16("outgoing_packet_discarded_no_turbo_buffer", "Outgoing Packet Discarded No Turbo Buffer")
3153 PacketsDiscardedByHopCount = uint16("packets_discarded_by_hop_count", "Packets Discarded By Hop Count")
3154 PacketsDiscardedUnknownNet = uint16("packets_discarded_unknown_net", "Packets Discarded Unknown Net")
3155 PacketsFromInvalidConnection = uint16("packets_from_invalid_connection", "Packets From Invalid Connection")
3156 PacketsReceivedDuringProcessing = uint16("packets_received_during_processing", "Packets Received During Processing")
3157 PacketsWithBadRequestType = uint16("packets_with_bad_request_type", "Packets With Bad Request Type")
3158 PacketsWithBadSequenceNumber = uint16("packets_with_bad_sequence_number", "Packets With Bad Sequence Number")
3159 PageTableOwnerFlag = uint32("page_table_owner_flag", "Page Table Owner")
3160 ParentID = uint32("parent_id", "Parent ID")
3161 ParentID.Display("BASE_HEX")
3162 ParentBaseID = uint32("parent_base_id", "Parent Base ID")
3163 ParentBaseID.Display("BASE_HEX")
3164 ParentDirectoryBase = uint32("parent_directory_base", "Parent Directory Base")
3165 ParentDOSDirectoryBase = uint32("parent_dos_directory_base", "Parent DOS Directory Base")
3166 ParentObjectNumber = uint32("parent_object_number", "Parent Object Number")
3167 ParentObjectNumber.Display("BASE_HEX")
3168 Password = nstring8("password", "Password")
3169 PathBase = uint8("path_base", "Path Base")
3170 PathComponentCount = uint16("path_component_count", "Path Component Count")
3171 PathComponentSize = uint16("path_component_size", "Path Component Size")
3172 PathCookieFlags = val_string16("path_cookie_flags", "Path Cookie Flags", [
3173 [ 0x0000, "Last component is Not a File Name" ],
3174 [ 0x0001, "Last component is a File Name" ],
3176 PathCount = uint8("path_count", "Path Count")
3177 Path = nstring8("path", "Path")
3178 PathAndName = stringz("path_and_name", "Path and Name")
3179 PendingIOCommands = uint16("pending_io_commands", "Pending IO Commands")
3180 PhysicalDiskNumber = uint8("physical_disk_number", "Physical Disk Number")
3181 PhysicalDriveCount = uint8("physical_drive_count", "Physical Drive Count")
3182 PhysicalLockThreshold = uint8("physical_lock_threshold", "Physical Lock Threshold")
3183 PingVersion = uint16("ping_version", "Ping Version")
3184 PositiveAcknowledgesSent = uint16("positive_acknowledges_sent", "Positive Acknowledges Sent")
3185 PreCompressedSectors = uint32("pre_compressed_sectors", "Precompressed Sectors")
3186 PreviousRecord = uint32("previous_record", "Previous Record")
3187 PrimaryEntry = uint32("primary_entry", "Primary Entry")
3188 PrintFlags = bitfield8("print_flags", "Print Flags", [
3189 bf_boolean8(0x08, "print_flags_ff", "Suppress Form Feeds"),
3190 bf_boolean8(0x10, "print_flags_cr", "Create"),
3191 bf_boolean8(0x20, "print_flags_del_spool", "Delete Spool File after Printing"),
3192 bf_boolean8(0x40, "print_flags_exp_tabs", "Expand Tabs in the File"),
3193 bf_boolean8(0x80, "print_flags_banner", "Print Banner Page"),
3195 PrinterHalted = val_string8("printer_halted", "Printer Halted", [
3196 [ 0x00, "Printer is not Halted" ],
3197 [ 0xff, "Printer is Halted" ],
3199 PrinterOffLine = val_string8( "printer_offline", "Printer Off-Line", [
3200 [ 0x00, "Printer is On-Line" ],
3201 [ 0xff, "Printer is Off-Line" ],
3203 PrintServerVersion = uint8("print_server_version", "Print Server Version")
3204 Priority = uint32("priority", "Priority")
3205 Privileges = uint32("privileges", "Login Privileges")
3206 ProcessorType = val_string8("processor_type", "Processor Type", [
3207 [ 0x00, "Motorola 68000" ],
3208 [ 0x01, "Intel 8088 or 8086" ],
3209 [ 0x02, "Intel 80286" ],
3211 ProDOSInfo = bytes("pro_dos_info", "Pro DOS Info", 6)
3212 ProductMajorVersion = uint16("product_major_version", "Product Major Version")
3213 ProductMinorVersion = uint16("product_minor_version", "Product Minor Version")
3214 ProductRevisionVersion = uint8("product_revision_version", "Product Revision Version")
3215 projectedCompSize = uint32("projected_comp_size", "Projected Compression Size")
3216 PropertyHasMoreSegments = val_string8("property_has_more_segments",
3217 "Property Has More Segments", [
3218 [ 0x00, "Is last segment" ],
3219 [ 0xff, "More segments are available" ],
3221 PropertyName = nstring8("property_name", "Property Name")
3222 PropertyName16 = fw_string("property_name_16", "Property Name", 16)
3223 PropertyData = bytes("property_data", "Property Data", 128)
3224 PropertySegment = uint8("property_segment", "Property Segment")
3225 PropertyType = val_string8("property_type", "Property Type", [
3226 [ 0x00, "Display Static property" ],
3227 [ 0x01, "Display Dynamic property" ],
3228 [ 0x02, "Set Static property" ],
3229 [ 0x03, "Set Dynamic property" ],
3231 PropertyValue = fw_string("property_value", "Property Value", 128)
3232 ProposedMaxSize = uint16("proposed_max_size", "Proposed Max Size")
3233 protocolFlags = uint32("protocol_flags", "Protocol Flags")
3234 protocolFlags.Display("BASE_HEX")
3235 PurgeableBlocks = uint32("purgeable_blocks", "Purgeable Blocks")
3236 PurgeCcode = uint32("purge_c_code", "Purge Completion Code")
3237 PurgeCount = uint32("purge_count", "Purge Count")
3238 PurgeFlags = val_string16("purge_flags", "Purge Flags", [
3239 [ 0x0000, "Do not Purge All" ],
3240 [ 0x0001, "Purge All" ],
3241 [ 0xffff, "Do not Purge All" ],
3243 PurgeList = uint32("purge_list", "Purge List")
3244 PhysicalDiskChannel = uint8("physical_disk_channel", "Physical Disk Channel")
3245 PhysicalDriveType = val_string8("physical_drive_type", "Physical Drive Type", [
3249 [ 0x04, "Disk Coprocessor" ],
3250 [ 0x05, "PS/2 with MFM Controller" ],
3251 [ 0x06, "PS/2 with ESDI Controller" ],
3252 [ 0x07, "Convergent Technology SBIC" ],
3254 PhysicalReadErrors = uint16("physical_read_errors", "Physical Read Errors")
3255 PhysicalReadRequests = uint32("physical_read_requests", "Physical Read Requests")
3256 PhysicalWriteErrors = uint16("physical_write_errors", "Physical Write Errors")
3257 PhysicalWriteRequests = uint32("physical_write_requests", "Physical Write Requests")
3258 PrintToFileFlag = boolean8("print_to_file_flag", "Print to File Flag")
3260 QueueID = uint32("queue_id", "Queue ID")
3261 QueueID.Display("BASE_HEX")
3262 QueueName = nstring8("queue_name", "Queue Name")
3263 QueueStartPosition = uint32("queue_start_position", "Queue Start Position")
3264 QueueStatus = bitfield8("queue_status", "Queue Status", [
3265 bf_boolean8(0x01, "queue_status_new_jobs", "Operator does not want to add jobs to the queue"),
3266 bf_boolean8(0x02, "queue_status_pserver", "Operator does not want additional servers attaching"),
3267 bf_boolean8(0x04, "queue_status_svc_jobs", "Operator does not want servers to service jobs"),
3269 QueueType = uint16("queue_type", "Queue Type")
3270 QueueingVersion = uint8("qms_version", "QMS Version")
3272 ReadBeyondWrite = uint16("read_beyond_write", "Read Beyond Write")
3273 RecordLockCount = uint16("rec_lock_count", "Record Lock Count")
3274 RecordStart = uint32("record_start", "Record Start")
3275 RecordEnd = uint32("record_end", "Record End")
3276 RecordInUseFlag = val_string16("record_in_use", "Record in Use", [
3277 [ 0x0000, "Record In Use" ],
3278 [ 0xffff, "Record Not In Use" ],
3280 RedirectedPrinter = uint8( "redirected_printer", "Redirected Printer" )
3281 ReferenceCount = uint32("reference_count", "Reference Count")
3282 RelationsCount = uint16("relations_count", "Relations Count")
3283 ReMirrorCurrentOffset = uint32("re_mirror_current_offset", "ReMirror Current Offset")
3284 ReMirrorDriveNumber = uint8("re_mirror_drive_number", "ReMirror Drive Number")
3285 RemoteMaxPacketSize = uint32("remote_max_packet_size", "Remote Max Packet Size")
3286 RemoteTargetID = uint32("remote_target_id", "Remote Target ID")
3287 RemoteTargetID.Display("BASE_HEX")
3288 RemovableFlag = uint16("removable_flag", "Removable Flag")
3289 RemoveOpenRights = bitfield8("remove_open_rights", "Remove Open Rights", [
3290 bf_boolean8(0x01, "remove_open_rights_ro", "Read Only"),
3291 bf_boolean8(0x02, "remove_open_rights_wo", "Write Only"),
3292 bf_boolean8(0x04, "remove_open_rights_dr", "Deny Read"),
3293 bf_boolean8(0x08, "remove_open_rights_dw", "Deny Write"),
3294 bf_boolean8(0x10, "remove_open_rights_comp", "Compatibility"),
3295 bf_boolean8(0x40, "remove_open_rights_write_thru", "Write Through"),
3297 RenameFlag = bitfield8("rename_flag", "Rename Flag", [
3298 bf_boolean8(0x01, "rename_flag_ren", "Rename to Myself allows file to be renamed to it's original name"),
3299 bf_boolean8(0x02, "rename_flag_comp", "Compatability allows files that are marked read only to be opened with read/write access"),
3300 bf_boolean8(0x04, "rename_flag_no", "Name Only renames only the specified name space entry name"),
3302 RepliesCancelled = uint16("replies_cancelled", "Replies Cancelled")
3303 ReplyBuffer = nstring8("reply_buffer", "Reply Buffer")
3304 ReplyBufferSize = uint32("reply_buffer_size", "Reply Buffer Size")
3305 ReplyQueueJobNumbers = uint32("reply_queue_job_numbers", "Reply Queue Job Numbers")
3306 RequestBitMap = bitfield16("request_bit_map", "Request Bit Map", [
3307 bf_boolean16(0x0001, "request_bit_map_ret_afp_ent", "AFP Entry ID"),
3308 bf_boolean16(0x0002, "request_bit_map_ret_data_fork", "Data Fork Length"),
3309 bf_boolean16(0x0004, "request_bit_map_ret_res_fork", "Resource Fork Length"),
3310 bf_boolean16(0x0008, "request_bit_map_ret_num_off", "Number of Offspring"),
3311 bf_boolean16(0x0010, "request_bit_map_ret_owner", "Owner ID"),
3312 bf_boolean16(0x0020, "request_bit_map_ret_short", "Short Name"),
3313 bf_boolean16(0x0040, "request_bit_map_ret_acc_priv", "Access Privileges"),
3314 bf_boolean16(0x0100, "request_bit_map_ratt", "Return Attributes"),
3315 bf_boolean16(0x0200, "request_bit_map_ret_afp_parent", "AFP Parent Entry ID"),
3316 bf_boolean16(0x0400, "request_bit_map_ret_cr_date", "Creation Date"),
3317 bf_boolean16(0x0800, "request_bit_map_ret_acc_date", "Access Date"),
3318 bf_boolean16(0x1000, "request_bit_map_ret_mod_date", "Modify Date&Time"),
3319 bf_boolean16(0x2000, "request_bit_map_ret_bak_date", "Backup Date&Time"),
3320 bf_boolean16(0x4000, "request_bit_map_ret_finder", "Finder Info"),
3321 bf_boolean16(0x8000, "request_bit_map_ret_long_nm", "Long Name"),
3323 ResourceForkLen = uint32("resource_fork_len", "Resource Fork Len")
3324 RequestCode = val_string8("request_code", "Request Code", [
3325 [ 0x00, "Change Logged in to Temporary Authenticated" ],
3326 [ 0x01, "Change Temporary Authenticated to Logged in" ],
3328 RequestData = nstring8("request_data", "Request Data")
3329 RequestsReprocessed = uint16("requests_reprocessed", "Requests Reprocessed")
3330 Reserved = uint8( "reserved", "Reserved" )
3331 Reserved2 = bytes("reserved2", "Reserved", 2)
3332 Reserved3 = bytes("reserved3", "Reserved", 3)
3333 Reserved4 = bytes("reserved4", "Reserved", 4)
3334 Reserved6 = bytes("reserved6", "Reserved", 6)
3335 Reserved8 = bytes("reserved8", "Reserved", 8)
3336 Reserved10 = bytes("reserved10", "Reserved", 10)
3337 Reserved12 = bytes("reserved12", "Reserved", 12)
3338 Reserved16 = bytes("reserved16", "Reserved", 16)
3339 Reserved20 = bytes("reserved20", "Reserved", 20)
3340 Reserved28 = bytes("reserved28", "Reserved", 28)
3341 Reserved36 = bytes("reserved36", "Reserved", 36)
3342 Reserved44 = bytes("reserved44", "Reserved", 44)
3343 Reserved48 = bytes("reserved48", "Reserved", 48)
3344 Reserved51 = bytes("reserved51", "Reserved", 51)
3345 Reserved56 = bytes("reserved56", "Reserved", 56)
3346 Reserved64 = bytes("reserved64", "Reserved", 64)
3347 Reserved120 = bytes("reserved120", "Reserved", 120)
3348 ReservedOrDirectoryNumber = uint32("reserved_or_directory_number", "Reserved or Directory Number (see EAFlags)")
3349 ResourceCount = uint32("resource_count", "Resource Count")
3350 ResourceForkSize = uint32("resource_fork_size", "Resource Fork Size")
3351 ResourceName = stringz("resource_name", "Resource Name")
3352 ResourceSignature = fw_string("resource_sig", "Resource Signature", 4)
3353 RestoreTime = uint32("restore_time", "Restore Time")
3354 Restriction = uint32("restriction", "Disk Space Restriction")
3355 RestrictionsEnforced = val_string8("restrictions_enforced", "Disk Restrictions Enforce Flag", [
3356 [ 0x00, "Enforced" ],
3357 [ 0xff, "Not Enforced" ],
3359 ReturnInfoCount = uint32("return_info_count", "Return Information Count")
3360 ReturnInfoMask = bitfield16("ret_info_mask", "Return Information", [
3361 bf_boolean16(0x0001, "ret_info_mask_fname", "Return File Name Information"),
3362 bf_boolean16(0x0002, "ret_info_mask_alloc", "Return Allocation Space Information"),
3363 bf_boolean16(0x0004, "ret_info_mask_attr", "Return Attribute Information"),
3364 bf_boolean16(0x0008, "ret_info_mask_size", "Return Size Information"),
3365 bf_boolean16(0x0010, "ret_info_mask_tspace", "Return Total Space Information"),
3366 bf_boolean16(0x0020, "ret_info_mask_eattr", "Return Extended Attributes Information"),
3367 bf_boolean16(0x0040, "ret_info_mask_arch", "Return Archive Information"),
3368 bf_boolean16(0x0080, "ret_info_mask_mod", "Return Modify Information"),
3369 bf_boolean16(0x0100, "ret_info_mask_create", "Return Creation Information"),
3370 bf_boolean16(0x0200, "ret_info_mask_ns", "Return Name Space Information"),
3371 bf_boolean16(0x0400, "ret_info_mask_dir", "Return Directory Information"),
3372 bf_boolean16(0x0800, "ret_info_mask_rights", "Return Rights Information"),
3373 bf_boolean16(0x1000, "ret_info_mask_id", "Return ID Information"),
3374 bf_boolean16(0x2000, "ret_info_mask_ns_attr", "Return Name Space Attributes Information"),
3375 bf_boolean16(0x4000, "ret_info_mask_actual", "Return Actual Information"),
3376 bf_boolean16(0x8000, "ret_info_mask_logical", "Return Logical Information"),
3378 ReturnedListCount = uint32("returned_list_count", "Returned List Count")
3379 Revision = uint32("revision", "Revision")
3380 RevisionNumber = uint8("revision_number", "Revision")
3381 RevQueryFlag = val_string8("rev_query_flag", "Revoke Rights Query Flag", [
3382 [ 0x00, "Do not query the locks engine for access rights" ],
3383 [ 0x01, "Query the locks engine and return the access rights" ],
3385 RightsGrantMask = bitfield8("rights_grant_mask", "Grant Rights", [
3386 bf_boolean8(0x01, "rights_grant_mask_read", "Read"),
3387 bf_boolean8(0x02, "rights_grant_mask_write", "Write"),
3388 bf_boolean8(0x04, "rights_grant_mask_open", "Open"),
3389 bf_boolean8(0x08, "rights_grant_mask_create", "Create"),
3390 bf_boolean8(0x10, "rights_grant_mask_del", "Delete"),
3391 bf_boolean8(0x20, "rights_grant_mask_parent", "Parental"),
3392 bf_boolean8(0x40, "rights_grant_mask_search", "Search"),
3393 bf_boolean8(0x80, "rights_grant_mask_mod", "Modify"),
3395 RightsRevokeMask = bitfield8("rights_revoke_mask", "Revoke Rights", [
3396 bf_boolean8(0x01, "rights_revoke_mask_read", "Read"),
3397 bf_boolean8(0x02, "rights_revoke_mask_write", "Write"),
3398 bf_boolean8(0x04, "rights_revoke_mask_open", "Open"),
3399 bf_boolean8(0x08, "rights_revoke_mask_create", "Create"),
3400 bf_boolean8(0x10, "rights_revoke_mask_del", "Delete"),
3401 bf_boolean8(0x20, "rights_revoke_mask_parent", "Parental"),
3402 bf_boolean8(0x40, "rights_revoke_mask_search", "Search"),
3403 bf_boolean8(0x80, "rights_revoke_mask_mod", "Modify"),
3405 RIPSocketNumber = uint16("rip_socket_num", "RIP Socket Number")
3406 RIPSocketNumber.Display("BASE_HEX")
3407 RouterDownFlag = boolean8("router_dn_flag", "Router Down Flag")
3408 RPCccode = val_string16("rpc_c_code", "RPC Completion Code", [
3409 [ 0x0000, "Successful" ],
3411 RTagNumber = uint32("r_tag_num", "Resource Tag Number")
3412 RTagNumber.Display("BASE_HEX")
3413 RpyNearestSrvFlag = boolean8("rpy_nearest_srv_flag", "Reply to Nearest Server Flag")
3415 SalvageableFileEntryNumber = uint32("salvageable_file_entry_number", "Salvageable File Entry Number")
3416 SalvageableFileEntryNumber.Display("BASE_HEX")
3417 SAPSocketNumber = uint16("sap_socket_number", "SAP Socket Number")
3418 SAPSocketNumber.Display("BASE_HEX")
3419 ScanItems = uint32("scan_items", "Number of Items returned from Scan")
3420 SearchAttributes = bitfield8("sattr", "Search Attributes", [
3421 bf_boolean8(0x01, "sattr_ronly", "Read-Only Files Allowed"),
3422 bf_boolean8(0x02, "sattr_hid", "Hidden Files Allowed"),
3423 bf_boolean8(0x04, "sattr_sys", "System Files Allowed"),
3424 bf_boolean8(0x08, "sattr_exonly", "Execute-Only Files Allowed"),
3425 bf_boolean8(0x10, "sattr_sub", "Subdirectories Only"),
3426 bf_boolean8(0x20, "sattr_archive", "Archive"),
3427 bf_boolean8(0x40, "sattr_execute_confirm", "Execute Confirm"),
3428 bf_boolean8(0x80, "sattr_shareable", "Shareable"),
3430 SearchAttributesLow = bitfield16("search_att_low", "Search Attributes", [
3431 bf_boolean16(0x0001, "search_att_read_only", "Read-Only"),
3432 bf_boolean16(0x0002, "search_att_hidden", "Hidden Files Allowed"),
3433 bf_boolean16(0x0004, "search_att_system", "System"),
3434 bf_boolean16(0x0008, "search_att_execute_only", "Execute-Only"),
3435 bf_boolean16(0x0010, "search_att_sub", "Subdirectories Only"),
3436 bf_boolean16(0x0020, "search_att_archive", "Archive"),
3437 bf_boolean16(0x0040, "search_att_execute_confirm", "Execute Confirm"),
3438 bf_boolean16(0x0080, "search_att_shareable", "Shareable"),
3439 bf_boolean16(0x8000, "search_attr_all_files", "All Files and Directories"),
3441 SearchBitMap = bitfield8("search_bit_map", "Search Bit Map", [
3442 bf_boolean8(0x01, "search_bit_map_hidden", "Hidden"),
3443 bf_boolean8(0x02, "search_bit_map_sys", "System"),
3444 bf_boolean8(0x04, "search_bit_map_sub", "Subdirectory"),
3445 bf_boolean8(0x08, "search_bit_map_files", "Files"),
3447 SearchConnNumber = uint32("search_conn_number", "Search Connection Number")
3448 SearchInstance = uint32("search_instance", "Search Instance")
3449 SearchNumber = uint32("search_number", "Search Number")
3450 SearchPattern = nstring8("search_pattern", "Search Pattern")
3451 SearchSequence = bytes("search_sequence", "Search Sequence", 9)
3452 SearchSequenceWord = uint16("search_sequence_word", "Search Sequence", BE)
3453 Second = uint8("s_second", "Seconds")
3454 SecondsRelativeToTheYear2000 = uint32("sec_rel_to_y2k", "Seconds Relative to the Year 2000")
3455 SecretStoreVerb = val_string8("ss_verb", "Secret Store Verb",[
3456 [ 0x00, "Query Server" ],
3457 [ 0x01, "Read App Secrets" ],
3458 [ 0x02, "Write App Secrets" ],
3459 [ 0x03, "Add Secret ID" ],
3460 [ 0x04, "Remove Secret ID" ],
3461 [ 0x05, "Remove SecretStore" ],
3462 [ 0x06, "Enumerate Secret IDs" ],
3463 [ 0x07, "Unlock Store" ],
3464 [ 0x08, "Set Master Password" ],
3465 [ 0x09, "Get Service Information" ],
3467 SecurityEquivalentList = fw_string("security_equiv_list", "Security Equivalent List", 128)
3468 SecurityFlag = bitfield8("security_flag", "Security Flag", [
3469 bf_boolean8(0x01, "checksuming", "Checksumming"),
3470 bf_boolean8(0x02, "signature", "Signature"),
3471 bf_boolean8(0x04, "complete_signatures", "Complete Signatures"),
3472 bf_boolean8(0x08, "encryption", "Encryption"),
3473 bf_boolean8(0x80, "large_internet_packets", "Large Internet Packets (LIP) Disabled"),
3475 SecurityRestrictionVersion = uint8("security_restriction_version", "Security Restriction Version")
3476 SectorsPerBlock = uint8("sectors_per_block", "Sectors Per Block")
3477 SectorsPerCluster = uint16("sectors_per_cluster", "Sectors Per Cluster" )
3478 SectorsPerClusterLong = uint32("sectors_per_cluster_long", "Sectors Per Cluster" )
3479 SectorsPerTrack = uint8("sectors_per_track", "Sectors Per Track")
3480 SectorSize = uint32("sector_size", "Sector Size")
3481 SemaphoreHandle = uint32("semaphore_handle", "Semaphore Handle")
3482 SemaphoreName = nstring8("semaphore_name", "Semaphore Name")
3483 SemaphoreNameLen = uint8("semaphore_name_len", "Semaphore Name Len")
3484 SemaphoreOpenCount = uint8("semaphore_open_count", "Semaphore Open Count")
3485 SemaphoreShareCount = uint8("semaphore_share_count", "Semaphore Share Count")
3486 SemaphoreTimeOut = uint16("semaphore_time_out", "Semaphore Time Out")
3487 SemaphoreValue = uint16("semaphore_value", "Semaphore Value")
3488 SendStatus = val_string8("send_status", "Send Status", [
3489 [ 0x00, "Successful" ],
3490 [ 0x01, "Illegal Station Number" ],
3491 [ 0x02, "Client Not Logged In" ],
3492 [ 0x03, "Client Not Accepting Messages" ],
3493 [ 0x04, "Client Already has a Message" ],
3494 [ 0x96, "No Alloc Space for the Message" ],
3495 [ 0xfd, "Bad Station Number" ],
3496 [ 0xff, "Failure" ],
3498 SequenceByte = uint8("sequence_byte", "Sequence")
3499 SequenceNumber = uint32("sequence_number", "Sequence Number")
3500 SequenceNumber.Display("BASE_HEX")
3501 ServerAddress = bytes("server_address", "Server Address", 12)
3502 ServerAppNumber = uint16("server_app_num", "Server App Number")
3503 ServerIDList = uint32("server_id_list", "Server ID List")
3504 ServerID = uint32("server_id_number", "Server ID", BE )
3505 ServerID.Display("BASE_HEX")
3506 ServerInfoFlags = val_string16("server_info_flags", "Server Information Flags", [
3507 [ 0x0000, "This server is not a member of a Cluster" ],
3508 [ 0x0001, "This server is a member of a Cluster" ],
3510 serverListFlags = uint32("server_list_flags", "Server List Flags")
3511 ServerName = fw_string("server_name", "Server Name", 48)
3512 serverName50 = fw_string("server_name50", "Server Name", 50)
3513 ServerNameLen = nstring8("server_name_len", "Server Name")
3514 ServerNameStringz = stringz("server_name_stringz", "Server Name")
3515 ServerNetworkAddress = bytes("server_network_address", "Server Network Address", 10)
3516 ServerNode = bytes("server_node", "Server Node", 6)
3517 ServerSerialNumber = uint32("server_serial_number", "Server Serial Number")
3518 ServerStation = uint8("server_station", "Server Station")
3519 ServerStationLong = uint32("server_station_long", "Server Station")
3520 ServerStationList = uint8("server_station_list", "Server Station List")
3521 ServerStatusRecord = fw_string("server_status_record", "Server Status Record", 64)
3522 ServerTaskNumber = uint8("server_task_number", "Server Task Number")
3523 ServerTaskNumberLong = uint32("server_task_number_long", "Server Task Number")
3524 ServerType = uint16("server_type", "Server Type")
3525 ServerType.Display("BASE_HEX")
3526 ServerUtilization = uint32("server_utilization", "Server Utilization")
3527 ServerUtilizationPercentage = uint8("server_utilization_percentage", "Server Utilization Percentage")
3528 ServiceType = val_string16("Service_type", "Service Type", [
3529 [ 0x0000, "Unknown" ],
3531 [ 0x0002, "User group" ],
3532 [ 0x0003, "Print queue" ],
3533 [ 0x0004, "NetWare file server" ],
3534 [ 0x0005, "Job server" ],
3535 [ 0x0006, "Gateway" ],
3536 [ 0x0007, "Print server" ],
3537 [ 0x0008, "Archive queue" ],
3538 [ 0x0009, "Archive server" ],
3539 [ 0x000a, "Job queue" ],
3540 [ 0x000b, "Administration" ],
3541 [ 0x0021, "NAS SNA gateway" ],
3542 [ 0x0026, "Remote bridge server" ],
3543 [ 0x0027, "TCP/IP gateway" ],
3545 SetCmdCategory = val_string8("set_cmd_category", "Set Command Category", [
3546 [ 0x00, "Communications" ],
3548 [ 0x02, "File Cache" ],
3549 [ 0x03, "Directory Cache" ],
3550 [ 0x04, "File System" ],
3552 [ 0x06, "Transaction Tracking" ],
3556 [ 0x0a, "Miscellaneous" ],
3557 [ 0x0b, "Error Handling" ],
3558 [ 0x0c, "Directory Services" ],
3559 [ 0x0d, "MultiProcessor" ],
3560 [ 0x0e, "Service Location Protocol" ],
3561 [ 0x0f, "Licensing Services" ],
3563 SetCmdFlags = bitfield8("set_cmd_flags", "Set Command Flags", [
3564 bf_boolean8(0x01, "cmd_flags_startup_only", "Startup.ncf Only"),
3565 bf_boolean8(0x02, "cmd_flags_hidden", "Hidden"),
3566 bf_boolean8(0x04, "cmd_flags_advanced", "Advanced"),
3567 bf_boolean8(0x08, "cmd_flags_later", "Restart Server Required to Take Effect"),
3568 bf_boolean8(0x80, "cmd_flags_secure", "Console Secured"),
3570 SetCmdName = stringz("set_cmd_name", "Set Command Name")
3571 SetCmdType = val_string8("set_cmd_type", "Set Command Type", [
3572 [ 0x00, "Numeric Value" ],
3573 [ 0x01, "Boolean Value" ],
3574 [ 0x02, "Ticks Value" ],
3575 [ 0x04, "Time Value" ],
3576 [ 0x05, "String Value" ],
3577 [ 0x06, "Trigger Value" ],
3578 [ 0x07, "Numeric Value" ],
3580 SetCmdValueNum = uint32("set_cmd_value_num", "Set Command Value")
3581 SetCmdValueString = stringz("set_cmd_value_string", "Set Command Value")
3582 SetParmName = stringz("set_parm_name", "Set Parameter Name")
3583 SFTErrorTable = bytes("sft_error_table", "SFT Error Table", 60)
3584 SFTSupportLevel = val_string8("sft_support_level", "SFT Support Level", [
3585 [ 0x01, "Server Offers Hot Disk Error Fixing" ],
3586 [ 0x02, "Server Offers Disk Mirroring and Transaction Tracking" ],
3587 [ 0x03, "Server Offers Physical Server Mirroring" ],
3589 ShareableLockCount = uint16("shareable_lock_count", "Shareable Lock Count")
3590 SharedMemoryAddresses = bytes("shared_memory_addresses", "Shared Memory Addresses", 10)
3591 ShortName = fw_string("short_name", "Short Name", 12)
3592 ShortStkName = fw_string("short_stack_name", "Short Stack Name", 16)
3593 SiblingCount = uint32("sibling_count", "Sibling Count")
3594 SMIDs = uint32("smids", "Storage Media ID's")
3595 SoftwareDescription = fw_string("software_description", "Software Description", 65)
3596 SoftwareDriverType = uint8("software_driver_type", "Software Driver Type")
3597 SoftwareMajorVersionNumber = uint8("software_major_version_number", "Software Major Version Number")
3598 SoftwareMinorVersionNumber = uint8("software_minor_version_number", "Software Minor Version Number")
3599 SourceDirHandle = uint8("source_dir_handle", "Source Directory Handle")
3600 sourceOriginateTime = bytes("source_originate_time", "Source Originate Time", 8)
3601 sourceOriginateTime.Display("BASE_HEX")
3602 SourcePath = nstring8("source_path", "Source Path")
3603 SourcePathComponentCount = uint8("source_component_count", "Source Path Component Count")
3604 sourceReturnTime = bytes("source_return_time", "Source Return Time", 8)
3605 sourceReturnTime.Display("BASE_HEX")
3606 SpaceUsed = uint32("space_used", "Space Used")
3607 SpaceMigrated = uint32("space_migrated", "Space Migrated")
3608 SrcNameSpace = val_string8("src_name_space", "Source Name Space", [
3609 [ 0x00, "DOS Name Space" ],
3610 [ 0x01, "MAC Name Space" ],
3611 [ 0x02, "NFS Name Space" ],
3612 [ 0x04, "Long Name Space" ],
3614 SupModID = uint32("sup_mod_id", "Sup Mod ID")
3615 StackCount = uint32("stack_count", "Stack Count")
3616 StackFullNameStr = nstring8("stack_full_name_str", "Stack Full Name")
3617 StackMajorVN = uint8("stack_major_vn", "Stack Major Version Number")
3618 StackMinorVN = uint8("stack_minor_vn", "Stack Minor Version Number")
3619 StackNumber = uint32("stack_number", "Stack Number")
3620 StartConnNumber = uint32("start_conn_num", "Starting Connection Number")
3621 StartingBlock = uint16("starting_block", "Starting Block")
3622 StartingNumber = uint32("starting_number", "Starting Number")
3623 StartingSearchNumber = uint16("start_search_number", "Start Search Number")
3624 StartNumber = uint32("start_number", "Start Number")
3625 startNumberFlag = uint16("start_number_flag", "Start Number Flag")
3626 StartVolumeNumber = uint32("start_volume_number", "Starting Volume Number")
3627 StationList = uint32("station_list", "Station List")
3628 StationNumber = bytes("station_number", "Station Number", 3)
3629 StatMajorVersion = uint8("stat_major_version", "Statistics Table Major Version")
3630 StatMinorVersion = uint8("stat_minor_version", "Statistics Table Minor Version")
3631 Status = bitfield16("status", "Status", [
3632 bf_boolean16(0x0001, "user_info_logged_in", "Logged In"),
3633 bf_boolean16(0x0002, "user_info_being_abort", "Being Aborted"),
3634 bf_boolean16(0x0004, "user_info_audited", "Audited"),
3635 bf_boolean16(0x0008, "user_info_need_sec", "Needs Security Change"),
3636 bf_boolean16(0x0010, "user_info_mac_station", "MAC Station"),
3637 bf_boolean16(0x0020, "user_info_temp_authen", "Temporary Authenticated"),
3638 bf_boolean16(0x0040, "user_info_audit_conn", "Audit Connection Recorded"),
3639 bf_boolean16(0x0080, "user_info_dsaudit_conn", "DS Audit Connection Recorded"),
3640 bf_boolean16(0x0100, "user_info_logout", "Logout in Progress"),
3641 bf_boolean16(0x0200, "user_info_int_login", "Internal Login"),
3642 bf_boolean16(0x0400, "user_info_bindery", "Bindery Connection"),
3644 StatusFlagBits = bitfield32("status_flag_bits", "Status Flag", [
3645 bf_boolean32(0x00000001, "status_flag_bits_suballoc", "Sub Allocation"),
3646 bf_boolean32(0x00000002, "status_flag_bits_comp", "Compression"),
3647 bf_boolean32(0x00000004, "status_flag_bits_migrate", "Migration"),
3648 bf_boolean32(0x00000008, "status_flag_bits_audit", "Audit"),
3649 bf_boolean32(0x00000010, "status_flag_bits_ro", "Read Only"),
3650 bf_boolean32(0x00000020, "status_flag_bits_im_purge", "Immediate Purge"),
3651 bf_boolean32(0x80000000, "status_flag_bits_nss", "NSS Volume"),
3653 SubAllocClusters = uint32("sub_alloc_clusters", "Sub Alloc Clusters")
3654 SubAllocFreeableClusters = uint32("sub_alloc_freeable_clusters", "Sub Alloc Freeable Clusters")
3655 Subdirectory = uint32("sub_directory", "Subdirectory")
3656 Subdirectory.Display("BASE_HEX")
3657 SuggestedFileSize = uint32("suggested_file_size", "Suggested File Size")
3658 SupportModuleID = uint32("support_module_id", "Support Module ID")
3659 SynchName = nstring8("synch_name", "Synch Name")
3660 SystemIntervalMarker = uint32("system_interval_marker", "System Interval Marker")
3662 TabSize = uint8( "tab_size", "Tab Size" )
3663 TargetClientList = uint8("target_client_list", "Target Client List")
3664 TargetConnectionNumber = uint16("target_connection_number", "Target Connection Number")
3665 TargetDirectoryBase = uint32("target_directory_base", "Target Directory Base")
3666 TargetDirHandle = uint8("target_dir_handle", "Target Directory Handle")
3667 TargetEntryID = uint32("target_entry_id", "Target Entry ID")
3668 TargetEntryID.Display("BASE_HEX")
3669 TargetExecutionTime = bytes("target_execution_time", "Target Execution Time", 6)
3670 TargetFileHandle = bytes("target_file_handle", "Target File Handle", 6)
3671 TargetFileOffset = uint32("target_file_offset", "Target File Offset")
3672 TargetMessage = nstring8("target_message", "Message")
3673 TargetPrinter = uint8( "target_ptr", "Target Printer" )
3674 targetReceiveTime = bytes("target_receive_time", "Target Receive Time", 8)
3675 targetReceiveTime.Display("BASE_HEX")
3676 TargetServerIDNumber = uint32("target_server_id_number", "Target Server ID Number", BE )
3677 TargetServerIDNumber.Display("BASE_HEX")
3678 targetTransmitTime = bytes("target_transmit_time", "Target Transmit Time", 8)
3679 targetTransmitTime.Display("BASE_HEX")
3680 TaskNumByte = uint8("task_num_byte", "Task Number")
3681 TaskNumber = uint32("task_number", "Task Number")
3682 TaskNumberWord = uint16("task_number_word", "Task Number")
3683 TextJobDescription = fw_string("text_job_description", "Text Job Description", 50)
3684 ThrashingCount = uint16("thrashing_count", "Thrashing Count")
3685 TimeoutLimit = uint16("timeout_limit", "Timeout Limit")
3686 TimesyncStatus = bitfield32("timesync_status_flags", "Timesync Status", [
3687 bf_boolean32(0x00000001, "timesync_status_sync", "Time is Synchronized"),
3688 bf_boolean32(0x00000002, "timesync_status_net_sync", "Time is Synchronized to the Network"),
3689 bf_boolean32(0x00000004, "timesync_status_active", "Time Synchronization is Active"),
3690 bf_boolean32(0x00000008, "timesync_status_external", "External Time Synchronization Active"),
3691 bf_val_str32(0x00000700, "timesync_status_server_type", "Time Server Type", [
3692 [ 0x01, "Client Time Server" ],
3693 [ 0x02, "Secondary Time Server" ],
3694 [ 0x03, "Primary Time Server" ],
3695 [ 0x04, "Reference Time Server" ],
3696 [ 0x05, "Single Reference Time Server" ],
3698 bf_boolean32(0x000f0000, "timesync_status_ext_sync", "External Clock Status"),
3700 TimeToNet = uint16("time_to_net", "Time To Net")
3701 TotalBlocks = uint32("total_blocks", "Total Blocks")
3702 TotalBlocksToDecompress = uint32("total_blks_to_dcompress", "Total Blocks To Decompress")
3703 TotalBytesRead = bytes("user_info_ttl_bytes_rd", "Total Bytes Read", 6)
3704 TotalBytesWritten = bytes("user_info_ttl_bytes_wrt", "Total Bytes Written", 6)
3705 TotalCacheWrites = uint32("total_cache_writes", "Total Cache Writes")
3706 TotalChangedFATs = uint32("total_changed_fats", "Total Changed FAT Entries")
3707 TotalCommonCnts = uint32("total_common_cnts", "Total Common Counts")
3708 TotalCntBlocks = uint32("total_cnt_blocks", "Total Count Blocks")
3709 TotalDataStreamDiskSpaceAlloc = uint32("total_stream_size_struct_space_alloc", "Total Data Stream Disk Space Alloc")
3710 TotalDirectorySlots = uint16("total_directory_slots", "Total Directory Slots")
3711 TotalDirectoryEntries = uint32("total_dir_entries", "Total Directory Entries")
3712 TotalDynamicSpace = uint32("total_dynamic_space", "Total Dynamic Space")
3713 TotalExtendedDirectoryExtants = uint32("total_extended_directory_extants", "Total Extended Directory Extants")
3714 TotalFileServicePackets = uint32("total_file_service_packets", "Total File Service Packets")
3715 TotalFilesOpened = uint32("total_files_opened", "Total Files Opened")
3716 TotalLFSCounters = uint32("total_lfs_counters", "Total LFS Counters")
3717 TotalOffspring = uint16("total_offspring", "Total Offspring")
3718 TotalOtherPackets = uint32("total_other_packets", "Total Other Packets")
3719 TotalQueueJobs = uint32("total_queue_jobs", "Total Queue Jobs")
3720 TotalReadRequests = uint32("total_read_requests", "Total Read Requests")
3721 TotalRequest = uint32("total_request", "Total Requests")
3722 TotalRequestPackets = uint32("total_request_packets", "Total Request Packets")
3723 TotalRoutedPackets = uint32("total_routed_packets", "Total Routed Packets")
3724 TotalRxPkts = uint32("total_rx_pkts", "Total Receive Packets")
3725 TotalServerMemory = uint16("total_server_memory", "Total Server Memory", BE)
3726 TotalTransactionsBackedOut = uint32("total_trans_backed_out", "Total Transactions Backed Out")
3727 TotalTransactionsPerformed = uint32("total_trans_performed", "Total Transactions Performed")
3728 TotalTxPkts = uint32("total_tx_pkts", "Total Transmit Packets")
3729 TotalUnfilledBackoutRequests = uint16("total_unfilled_backout_requests", "Total Unfilled Backout Requests")
3730 TotalVolumeClusters = uint16("total_volume_clusters", "Total Volume Clusters")
3731 TotalWriteRequests = uint32("total_write_requests", "Total Write Requests")
3732 TotalWriteTransactionsPerformed = uint32("total_write_trans_performed", "Total Write Transactions Performed")
3733 TrackOnFlag = boolean8("track_on_flag", "Track On Flag")
3734 TransactionDiskSpace = uint16("transaction_disk_space", "Transaction Disk Space")
3735 TransactionFATAllocations = uint32("transaction_fat_allocations", "Transaction FAT Allocations")
3736 TransactionFileSizeChanges = uint32("transaction_file_size_changes", "Transaction File Size Changes")
3737 TransactionFilesTruncated = uint32("transaction_files_truncated", "Transaction Files Truncated")
3738 TransactionNumber = uint32("transaction_number", "Transaction Number")
3739 TransactionTrackingEnabled = uint8("transaction_tracking_enabled", "Transaction Tracking Enabled")
3740 TransactionTrackingFlag = uint16("tts_flag", "Transaction Tracking Flag")
3741 TransactionTrackingSupported = uint8("transaction_tracking_supported", "Transaction Tracking Supported")
3742 TransactionVolumeNumber = uint16("transaction_volume_number", "Transaction Volume Number")
3743 TransportType = val_string8("transport_type", "Communications Type", [
3744 [ 0x01, "Internet Packet Exchange (IPX)" ],
3745 [ 0x05, "User Datagram Protocol (UDP)" ],
3746 [ 0x06, "Transmission Control Protocol (TCP)" ],
3748 TreeLength = uint32("tree_length", "Tree Length")
3749 TreeName = nstring32("tree_name", "Tree Name")
3750 TreeName.NWUnicode()
3751 TrusteeRights = bitfield16("trustee_rights_low", "Trustee Rights", [
3752 bf_boolean16(0x0001, "trustee_rights_read", "Read"),
3753 bf_boolean16(0x0002, "trustee_rights_write", "Write"),
3754 bf_boolean16(0x0004, "trustee_rights_open", "Open"),
3755 bf_boolean16(0x0008, "trustee_rights_create", "Create"),
3756 bf_boolean16(0x0010, "trustee_rights_del", "Delete"),
3757 bf_boolean16(0x0020, "trustee_rights_parent", "Parental"),
3758 bf_boolean16(0x0040, "trustee_rights_search", "Search"),
3759 bf_boolean16(0x0080, "trustee_rights_modify", "Modify"),
3760 bf_boolean16(0x0100, "trustee_rights_super", "Supervisor"),
3762 TTSLevel = uint8("tts_level", "TTS Level")
3763 TrusteeSetNumber = uint8("trustee_set_number", "Trustee Set Number")
3764 TrusteeID = uint32("trustee_id_set", "Trustee ID")
3765 TrusteeID.Display("BASE_HEX")
3766 ttlCompBlks = uint32("ttl_comp_blks", "Total Compression Blocks")
3767 TtlDSDskSpaceAlloc = uint32("ttl_ds_disk_space_alloc", "Total Streams Space Allocated")
3768 TtlEAs = uint32("ttl_eas", "Total EA's")
3769 TtlEAsDataSize = uint32("ttl_eas_data_size", "Total EA's Data Size")
3770 TtlEAsKeySize = uint32("ttl_eas_key_size", "Total EA's Key Size")
3771 ttlIntermediateBlks = uint32("ttl_inter_blks", "Total Intermediate Blocks")
3772 TtlMigratedSize = uint32("ttl_migrated_size", "Total Migrated Size")
3773 TtlNumOfRTags = uint32("ttl_num_of_r_tags", "Total Number of Resource Tags")
3774 TtlNumOfSetCmds = uint32("ttl_num_of_set_cmds", "Total Number of Set Commands")
3775 TtlValuesLength = uint32("ttl_values_length", "Total Values Length")
3776 TtlWriteDataSize = uint32("ttl_write_data_size", "Total Write Data Size")
3777 TurboUsedForFileService = uint16("turbo_used_for_file_service", "Turbo Used For File Service")
3779 UnclaimedPkts = uint32("un_claimed_packets", "Unclaimed Packets")
3780 UnCompressableDataStreamsCount = uint32("un_compressable_data_streams_count", "Uncompressable Data Streams Count")
3781 Undefined8 = bytes("undefined_8", "Undefined", 8)
3782 Undefined28 = bytes("undefined_28", "Undefined", 28)
3783 UndefinedWord = uint16("undefined_word", "Undefined")
3784 UniqueID = uint8("unique_id", "Unique ID")
3785 UnknownByte = uint8("unknown_byte", "Unknown Byte")
3786 Unused = uint8("un_used", "Unused")
3787 UnusedBlocks = uint32("unused_blocks", "Unused Blocks")
3788 UnUsedDirectoryEntries = uint32("un_used_directory_entries", "Unused Directory Entries")
3789 UnusedDiskBlocks = uint32("unused_disk_blocks", "Unused Disk Blocks")
3790 UnUsedExtendedDirectoryExtants = uint32("un_used_extended_directory_extants", "Unused Extended Directory Extants")
3791 UpdateDate = uint16("update_date", "Update Date")
3793 UpdateID = uint32("update_id", "Update ID", BE)
3794 UpdateID.Display("BASE_HEX")
3795 UpdateTime = uint16("update_time", "Update Time")
3797 UseCount = val_string16("user_info_use_count", "Use Count", [
3798 [ 0x0000, "Connection is not in use" ],
3799 [ 0x0001, "Connection is in use" ],
3801 UsedBlocks = uint32("used_blocks", "Used Blocks")
3802 UserID = uint32("user_id", "User ID", BE)
3803 UserID.Display("BASE_HEX")
3804 UserLoginAllowed = val_string8("user_login_allowed", "Login Status", [
3805 [ 0x00, "Client Login Disabled" ],
3806 [ 0x01, "Client Login Enabled" ],
3809 UserName = nstring8("user_name", "User Name")
3810 UserName16 = fw_string("user_name_16", "User Name", 16)
3811 UserName48 = fw_string("user_name_48", "User Name", 48)
3812 UserType = uint16("user_type", "User Type")
3813 UTCTimeInSeconds = uint32("uts_time_in_seconds", "UTC Time in Seconds")
3815 ValueAvailable = val_string8("value_available", "Value Available", [
3816 [ 0x00, "Has No Value" ],
3817 [ 0xff, "Has Value" ],
3819 VAPVersion = uint8("vap_version", "VAP Version")
3820 VariableBitMask = uint32("variable_bit_mask", "Variable Bit Mask")
3821 VariableBitsDefined = uint16("variable_bits_defined", "Variable Bits Defined")
3822 VConsoleRevision = uint8("vconsole_rev", "Console Revision")
3823 VConsoleVersion = uint8("vconsole_ver", "Console Version")
3824 Verb = uint32("verb", "Verb")
3825 VerbData = uint8("verb_data", "Verb Data")
3826 version = uint32("version", "Version")
3827 VersionNumber = uint8("version_number", "Version")
3828 VertLocation = uint16("vert_location", "Vertical Location")
3829 VirtualConsoleVersion = uint8("virtual_console_version", "Virtual Console Version")
3830 VolumeID = uint32("volume_id", "Volume ID")
3831 VolumeID.Display("BASE_HEX")
3832 VolInfoReplyLen = uint16("vol_info_reply_len", "Volume Information Reply Length")
3833 VolumeCachedFlag = val_string8("volume_cached_flag", "Volume Cached Flag", [
3834 [ 0x00, "Volume is Not Cached" ],
3835 [ 0xff, "Volume is Cached" ],
3837 VolumeDataStreams = uint8("volume_data_streams", "Volume Data Streams")
3838 VolumeHashedFlag = val_string8("volume_hashed_flag", "Volume Hashed Flag", [
3839 [ 0x00, "Volume is Not Hashed" ],
3840 [ 0xff, "Volume is Hashed" ],
3842 VolumeLastModifiedDate = uint16("volume_last_modified_date", "Volume Last Modified Date")
3843 VolumeLastModifiedDate.NWDate()
3844 VolumeLastModifiedTime = uint16("volume_last_modified_time", "Volume Last Modified Time")
3845 VolumeLastModifiedTime.NWTime()
3846 VolumeMountedFlag = val_string8("volume_mounted_flag", "Volume Mounted Flag", [
3847 [ 0x00, "Volume is Not Mounted" ],
3848 [ 0xff, "Volume is Mounted" ],
3850 VolumeName = fw_string("volume_name", "Volume Name", 16)
3851 VolumeNameLen = nstring8("volume_name_len", "Volume Name")
3852 VolumeNameSpaces = uint8("volume_name_spaces", "Volume Name Spaces")
3853 VolumeNameStringz = stringz("volume_name_stringz", "Volume Name")
3854 VolumeNumber = uint8("volume_number", "Volume Number")
3855 VolumeNumberLong = uint32("volume_number_long", "Volume Number")
3856 VolumeRemovableFlag = val_string8("volume_removable_flag", "Volume Removable Flag", [
3857 [ 0x00, "Disk Cannot be Removed from Server" ],
3858 [ 0xff, "Disk Can be Removed from Server" ],
3860 VolumeRequestFlags = val_string16("volume_request_flags", "Volume Request Flags", [
3861 [ 0x0000, "Return name with volume number" ],
3862 [ 0x0001, "Do not return name with volume number" ],
3864 VolumeSizeInClusters = uint32("volume_size_in_clusters", "Volume Size in Clusters")
3865 VolumesSupportedMax = uint16("volumes_supported_max", "Volumes Supported Max")
3866 VolumeType = val_string16("volume_type", "Volume Type", [
3867 [ 0x0000, "NetWare 386" ],
3868 [ 0x0001, "NetWare 286" ],
3869 [ 0x0002, "NetWare 386 Version 30" ],
3870 [ 0x0003, "NetWare 386 Version 31" ],
3872 WastedServerMemory = uint16("wasted_server_memory", "Wasted Server Memory", BE)
3873 WaitTime = uint32("wait_time", "Wait Time")
3875 Year = val_string8("year", "Year",[
3957 ##############################################################################
3959 ##############################################################################
3962 acctngInfo = struct("acctng_info_struct", [
3966 HeldConnectTimeInMinutes,
3970 ],"Accounting Information")
3971 AFP10Struct = struct("afp_10_struct", [
3995 ], "AFP Information" )
3996 AFP20Struct = struct("afp_20_struct", [
4022 ], "AFP Information" )
4023 ArchiveDateStruct = struct("archive_date_struct", [
4026 ArchiveIdStruct = struct("archive_id_struct", [
4029 ArchiveInfoStruct = struct("archive_info_struct", [
4033 ], "Archive Information")
4034 ArchiveTimeStruct = struct("archive_time_struct", [
4037 AttributesStruct = struct("attributes_struct", [
4041 authInfo = struct("auth_info_struct", [
4046 BoardNameStruct = struct("board_name_struct", [
4051 CacheInfo = struct("cache_info", [
4052 uint32("max_byte_cnt", "Maximum Byte Count"),
4053 uint32("min_num_of_cache_buff", "Minimum Number Of Cache Buffers"),
4054 uint32("min_cache_report_thresh", "Minimum Cache Report Threshold"),
4055 uint32("alloc_waiting", "Allocate Waiting Count"),
4056 uint32("ndirty_blocks", "Number of Dirty Blocks"),
4057 uint32("cache_dirty_wait_time", "Cache Dirty Wait Time"),
4058 uint32("cache_max_concur_writes", "Cache Maximum Concurrent Writes"),
4059 uint32("max_dirty_time", "Maximum Dirty Time"),
4060 uint32("num_dir_cache_buff", "Number Of Directory Cache Buffers"),
4061 uint32("cache_byte_to_block", "Cache Byte To Block Shift Factor"),
4062 ], "Cache Information")
4063 CommonLanStruc = struct("common_lan_struct", [
4064 boolean8("not_supported_mask", "Bit Counter Supported"),
4066 uint32("total_tx_packet_count", "Total Transmit Packet Count"),
4067 uint32("total_rx_packet_count", "Total Receive Packet Count"),
4068 uint32("no_ecb_available_count", "No ECB Available Count"),
4069 uint32("packet_tx_too_big_count", "Transmit Packet Too Big Count"),
4070 uint32("packet_tx_too_small_count", "Transmit Packet Too Small Count"),
4071 uint32("packet_rx_overflow_count", "Receive Packet Overflow Count"),
4072 uint32("packet_rx_too_big_count", "Receive Packet Too Big Count"),
4073 uint32("packet_rs_too_small_count", "Receive Packet Too Small Count"),
4074 uint32("packet_tx_misc_error_count", "Transmit Packet Misc Error Count"),
4075 uint32("packet_rx_misc_error_count", "Receive Packet Misc Error Count"),
4076 uint32("retry_tx_count", "Transmit Retry Count"),
4077 uint32("checksum_error_count", "Checksum Error Count"),
4078 uint32("hardware_rx_mismatch_count", "Hardware Receive Mismatch Count"),
4079 ], "Common LAN Information")
4080 CompDeCompStat = struct("comp_d_comp_stat", [
4081 uint32("cmphitickhigh", "Compress High Tick"),
4082 uint32("cmphitickcnt", "Compress High Tick Count"),
4083 uint32("cmpbyteincount", "Compress Byte In Count"),
4084 uint32("cmpbyteoutcnt", "Compress Byte Out Count"),
4085 uint32("cmphibyteincnt", "Compress High Byte In Count"),
4086 uint32("cmphibyteoutcnt", "Compress High Byte Out Count"),
4087 uint32("decphitickhigh", "DeCompress High Tick"),
4088 uint32("decphitickcnt", "DeCompress High Tick Count"),
4089 uint32("decpbyteincount", "DeCompress Byte In Count"),
4090 uint32("decpbyteoutcnt", "DeCompress Byte Out Count"),
4091 uint32("decphibyteincnt", "DeCompress High Byte In Count"),
4092 uint32("decphibyteoutcnt", "DeCompress High Byte Out Count"),
4093 ], "Compression/Decompression Information")
4094 ConnFileStruct = struct("conn_file_struct", [
4095 ConnectionNumberWord,
4100 ], "File Connection Information")
4101 ConnStruct = struct("conn_struct", [
4107 DirectoryEntryNumberWord,
4109 ], "Connection Information")
4110 ConnTaskStruct = struct("conn_task_struct", [
4111 ConnectionNumberByte,
4113 ], "Task Information")
4114 Counters = struct("counters_struct", [
4115 uint32("read_exist_blck", "Read Existing Block Count"),
4116 uint32("read_exist_write_wait", "Read Existing Write Wait Count"),
4117 uint32("read_exist_part_read", "Read Existing Partial Read Count"),
4118 uint32("read_exist_read_err", "Read Existing Read Error Count"),
4119 uint32("wrt_blck_cnt", "Write Block Count"),
4120 uint32("wrt_entire_blck", "Write Entire Block Count"),
4121 uint32("internl_dsk_get", "Internal Disk Get Count"),
4122 uint32("internl_dsk_get_need_to_alloc", "Internal Disk Get Need To Allocate Count"),
4123 uint32("internl_dsk_get_someone_beat", "Internal Disk Get Someone Beat My Count"),
4124 uint32("internl_dsk_get_part_read", "Internal Disk Get Partial Read Count"),
4125 uint32("internl_dsk_get_read_err", "Internal Disk Get Read Error Count"),
4126 uint32("async_internl_dsk_get", "Async Internal Disk Get Count"),
4127 uint32("async_internl_dsk_get_need_to_alloc", "Async Internal Disk Get Need To Alloc"),
4128 uint32("async_internl_dsk_get_someone_beat", "Async Internal Disk Get Someone Beat Me"),
4129 uint32("err_doing_async_read", "Error Doing Async Read Count"),
4130 uint32("internl_dsk_get_no_read", "Internal Disk Get No Read Count"),
4131 uint32("internl_dsk_get_no_read_alloc", "Internal Disk Get No Read Allocate Count"),
4132 uint32("internl_dsk_get_no_read_someone_beat", "Internal Disk Get No Read Someone Beat Me Count"),
4133 uint32("internl_dsk_write", "Internal Disk Write Count"),
4134 uint32("internl_dsk_write_alloc", "Internal Disk Write Allocate Count"),
4135 uint32("internl_dsk_write_someone_beat", "Internal Disk Write Someone Beat Me Count"),
4136 uint32("write_err", "Write Error Count"),
4137 uint32("wait_on_sema", "Wait On Semaphore Count"),
4138 uint32("alloc_blck_i_had_to_wait_for", "Allocate Block I Had To Wait For Someone Count"),
4139 uint32("alloc_blck", "Allocate Block Count"),
4140 uint32("alloc_blck_i_had_to_wait", "Allocate Block I Had To Wait Count"),
4141 ], "Disk Counter Information")
4142 CPUInformation = struct("cpu_information", [
4158 ], "CPU Information")
4159 CreationDateStruct = struct("creation_date_struct", [
4162 CreationInfoStruct = struct("creation_info_struct", [
4166 ], "Creation Information")
4167 CreationTimeStruct = struct("creation_time_struct", [
4170 CustomCntsInfo = struct("custom_cnts_info", [
4171 CustomVariableValue,
4173 ], "Custom Counters" )
4174 DataStreamInfo = struct("data_stream_info", [
4175 AssociatedNameSpace,
4178 DataStreamSizeStruct = struct("data_stream_size_struct", [
4181 DirCacheInfo = struct("dir_cache_info", [
4182 uint32("min_time_since_file_delete", "Minimum Time Since File Delete"),
4183 uint32("abs_min_time_since_file_delete", "Absolute Minimum Time Since File Delete"),
4184 uint32("min_num_of_dir_cache_buff", "Minimum Number Of Directory Cache Buffers"),
4185 uint32("max_num_of_dir_cache_buff", "Maximum Number Of Directory Cache Buffers"),
4186 uint32("num_of_dir_cache_buff", "Number Of Directory Cache Buffers"),
4187 uint32("dc_min_non_ref_time", "DC Minimum Non-Referenced Time"),
4188 uint32("dc_wait_time_before_new_buff", "DC Wait Time Before New Buffer"),
4189 uint32("dc_max_concurrent_writes", "DC Maximum Concurrent Writes"),
4190 uint32("dc_dirty_wait_time", "DC Dirty Wait Time"),
4191 uint32("dc_double_read_flag", "DC Double Read Flag"),
4192 uint32("map_hash_node_count", "Map Hash Node Count"),
4193 uint32("space_restriction_node_count", "Space Restriction Node Count"),
4194 uint32("trustee_list_node_count", "Trustee List Node Count"),
4195 uint32("percent_of_vol_used_by_dirs", "Percent Of Volume Used By Directories"),
4196 ], "Directory Cache Information")
4197 DirEntryStruct = struct("dir_entry_struct", [
4198 DirectoryEntryNumber,
4199 DOSDirectoryEntryNumber,
4201 ], "Directory Entry Information")
4202 DirectoryInstance = struct("directory_instance", [
4206 DirectoryAttributes,
4207 DirectoryAccessRights,
4208 endian(CreationDate, BE),
4209 endian(AccessDate, BE),
4213 ], "Directory Information")
4214 DMInfoLevel0 = struct("dm_info_level_0", [
4215 uint32("io_flag", "IO Flag"),
4216 uint32("sm_info_size", "Storage Module Information Size"),
4217 uint32("avail_space", "Available Space"),
4218 uint32("used_space", "Used Space"),
4219 stringz("s_module_name", "Storage Module Name"),
4220 uint8("s_m_info", "Storage Media Information"),
4222 DMInfoLevel1 = struct("dm_info_level_1", [
4226 DMInfoLevel2 = struct("dm_info_level_2", [
4229 DOSDirectoryEntryStruct = struct("dos_directory_entry_struct", [
4246 InheritedRightsMask,
4247 ], "DOS Directory Information")
4248 DOSFileEntryStruct = struct("dos_file_entry_struct", [
4268 InheritedRightsMask,
4273 ], "DOS File Information")
4274 DSSpaceAllocateStruct = struct("ds_space_alloc_struct", [
4275 DataStreamSpaceAlloc,
4277 DynMemStruct = struct("dyn_mem_struct", [
4278 uint32("dyn_mem_struct_total", "Total Dynamic Space" ),
4279 uint32("dyn_mem_struct_max", "Max Used Dynamic Space" ),
4280 uint32("dyn_mem_struct_cur", "Current Used Dynamic Space" ),
4281 ], "Dynamic Memory Information")
4282 EAInfoStruct = struct("ea_info_struct", [
4286 ], "Extended Attribute Information")
4287 ExtraCacheCntrs = struct("extra_cache_cntrs", [
4288 uint32("internl_dsk_get_no_wait", "Internal Disk Get No Wait Count"),
4289 uint32("internl_dsk_get_no_wait_need", "Internal Disk Get No Wait Need To Allocate Count"),
4290 uint32("internl_dsk_get_no_wait_no_blk", "Internal Disk Get No Wait No Block Count"),
4291 uint32("id_get_no_read_no_wait", "ID Get No Read No Wait Count"),
4292 uint32("id_get_no_read_no_wait_sema", "ID Get No Read No Wait Semaphored Count"),
4293 uint32("id_get_no_read_no_wait_buffer", "ID Get No Read No Wait No Buffer Count"),
4294 uint32("id_get_no_read_no_wait_alloc", "ID Get No Read No Wait Allocate Count"),
4295 uint32("id_get_no_read_no_wait_no_alloc", "ID Get No Read No Wait No Alloc Count"),
4296 uint32("id_get_no_read_no_wait_no_alloc_sema", "ID Get No Read No Wait No Alloc Semaphored Count"),
4297 uint32("id_get_no_read_no_wait_no_alloc_alloc", "ID Get No Read No Wait No Alloc Allocate Count"),
4298 ], "Extra Cache Counters Information")
4301 ReferenceIDStruct = struct("ref_id_struct", [
4304 NSAttributeStruct = struct("ns_attrib_struct", [
4307 DStreamActual = struct("d_stream_actual", [
4309 # Need to look into how to format this correctly
4311 DStreamLogical = struct("d_string_logical", [
4313 # Need to look into how to format this correctly
4315 LastUpdatedInSecondsStruct = struct("last_update_in_seconds_struct", [
4316 SecondsRelativeToTheYear2000,
4318 DOSNameStruct = struct("dos_name_struct", [
4321 FlushTimeStruct = struct("flush_time_struct", [
4324 ParentBaseIDStruct = struct("parent_base_id_struct", [
4327 MacFinderInfoStruct = struct("mac_finder_info_struct", [
4330 SiblingCountStruct = struct("sibling_count_struct", [
4333 EffectiveRightsStruct = struct("eff_rights_struct", [
4337 MacTimeStruct = struct("mac_time_struct", [
4343 LastAccessedTimeStruct = struct("last_access_time_struct", [
4349 FileAttributesStruct = struct("file_attributes_struct", [
4352 FileInfoStruct = struct("file_info_struct", [
4354 DirectoryEntryNumber,
4355 TotalBlocksToDecompress,
4356 CurrentBlockBeingDecompressed,
4357 ], "File Information")
4358 FileInstance = struct("file_instance", [
4365 endian(CreationDate, BE),
4366 endian(AccessDate, BE),
4367 endian(UpdateDate, BE),
4368 endian(UpdateTime, BE),
4370 FileNameStruct = struct("file_name_struct", [
4373 FileServerCounters = struct("file_server_counters", [
4374 uint16("too_many_hops", "Too Many Hops"),
4375 uint16("unknown_network", "Unknown Network"),
4376 uint16("no_space_for_service", "No Space For Service"),
4377 uint16("no_receive_buff", "No Receive Buffers"),
4378 uint16("not_my_network", "Not My Network"),
4379 uint32("netbios_progated", "NetBIOS Propagated Count"),
4380 uint32("ttl_pckts_srvcd", "Total Packets Serviced"),
4381 uint32("ttl_pckts_routed", "Total Packets Routed"),
4382 ], "File Server Counters")
4383 FileSystemInfo = struct("file_system_info", [
4384 uint32("fat_moved", "Number of times the OS has move the location of FAT"),
4385 uint32("fat_write_err", "Number of write errors in both original and mirrored copies of FAT"),
4386 uint32("someone_else_did_it_0", "Someone Else Did It Count 0"),
4387 uint32("someone_else_did_it_1", "Someone Else Did It Count 1"),
4388 uint32("someone_else_did_it_2", "Someone Else Did It Count 2"),
4389 uint32("i_ran_out_someone_else_did_it_0", "I Ran Out Someone Else Did It Count 0"),
4390 uint32("i_ran_out_someone_else_did_it_1", "I Ran Out Someone Else Did It Count 1"),
4391 uint32("i_ran_out_someone_else_did_it_2", "I Ran Out Someone Else Did It Count 2"),
4392 uint32("turbo_fat_build_failed", "Turbo FAT Build Failed Count"),
4393 uint32("extra_use_count_node_count", "Errors allocating a use count node for TTS"),
4394 uint32("extra_extra_use_count_node_count", "Errors allocating an additional use count node for TTS"),
4395 uint32("error_read_last_fat", "Error Reading Last FAT Count"),
4396 uint32("someone_else_using_this_file", "Someone Else Using This File Count"),
4397 ], "File System Information")
4398 GenericInfoDef = struct("generic_info_def", [
4399 fw_string("generic_label", "Label", 64),
4400 uint32("generic_ident_type", "Identification Type"),
4401 uint32("generic_ident_time", "Identification Time"),
4402 uint32("generic_media_type", "Media Type"),
4403 uint32("generic_cartridge_type", "Cartridge Type"),
4404 uint32("generic_unit_size", "Unit Size"),
4405 uint32("generic_block_size", "Block Size"),
4406 uint32("generic_capacity", "Capacity"),
4407 uint32("generic_pref_unit_size", "Preferred Unit Size"),
4408 fw_string("generic_name", "Name",64),
4409 uint32("generic_type", "Type"),
4410 uint32("generic_status", "Status"),
4411 uint32("generic_func_mask", "Function Mask"),
4412 uint32("generic_ctl_mask", "Control Mask"),
4413 uint32("generic_parent_count", "Parent Count"),
4414 uint32("generic_sib_count", "Sibling Count"),
4415 uint32("generic_child_count", "Child Count"),
4416 uint32("generic_spec_info_sz", "Specific Information Size"),
4417 uint32("generic_object_uniq_id", "Unique Object ID"),
4418 uint32("generic_media_slot", "Media Slot"),
4419 ], "Generic Information")
4420 HandleInfoLevel0 = struct("handle_info_level_0", [
4423 HandleInfoLevel1 = struct("handle_info_level_1", [
4426 HandleInfoLevel2 = struct("handle_info_level_2", [
4431 HandleInfoLevel3 = struct("handle_info_level_3", [
4435 HandleInfoLevel4 = struct("handle_info_level_4", [
4438 ParentDirectoryBase,
4439 ParentDOSDirectoryBase,
4441 HandleInfoLevel5 = struct("handle_info_level_5", [
4445 ParentDirectoryBase,
4446 ParentDOSDirectoryBase,
4448 IPXInformation = struct("ipx_information", [
4449 uint32("ipx_send_pkt", "IPX Send Packet Count"),
4450 uint16("ipx_malform_pkt", "IPX Malformed Packet Count"),
4451 uint32("ipx_get_ecb_req", "IPX Get ECB Request Count"),
4452 uint32("ipx_get_ecb_fail", "IPX Get ECB Fail Count"),
4453 uint32("ipx_aes_event", "IPX AES Event Count"),
4454 uint16("ipx_postponed_aes", "IPX Postponed AES Count"),
4455 uint16("ipx_max_conf_sock", "IPX Max Configured Socket Count"),
4456 uint16("ipx_max_open_sock", "IPX Max Open Socket Count"),
4457 uint16("ipx_open_sock_fail", "IPX Open Socket Fail Count"),
4458 uint32("ipx_listen_ecb", "IPX Listen ECB Count"),
4459 uint16("ipx_ecb_cancel_fail", "IPX ECB Cancel Fail Count"),
4460 uint16("ipx_get_lcl_targ_fail", "IPX Get Local Target Fail Count"),
4461 ], "IPX Information")
4462 JobEntryTime = struct("job_entry_time", [
4469 ], "Job Entry Time")
4470 JobStruct = struct("job_struct", [
4474 TargetServerIDNumber,
4475 TargetExecutionTime,
4488 ], "Job Information")
4489 JobStructNew = struct("job_struct_new", [
4494 ClientTaskNumberLong,
4496 TargetServerIDNumber,
4497 TargetExecutionTime,
4502 JobControlFlagsWord,
4506 ServerTaskNumberLong,
4508 ], "Job Information")
4509 KnownRoutes = struct("known_routes", [
4515 KnownServStruc = struct("known_server_struct", [
4520 LANConfigInfo = struct("lan_cfg_info", [
4521 LANdriverCFG_MajorVersion,
4522 LANdriverCFG_MinorVersion,
4523 LANdriverNodeAddress,
4526 LANdriverBoardNumber,
4527 LANdriverBoardInstance,
4528 LANdriverMaximumSize,
4529 LANdriverMaxRecvSize,
4533 LANdriverTransportTime,
4534 LANdriverSrcRouting,
4537 LANdriverMajorVersion,
4538 LANdriverMinorVersion,
4540 LANdriverSendRetries,
4542 LANdriverSharingFlags,
4544 LANdriverIOPortsAndRanges1,
4545 LANdriverIOPortsAndRanges2,
4546 LANdriverIOPortsAndRanges3,
4547 LANdriverIOPortsAndRanges4,
4548 LANdriverMemoryDecode0,
4549 LANdriverMemoryLength0,
4550 LANdriverMemoryDecode1,
4551 LANdriverMemoryLength1,
4552 LANdriverInterrupt1,
4553 LANdriverInterrupt2,
4556 LANdriverLogicalName,
4557 LANdriverIOReserved,
4559 ], "LAN Configuration Information")
4560 LastAccessStruct = struct("last_access_struct", [
4563 lockInfo = struct("lock_info_struct", [
4564 LogicalLockThreshold,
4565 PhysicalLockThreshold,
4568 ], "Lock Information")
4569 LockStruct = struct("lock_struct", [
4575 LoginTime = struct("login_time", [
4584 LogLockStruct = struct("log_lock_struct", [
4589 LogRecStruct = struct("log_rec_struct", [
4590 ConnectionNumberWord,
4593 ], "Logical Record Locks")
4594 LSLInformation = struct("lsl_information", [
4595 uint32("rx_buffers", "Receive Buffers"),
4596 uint32("rx_buffers_75", "Receive Buffers Warning Level"),
4597 uint32("rx_buffers_checked_out", "Receive Buffers Checked Out Count"),
4598 uint32("rx_buffer_size", "Receive Buffer Size"),
4599 uint32("max_phy_packet_size", "Maximum Physical Packet Size"),
4600 uint32("last_time_rx_buff_was_alloc", "Last Time a Receive Buffer was Allocated"),
4601 uint32("max_num_of_protocols", "Maximum Number of Protocols"),
4602 uint32("max_num_of_media_types", "Maximum Number of Media Types"),
4603 uint32("total_tx_packets", "Total Transmit Packets"),
4604 uint32("get_ecb_buf", "Get ECB Buffers"),
4605 uint32("get_ecb_fails", "Get ECB Failures"),
4606 uint32("aes_event_count", "AES Event Count"),
4607 uint32("post_poned_events", "Postponed Events"),
4608 uint32("ecb_cxl_fails", "ECB Cancel Failures"),
4609 uint32("valid_bfrs_reused", "Valid Buffers Reused"),
4610 uint32("enqueued_send_cnt", "Enqueued Send Count"),
4611 uint32("total_rx_packets", "Total Receive Packets"),
4612 uint32("unclaimed_packets", "Unclaimed Packets"),
4613 uint8("stat_table_major_version", "Statistics Table Major Version"),
4614 uint8("stat_table_minor_version", "Statistics Table Minor Version"),
4615 ], "LSL Information")
4616 MaximumSpaceStruct = struct("max_space_struct", [
4619 MemoryCounters = struct("memory_counters", [
4620 uint32("orig_num_cache_buff", "Original Number Of Cache Buffers"),
4621 uint32("curr_num_cache_buff", "Current Number Of Cache Buffers"),
4622 uint32("cache_dirty_block_thresh", "Cache Dirty Block Threshold"),
4623 uint32("wait_node", "Wait Node Count"),
4624 uint32("wait_node_alloc_fail", "Wait Node Alloc Failure Count"),
4625 uint32("move_cache_node", "Move Cache Node Count"),
4626 uint32("move_cache_node_from_avai", "Move Cache Node From Avail Count"),
4627 uint32("accel_cache_node_write", "Accelerate Cache Node Write Count"),
4628 uint32("rem_cache_node", "Remove Cache Node Count"),
4629 uint32("rem_cache_node_from_avail", "Remove Cache Node From Avail Count"),
4630 ], "Memory Counters")
4631 MLIDBoardInfo = struct("mlid_board_info", [
4632 uint32("protocol_board_num", "Protocol Board Number"),
4633 uint16("protocol_number", "Protocol Number"),
4634 bytes("protocol_id", "Protocol ID", 6),
4635 nstring8("protocol_name", "Protocol Name"),
4636 ], "MLID Board Information")
4637 ModifyInfoStruct = struct("modify_info_struct", [
4642 ], "Modification Information")
4643 nameInfo = struct("name_info_struct", [
4645 nstring8("login_name", "Login Name"),
4646 ], "Name Information")
4647 NCPNetworkAddress = struct("ncp_network_address_struct", [
4651 ], "Network Address")
4653 netAddr = struct("net_addr_struct", [
4655 nbytes32("transport_addr", "Transport Address"),
4656 ], "Network Address")
4658 NetWareInformationStruct = struct("netware_information_struct", [
4659 DataStreamSpaceAlloc, # (Data Stream Alloc Bit)
4660 AttributesDef32, # (Attributes Bit)
4662 DataStreamSize, # (Data Stream Size Bit)
4663 TotalDataStreamDiskSpaceAlloc, # (Total Stream Size Bit)
4664 NumberOfDataStreams,
4665 CreationTime, # (Creation Bit)
4668 ModifiedTime, # (Modify Bit)
4672 ArchivedTime, # (Archive Bit)
4675 InheritedRightsMask, # (Rights Bit)
4676 DirectoryEntryNumber, # (Directory Entry Bit)
4677 DOSDirectoryEntryNumber,
4679 EADataSize, # (Extended Attribute Bit)
4682 CreatorNameSpaceNumber, # (Name Space Bit)
4684 ], "NetWare Information")
4685 NLMInformation = struct("nlm_information", [
4686 IdentificationNumber,
4705 NumberOfReferencedPublics,
4706 ], "NLM Information")
4707 NSInfoStruct = struct("ns_info_struct", [
4711 NWAuditStatus = struct("nw_audit_status", [
4713 AuditFileVersionDate,
4714 val_string16("audit_enable_flag", "Auditing Enabled Flag", [
4715 [ 0x0000, "Auditing Disabled" ],
4716 [ 0x0100, "Auditing Enabled" ],
4719 uint32("audit_file_size", "Audit File Size"),
4720 uint32("modified_counter", "Modified Counter"),
4721 uint32("audit_file_max_size", "Audit File Maximum Size"),
4722 uint32("audit_file_size_threshold", "Audit File Size Threshold"),
4723 uint32("audit_record_count", "Audit Record Count"),
4724 uint32("auditing_flags", "Auditing Flags"),
4725 ], "NetWare Audit Status")
4726 ObjectSecurityStruct = struct("object_security_struct", [
4729 ObjectFlagsStruct = struct("object_flags_struct", [
4732 ObjectTypeStruct = struct("object_type_struct", [
4736 ObjectNameStruct = struct("object_name_struct", [
4739 ObjectIDStruct = struct("object_id_struct", [
4743 OpnFilesStruct = struct("opn_files_struct", [
4749 DOSParentDirectoryEntry,
4754 ], "Open Files Information")
4755 OwnerIDStruct = struct("owner_id_struct", [
4758 PacketBurstInformation = struct("packet_burst_information", [
4759 uint32("big_invalid_slot", "Big Invalid Slot Count"),
4760 uint32("big_forged_packet", "Big Forged Packet Count"),
4761 uint32("big_invalid_packet", "Big Invalid Packet Count"),
4762 uint32("big_still_transmitting", "Big Still Transmitting Count"),
4763 uint32("still_doing_the_last_req", "Still Doing The Last Request Count"),
4764 uint32("invalid_control_req", "Invalid Control Request Count"),
4765 uint32("control_invalid_message_number", "Control Invalid Message Number Count"),
4766 uint32("control_being_torn_down", "Control Being Torn Down Count"),
4767 uint32("big_repeat_the_file_read", "Big Repeat the File Read Count"),
4768 uint32("big_send_extra_cc_count", "Big Send Extra CC Count"),
4769 uint32("big_return_abort_mess", "Big Return Abort Message Count"),
4770 uint32("big_read_invalid_mess", "Big Read Invalid Message Number Count"),
4771 uint32("big_read_do_it_over", "Big Read Do It Over Count"),
4772 uint32("big_read_being_torn_down", "Big Read Being Torn Down Count"),
4773 uint32("previous_control_packet", "Previous Control Packet Count"),
4774 uint32("send_hold_off_message", "Send Hold Off Message Count"),
4775 uint32("big_read_no_data_avail", "Big Read No Data Available Count"),
4776 uint32("big_read_trying_to_read", "Big Read Trying To Read Too Much Count"),
4777 uint32("async_read_error", "Async Read Error Count"),
4778 uint32("big_read_phy_read_err", "Big Read Physical Read Error Count"),
4779 uint32("ctl_bad_ack_frag_list", "Control Bad ACK Fragment List Count"),
4780 uint32("ctl_no_data_read", "Control No Data Read Count"),
4781 uint32("write_dup_req", "Write Duplicate Request Count"),
4782 uint32("shouldnt_be_ack_here", "Shouldn't Be ACKing Here Count"),
4783 uint32("write_incon_packet_len", "Write Inconsistent Packet Lengths Count"),
4784 uint32("first_packet_isnt_a_write", "First Packet Isn't A Write Count"),
4785 uint32("write_trash_dup_req", "Write Trashed Duplicate Request Count"),
4786 uint32("big_write_inv_message_num", "Big Write Invalid Message Number Count"),
4787 uint32("big_write_being_torn_down", "Big Write Being Torn Down Count"),
4788 uint32("big_write_being_abort", "Big Write Being Aborted Count"),
4789 uint32("zero_ack_frag", "Zero ACK Fragment Count"),
4790 uint32("write_curr_trans", "Write Currently Transmitting Count"),
4791 uint32("try_to_write_too_much", "Trying To Write Too Much Count"),
4792 uint32("write_out_of_mem_for_ctl_nodes", "Write Out Of Memory For Control Nodes Count"),
4793 uint32("write_didnt_need_this_frag", "Write Didn't Need This Fragment Count"),
4794 uint32("write_too_many_buf_check", "Write Too Many Buffers Checked Out Count"),
4795 uint32("write_timeout", "Write Time Out Count"),
4796 uint32("write_got_an_ack0", "Write Got An ACK Count 0"),
4797 uint32("write_got_an_ack1", "Write Got An ACK Count 1"),
4798 uint32("poll_abort_conn", "Poller Aborted The Connnection Count"),
4799 uint32("may_had_out_of_order", "Maybe Had Out Of Order Writes Count"),
4800 uint32("had_an_out_of_order", "Had An Out Of Order Write Count"),
4801 uint32("moved_the_ack_bit_dn", "Moved The ACK Bit Down Count"),
4802 uint32("bumped_out_of_order", "Bumped Out Of Order Write Count"),
4803 uint32("poll_rem_old_out_of_order", "Poller Removed Old Out Of Order Count"),
4804 uint32("write_didnt_need_but_req_ack", "Write Didn't Need But Requested ACK Count"),
4805 uint32("write_trash_packet", "Write Trashed Packet Count"),
4806 uint32("too_many_ack_frag", "Too Many ACK Fragments Count"),
4807 uint32("saved_an_out_of_order_packet", "Saved An Out Of Order Packet Count"),
4808 uint32("conn_being_aborted", "Connection Being Aborted Count"),
4809 ], "Packet Burst Information")
4811 PadDSSpaceAllocate = struct("pad_ds_space_alloc", [
4814 PadAttributes = struct("pad_attributes", [
4817 PadDataStreamSize = struct("pad_data_stream_size", [
4820 PadTotalStreamSize = struct("pad_total_stream_size", [
4823 PadCreationInfo = struct("pad_creation_info", [
4826 PadModifyInfo = struct("pad_modify_info", [
4829 PadArchiveInfo = struct("pad_archive_info", [
4832 PadRightsInfo = struct("pad_rights_info", [
4835 PadDirEntry = struct("pad_dir_entry", [
4838 PadEAInfo = struct("pad_ea_info", [
4841 PadNSInfo = struct("pad_ns_info", [
4844 PhyLockStruct = struct("phy_lock_struct", [
4849 LogicalConnectionNumber,
4852 ], "Physical Locks")
4853 printInfo = struct("print_info_struct", [
4861 ], "Print Information")
4862 RightsInfoStruct = struct("rights_info_struct", [
4863 InheritedRightsMask,
4865 RoutersInfo = struct("routers_info", [
4866 bytes("node", "Node", 6),
4868 uint16("route_hops", "Hop Count"),
4869 uint16("route_time", "Route Time"),
4870 ], "Router Information")
4871 RTagStructure = struct("r_tag_struct", [
4877 ScanInfoFileName = struct("scan_info_file_name", [
4878 SalvageableFileEntryNumber,
4881 ScanInfoFileNoName = struct("scan_info_file_no_name", [
4882 SalvageableFileEntryNumber,
4884 Segments = struct("segments", [
4885 uint32("volume_segment_dev_num", "Volume Segment Device Number"),
4886 uint32("volume_segment_offset", "Volume Segment Offset"),
4887 uint32("volume_segment_size", "Volume Segment Size"),
4888 ], "Volume Segment Information")
4889 SemaInfoStruct = struct("sema_info_struct", [
4890 LogicalConnectionNumber,
4893 SemaStruct = struct("sema_struct", [
4898 ], "Semaphore Information")
4899 ServerInfo = struct("server_info", [
4900 uint32("reply_canceled", "Reply Canceled Count"),
4901 uint32("write_held_off", "Write Held Off Count"),
4902 uint32("write_held_off_with_dup", "Write Held Off With Duplicate Request"),
4903 uint32("invalid_req_type", "Invalid Request Type Count"),
4904 uint32("being_aborted", "Being Aborted Count"),
4905 uint32("already_doing_realloc", "Already Doing Re-Allocate Count"),
4906 uint32("dealloc_invalid_slot", "De-Allocate Invalid Slot Count"),
4907 uint32("dealloc_being_proc", "De-Allocate Being Processed Count"),
4908 uint32("dealloc_forged_packet", "De-Allocate Forged Packet Count"),
4909 uint32("dealloc_still_transmit", "De-Allocate Still Transmitting Count"),
4910 uint32("start_station_error", "Start Station Error Count"),
4911 uint32("invalid_slot", "Invalid Slot Count"),
4912 uint32("being_processed", "Being Processed Count"),
4913 uint32("forged_packet", "Forged Packet Count"),
4914 uint32("still_transmitting", "Still Transmitting Count"),
4915 uint32("reexecute_request", "Re-Execute Request Count"),
4916 uint32("invalid_sequence_number", "Invalid Sequence Number Count"),
4917 uint32("dup_is_being_sent", "Duplicate Is Being Sent Already Count"),
4918 uint32("sent_pos_ack", "Sent Positive Acknowledge Count"),
4919 uint32("sent_a_dup_reply", "Sent A Duplicate Reply Count"),
4920 uint32("no_mem_for_station", "No Memory For Station Control Count"),
4921 uint32("no_avail_conns", "No Available Connections Count"),
4922 uint32("realloc_slot", "Re-Allocate Slot Count"),
4923 uint32("realloc_slot_came_too_soon", "Re-Allocate Slot Came Too Soon Count"),
4924 ], "Server Information")
4925 ServersSrcInfo = struct("servers_src_info", [
4929 ], "Source Server Information")
4930 SpaceStruct = struct("space_struct", [
4934 ], "Space Information")
4935 SPXInformation = struct("spx_information", [
4936 uint16("spx_max_conn", "SPX Max Connections Count"),
4937 uint16("spx_max_used_conn", "SPX Max Used Connections"),
4938 uint16("spx_est_conn_req", "SPX Establish Connection Requests"),
4939 uint16("spx_est_conn_fail", "SPX Establish Connection Fail"),
4940 uint16("spx_listen_con_req", "SPX Listen Connect Request"),
4941 uint16("spx_listen_con_fail", "SPX Listen Connect Fail"),
4942 uint32("spx_send", "SPX Send Count"),
4943 uint32("spx_window_choke", "SPX Window Choke Count"),
4944 uint16("spx_bad_send", "SPX Bad Send Count"),
4945 uint16("spx_send_fail", "SPX Send Fail Count"),
4946 uint16("spx_abort_conn", "SPX Aborted Connection"),
4947 uint32("spx_listen_pkt", "SPX Listen Packet Count"),
4948 uint16("spx_bad_listen", "SPX Bad Listen Count"),
4949 uint32("spx_incoming_pkt", "SPX Incoming Packet Count"),
4950 uint16("spx_bad_in_pkt", "SPX Bad In Packet Count"),
4951 uint16("spx_supp_pkt", "SPX Suppressed Packet Count"),
4952 uint16("spx_no_ses_listen", "SPX No Session Listen ECB Count"),
4953 uint16("spx_watch_dog", "SPX Watch Dog Destination Session Count"),
4954 ], "SPX Information")
4955 StackInfo = struct("stack_info", [
4957 fw_string("stack_short_name", "Stack Short Name", 16),
4958 ], "Stack Information")
4959 statsInfo = struct("stats_info_struct", [
4964 theTimeStruct = struct("the_time_struct", [
4969 timeInfo = struct("time_info", [
4977 uint32("login_expiration_time", "Login Expiration Time"),
4979 TotalStreamSizeStruct = struct("total_stream_size_struct", [
4980 TotalDataStreamDiskSpaceAlloc,
4981 NumberOfDataStreams,
4983 TrendCounters = struct("trend_counters", [
4984 uint32("num_of_cache_checks", "Number Of Cache Checks"),
4985 uint32("num_of_cache_hits", "Number Of Cache Hits"),
4986 uint32("num_of_dirty_cache_checks", "Number Of Dirty Cache Checks"),
4987 uint32("num_of_cache_dirty_checks", "Number Of Cache Dirty Checks"),
4988 uint32("cache_used_while_check", "Cache Used While Checking"),
4989 uint32("wait_till_dirty_blcks_dec", "Wait Till Dirty Blocks Decrease Count"),
4990 uint32("alloc_blck_frm_avail", "Allocate Block From Available Count"),
4991 uint32("alloc_blck_frm_lru", "Allocate Block From LRU Count"),
4992 uint32("alloc_blck_already_wait", "Allocate Block Already Waiting"),
4993 uint32("lru_sit_time", "LRU Sitting Time"),
4994 uint32("num_of_cache_check_no_wait", "Number Of Cache Check No Wait"),
4995 uint32("num_of_cache_hits_no_wait", "Number Of Cache Hits No Wait"),
4996 ], "Trend Counters")
4997 TrusteeStruct = struct("trustee_struct", [
4999 AccessRightsMaskWord,
5001 UpdateDateStruct = struct("update_date_struct", [
5004 UpdateIDStruct = struct("update_id_struct", [
5007 UpdateTimeStruct = struct("update_time_struct", [
5010 UserInformation = struct("user_info", [
5014 ConnectionServiceType,
5027 TransactionTrackingFlag,
5028 LogicalLockThreshold,
5040 ], "User Information")
5041 VolInfoStructure = struct("vol_info_struct", [
5046 SectorsPerClusterLong,
5047 VolumeSizeInClusters,
5049 SubAllocFreeableClusters,
5050 FreeableLimboSectors,
5051 NonFreeableLimboSectors,
5052 NonFreeableAvailableSubAllocSectors,
5053 NotUsableSubAllocSectors,
5056 LimboDataStreamsCount,
5057 OldestDeletedFileAgeInTicks,
5058 CompressedDataStreamsCount,
5059 CompressedLimboDataStreamsCount,
5060 UnCompressableDataStreamsCount,
5061 PreCompressedSectors,
5066 ClustersUsedByDirectories,
5067 ClustersUsedByExtendedDirectories,
5068 TotalDirectoryEntries,
5069 UnUsedDirectoryEntries,
5070 TotalExtendedDirectoryExtants,
5071 UnUsedExtendedDirectoryExtants,
5072 ExtendedAttributesDefined,
5073 ExtendedAttributeExtantsUsed,
5074 DirectoryServicesObjectID,
5075 VolumeLastModifiedTime,
5076 VolumeLastModifiedDate,
5077 ], "Volume Information")
5078 VolInfo2Struct = struct("vol_info_struct_2", [
5079 uint32("volume_active_count", "Volume Active Count"),
5080 uint32("volume_use_count", "Volume Use Count"),
5081 uint32("mac_root_ids", "MAC Root IDs"),
5082 VolumeLastModifiedTime,
5083 VolumeLastModifiedDate,
5084 uint32("volume_reference_count", "Volume Reference Count"),
5085 uint32("compression_lower_limit", "Compression Lower Limit"),
5086 uint32("outstanding_ios", "Outstanding IOs"),
5087 uint32("outstanding_compression_ios", "Outstanding Compression IOs"),
5088 uint32("compression_ios_limit", "Compression IOs Limit"),
5089 ], "Extended Volume Information")
5090 VolumeStruct = struct("volume_struct", [
5096 ##############################################################################
5098 ##############################################################################
5099 def define_groups():
5100 groups['accounting'] = "Accounting"
5101 groups['afp'] = "AFP"
5102 groups['auditing'] = "Auditing"
5103 groups['bindery'] = "Bindery"
5104 groups['comm'] = "Communication"
5105 groups['connection'] = "Connection"
5106 groups['directory'] = "Directory"
5107 groups['extended'] = "Extended Attribute"
5108 groups['file'] = "File"
5109 groups['fileserver'] = "File Server"
5110 groups['message'] = "Message"
5111 groups['migration'] = "Data Migration"
5112 groups['misc'] = "Miscellaneous"
5113 groups['name'] = "Name Space"
5114 groups['nds'] = "NetWare Directory"
5115 groups['print'] = "Print"
5116 groups['queue'] = "Queue"
5117 groups['sync'] = "Synchronization"
5118 groups['tts'] = "Transaction Tracking"
5119 groups['qms'] = "Queue Management System (QMS)"
5120 groups['stats'] = "Server Statistics"
5121 groups['nmas'] = "Novell Modular Authentication Service"
5122 groups['sss'] = "SecretStore Services"
5123 groups['unknown'] = "Unknown"
5125 ##############################################################################
5127 ##############################################################################
5128 def define_errors():
5129 errors[0x0000] = "Ok"
5130 errors[0x0001] = "Transaction tracking is available"
5131 errors[0x0002] = "Ok. The data has been written"
5132 errors[0x0003] = "Calling Station is a Manager"
5134 errors[0x0100] = "One or more of the Connection Numbers in the send list are invalid"
5135 errors[0x0101] = "Invalid space limit"
5136 errors[0x0102] = "Insufficient disk space"
5137 errors[0x0103] = "Queue server cannot add jobs"
5138 errors[0x0104] = "Out of disk space"
5139 errors[0x0105] = "Semaphore overflow"
5140 errors[0x0106] = "Invalid Parameter"
5141 errors[0x0107] = "Invalid Number of Minutes to Delay"
5142 errors[0x0108] = "Invalid Start or Network Number"
5143 errors[0x0109] = "Cannot Obtain License"
5145 errors[0x0200] = "One or more clients in the send list are not logged in"
5146 errors[0x0201] = "Queue server cannot attach"
5148 errors[0x0300] = "One or more clients in the send list are not accepting messages"
5150 errors[0x0400] = "Client already has message"
5151 errors[0x0401] = "Queue server cannot service job"
5153 errors[0x7300] = "Revoke Handle Rights Not Found"
5154 errors[0x7900] = "Invalid Parameter in Request Packet"
5155 errors[0x7901] = "Nothing being Compressed"
5156 errors[0x7a00] = "Connection Already Temporary"
5157 errors[0x7b00] = "Connection Already Logged in"
5158 errors[0x7c00] = "Connection Not Authenticated"
5160 errors[0x7e00] = "NCP failed boundary check"
5161 errors[0x7e01] = "Invalid Length"
5163 errors[0x7f00] = "Lock Waiting"
5164 errors[0x8000] = "Lock fail"
5165 errors[0x8001] = "File in Use"
5167 errors[0x8100] = "A file handle could not be allocated by the file server"
5168 errors[0x8101] = "Out of File Handles"
5170 errors[0x8200] = "Unauthorized to open the file"
5171 errors[0x8300] = "Unable to read/write the volume. Possible bad sector on the file server"
5172 errors[0x8301] = "Hard I/O Error"
5174 errors[0x8400] = "Unauthorized to create the directory"
5175 errors[0x8401] = "Unauthorized to create the file"
5177 errors[0x8500] = "Unauthorized to delete the specified file"
5178 errors[0x8501] = "Unauthorized to overwrite an existing file in this directory"
5180 errors[0x8700] = "An unexpected character was encountered in the filename"
5181 errors[0x8701] = "Create Filename Error"
5183 errors[0x8800] = "Invalid file handle"
5184 errors[0x8900] = "Unauthorized to search this file/directory"
5185 errors[0x8a00] = "Unauthorized to delete this file/directory"
5186 errors[0x8b00] = "Unauthorized to rename a file in this directory"
5188 errors[0x8c00] = "No set privileges"
5189 errors[0x8c01] = "Unauthorized to modify a file in this directory"
5190 errors[0x8c02] = "Unauthorized to change the restriction on this volume"
5192 errors[0x8d00] = "Some of the affected files are in use by another client"
5193 errors[0x8d01] = "The affected file is in use"
5195 errors[0x8e00] = "All of the affected files are in use by another client"
5196 errors[0x8f00] = "Some of the affected files are read-only"
5198 errors[0x9000] = "An attempt to modify a read-only volume occurred"
5199 errors[0x9001] = "All of the affected files are read-only"
5200 errors[0x9002] = "Read Only Access to Volume"
5202 errors[0x9100] = "Some of the affected files already exist"
5203 errors[0x9101] = "Some Names Exist"
5205 errors[0x9200] = "Directory with the new name already exists"
5206 errors[0x9201] = "All of the affected files already exist"
5208 errors[0x9300] = "Unauthorized to read from this file"
5209 errors[0x9400] = "Unauthorized to write to this file"
5210 errors[0x9500] = "The affected file is detached"
5212 errors[0x9600] = "The file server has run out of memory to service this request"
5213 errors[0x9601] = "No alloc space for message"
5214 errors[0x9602] = "Server Out of Space"
5216 errors[0x9800] = "The affected volume is not mounted"
5217 errors[0x9801] = "The volume associated with Volume Number is not mounted"
5218 errors[0x9802] = "The resulting volume does not exist"
5219 errors[0x9803] = "The destination volume is not mounted"
5220 errors[0x9804] = "Disk Map Error"
5222 errors[0x9900] = "The file server has run out of directory space on the affected volume"
5223 errors[0x9a00] = "Invalid request to rename the affected file to another volume"
5225 errors[0x9b00] = "DirHandle is not associated with a valid directory path"
5226 errors[0x9b01] = "A resulting directory handle is not associated with a valid directory path"
5227 errors[0x9b02] = "The directory associated with DirHandle does not exist"
5228 errors[0x9b03] = "Bad directory handle"
5230 errors[0x9c00] = "The resulting path is not valid"
5231 errors[0x9c01] = "The resulting file path is not valid"
5232 errors[0x9c02] = "The resulting directory path is not valid"
5233 errors[0x9c03] = "Invalid path"
5235 errors[0x9d00] = "A directory handle was not available for allocation"
5237 errors[0x9e00] = "The name of the directory does not conform to a legal name for this name space"
5238 errors[0x9e01] = "The new directory name does not conform to a legal name for this name space"
5239 errors[0x9e02] = "Bad File Name"
5241 errors[0x9f00] = "The request attempted to delete a directory that is in use by another client"
5243 errors[0xa000] = "The request attempted to delete a directory that is not empty"
5244 errors[0xa100] = "An unrecoverable error occured on the affected directory"
5246 errors[0xa200] = "The request attempted to read from a file region that is physically locked"
5247 errors[0xa201] = "I/O Lock Error"
5249 errors[0xa400] = "Invalid directory rename attempted"
5250 errors[0xa500] = "Invalid open create mode"
5251 errors[0xa600] = "Auditor Access has been Removed"
5252 errors[0xa700] = "Error Auditing Version"
5254 errors[0xa800] = "Invalid Support Module ID"
5255 errors[0xa801] = "No Auditing Access Rights"
5256 errors[0xa802] = "No Access Rights"
5258 errors[0xbe00] = "Invalid Data Stream"
5259 errors[0xbf00] = "Requests for this name space are not valid on this volume"
5261 errors[0xc000] = "Unauthorized to retrieve accounting data"
5263 errors[0xc100] = "The ACCOUNT_BALANCE property does not exist"
5264 errors[0xc101] = "No Account Balance"
5266 errors[0xc200] = "The object has exceeded its credit limit"
5267 errors[0xc300] = "Too many holds have been placed against this account"
5268 errors[0xc400] = "The client account has been disabled"
5270 errors[0xc500] = "Access to the account has been denied because of intruder detection"
5271 errors[0xc501] = "Login lockout"
5272 errors[0xc502] = "Server Login Locked"
5274 errors[0xc600] = "The caller does not have operator priviliges"
5275 errors[0xc601] = "The client does not have operator priviliges"
5277 errors[0xc800] = "Missing EA Key"
5278 errors[0xc900] = "EA Not Found"
5279 errors[0xca00] = "Invalid EA Handle Type"
5280 errors[0xcb00] = "EA No Key No Data"
5281 errors[0xcc00] = "EA Number Mismatch"
5282 errors[0xcd00] = "Extent Number Out of Range"
5283 errors[0xce00] = "EA Bad Directory Number"
5284 errors[0xcf00] = "Invalid EA Handle"
5286 errors[0xd000] = "Queue error"
5287 errors[0xd001] = "EA Position Out of Range"
5289 errors[0xd100] = "The queue does not exist"
5290 errors[0xd101] = "EA Access Denied"
5292 errors[0xd200] = "A queue server is not associated with this queue"
5293 errors[0xd201] = "A queue server is not associated with the selected queue"
5294 errors[0xd202] = "No queue server"
5295 errors[0xd203] = "Data Page Odd Size"
5297 errors[0xd300] = "No queue rights"
5298 errors[0xd301] = "EA Volume Not Mounted"
5300 errors[0xd400] = "The queue is full and cannot accept another request"
5301 errors[0xd401] = "The queue associated with ObjectId is full and cannot accept another request"
5302 errors[0xd402] = "Bad Page Boundary"
5304 errors[0xd500] = "A job does not exist in this queue"
5305 errors[0xd501] = "No queue job"
5306 errors[0xd502] = "The job associated with JobNumber does not exist in this queue"
5307 errors[0xd503] = "Inspect Failure"
5308 errors[0xd504] = "Unknown NCP Extension Number"
5310 errors[0xd600] = "The file server does not allow unencrypted passwords"
5311 errors[0xd601] = "No job right"
5312 errors[0xd602] = "EA Already Claimed"
5314 errors[0xd700] = "Bad account"
5315 errors[0xd701] = "The old and new password strings are identical"
5316 errors[0xd702] = "The job is currently being serviced"
5317 errors[0xd703] = "The queue is currently servicing a job"
5318 errors[0xd704] = "Queue servicing"
5319 errors[0xd705] = "Odd Buffer Size"
5321 errors[0xd800] = "Queue not active"
5322 errors[0xd801] = "No Scorecards"
5324 errors[0xd900] = "The file server cannot accept another connection as it has reached its limit"
5325 errors[0xd901] = "The client is not security equivalent to one of the objects in the Q_SERVERS group property of the target queue"
5326 errors[0xd902] = "Station is not a server"
5327 errors[0xd903] = "Bad EDS Signature"
5328 errors[0xd904] = "Attempt to log in using an account which has limits on the number of concurrent connections and that number has been reached."
5330 errors[0xda00] = "Attempted to login to the file server during a restricted time period"
5331 errors[0xda01] = "Queue halted"
5332 errors[0xda02] = "EA Space Limit"
5334 errors[0xdb00] = "Attempted to login to the file server from an unauthorized workstation or network"
5335 errors[0xdb01] = "The queue cannot attach another queue server"
5336 errors[0xdb02] = "Maximum queue servers"
5337 errors[0xdb03] = "EA Key Corrupt"
5339 errors[0xdc00] = "Account Expired"
5340 errors[0xdc01] = "EA Key Limit"
5342 errors[0xdd00] = "Tally Corrupt"
5343 errors[0xde00] = "Attempted to login to the file server with an incorrect password"
5344 errors[0xdf00] = "Attempted to login to the file server with a password that has expired"
5346 errors[0xe000] = "No Login Connections Available"
5347 errors[0xe700] = "No disk track"
5348 errors[0xe800] = "Write to group"
5349 errors[0xe900] = "The object is already a member of the group property"
5351 errors[0xea00] = "No such member"
5352 errors[0xea01] = "The bindery object is not a member of the set"
5353 errors[0xea02] = "Non-existent member"
5355 errors[0xeb00] = "The property is not a set property"
5357 errors[0xec00] = "No such set"
5358 errors[0xec01] = "The set property does not exist"
5360 errors[0xed00] = "Property exists"
5361 errors[0xed01] = "The property already exists"
5362 errors[0xed02] = "An attempt was made to create a bindery object property that already exists"
5364 errors[0xee00] = "The object already exists"
5365 errors[0xee01] = "The bindery object already exists"
5367 errors[0xef00] = "Illegal name"
5368 errors[0xef01] = "Illegal characters in ObjectName field"
5369 errors[0xef02] = "Invalid name"
5371 errors[0xf000] = "A wildcard was detected in a field that does not support wildcards"
5372 errors[0xf001] = "An illegal wildcard was detected in ObjectName"
5374 errors[0xf100] = "The client does not have the rights to access this bindery object"
5375 errors[0xf101] = "Bindery security"
5376 errors[0xf102] = "Invalid bindery security"
5378 errors[0xf200] = "Unauthorized to read from this object"
5379 errors[0xf300] = "Unauthorized to rename this object"
5381 errors[0xf400] = "Unauthorized to delete this object"
5382 errors[0xf401] = "No object delete privileges"
5383 errors[0xf402] = "Unauthorized to delete this queue"
5385 errors[0xf500] = "Unauthorized to create this object"
5386 errors[0xf501] = "No object create"
5388 errors[0xf600] = "No property delete"
5389 errors[0xf601] = "Unauthorized to delete the property of this object"
5390 errors[0xf602] = "Unauthorized to delete this property"
5392 errors[0xf700] = "Unauthorized to create this property"
5393 errors[0xf701] = "No property create privilege"
5395 errors[0xf800] = "Unauthorized to write to this property"
5396 errors[0xf900] = "Unauthorized to read this property"
5397 errors[0xfa00] = "Temporary remap error"
5399 errors[0xfb00] = "No such property"
5400 errors[0xfb01] = "The file server does not support this request"
5401 errors[0xfb02] = "The specified property does not exist"
5402 errors[0xfb03] = "The PASSWORD property does not exist for this bindery object"
5403 errors[0xfb04] = "NDS NCP not available"
5404 errors[0xfb05] = "Bad Directory Handle"
5405 errors[0xfb06] = "Unknown Request"
5406 errors[0xfb07] = "Invalid Subfunction Request"
5407 errors[0xfb08] = "Attempt to use an invalid parameter (drive number, path, or flag value) during a set drive path call"
5408 errors[0xfb09] = "NMAS not running on this server, NCP NOT Supported"
5409 errors[0xfb0a] = "Station Not Logged In"
5410 errors[0xfb0b] = "Secret Store not running on this server, NCP Not supported"
5412 errors[0xfc00] = "The message queue cannot accept another message"
5413 errors[0xfc01] = "The trustee associated with ObjectId does not exist"
5414 errors[0xfc02] = "The specified bindery object does not exist"
5415 errors[0xfc03] = "The bindery object associated with ObjectID does not exist"
5416 errors[0xfc04] = "A bindery object does not exist that matches"
5417 errors[0xfc05] = "The specified queue does not exist"
5418 errors[0xfc06] = "No such object"
5419 errors[0xfc07] = "The queue associated with ObjectID does not exist"
5421 errors[0xfd00] = "Bad station number"
5422 errors[0xfd01] = "The connection associated with ConnectionNumber is not active"
5423 errors[0xfd02] = "Lock collision"
5424 errors[0xfd03] = "Transaction tracking is disabled"
5426 errors[0xfe00] = "I/O failure"
5427 errors[0xfe01] = "The files containing the bindery on the file server are locked"
5428 errors[0xfe02] = "A file with the specified name already exists in this directory"
5429 errors[0xfe03] = "No more restrictions were found"
5430 errors[0xfe04] = "The file server was unable to lock the file within the specified time limit"
5431 errors[0xfe05] = "The file server was unable to lock all files within the specified time limit"
5432 errors[0xfe06] = "The bindery object associated with ObjectID is not a valid trustee"
5433 errors[0xfe07] = "Directory locked"
5434 errors[0xfe08] = "Bindery locked"
5435 errors[0xfe09] = "Invalid semaphore name length"
5436 errors[0xfe0a] = "The file server was unable to complete the operation within the specified time limit"
5437 errors[0xfe0b] = "Transaction restart"
5438 errors[0xfe0c] = "Bad packet"
5439 errors[0xfe0d] = "Timeout"
5440 errors[0xfe0e] = "User Not Found"
5441 errors[0xfe0f] = "Trustee Not Found"
5443 errors[0xff00] = "Failure"
5444 errors[0xff01] = "Lock error"
5445 errors[0xff02] = "File not found"
5446 errors[0xff03] = "The file not found or cannot be unlocked"
5447 errors[0xff04] = "Record not found"
5448 errors[0xff05] = "The logical record was not found"
5449 errors[0xff06] = "The printer associated with Printer Number does not exist"
5450 errors[0xff07] = "No such printer"
5451 errors[0xff08] = "Unable to complete the request"
5452 errors[0xff09] = "Unauthorized to change privileges of this trustee"
5453 errors[0xff0a] = "No files matching the search criteria were found"
5454 errors[0xff0b] = "A file matching the search criteria was not found"
5455 errors[0xff0c] = "Verification failed"
5456 errors[0xff0d] = "Object associated with ObjectID is not a manager"
5457 errors[0xff0e] = "Invalid initial semaphore value"
5458 errors[0xff0f] = "The semaphore handle is not valid"
5459 errors[0xff10] = "SemaphoreHandle is not associated with a valid sempahore"
5460 errors[0xff11] = "Invalid semaphore handle"
5461 errors[0xff12] = "Transaction tracking is not available"
5462 errors[0xff13] = "The transaction has not yet been written to disk"
5463 errors[0xff14] = "Directory already exists"
5464 errors[0xff15] = "The file already exists and the deletion flag was not set"
5465 errors[0xff16] = "No matching files or directories were found"
5466 errors[0xff17] = "A file or directory matching the search criteria was not found"
5467 errors[0xff18] = "The file already exists"
5468 errors[0xff19] = "Failure, No files found"
5469 errors[0xff1a] = "Unlock Error"
5470 errors[0xff1b] = "I/O Bound Error"
5471 errors[0xff1c] = "Not Accepting Messages"
5472 errors[0xff1d] = "No More Salvageable Files in Directory"
5473 errors[0xff1e] = "Calling Station is Not a Manager"
5474 errors[0xff1f] = "Bindery Failure"
5475 errors[0xff20] = "NCP Extension Not Found"
5477 ##############################################################################
5479 ##############################################################################
5480 def ExamineVars(vars, structs_hash, vars_hash):
5482 if isinstance(var, struct):
5483 structs_hash[var.HFName()] = var
5484 struct_vars = var.Variables()
5485 ExamineVars(struct_vars, structs_hash, vars_hash)
5487 vars_hash[repr(var)] = var
5488 if isinstance(var, bitfield):
5489 sub_vars = var.SubVariables()
5490 ExamineVars(sub_vars, structs_hash, vars_hash)
5497 print " * Generated automatically from %s" % (sys.argv[0])
5498 print " * Do not edit this file manually, as all changes will be lost."
5503 * Portions Copyright (c) Gilbert Ramirez 2000-2002
5504 * Portions Copyright (c) Novell, Inc. 2000-2003
5506 * This program is free software; you can redistribute it and/or
5507 * modify it under the terms of the GNU General Public License
5508 * as published by the Free Software Foundation; either version 2
5509 * of the License, or (at your option) any later version.
5511 * This program is distributed in the hope that it will be useful,
5512 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5513 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5514 * GNU General Public License for more details.
5516 * You should have received a copy of the GNU General Public License
5517 * along with this program; if not, write to the Free Software
5518 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
5521 #ifdef HAVE_CONFIG_H
5522 # include "config.h"
5527 #include <epan/packet.h>
5528 #include <epan/conversation.h>
5529 #include "ptvcursor.h"
5530 #include "packet-ncp-int.h"
5531 #include <epan/strutil.h>
5532 #include "reassemble.h"
5534 /* Function declarations for functions used in proto_register_ncp2222() */
5535 static void ncp_init_protocol(void);
5536 static void ncp_postseq_cleanup(void);
5538 /* Endianness macros */
5541 #define NO_ENDIANNESS 0
5543 #define NO_LENGTH -1
5545 /* We use this int-pointer as a special flag in ptvc_record's */
5546 static int ptvc_struct_int_storage;
5547 #define PTVC_STRUCT (&ptvc_struct_int_storage)
5549 /* Values used in the count-variable ("var"/"repeat") logic. */"""
5552 if global_highest_var > -1:
5553 print "#define NUM_REPEAT_VARS\t%d" % (global_highest_var + 1)
5554 print "guint repeat_vars[NUM_REPEAT_VARS];",
5556 print "#define NUM_REPEAT_VARS\t0"
5557 print "guint *repeat_vars = NULL;",
5560 #define NO_VAR NUM_REPEAT_VARS
5561 #define NO_REPEAT NUM_REPEAT_VARS
5563 #define REQ_COND_SIZE_CONSTANT 0
5564 #define REQ_COND_SIZE_VARIABLE 1
5565 #define NO_REQ_COND_SIZE 0
5568 #define NTREE 0x00020000
5569 #define NDEPTH 0x00000002
5570 #define NREV 0x00000004
5571 #define NFLAGS 0x00000008
5574 static int hf_ncp_func = -1;
5575 static int hf_ncp_length = -1;
5576 static int hf_ncp_subfunc = -1;
5577 static int hf_ncp_fragment_handle = -1;
5578 static int hf_ncp_completion_code = -1;
5579 static int hf_ncp_connection_status = -1;
5580 static int hf_ncp_req_frame_num = -1;
5581 static int hf_ncp_req_frame_time = -1;
5582 static int hf_ncp_fragment_size = -1;
5583 static int hf_ncp_message_size = -1;
5584 static int hf_ncp_nds_flag = -1;
5585 static int hf_ncp_nds_verb = -1;
5586 static int hf_ping_version = -1;
5587 static int hf_nds_version = -1;
5588 static int hf_nds_flags = -1;
5589 static int hf_nds_reply_depth = -1;
5590 static int hf_nds_reply_rev = -1;
5591 static int hf_nds_reply_flags = -1;
5592 static int hf_nds_p1type = -1;
5593 static int hf_nds_uint32value = -1;
5594 static int hf_nds_bit1 = -1;
5595 static int hf_nds_bit2 = -1;
5596 static int hf_nds_bit3 = -1;
5597 static int hf_nds_bit4 = -1;
5598 static int hf_nds_bit5 = -1;
5599 static int hf_nds_bit6 = -1;
5600 static int hf_nds_bit7 = -1;
5601 static int hf_nds_bit8 = -1;
5602 static int hf_nds_bit9 = -1;
5603 static int hf_nds_bit10 = -1;
5604 static int hf_nds_bit11 = -1;
5605 static int hf_nds_bit12 = -1;
5606 static int hf_nds_bit13 = -1;
5607 static int hf_nds_bit14 = -1;
5608 static int hf_nds_bit15 = -1;
5609 static int hf_nds_bit16 = -1;
5610 static int hf_bit1outflags = -1;
5611 static int hf_bit2outflags = -1;
5612 static int hf_bit3outflags = -1;
5613 static int hf_bit4outflags = -1;
5614 static int hf_bit5outflags = -1;
5615 static int hf_bit6outflags = -1;
5616 static int hf_bit7outflags = -1;
5617 static int hf_bit8outflags = -1;
5618 static int hf_bit9outflags = -1;
5619 static int hf_bit10outflags = -1;
5620 static int hf_bit11outflags = -1;
5621 static int hf_bit12outflags = -1;
5622 static int hf_bit13outflags = -1;
5623 static int hf_bit14outflags = -1;
5624 static int hf_bit15outflags = -1;
5625 static int hf_bit16outflags = -1;
5626 static int hf_bit1nflags = -1;
5627 static int hf_bit2nflags = -1;
5628 static int hf_bit3nflags = -1;
5629 static int hf_bit4nflags = -1;
5630 static int hf_bit5nflags = -1;
5631 static int hf_bit6nflags = -1;
5632 static int hf_bit7nflags = -1;
5633 static int hf_bit8nflags = -1;
5634 static int hf_bit9nflags = -1;
5635 static int hf_bit10nflags = -1;
5636 static int hf_bit11nflags = -1;
5637 static int hf_bit12nflags = -1;
5638 static int hf_bit13nflags = -1;
5639 static int hf_bit14nflags = -1;
5640 static int hf_bit15nflags = -1;
5641 static int hf_bit16nflags = -1;
5642 static int hf_bit1rflags = -1;
5643 static int hf_bit2rflags = -1;
5644 static int hf_bit3rflags = -1;
5645 static int hf_bit4rflags = -1;
5646 static int hf_bit5rflags = -1;
5647 static int hf_bit6rflags = -1;
5648 static int hf_bit7rflags = -1;
5649 static int hf_bit8rflags = -1;
5650 static int hf_bit9rflags = -1;
5651 static int hf_bit10rflags = -1;
5652 static int hf_bit11rflags = -1;
5653 static int hf_bit12rflags = -1;
5654 static int hf_bit13rflags = -1;
5655 static int hf_bit14rflags = -1;
5656 static int hf_bit15rflags = -1;
5657 static int hf_bit16rflags = -1;
5658 static int hf_bit1cflags = -1;
5659 static int hf_bit2cflags = -1;
5660 static int hf_bit3cflags = -1;
5661 static int hf_bit4cflags = -1;
5662 static int hf_bit5cflags = -1;
5663 static int hf_bit6cflags = -1;
5664 static int hf_bit7cflags = -1;
5665 static int hf_bit8cflags = -1;
5666 static int hf_bit9cflags = -1;
5667 static int hf_bit10cflags = -1;
5668 static int hf_bit11cflags = -1;
5669 static int hf_bit12cflags = -1;
5670 static int hf_bit13cflags = -1;
5671 static int hf_bit14cflags = -1;
5672 static int hf_bit15cflags = -1;
5673 static int hf_bit16cflags = -1;
5674 static int hf_bit1acflags = -1;
5675 static int hf_bit2acflags = -1;
5676 static int hf_bit3acflags = -1;
5677 static int hf_bit4acflags = -1;
5678 static int hf_bit5acflags = -1;
5679 static int hf_bit6acflags = -1;
5680 static int hf_bit7acflags = -1;
5681 static int hf_bit8acflags = -1;
5682 static int hf_bit9acflags = -1;
5683 static int hf_bit10acflags = -1;
5684 static int hf_bit11acflags = -1;
5685 static int hf_bit12acflags = -1;
5686 static int hf_bit13acflags = -1;
5687 static int hf_bit14acflags = -1;
5688 static int hf_bit15acflags = -1;
5689 static int hf_bit16acflags = -1;
5690 static int hf_bit1vflags = -1;
5691 static int hf_bit2vflags = -1;
5692 static int hf_bit3vflags = -1;
5693 static int hf_bit4vflags = -1;
5694 static int hf_bit5vflags = -1;
5695 static int hf_bit6vflags = -1;
5696 static int hf_bit7vflags = -1;
5697 static int hf_bit8vflags = -1;
5698 static int hf_bit9vflags = -1;
5699 static int hf_bit10vflags = -1;
5700 static int hf_bit11vflags = -1;
5701 static int hf_bit12vflags = -1;
5702 static int hf_bit13vflags = -1;
5703 static int hf_bit14vflags = -1;
5704 static int hf_bit15vflags = -1;
5705 static int hf_bit16vflags = -1;
5706 static int hf_bit1eflags = -1;
5707 static int hf_bit2eflags = -1;
5708 static int hf_bit3eflags = -1;
5709 static int hf_bit4eflags = -1;
5710 static int hf_bit5eflags = -1;
5711 static int hf_bit6eflags = -1;
5712 static int hf_bit7eflags = -1;
5713 static int hf_bit8eflags = -1;
5714 static int hf_bit9eflags = -1;
5715 static int hf_bit10eflags = -1;
5716 static int hf_bit11eflags = -1;
5717 static int hf_bit12eflags = -1;
5718 static int hf_bit13eflags = -1;
5719 static int hf_bit14eflags = -1;
5720 static int hf_bit15eflags = -1;
5721 static int hf_bit16eflags = -1;
5722 static int hf_bit1infoflagsl = -1;
5723 static int hf_bit2infoflagsl = -1;
5724 static int hf_bit3infoflagsl = -1;
5725 static int hf_bit4infoflagsl = -1;
5726 static int hf_bit5infoflagsl = -1;
5727 static int hf_bit6infoflagsl = -1;
5728 static int hf_bit7infoflagsl = -1;
5729 static int hf_bit8infoflagsl = -1;
5730 static int hf_bit9infoflagsl = -1;
5731 static int hf_bit10infoflagsl = -1;
5732 static int hf_bit11infoflagsl = -1;
5733 static int hf_bit12infoflagsl = -1;
5734 static int hf_bit13infoflagsl = -1;
5735 static int hf_bit14infoflagsl = -1;
5736 static int hf_bit15infoflagsl = -1;
5737 static int hf_bit16infoflagsl = -1;
5738 static int hf_bit1infoflagsh = -1;
5739 static int hf_bit2infoflagsh = -1;
5740 static int hf_bit3infoflagsh = -1;
5741 static int hf_bit4infoflagsh = -1;
5742 static int hf_bit5infoflagsh = -1;
5743 static int hf_bit6infoflagsh = -1;
5744 static int hf_bit7infoflagsh = -1;
5745 static int hf_bit8infoflagsh = -1;
5746 static int hf_bit9infoflagsh = -1;
5747 static int hf_bit10infoflagsh = -1;
5748 static int hf_bit11infoflagsh = -1;
5749 static int hf_bit12infoflagsh = -1;
5750 static int hf_bit13infoflagsh = -1;
5751 static int hf_bit14infoflagsh = -1;
5752 static int hf_bit15infoflagsh = -1;
5753 static int hf_bit16infoflagsh = -1;
5754 static int hf_bit1lflags = -1;
5755 static int hf_bit2lflags = -1;
5756 static int hf_bit3lflags = -1;
5757 static int hf_bit4lflags = -1;
5758 static int hf_bit5lflags = -1;
5759 static int hf_bit6lflags = -1;
5760 static int hf_bit7lflags = -1;
5761 static int hf_bit8lflags = -1;
5762 static int hf_bit9lflags = -1;
5763 static int hf_bit10lflags = -1;
5764 static int hf_bit11lflags = -1;
5765 static int hf_bit12lflags = -1;
5766 static int hf_bit13lflags = -1;
5767 static int hf_bit14lflags = -1;
5768 static int hf_bit15lflags = -1;
5769 static int hf_bit16lflags = -1;
5770 static int hf_bit1l1flagsl = -1;
5771 static int hf_bit2l1flagsl = -1;
5772 static int hf_bit3l1flagsl = -1;
5773 static int hf_bit4l1flagsl = -1;
5774 static int hf_bit5l1flagsl = -1;
5775 static int hf_bit6l1flagsl = -1;
5776 static int hf_bit7l1flagsl = -1;
5777 static int hf_bit8l1flagsl = -1;
5778 static int hf_bit9l1flagsl = -1;
5779 static int hf_bit10l1flagsl = -1;
5780 static int hf_bit11l1flagsl = -1;
5781 static int hf_bit12l1flagsl = -1;
5782 static int hf_bit13l1flagsl = -1;
5783 static int hf_bit14l1flagsl = -1;
5784 static int hf_bit15l1flagsl = -1;
5785 static int hf_bit16l1flagsl = -1;
5786 static int hf_bit1l1flagsh = -1;
5787 static int hf_bit2l1flagsh = -1;
5788 static int hf_bit3l1flagsh = -1;
5789 static int hf_bit4l1flagsh = -1;
5790 static int hf_bit5l1flagsh = -1;
5791 static int hf_bit6l1flagsh = -1;
5792 static int hf_bit7l1flagsh = -1;
5793 static int hf_bit8l1flagsh = -1;
5794 static int hf_bit9l1flagsh = -1;
5795 static int hf_bit10l1flagsh = -1;
5796 static int hf_bit11l1flagsh = -1;
5797 static int hf_bit12l1flagsh = -1;
5798 static int hf_bit13l1flagsh = -1;
5799 static int hf_bit14l1flagsh = -1;
5800 static int hf_bit15l1flagsh = -1;
5801 static int hf_bit16l1flagsh = -1;
5802 static int hf_nds_tree_name = -1;
5803 static int hf_nds_reply_error = -1;
5804 static int hf_nds_net = -1;
5805 static int hf_nds_node = -1;
5806 static int hf_nds_socket = -1;
5807 static int hf_add_ref_ip = -1;
5808 static int hf_add_ref_udp = -1;
5809 static int hf_add_ref_tcp = -1;
5810 static int hf_referral_record = -1;
5811 static int hf_referral_addcount = -1;
5812 static int hf_nds_port = -1;
5813 static int hf_mv_string = -1;
5814 static int hf_nds_syntax = -1;
5815 static int hf_value_string = -1;
5816 static int hf_nds_buffer_size = -1;
5817 static int hf_nds_ver = -1;
5818 static int hf_nds_nflags = -1;
5819 static int hf_nds_scope = -1;
5820 static int hf_nds_name = -1;
5821 static int hf_nds_comm_trans = -1;
5822 static int hf_nds_tree_trans = -1;
5823 static int hf_nds_iteration = -1;
5824 static int hf_nds_eid = -1;
5825 static int hf_nds_info_type = -1;
5826 static int hf_nds_all_attr = -1;
5827 static int hf_nds_req_flags = -1;
5828 static int hf_nds_attr = -1;
5829 static int hf_nds_crc = -1;
5830 static int hf_nds_referrals = -1;
5831 static int hf_nds_result_flags = -1;
5832 static int hf_nds_tag_string = -1;
5833 static int hf_value_bytes = -1;
5834 static int hf_replica_type = -1;
5835 static int hf_replica_state = -1;
5836 static int hf_replica_number = -1;
5837 static int hf_min_nds_ver = -1;
5838 static int hf_nds_ver_include = -1;
5839 static int hf_nds_ver_exclude = -1;
5840 static int hf_nds_es = -1;
5841 static int hf_es_type = -1;
5842 static int hf_delim_string = -1;
5843 static int hf_rdn_string = -1;
5844 static int hf_nds_revent = -1;
5845 static int hf_nds_rnum = -1;
5846 static int hf_nds_name_type = -1;
5847 static int hf_nds_rflags = -1;
5848 static int hf_nds_eflags = -1;
5849 static int hf_nds_depth = -1;
5850 static int hf_nds_class_def_type = -1;
5851 static int hf_nds_classes = -1;
5852 static int hf_nds_return_all_classes = -1;
5853 static int hf_nds_stream_flags = -1;
5854 static int hf_nds_stream_name = -1;
5855 static int hf_nds_file_handle = -1;
5856 static int hf_nds_file_size = -1;
5857 static int hf_nds_dn_output_type = -1;
5858 static int hf_nds_nested_output_type = -1;
5859 static int hf_nds_output_delimiter = -1;
5860 static int hf_nds_output_entry_specifier = -1;
5861 static int hf_es_value = -1;
5862 static int hf_es_rdn_count = -1;
5863 static int hf_nds_replica_num = -1;
5864 static int hf_nds_event_num = -1;
5865 static int hf_es_seconds = -1;
5866 static int hf_nds_compare_results = -1;
5867 static int hf_nds_parent = -1;
5868 static int hf_nds_name_filter = -1;
5869 static int hf_nds_class_filter = -1;
5870 static int hf_nds_time_filter = -1;
5871 static int hf_nds_partition_root_id = -1;
5872 static int hf_nds_replicas = -1;
5873 static int hf_nds_purge = -1;
5874 static int hf_nds_local_partition = -1;
5875 static int hf_partition_busy = -1;
5876 static int hf_nds_number_of_changes = -1;
5877 static int hf_sub_count = -1;
5878 static int hf_nds_revision = -1;
5879 static int hf_nds_base_class = -1;
5880 static int hf_nds_relative_dn = -1;
5881 static int hf_nds_root_dn = -1;
5882 static int hf_nds_parent_dn = -1;
5883 static int hf_deref_base = -1;
5884 static int hf_nds_entry_info = -1;
5885 static int hf_nds_base = -1;
5886 static int hf_nds_privileges = -1;
5887 static int hf_nds_vflags = -1;
5888 static int hf_nds_value_len = -1;
5889 static int hf_nds_cflags = -1;
5890 static int hf_nds_acflags = -1;
5891 static int hf_nds_asn1 = -1;
5892 static int hf_nds_upper = -1;
5893 static int hf_nds_lower = -1;
5894 static int hf_nds_trustee_dn = -1;
5895 static int hf_nds_attribute_dn = -1;
5896 static int hf_nds_acl_add = -1;
5897 static int hf_nds_acl_del = -1;
5898 static int hf_nds_att_add = -1;
5899 static int hf_nds_att_del = -1;
5900 static int hf_nds_keep = -1;
5901 static int hf_nds_new_rdn = -1;
5902 static int hf_nds_time_delay = -1;
5903 static int hf_nds_root_name = -1;
5904 static int hf_nds_new_part_id = -1;
5905 static int hf_nds_child_part_id = -1;
5906 static int hf_nds_master_part_id = -1;
5907 static int hf_nds_target_name = -1;
5908 static int hf_nds_super = -1;
5909 static int hf_bit1pingflags2 = -1;
5910 static int hf_bit2pingflags2 = -1;
5911 static int hf_bit3pingflags2 = -1;
5912 static int hf_bit4pingflags2 = -1;
5913 static int hf_bit5pingflags2 = -1;
5914 static int hf_bit6pingflags2 = -1;
5915 static int hf_bit7pingflags2 = -1;
5916 static int hf_bit8pingflags2 = -1;
5917 static int hf_bit9pingflags2 = -1;
5918 static int hf_bit10pingflags2 = -1;
5919 static int hf_bit11pingflags2 = -1;
5920 static int hf_bit12pingflags2 = -1;
5921 static int hf_bit13pingflags2 = -1;
5922 static int hf_bit14pingflags2 = -1;
5923 static int hf_bit15pingflags2 = -1;
5924 static int hf_bit16pingflags2 = -1;
5925 static int hf_bit1pingflags1 = -1;
5926 static int hf_bit2pingflags1 = -1;
5927 static int hf_bit3pingflags1 = -1;
5928 static int hf_bit4pingflags1 = -1;
5929 static int hf_bit5pingflags1 = -1;
5930 static int hf_bit6pingflags1 = -1;
5931 static int hf_bit7pingflags1 = -1;
5932 static int hf_bit8pingflags1 = -1;
5933 static int hf_bit9pingflags1 = -1;
5934 static int hf_bit10pingflags1 = -1;
5935 static int hf_bit11pingflags1 = -1;
5936 static int hf_bit12pingflags1 = -1;
5937 static int hf_bit13pingflags1 = -1;
5938 static int hf_bit14pingflags1 = -1;
5939 static int hf_bit15pingflags1 = -1;
5940 static int hf_bit16pingflags1 = -1;
5941 static int hf_bit1pingpflags1 = -1;
5942 static int hf_bit2pingpflags1 = -1;
5943 static int hf_bit3pingpflags1 = -1;
5944 static int hf_bit4pingpflags1 = -1;
5945 static int hf_bit5pingpflags1 = -1;
5946 static int hf_bit6pingpflags1 = -1;
5947 static int hf_bit7pingpflags1 = -1;
5948 static int hf_bit8pingpflags1 = -1;
5949 static int hf_bit9pingpflags1 = -1;
5950 static int hf_bit10pingpflags1 = -1;
5951 static int hf_bit11pingpflags1 = -1;
5952 static int hf_bit12pingpflags1 = -1;
5953 static int hf_bit13pingpflags1 = -1;
5954 static int hf_bit14pingpflags1 = -1;
5955 static int hf_bit15pingpflags1 = -1;
5956 static int hf_bit16pingpflags1 = -1;
5957 static int hf_bit1pingvflags1 = -1;
5958 static int hf_bit2pingvflags1 = -1;
5959 static int hf_bit3pingvflags1 = -1;
5960 static int hf_bit4pingvflags1 = -1;
5961 static int hf_bit5pingvflags1 = -1;
5962 static int hf_bit6pingvflags1 = -1;
5963 static int hf_bit7pingvflags1 = -1;
5964 static int hf_bit8pingvflags1 = -1;
5965 static int hf_bit9pingvflags1 = -1;
5966 static int hf_bit10pingvflags1 = -1;
5967 static int hf_bit11pingvflags1 = -1;
5968 static int hf_bit12pingvflags1 = -1;
5969 static int hf_bit13pingvflags1 = -1;
5970 static int hf_bit14pingvflags1 = -1;
5971 static int hf_bit15pingvflags1 = -1;
5972 static int hf_bit16pingvflags1 = -1;
5973 static int hf_nds_letter_ver = -1;
5974 static int hf_nds_os_ver = -1;
5975 static int hf_nds_lic_flags = -1;
5976 static int hf_nds_ds_time = -1;
5977 static int hf_nds_ping_version = -1;
5978 static int hf_nds_search_scope = -1;
5979 static int hf_nds_num_objects = -1;
5980 static int hf_bit1siflags = -1;
5981 static int hf_bit2siflags = -1;
5982 static int hf_bit3siflags = -1;
5983 static int hf_bit4siflags = -1;
5984 static int hf_bit5siflags = -1;
5985 static int hf_bit6siflags = -1;
5986 static int hf_bit7siflags = -1;
5987 static int hf_bit8siflags = -1;
5988 static int hf_bit9siflags = -1;
5989 static int hf_bit10siflags = -1;
5990 static int hf_bit11siflags = -1;
5991 static int hf_bit12siflags = -1;
5992 static int hf_bit13siflags = -1;
5993 static int hf_bit14siflags = -1;
5994 static int hf_bit15siflags = -1;
5995 static int hf_bit16siflags = -1;
5996 static int hf_nds_segments = -1;
5997 static int hf_nds_segment = -1;
5998 static int hf_nds_segment_overlap = -1;
5999 static int hf_nds_segment_overlap_conflict = -1;
6000 static int hf_nds_segment_multiple_tails = -1;
6001 static int hf_nds_segment_too_long_segment = -1;
6002 static int hf_nds_segment_error = -1;
6007 # Look at all packet types in the packets collection, and cull information
6009 errors_used_list = []
6010 errors_used_hash = {}
6011 groups_used_list = []
6012 groups_used_hash = {}
6013 variables_used_hash = {}
6014 structs_used_hash = {}
6017 # Determine which error codes are used.
6018 codes = pkt.CompletionCodes()
6019 for code in codes.Records():
6020 if not errors_used_hash.has_key(code):
6021 errors_used_hash[code] = len(errors_used_list)
6022 errors_used_list.append(code)
6024 # Determine which groups are used.
6026 if not groups_used_hash.has_key(group):
6027 groups_used_hash[group] = len(groups_used_list)
6028 groups_used_list.append(group)
6030 # Determine which variables are used.
6031 vars = pkt.Variables()
6032 ExamineVars(vars, structs_used_hash, variables_used_hash)
6035 # Print the hf variable declarations
6036 sorted_vars = variables_used_hash.values()
6038 for var in sorted_vars:
6039 print "static int " + var.HFName() + " = -1;"
6042 # Print the value_string's
6043 for var in sorted_vars:
6044 if isinstance(var, val_string):
6048 # Determine which error codes are not used
6049 errors_not_used = {}
6050 # Copy the keys from the error list...
6051 for code in errors.keys():
6052 errors_not_used[code] = 1
6053 # ... and remove the ones that *were* used.
6054 for code in errors_used_list:
6055 del errors_not_used[code]
6057 # Print a remark showing errors not used
6058 list_errors_not_used = errors_not_used.keys()
6059 list_errors_not_used.sort()
6060 for code in list_errors_not_used:
6061 print "/* Error 0x%04x not used: %s */" % (code, errors[code])
6064 # Print the errors table
6065 print "/* Error strings. */"
6066 print "static const char *ncp_errors[] = {"
6067 for code in errors_used_list:
6068 print '\t/* %02d (0x%04x) */ "%s",' % (errors_used_hash[code], code, errors[code])
6074 # Determine which groups are not used
6075 groups_not_used = {}
6076 # Copy the keys from the group list...
6077 for group in groups.keys():
6078 groups_not_used[group] = 1
6079 # ... and remove the ones that *were* used.
6080 for group in groups_used_list:
6081 del groups_not_used[group]
6083 # Print a remark showing groups not used
6084 list_groups_not_used = groups_not_used.keys()
6085 list_groups_not_used.sort()
6086 for group in list_groups_not_used:
6087 print "/* Group not used: %s = %s */" % (group, groups[group])
6090 # Print the groups table
6091 print "/* Group strings. */"
6092 print "static const char *ncp_groups[] = {"
6093 for group in groups_used_list:
6094 print '\t/* %02d (%s) */ "%s",' % (groups_used_hash[group], group, groups[group])
6097 # Print the group macros
6098 for group in groups_used_list:
6099 name = string.upper(group)
6100 print "#define NCP_GROUP_%s\t%d" % (name, groups_used_hash[group])
6104 # Print the conditional_records for all Request Conditions.
6106 print "/* Request-Condition dfilter records. The NULL pointer"
6107 print " is replaced by a pointer to the created dfilter_t. */"
6108 if len(global_req_cond) == 0:
6109 print "static conditional_record req_conds = NULL;"
6111 print "static conditional_record req_conds[] = {"
6112 for req_cond in global_req_cond.keys():
6113 print "\t{ \"%s\", NULL }," % (req_cond,)
6114 global_req_cond[req_cond] = num
6117 print "#define NUM_REQ_CONDS %d" % (num,)
6118 print "#define NO_REQ_COND NUM_REQ_CONDS\n\n"
6122 # Print PTVC's for bitfields
6124 print "/* PTVC records for bit-fields. */"
6125 for var in sorted_vars:
6126 if isinstance(var, bitfield):
6127 sub_vars_ptvc = var.SubVariablesPTVC()
6128 print "/* %s */" % (sub_vars_ptvc.Name())
6129 print sub_vars_ptvc.Code()
6130 ett_list.append(sub_vars_ptvc.ETTName())
6133 # Print the PTVC's for structures
6134 print "/* PTVC records for structs. */"
6137 for svar in structs_used_hash.values():
6138 svhash[svar.HFName()] = svar
6140 ett_list.append(svar.ETTName())
6142 struct_vars = svhash.keys()
6144 for varname in struct_vars:
6145 var = svhash[varname]
6150 # Print regular PTVC's
6151 print "/* PTVC records. These are re-used to save space. */"
6152 for ptvc in ptvc_lists.Members():
6153 if not ptvc.Null() and not ptvc.Empty():
6156 # Print error_equivalency tables
6157 print "/* Error-Equivalency Tables. These are re-used to save space. */"
6158 for compcodes in compcode_lists.Members():
6159 errors = compcodes.Records()
6160 # Make sure the record for error = 0x00 comes last.
6161 print "static const error_equivalency %s[] = {" % (compcodes.Name())
6162 for error in errors:
6163 error_in_packet = error >> 8;
6164 ncp_error_index = errors_used_hash[error]
6165 print "\t{ 0x%02x, %d }, /* 0x%04x */" % (error_in_packet,
6166 ncp_error_index, error)
6167 print "\t{ 0x00, -1 }\n};\n"
6171 # Print integer arrays for all ncp_records that need
6172 # a list of req_cond_indexes. Do it "uniquely" to save space;
6173 # if multiple packets share the same set of req_cond's,
6174 # then they'll share the same integer array
6175 print "/* Request Condition Indexes */"
6176 # First, make them unique
6177 req_cond_collection = UniqueCollection("req_cond_collection")
6179 req_conds = pkt.CalculateReqConds()
6181 unique_list = req_cond_collection.Add(req_conds)
6182 pkt.SetReqConds(unique_list)
6184 pkt.SetReqConds(None)
6187 for req_cond in req_cond_collection.Members():
6188 print "static const int %s[] = {" % (req_cond.Name(),)
6191 for text in req_cond.Records():
6192 vals.append(global_req_cond[text])
6195 print "%s, " % (val,),
6202 # Functions without length parameter
6203 funcs_without_length = {}
6205 # Print info string structures
6206 print "/* Info Strings */"
6208 if pkt.req_info_str:
6209 name = pkt.InfoStrName() + "_req"
6210 var = pkt.req_info_str[0]
6211 print "static const info_string_t %s = {" % (name,)
6212 print "\t&%s," % (var.HFName(),)
6213 print '\t"%s",' % (pkt.req_info_str[1],)
6214 print '\t"%s"' % (pkt.req_info_str[2],)
6219 # Print ncp_record packet records
6220 print "#define SUBFUNC_WITH_LENGTH 0x02"
6221 print "#define SUBFUNC_NO_LENGTH 0x01"
6222 print "#define NO_SUBFUNC 0x00"
6224 print "/* ncp_record structs for packets */"
6225 print "static const ncp_record ncp_packets[] = {"
6227 if pkt.HasSubFunction():
6228 func = pkt.FunctionCode('high')
6230 subfunc_string = "SUBFUNC_WITH_LENGTH"
6231 # Ensure that the function either has a length param or not
6232 if funcs_without_length.has_key(func):
6233 sys.exit("Function 0x%04x sometimes has length param, sometimes not." \
6234 % (pkt.FunctionCode(),))
6236 subfunc_string = "SUBFUNC_NO_LENGTH"
6237 funcs_without_length[func] = 1
6239 subfunc_string = "NO_SUBFUNC"
6240 print '\t{ 0x%02x, 0x%02x, %s, "%s",' % (pkt.FunctionCode('high'),
6241 pkt.FunctionCode('low'), subfunc_string, pkt.Description()),
6243 print '\t%d /* %s */,' % (groups_used_hash[pkt.Group()], pkt.Group())
6245 ptvc = pkt.PTVCRequest()
6246 if not ptvc.Null() and not ptvc.Empty():
6247 ptvc_request = ptvc.Name()
6249 ptvc_request = 'NULL'
6251 ptvc = pkt.PTVCReply()
6252 if not ptvc.Null() and not ptvc.Empty():
6253 ptvc_reply = ptvc.Name()
6257 errors = pkt.CompletionCodes()
6259 req_conds_obj = pkt.GetReqConds()
6261 req_conds = req_conds_obj.Name()
6265 if not req_conds_obj:
6266 req_cond_size = "NO_REQ_COND_SIZE"
6268 req_cond_size = pkt.ReqCondSize()
6269 if req_cond_size == None:
6270 msg.write("NCP packet %s nees a ReqCondSize*() call\n" \
6274 if pkt.req_info_str:
6275 req_info_str = "&" + pkt.InfoStrName() + "_req"
6277 req_info_str = "NULL"
6279 print '\t\t%s, %s, %s, %s, %s, %s },\n' % \
6280 (ptvc_request, ptvc_reply, errors.Name(), req_conds,
6281 req_cond_size, req_info_str)
6283 print '\t{ 0, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NO_REQ_COND_SIZE, NULL }'
6286 print "/* ncp funcs that require a subfunc */"
6287 print "static const guint8 ncp_func_requires_subfunc[] = {"
6290 if pkt.HasSubFunction():
6291 hi_func = pkt.FunctionCode('high')
6292 if not hi_seen.has_key(hi_func):
6293 print "\t0x%02x," % (hi_func)
6294 hi_seen[hi_func] = 1
6299 print "/* ncp funcs that have no length parameter */"
6300 print "static const guint8 ncp_func_has_no_length_parameter[] = {"
6301 funcs = funcs_without_length.keys()
6304 print "\t0x%02x," % (func,)
6308 # final_registration_ncp2222()
6311 final_registration_ncp2222(void)
6316 # Create dfilter_t's for conditional_record's
6318 for (i = 0; i < NUM_REQ_CONDS; i++) {
6319 if (!dfilter_compile((const gchar*)req_conds[i].dfilter_text,
6320 &req_conds[i].dfilter)) {
6321 g_message("NCP dissector failed to compiler dfilter: %s\\n",
6322 req_conds[i].dfilter_text);
6323 g_assert_not_reached();
6329 # proto_register_ncp2222()
6331 static const value_string ncp_nds_verb_vals[] = {
6332 { 1, "Resolve Name" },
6333 { 2, "Read Entry Information" },
6337 { 6, "Search Entries" },
6339 { 8, "Remove Entry" },
6340 { 9, "Modify Entry" },
6341 { 10, "Modify RDN" },
6342 { 11, "Create Attribute" },
6343 { 12, "Read Attribute Definition" },
6344 { 13, "Remove Attribute Definition" },
6345 { 14, "Define Class" },
6346 { 15, "Read Class Definition" },
6347 { 16, "Modify Class Definition" },
6348 { 17, "Remove Class Definition" },
6349 { 18, "List Containable Classes" },
6350 { 19, "Get Effective Rights" },
6351 { 20, "Add Partition" },
6352 { 21, "Remove Partition" },
6353 { 22, "List Partitions" },
6354 { 23, "Split Partition" },
6355 { 24, "Join Partitions" },
6356 { 25, "Add Replica" },
6357 { 26, "Remove Replica" },
6358 { 27, "Open Stream" },
6359 { 28, "Search Filter" },
6360 { 29, "Create Subordinate Reference" },
6361 { 30, "Link Replica" },
6362 { 31, "Change Replica Type" },
6363 { 32, "Start Update Schema" },
6364 { 33, "End Update Schema" },
6365 { 34, "Update Schema" },
6366 { 35, "Start Update Replica" },
6367 { 36, "End Update Replica" },
6368 { 37, "Update Replica" },
6369 { 38, "Synchronize Partition" },
6370 { 39, "Synchronize Schema" },
6371 { 40, "Read Syntaxes" },
6372 { 41, "Get Replica Root ID" },
6373 { 42, "Begin Move Entry" },
6374 { 43, "Finish Move Entry" },
6375 { 44, "Release Moved Entry" },
6376 { 45, "Backup Entry" },
6377 { 46, "Restore Entry" },
6380 { 49, "Remove Backlink" },
6381 { 50, "Close Iteration" },
6383 { 52, "Audit Skulking" },
6384 { 53, "Get Server Address" },
6386 { 55, "Change Password" },
6387 { 56, "Verify Password" },
6388 { 57, "Begin Login" },
6389 { 58, "Finish Login" },
6390 { 59, "Begin Authentication" },
6391 { 60, "Finish Authentication" },
6393 { 62, "Repair Ring" },
6394 { 63, "Repair Timestamps" },
6395 { 64, "Create Back Link" },
6396 { 65, "Delete External Reference" },
6397 { 66, "Rename External Reference" },
6398 { 67, "Create Directory Entry" },
6399 { 68, "Remove Directory Entry" },
6400 { 69, "Designate New Master" },
6401 { 70, "Change Tree Name" },
6402 { 71, "Partition Entry Count" },
6403 { 72, "Check Login Restrictions" },
6404 { 73, "Start Join" },
6405 { 74, "Low Level Split" },
6406 { 75, "Low Level Join" },
6407 { 76, "Abort Low Level Join" },
6408 { 77, "Get All Servers" },
6409 { 255, "EDirectory Call" },
6414 proto_register_ncp2222(void)
6417 static hf_register_info hf[] = {
6419 { "Function", "ncp.func", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6422 { "Packet Length", "ncp.length", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
6425 { "SubFunction", "ncp.subfunc", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6427 { &hf_ncp_completion_code,
6428 { "Completion Code", "ncp.completion_code", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }},
6430 { &hf_ncp_fragment_handle,
6431 { "NDS Fragment Handle", "ncp.ndsfrag", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6433 { &hf_ncp_fragment_size,
6434 { "NDS Fragment Size", "ncp.ndsfragsize", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6436 { &hf_ncp_message_size,
6437 { "Message Size", "ncp.ndsmessagesize", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6440 { "Flags", "ncp.ndsflag", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6443 { "NDS Verb", "ncp.ndsverb", FT_UINT8, BASE_HEX, VALS(ncp_nds_verb_vals), 0x0, "", HFILL }},
6446 { "NDS Version", "ncp.ping_version", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
6449 { "NDS Version", "ncp.nds_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6451 { &hf_nds_tree_name,
6452 { "Tree Name", "ncp.nds_tree_name", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }},
6457 * http://www.odyssea.com/whats_new/tcpipnet/tcpipnet.html
6459 * says of the connection status "The Connection Code field may
6460 * contain values that indicate the status of the client host to
6461 * server connection. A value of 1 in the fourth bit of this data
6462 * byte indicates that the server is unavailable (server was
6467 * http://www.unm.edu/~network/presentations/course/appendix/appendix_f/tsld088.htm
6469 * says that bit 0 is "bad service", bit 2 is "no connection
6470 * available", bit 4 is "service down", and bit 6 is "server
6471 * has a broadcast message waiting for the client".
6473 * Should it be displayed in hex, and should those bits (and any
6474 * other bits with significance) be displayed as bitfields
6477 { &hf_ncp_connection_status,
6478 { "Connection Status", "ncp.connection_status", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
6480 { &hf_ncp_req_frame_num,
6481 { "Response to Request in Frame Number", "ncp.req_frame_num", FT_FRAMENUM, BASE_NONE,
6482 NULL, 0x0, "", HFILL }},
6484 { &hf_ncp_req_frame_time,
6485 { "Time from Request", "ncp.time", FT_RELATIVE_TIME, BASE_NONE,
6486 NULL, 0x0, "Time between request and response in seconds", HFILL }},
6489 { "NDS Return Flags", "ncp.nds_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6492 { &hf_nds_reply_depth,
6493 { "Distance from Root", "ncp.ndsdepth", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6495 { &hf_nds_reply_rev,
6496 { "NDS Revision", "ncp.ndsrev", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6498 { &hf_nds_reply_flags,
6499 { "Flags", "ncp.ndsflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
6502 { "NDS Parameter Type", "ncp.p1type", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }},
6504 { &hf_nds_uint32value,
6505 { "NDS Value", "ncp.uint32value", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
6508 { "Typeless", "ncp.nds_bit1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6511 { "All Containers", "ncp.nds_bit2", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6514 { "Slashed", "ncp.nds_bit3", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6517 { "Dotted", "ncp.nds_bit4", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6520 { "Tuned", "ncp.nds_bit5", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6523 { "Not Defined", "ncp.nds_bit6", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6526 { "Not Defined", "ncp.nds_bit7", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6529 { "Not Defined", "ncp.nds_bit8", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6532 { "Not Defined", "ncp.nds_bit9", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6535 { "Not Defined", "ncp.nds_bit10", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6538 { "Not Defined", "ncp.nds_bit11", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6541 { "Not Defined", "ncp.nds_bit12", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6544 { "Not Defined", "ncp.nds_bit13", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6547 { "Not Defined", "ncp.nds_bit14", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6550 { "Not Defined", "ncp.nds_bit15", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6553 { "Not Defined", "ncp.nds_bit16", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6556 { "Output Flags", "ncp.bit1outflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6559 { "Entry ID", "ncp.bit2outflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6562 { "Replica State", "ncp.bit3outflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6565 { "Modification Timestamp", "ncp.bit4outflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6568 { "Purge Time", "ncp.bit5outflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6571 { "Local Partition ID", "ncp.bit6outflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6574 { "Distinguished Name", "ncp.bit7outflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6577 { "Replica Type", "ncp.bit8outflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6580 { "Partition Busy", "ncp.bit9outflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6582 { &hf_bit10outflags,
6583 { "Not Defined", "ncp.bit10outflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6585 { &hf_bit11outflags,
6586 { "Not Defined", "ncp.bit11outflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6588 { &hf_bit12outflags,
6589 { "Not Defined", "ncp.bit12outflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6591 { &hf_bit13outflags,
6592 { "Not Defined", "ncp.bit13outflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6594 { &hf_bit14outflags,
6595 { "Not Defined", "ncp.bit14outflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6597 { &hf_bit15outflags,
6598 { "Not Defined", "ncp.bit15outflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6600 { &hf_bit16outflags,
6601 { "Not Defined", "ncp.bit16outflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6604 { "Entry ID", "ncp.bit1nflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6607 { "Readable", "ncp.bit2nflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6610 { "Writeable", "ncp.bit3nflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6613 { "Master", "ncp.bit4nflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6616 { "Create ID", "ncp.bit5nflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6619 { "Walk Tree", "ncp.bit6nflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6622 { "Dereference Alias", "ncp.bit7nflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6625 { "Not Defined", "ncp.bit8nflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6628 { "Not Defined", "ncp.bit9nflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6631 { "Not Defined", "ncp.bit10nflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6634 { "Not Defined", "ncp.bit11nflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6637 { "Not Defined", "ncp.bit12nflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6640 { "Not Defined", "ncp.bit13nflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6643 { "Prefer Referrals", "ncp.bit14nflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6646 { "Prefer Only Referrals", "ncp.bit15nflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6649 { "Not Defined", "ncp.bit16nflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6652 { "Typeless", "ncp.bit1rflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6655 { "Slashed", "ncp.bit2rflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6658 { "Dotted", "ncp.bit3rflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6661 { "Tuned", "ncp.bit4rflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6664 { "Not Defined", "ncp.bit5rflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6667 { "Not Defined", "ncp.bit6rflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6670 { "Not Defined", "ncp.bit7rflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6673 { "Not Defined", "ncp.bit8rflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6676 { "Not Defined", "ncp.bit9rflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6679 { "Not Defined", "ncp.bit10rflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6682 { "Not Defined", "ncp.bit11rflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6685 { "Not Defined", "ncp.bit12rflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6688 { "Not Defined", "ncp.bit13rflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6691 { "Not Defined", "ncp.bit14rflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6694 { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6697 { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6700 { "Alias Entry", "ncp.bit1eflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6703 { "Partition Root", "ncp.bit2eflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6706 { "Container Entry", "ncp.bit3eflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6709 { "Container Alias", "ncp.bit4eflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6712 { "Matches List Filter", "ncp.bit5eflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6715 { "Reference Entry", "ncp.bit6eflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6718 { "40x Reference Entry", "ncp.bit7eflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6721 { "Back Linked", "ncp.bit8eflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6724 { "New Entry", "ncp.bit9eflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6727 { "Temporary Reference", "ncp.bit10eflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6730 { "Audited", "ncp.bit11eflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6733 { "Entry Not Present", "ncp.bit12eflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6736 { "Entry Verify CTS", "ncp.bit13eflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6739 { "Entry Damaged", "ncp.bit14eflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6742 { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6745 { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6747 { &hf_bit1infoflagsl,
6748 { "Output Flags", "ncp.bit1infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6750 { &hf_bit2infoflagsl,
6751 { "Entry ID", "ncp.bit2infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6753 { &hf_bit3infoflagsl,
6754 { "Entry Flags", "ncp.bit3infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6756 { &hf_bit4infoflagsl,
6757 { "Subordinate Count", "ncp.bit4infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6759 { &hf_bit5infoflagsl,
6760 { "Modification Time", "ncp.bit5infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6762 { &hf_bit6infoflagsl,
6763 { "Modification Timestamp", "ncp.bit6infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6765 { &hf_bit7infoflagsl,
6766 { "Creation Timestamp", "ncp.bit7infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6768 { &hf_bit8infoflagsl,
6769 { "Partition Root ID", "ncp.bit8infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6771 { &hf_bit9infoflagsl,
6772 { "Parent ID", "ncp.bit9infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6774 { &hf_bit10infoflagsl,
6775 { "Revision Count", "ncp.bit10infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6777 { &hf_bit11infoflagsl,
6778 { "Replica Type", "ncp.bit11infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6780 { &hf_bit12infoflagsl,
6781 { "Base Class", "ncp.bit12infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6783 { &hf_bit13infoflagsl,
6784 { "Relative Distinguished Name", "ncp.bit13infoflagsl", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6786 { &hf_bit14infoflagsl,
6787 { "Distinguished Name", "ncp.bit14infoflagsl", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6789 { &hf_bit15infoflagsl,
6790 { "Root Distinguished Name", "ncp.bit15infoflagsl", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6792 { &hf_bit16infoflagsl,
6793 { "Parent Distinguished Name", "ncp.bit16infoflagsl", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6795 { &hf_bit1infoflagsh,
6796 { "Purge Time", "ncp.bit1infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6798 { &hf_bit2infoflagsh,
6799 { "Dereference Base Class", "ncp.bit2infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6801 { &hf_bit3infoflagsh,
6802 { "Not Defined", "ncp.bit3infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6804 { &hf_bit4infoflagsh,
6805 { "Not Defined", "ncp.bit4infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6807 { &hf_bit5infoflagsh,
6808 { "Not Defined", "ncp.bit5infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6810 { &hf_bit6infoflagsh,
6811 { "Not Defined", "ncp.bit6infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6813 { &hf_bit7infoflagsh,
6814 { "Not Defined", "ncp.bit7infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6816 { &hf_bit8infoflagsh,
6817 { "Not Defined", "ncp.bit8infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6819 { &hf_bit9infoflagsh,
6820 { "Not Defined", "ncp.bit9infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6822 { &hf_bit10infoflagsh,
6823 { "Not Defined", "ncp.bit10infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6825 { &hf_bit11infoflagsh,
6826 { "Not Defined", "ncp.bit11infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6828 { &hf_bit12infoflagsh,
6829 { "Not Defined", "ncp.bit12infoflagshs", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6831 { &hf_bit13infoflagsh,
6832 { "Not Defined", "ncp.bit13infoflagsh", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6834 { &hf_bit14infoflagsh,
6835 { "Not Defined", "ncp.bit14infoflagsh", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6837 { &hf_bit15infoflagsh,
6838 { "Not Defined", "ncp.bit15infoflagsh", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6840 { &hf_bit16infoflagsh,
6841 { "Not Defined", "ncp.bit16infoflagsh", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6844 { "List Typeless", "ncp.bit1lflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6847 { "List Containers", "ncp.bit2lflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6850 { "List Slashed", "ncp.bit3lflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6853 { "List Dotted", "ncp.bit4lflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6856 { "Dereference Alias", "ncp.bit5lflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6859 { "List All Containers", "ncp.bit6lflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6862 { "List Obsolete", "ncp.bit7lflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6865 { "List Tuned Output", "ncp.bit8lflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6868 { "List External Reference", "ncp.bit9lflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6871 { "Not Defined", "ncp.bit10lflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6874 { "Not Defined", "ncp.bit11lflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6877 { "Not Defined", "ncp.bit12lflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6880 { "Not Defined", "ncp.bit13lflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6883 { "Not Defined", "ncp.bit14lflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6886 { "Not Defined", "ncp.bit15lflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6889 { "Not Defined", "ncp.bit16lflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6892 { "Output Flags", "ncp.bit1l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6895 { "Entry ID", "ncp.bit2l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6898 { "Replica State", "ncp.bit3l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6901 { "Modification Timestamp", "ncp.bit4l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6904 { "Purge Time", "ncp.bit5l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6907 { "Local Partition ID", "ncp.bit6l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6910 { "Distinguished Name", "ncp.bit7l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6913 { "Replica Type", "ncp.bit8l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6916 { "Partition Busy", "ncp.bit9l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6918 { &hf_bit10l1flagsl,
6919 { "Not Defined", "ncp.bit10l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6921 { &hf_bit11l1flagsl,
6922 { "Not Defined", "ncp.bit11l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6924 { &hf_bit12l1flagsl,
6925 { "Not Defined", "ncp.bit12l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6927 { &hf_bit13l1flagsl,
6928 { "Not Defined", "ncp.bit13l1flagsl", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6930 { &hf_bit14l1flagsl,
6931 { "Not Defined", "ncp.bit14l1flagsl", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6933 { &hf_bit15l1flagsl,
6934 { "Not Defined", "ncp.bit15l1flagsl", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6936 { &hf_bit16l1flagsl,
6937 { "Not Defined", "ncp.bit16l1flagsl", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6940 { "Not Defined", "ncp.bit1l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6943 { "Not Defined", "ncp.bit2l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6946 { "Not Defined", "ncp.bit3l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6949 { "Not Defined", "ncp.bit4l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
6952 { "Not Defined", "ncp.bit5l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
6955 { "Not Defined", "ncp.bit6l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
6958 { "Not Defined", "ncp.bit7l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
6961 { "Not Defined", "ncp.bit8l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
6964 { "Not Defined", "ncp.bit9l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
6966 { &hf_bit10l1flagsh,
6967 { "Not Defined", "ncp.bit10l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
6969 { &hf_bit11l1flagsh,
6970 { "Not Defined", "ncp.bit11l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
6972 { &hf_bit12l1flagsh,
6973 { "Not Defined", "ncp.bit12l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
6975 { &hf_bit13l1flagsh,
6976 { "Not Defined", "ncp.bit13l1flagsh", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
6978 { &hf_bit14l1flagsh,
6979 { "Not Defined", "ncp.bit14l1flagsh", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
6981 { &hf_bit15l1flagsh,
6982 { "Not Defined", "ncp.bit15l1flagsh", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
6984 { &hf_bit16l1flagsh,
6985 { "Not Defined", "ncp.bit16l1flagsh", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
6988 { "Naming", "ncp.bit1vflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
6991 { "Base Class", "ncp.bit2vflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
6994 { "Present", "ncp.bit3vflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
6997 { "Value Damaged", "ncp.bit4vflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7000 { "Not Defined", "ncp.bit5vflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7003 { "Not Defined", "ncp.bit6vflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7006 { "Not Defined", "ncp.bit7vflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7009 { "Not Defined", "ncp.bit8vflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7012 { "Not Defined", "ncp.bit9vflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7015 { "Not Defined", "ncp.bit10vflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7018 { "Not Defined", "ncp.bit11vflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7021 { "Not Defined", "ncp.bit12vflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7024 { "Not Defined", "ncp.bit13vflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7027 { "Not Defined", "ncp.bit14vflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7030 { "Not Defined", "ncp.bit15vflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7033 { "Not Defined", "ncp.bit16vflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7036 { "Ambiguous Containment", "ncp.bit1cflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7039 { "Ambiguous Naming", "ncp.bit2cflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7042 { "Class Definition Cannot be Removed", "ncp.bit3cflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7045 { "Effective Class", "ncp.bit4cflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7048 { "Container Class", "ncp.bit5cflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7051 { "Not Defined", "ncp.bit6cflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7054 { "Not Defined", "ncp.bit7cflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7057 { "Not Defined", "ncp.bit8cflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7060 { "Not Defined", "ncp.bit9cflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7063 { "Not Defined", "ncp.bit10cflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7066 { "Not Defined", "ncp.bit11cflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7069 { "Not Defined", "ncp.bit12cflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7072 { "Not Defined", "ncp.bit13cflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7075 { "Not Defined", "ncp.bit14cflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7078 { "Not Defined", "ncp.bit15cflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7081 { "Not Defined", "ncp.bit16cflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7084 { "Single Valued", "ncp.bit1acflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7087 { "Sized", "ncp.bit2acflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7090 { "Non-Removable", "ncp.bit3acflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7093 { "Read Only", "ncp.bit4acflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7096 { "Hidden", "ncp.bit5acflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7099 { "String", "ncp.bit6acflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7102 { "Synchronize Immediate", "ncp.bit7acflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7105 { "Public Read", "ncp.bit8acflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7108 { "Server Read", "ncp.bit9acflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7111 { "Write Managed", "ncp.bit10acflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7114 { "Per Replica", "ncp.bit11acflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7117 { "Never Schedule Synchronization", "ncp.bit12acflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7120 { "Operational", "ncp.bit13acflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7123 { "Not Defined", "ncp.bit14acflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7126 { "Not Defined", "ncp.bit15acflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7129 { "Not Defined", "ncp.bit16acflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7132 { &hf_nds_reply_error,
7133 { "NDS Error", "ncp.ndsreplyerror", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7136 { "Network","ncp.ndsnet", FT_IPXNET, BASE_NONE, NULL, 0x0, "", HFILL }},
7139 { "Node", "ncp.ndsnode", FT_ETHER, BASE_NONE, NULL, 0x0, "", HFILL }},
7142 { "Socket", "ncp.ndssocket", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }},
7145 { "Address Referral", "ncp.ipref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7148 { "Address Referral", "ncp.udpref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7151 { "Address Referral", "ncp.tcpref", FT_IPv4, BASE_DEC, NULL, 0x0, "", HFILL }},
7153 { &hf_referral_record,
7154 { "Referral Record", "ncp.ref_rec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7156 { &hf_referral_addcount,
7157 { "Address Count", "ncp.ref_addcount", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7160 { "Port", "ncp.ndsport", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7163 { "Attribute Name ", "ncp.mv_string", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7166 { "Attribute Syntax ", "ncp.nds_syntax", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7169 { "Value ", "ncp.value_string", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7171 { &hf_nds_stream_name,
7172 { "Stream Name ", "ncp.nds_stream_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7174 { &hf_nds_buffer_size,
7175 { "NDS Reply Buffer Size", "ncp.nds_reply_buf", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7178 { "NDS Version", "ncp.nds_ver", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7181 { "Flags", "ncp.nds_nflags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7184 { "Request Flags", "ncp.nds_rflags", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7187 { "Entry Flags", "ncp.nds_eflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7190 { "Scope", "ncp.nds_scope", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7193 { "Name", "ncp.nds_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7195 { &hf_nds_name_type,
7196 { "Name Type", "ncp.nds_name_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7198 { &hf_nds_comm_trans,
7199 { "Communications Transport", "ncp.nds_comm_trans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7201 { &hf_nds_tree_trans,
7202 { "Tree Walker Transport", "ncp.nds_tree_trans", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7204 { &hf_nds_iteration,
7205 { "Iteration Handle", "ncp.nds_iteration", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7207 { &hf_nds_file_handle,
7208 { "File Handle", "ncp.nds_file_handle", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7210 { &hf_nds_file_size,
7211 { "File Size", "ncp.nds_file_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7214 { "NDS EID", "ncp.nds_eid", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7217 { "Distance object is from Root", "ncp.nds_depth", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7219 { &hf_nds_info_type,
7220 { "Info Type", "ncp.nds_info_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7222 { &hf_nds_class_def_type,
7223 { "Class Definition Type", "ncp.nds_class_def_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7226 { "All Attributes", "ncp.nds_all_attr", FT_UINT32, BASE_DEC, NULL, 0x0, "Return all Attributes?", HFILL }},
7228 { &hf_nds_return_all_classes,
7229 { "All Classes", "ncp.nds_return_all_classes", FT_STRING, BASE_NONE, NULL, 0x0, "Return all Classes?", HFILL }},
7231 { &hf_nds_req_flags,
7232 { "Request Flags", "ncp.nds_req_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7235 { "Attributes", "ncp.nds_attributes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7238 { "Classes", "ncp.nds_classes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7241 { "CRC", "ncp.nds_crc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7243 { &hf_nds_referrals,
7244 { "Referrals", "ncp.nds_referrals", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7246 { &hf_nds_result_flags,
7247 { "Result Flags", "ncp.nds_result_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7249 { &hf_nds_stream_flags,
7250 { "Streams Flags", "ncp.nds_stream_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7252 { &hf_nds_tag_string,
7253 { "Tags", "ncp.nds_tags", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7256 { "Bytes", "ncp.value_bytes", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
7259 { "Replica Type", "ncp.rtype", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7261 { &hf_replica_state,
7262 { "Replica State", "ncp.rstate", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7265 { "Replica Number", "ncp.rnum", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7268 { "Event", "ncp.revent", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7270 { &hf_replica_number,
7271 { "Replica Number", "ncp.rnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7274 { "Minimum NDS Version", "ncp.min_nds_version", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7276 { &hf_nds_ver_include,
7277 { "Include NDS Version", "ncp.inc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7279 { &hf_nds_ver_exclude,
7280 { "Exclude NDS Version", "ncp.exc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7283 { "Input Entry Specifier", "ncp.nds_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7286 { "Entry Specifier Type", "ncp.nds_es_type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7289 { "RDN", "ncp.nds_rdn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7292 { "Delimeter", "ncp.nds_delim", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7294 { &hf_nds_dn_output_type,
7295 { "Output Entry Specifier Type", "ncp.nds_out_es_type", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7297 { &hf_nds_nested_output_type,
7298 { "Nested Output Entry Specifier Type", "ncp.nds_nested_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7300 { &hf_nds_output_delimiter,
7301 { "Output Delimiter", "ncp.nds_out_delimiter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7303 { &hf_nds_output_entry_specifier,
7304 { "Output Entry Specifier", "ncp.nds_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7307 { "Entry Specifier Value", "ncp.nds_es_value", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7310 { "RDN Count", "ncp.nds_es_rdn_count", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7312 { &hf_nds_replica_num,
7313 { "Replica Number", "ncp.nds_replica_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7316 { "Seconds", "ncp.nds_es_seconds", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7318 { &hf_nds_event_num,
7319 { "Event Number", "ncp.nds_event_num", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL }},
7321 { &hf_nds_compare_results,
7322 { "Compare Results", "ncp.nds_compare_results", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7325 { "Parent ID", "ncp.nds_parent", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7327 { &hf_nds_name_filter,
7328 { "Name Filter", "ncp.nds_name_filter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7330 { &hf_nds_class_filter,
7331 { "Class Filter", "ncp.nds_class_filter", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7333 { &hf_nds_time_filter,
7334 { "Time Filter", "ncp.nds_time_filter", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7336 { &hf_nds_partition_root_id,
7337 { "Partition Root ID", "ncp.nds_partition_root_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7340 { "Replicas", "ncp.nds_replicas", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7343 { "Purge Time", "ncp.nds_purge", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7345 { &hf_nds_local_partition,
7346 { "Local Partition ID", "ncp.nds_local_partition", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7348 { &hf_partition_busy,
7349 { "Partition Busy", "ncp.nds_partition_busy", FT_BOOLEAN, 16, NULL, 0x0, "", HFILL }},
7351 { &hf_nds_number_of_changes,
7352 { "Number of Attribute Changes", "ncp.nds_number_of_changes", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7355 { "Subordinate Count", "ncp.sub_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7358 { "Revision Count", "ncp.nds_rev_count", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7360 { &hf_nds_base_class,
7361 { "Base Class", "ncp.nds_base_class", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7363 { &hf_nds_relative_dn,
7364 { "Relative Distinguished Name", "ncp.nds_relative_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7367 { "Root Distinguished Name", "ncp.nds_root_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7369 { &hf_nds_parent_dn,
7370 { "Parent Distinguished Name", "ncp.nds_parent_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7373 { "Dereference Base Class", "ncp.nds_deref_base", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7376 { "Base Class", "ncp.nds_base", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7379 { "Super Class", "ncp.nds_super", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7381 { &hf_nds_entry_info,
7382 { "Entry Information", "ncp.nds_entry_info", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7384 { &hf_nds_privileges,
7385 { "Privileges", "ncp.nds_privileges", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7388 { "Value Flags", "ncp.nds_vflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7390 { &hf_nds_value_len,
7391 { "Value Length", "ncp.nds_vlength", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7394 { "Class Flags", "ncp.nds_cflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7397 { "ASN.1 ID", "ncp.nds_asn1", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }},
7400 { "Attribute Constraint Flags", "ncp.nds_acflags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7403 { "Upper Limit Value", "ncp.nds_upper", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7406 { "Lower Limit Value", "ncp.nds_lower", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7408 { &hf_nds_trustee_dn,
7409 { "Trustee Distinguished Name", "ncp.nds_trustee_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7411 { &hf_nds_attribute_dn,
7412 { "Attribute Name", "ncp.nds_attribute_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7415 { "Access Control Lists to Add", "ncp.nds_acl_add", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7418 { "Access Control Lists to Delete", "ncp.nds_acl_del", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7421 { "Attribute to Add", "ncp.nds_att_add", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7424 { "Attribute to Delete", "ncp.nds_att_del", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7427 { "Delete Original RDN", "ncp.nds_keep", FT_BOOLEAN, 32, NULL, 0x0, "", HFILL }},
7430 { "New Relative Distinguished Name", "ncp.nds_new_rdn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7432 { &hf_nds_time_delay,
7433 { "Time Delay", "ncp.nds_time_delay", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7435 { &hf_nds_root_name,
7436 { "Root Most Object Name", "ncp.nds_root_name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7438 { &hf_nds_new_part_id,
7439 { "New Partition Root ID", "ncp.nds_new_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7441 { &hf_nds_child_part_id,
7442 { "Child Partition Root ID", "ncp.nds_child_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7444 { &hf_nds_master_part_id,
7445 { "Master Partition Root ID", "ncp.nds_master_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7447 { &hf_nds_target_name,
7448 { "Target Server Name", "ncp.nds_target_dn", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7451 { &hf_bit1pingflags1,
7452 { "Supported Fields", "ncp.bit1pingflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7454 { &hf_bit2pingflags1,
7455 { "Depth", "ncp.bit2pingflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7457 { &hf_bit3pingflags1,
7458 { "Revision", "ncp.bit3pingflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7460 { &hf_bit4pingflags1,
7461 { "Flags", "ncp.bit4pingflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7463 { &hf_bit5pingflags1,
7464 { "Verification Flags", "ncp.bit5pingflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7466 { &hf_bit6pingflags1,
7467 { "Letter Version", "ncp.bit6pingflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7469 { &hf_bit7pingflags1,
7470 { "OS Version", "ncp.bit7pingflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7472 { &hf_bit8pingflags1,
7473 { "License Flags", "ncp.bit8pingflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7475 { &hf_bit9pingflags1,
7476 { "DS Time", "ncp.bit9pingflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7478 { &hf_bit10pingflags1,
7479 { "Not Defined", "ncp.bit10pingflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7481 { &hf_bit11pingflags1,
7482 { "Not Defined", "ncp.bit11pingflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7484 { &hf_bit12pingflags1,
7485 { "Not Defined", "ncp.bit12pingflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7487 { &hf_bit13pingflags1,
7488 { "Not Defined", "ncp.bit13pingflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7490 { &hf_bit14pingflags1,
7491 { "Not Defined", "ncp.bit14pingflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7493 { &hf_bit15pingflags1,
7494 { "Not Defined", "ncp.bit15pingflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7496 { &hf_bit16pingflags1,
7497 { "Not Defined", "ncp.bit16pingflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7499 { &hf_bit1pingflags2,
7500 { "Sap Name", "ncp.bit1pingflags2", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7502 { &hf_bit2pingflags2,
7503 { "Tree Name", "ncp.bit2pingflags2", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7505 { &hf_bit3pingflags2,
7506 { "OS Name", "ncp.bit3pingflags2", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7508 { &hf_bit4pingflags2,
7509 { "Hardware Name", "ncp.bit4pingflags2", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7511 { &hf_bit5pingflags2,
7512 { "Vendor Name", "ncp.bit5pingflags2", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7514 { &hf_bit6pingflags2,
7515 { "Not Defined", "ncp.bit6pingflags2", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7517 { &hf_bit7pingflags2,
7518 { "Not Defined", "ncp.bit7pingflags2", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7520 { &hf_bit8pingflags2,
7521 { "Not Defined", "ncp.bit8pingflags2", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7523 { &hf_bit9pingflags2,
7524 { "Not Defined", "ncp.bit9pingflags2", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7526 { &hf_bit10pingflags2,
7527 { "Not Defined", "ncp.bit10pingflags2", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7529 { &hf_bit11pingflags2,
7530 { "Not Defined", "ncp.bit11pingflags2", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7532 { &hf_bit12pingflags2,
7533 { "Not Defined", "ncp.bit12pingflags2", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7535 { &hf_bit13pingflags2,
7536 { "Not Defined", "ncp.bit13pingflags2", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7538 { &hf_bit14pingflags2,
7539 { "Not Defined", "ncp.bit14pingflags2", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7541 { &hf_bit15pingflags2,
7542 { "Not Defined", "ncp.bit15pingflags2", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7544 { &hf_bit16pingflags2,
7545 { "Not Defined", "ncp.bit16pingflags2", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7547 { &hf_bit1pingpflags1,
7548 { "Root Most Master Replica", "ncp.bit1pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7550 { &hf_bit2pingpflags1,
7551 { "Time Synchronized", "ncp.bit2pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7553 { &hf_bit3pingpflags1,
7554 { "Not Defined", "ncp.bit3pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7556 { &hf_bit4pingpflags1,
7557 { "Not Defined", "ncp.bit4pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7559 { &hf_bit5pingpflags1,
7560 { "Not Defined", "ncp.bit5pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7562 { &hf_bit6pingpflags1,
7563 { "Not Defined", "ncp.bit6pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7565 { &hf_bit7pingpflags1,
7566 { "Not Defined", "ncp.bit7pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7568 { &hf_bit8pingpflags1,
7569 { "Not Defined", "ncp.bit8pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7571 { &hf_bit9pingpflags1,
7572 { "Not Defined", "ncp.bit9pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7574 { &hf_bit10pingpflags1,
7575 { "Not Defined", "ncp.bit10pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7577 { &hf_bit11pingpflags1,
7578 { "Not Defined", "ncp.bit11pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7580 { &hf_bit12pingpflags1,
7581 { "Not Defined", "ncp.bit12pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7583 { &hf_bit13pingpflags1,
7584 { "Not Defined", "ncp.bit13pingpflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7586 { &hf_bit14pingpflags1,
7587 { "Not Defined", "ncp.bit14pingpflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7589 { &hf_bit15pingpflags1,
7590 { "Not Defined", "ncp.bit15pingpflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7592 { &hf_bit16pingpflags1,
7593 { "Not Defined", "ncp.bit16pingpflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7595 { &hf_bit1pingvflags1,
7596 { "Checksum", "ncp.bit1pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7598 { &hf_bit2pingvflags1,
7599 { "CRC32", "ncp.bit2pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7601 { &hf_bit3pingvflags1,
7602 { "Not Defined", "ncp.bit3pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7604 { &hf_bit4pingvflags1,
7605 { "Not Defined", "ncp.bit4pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7607 { &hf_bit5pingvflags1,
7608 { "Not Defined", "ncp.bit5pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7610 { &hf_bit6pingvflags1,
7611 { "Not Defined", "ncp.bit6pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7613 { &hf_bit7pingvflags1,
7614 { "Not Defined", "ncp.bit7pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7616 { &hf_bit8pingvflags1,
7617 { "Not Defined", "ncp.bit8pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7619 { &hf_bit9pingvflags1,
7620 { "Not Defined", "ncp.bit9pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7622 { &hf_bit10pingvflags1,
7623 { "Not Defined", "ncp.bit10pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7625 { &hf_bit11pingvflags1,
7626 { "Not Defined", "ncp.bit11pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7628 { &hf_bit12pingvflags1,
7629 { "Not Defined", "ncp.bit12pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7631 { &hf_bit13pingvflags1,
7632 { "Not Defined", "ncp.bit13pingvflags1", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7634 { &hf_bit14pingvflags1,
7635 { "Not Defined", "ncp.bit14pingvflags1", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7637 { &hf_bit15pingvflags1,
7638 { "Not Defined", "ncp.bit15pingvflags1", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7640 { &hf_bit16pingvflags1,
7641 { "Not Defined", "ncp.bit16pingvflags1", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7643 { &hf_nds_letter_ver,
7644 { "Letter Version", "ncp.nds_letter_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7647 { "OS Version", "ncp.nds_os_ver", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7649 { &hf_nds_lic_flags,
7650 { "License Flags", "ncp.nds_lic_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7653 { "DS Time", "ncp.nds_ds_time", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7655 { &hf_nds_ping_version,
7656 { "Ping Version", "ncp.nds_ping_version", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }},
7658 { &hf_nds_search_scope,
7659 { "Search Scope", "ncp.nds_search_scope", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},
7661 { &hf_nds_num_objects,
7662 { "Number of Objects to Search", "ncp.nds_num_objects", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }},
7666 { "Names", "ncp.bit1siflags", FT_BOOLEAN, 16, NULL, 0x00000001, "", HFILL }},
7669 { "Names and Values", "ncp.bit2siflags", FT_BOOLEAN, 16, NULL, 0x00000002, "", HFILL }},
7672 { "Effective Privileges", "ncp.bit3siflags", FT_BOOLEAN, 16, NULL, 0x00000004, "", HFILL }},
7675 { "Value Info", "ncp.bit4siflags", FT_BOOLEAN, 16, NULL, 0x00000008, "", HFILL }},
7678 { "Abbreviated Value", "ncp.bit5siflags", FT_BOOLEAN, 16, NULL, 0x00000010, "", HFILL }},
7681 { "Not Defined", "ncp.bit6siflags", FT_BOOLEAN, 16, NULL, 0x00000020, "", HFILL }},
7684 { "Not Defined", "ncp.bit7siflags", FT_BOOLEAN, 16, NULL, 0x00000040, "", HFILL }},
7687 { "Not Defined", "ncp.bit8siflags", FT_BOOLEAN, 16, NULL, 0x00000080, "", HFILL }},
7690 { "Expanded Class", "ncp.bit9siflags", FT_BOOLEAN, 16, NULL, 0x00000100, "", HFILL }},
7693 { "Not Defined", "ncp.bit10siflags", FT_BOOLEAN, 16, NULL, 0x00000200, "", HFILL }},
7696 { "Not Defined", "ncp.bit11siflags", FT_BOOLEAN, 16, NULL, 0x00000400, "", HFILL }},
7699 { "Not Defined", "ncp.bit12siflags", FT_BOOLEAN, 16, NULL, 0x00000800, "", HFILL }},
7702 { "Not Defined", "ncp.bit13siflags", FT_BOOLEAN, 16, NULL, 0x00001000, "", HFILL }},
7705 { "Not Defined", "ncp.bit14siflags", FT_BOOLEAN, 16, NULL, 0x00002000, "", HFILL }},
7708 { "Not Defined", "ncp.bit15siflags", FT_BOOLEAN, 16, NULL, 0x00004000, "", HFILL }},
7711 { "Not Defined", "ncp.bit16siflags", FT_BOOLEAN, 16, NULL, 0x00008000, "", HFILL }},
7713 { &hf_nds_segment_overlap,
7714 { "Segment overlap", "nds.segment.overlap", FT_BOOLEAN, BASE_NONE,
7715 NULL, 0x0, "Segment overlaps with other segments", HFILL }},
7717 { &hf_nds_segment_overlap_conflict,
7718 { "Conflicting data in segment overlap", "nds.segment.overlap.conflict",
7719 FT_BOOLEAN, BASE_NONE,
7720 NULL, 0x0, "Overlapping segments contained conflicting data", HFILL }},
7722 { &hf_nds_segment_multiple_tails,
7723 { "Multiple tail segments found", "nds.segment.multipletails",
7724 FT_BOOLEAN, BASE_NONE,
7725 NULL, 0x0, "Several tails were found when desegmenting the packet", HFILL }},
7727 { &hf_nds_segment_too_long_segment,
7728 { "Segment too long", "nds.segment.toolongsegment", FT_BOOLEAN, BASE_NONE,
7729 NULL, 0x0, "Segment contained data past end of packet", HFILL }},
7731 { &hf_nds_segment_error,
7732 {"Desegmentation error", "nds.segment.error", FT_FRAMENUM, BASE_NONE,
7733 NULL, 0x0, "Desegmentation error due to illegal segments", HFILL }},
7736 { "NDS Fragment", "nds.fragment", FT_FRAMENUM, BASE_NONE,
7737 NULL, 0x0, "NDPS Fragment", HFILL }},
7740 { "NDS Fragments", "nds.fragments", FT_NONE, BASE_NONE,
7741 NULL, 0x0, "NDPS Fragments", HFILL }},
7746 # Print the registration code for the hf variables
7747 for var in sorted_vars:
7748 print "\t{ &%s," % (var.HFName())
7749 print "\t{ \"%s\", \"%s\", %s, %s, %s, 0x%x, \"\", HFILL }},\n" % \
7750 (var.Description(), var.DFilter(),
7751 var.EtherealFType(), var.Display(), var.ValuesName(),
7757 print "\tstatic gint *ett[] = {"
7759 for ett in ett_list:
7760 print "\t\t&%s," % (ett,)
7765 proto_register_field_array(proto_ncp, hf, array_length(hf));
7770 proto_register_subtree_array(ett, array_length(ett));
7774 register_init_routine(&ncp_init_protocol);
7775 register_postseq_cleanup_routine(&ncp_postseq_cleanup);
7776 register_final_registration_routine(final_registration_ncp2222);
7780 # End of proto_register_ncp2222()
7783 print '#include "packet-ncp2222.inc"'
7786 print "Usage: ncp2222.py -o output_file"
7790 global compcode_lists
7798 opts, args = getopt.getopt(sys.argv[1:], optstring)
7799 except getopt.error:
7802 for opt, arg in opts:
7811 if not out_filename:
7814 # Create the output file
7816 out_file = open(out_filename, "w")
7817 except IOError, err:
7818 sys.exit("Could not open %s for writing: %s" % (out_filename,
7821 # Set msg to current stdout
7824 # Set stdout to the output file
7825 sys.stdout = out_file
7827 msg.write("Processing NCP definitions...\n")
7828 # Run the code, and if we catch any exception,
7829 # erase the output file.
7831 compcode_lists = UniqueCollection('Completion Code Lists')
7832 ptvc_lists = UniqueCollection('PTVC Lists')
7839 msg.write("Defined %d NCP types.\n" % (len(packets),))
7842 traceback.print_exc(20, msg)
7845 except IOError, err:
7846 msg.write("Could not close %s: %s\n" % (out_filename, err))
7849 if os.path.exists(out_filename):
7850 os.remove(out_filename)
7851 except OSError, err:
7852 msg.write("Could not remove %s: %s\n" % (out_filename, err))
7858 def define_ncp2222():
7859 ##############################################################################
7860 # NCP Packets. Here I list functions and subfunctions in hexadecimal like the
7861 # NCP book (and I believe LanAlyzer does this too).
7862 # However, Novell lists these in decimal in their on-line documentation.
7863 ##############################################################################
7865 pkt = NCP(0x01, "File Set Lock", 'file')
7868 pkt.CompletionCodes([0x0000])
7870 pkt = NCP(0x02, "File Release Lock", 'file')
7873 pkt.CompletionCodes([0x0000, 0xff00])
7875 pkt = NCP(0x03, "Log File Exclusive", 'file')
7876 pkt.Request( (12, 267), [
7877 rec( 7, 1, DirHandle ),
7878 rec( 8, 1, LockFlag ),
7879 rec( 9, 2, TimeoutLimit, BE ),
7880 rec( 11, (1, 256), FilePath ),
7883 pkt.CompletionCodes([0x0000, 0x8200, 0x9600, 0xfe0d, 0xff01])
7885 pkt = NCP(0x04, "Lock File Set", 'file')
7887 rec( 7, 2, TimeoutLimit ),
7890 pkt.CompletionCodes([0x0000, 0xfe0d, 0xff01])
7892 pkt = NCP(0x05, "Release File", 'file')
7893 pkt.Request( (9, 264), [
7894 rec( 7, 1, DirHandle ),
7895 rec( 8, (1, 256), FilePath ),
7898 pkt.CompletionCodes([0x0000, 0x9b00, 0x9c03, 0xff1a])
7900 pkt = NCP(0x06, "Release File Set", 'file')
7902 rec( 7, 1, LockFlag ),
7905 pkt.CompletionCodes([0x0000])
7907 pkt = NCP(0x07, "Clear File", 'file')
7908 pkt.Request( (9, 264), [
7909 rec( 7, 1, DirHandle ),
7910 rec( 8, (1, 256), FilePath ),
7913 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03,
7914 0xa100, 0xfd00, 0xff1a])
7916 pkt = NCP(0x08, "Clear File Set", 'file')
7918 rec( 7, 1, LockFlag ),
7921 pkt.CompletionCodes([0x0000])
7923 pkt = NCP(0x09, "Log Logical Record", 'file')
7924 pkt.Request( (11, 138), [
7925 rec( 7, 1, LockFlag ),
7926 rec( 8, 2, TimeoutLimit, BE ),
7927 rec( 10, (1, 128), LogicalRecordName ),
7928 ], info_str=(LogicalRecordName, "Log Logical Record: %s", ", %s"))
7930 pkt.CompletionCodes([0x0000, 0x9600, 0xfe0d, 0xff1a])
7932 pkt = NCP(0x0A, "Lock Logical Record Set", 'file')
7934 rec( 7, 1, LockFlag ),
7935 rec( 8, 2, TimeoutLimit ),
7938 pkt.CompletionCodes([0x0000, 0xfe0d, 0xff1a])
7940 pkt = NCP(0x0B, "Clear Logical Record", 'file')
7941 pkt.Request( (8, 135), [
7942 rec( 7, (1, 128), LogicalRecordName ),
7943 ], info_str=(LogicalRecordName, "Clear Logical Record: %s", ", %s"))
7945 pkt.CompletionCodes([0x0000, 0xff1a])
7947 pkt = NCP(0x0C, "Release Logical Record", 'file')
7948 pkt.Request( (8, 135), [
7949 rec( 7, (1, 128), LogicalRecordName ),
7950 ], info_str=(LogicalRecordName, "Release Logical Record: %s", ", %s"))
7952 pkt.CompletionCodes([0x0000, 0xff1a])
7954 pkt = NCP(0x0D, "Release Logical Record Set", 'file')
7956 rec( 7, 1, LockFlag ),
7959 pkt.CompletionCodes([0x0000])
7961 pkt = NCP(0x0E, "Clear Logical Record Set", 'file')
7963 rec( 7, 1, LockFlag ),
7966 pkt.CompletionCodes([0x0000])
7968 pkt = NCP(0x1100, "Write to Spool File", 'qms')
7969 pkt.Request( (11, 16), [
7970 rec( 10, ( 1, 6 ), Data ),
7971 ], info_str=(Data, "Write to Spool File: %s", ", %s"))
7973 pkt.CompletionCodes([0x0000, 0x0104, 0x8000, 0x8101, 0x8701, 0x8800,
7974 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9400, 0x9500,
7975 0x9600, 0x9804, 0x9900, 0xa100, 0xa201, 0xff19])
7977 pkt = NCP(0x1101, "Close Spool File", 'qms')
7979 rec( 10, 1, AbortQueueFlag ),
7982 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8701, 0x8800, 0x8d00,
7983 0x8e00, 0x8f00, 0x9001, 0x9300, 0x9400, 0x9500,
7984 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03, 0x9d00,
7985 0xa100, 0xd000, 0xd100, 0xd202, 0xd300, 0xd400,
7986 0xda01, 0xe800, 0xea00, 0xeb00, 0xec00, 0xfc06,
7987 0xfd00, 0xfe07, 0xff06])
7989 pkt = NCP(0x1102, "Set Spool File Flags", 'qms')
7991 rec( 10, 1, PrintFlags ),
7992 rec( 11, 1, TabSize ),
7993 rec( 12, 1, TargetPrinter ),
7994 rec( 13, 1, Copies ),
7995 rec( 14, 1, FormType ),
7996 rec( 15, 1, Reserved ),
7997 rec( 16, 14, BannerName ),
8000 pkt.CompletionCodes([0x0000, 0x9600, 0xd202, 0xd300, 0xe800, 0xea00,
8001 0xeb00, 0xec00, 0xfc06, 0xfe07, 0xff06])
8004 pkt = NCP(0x1103, "Spool A Disk File", 'qms')
8005 pkt.Request( (12, 23), [
8006 rec( 10, 1, DirHandle ),
8007 rec( 11, (1, 12), Data ),
8008 ], info_str=(Data, "Spool a Disk File: %s", ", %s"))
8010 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8701, 0x8800, 0x8d00,
8011 0x8e00, 0x8f00, 0x9001, 0x9300, 0x9400, 0x9500,
8012 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03, 0x9d00,
8013 0xa100, 0xd000, 0xd100, 0xd202, 0xd300, 0xd400,
8014 0xda01, 0xe800, 0xea00, 0xeb00, 0xec00, 0xfc06,
8015 0xfd00, 0xfe07, 0xff06])
8018 pkt = NCP(0x1106, "Get Printer Status", 'qms')
8020 rec( 10, 1, TargetPrinter ),
8023 rec( 8, 1, PrinterHalted ),
8024 rec( 9, 1, PrinterOffLine ),
8025 rec( 10, 1, CurrentFormType ),
8026 rec( 11, 1, RedirectedPrinter ),
8028 pkt.CompletionCodes([0x0000, 0x9600, 0xfb05, 0xfd00, 0xff06])
8031 pkt = NCP(0x1109, "Create Spool File", 'qms')
8032 pkt.Request( (12, 23), [
8033 rec( 10, 1, DirHandle ),
8034 rec( 11, (1, 12), Data ),
8035 ], info_str=(Data, "Create Spool File: %s", ", %s"))
8037 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8400, 0x8701, 0x8d00,
8038 0x8f00, 0x9001, 0x9400, 0x9600, 0x9804, 0x9900,
8039 0x9b03, 0x9c03, 0xa100, 0xd000, 0xd100, 0xd202,
8040 0xd300, 0xd400, 0xda01, 0xe800, 0xea00, 0xeb00,
8041 0xec00, 0xfc06, 0xfd00, 0xfe07, 0xff06])
8044 pkt = NCP(0x110A, "Get Printer's Queue", 'qms')
8046 rec( 10, 1, TargetPrinter ),
8049 rec( 8, 4, ObjectID, BE ),
8051 pkt.CompletionCodes([0x0000, 0x9600, 0xff06])
8054 pkt = NCP(0x12, "Get Volume Info with Number", 'file')
8056 rec( 7, 1, VolumeNumber )
8057 ],info_str=(VolumeNumber, "Get Volume Information for Volume %d", ", %d"))
8059 rec( 8, 2, SectorsPerCluster, BE ),
8060 rec( 10, 2, TotalVolumeClusters, BE ),
8061 rec( 12, 2, AvailableClusters, BE ),
8062 rec( 14, 2, TotalDirectorySlots, BE ),
8063 rec( 16, 2, AvailableDirectorySlots, BE ),
8064 rec( 18, 16, VolumeName ),
8065 rec( 34, 2, RemovableFlag, BE ),
8067 pkt.CompletionCodes([0x0000, 0x9804])
8070 pkt = NCP(0x13, "Get Station Number", 'connection')
8073 rec( 8, 3, StationNumber )
8075 pkt.CompletionCodes([0x0000, 0xff00])
8078 pkt = NCP(0x14, "Get File Server Date And Time", 'fileserver')
8085 rec( 12, 1, Minute ),
8086 rec( 13, 1, Second ),
8087 rec( 14, 1, DayOfWeek ),
8089 pkt.CompletionCodes([0x0000])
8092 pkt = NCP(0x1500, "Send Broadcast Message", 'message')
8093 pkt.Request((13, 70), [
8094 rec( 10, 1, ClientListLen, var="x" ),
8095 rec( 11, 1, TargetClientList, repeat="x" ),
8096 rec( 12, (1, 58), TargetMessage ),
8097 ], info_str=(TargetMessage, "Send Broadcast Message: %s", ", %s"))
8099 rec( 8, 1, ClientListLen, var="x" ),
8100 rec( 9, 1, SendStatus, repeat="x" )
8102 pkt.CompletionCodes([0x0000, 0xfd00])
8105 pkt = NCP(0x1501, "Get Broadcast Message", 'message')
8108 rec( 8, (1, 58), TargetMessage )
8110 pkt.CompletionCodes([0x0000, 0xfd00])
8113 pkt = NCP(0x1502, "Disable Broadcasts", 'message')
8116 pkt.CompletionCodes([0x0000, 0xfb0a])
8119 pkt = NCP(0x1503, "Enable Broadcasts", 'message')
8122 pkt.CompletionCodes([0x0000])
8125 pkt = NCP(0x1509, "Broadcast To Console", 'message')
8126 pkt.Request((11, 68), [
8127 rec( 10, (1, 58), TargetMessage )
8128 ], info_str=(TargetMessage, "Broadcast to Console: %s", ", %s"))
8130 pkt.CompletionCodes([0x0000])
8132 pkt = NCP(0x150A, "Send Broadcast Message", 'message')
8133 pkt.Request((17, 74), [
8134 rec( 10, 2, ClientListCount, LE, var="x" ),
8135 rec( 12, 4, ClientList, LE, repeat="x" ),
8136 rec( 16, (1, 58), TargetMessage ),
8137 ], info_str=(TargetMessage, "Send Broadcast Message: %s", ", %s"))
8139 rec( 8, 2, ClientListCount, LE, var="x" ),
8140 rec( 10, 4, ClientCompFlag, LE, repeat="x" ),
8142 pkt.CompletionCodes([0x0000, 0xfd00])
8145 pkt = NCP(0x150B, "Get Broadcast Message", 'message')
8148 rec( 8, (1, 58), TargetMessage )
8150 pkt.CompletionCodes([0x0000, 0xfd00])
8153 pkt = NCP(0x150C, "Connection Message Control", 'message')
8155 rec( 10, 1, ConnectionControlBits ),
8156 rec( 11, 3, Reserved3 ),
8157 rec( 14, 4, ConnectionListCount, LE, var="x" ),
8158 rec( 18, 4, ConnectionList, LE, repeat="x" ),
8161 pkt.CompletionCodes([0x0000, 0xff00])
8164 pkt = NCP(0x1600, "Set Directory Handle", 'fileserver')
8165 pkt.Request((13,267), [
8166 rec( 10, 1, TargetDirHandle ),
8167 rec( 11, 1, DirHandle ),
8168 rec( 12, (1, 255), Path ),
8169 ], info_str=(Path, "Set Directory Handle to: %s", ", %s"))
8171 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8176 pkt = NCP(0x1601, "Get Directory Path", 'fileserver')
8178 rec( 10, 1, DirHandle ),
8179 ],info_str=(DirHandle, "Get Directory Path for Directory Handle %d", ", %d"))
8180 pkt.Reply((9,263), [
8181 rec( 8, (1,255), Path ),
8183 pkt.CompletionCodes([0x0000, 0x9600, 0x9b00, 0x9c00, 0xa100])
8186 pkt = NCP(0x1602, "Scan Directory Information", 'fileserver')
8187 pkt.Request((14,268), [
8188 rec( 10, 1, DirHandle ),
8189 rec( 11, 2, StartingSearchNumber, BE ),
8190 rec( 13, (1, 255), Path ),
8191 ], info_str=(Path, "Scan Directory Information: %s", ", %s"))
8193 rec( 8, 16, DirectoryPath ),
8194 rec( 24, 2, CreationDate, BE ),
8195 rec( 26, 2, CreationTime, BE ),
8196 rec( 28, 4, CreatorID, BE ),
8197 rec( 32, 1, AccessRightsMask ),
8198 rec( 33, 1, Reserved ),
8199 rec( 34, 2, NextSearchNumber, BE ),
8201 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8205 pkt = NCP(0x1603, "Get Effective Directory Rights", 'fileserver')
8206 pkt.Request((14,268), [
8207 rec( 10, 1, DirHandle ),
8208 rec( 11, 2, StartingSearchNumber ),
8209 rec( 13, (1, 255), Path ),
8210 ], info_str=(Path, "Get Effective Directory Rights: %s", ", %s"))
8212 rec( 8, 1, AccessRightsMask ),
8214 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8218 pkt = NCP(0x1604, "Modify Maximum Rights Mask", 'fileserver')
8219 pkt.Request((14,268), [
8220 rec( 10, 1, DirHandle ),
8221 rec( 11, 1, RightsGrantMask ),
8222 rec( 12, 1, RightsRevokeMask ),
8223 rec( 13, (1, 255), Path ),
8224 ], info_str=(Path, "Modify Maximum Rights Mask: %s", ", %s"))
8226 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8230 pkt = NCP(0x1605, "Get Volume Number", 'fileserver')
8231 pkt.Request((11, 265), [
8232 rec( 10, (1,255), VolumeNameLen ),
8233 ], info_str=(VolumeNameLen, "Get Volume Number for: %s", ", %s"))
8235 rec( 8, 1, VolumeNumber ),
8237 pkt.CompletionCodes([0x0000, 0x9600, 0x9804])
8240 pkt = NCP(0x1606, "Get Volume Name", 'fileserver')
8242 rec( 10, 1, VolumeNumber ),
8243 ],info_str=(VolumeNumber, "Get Name for Volume %d", ", %d"))
8244 pkt.Reply((9, 263), [
8245 rec( 8, (1,255), VolumeNameLen ),
8247 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0xff00])
8250 pkt = NCP(0x160A, "Create Directory", 'fileserver')
8251 pkt.Request((13,267), [
8252 rec( 10, 1, DirHandle ),
8253 rec( 11, 1, AccessRightsMask ),
8254 rec( 12, (1, 255), Path ),
8255 ], info_str=(Path, "Create Directory: %s", ", %s"))
8257 pkt.CompletionCodes([0x0000, 0x8400, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8258 0x9e00, 0xa100, 0xfd00, 0xff00])
8261 pkt = NCP(0x160B, "Delete Directory", 'fileserver')
8262 pkt.Request((13,267), [
8263 rec( 10, 1, DirHandle ),
8264 rec( 11, 1, Reserved ),
8265 rec( 12, (1, 255), Path ),
8266 ], info_str=(Path, "Delete Directory: %s", ", %s"))
8268 pkt.CompletionCodes([0x0000, 0x8a00, 0x9600, 0x9804, 0x9b03, 0x9c03,
8269 0x9f00, 0xa000, 0xa100, 0xfd00, 0xff00])
8272 pkt = NCP(0x160C, "Scan Directory for Trustees", 'fileserver')
8273 pkt.Request((13,267), [
8274 rec( 10, 1, DirHandle ),
8275 rec( 11, 1, TrusteeSetNumber ),
8276 rec( 12, (1, 255), Path ),
8277 ], info_str=(Path, "Scan Directory for Trustees: %s", ", %s"))
8279 rec( 8, 16, DirectoryPath ),
8280 rec( 24, 2, CreationDate, BE ),
8281 rec( 26, 2, CreationTime, BE ),
8282 rec( 28, 4, CreatorID ),
8283 rec( 32, 4, TrusteeID, BE ),
8284 rec( 36, 4, TrusteeID, BE ),
8285 rec( 40, 4, TrusteeID, BE ),
8286 rec( 44, 4, TrusteeID, BE ),
8287 rec( 48, 4, TrusteeID, BE ),
8288 rec( 52, 1, AccessRightsMask ),
8289 rec( 53, 1, AccessRightsMask ),
8290 rec( 54, 1, AccessRightsMask ),
8291 rec( 55, 1, AccessRightsMask ),
8292 rec( 56, 1, AccessRightsMask ),
8294 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c03,
8295 0xa100, 0xfd00, 0xff00])
8298 pkt = NCP(0x160D, "Add Trustee to Directory", 'fileserver')
8299 pkt.Request((17,271), [
8300 rec( 10, 1, DirHandle ),
8301 rec( 11, 4, TrusteeID, BE ),
8302 rec( 15, 1, AccessRightsMask ),
8303 rec( 16, (1, 255), Path ),
8304 ], info_str=(Path, "Add Trustee to Directory: %s", ", %s"))
8306 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8307 0xa100, 0xfc06, 0xfd00, 0xff00])
8310 pkt = NCP(0x160E, "Delete Trustee from Directory", 'fileserver')
8311 pkt.Request((17,271), [
8312 rec( 10, 1, DirHandle ),
8313 rec( 11, 4, TrusteeID, BE ),
8314 rec( 15, 1, Reserved ),
8315 rec( 16, (1, 255), Path ),
8316 ], info_str=(Path, "Delete Trustee from Directory: %s", ", %s"))
8318 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8319 0xa100, 0xfc06, 0xfd00, 0xfe07, 0xff00])
8322 pkt = NCP(0x160F, "Rename Directory", 'fileserver')
8323 pkt.Request((13, 521), [
8324 rec( 10, 1, DirHandle ),
8325 rec( 11, (1, 255), Path ),
8326 rec( -1, (1, 255), NewPath ),
8327 ], info_str=(Path, "Rename Directory: %s", ", %s"))
8329 pkt.CompletionCodes([0x0000, 0x8b00, 0x9200, 0x9600, 0x9804, 0x9b03, 0x9c03,
8330 0x9e00, 0xa100, 0xef00, 0xfd00, 0xff00])
8333 pkt = NCP(0x1610, "Purge Erased Files", 'file')
8336 pkt.CompletionCodes([0x0000, 0x8100, 0x9600, 0x9804, 0xa100, 0xff00])
8339 pkt = NCP(0x1611, "Recover Erased File", 'fileserver')
8341 rec( 10, 1, DirHandle ),
8342 ],info_str=(DirHandle, "Recover Erased File from Directory Handle %d", ", %d"))
8344 rec( 8, 15, OldFileName ),
8345 rec( 23, 15, NewFileName ),
8347 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03,
8348 0xa100, 0xfd00, 0xff00])
8350 pkt = NCP(0x1612, "Alloc Permanent Directory Handle", 'fileserver')
8351 pkt.Request((13, 267), [
8352 rec( 10, 1, DirHandle ),
8353 rec( 11, 1, DirHandleName ),
8354 rec( 12, (1,255), Path ),
8355 ], info_str=(Path, "Allocate Permanent Directory Handle: %s", ", %s"))
8357 rec( 8, 1, DirHandle ),
8358 rec( 9, 1, AccessRightsMask ),
8360 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8361 0xa100, 0xfd00, 0xff00])
8363 pkt = NCP(0x1613, "Alloc Temporary Directory Handle", 'fileserver')
8364 pkt.Request((13, 267), [
8365 rec( 10, 1, DirHandle ),
8366 rec( 11, 1, DirHandleName ),
8367 rec( 12, (1,255), Path ),
8368 ], info_str=(Path, "Allocate Temporary Directory Handle: %s", ", %s"))
8370 rec( 8, 1, DirHandle ),
8371 rec( 9, 1, AccessRightsMask ),
8373 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8374 0xa100, 0xfd00, 0xff00])
8376 pkt = NCP(0x1614, "Deallocate Directory Handle", 'fileserver')
8378 rec( 10, 1, DirHandle ),
8379 ],info_str=(DirHandle, "Deallocate Directory Handle %d", ", %d"))
8381 pkt.CompletionCodes([0x0000, 0x9b03])
8383 pkt = NCP(0x1615, "Get Volume Info with Handle", 'file')
8385 rec( 10, 1, DirHandle )
8386 ],info_str=(DirHandle, "Get Volume Information with Handle %d", ", %d"))
8388 rec( 8, 2, SectorsPerCluster, BE ),
8389 rec( 10, 2, TotalVolumeClusters, BE ),
8390 rec( 12, 2, AvailableClusters, BE ),
8391 rec( 14, 2, TotalDirectorySlots, BE ),
8392 rec( 16, 2, AvailableDirectorySlots, BE ),
8393 rec( 18, 16, VolumeName ),
8394 rec( 34, 2, RemovableFlag, BE ),
8396 pkt.CompletionCodes([0x0000, 0xff00])
8398 pkt = NCP(0x1616, "Alloc Special Temporary Directory Handle", 'fileserver')
8399 pkt.Request((13, 267), [
8400 rec( 10, 1, DirHandle ),
8401 rec( 11, 1, DirHandleName ),
8402 rec( 12, (1,255), Path ),
8403 ], info_str=(Path, "Allocate Special Temporary Directory Handle: %s", ", %s"))
8405 rec( 8, 1, DirHandle ),
8406 rec( 9, 1, AccessRightsMask ),
8408 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8409 0xa100, 0xfd00, 0xff00])
8411 pkt = NCP(0x1617, "Extract a Base Handle", 'fileserver')
8413 rec( 10, 1, DirHandle ),
8414 ],info_str=(DirHandle, "Extract a Base Handle from Directory Handle %d", ", %d"))
8416 rec( 8, 10, ServerNetworkAddress ),
8417 rec( 18, 4, DirHandleLong ),
8419 pkt.CompletionCodes([0x0000, 0x9600, 0x9b03])
8421 pkt = NCP(0x1618, "Restore an Extracted Base Handle", 'fileserver')
8423 rec( 10, 10, ServerNetworkAddress ),
8424 rec( 20, 4, DirHandleLong ),
8427 rec( 8, 1, DirHandle ),
8428 rec( 9, 1, AccessRightsMask ),
8430 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c00, 0x9d00, 0xa100,
8433 pkt = NCP(0x1619, "Set Directory Information", 'fileserver')
8434 pkt.Request((21, 275), [
8435 rec( 10, 1, DirHandle ),
8436 rec( 11, 2, CreationDate ),
8437 rec( 13, 2, CreationTime ),
8438 rec( 15, 4, CreatorID, BE ),
8439 rec( 19, 1, AccessRightsMask ),
8440 rec( 20, (1,255), Path ),
8441 ], info_str=(Path, "Set Directory Information: %s", ", %s"))
8443 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c00, 0xa100,
8446 pkt = NCP(0x161A, "Get Path Name of a Volume-Directory Number Pair", 'fileserver')
8448 rec( 10, 1, VolumeNumber ),
8449 rec( 11, 2, DirectoryEntryNumberWord ),
8451 pkt.Reply((9,263), [
8452 rec( 8, (1,255), Path ),
8454 pkt.CompletionCodes([0x0000, 0x9804, 0x9c00, 0xa100])
8456 pkt = NCP(0x161B, "Scan Salvageable Files", 'fileserver')
8458 rec( 10, 1, DirHandle ),
8459 rec( 11, 4, SequenceNumber ),
8462 rec( 8, 4, SequenceNumber ),
8463 rec( 12, 2, Subdirectory ),
8464 rec( 14, 2, Reserved2 ),
8465 rec( 16, 4, AttributesDef32 ),
8466 rec( 20, 1, UniqueID ),
8467 rec( 21, 1, FlagsDef ),
8468 rec( 22, 1, DestNameSpace ),
8469 rec( 23, 1, FileNameLen ),
8470 rec( 24, 12, FileName12 ),
8471 rec( 36, 2, CreationTime ),
8472 rec( 38, 2, CreationDate ),
8473 rec( 40, 4, CreatorID, BE ),
8474 rec( 44, 2, ArchivedTime ),
8475 rec( 46, 2, ArchivedDate ),
8476 rec( 48, 4, ArchiverID, BE ),
8477 rec( 52, 2, UpdateTime ),
8478 rec( 54, 2, UpdateDate ),
8479 rec( 56, 4, UpdateID, BE ),
8480 rec( 60, 4, FileSize, BE ),
8481 rec( 64, 44, Reserved44 ),
8482 rec( 108, 2, InheritedRightsMask ),
8483 rec( 110, 2, LastAccessedDate ),
8484 rec( 112, 4, DeletedFileTime ),
8485 rec( 116, 2, DeletedTime ),
8486 rec( 118, 2, DeletedDate ),
8487 rec( 120, 4, DeletedID, BE ),
8488 rec( 124, 16, Reserved16 ),
8490 pkt.CompletionCodes([0x0000, 0xfb01, 0xff1d])
8492 pkt = NCP(0x161C, "Recover Salvageable File", 'fileserver')
8493 pkt.Request((17,525), [
8494 rec( 10, 1, DirHandle ),
8495 rec( 11, 4, SequenceNumber ),
8496 rec( 15, (1, 255), FileName ),
8497 rec( -1, (1, 255), NewFileNameLen ),
8498 ], info_str=(FileName, "Recover File: %s", ", %s"))
8500 pkt.CompletionCodes([0x0000, 0x8401, 0x9c03, 0xfe02])
8502 pkt = NCP(0x161D, "Purge Salvageable File", 'fileserver')
8504 rec( 10, 1, DirHandle ),
8505 rec( 11, 4, SequenceNumber ),
8508 pkt.CompletionCodes([0x0000, 0x8500, 0x9c03])
8510 pkt = NCP(0x161E, "Scan a Directory", 'fileserver')
8511 pkt.Request((17, 271), [
8512 rec( 10, 1, DirHandle ),
8513 rec( 11, 1, DOSFileAttributes ),
8514 rec( 12, 4, SequenceNumber ),
8515 rec( 16, (1, 255), SearchPattern ),
8516 ], info_str=(SearchPattern, "Scan a Directory: %s", ", %s"))
8518 rec( 8, 4, SequenceNumber ),
8519 rec( 12, 4, Subdirectory ),
8520 rec( 16, 4, AttributesDef32 ),
8521 rec( 20, 1, UniqueID, LE ),
8522 rec( 21, 1, PurgeFlags ),
8523 rec( 22, 1, DestNameSpace ),
8524 rec( 23, 1, NameLen ),
8525 rec( 24, 12, Name12 ),
8526 rec( 36, 2, CreationTime ),
8527 rec( 38, 2, CreationDate ),
8528 rec( 40, 4, CreatorID, BE ),
8529 rec( 44, 2, ArchivedTime ),
8530 rec( 46, 2, ArchivedDate ),
8531 rec( 48, 4, ArchiverID, BE ),
8532 rec( 52, 2, UpdateTime ),
8533 rec( 54, 2, UpdateDate ),
8534 rec( 56, 4, UpdateID, BE ),
8535 rec( 60, 4, FileSize, BE ),
8536 rec( 64, 44, Reserved44 ),
8537 rec( 108, 2, InheritedRightsMask ),
8538 rec( 110, 2, LastAccessedDate ),
8539 rec( 112, 28, Reserved28 ),
8541 pkt.CompletionCodes([0x0000, 0x8500, 0x9c03])
8543 pkt = NCP(0x161F, "Get Directory Entry", 'fileserver')
8545 rec( 10, 1, DirHandle ),
8548 rec( 8, 4, Subdirectory ),
8549 rec( 12, 4, AttributesDef32 ),
8550 rec( 16, 1, UniqueID, LE ),
8551 rec( 17, 1, PurgeFlags ),
8552 rec( 18, 1, DestNameSpace ),
8553 rec( 19, 1, NameLen ),
8554 rec( 20, 12, Name12 ),
8555 rec( 32, 2, CreationTime ),
8556 rec( 34, 2, CreationDate ),
8557 rec( 36, 4, CreatorID, BE ),
8558 rec( 40, 2, ArchivedTime ),
8559 rec( 42, 2, ArchivedDate ),
8560 rec( 44, 4, ArchiverID, BE ),
8561 rec( 48, 2, UpdateTime ),
8562 rec( 50, 2, UpdateDate ),
8563 rec( 52, 4, NextTrusteeEntry, BE ),
8564 rec( 56, 48, Reserved48 ),
8565 rec( 104, 2, MaximumSpace ),
8566 rec( 106, 2, InheritedRightsMask ),
8567 rec( 108, 28, Undefined28 ),
8569 pkt.CompletionCodes([0x0000, 0x8900, 0xbf00, 0xfb00])
8571 pkt = NCP(0x1620, "Scan Volume's User Disk Restrictions", 'fileserver')
8573 rec( 10, 1, VolumeNumber ),
8574 rec( 11, 4, SequenceNumber ),
8577 rec( 8, 1, NumberOfEntries, var="x" ),
8578 rec( 9, 8, ObjectIDStruct, repeat="x" ),
8580 pkt.CompletionCodes([0x0000, 0x9800])
8582 pkt = NCP(0x1621, "Add User Disk Space Restriction", 'fileserver')
8584 rec( 10, 1, VolumeNumber ),
8585 rec( 11, 4, ObjectID ),
8586 rec( 15, 4, DiskSpaceLimit ),
8589 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9800])
8591 pkt = NCP(0x1622, "Remove User Disk Space Restrictions", 'fileserver')
8593 rec( 10, 1, VolumeNumber ),
8594 rec( 11, 4, ObjectID ),
8597 pkt.CompletionCodes([0x0000, 0x8c00, 0xfe0e])
8599 pkt = NCP(0x1623, "Get Directory Disk Space Restriction", 'fileserver')
8601 rec( 10, 1, DirHandle ),
8604 rec( 8, 1, NumberOfEntries ),
8606 rec( 10, 4, MaxSpace ),
8607 rec( 14, 4, CurrentSpace ),
8609 pkt.CompletionCodes([0x0000])
8611 pkt = NCP(0x1624, "Set Directory Disk Space Restriction", 'fileserver')
8613 rec( 10, 1, DirHandle ),
8614 rec( 11, 4, DiskSpaceLimit ),
8617 pkt.CompletionCodes([0x0000, 0x0101, 0x8c00, 0xbf00])
8619 pkt = NCP(0x1625, "Set Directory Entry Information", 'fileserver')
8620 pkt.Request(NO_LENGTH_CHECK, [
8622 # XXX - this didn't match what was in the spec for 22/37
8623 # on the Novell Web site.
8625 rec( 10, 1, DirHandle ),
8626 rec( 11, 1, SearchAttributes ),
8627 rec( 12, 4, SequenceNumber ),
8628 rec( 16, 2, ChangeBits ),
8629 rec( 18, 2, Reserved2 ),
8630 rec( 20, 4, Subdirectory ),
8631 srec(DOSDirectoryEntryStruct, req_cond="ncp.search_att_sub == TRUE"),
8632 srec(DOSFileEntryStruct, req_cond="ncp.search_att_sub == FALSE"),
8635 pkt.ReqCondSizeConstant()
8636 pkt.CompletionCodes([0x0000, 0x0106, 0x8c00, 0xbf00])
8638 pkt = NCP(0x1626, "Scan File or Directory for Extended Trustees", 'fileserver')
8639 pkt.Request((13,267), [
8640 rec( 10, 1, DirHandle ),
8641 rec( 11, 1, SequenceByte ),
8642 rec( 12, (1, 255), Path ),
8643 ], info_str=(Path, "Scan for Extended Trustees: %s", ", %s"))
8645 rec( 8, 1, NumberOfEntries, var="x" ),
8646 rec( 9, 4, ObjectID ),
8647 rec( 13, 4, ObjectID ),
8648 rec( 17, 4, ObjectID ),
8649 rec( 21, 4, ObjectID ),
8650 rec( 25, 4, ObjectID ),
8651 rec( 29, 4, ObjectID ),
8652 rec( 33, 4, ObjectID ),
8653 rec( 37, 4, ObjectID ),
8654 rec( 41, 4, ObjectID ),
8655 rec( 45, 4, ObjectID ),
8656 rec( 49, 4, ObjectID ),
8657 rec( 53, 4, ObjectID ),
8658 rec( 57, 4, ObjectID ),
8659 rec( 61, 4, ObjectID ),
8660 rec( 65, 4, ObjectID ),
8661 rec( 69, 4, ObjectID ),
8662 rec( 73, 4, ObjectID ),
8663 rec( 77, 4, ObjectID ),
8664 rec( 81, 4, ObjectID ),
8665 rec( 85, 4, ObjectID ),
8666 rec( 89, 2, AccessRightsMaskWord, repeat="x" ),
8668 pkt.CompletionCodes([0x0000, 0x9800, 0x9b00, 0x9c00])
8670 pkt = NCP(0x1627, "Add Extended Trustee to Directory or File", 'fileserver')
8671 pkt.Request((18,272), [
8672 rec( 10, 1, DirHandle ),
8673 rec( 11, 4, ObjectID, BE ),
8674 rec( 15, 2, TrusteeRights ),
8675 rec( 17, (1, 255), Path ),
8676 ], info_str=(Path, "Add Extended Trustee: %s", ", %s"))
8678 pkt.CompletionCodes([0x0000, 0x9000])
8680 pkt = NCP(0x1628, "Scan Directory Disk Space", 'fileserver')
8681 pkt.Request((17,271), [
8682 rec( 10, 1, DirHandle ),
8683 rec( 11, 1, SearchAttributes ),
8684 rec( 12, 4, SequenceNumber ),
8685 rec( 16, (1, 255), SearchPattern ),
8686 ], info_str=(SearchPattern, "Scan Directory Disk Space: %s", ", %s"))
8688 rec( 8, 4, SequenceNumber ),
8689 rec( 12, 4, Subdirectory ),
8690 rec( 16, 4, AttributesDef32 ),
8691 rec( 20, 1, UniqueID ),
8692 rec( 21, 1, PurgeFlags ),
8693 rec( 22, 1, DestNameSpace ),
8694 rec( 23, 1, NameLen ),
8695 rec( 24, 12, Name12 ),
8696 rec( 36, 2, CreationTime ),
8697 rec( 38, 2, CreationDate ),
8698 rec( 40, 4, CreatorID, BE ),
8699 rec( 44, 2, ArchivedTime ),
8700 rec( 46, 2, ArchivedDate ),
8701 rec( 48, 4, ArchiverID, BE ),
8702 rec( 52, 2, UpdateTime ),
8703 rec( 54, 2, UpdateDate ),
8704 rec( 56, 4, UpdateID, BE ),
8705 rec( 60, 4, DataForkSize, BE ),
8706 rec( 64, 4, DataForkFirstFAT, BE ),
8707 rec( 68, 4, NextTrusteeEntry, BE ),
8708 rec( 72, 36, Reserved36 ),
8709 rec( 108, 2, InheritedRightsMask ),
8710 rec( 110, 2, LastAccessedDate ),
8711 rec( 112, 4, DeletedFileTime ),
8712 rec( 116, 2, DeletedTime ),
8713 rec( 118, 2, DeletedDate ),
8714 rec( 120, 4, DeletedID, BE ),
8715 rec( 124, 8, Undefined8 ),
8716 rec( 132, 4, PrimaryEntry, LE ),
8717 rec( 136, 4, NameList, LE ),
8718 rec( 140, 4, OtherFileForkSize, BE ),
8719 rec( 144, 4, OtherFileForkFAT, BE ),
8721 pkt.CompletionCodes([0x0000, 0x8900, 0x9c03, 0xfb01, 0xff00])
8723 pkt = NCP(0x1629, "Get Object Disk Usage and Restrictions", 'fileserver')
8725 rec( 10, 1, VolumeNumber ),
8726 rec( 11, 4, ObjectID, BE ),
8729 rec( 8, 4, Restriction ),
8730 rec( 12, 4, InUse ),
8732 pkt.CompletionCodes([0x0000, 0x9802])
8734 pkt = NCP(0x162A, "Get Effective Rights for Directory Entry", 'fileserver')
8735 pkt.Request((12,266), [
8736 rec( 10, 1, DirHandle ),
8737 rec( 11, (1, 255), Path ),
8738 ], info_str=(Path, "Get Effective Rights: %s", ", %s"))
8740 rec( 8, 2, AccessRightsMaskWord ),
8742 pkt.CompletionCodes([0x0000, 0x9804, 0x9c03])
8744 pkt = NCP(0x162B, "Remove Extended Trustee from Dir or File", 'fileserver')
8745 pkt.Request((17,271), [
8746 rec( 10, 1, DirHandle ),
8747 rec( 11, 4, ObjectID, BE ),
8748 rec( 15, 1, Unused ),
8749 rec( 16, (1, 255), Path ),
8750 ], info_str=(Path, "Remove Extended Trustee from %s", ", %s"))
8752 pkt.CompletionCodes([0x0000, 0x9002, 0x9c03, 0xfe0f, 0xff09])
8754 pkt = NCP(0x162C, "Get Volume and Purge Information", 'file')
8756 rec( 10, 1, VolumeNumber )
8757 ],info_str=(VolumeNumber, "Get Volume and Purge Information for Volume %d", ", %d"))
8758 pkt.Reply( (38,53), [
8759 rec( 8, 4, TotalBlocks ),
8760 rec( 12, 4, FreeBlocks ),
8761 rec( 16, 4, PurgeableBlocks ),
8762 rec( 20, 4, NotYetPurgeableBlocks ),
8763 rec( 24, 4, TotalDirectoryEntries ),
8764 rec( 28, 4, AvailableDirEntries ),
8765 rec( 32, 4, Reserved4 ),
8766 rec( 36, 1, SectorsPerBlock ),
8767 rec( 37, (1,16), VolumeNameLen ),
8769 pkt.CompletionCodes([0x0000])
8771 pkt = NCP(0x162D, "Get Directory Information", 'file')
8773 rec( 10, 1, DirHandle )
8775 pkt.Reply( (30, 45), [
8776 rec( 8, 4, TotalBlocks ),
8777 rec( 12, 4, AvailableBlocks ),
8778 rec( 16, 4, TotalDirectoryEntries ),
8779 rec( 20, 4, AvailableDirEntries ),
8780 rec( 24, 4, Reserved4 ),
8781 rec( 28, 1, SectorsPerBlock ),
8782 rec( 29, (1,16), VolumeNameLen ),
8784 pkt.CompletionCodes([0x0000, 0x9b03])
8786 pkt = NCP(0x162E, "Rename Or Move", 'file')
8787 pkt.Request( (17,525), [
8788 rec( 10, 1, SourceDirHandle ),
8789 rec( 11, 1, SearchAttributes ),
8790 rec( 12, 1, SourcePathComponentCount ),
8791 rec( 13, (1,255), SourcePath ),
8792 rec( -1, 1, DestDirHandle ),
8793 rec( -1, 1, DestPathComponentCount ),
8794 rec( -1, (1,255), DestPath ),
8795 ], info_str=(SourcePath, "Rename or Move: %s", ", %s"))
8797 pkt.CompletionCodes([0x0000, 0x0102, 0x8701, 0x8b00, 0x8d00, 0x8e00,
8798 0x8f00, 0x9001, 0x9101, 0x9201, 0x9a00, 0x9b03,
8799 0x9c03, 0xa400, 0xff17])
8801 pkt = NCP(0x162F, "Get Name Space Information", 'file')
8803 rec( 10, 1, VolumeNumber )
8804 ],info_str=(VolumeNumber, "Get Name Space Information for Volume %d", ", %d"))
8805 pkt.Reply( (15,523), [
8807 # XXX - why does this not display anything at all
8808 # if the stuff after the first IndexNumber is
8811 rec( 8, 1, DefinedNameSpaces, var="v" ),
8812 rec( 9, (1,255), NameSpaceName, repeat="v" ),
8813 rec( -1, 1, DefinedDataStreams, var="w" ),
8814 rec( -1, (2,256), DataStreamInfo, repeat="w" ),
8815 rec( -1, 1, LoadedNameSpaces, var="x" ),
8816 rec( -1, 1, IndexNumber, repeat="x" ),
8817 # rec( -1, 1, VolumeNameSpaces, var="y" ),
8818 # rec( -1, 1, IndexNumber, repeat="y" ),
8819 # rec( -1, 1, VolumeDataStreams, var="z" ),
8820 # rec( -1, 1, IndexNumber, repeat="z" ),
8822 pkt.CompletionCodes([0x0000, 0xff00])
8824 pkt = NCP(0x1630, "Get Name Space Directory Entry", 'file')
8826 rec( 10, 1, VolumeNumber ),
8827 rec( 11, 4, DOSSequence ),
8828 rec( 15, 1, SrcNameSpace ),
8831 rec( 8, 4, SequenceNumber ),
8832 rec( 12, 4, Subdirectory ),
8833 rec( 16, 4, AttributesDef32 ),
8834 rec( 20, 1, UniqueID ),
8835 rec( 21, 1, Flags ),
8836 rec( 22, 1, SrcNameSpace ),
8837 rec( 23, 1, NameLength ),
8838 rec( 24, 12, Name12 ),
8839 rec( 36, 2, CreationTime ),
8840 rec( 38, 2, CreationDate ),
8841 rec( 40, 4, CreatorID, BE ),
8842 rec( 44, 2, ArchivedTime ),
8843 rec( 46, 2, ArchivedDate ),
8844 rec( 48, 4, ArchiverID ),
8845 rec( 52, 2, UpdateTime ),
8846 rec( 54, 2, UpdateDate ),
8847 rec( 56, 4, UpdateID ),
8848 rec( 60, 4, FileSize ),
8849 rec( 64, 44, Reserved44 ),
8850 rec( 108, 2, InheritedRightsMask ),
8851 rec( 110, 2, LastAccessedDate ),
8853 pkt.CompletionCodes([0x0000, 0x8900, 0x9802, 0xbf00])
8855 pkt = NCP(0x1631, "Open Data Stream", 'file')
8856 pkt.Request( (15,269), [
8857 rec( 10, 1, DataStream ),
8858 rec( 11, 1, DirHandle ),
8859 rec( 12, 1, AttributesDef ),
8860 rec( 13, 1, OpenRights ),
8861 rec( 14, (1, 255), FileName ),
8862 ], info_str=(FileName, "Open Data Stream: %s", ", %s"))
8864 rec( 8, 4, CCFileHandle, BE ),
8866 pkt.CompletionCodes([0x0000, 0x8000, 0x8200, 0x9002, 0xbe00, 0xff00])
8868 pkt = NCP(0x1632, "Get Object Effective Rights for Directory Entry", 'file')
8869 pkt.Request( (16,270), [
8870 rec( 10, 4, ObjectID, BE ),
8871 rec( 14, 1, DirHandle ),
8872 rec( 15, (1, 255), Path ),
8873 ], info_str=(Path, "Get Object Effective Rights: %s", ", %s"))
8875 rec( 8, 2, TrusteeRights ),
8877 pkt.CompletionCodes([0x0000, 0x7e01, 0x9b00, 0x9c03])
8879 pkt = NCP(0x1633, "Get Extended Volume Information", 'file')
8881 rec( 10, 1, VolumeNumber ),
8882 ],info_str=(VolumeNumber, "Get Extended Volume Information for Volume %d", ", %d"))
8883 pkt.Reply( (139,266), [
8884 rec( 8, 2, VolInfoReplyLen ),
8885 rec( 10, 128, VolInfoStructure),
8886 rec( 138, (1,128), VolumeNameLen ),
8888 pkt.CompletionCodes([0x0000, 0x7e01, 0x9804, 0xfb08, 0xff00])
8890 pkt = NCP(0x1634, "Get Mount Volume List", 'file')
8892 rec( 10, 4, StartVolumeNumber ),
8893 rec( 14, 4, VolumeRequestFlags, LE ),
8894 rec( 18, 4, SrcNameSpace ),
8897 rec( 8, 4, ItemsInPacket, var="x" ),
8898 rec( 12, 4, NextVolumeNumber ),
8899 rec( 16, 18, VolumeStruct, repeat="x"),
8901 pkt.CompletionCodes([0x0000])
8903 pkt = NCP(0x1700, "Login User", 'file')
8904 pkt.Request( (12, 58), [
8905 rec( 10, (1,16), UserName ),
8906 rec( -1, (1,32), Password ),
8907 ], info_str=(UserName, "Login User: %s", ", %s"))
8909 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc501, 0xd700,
8910 0xd900, 0xda00, 0xdb00, 0xde00, 0xdf00, 0xe800,
8911 0xec00, 0xed00, 0xef00, 0xf001, 0xf100, 0xf200,
8912 0xf600, 0xfb00, 0xfc06, 0xfe07, 0xff00])
8914 pkt = NCP(0x1701, "Change User Password", 'file')
8915 pkt.Request( (13, 90), [
8916 rec( 10, (1,16), UserName ),
8917 rec( -1, (1,32), Password ),
8918 rec( -1, (1,32), NewPassword ),
8919 ], info_str=(UserName, "Change Password for User: %s", ", %s"))
8921 pkt.CompletionCodes([0x0000, 0x9600, 0xd600, 0xf001, 0xf101, 0xf501,
8922 0xfc06, 0xfe07, 0xff00])
8924 pkt = NCP(0x1702, "Get User Connection List", 'file')
8925 pkt.Request( (11, 26), [
8926 rec( 10, (1,16), UserName ),
8927 ], info_str=(UserName, "Get User Connection: %s", ", %s"))
8928 pkt.Reply( (9, 136), [
8929 rec( 8, (1, 128), ConnectionNumberList ),
8931 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
8933 pkt = NCP(0x1703, "Get User Number", 'file')
8934 pkt.Request( (11, 26), [
8935 rec( 10, (1,16), UserName ),
8936 ], info_str=(UserName, "Get User Number: %s", ", %s"))
8938 rec( 8, 4, ObjectID, BE ),
8940 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
8942 pkt = NCP(0x1705, "Get Station's Logged Info", 'file')
8944 rec( 10, 1, TargetConnectionNumber ),
8945 ],info_str=(TargetConnectionNumber, "Get Station's Logged Information on Connection %d", ", %d"))
8947 rec( 8, 16, UserName16 ),
8948 rec( 24, 7, LoginTime ),
8949 rec( 31, 39, FullName ),
8950 rec( 70, 4, UserID, BE ),
8951 rec( 74, 128, SecurityEquivalentList ),
8952 rec( 202, 64, Reserved64 ),
8954 pkt.CompletionCodes([0x0000, 0x9602, 0xfc06, 0xfd00, 0xfe07, 0xff00])
8956 pkt = NCP(0x1707, "Get Group Number", 'file')
8958 rec( 10, 4, ObjectID, BE ),
8961 rec( 8, 4, ObjectID, BE ),
8962 rec( 12, 2, ObjectType, BE ),
8963 rec( 14, 48, ObjectNameLen ),
8965 pkt.CompletionCodes([0x0000, 0x9602, 0xf101, 0xfc06, 0xfe07, 0xff00])
8967 pkt = NCP(0x170C, "Verify Serialization", 'file')
8969 rec( 10, 4, ServerSerialNumber ),
8972 pkt.CompletionCodes([0x0000, 0xff00])
8974 pkt = NCP(0x170D, "Log Network Message", 'file')
8975 pkt.Request( (11, 68), [
8976 rec( 10, (1, 58), TargetMessage ),
8977 ], info_str=(TargetMessage, "Log Network Message: %s", ", %s"))
8979 pkt.CompletionCodes([0x0000, 0x8000, 0x8100, 0x8800, 0x8d00, 0x8e00, 0x8f00,
8980 0x9001, 0x9400, 0x9600, 0x9804, 0x9900, 0x9b00, 0xa100,
8983 pkt = NCP(0x170E, "Get Disk Utilization", 'file')
8985 rec( 10, 1, VolumeNumber ),
8986 rec( 11, 4, TrusteeID, BE ),
8989 rec( 8, 1, VolumeNumber ),
8990 rec( 9, 4, TrusteeID, BE ),
8991 rec( 13, 2, DirectoryCount, BE ),
8992 rec( 15, 2, FileCount, BE ),
8993 rec( 17, 2, ClusterCount, BE ),
8995 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0xa100, 0xf200])
8997 pkt = NCP(0x170F, "Scan File Information", 'file')
8998 pkt.Request((15,269), [
8999 rec( 10, 2, LastSearchIndex ),
9000 rec( 12, 1, DirHandle ),
9001 rec( 13, 1, SearchAttributes ),
9002 rec( 14, (1, 255), FileName ),
9003 ], info_str=(FileName, "Scan File Information: %s", ", %s"))
9005 rec( 8, 2, NextSearchIndex ),
9006 rec( 10, 14, FileName14 ),
9007 rec( 24, 2, AttributesDef16 ),
9008 rec( 26, 4, FileSize, BE ),
9009 rec( 30, 2, CreationDate, BE ),
9010 rec( 32, 2, LastAccessedDate, BE ),
9011 rec( 34, 2, ModifiedDate, BE ),
9012 rec( 36, 2, ModifiedTime, BE ),
9013 rec( 38, 4, CreatorID, BE ),
9014 rec( 42, 2, ArchivedDate, BE ),
9015 rec( 44, 2, ArchivedTime, BE ),
9016 rec( 46, 56, Reserved56 ),
9018 pkt.CompletionCodes([0x0000, 0x8800, 0x8900, 0x9300, 0x9400, 0x9804, 0x9b00, 0x9c00,
9019 0xa100, 0xfd00, 0xff17])
9021 pkt = NCP(0x1710, "Set File Information", 'file')
9022 pkt.Request((91,345), [
9023 rec( 10, 2, AttributesDef16 ),
9024 rec( 12, 4, FileSize, BE ),
9025 rec( 16, 2, CreationDate, BE ),
9026 rec( 18, 2, LastAccessedDate, BE ),
9027 rec( 20, 2, ModifiedDate, BE ),
9028 rec( 22, 2, ModifiedTime, BE ),
9029 rec( 24, 4, CreatorID, BE ),
9030 rec( 28, 2, ArchivedDate, BE ),
9031 rec( 30, 2, ArchivedTime, BE ),
9032 rec( 32, 56, Reserved56 ),
9033 rec( 88, 1, DirHandle ),
9034 rec( 89, 1, SearchAttributes ),
9035 rec( 90, (1, 255), FileName ),
9036 ], info_str=(FileName, "Set Information for File: %s", ", %s"))
9038 pkt.CompletionCodes([0x0000, 0x8800, 0x8c00, 0x8e00, 0x9400, 0x9600, 0x9804,
9039 0x9b03, 0x9c00, 0xa100, 0xa201, 0xfc06, 0xfd00, 0xfe07,
9042 pkt = NCP(0x1711, "Get File Server Information", 'fileserver')
9045 rec( 8, 48, ServerName ),
9046 rec( 56, 1, OSMajorVersion ),
9047 rec( 57, 1, OSMinorVersion ),
9048 rec( 58, 2, ConnectionsSupportedMax, BE ),
9049 rec( 60, 2, ConnectionsInUse, BE ),
9050 rec( 62, 2, VolumesSupportedMax, BE ),
9051 rec( 64, 1, OSRevision ),
9052 rec( 65, 1, SFTSupportLevel ),
9053 rec( 66, 1, TTSLevel ),
9054 rec( 67, 2, ConnectionsMaxUsed, BE ),
9055 rec( 69, 1, AccountVersion ),
9056 rec( 70, 1, VAPVersion ),
9057 rec( 71, 1, QueueingVersion ),
9058 rec( 72, 1, PrintServerVersion ),
9059 rec( 73, 1, VirtualConsoleVersion ),
9060 rec( 74, 1, SecurityRestrictionVersion ),
9061 rec( 75, 1, InternetBridgeVersion ),
9062 rec( 76, 1, MixedModePathFlag ),
9063 rec( 77, 1, LocalLoginInfoCcode ),
9064 rec( 78, 2, ProductMajorVersion, BE ),
9065 rec( 80, 2, ProductMinorVersion, BE ),
9066 rec( 82, 2, ProductRevisionVersion, BE ),
9067 rec( 84, 1, OSLanguageID, LE ),
9068 rec( 85, 51, Reserved51 ),
9070 pkt.CompletionCodes([0x0000, 0x9600])
9072 pkt = NCP(0x1712, "Get Network Serial Number", 'fileserver')
9075 rec( 8, 4, ServerSerialNumber ),
9076 rec( 12, 2, ApplicationNumber ),
9078 pkt.CompletionCodes([0x0000, 0x9600])
9080 pkt = NCP(0x1713, "Get Internet Address", 'fileserver')
9082 rec( 10, 1, TargetConnectionNumber ),
9083 ],info_str=(TargetConnectionNumber, "Get Internet Address for Connection %d", ", %d"))
9085 rec( 8, 4, NetworkAddress, BE ),
9086 rec( 12, 6, NetworkNodeAddress ),
9087 rec( 18, 2, NetworkSocket, BE ),
9089 pkt.CompletionCodes([0x0000, 0xff00])
9091 pkt = NCP(0x1714, "Login Object", 'bindery')
9092 pkt.Request( (14, 60), [
9093 rec( 10, 2, ObjectType, BE ),
9094 rec( 12, (1,16), ClientName ),
9095 rec( -1, (1,32), Password ),
9096 ], info_str=(UserName, "Login Object: %s", ", %s"))
9098 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc501, 0xd600, 0xd700,
9099 0xd900, 0xda00, 0xdb00, 0xde00, 0xdf00, 0xe800, 0xec00,
9100 0xed00, 0xef00, 0xf001, 0xf100, 0xf200, 0xf600, 0xfb00,
9101 0xfc06, 0xfe07, 0xff00])
9103 pkt = NCP(0x1715, "Get Object Connection List", 'bindery')
9104 pkt.Request( (13, 28), [
9105 rec( 10, 2, ObjectType, BE ),
9106 rec( 12, (1,16), ObjectName ),
9107 ], info_str=(UserName, "Get Object Connection List: %s", ", %s"))
9108 pkt.Reply( (9, 136), [
9109 rec( 8, (1, 128), ConnectionNumberList ),
9111 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9113 pkt = NCP(0x1716, "Get Station's Logged Info", 'bindery')
9115 rec( 10, 1, TargetConnectionNumber ),
9118 rec( 8, 4, UserID, BE ),
9119 rec( 12, 2, ObjectType, BE ),
9120 rec( 14, 48, ObjectNameLen ),
9121 rec( 62, 7, LoginTime ),
9122 rec( 69, 1, Reserved ),
9124 pkt.CompletionCodes([0x0000, 0x9602, 0xfb0a, 0xfc06, 0xfd00, 0xfe07, 0xff00])
9126 pkt = NCP(0x1717, "Get Login Key", 'bindery')
9129 rec( 8, 8, LoginKey ),
9131 pkt.CompletionCodes([0x0000, 0x9602])
9133 pkt = NCP(0x1718, "Keyed Object Login", 'bindery')
9134 pkt.Request( (21, 68), [
9135 rec( 10, 8, LoginKey ),
9136 rec( 18, 2, ObjectType, BE ),
9137 rec( 20, (1,48), ObjectName ),
9138 ], info_str=(ObjectName, "Keyed Object Login: %s", ", %s"))
9140 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc500, 0xd904, 0xda00,
9141 0xdb00, 0xdc00, 0xde00, 0xff00])
9144 # XXX - for NCP-over-IP, the NetworkAddress field appears to be
9145 # an IP address, rather than an IPX network address, and should
9146 # be dissected as an FT_IPv4 value; the NetworkNodeAddress and
9147 # NetworkSocket are 0.
9149 # For NCP-over-IPX, it should probably be dissected as an
9152 pkt = NCP(0x171A, "Get Internet Address", 'fileserver')
9154 rec( 10, 1, TargetConnectionNumber ),
9157 rec( 8, 4, NetworkAddress, BE ),
9158 rec( 12, 6, NetworkNodeAddress ),
9159 rec( 18, 2, NetworkSocket, BE ),
9160 rec( 20, 1, ConnectionType ),
9162 pkt.CompletionCodes([0x0000])
9164 pkt = NCP(0x171B, "Get Object Connection List", 'bindery')
9165 pkt.Request( (17,64), [
9166 rec( 10, 4, SearchConnNumber ),
9167 rec( 14, 2, ObjectType, BE ),
9168 rec( 16, (1,48), ObjectName ),
9169 ], info_str=(ObjectName, "Get Object Connection List: %s", ", %s"))
9170 pkt.Reply( (10,137), [
9171 rec( 8, 1, ConnListLen, var="x" ),
9172 rec( 9, (1,128), ConnectionNumberList, repeat="x" ),
9174 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9176 pkt = NCP(0x171C, "Get Station's Logged Info", 'connection')
9178 rec( 10, 4, TargetConnectionNumber ),
9181 rec( 8, 4, UserID, BE ),
9182 rec( 12, 2, ObjectType, BE ),
9183 rec( 14, 48, ObjectNameLen ),
9184 rec( 62, 7, LoginTime ),
9185 rec( 69, 1, Reserved ),
9187 pkt.CompletionCodes([0x0000, 0x9602, 0xfb02, 0xfc06, 0xfd00, 0xfe07, 0xff00])
9189 pkt = NCP(0x171D, "Change Connection State", 'connection')
9191 rec( 10, 1, RequestCode ),
9194 pkt.CompletionCodes([0x0000, 0x0109, 0x7a00, 0x7b00, 0x7c00, 0xe000, 0xfb06, 0xfd00])
9196 pkt = NCP(0x171E, "Set Watchdog Delay Interval", 'connection')
9198 rec( 10, 4, NumberOfMinutesToDelay ),
9201 pkt.CompletionCodes([0x0000, 0x0107])
9203 pkt = NCP(0x171F, "Get Connection List From Object", 'bindery')
9205 rec( 10, 4, ObjectID, BE ),
9206 rec( 14, 4, ConnectionNumber ),
9208 pkt.Reply( (9, 136), [
9209 rec( 8, (1, 128), ConnectionNumberList ),
9211 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9213 pkt = NCP(0x1720, "Scan Bindery Object (List)", 'bindery')
9214 pkt.Request((23,70), [
9215 rec( 10, 4, NextObjectID, BE ),
9216 rec( 14, 4, ObjectType, BE ),
9217 rec( 18, 4, InfoFlags ),
9218 rec( 22, (1,48), ObjectName ),
9219 ], info_str=(ObjectName, "Scan Bindery Object: %s", ", %s"))
9220 pkt.Reply(NO_LENGTH_CHECK, [
9221 rec( 8, 4, ObjectInfoReturnCount ),
9222 rec( 12, 4, NextObjectID, BE ),
9223 rec( 16, 4, ObjectIDInfo ),
9224 srec(ObjectTypeStruct, req_cond="ncp.info_flags_type == TRUE"),
9225 srec(ObjectSecurityStruct, req_cond="ncp.info_flags_security == TRUE"),
9226 srec(ObjectFlagsStruct, req_cond="ncp.info_flags_flags == TRUE"),
9227 srec(ObjectNameStruct, req_cond="ncp.info_flags_name == TRUE"),
9229 pkt.ReqCondSizeVariable()
9230 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xfc02, 0xfe01, 0xff00])
9232 pkt = NCP(0x1721, "Generate GUIDs", 'nds')
9234 rec( 10, 4, ReturnInfoCount ),
9237 rec( 8, 4, ReturnInfoCount, var="x" ),
9238 rec( 12, 16, GUID, repeat="x" ),
9240 pkt.CompletionCodes([0x0000])
9242 pkt = NCP(0x1732, "Create Bindery Object", 'bindery')
9243 pkt.Request( (15,62), [
9244 rec( 10, 1, ObjectFlags ),
9245 rec( 11, 1, ObjectSecurity ),
9246 rec( 12, 2, ObjectType, BE ),
9247 rec( 14, (1,48), ObjectName ),
9248 ], info_str=(ObjectName, "Create Bindery Object: %s", ", %s"))
9250 pkt.CompletionCodes([0x0000, 0x9600, 0xe700, 0xee00, 0xef00, 0xf101, 0xf501,
9251 0xfc06, 0xfe07, 0xff00])
9253 pkt = NCP(0x1733, "Delete Bindery Object", 'bindery')
9254 pkt.Request( (13,60), [
9255 rec( 10, 2, ObjectType, BE ),
9256 rec( 12, (1,48), ObjectName ),
9257 ], info_str=(ObjectName, "Delete Bindery Object: %s", ", %s"))
9259 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf200, 0xf400, 0xf600, 0xfb00,
9260 0xfc06, 0xfe07, 0xff00])
9262 pkt = NCP(0x1734, "Rename Bindery Object", 'bindery')
9263 pkt.Request( (14,108), [
9264 rec( 10, 2, ObjectType, BE ),
9265 rec( 12, (1,48), ObjectName ),
9266 rec( -1, (1,48), NewObjectName ),
9267 ], info_str=(ObjectName, "Rename Bindery Object: %s", ", %s"))
9269 pkt.CompletionCodes([0x0000, 0x9600, 0xee00, 0xf000, 0xf300, 0xfc06, 0xfe07, 0xff00])
9271 pkt = NCP(0x1735, "Get Bindery Object ID", 'bindery')
9272 pkt.Request((13,60), [
9273 rec( 10, 2, ObjectType, BE ),
9274 rec( 12, (1,48), ObjectName ),
9275 ], info_str=(ObjectName, "Get Bindery Object: %s", ", %s"))
9277 rec( 8, 4, ObjectID, BE ),
9278 rec( 12, 2, ObjectType, BE ),
9279 rec( 14, 48, ObjectNameLen ),
9281 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xf000, 0xfc02, 0xfe01, 0xff00])
9283 pkt = NCP(0x1736, "Get Bindery Object Name", 'bindery')
9285 rec( 10, 4, ObjectID, BE ),
9288 rec( 8, 4, ObjectID, BE ),
9289 rec( 12, 2, ObjectType, BE ),
9290 rec( 14, 48, ObjectNameLen ),
9292 pkt.CompletionCodes([0x0000, 0x9600, 0xf101, 0xfc02, 0xfe01, 0xff00])
9294 pkt = NCP(0x1737, "Scan Bindery Object", 'bindery')
9295 pkt.Request((17,64), [
9296 rec( 10, 4, ObjectID, BE ),
9297 rec( 14, 2, ObjectType, BE ),
9298 rec( 16, (1,48), ObjectName ),
9299 ], info_str=(ObjectName, "Scan Bindery Object: %s", ", %s"))
9301 rec( 8, 4, ObjectID, BE ),
9302 rec( 12, 2, ObjectType, BE ),
9303 rec( 14, 48, ObjectNameLen ),
9304 rec( 62, 1, ObjectFlags ),
9305 rec( 63, 1, ObjectSecurity ),
9306 rec( 64, 1, ObjectHasProperties ),
9308 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xfc02,
9311 pkt = NCP(0x1738, "Change Bindery Object Security", 'bindery')
9312 pkt.Request((14,61), [
9313 rec( 10, 1, ObjectSecurity ),
9314 rec( 11, 2, ObjectType, BE ),
9315 rec( 13, (1,48), ObjectName ),
9316 ], info_str=(ObjectName, "Change Bindery Object Security: %s", ", %s"))
9318 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf501, 0xfc02, 0xfe01, 0xff00])
9320 pkt = NCP(0x1739, "Create Property", 'bindery')
9321 pkt.Request((16,78), [
9322 rec( 10, 2, ObjectType, BE ),
9323 rec( 12, (1,48), ObjectName ),
9324 rec( -1, 1, PropertyType ),
9325 rec( -1, 1, ObjectSecurity ),
9326 rec( -1, (1,16), PropertyName ),
9327 ], info_str=(PropertyName, "Create Property: %s", ", %s"))
9329 pkt.CompletionCodes([0x0000, 0x9600, 0xed00, 0xef00, 0xf000, 0xf101,
9330 0xf200, 0xf600, 0xf700, 0xfb00, 0xfc02, 0xfe01,
9333 pkt = NCP(0x173A, "Delete Property", 'bindery')
9334 pkt.Request((14,76), [
9335 rec( 10, 2, ObjectType, BE ),
9336 rec( 12, (1,48), ObjectName ),
9337 rec( -1, (1,16), PropertyName ),
9338 ], info_str=(PropertyName, "Delete Property: %s", ", %s"))
9340 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf600, 0xfb00, 0xfc02,
9343 pkt = NCP(0x173B, "Change Property Security", 'bindery')
9344 pkt.Request((15,77), [
9345 rec( 10, 2, ObjectType, BE ),
9346 rec( 12, (1,48), ObjectName ),
9347 rec( -1, 1, ObjectSecurity ),
9348 rec( -1, (1,16), PropertyName ),
9349 ], info_str=(PropertyName, "Change Property Security: %s", ", %s"))
9351 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf200, 0xf600, 0xfb00,
9352 0xfc02, 0xfe01, 0xff00])
9354 pkt = NCP(0x173C, "Scan Property", 'bindery')
9355 pkt.Request((18,80), [
9356 rec( 10, 2, ObjectType, BE ),
9357 rec( 12, (1,48), ObjectName ),
9358 rec( -1, 4, LastInstance, BE ),
9359 rec( -1, (1,16), PropertyName ),
9360 ], info_str=(PropertyName, "Scan Property: %s", ", %s"))
9362 rec( 8, 16, PropertyName16 ),
9363 rec( 24, 1, ObjectFlags ),
9364 rec( 25, 1, ObjectSecurity ),
9365 rec( 26, 4, SearchInstance, BE ),
9366 rec( 30, 1, ValueAvailable ),
9367 rec( 31, 1, MoreProperties ),
9369 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf200, 0xf600, 0xfb00,
9370 0xfc02, 0xfe01, 0xff00])
9372 pkt = NCP(0x173D, "Read Property Value", 'bindery')
9373 pkt.Request((15,77), [
9374 rec( 10, 2, ObjectType, BE ),
9375 rec( 12, (1,48), ObjectName ),
9376 rec( -1, 1, PropertySegment ),
9377 rec( -1, (1,16), PropertyName ),
9378 ], info_str=(PropertyName, "Read Property Value: %s", ", %s"))
9380 rec( 8, 128, PropertyData ),
9381 rec( 136, 1, PropertyHasMoreSegments ),
9382 rec( 137, 1, PropertyType ),
9384 pkt.CompletionCodes([0x0000, 0x8800, 0x9300, 0x9600, 0xec01,
9385 0xf000, 0xf100, 0xf900, 0xfb02, 0xfc02,
9388 pkt = NCP(0x173E, "Write Property Value", 'bindery')
9389 pkt.Request((144,206), [
9390 rec( 10, 2, ObjectType, BE ),
9391 rec( 12, (1,48), ObjectName ),
9392 rec( -1, 1, PropertySegment ),
9393 rec( -1, 1, MoreFlag ),
9394 rec( -1, (1,16), PropertyName ),
9396 # XXX - don't show this if MoreFlag isn't set?
9397 # In at least some packages where it's not set,
9398 # PropertyValue appears to be garbage.
9400 rec( -1, 128, PropertyValue ),
9401 ], info_str=(PropertyName, "Write Property Value: %s", ", %s"))
9403 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xec01, 0xf000, 0xf800,
9404 0xfb02, 0xfc03, 0xfe01, 0xff00 ])
9406 pkt = NCP(0x173F, "Verify Bindery Object Password", 'bindery')
9407 pkt.Request((14,92), [
9408 rec( 10, 2, ObjectType, BE ),
9409 rec( 12, (1,48), ObjectName ),
9410 rec( -1, (1,32), Password ),
9411 ], info_str=(ObjectName, "Verify Bindery Object Password: %s", ", %s"))
9413 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xec01, 0xf000, 0xf101,
9414 0xfb02, 0xfc03, 0xfe01, 0xff00 ])
9416 pkt = NCP(0x1740, "Change Bindery Object Password", 'bindery')
9417 pkt.Request((15,124), [
9418 rec( 10, 2, ObjectType, BE ),
9419 rec( 12, (1,48), ObjectName ),
9420 rec( -1, (1,32), Password ),
9421 rec( -1, (1,32), NewPassword ),
9422 ], info_str=(ObjectName, "Change Bindery Object Password: %s", ", %s"))
9424 pkt.CompletionCodes([0x0000, 0x9600, 0xc501, 0xd701, 0xe800, 0xec01, 0xf001,
9425 0xf100, 0xf800, 0xfb02, 0xfc03, 0xfe01, 0xff00])
9427 pkt = NCP(0x1741, "Add Bindery Object To Set", 'bindery')
9428 pkt.Request((17,126), [
9429 rec( 10, 2, ObjectType, BE ),
9430 rec( 12, (1,48), ObjectName ),
9431 rec( -1, (1,16), PropertyName ),
9432 rec( -1, 2, MemberType, BE ),
9433 rec( -1, (1,48), MemberName ),
9434 ], info_str=(MemberName, "Add Bindery Object to Set: %s", ", %s"))
9436 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xe900, 0xea00, 0xeb00,
9437 0xec01, 0xf000, 0xf800, 0xfb02, 0xfc03, 0xfe01,
9440 pkt = NCP(0x1742, "Delete Bindery Object From Set", 'bindery')
9441 pkt.Request((17,126), [
9442 rec( 10, 2, ObjectType, BE ),
9443 rec( 12, (1,48), ObjectName ),
9444 rec( -1, (1,16), PropertyName ),
9445 rec( -1, 2, MemberType, BE ),
9446 rec( -1, (1,48), MemberName ),
9447 ], info_str=(MemberName, "Delete Bindery Object from Set: %s", ", %s"))
9449 pkt.CompletionCodes([0x0000, 0x9600, 0xeb00, 0xf000, 0xf800, 0xfb02,
9450 0xfc03, 0xfe01, 0xff00])
9452 pkt = NCP(0x1743, "Is Bindery Object In Set", 'bindery')
9453 pkt.Request((17,126), [
9454 rec( 10, 2, ObjectType, BE ),
9455 rec( 12, (1,48), ObjectName ),
9456 rec( -1, (1,16), PropertyName ),
9457 rec( -1, 2, MemberType, BE ),
9458 rec( -1, (1,48), MemberName ),
9459 ], info_str=(MemberName, "Is Bindery Object in Set: %s", ", %s"))
9461 pkt.CompletionCodes([0x0000, 0x9600, 0xea00, 0xeb00, 0xec01, 0xf000,
9462 0xfb02, 0xfc03, 0xfe01, 0xff00])
9464 pkt = NCP(0x1744, "Close Bindery", 'bindery')
9467 pkt.CompletionCodes([0x0000, 0xff00])
9469 pkt = NCP(0x1745, "Open Bindery", 'bindery')
9472 pkt.CompletionCodes([0x0000, 0xff00])
9474 pkt = NCP(0x1746, "Get Bindery Access Level", 'bindery')
9477 rec( 8, 1, ObjectSecurity ),
9478 rec( 9, 4, LoggedObjectID, BE ),
9480 pkt.CompletionCodes([0x0000, 0x9600])
9482 pkt = NCP(0x1747, "Scan Bindery Object Trustee Paths", 'bindery')
9484 rec( 10, 1, VolumeNumber ),
9485 rec( 11, 2, LastSequenceNumber, BE ),
9486 rec( 13, 4, ObjectID, BE ),
9488 pkt.Reply((16,270), [
9489 rec( 8, 2, LastSequenceNumber, BE),
9490 rec( 10, 4, ObjectID, BE ),
9491 rec( 14, 1, ObjectSecurity ),
9492 rec( 15, (1,255), Path ),
9494 pkt.CompletionCodes([0x0000, 0x9300, 0x9600, 0xa100, 0xf000, 0xf100,
9495 0xf200, 0xfc02, 0xfe01, 0xff00])
9497 pkt = NCP(0x1748, "Get Bindery Object Access Level", 'bindery')
9499 rec( 10, 4, ObjectID, BE ),
9502 rec( 8, 1, ObjectSecurity ),
9504 pkt.CompletionCodes([0x0000, 0x9600])
9506 pkt = NCP(0x1749, "Is Calling Station a Manager", 'bindery')
9509 pkt.CompletionCodes([0x0003, 0xff1e])
9511 pkt = NCP(0x174A, "Keyed Verify Password", 'bindery')
9512 pkt.Request((21,68), [
9513 rec( 10, 8, LoginKey ),
9514 rec( 18, 2, ObjectType, BE ),
9515 rec( 20, (1,48), ObjectName ),
9516 ], info_str=(ObjectName, "Keyed Verify Password: %s", ", %s"))
9518 pkt.CompletionCodes([0x0000, 0xc500, 0xfe01, 0xff0c])
9520 pkt = NCP(0x174B, "Keyed Change Password", 'bindery')
9521 pkt.Request((22,100), [
9522 rec( 10, 8, LoginKey ),
9523 rec( 18, 2, ObjectType, BE ),
9524 rec( 20, (1,48), ObjectName ),
9525 rec( -1, (1,32), Password ),
9526 ], info_str=(ObjectName, "Keyed Change Password: %s", ", %s"))
9528 pkt.CompletionCodes([0x0000, 0xc500, 0xfe01, 0xff0c])
9530 pkt = NCP(0x174C, "List Relations Of an Object", 'bindery')
9531 pkt.Request((18,80), [
9532 rec( 10, 4, LastSeen, BE ),
9533 rec( 14, 2, ObjectType, BE ),
9534 rec( 16, (1,48), ObjectName ),
9535 rec( -1, (1,16), PropertyName ),
9536 ], info_str=(ObjectName, "List Relations of an Object: %s", ", %s"))
9538 rec( 8, 2, RelationsCount, BE, var="x" ),
9539 rec( 10, 4, ObjectID, BE, repeat="x" ),
9541 pkt.CompletionCodes([0x0000, 0xf000, 0xf200, 0xfe01, 0xff00])
9543 pkt = NCP(0x1764, "Create Queue", 'qms')
9544 pkt.Request((15,316), [
9545 rec( 10, 2, QueueType, BE ),
9546 rec( 12, (1,48), QueueName ),
9547 rec( -1, 1, PathBase ),
9548 rec( -1, (1,255), Path ),
9549 ], info_str=(QueueName, "Create Queue: %s", ", %s"))
9551 rec( 8, 4, QueueID ),
9553 pkt.CompletionCodes([0x0000, 0x9600, 0x9900, 0xd000, 0xd100,
9554 0xd200, 0xd300, 0xd400, 0xd500, 0xd601,
9555 0xd703, 0xd800, 0xd902, 0xda01, 0xdb02,
9558 pkt = NCP(0x1765, "Destroy Queue", 'qms')
9560 rec( 10, 4, QueueID ),
9563 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9564 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9565 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9567 pkt = NCP(0x1766, "Read Queue Current Status", 'qms')
9569 rec( 10, 4, QueueID ),
9572 rec( 8, 4, QueueID ),
9573 rec( 12, 1, QueueStatus ),
9574 rec( 13, 1, CurrentEntries ),
9575 rec( 14, 1, CurrentServers, var="x" ),
9576 rec( 15, 4, ServerIDList, repeat="x" ),
9577 rec( 19, 1, ServerStationList, repeat="x" ),
9579 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9580 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9581 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9583 pkt = NCP(0x1767, "Set Queue Current Status", 'qms')
9585 rec( 10, 4, QueueID ),
9586 rec( 14, 1, QueueStatus ),
9589 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9590 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9591 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07,
9594 pkt = NCP(0x1768, "Create Queue Job And File", 'qms')
9596 rec( 10, 4, QueueID ),
9597 rec( 14, 250, JobStruct ),
9600 rec( 8, 1, ClientStation ),
9601 rec( 9, 1, ClientTaskNumber ),
9602 rec( 10, 4, ClientIDNumber, BE ),
9603 rec( 14, 4, TargetServerIDNumber, BE ),
9604 rec( 18, 6, TargetExecutionTime ),
9605 rec( 24, 6, JobEntryTime ),
9606 rec( 30, 2, JobNumber, BE ),
9607 rec( 32, 2, JobType, BE ),
9608 rec( 34, 1, JobPosition ),
9609 rec( 35, 1, JobControlFlags ),
9610 rec( 36, 14, JobFileName ),
9611 rec( 50, 6, JobFileHandle ),
9612 rec( 56, 1, ServerStation ),
9613 rec( 57, 1, ServerTaskNumber ),
9614 rec( 58, 4, ServerID, BE ),
9616 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9617 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9618 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07,
9621 pkt = NCP(0x1769, "Close File And Start Queue Job", 'qms')
9623 rec( 10, 4, QueueID ),
9624 rec( 14, 2, JobNumber, BE ),
9627 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9628 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9629 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9631 pkt = NCP(0x176A, "Remove Job From Queue", 'qms')
9633 rec( 10, 4, QueueID ),
9634 rec( 14, 2, JobNumber, BE ),
9637 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9638 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9639 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9641 pkt = NCP(0x176B, "Get Queue Job List", 'qms')
9643 rec( 10, 4, QueueID ),
9646 rec( 8, 2, JobCount, BE, var="x" ),
9647 rec( 10, 2, JobNumber, BE, repeat="x" ),
9649 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9650 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9651 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9653 pkt = NCP(0x176C, "Read Queue Job Entry", 'qms')
9655 rec( 10, 4, QueueID ),
9656 rec( 14, 2, JobNumber, BE ),
9659 rec( 8, 250, JobStruct ),
9661 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9662 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9663 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9665 pkt = NCP(0x176D, "Change Queue Job Entry", 'qms')
9667 rec( 14, 250, JobStruct ),
9670 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9671 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9672 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9674 pkt = NCP(0x176E, "Change Queue Job Position", 'qms')
9676 rec( 10, 4, QueueID ),
9677 rec( 14, 2, JobNumber, BE ),
9678 rec( 16, 1, NewPosition ),
9681 pkt.CompletionCodes([0x0000, 0x9600, 0xd000, 0xd100, 0xd500,
9682 0xd601, 0xfe07, 0xff1f])
9684 pkt = NCP(0x176F, "Attach Queue Server To Queue", 'qms')
9686 rec( 10, 4, QueueID ),
9689 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9690 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9691 0xd800, 0xd902, 0xda01, 0xdb02, 0xea00,
9694 pkt = NCP(0x1770, "Detach Queue Server From Queue", 'qms')
9696 rec( 10, 4, QueueID ),
9699 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9700 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9701 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9703 pkt = NCP(0x1771, "Service Queue Job", 'qms')
9705 rec( 10, 4, QueueID ),
9706 rec( 14, 2, ServiceType, BE ),
9709 rec( 8, 1, ClientStation ),
9710 rec( 9, 1, ClientTaskNumber ),
9711 rec( 10, 4, ClientIDNumber, BE ),
9712 rec( 14, 4, TargetServerIDNumber, BE ),
9713 rec( 18, 6, TargetExecutionTime ),
9714 rec( 24, 6, JobEntryTime ),
9715 rec( 30, 2, JobNumber, BE ),
9716 rec( 32, 2, JobType, BE ),
9717 rec( 34, 1, JobPosition ),
9718 rec( 35, 1, JobControlFlags ),
9719 rec( 36, 14, JobFileName ),
9720 rec( 50, 6, JobFileHandle ),
9721 rec( 56, 1, ServerStation ),
9722 rec( 57, 1, ServerTaskNumber ),
9723 rec( 58, 4, ServerID, BE ),
9725 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9726 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9727 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9729 pkt = NCP(0x1772, "Finish Servicing Queue Job", 'qms')
9731 rec( 10, 4, QueueID ),
9732 rec( 14, 2, JobNumber, BE ),
9733 rec( 16, 4, ChargeInformation, BE ),
9736 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9737 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9738 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9740 pkt = NCP(0x1773, "Abort Servicing Queue Job", 'qms')
9742 rec( 10, 4, QueueID ),
9743 rec( 14, 2, JobNumber, BE ),
9746 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9747 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9748 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9750 pkt = NCP(0x1774, "Change To Client Rights", 'qms')
9752 rec( 10, 4, QueueID ),
9753 rec( 14, 2, JobNumber, BE ),
9756 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9757 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9758 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9760 pkt = NCP(0x1775, "Restore Queue Server Rights", 'qms')
9763 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9764 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9765 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9767 pkt = NCP(0x1776, "Read Queue Server Current Status", 'qms')
9769 rec( 10, 4, QueueID ),
9770 rec( 14, 4, ServerID, BE ),
9771 rec( 18, 1, ServerStation ),
9774 rec( 8, 64, ServerStatusRecord ),
9776 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9777 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9778 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9780 pkt = NCP(0x1777, "Set Queue Server Current Status", 'qms')
9782 rec( 10, 4, QueueID ),
9783 rec( 14, 64, ServerStatusRecord ),
9786 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9787 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9788 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9790 pkt = NCP(0x1778, "Get Queue Job File Size", 'qms')
9792 rec( 10, 4, QueueID ),
9793 rec( 14, 2, JobNumber, BE ),
9796 rec( 8, 4, QueueID ),
9797 rec( 12, 4, JobNumberLong ),
9798 rec( 16, 4, FileSize, BE ),
9800 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9801 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9802 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9804 pkt = NCP(0x1779, "Create Queue Job And File", 'qms')
9806 rec( 10, 4, QueueID ),
9807 rec( 14, 250, JobStruct ),
9810 rec( 8, 86, JobStructNew ),
9812 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9813 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9814 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9816 pkt = NCP(0x177A, "Read Queue Job Entry", 'qms')
9818 rec( 10, 4, QueueID ),
9819 rec( 14, 4, JobNumberLong ),
9822 rec( 8, 250, JobStruct ),
9824 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9825 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9826 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9828 pkt = NCP(0x177B, "Change Queue Job Entry", 'qms')
9830 rec( 10, 4, QueueID ),
9831 rec( 14, 250, JobStruct ),
9834 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9835 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9836 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00])
9838 pkt = NCP(0x177C, "Service Queue Job", 'qms')
9840 rec( 10, 4, QueueID ),
9841 rec( 14, 2, ServiceType ),
9844 rec( 8, 86, JobStructNew ),
9846 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9847 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9848 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9850 pkt = NCP(0x177D, "Read Queue Current Status", 'qms')
9852 rec( 10, 4, QueueID ),
9855 rec( 8, 4, QueueID ),
9856 rec( 12, 1, QueueStatus ),
9857 rec( 13, 3, Reserved3 ),
9858 rec( 16, 4, CurrentEntries ),
9859 rec( 20, 4, CurrentServers, var="x" ),
9860 rec( 24, 4, ServerIDList, repeat="x" ),
9861 rec( 28, 4, ServerStationList, repeat="x" ),
9863 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9864 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9865 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9867 pkt = NCP(0x177E, "Set Queue Current Status", 'qms')
9869 rec( 10, 4, QueueID ),
9870 rec( 14, 1, QueueStatus ),
9873 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9874 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9875 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9877 pkt = NCP(0x177F, "Close File And Start Queue Job", 'qms')
9879 rec( 10, 4, QueueID ),
9880 rec( 14, 4, JobNumberLong ),
9883 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9884 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9885 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9887 pkt = NCP(0x1780, "Remove Job From Queue", 'qms')
9889 rec( 10, 4, QueueID ),
9890 rec( 14, 4, JobNumberLong ),
9893 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9894 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9895 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9897 pkt = NCP(0x1781, "Get Queue Job List", 'qms')
9899 rec( 10, 4, QueueID ),
9900 rec( 14, 4, JobNumberLong ),
9903 rec( 8, 4, TotalQueueJobs ),
9904 rec( 12, 4, ReplyQueueJobNumbers, var="x" ),
9905 rec( 16, 4, JobNumberList, repeat="x" ),
9907 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9908 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9909 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9911 pkt = NCP(0x1782, "Change Job Priority", 'qms')
9913 rec( 10, 4, QueueID ),
9914 rec( 14, 4, JobNumberLong ),
9915 rec( 18, 4, Priority ),
9918 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9919 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9920 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9922 pkt = NCP(0x1783, "Finish Servicing Queue Job", 'qms')
9924 rec( 10, 4, QueueID ),
9925 rec( 14, 4, JobNumberLong ),
9926 rec( 18, 4, ChargeInformation ),
9929 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9930 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9931 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9933 pkt = NCP(0x1784, "Abort Servicing Queue Job", 'qms')
9935 rec( 10, 4, QueueID ),
9936 rec( 14, 4, JobNumberLong ),
9939 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9940 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9941 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9943 pkt = NCP(0x1785, "Change To Client Rights", 'qms')
9945 rec( 10, 4, QueueID ),
9946 rec( 14, 4, JobNumberLong ),
9949 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9950 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9951 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
9953 pkt = NCP(0x1786, "Read Queue Server Current Status", 'qms')
9955 rec( 10, 4, QueueID ),
9956 rec( 14, 4, ServerID, BE ),
9957 rec( 18, 4, ServerStation ),
9960 rec( 8, 64, ServerStatusRecord ),
9962 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9963 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9964 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9966 pkt = NCP(0x1787, "Get Queue Job File Size", 'qms')
9968 rec( 10, 4, QueueID ),
9969 rec( 14, 4, JobNumberLong ),
9972 rec( 8, 4, QueueID ),
9973 rec( 12, 4, JobNumberLong ),
9974 rec( 16, 4, FileSize, BE ),
9976 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
9977 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
9978 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
9980 pkt = NCP(0x1788, "Move Queue Job From Src Q to Dst Q", 'qms')
9982 rec( 10, 4, QueueID ),
9983 rec( 14, 4, JobNumberLong ),
9984 rec( 18, 4, DstQueueID ),
9987 rec( 8, 4, JobNumberLong ),
9989 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
9991 pkt = NCP(0x1789, "Get Queue Jobs From Form List", 'qms')
9993 rec( 10, 4, QueueID ),
9994 rec( 14, 4, QueueStartPosition ),
9995 rec( 18, 4, FormTypeCnt, var="x" ),
9996 rec( 22, 2, FormType, repeat="x" ),
9999 rec( 8, 4, TotalQueueJobs ),
10000 rec( 12, 4, JobCount, var="x" ),
10001 rec( 16, 4, JobNumberList, repeat="x" ),
10003 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
10004 # 2222/178A, 23/138
10005 pkt = NCP(0x178A, "Service Queue Job By Form List", 'qms')
10007 rec( 10, 4, QueueID ),
10008 rec( 14, 4, QueueStartPosition ),
10009 rec( 18, 4, FormTypeCnt, var= "x" ),
10010 rec( 22, 2, FormType, repeat="x" ),
10013 rec( 8, 86, JobStructNew ),
10015 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
10016 # 2222/1796, 23/150
10017 pkt = NCP(0x1796, "Get Current Account Status", 'accounting')
10018 pkt.Request((13,60), [
10019 rec( 10, 2, ObjectType, BE ),
10020 rec( 12, (1,48), ObjectName ),
10021 ], info_str=(ObjectName, "Get Current Account Status: %s", ", %s"))
10023 rec( 8, 4, AccountBalance, BE ),
10024 rec( 12, 4, CreditLimit, BE ),
10025 rec( 16, 120, Reserved120 ),
10026 rec( 136, 4, HolderID, BE ),
10027 rec( 140, 4, HoldAmount, BE ),
10028 rec( 144, 4, HolderID, BE ),
10029 rec( 148, 4, HoldAmount, BE ),
10030 rec( 152, 4, HolderID, BE ),
10031 rec( 156, 4, HoldAmount, BE ),
10032 rec( 160, 4, HolderID, BE ),
10033 rec( 164, 4, HoldAmount, BE ),
10034 rec( 168, 4, HolderID, BE ),
10035 rec( 172, 4, HoldAmount, BE ),
10036 rec( 176, 4, HolderID, BE ),
10037 rec( 180, 4, HoldAmount, BE ),
10038 rec( 184, 4, HolderID, BE ),
10039 rec( 188, 4, HoldAmount, BE ),
10040 rec( 192, 4, HolderID, BE ),
10041 rec( 196, 4, HoldAmount, BE ),
10042 rec( 200, 4, HolderID, BE ),
10043 rec( 204, 4, HoldAmount, BE ),
10044 rec( 208, 4, HolderID, BE ),
10045 rec( 212, 4, HoldAmount, BE ),
10046 rec( 216, 4, HolderID, BE ),
10047 rec( 220, 4, HoldAmount, BE ),
10048 rec( 224, 4, HolderID, BE ),
10049 rec( 228, 4, HoldAmount, BE ),
10050 rec( 232, 4, HolderID, BE ),
10051 rec( 236, 4, HoldAmount, BE ),
10052 rec( 240, 4, HolderID, BE ),
10053 rec( 244, 4, HoldAmount, BE ),
10054 rec( 248, 4, HolderID, BE ),
10055 rec( 252, 4, HoldAmount, BE ),
10056 rec( 256, 4, HolderID, BE ),
10057 rec( 260, 4, HoldAmount, BE ),
10059 pkt.CompletionCodes([0x0000, 0x9600, 0xc000, 0xc101, 0xc400, 0xe800,
10060 0xea00, 0xeb00, 0xec00, 0xfc06, 0xfe07, 0xff00])
10061 # 2222/1797, 23/151
10062 pkt = NCP(0x1797, "Submit Account Charge", 'accounting')
10063 pkt.Request((26,327), [
10064 rec( 10, 2, ServiceType, BE ),
10065 rec( 12, 4, ChargeAmount, BE ),
10066 rec( 16, 4, HoldCancelAmount, BE ),
10067 rec( 20, 2, ObjectType, BE ),
10068 rec( 22, 2, CommentType, BE ),
10069 rec( 24, (1,48), ObjectName ),
10070 rec( -1, (1,255), Comment ),
10071 ], info_str=(ObjectName, "Submit Account Charge: %s", ", %s"))
10073 pkt.CompletionCodes([0x0000, 0x0102, 0x8800, 0x9400, 0x9600, 0xa201,
10074 0xc000, 0xc101, 0xc200, 0xc400, 0xe800, 0xea00,
10075 0xeb00, 0xec00, 0xfe07, 0xff00])
10076 # 2222/1798, 23/152
10077 pkt = NCP(0x1798, "Submit Account Hold", 'accounting')
10078 pkt.Request((17,64), [
10079 rec( 10, 4, HoldCancelAmount, BE ),
10080 rec( 14, 2, ObjectType, BE ),
10081 rec( 16, (1,48), ObjectName ),
10082 ], info_str=(ObjectName, "Submit Account Hold: %s", ", %s"))
10084 pkt.CompletionCodes([0x0000, 0x0102, 0x8800, 0x9400, 0x9600, 0xa201,
10085 0xc000, 0xc101, 0xc200, 0xc400, 0xe800, 0xea00,
10086 0xeb00, 0xec00, 0xfe07, 0xff00])
10087 # 2222/1799, 23/153
10088 pkt = NCP(0x1799, "Submit Account Note", 'accounting')
10089 pkt.Request((18,319), [
10090 rec( 10, 2, ServiceType, BE ),
10091 rec( 12, 2, ObjectType, BE ),
10092 rec( 14, 2, CommentType, BE ),
10093 rec( 16, (1,48), ObjectName ),
10094 rec( -1, (1,255), Comment ),
10095 ], info_str=(ObjectName, "Submit Account Note: %s", ", %s"))
10097 pkt.CompletionCodes([0x0000, 0x0102, 0x9600, 0xc000, 0xc101, 0xc400,
10098 0xe800, 0xea00, 0xeb00, 0xec00, 0xf000, 0xfc06,
10100 # 2222/17c8, 23/200
10101 pkt = NCP(0x17c8, "Check Console Privileges", 'stats')
10104 pkt.CompletionCodes([0x0000, 0xc601])
10105 # 2222/17c9, 23/201
10106 pkt = NCP(0x17c9, "Get File Server Description Strings", 'stats')
10109 rec( 8, 512, DescriptionStrings ),
10111 pkt.CompletionCodes([0x0000, 0x9600])
10112 # 2222/17CA, 23/202
10113 pkt = NCP(0x17CA, "Set File Server Date And Time", 'stats')
10115 rec( 10, 1, Year ),
10116 rec( 11, 1, Month ),
10118 rec( 13, 1, Hour ),
10119 rec( 14, 1, Minute ),
10120 rec( 15, 1, Second ),
10123 pkt.CompletionCodes([0x0000, 0xc601])
10124 # 2222/17CB, 23/203
10125 pkt = NCP(0x17CB, "Disable File Server Login", 'stats')
10128 pkt.CompletionCodes([0x0000, 0xc601])
10129 # 2222/17CC, 23/204
10130 pkt = NCP(0x17CC, "Enable File Server Login", 'stats')
10133 pkt.CompletionCodes([0x0000, 0xc601])
10134 # 2222/17CD, 23/205
10135 pkt = NCP(0x17CD, "Get File Server Login Status", 'stats')
10138 rec( 8, 4, UserLoginAllowed ),
10140 pkt.CompletionCodes([0x0000, 0x9600, 0xfb01])
10141 # 2222/17CF, 23/207
10142 pkt = NCP(0x17CF, "Disable Transaction Tracking", 'stats')
10145 pkt.CompletionCodes([0x0000, 0xc601])
10146 # 2222/17D0, 23/208
10147 pkt = NCP(0x17D0, "Enable Transaction Tracking", 'stats')
10150 pkt.CompletionCodes([0x0000, 0xc601])
10151 # 2222/17D1, 23/209
10152 pkt = NCP(0x17D1, "Send Console Broadcast", 'stats')
10153 pkt.Request((13,267), [
10154 rec( 10, 1, NumberOfStations, var="x" ),
10155 rec( 11, 1, StationList, repeat="x" ),
10156 rec( 12, (1, 255), TargetMessage ),
10157 ], info_str=(TargetMessage, "Send Console Broadcast: %s", ", %s"))
10159 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10160 # 2222/17D2, 23/210
10161 pkt = NCP(0x17D2, "Clear Connection Number", 'stats')
10163 rec( 10, 1, ConnectionNumber ),
10164 ],info_str=(ConnectionNumber, "Clear Connection Number %d", ", %d"))
10166 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10167 # 2222/17D3, 23/211
10168 pkt = NCP(0x17D3, "Down File Server", 'stats')
10170 rec( 10, 1, ForceFlag ),
10173 pkt.CompletionCodes([0x0000, 0xc601, 0xff00])
10174 # 2222/17D4, 23/212
10175 pkt = NCP(0x17D4, "Get File System Statistics", 'stats')
10178 rec( 8, 4, SystemIntervalMarker, BE ),
10179 rec( 12, 2, ConfiguredMaxOpenFiles ),
10180 rec( 14, 2, ActualMaxOpenFiles ),
10181 rec( 16, 2, CurrentOpenFiles ),
10182 rec( 18, 4, TotalFilesOpened ),
10183 rec( 22, 4, TotalReadRequests ),
10184 rec( 26, 4, TotalWriteRequests ),
10185 rec( 30, 2, CurrentChangedFATs ),
10186 rec( 32, 4, TotalChangedFATs ),
10187 rec( 36, 2, FATWriteErrors ),
10188 rec( 38, 2, FatalFATWriteErrors ),
10189 rec( 40, 2, FATScanErrors ),
10190 rec( 42, 2, ActualMaxIndexedFiles ),
10191 rec( 44, 2, ActiveIndexedFiles ),
10192 rec( 46, 2, AttachedIndexedFiles ),
10193 rec( 48, 2, AvailableIndexedFiles ),
10195 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10196 # 2222/17D5, 23/213
10197 pkt = NCP(0x17D5, "Get Transaction Tracking Statistics", 'stats')
10198 pkt.Request((13,267), [
10199 rec( 10, 2, LastRecordSeen ),
10200 rec( 12, (1,255), SemaphoreName ),
10203 rec( 8, 4, SystemIntervalMarker, BE ),
10204 rec( 12, 1, TransactionTrackingSupported ),
10205 rec( 13, 1, TransactionTrackingEnabled ),
10206 rec( 14, 2, TransactionVolumeNumber ),
10207 rec( 16, 2, ConfiguredMaxSimultaneousTransactions ),
10208 rec( 18, 2, ActualMaxSimultaneousTransactions ),
10209 rec( 20, 2, CurrentTransactionCount ),
10210 rec( 22, 4, TotalTransactionsPerformed ),
10211 rec( 26, 4, TotalWriteTransactionsPerformed ),
10212 rec( 30, 4, TotalTransactionsBackedOut ),
10213 rec( 34, 2, TotalUnfilledBackoutRequests ),
10214 rec( 36, 2, TransactionDiskSpace ),
10215 rec( 38, 4, TransactionFATAllocations ),
10216 rec( 42, 4, TransactionFileSizeChanges ),
10217 rec( 46, 4, TransactionFilesTruncated ),
10218 rec( 50, 1, NumberOfEntries, var="x" ),
10219 rec( 51, 2, ConnTaskStruct, repeat="x" ),
10221 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10222 # 2222/17D6, 23/214
10223 pkt = NCP(0x17D6, "Read Disk Cache Statistics", 'stats')
10226 rec( 8, 4, SystemIntervalMarker, BE ),
10227 rec( 12, 2, CacheBufferCount ),
10228 rec( 14, 2, CacheBufferSize ),
10229 rec( 16, 2, DirtyCacheBuffers ),
10230 rec( 18, 4, CacheReadRequests ),
10231 rec( 22, 4, CacheWriteRequests ),
10232 rec( 26, 4, CacheHits ),
10233 rec( 30, 4, CacheMisses ),
10234 rec( 34, 4, PhysicalReadRequests ),
10235 rec( 38, 4, PhysicalWriteRequests ),
10236 rec( 42, 2, PhysicalReadErrors ),
10237 rec( 44, 2, PhysicalWriteErrors ),
10238 rec( 46, 4, CacheGetRequests ),
10239 rec( 50, 4, CacheFullWriteRequests ),
10240 rec( 54, 4, CachePartialWriteRequests ),
10241 rec( 58, 4, BackgroundDirtyWrites ),
10242 rec( 62, 4, BackgroundAgedWrites ),
10243 rec( 66, 4, TotalCacheWrites ),
10244 rec( 70, 4, CacheAllocations ),
10245 rec( 74, 2, ThrashingCount ),
10246 rec( 76, 2, LRUBlockWasDirty ),
10247 rec( 78, 2, ReadBeyondWrite ),
10248 rec( 80, 2, FragmentWriteOccurred ),
10249 rec( 82, 2, CacheHitOnUnavailableBlock ),
10250 rec( 84, 2, CacheBlockScrapped ),
10252 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10253 # 2222/17D7, 23/215
10254 pkt = NCP(0x17D7, "Get Drive Mapping Table", 'stats')
10257 rec( 8, 4, SystemIntervalMarker, BE ),
10258 rec( 12, 1, SFTSupportLevel ),
10259 rec( 13, 1, LogicalDriveCount ),
10260 rec( 14, 1, PhysicalDriveCount ),
10261 rec( 15, 1, DiskChannelTable ),
10262 rec( 16, 4, Reserved4 ),
10263 rec( 20, 2, PendingIOCommands, BE ),
10264 rec( 22, 32, DriveMappingTable ),
10265 rec( 54, 32, DriveMirrorTable ),
10266 rec( 86, 32, DeadMirrorTable ),
10267 rec( 118, 1, ReMirrorDriveNumber ),
10268 rec( 119, 1, Filler ),
10269 rec( 120, 4, ReMirrorCurrentOffset, BE ),
10270 rec( 124, 60, SFTErrorTable ),
10272 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10273 # 2222/17D8, 23/216
10274 pkt = NCP(0x17D8, "Read Physical Disk Statistics", 'stats')
10276 rec( 10, 1, PhysicalDiskNumber ),
10279 rec( 8, 4, SystemIntervalMarker, BE ),
10280 rec( 12, 1, PhysicalDiskChannel ),
10281 rec( 13, 1, DriveRemovableFlag ),
10282 rec( 14, 1, PhysicalDriveType ),
10283 rec( 15, 1, ControllerDriveNumber ),
10284 rec( 16, 1, ControllerNumber ),
10285 rec( 17, 1, ControllerType ),
10286 rec( 18, 4, DriveSize ),
10287 rec( 22, 2, DriveCylinders ),
10288 rec( 24, 1, DriveHeads ),
10289 rec( 25, 1, SectorsPerTrack ),
10290 rec( 26, 64, DriveDefinitionString ),
10291 rec( 90, 2, IOErrorCount ),
10292 rec( 92, 4, HotFixTableStart ),
10293 rec( 96, 2, HotFixTableSize ),
10294 rec( 98, 2, HotFixBlocksAvailable ),
10295 rec( 100, 1, HotFixDisabled ),
10297 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10298 # 2222/17D9, 23/217
10299 pkt = NCP(0x17D9, "Get Disk Channel Statistics", 'stats')
10301 rec( 10, 1, DiskChannelNumber ),
10304 rec( 8, 4, SystemIntervalMarker, BE ),
10305 rec( 12, 2, ChannelState, BE ),
10306 rec( 14, 2, ChannelSynchronizationState, BE ),
10307 rec( 16, 1, SoftwareDriverType ),
10308 rec( 17, 1, SoftwareMajorVersionNumber ),
10309 rec( 18, 1, SoftwareMinorVersionNumber ),
10310 rec( 19, 65, SoftwareDescription ),
10311 rec( 84, 8, IOAddressesUsed ),
10312 rec( 92, 10, SharedMemoryAddresses ),
10313 rec( 102, 4, InterruptNumbersUsed ),
10314 rec( 106, 4, DMAChannelsUsed ),
10315 rec( 110, 1, FlagBits ),
10316 rec( 111, 1, Reserved ),
10317 rec( 112, 80, ConfigurationDescription ),
10319 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10320 # 2222/17DB, 23/219
10321 pkt = NCP(0x17DB, "Get Connection's Open Files", 'file')
10323 rec( 10, 2, ConnectionNumber ),
10324 rec( 12, 2, LastRecordSeen, BE ),
10327 rec( 8, 2, NextRequestRecord ),
10328 rec( 10, 1, NumberOfRecords, var="x" ),
10329 rec( 11, 21, ConnStruct, repeat="x" ),
10331 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10332 # 2222/17DC, 23/220
10333 pkt = NCP(0x17DC, "Get Connection Using A File", 'file')
10334 pkt.Request((14,268), [
10335 rec( 10, 2, LastRecordSeen, BE ),
10336 rec( 12, 1, DirHandle ),
10337 rec( 13, (1,255), Path ),
10338 ], info_str=(Path, "Get Connection Using File: %s", ", %s"))
10340 rec( 8, 2, UseCount, BE ),
10341 rec( 10, 2, OpenCount, BE ),
10342 rec( 12, 2, OpenForReadCount, BE ),
10343 rec( 14, 2, OpenForWriteCount, BE ),
10344 rec( 16, 2, DenyReadCount, BE ),
10345 rec( 18, 2, DenyWriteCount, BE ),
10346 rec( 20, 2, NextRequestRecord, BE ),
10347 rec( 22, 1, Locked ),
10348 rec( 23, 1, NumberOfRecords, var="x" ),
10349 rec( 24, 6, ConnFileStruct, repeat="x" ),
10351 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10352 # 2222/17DD, 23/221
10353 pkt = NCP(0x17DD, "Get Physical Record Locks By Connection And File", 'file')
10355 rec( 10, 2, TargetConnectionNumber ),
10356 rec( 12, 2, LastRecordSeen, BE ),
10357 rec( 14, 1, VolumeNumber ),
10358 rec( 15, 2, DirectoryID ),
10359 rec( 17, 14, FileName14 ),
10360 ], info_str=(FileName14, "Get Physical Record Locks by Connection and File: %s", ", %s"))
10362 rec( 8, 2, NextRequestRecord ),
10363 rec( 10, 1, NumberOfLocks, var="x" ),
10364 rec( 11, 1, Reserved ),
10365 rec( 12, 10, LockStruct, repeat="x" ),
10367 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10368 # 2222/17DE, 23/222
10369 pkt = NCP(0x17DE, "Get Physical Record Locks By File", 'file')
10370 pkt.Request((14,268), [
10371 rec( 10, 2, TargetConnectionNumber ),
10372 rec( 12, 1, DirHandle ),
10373 rec( 13, (1,255), Path ),
10374 ], info_str=(Path, "Get Physical Record Locks by File: %s", ", %s"))
10376 rec( 8, 2, NextRequestRecord ),
10377 rec( 10, 1, NumberOfLocks, var="x" ),
10378 rec( 11, 1, Reserved ),
10379 rec( 12, 16, PhyLockStruct, repeat="x" ),
10381 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10382 # 2222/17DF, 23/223
10383 pkt = NCP(0x17DF, "Get Logical Records By Connection", 'file')
10385 rec( 10, 2, TargetConnectionNumber ),
10386 rec( 12, 2, LastRecordSeen, BE ),
10388 pkt.Reply((14,268), [
10389 rec( 8, 2, NextRequestRecord ),
10390 rec( 10, 1, NumberOfRecords, var="x" ),
10391 rec( 11, (3, 257), LogLockStruct, repeat="x" ),
10393 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10394 # 2222/17E0, 23/224
10395 pkt = NCP(0x17E0, "Get Logical Record Information", 'file')
10396 pkt.Request((13,267), [
10397 rec( 10, 2, LastRecordSeen ),
10398 rec( 12, (1,255), LogicalRecordName ),
10399 ], info_str=(LogicalRecordName, "Get Logical Record Information: %s", ", %s"))
10401 rec( 8, 2, UseCount, BE ),
10402 rec( 10, 2, ShareableLockCount, BE ),
10403 rec( 12, 2, NextRequestRecord ),
10404 rec( 14, 1, Locked ),
10405 rec( 15, 1, NumberOfRecords, var="x" ),
10406 rec( 16, 4, LogRecStruct, repeat="x" ),
10408 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10409 # 2222/17E1, 23/225
10410 pkt = NCP(0x17E1, "Get Connection's Semaphores", 'file')
10412 rec( 10, 2, ConnectionNumber ),
10413 rec( 12, 2, LastRecordSeen ),
10415 pkt.Reply((18,272), [
10416 rec( 8, 2, NextRequestRecord ),
10417 rec( 10, 2, NumberOfSemaphores, var="x" ),
10418 rec( 12, (6,260), SemaStruct, repeat="x" ),
10420 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10421 # 2222/17E2, 23/226
10422 pkt = NCP(0x17E2, "Get Semaphore Information", 'file')
10423 pkt.Request((13,267), [
10424 rec( 10, 2, LastRecordSeen ),
10425 rec( 12, (1,255), SemaphoreName ),
10426 ], info_str=(SemaphoreName, "Get Semaphore Information: %s", ", %s"))
10428 rec( 8, 2, NextRequestRecord, BE ),
10429 rec( 10, 2, OpenCount, BE ),
10430 rec( 12, 1, SemaphoreValue ),
10431 rec( 13, 1, NumberOfRecords, var="x" ),
10432 rec( 14, 3, SemaInfoStruct, repeat="x" ),
10434 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10435 # 2222/17E3, 23/227
10436 pkt = NCP(0x17E3, "Get LAN Driver Configuration Information", 'stats')
10438 rec( 10, 1, LANDriverNumber ),
10441 rec( 8, 4, NetworkAddress, BE ),
10442 rec( 12, 6, HostAddress ),
10443 rec( 18, 1, BoardInstalled ),
10444 rec( 19, 1, OptionNumber ),
10445 rec( 20, 160, ConfigurationText ),
10447 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10448 # 2222/17E5, 23/229
10449 pkt = NCP(0x17E5, "Get Connection Usage Statistics", 'stats')
10451 rec( 10, 2, ConnectionNumber ),
10454 rec( 8, 2, NextRequestRecord ),
10455 rec( 10, 6, BytesRead ),
10456 rec( 16, 6, BytesWritten ),
10457 rec( 22, 4, TotalRequestPackets ),
10459 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10460 # 2222/17E6, 23/230
10461 pkt = NCP(0x17E6, "Get Object's Remaining Disk Space", 'stats')
10463 rec( 10, 4, ObjectID, BE ),
10466 rec( 8, 4, SystemIntervalMarker, BE ),
10467 rec( 12, 4, ObjectID ),
10468 rec( 16, 4, UnusedDiskBlocks, BE ),
10469 rec( 20, 1, RestrictionsEnforced ),
10471 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10472 # 2222/17E7, 23/231
10473 pkt = NCP(0x17E7, "Get File Server LAN I/O Statistics", 'stats')
10476 rec( 8, 4, SystemIntervalMarker, BE ),
10477 rec( 12, 2, ConfiguredMaxRoutingBuffers ),
10478 rec( 14, 2, ActualMaxUsedRoutingBuffers ),
10479 rec( 16, 2, CurrentlyUsedRoutingBuffers ),
10480 rec( 18, 4, TotalFileServicePackets ),
10481 rec( 22, 2, TurboUsedForFileService ),
10482 rec( 24, 2, PacketsFromInvalidConnection ),
10483 rec( 26, 2, BadLogicalConnectionCount ),
10484 rec( 28, 2, PacketsReceivedDuringProcessing ),
10485 rec( 30, 2, RequestsReprocessed ),
10486 rec( 32, 2, PacketsWithBadSequenceNumber ),
10487 rec( 34, 2, DuplicateRepliesSent ),
10488 rec( 36, 2, PositiveAcknowledgesSent ),
10489 rec( 38, 2, PacketsWithBadRequestType ),
10490 rec( 40, 2, AttachDuringProcessing ),
10491 rec( 42, 2, AttachWhileProcessingAttach ),
10492 rec( 44, 2, ForgedDetachedRequests ),
10493 rec( 46, 2, DetachForBadConnectionNumber ),
10494 rec( 48, 2, DetachDuringProcessing ),
10495 rec( 50, 2, RepliesCancelled ),
10496 rec( 52, 2, PacketsDiscardedByHopCount ),
10497 rec( 54, 2, PacketsDiscardedUnknownNet ),
10498 rec( 56, 2, IncomingPacketDiscardedNoDGroup ),
10499 rec( 58, 2, OutgoingPacketDiscardedNoTurboBuffer ),
10500 rec( 60, 2, IPXNotMyNetwork ),
10501 rec( 62, 4, NetBIOSBroadcastWasPropogated ),
10502 rec( 66, 4, TotalOtherPackets ),
10503 rec( 70, 4, TotalRoutedPackets ),
10505 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10506 # 2222/17E8, 23/232
10507 pkt = NCP(0x17E8, "Get File Server Misc Information", 'stats')
10510 rec( 8, 4, SystemIntervalMarker, BE ),
10511 rec( 12, 1, ProcessorType ),
10512 rec( 13, 1, Reserved ),
10513 rec( 14, 1, NumberOfServiceProcesses ),
10514 rec( 15, 1, ServerUtilizationPercentage ),
10515 rec( 16, 2, ConfiguredMaxBinderyObjects ),
10516 rec( 18, 2, ActualMaxBinderyObjects ),
10517 rec( 20, 2, CurrentUsedBinderyObjects ),
10518 rec( 22, 2, TotalServerMemory ),
10519 rec( 24, 2, WastedServerMemory ),
10520 rec( 26, 2, NumberOfDynamicMemoryAreas, var="x" ),
10521 rec( 28, 12, DynMemStruct, repeat="x" ),
10523 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10524 # 2222/17E9, 23/233
10525 pkt = NCP(0x17E9, "Get Volume Information", 'stats')
10527 rec( 10, 1, VolumeNumber ),
10528 ],info_str=(VolumeNumber, "Get Information on Volume %d", ", %d"))
10530 rec( 8, 4, SystemIntervalMarker, BE ),
10531 rec( 12, 1, VolumeNumber ),
10532 rec( 13, 1, LogicalDriveNumber ),
10533 rec( 14, 2, BlockSize ),
10534 rec( 16, 2, StartingBlock ),
10535 rec( 18, 2, TotalBlocks ),
10536 rec( 20, 2, FreeBlocks ),
10537 rec( 22, 2, TotalDirectoryEntries ),
10538 rec( 24, 2, FreeDirectoryEntries ),
10539 rec( 26, 2, ActualMaxUsedDirectoryEntries ),
10540 rec( 28, 1, VolumeHashedFlag ),
10541 rec( 29, 1, VolumeCachedFlag ),
10542 rec( 30, 1, VolumeRemovableFlag ),
10543 rec( 31, 1, VolumeMountedFlag ),
10544 rec( 32, 16, VolumeName ),
10546 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10547 # 2222/17EA, 23/234
10548 pkt = NCP(0x17EA, "Get Connection's Task Information", 'stats')
10550 rec( 10, 2, ConnectionNumber ),
10553 rec( 8, 2, NextRequestRecord ),
10554 rec( 10, 4, NumberOfAttributes, var="x" ),
10555 rec( 14, 4, Attributes, repeat="x" ),
10557 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10558 # 2222/17EB, 23/235
10559 pkt = NCP(0x17EB, "Get Connection's Open Files", 'file')
10561 rec( 10, 2, ConnectionNumber ),
10562 rec( 12, 2, LastRecordSeen ),
10564 pkt.Reply((29,283), [
10565 rec( 8, 2, NextRequestRecord ),
10566 rec( 10, 2, NumberOfRecords, var="x" ),
10567 rec( 12, (17, 271), OpnFilesStruct, repeat="x" ),
10569 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10570 # 2222/17EC, 23/236
10571 pkt = NCP(0x17EC, "Get Connection Using A File", 'file')
10573 rec( 10, 1, DataStreamNumber ),
10574 rec( 11, 1, VolumeNumber ),
10575 rec( 12, 4, DirectoryBase, LE ),
10576 rec( 16, 2, LastRecordSeen ),
10579 rec( 8, 2, NextRequestRecord ),
10580 rec( 10, 2, UseCount ),
10581 rec( 12, 2, OpenCount ),
10582 rec( 14, 2, OpenForReadCount ),
10583 rec( 16, 2, OpenForWriteCount ),
10584 rec( 18, 2, DenyReadCount ),
10585 rec( 20, 2, DenyWriteCount ),
10586 rec( 22, 1, Locked ),
10587 rec( 23, 1, ForkCount ),
10588 rec( 24, 2, NumberOfRecords, var="x" ),
10589 rec( 26, 7, ConnStruct, repeat="x" ),
10591 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10592 # 2222/17ED, 23/237
10593 pkt = NCP(0x17ED, "Get Physical Record Locks By Connection And File", 'file')
10595 rec( 10, 2, TargetConnectionNumber ),
10596 rec( 12, 1, DataStreamNumber ),
10597 rec( 13, 1, VolumeNumber ),
10598 rec( 14, 4, DirectoryBase, LE ),
10599 rec( 18, 2, LastRecordSeen ),
10602 rec( 8, 2, NextRequestRecord ),
10603 rec( 10, 2, NumberOfLocks, var="x" ),
10604 rec( 12, 11, LockStruct, repeat="x" ),
10606 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10607 # 2222/17EE, 23/238
10608 pkt = NCP(0x17EE, "Get Physical Record Locks By File", 'file')
10610 rec( 10, 1, DataStreamNumber ),
10611 rec( 11, 1, VolumeNumber ),
10612 rec( 12, 4, DirectoryBase ),
10613 rec( 16, 2, LastRecordSeen ),
10616 rec( 8, 2, NextRequestRecord ),
10617 rec( 10, 2, NumberOfLocks, var="x" ),
10618 rec( 12, 18, PhyLockStruct, repeat="x" ),
10620 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10621 # 2222/17EF, 23/239
10622 pkt = NCP(0x17EF, "Get Logical Records By Connection", 'file')
10624 rec( 10, 2, TargetConnectionNumber ),
10625 rec( 12, 2, LastRecordSeen ),
10627 pkt.Reply((16,270), [
10628 rec( 8, 2, NextRequestRecord ),
10629 rec( 10, 2, NumberOfRecords, var="x" ),
10630 rec( 12, (4, 258), LogLockStruct, repeat="x" ),
10632 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10633 # 2222/17F0, 23/240
10634 pkt = NCP(0x17F0, "Get Logical Record Information (old)", 'file')
10635 pkt.Request((13,267), [
10636 rec( 10, 2, LastRecordSeen ),
10637 rec( 12, (1,255), LogicalRecordName ),
10640 rec( 8, 2, ShareableLockCount ),
10641 rec( 10, 2, UseCount ),
10642 rec( 12, 1, Locked ),
10643 rec( 13, 2, NextRequestRecord ),
10644 rec( 15, 2, NumberOfRecords, var="x" ),
10645 rec( 17, 5, LogRecStruct, repeat="x" ),
10647 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10648 # 2222/17F1, 23/241
10649 pkt = NCP(0x17F1, "Get Connection's Semaphores", 'file')
10651 rec( 10, 2, ConnectionNumber ),
10652 rec( 12, 2, LastRecordSeen ),
10654 pkt.Reply((19,273), [
10655 rec( 8, 2, NextRequestRecord ),
10656 rec( 10, 2, NumberOfSemaphores, var="x" ),
10657 rec( 12, (7, 261), SemaStruct, repeat="x" ),
10659 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10660 # 2222/17F2, 23/242
10661 pkt = NCP(0x17F2, "Get Semaphore Information", 'file')
10662 pkt.Request((13,267), [
10663 rec( 10, 2, LastRecordSeen ),
10664 rec( 12, (1,255), SemaphoreName ),
10665 ], info_str=(SemaphoreName, "Get Semaphore Information: %s", ", %s"))
10667 rec( 8, 2, NextRequestRecord ),
10668 rec( 10, 2, OpenCount ),
10669 rec( 12, 2, SemaphoreValue ),
10670 rec( 14, 2, NumberOfRecords, var="x" ),
10671 rec( 16, 4, SemaInfoStruct, repeat="x" ),
10673 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10674 # 2222/17F3, 23/243
10675 pkt = NCP(0x17F3, "Map Directory Number to Path", 'file')
10677 rec( 10, 1, VolumeNumber ),
10678 rec( 11, 4, DirectoryNumber ),
10679 rec( 15, 1, NameSpace ),
10681 pkt.Reply((9,263), [
10682 rec( 8, (1,255), Path ),
10684 pkt.CompletionCodes([0x0000, 0x9600, 0x9c00, 0xc601, 0xfd00, 0xff00])
10685 # 2222/17F4, 23/244
10686 pkt = NCP(0x17F4, "Convert Path to Dir Entry", 'file')
10687 pkt.Request((12,266), [
10688 rec( 10, 1, DirHandle ),
10689 rec( 11, (1,255), Path ),
10690 ], info_str=(Path, "Convert Path to Directory Entry: %s", ", %s"))
10692 rec( 8, 1, VolumeNumber ),
10693 rec( 9, 4, DirectoryNumber ),
10695 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10696 # 2222/17FD, 23/253
10697 pkt = NCP(0x17FD, "Send Console Broadcast", 'stats')
10698 pkt.Request((16, 270), [
10699 rec( 10, 1, NumberOfStations, var="x" ),
10700 rec( 11, 4, StationList, repeat="x" ),
10701 rec( 15, (1, 255), TargetMessage ),
10702 ], info_str=(TargetMessage, "Send Console Broadcast: %s", ", %s"))
10704 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10705 # 2222/17FE, 23/254
10706 pkt = NCP(0x17FE, "Clear Connection Number", 'stats')
10708 rec( 10, 4, ConnectionNumber ),
10711 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10713 pkt = NCP(0x18, "End of Job", 'connection')
10716 pkt.CompletionCodes([0x0000])
10718 pkt = NCP(0x19, "Logout", 'connection')
10721 pkt.CompletionCodes([0x0000])
10723 pkt = NCP(0x1A, "Log Physical Record", 'file')
10725 rec( 7, 1, LockFlag ),
10726 rec( 8, 6, FileHandle ),
10727 rec( 14, 4, LockAreasStartOffset, BE ),
10728 rec( 18, 4, LockAreaLen, BE ),
10729 rec( 22, 2, LockTimeout ),
10732 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
10734 pkt = NCP(0x1B, "Lock Physical Record Set", 'file')
10736 rec( 7, 1, LockFlag ),
10737 rec( 8, 2, LockTimeout ),
10740 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
10742 pkt = NCP(0x1C, "Release Physical Record", 'file')
10744 rec( 7, 1, Reserved ),
10745 rec( 8, 6, FileHandle ),
10746 rec( 14, 4, LockAreasStartOffset ),
10747 rec( 18, 4, LockAreaLen ),
10750 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10752 pkt = NCP(0x1D, "Release Physical Record Set", 'file')
10754 rec( 7, 1, LockFlag ),
10757 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10758 # 2222/1E, 30 #Tested and fixed 6-14-02 GM
10759 pkt = NCP(0x1E, "Clear Physical Record", 'file')
10761 rec( 7, 1, Reserved ),
10762 rec( 8, 6, FileHandle ),
10763 rec( 14, 4, LockAreasStartOffset, BE ),
10764 rec( 18, 4, LockAreaLen, BE ),
10767 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10769 pkt = NCP(0x1F, "Clear Physical Record Set", 'file')
10771 rec( 7, 1, LockFlag ),
10774 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
10776 pkt = NCP(0x2000, "Open Semaphore", 'file', has_length=0)
10778 rec( 8, 1, InitialSemaphoreValue ),
10779 rec( 9, 1, SemaphoreNameLen ),
10782 rec( 8, 4, SemaphoreHandle, BE ),
10783 rec( 12, 1, SemaphoreOpenCount ),
10785 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10787 pkt = NCP(0x2001, "Examine Semaphore", 'file', has_length=0)
10789 rec( 8, 4, SemaphoreHandle, BE ),
10792 rec( 8, 1, SemaphoreValue ),
10793 rec( 9, 1, SemaphoreOpenCount ),
10795 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10797 pkt = NCP(0x2002, "Wait On Semaphore", 'file', has_length=0)
10799 rec( 8, 4, SemaphoreHandle, BE ),
10800 rec( 12, 2, SemaphoreTimeOut, BE ),
10803 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10805 pkt = NCP(0x2003, "Signal Semaphore", 'file', has_length=0)
10807 rec( 8, 4, SemaphoreHandle, BE ),
10810 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10812 pkt = NCP(0x2004, "Close Semaphore", 'file', has_length=0)
10814 rec( 8, 4, SemaphoreHandle, BE ),
10817 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
10819 pkt = NCP(0x21, "Negotiate Buffer Size", 'connection')
10821 rec( 7, 2, BufferSize, BE ),
10824 rec( 8, 2, BufferSize, BE ),
10826 pkt.CompletionCodes([0x0000])
10828 pkt = NCP(0x2200, "TTS Is Available", 'tts', has_length=0)
10831 pkt.CompletionCodes([0x0001, 0xfd03, 0xff12])
10833 pkt = NCP(0x2201, "TTS Begin Transaction", 'tts', has_length=0)
10836 pkt.CompletionCodes([0x0000])
10838 pkt = NCP(0x2202, "TTS End Transaction", 'tts', has_length=0)
10841 rec( 8, 4, TransactionNumber, BE ),
10843 pkt.CompletionCodes([0x0000, 0xff01])
10845 pkt = NCP(0x2203, "TTS Abort Transaction", 'tts', has_length=0)
10848 pkt.CompletionCodes([0x0000, 0xfd03, 0xfe0b, 0xff01])
10850 pkt = NCP(0x2204, "TTS Transaction Status", 'tts', has_length=0)
10852 rec( 8, 4, TransactionNumber, BE ),
10855 pkt.CompletionCodes([0x0000])
10857 pkt = NCP(0x2205, "TTS Get Application Thresholds", 'tts', has_length=0)
10860 rec( 8, 1, LogicalLockThreshold ),
10861 rec( 9, 1, PhysicalLockThreshold ),
10863 pkt.CompletionCodes([0x0000])
10865 pkt = NCP(0x2206, "TTS Set Application Thresholds", 'tts', has_length=0)
10867 rec( 8, 1, LogicalLockThreshold ),
10868 rec( 9, 1, PhysicalLockThreshold ),
10871 pkt.CompletionCodes([0x0000, 0x9600])
10873 pkt = NCP(0x2207, "TTS Get Workstation Thresholds", 'tts', has_length=0)
10875 rec( 8, 1, LogicalLockThreshold ),
10876 rec( 9, 1, PhysicalLockThreshold ),
10879 pkt.CompletionCodes([0x0000])
10881 pkt = NCP(0x2208, "TTS Set Workstation Thresholds", 'tts', has_length=0)
10883 rec( 8, 1, LogicalLockThreshold ),
10884 rec( 9, 1, PhysicalLockThreshold ),
10887 pkt.CompletionCodes([0x0000])
10889 pkt = NCP(0x2209, "TTS Get Transaction Bits", 'tts', has_length=0)
10892 rec( 8, 1, ControlFlags ),
10894 pkt.CompletionCodes([0x0000])
10896 pkt = NCP(0x220A, "TTS Set Transaction Bits", 'tts', has_length=0)
10898 rec( 8, 1, ControlFlags ),
10901 pkt.CompletionCodes([0x0000])
10903 pkt = NCP(0x2301, "AFP Create Directory", 'afp')
10904 pkt.Request((49, 303), [
10905 rec( 10, 1, VolumeNumber ),
10906 rec( 11, 4, BaseDirectoryID ),
10907 rec( 15, 1, Reserved ),
10908 rec( 16, 4, CreatorID ),
10909 rec( 20, 4, Reserved4 ),
10910 rec( 24, 2, FinderAttr ),
10911 rec( 26, 2, HorizLocation ),
10912 rec( 28, 2, VertLocation ),
10913 rec( 30, 2, FileDirWindow ),
10914 rec( 32, 16, Reserved16 ),
10915 rec( 48, (1,255), Path ),
10916 ], info_str=(Path, "AFP Create Directory: %s", ", %s"))
10918 rec( 8, 4, NewDirectoryID ),
10920 pkt.CompletionCodes([0x0000, 0x8301, 0x8400, 0x8800, 0x9300, 0x9600, 0x9804,
10921 0x9900, 0x9c03, 0x9e02, 0xa100, 0xa201, 0xfd00, 0xff18])
10923 pkt = NCP(0x2302, "AFP Create File", 'afp')
10924 pkt.Request((49, 303), [
10925 rec( 10, 1, VolumeNumber ),
10926 rec( 11, 4, BaseDirectoryID ),
10927 rec( 15, 1, DeleteExistingFileFlag ),
10928 rec( 16, 4, CreatorID, BE ),
10929 rec( 20, 4, Reserved4 ),
10930 rec( 24, 2, FinderAttr ),
10931 rec( 26, 2, HorizLocation, BE ),
10932 rec( 28, 2, VertLocation, BE ),
10933 rec( 30, 2, FileDirWindow, BE ),
10934 rec( 32, 16, Reserved16 ),
10935 rec( 48, (1,255), Path ),
10936 ], info_str=(Path, "AFP Create File: %s", ", %s"))
10938 rec( 8, 4, NewDirectoryID ),
10940 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8400, 0x8701, 0x8800,
10941 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9300, 0x9600, 0x9804,
10942 0x9900, 0x9b03, 0x9c03, 0x9e02, 0xa100, 0xa201, 0xfd00,
10945 pkt = NCP(0x2303, "AFP Delete", 'afp')
10946 pkt.Request((16,270), [
10947 rec( 10, 1, VolumeNumber ),
10948 rec( 11, 4, BaseDirectoryID ),
10949 rec( 15, (1,255), Path ),
10950 ], info_str=(Path, "AFP Delete: %s", ", %s"))
10952 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x8a00, 0x8d00, 0x8e00, 0x8f00,
10953 0x9000, 0x9300, 0x9600, 0x9804, 0x9b03, 0x9c03, 0x9e02,
10954 0xa000, 0xa100, 0xa201, 0xfd00, 0xff19])
10956 pkt = NCP(0x2304, "AFP Get Entry ID From Name", 'afp')
10957 pkt.Request((16,270), [
10958 rec( 10, 1, VolumeNumber ),
10959 rec( 11, 4, BaseDirectoryID ),
10960 rec( 15, (1,255), Path ),
10961 ], info_str=(Path, "AFP Get Entry from Name: %s", ", %s"))
10963 rec( 8, 4, TargetEntryID, BE ),
10965 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
10966 0xa100, 0xa201, 0xfd00, 0xff19])
10968 pkt = NCP(0x2305, "AFP Get File Information", 'afp')
10969 pkt.Request((18,272), [
10970 rec( 10, 1, VolumeNumber ),
10971 rec( 11, 4, BaseDirectoryID ),
10972 rec( 15, 2, RequestBitMap, BE ),
10973 rec( 17, (1,255), Path ),
10974 ], info_str=(Path, "AFP Get File Information: %s", ", %s"))
10976 rec( 8, 4, AFPEntryID, BE ),
10977 rec( 12, 4, ParentID, BE ),
10978 rec( 16, 2, AttributesDef16, LE ),
10979 rec( 18, 4, DataForkLen, BE ),
10980 rec( 22, 4, ResourceForkLen, BE ),
10981 rec( 26, 2, TotalOffspring, BE ),
10982 rec( 28, 2, CreationDate, BE ),
10983 rec( 30, 2, LastAccessedDate, BE ),
10984 rec( 32, 2, ModifiedDate, BE ),
10985 rec( 34, 2, ModifiedTime, BE ),
10986 rec( 36, 2, ArchivedDate, BE ),
10987 rec( 38, 2, ArchivedTime, BE ),
10988 rec( 40, 4, CreatorID, BE ),
10989 rec( 44, 4, Reserved4 ),
10990 rec( 48, 2, FinderAttr ),
10991 rec( 50, 2, HorizLocation ),
10992 rec( 52, 2, VertLocation ),
10993 rec( 54, 2, FileDirWindow ),
10994 rec( 56, 16, Reserved16 ),
10995 rec( 72, 32, LongName ),
10996 rec( 104, 4, CreatorID, BE ),
10997 rec( 108, 12, ShortName ),
10998 rec( 120, 1, AccessPrivileges ),
11000 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
11001 0xa100, 0xa201, 0xfd00, 0xff19])
11003 pkt = NCP(0x2306, "AFP Get Entry ID From NetWare Handle", 'afp')
11005 rec( 10, 6, FileHandle ),
11008 rec( 8, 1, VolumeID ),
11009 rec( 9, 4, TargetEntryID, BE ),
11010 rec( 13, 1, ForkIndicator ),
11012 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0xa201])
11014 pkt = NCP(0x2307, "AFP Rename", 'afp')
11015 pkt.Request((21, 529), [
11016 rec( 10, 1, VolumeNumber ),
11017 rec( 11, 4, MacSourceBaseID, BE ),
11018 rec( 15, 4, MacDestinationBaseID, BE ),
11019 rec( 19, (1,255), Path ),
11020 rec( -1, (1,255), NewFileNameLen ),
11021 ], info_str=(Path, "AFP Rename: %s", ", %s"))
11023 pkt.CompletionCodes([0x0000, 0x8301, 0x8401, 0x8800, 0x8b00, 0x8e00,
11024 0x9001, 0x9201, 0x9300, 0x9600, 0x9804, 0x9900,
11025 0x9c03, 0x9e00, 0xa100, 0xa201, 0xfd00, 0xff0a])
11027 pkt = NCP(0x2308, "AFP Open File Fork", 'afp')
11028 pkt.Request((18, 272), [
11029 rec( 10, 1, VolumeNumber ),
11030 rec( 11, 4, MacBaseDirectoryID ),
11031 rec( 15, 1, ForkIndicator ),
11032 rec( 16, 1, AccessMode ),
11033 rec( 17, (1,255), Path ),
11034 ], info_str=(Path, "AFP Open File Fork: %s", ", %s"))
11036 rec( 8, 4, AFPEntryID, BE ),
11037 rec( 12, 4, DataForkLen, BE ),
11038 rec( 16, 6, NetWareAccessHandle ),
11040 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8800, 0x9300,
11041 0x9400, 0x9600, 0x9804, 0x9900, 0x9c03, 0xa100,
11042 0xa201, 0xfd00, 0xff16])
11044 pkt = NCP(0x2309, "AFP Set File Information", 'afp')
11045 pkt.Request((64, 318), [
11046 rec( 10, 1, VolumeNumber ),
11047 rec( 11, 4, MacBaseDirectoryID ),
11048 rec( 15, 2, RequestBitMap, BE ),
11049 rec( 17, 2, MacAttr, BE ),
11050 rec( 19, 2, CreationDate, BE ),
11051 rec( 21, 2, LastAccessedDate, BE ),
11052 rec( 23, 2, ModifiedDate, BE ),
11053 rec( 25, 2, ModifiedTime, BE ),
11054 rec( 27, 2, ArchivedDate, BE ),
11055 rec( 29, 2, ArchivedTime, BE ),
11056 rec( 31, 4, CreatorID, BE ),
11057 rec( 35, 4, Reserved4 ),
11058 rec( 39, 2, FinderAttr ),
11059 rec( 41, 2, HorizLocation ),
11060 rec( 43, 2, VertLocation ),
11061 rec( 45, 2, FileDirWindow ),
11062 rec( 47, 16, Reserved16 ),
11063 rec( 63, (1,255), Path ),
11064 ], info_str=(Path, "AFP Set File Information: %s", ", %s"))
11066 pkt.CompletionCodes([0x0000, 0x0104, 0x8301, 0x8800, 0x9300, 0x9400,
11067 0x9500, 0x9600, 0x9804, 0x9c03, 0xa100, 0xa201,
11070 pkt = NCP(0x230A, "AFP Scan File Information", 'afp')
11071 pkt.Request((26, 280), [
11072 rec( 10, 1, VolumeNumber ),
11073 rec( 11, 4, MacBaseDirectoryID ),
11074 rec( 15, 4, MacLastSeenID, BE ),
11075 rec( 19, 2, DesiredResponseCount, BE ),
11076 rec( 21, 2, SearchBitMap, BE ),
11077 rec( 23, 2, RequestBitMap, BE ),
11078 rec( 25, (1,255), Path ),
11079 ], info_str=(Path, "AFP Scan File Information: %s", ", %s"))
11081 rec( 8, 2, ActualResponseCount, BE, var="x" ),
11082 rec( 10, 113, AFP10Struct, repeat="x" ),
11084 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804,
11085 0x9c03, 0xa100, 0xa201, 0xfd00, 0xff16])
11087 pkt = NCP(0x230B, "AFP Alloc Temporary Directory Handle", 'afp')
11088 pkt.Request((16,270), [
11089 rec( 10, 1, VolumeNumber ),
11090 rec( 11, 4, MacBaseDirectoryID ),
11091 rec( 15, (1,255), Path ),
11092 ], info_str=(Path, "AFP Allocate Temporary Directory Handle: %s", ", %s"))
11094 rec( 8, 1, DirHandle ),
11095 rec( 9, 1, AccessRightsMask ),
11097 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600,
11098 0x9804, 0x9b03, 0x9c03, 0x9d00, 0xa100,
11099 0xa201, 0xfd00, 0xff00])
11101 pkt = NCP(0x230C, "AFP Get Entry ID From Path Name", 'afp')
11102 pkt.Request((12,266), [
11103 rec( 10, 1, DirHandle ),
11104 rec( 11, (1,255), Path ),
11105 ], info_str=(Path, "AFP Get Entry ID from Path Name: %s", ", %s"))
11107 rec( 8, 4, AFPEntryID, BE ),
11109 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600,
11110 0x9804, 0x9b03, 0x9c03, 0xa100, 0xa201,
11113 pkt = NCP(0x230D, "AFP 2.0 Create Directory", 'afp')
11114 pkt.Request((55,309), [
11115 rec( 10, 1, VolumeNumber ),
11116 rec( 11, 4, BaseDirectoryID ),
11117 rec( 15, 1, Reserved ),
11118 rec( 16, 4, CreatorID, BE ),
11119 rec( 20, 4, Reserved4 ),
11120 rec( 24, 2, FinderAttr ),
11121 rec( 26, 2, HorizLocation ),
11122 rec( 28, 2, VertLocation ),
11123 rec( 30, 2, FileDirWindow ),
11124 rec( 32, 16, Reserved16 ),
11125 rec( 48, 6, ProDOSInfo ),
11126 rec( 54, (1,255), Path ),
11127 ], info_str=(Path, "AFP 2.0 Create Directory: %s", ", %s"))
11129 rec( 8, 4, NewDirectoryID ),
11131 pkt.CompletionCodes([0x0000, 0x8301, 0x8400, 0x8800, 0x9300,
11132 0x9600, 0x9804, 0x9900, 0x9c03, 0x9e00,
11133 0xa100, 0xa201, 0xfd00, 0xff00])
11135 pkt = NCP(0x230E, "AFP 2.0 Create File", 'afp')
11136 pkt.Request((55,309), [
11137 rec( 10, 1, VolumeNumber ),
11138 rec( 11, 4, BaseDirectoryID ),
11139 rec( 15, 1, DeleteExistingFileFlag ),
11140 rec( 16, 4, CreatorID, BE ),
11141 rec( 20, 4, Reserved4 ),
11142 rec( 24, 2, FinderAttr ),
11143 rec( 26, 2, HorizLocation ),
11144 rec( 28, 2, VertLocation ),
11145 rec( 30, 2, FileDirWindow ),
11146 rec( 32, 16, Reserved16 ),
11147 rec( 48, 6, ProDOSInfo ),
11148 rec( 54, (1,255), Path ),
11149 ], info_str=(Path, "AFP 2.0 Create File: %s", ", %s"))
11151 rec( 8, 4, NewDirectoryID ),
11153 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8400,
11154 0x8701, 0x8800, 0x8a00, 0x8d00, 0x8e00,
11155 0x8f00, 0x9001, 0x9300, 0x9600, 0x9804,
11156 0x9900, 0x9b03, 0x9c03, 0x9e00, 0xa100,
11157 0xa201, 0xfd00, 0xff00])
11159 pkt = NCP(0x230F, "AFP 2.0 Get File Or Directory Information", 'afp')
11160 pkt.Request((18,272), [
11161 rec( 10, 1, VolumeNumber ),
11162 rec( 11, 4, BaseDirectoryID ),
11163 rec( 15, 2, RequestBitMap, BE ),
11164 rec( 17, (1,255), Path ),
11165 ], info_str=(Path, "AFP 2.0 Get Information: %s", ", %s"))
11167 rec( 8, 4, AFPEntryID, BE ),
11168 rec( 12, 4, ParentID, BE ),
11169 rec( 16, 2, AttributesDef16 ),
11170 rec( 18, 4, DataForkLen, BE ),
11171 rec( 22, 4, ResourceForkLen, BE ),
11172 rec( 26, 2, TotalOffspring, BE ),
11173 rec( 28, 2, CreationDate, BE ),
11174 rec( 30, 2, LastAccessedDate, BE ),
11175 rec( 32, 2, ModifiedDate, BE ),
11176 rec( 34, 2, ModifiedTime, BE ),
11177 rec( 36, 2, ArchivedDate, BE ),
11178 rec( 38, 2, ArchivedTime, BE ),
11179 rec( 40, 4, CreatorID, BE ),
11180 rec( 44, 4, Reserved4 ),
11181 rec( 48, 2, FinderAttr ),
11182 rec( 50, 2, HorizLocation ),
11183 rec( 52, 2, VertLocation ),
11184 rec( 54, 2, FileDirWindow ),
11185 rec( 56, 16, Reserved16 ),
11186 rec( 72, 32, LongName ),
11187 rec( 104, 4, CreatorID, BE ),
11188 rec( 108, 12, ShortName ),
11189 rec( 120, 1, AccessPrivileges ),
11190 rec( 121, 1, Reserved ),
11191 rec( 122, 6, ProDOSInfo ),
11193 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
11194 0xa100, 0xa201, 0xfd00, 0xff19])
11196 pkt = NCP(0x2310, "AFP 2.0 Set File Information", 'afp')
11197 pkt.Request((70, 324), [
11198 rec( 10, 1, VolumeNumber ),
11199 rec( 11, 4, MacBaseDirectoryID ),
11200 rec( 15, 2, RequestBitMap, BE ),
11201 rec( 17, 2, AttributesDef16 ),
11202 rec( 19, 2, CreationDate, BE ),
11203 rec( 21, 2, LastAccessedDate, BE ),
11204 rec( 23, 2, ModifiedDate, BE ),
11205 rec( 25, 2, ModifiedTime, BE ),
11206 rec( 27, 2, ArchivedDate, BE ),
11207 rec( 29, 2, ArchivedTime, BE ),
11208 rec( 31, 4, CreatorID, BE ),
11209 rec( 35, 4, Reserved4 ),
11210 rec( 39, 2, FinderAttr ),
11211 rec( 41, 2, HorizLocation ),
11212 rec( 43, 2, VertLocation ),
11213 rec( 45, 2, FileDirWindow ),
11214 rec( 47, 16, Reserved16 ),
11215 rec( 63, 6, ProDOSInfo ),
11216 rec( 69, (1,255), Path ),
11217 ], info_str=(Path, "AFP 2.0 Set File Information: %s", ", %s"))
11219 pkt.CompletionCodes([0x0000, 0x0104, 0x8301, 0x8800, 0x9300, 0x9400,
11220 0x9500, 0x9600, 0x9804, 0x9c03, 0xa100, 0xa201,
11223 pkt = NCP(0x2311, "AFP 2.0 Scan File Information", 'afp')
11224 pkt.Request((26, 280), [
11225 rec( 10, 1, VolumeNumber ),
11226 rec( 11, 4, MacBaseDirectoryID ),
11227 rec( 15, 4, MacLastSeenID, BE ),
11228 rec( 19, 2, DesiredResponseCount, BE ),
11229 rec( 21, 2, SearchBitMap, BE ),
11230 rec( 23, 2, RequestBitMap, BE ),
11231 rec( 25, (1,255), Path ),
11232 ], info_str=(Path, "AFP 2.0 Scan File Information: %s", ", %s"))
11234 rec( 8, 2, ActualResponseCount, var="x" ),
11235 rec( 10, 4, AFP20Struct, repeat="x" ),
11237 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804,
11238 0x9c03, 0xa100, 0xa201, 0xfd00, 0xff16])
11240 pkt = NCP(0x2312, "AFP Get DOS Name From Entry ID", 'afp')
11242 rec( 10, 1, VolumeNumber ),
11243 rec( 11, 4, AFPEntryID, BE ),
11245 pkt.Reply((9,263), [
11246 rec( 8, (1,255), Path ),
11248 pkt.CompletionCodes([0x0000, 0x8900, 0x9600, 0xbf00])
11250 pkt = NCP(0x2313, "AFP Get Macintosh Info On Deleted File", 'afp')
11252 rec( 10, 1, VolumeNumber ),
11253 rec( 11, 4, DirectoryNumber, BE ),
11255 pkt.Reply((51,305), [
11256 rec( 8, 4, CreatorID, BE ),
11257 rec( 12, 4, Reserved4 ),
11258 rec( 16, 2, FinderAttr ),
11259 rec( 18, 2, HorizLocation ),
11260 rec( 20, 2, VertLocation ),
11261 rec( 22, 2, FileDirWindow ),
11262 rec( 24, 16, Reserved16 ),
11263 rec( 40, 6, ProDOSInfo ),
11264 rec( 46, 4, ResourceForkSize, BE ),
11265 rec( 50, (1,255), FileName ),
11267 pkt.CompletionCodes([0x0000, 0x9c03, 0xbf00])
11269 pkt = NCP(0x2400, "Get NCP Extension Information", 'fileserver')
11271 rec( 10, 4, NCPextensionNumber, LE ),
11273 pkt.Reply((16,270), [
11274 rec( 8, 4, NCPextensionNumber ),
11275 rec( 12, 1, NCPextensionMajorVersion ),
11276 rec( 13, 1, NCPextensionMinorVersion ),
11277 rec( 14, 1, NCPextensionRevisionNumber ),
11278 rec( 15, (1, 255), NCPextensionName ),
11280 pkt.CompletionCodes([0x0000, 0xfe00])
11282 pkt = NCP(0x2401, "Get NCP Extension Maximum Data Size", 'fileserver')
11285 rec( 8, 2, NCPdataSize ),
11287 pkt.CompletionCodes([0x0000, 0xfe00])
11289 pkt = NCP(0x2402, "Get NCP Extension Information by Name", 'fileserver')
11290 pkt.Request((11, 265), [
11291 rec( 10, (1,255), NCPextensionName ),
11292 ], info_str=(NCPextensionName, "Get NCP Extension Information by Name: %s", ", %s"))
11293 pkt.Reply((16,270), [
11294 rec( 8, 4, NCPextensionNumber ),
11295 rec( 12, 1, NCPextensionMajorVersion ),
11296 rec( 13, 1, NCPextensionMinorVersion ),
11297 rec( 14, 1, NCPextensionRevisionNumber ),
11298 rec( 15, (1, 255), NCPextensionName ),
11300 pkt.CompletionCodes([0x0000, 0xfe00, 0xff20])
11302 pkt = NCP(0x2403, "Get Number of Registered NCP Extensions", 'fileserver')
11305 rec( 8, 4, NumberOfNCPExtensions ),
11307 pkt.CompletionCodes([0x0000, 0xfe00])
11309 pkt = NCP(0x2404, "Get NCP Extension Registered Verbs List", 'fileserver')
11311 rec( 10, 4, StartingNumber ),
11314 rec( 8, 4, ReturnedListCount, var="x" ),
11315 rec( 12, 4, nextStartingNumber ),
11316 rec( 16, 4, NCPExtensionNumbers, repeat="x" ),
11318 pkt.CompletionCodes([0x0000, 0xfe00])
11320 pkt = NCP(0x2405, "Return NCP Extension Information", 'fileserver')
11322 rec( 10, 4, NCPextensionNumber ),
11324 pkt.Reply((16,270), [
11325 rec( 8, 4, NCPextensionNumber ),
11326 rec( 12, 1, NCPextensionMajorVersion ),
11327 rec( 13, 1, NCPextensionMinorVersion ),
11328 rec( 14, 1, NCPextensionRevisionNumber ),
11329 rec( 15, (1, 255), NCPextensionName ),
11331 pkt.CompletionCodes([0x0000, 0xfe00])
11333 pkt = NCP(0x2406, "Return NCP Extension Maximum Data Size", 'fileserver')
11336 rec( 8, 4, NCPdataSize ),
11338 pkt.CompletionCodes([0x0000, 0xfe00])
11340 pkt = NCP(0x25, "Execute NCP Extension", 'fileserver')
11342 rec( 7, 4, NCPextensionNumber ),
11343 # The following value is Unicode
11344 #rec[ 13, (1,255), RequestData ],
11347 # The following value is Unicode
11348 #[ 8, (1, 255), ReplyBuffer ],
11349 pkt.CompletionCodes([0x0000, 0xd504, 0xee00, 0xfe00])
11351 pkt = NCP(0x3B, "Commit File", 'file', has_length=0 )
11353 rec( 7, 1, Reserved ),
11354 rec( 8, 6, FileHandle ),
11355 ], info_str=(FileHandle, "Commit File - 0x%s", ", %s"))
11357 pkt.CompletionCodes([0x0000, 0x8800, 0x9804, 0xff00])
11359 pkt = NCP(0x3E, "File Search Initialize", 'file', has_length=0 )
11360 pkt.Request((9, 263), [
11361 rec( 7, 1, DirHandle ),
11362 rec( 8, (1,255), Path ),
11363 ], info_str=(Path, "Initialize File Search: %s", ", %s"))
11365 rec( 8, 1, VolumeNumber ),
11366 rec( 9, 2, DirectoryID ),
11367 rec( 11, 2, SequenceNumber, BE ),
11368 rec( 13, 1, AccessRightsMask ),
11370 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100,
11373 pkt = NCP(0x3F, "File Search Continue", 'file', has_length=0 )
11374 pkt.Request((14, 268), [
11375 rec( 7, 1, VolumeNumber ),
11376 rec( 8, 2, DirectoryID ),
11377 rec( 10, 2, SequenceNumber, BE ),
11378 rec( 12, 1, SearchAttributes ),
11379 rec( 13, (1,255), Path ),
11380 ], info_str=(Path, "File Search Continue: %s", ", %s"))
11381 pkt.Reply( NO_LENGTH_CHECK, [
11383 # XXX - don't show this if we got back a non-zero
11384 # completion code? For example, 255 means "No
11385 # matching files or directories were found", so
11386 # presumably it can't show you a matching file or
11387 # directory instance - it appears to just leave crap
11390 srec( DirectoryInstance, req_cond="ncp.sattr_sub==TRUE"),
11391 srec( FileInstance, req_cond="ncp.sattr_sub!=TRUE"),
11393 pkt.ReqCondSizeVariable()
11394 pkt.CompletionCodes([0x0000, 0xff16])
11396 pkt = NCP(0x40, "Search for a File", 'file')
11397 pkt.Request((12, 266), [
11398 rec( 7, 2, SequenceNumber, BE ),
11399 rec( 9, 1, DirHandle ),
11400 rec( 10, 1, SearchAttributes ),
11401 rec( 11, (1,255), FileName ),
11402 ], info_str=(FileName, "Search for File: %s", ", %s"))
11404 rec( 8, 2, SequenceNumber, BE ),
11405 rec( 10, 2, Reserved2 ),
11406 rec( 12, 14, FileName14 ),
11407 rec( 26, 1, AttributesDef ),
11408 rec( 27, 1, FileExecuteType ),
11409 rec( 28, 4, FileSize ),
11410 rec( 32, 2, CreationDate, BE ),
11411 rec( 34, 2, LastAccessedDate, BE ),
11412 rec( 36, 2, ModifiedDate, BE ),
11413 rec( 38, 2, ModifiedTime, BE ),
11415 pkt.CompletionCodes([0x0000, 0x8900, 0x9600, 0x9804, 0x9b03,
11416 0x9c03, 0xa100, 0xfd00, 0xff16])
11418 pkt = NCP(0x41, "Open File", 'file')
11419 pkt.Request((10, 264), [
11420 rec( 7, 1, DirHandle ),
11421 rec( 8, 1, SearchAttributes ),
11422 rec( 9, (1,255), FileName ),
11423 ], info_str=(FileName, "Open File: %s", ", %s"))
11425 rec( 8, 6, FileHandle ),
11426 rec( 14, 2, Reserved2 ),
11427 rec( 16, 14, FileName14 ),
11428 rec( 30, 1, AttributesDef ),
11429 rec( 31, 1, FileExecuteType ),
11430 rec( 32, 4, FileSize, BE ),
11431 rec( 36, 2, CreationDate, BE ),
11432 rec( 38, 2, LastAccessedDate, BE ),
11433 rec( 40, 2, ModifiedDate, BE ),
11434 rec( 42, 2, ModifiedTime, BE ),
11436 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8200, 0x9400,
11437 0x9600, 0x9804, 0x9c03, 0xa100, 0xfd00,
11440 pkt = NCP(0x42, "Close File", 'file')
11442 rec( 7, 1, Reserved ),
11443 rec( 8, 6, FileHandle ),
11444 ], info_str=(FileHandle, "Close File - 0x%s", ", %s"))
11446 pkt.CompletionCodes([0x0000, 0x8800, 0xff1a])
11448 pkt = NCP(0x43, "Create File", 'file')
11449 pkt.Request((10, 264), [
11450 rec( 7, 1, DirHandle ),
11451 rec( 8, 1, AttributesDef ),
11452 rec( 9, (1,255), FileName ),
11453 ], info_str=(FileName, "Create File: %s", ", %s"))
11455 rec( 8, 6, FileHandle ),
11456 rec( 14, 2, Reserved2 ),
11457 rec( 16, 14, FileName14 ),
11458 rec( 30, 1, AttributesDef ),
11459 rec( 31, 1, FileExecuteType ),
11460 rec( 32, 4, FileSize, BE ),
11461 rec( 36, 2, CreationDate, BE ),
11462 rec( 38, 2, LastAccessedDate, BE ),
11463 rec( 40, 2, ModifiedDate, BE ),
11464 rec( 42, 2, ModifiedTime, BE ),
11466 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11467 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11468 0x9804, 0x9900, 0x9b03, 0x9c03, 0xfd00,
11471 pkt = NCP(0x44, "Erase File", 'file')
11472 pkt.Request((10, 264), [
11473 rec( 7, 1, DirHandle ),
11474 rec( 8, 1, SearchAttributes ),
11475 rec( 9, (1,255), FileName ),
11476 ], info_str=(FileName, "Erase File: %s", ", %s"))
11478 pkt.CompletionCodes([0x0000, 0x8a00, 0x8d00, 0x8e00, 0x8f00,
11479 0x9001, 0x9600, 0x9804, 0x9b03, 0x9c03,
11480 0xa100, 0xfd00, 0xff00])
11482 pkt = NCP(0x45, "Rename File", 'file')
11483 pkt.Request((12, 520), [
11484 rec( 7, 1, DirHandle ),
11485 rec( 8, 1, SearchAttributes ),
11486 rec( 9, (1,255), FileName ),
11487 rec( -1, 1, TargetDirHandle ),
11488 rec( -1, (1, 255), NewFileNameLen ),
11489 ], info_str=(FileName, "Rename File: %s", ", %s"))
11491 pkt.CompletionCodes([0x0000, 0x8701, 0x8b00, 0x8d00, 0x8e00,
11492 0x8f00, 0x9001, 0x9101, 0x9201, 0x9600,
11493 0x9804, 0x9a00, 0x9b03, 0x9c03, 0xa100,
11496 pkt = NCP(0x46, "Set File Attributes", 'file')
11497 pkt.Request((11, 265), [
11498 rec( 7, 1, AttributesDef ),
11499 rec( 8, 1, DirHandle ),
11500 rec( 9, 1, SearchAttributes ),
11501 rec( 10, (1,255), FileName ),
11502 ], info_str=(FileName, "Set File Attributes: %s", ", %s"))
11504 pkt.CompletionCodes([0x0000, 0x8c00, 0x8d00, 0x8e00, 0x9600,
11505 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfd00,
11508 pkt = NCP(0x47, "Get Current Size of File", 'file')
11510 rec(7, 1, Reserved ),
11511 rec( 8, 6, FileHandle ),
11512 ], info_str=(FileHandle, "Get Current Size of File - 0x%s", ", %s"))
11514 rec( 8, 4, FileSize, BE ),
11516 pkt.CompletionCodes([0x0000, 0x8800])
11518 pkt = NCP(0x48, "Read From A File", 'file')
11520 rec( 7, 1, Reserved ),
11521 rec( 8, 6, FileHandle ),
11522 rec( 14, 4, FileOffset, BE ),
11523 rec( 18, 2, MaxBytes, BE ),
11524 ], info_str=(FileHandle, "Read From File - 0x%s", ", %s"))
11526 rec( 8, 2, NumBytes, BE ),
11528 pkt.CompletionCodes([0x0000, 0x8300, 0x8800, 0x9300, 0xff1b])
11530 pkt = NCP(0x49, "Write to a File", 'file')
11532 rec( 7, 1, Reserved ),
11533 rec( 8, 6, FileHandle ),
11534 rec( 14, 4, FileOffset, BE ),
11535 rec( 18, 2, MaxBytes, BE ),
11536 ], info_str=(FileHandle, "Write to a File - 0x%s", ", %s"))
11538 pkt.CompletionCodes([0x0000, 0x0104, 0x8300, 0x8800, 0x9400, 0x9500, 0xa201, 0xff1b])
11540 pkt = NCP(0x4A, "Copy from One File to Another", 'file')
11542 rec( 7, 1, Reserved ),
11543 rec( 8, 6, FileHandle ),
11544 rec( 14, 6, TargetFileHandle ),
11545 rec( 20, 4, FileOffset, BE ),
11546 rec( 24, 4, TargetFileOffset, BE ),
11547 rec( 28, 2, BytesToCopy, BE ),
11550 rec( 8, 4, BytesActuallyTransferred, BE ),
11552 pkt.CompletionCodes([0x0000, 0x0104, 0x8300, 0x8800, 0x9300, 0x9400,
11553 0x9500, 0x9600, 0xa201, 0xff1b])
11555 pkt = NCP(0x4B, "Set File Time Date Stamp", 'file')
11557 rec( 7, 1, Reserved ),
11558 rec( 8, 6, FileHandle ),
11559 rec( 14, 2, FileTime, BE ),
11560 rec( 16, 2, FileDate, BE ),
11561 ], info_str=(FileHandle, "Set Time and Date Stamp for File - 0x%s", ", %s"))
11563 pkt.CompletionCodes([0x0000, 0x8800, 0x9600])
11565 pkt = NCP(0x4C, "Open File", 'file')
11566 pkt.Request((11, 265), [
11567 rec( 7, 1, DirHandle ),
11568 rec( 8, 1, SearchAttributes ),
11569 rec( 9, 1, AccessRightsMask ),
11570 rec( 10, (1,255), FileName ),
11571 ], info_str=(FileName, "Open File: %s", ", %s"))
11573 rec( 8, 6, FileHandle ),
11574 rec( 14, 2, Reserved2 ),
11575 rec( 16, 14, FileName14 ),
11576 rec( 30, 1, AttributesDef ),
11577 rec( 31, 1, FileExecuteType ),
11578 rec( 32, 4, FileSize, BE ),
11579 rec( 36, 2, CreationDate, BE ),
11580 rec( 38, 2, LastAccessedDate, BE ),
11581 rec( 40, 2, ModifiedDate, BE ),
11582 rec( 42, 2, ModifiedTime, BE ),
11584 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8200, 0x9400,
11585 0x9600, 0x9804, 0x9c03, 0xa100, 0xfd00,
11588 pkt = NCP(0x4D, "Create File", 'file')
11589 pkt.Request((10, 264), [
11590 rec( 7, 1, DirHandle ),
11591 rec( 8, 1, AttributesDef ),
11592 rec( 9, (1,255), FileName ),
11593 ], info_str=(FileName, "Create File: %s", ", %s"))
11595 rec( 8, 6, FileHandle ),
11596 rec( 14, 2, Reserved2 ),
11597 rec( 16, 14, FileName14 ),
11598 rec( 30, 1, AttributesDef ),
11599 rec( 31, 1, FileExecuteType ),
11600 rec( 32, 4, FileSize, BE ),
11601 rec( 36, 2, CreationDate, BE ),
11602 rec( 38, 2, LastAccessedDate, BE ),
11603 rec( 40, 2, ModifiedDate, BE ),
11604 rec( 42, 2, ModifiedTime, BE ),
11606 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11607 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11608 0x9804, 0x9900, 0x9b03, 0x9c03, 0xfd00,
11611 pkt = NCP(0x4F, "Set File Extended Attributes", 'file')
11612 pkt.Request((11, 265), [
11613 rec( 7, 1, AttributesDef ),
11614 rec( 8, 1, DirHandle ),
11615 rec( 9, 1, AccessRightsMask ),
11616 rec( 10, (1,255), FileName ),
11617 ], info_str=(FileName, "Set File Extended Attributes: %s", ", %s"))
11619 pkt.CompletionCodes([0x0000, 0x8c00, 0x8d00, 0x8e00, 0x9600,
11620 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfd00,
11623 pkt = NCP(0x54, "Open/Create File", 'file')
11624 pkt.Request((12, 266), [
11625 rec( 7, 1, DirHandle ),
11626 rec( 8, 1, AttributesDef ),
11627 rec( 9, 1, AccessRightsMask ),
11628 rec( 10, 1, ActionFlag ),
11629 rec( 11, (1,255), FileName ),
11630 ], info_str=(FileName, "Open/Create File: %s", ", %s"))
11632 rec( 8, 6, FileHandle ),
11633 rec( 14, 2, Reserved2 ),
11634 rec( 16, 14, FileName14 ),
11635 rec( 30, 1, AttributesDef ),
11636 rec( 31, 1, FileExecuteType ),
11637 rec( 32, 4, FileSize, BE ),
11638 rec( 36, 2, CreationDate, BE ),
11639 rec( 38, 2, LastAccessedDate, BE ),
11640 rec( 40, 2, ModifiedDate, BE ),
11641 rec( 42, 2, ModifiedTime, BE ),
11643 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11644 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11645 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
11647 pkt = NCP(0x55, "Get Sparse File Data Block Bit Map", 'file')
11649 rec( 7, 6, FileHandle ),
11650 rec( 13, 4, FileOffset ),
11651 ], info_str=(FileHandle, "Get Sparse File Data Block Bitmap for File - 0x%s", ", %s"))
11653 rec( 8, 4, AllocationBlockSize ),
11654 rec( 12, 4, Reserved4 ),
11655 rec( 16, 512, BitMap ),
11657 pkt.CompletionCodes([0x0000, 0x8800])
11659 pkt = NCP(0x5601, "Close Extended Attribute Handle", 'file', has_length=0 )
11661 rec( 8, 2, Reserved2 ),
11662 rec( 10, 4, EAHandle ),
11665 pkt.CompletionCodes([0x0000, 0xcf00, 0xd301])
11667 pkt = NCP(0x5602, "Write Extended Attribute", 'file', has_length=0 )
11668 pkt.Request((35,97), [
11669 rec( 8, 2, EAFlags ),
11670 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11671 rec( 14, 4, ReservedOrDirectoryNumber ),
11672 rec( 18, 4, TtlWriteDataSize ),
11673 rec( 22, 4, FileOffset ),
11674 rec( 26, 4, EAAccessFlag ),
11675 rec( 30, 2, EAValueLength, var='x' ),
11676 rec( 32, (2,64), EAKey ),
11677 rec( -1, 1, EAValueRep, repeat='x' ),
11678 ], info_str=(EAKey, "Write Extended Attribute: %s", ", %s"))
11680 rec( 8, 4, EAErrorCodes ),
11681 rec( 12, 4, EABytesWritten ),
11682 rec( 16, 4, NewEAHandle ),
11684 pkt.CompletionCodes([0x0000, 0xc800, 0xc900, 0xcb00, 0xce00, 0xcf00, 0xd101,
11685 0xd203, 0xd301, 0xd402])
11687 pkt = NCP(0x5603, "Read Extended Attribute", 'file', has_length=0 )
11688 pkt.Request((28,538), [
11689 rec( 8, 2, EAFlags ),
11690 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11691 rec( 14, 4, ReservedOrDirectoryNumber ),
11692 rec( 18, 4, FileOffset ),
11693 rec( 22, 4, InspectSize ),
11694 rec( 26, (2,512), EAKey ),
11695 ], info_str=(EAKey, "Read Extended Attribute: %s", ", %s"))
11696 pkt.Reply((26,536), [
11697 rec( 8, 4, EAErrorCodes ),
11698 rec( 12, 4, TtlValuesLength ),
11699 rec( 16, 4, NewEAHandle ),
11700 rec( 20, 4, EAAccessFlag ),
11701 rec( 24, (2,512), EAValue ),
11703 pkt.CompletionCodes([0x0000, 0xc900, 0xce00, 0xcf00, 0xd101,
11706 pkt = NCP(0x5604, "Enumerate Extended Attribute", 'file', has_length=0 )
11707 pkt.Request((26,536), [
11708 rec( 8, 2, EAFlags ),
11709 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
11710 rec( 14, 4, ReservedOrDirectoryNumber ),
11711 rec( 18, 4, InspectSize ),
11712 rec( 22, 2, SequenceNumber ),
11713 rec( 24, (2,512), EAKey ),
11714 ], info_str=(EAKey, "Enumerate Extended Attribute: %s", ", %s"))
11716 rec( 8, 4, EAErrorCodes ),
11717 rec( 12, 4, TtlEAs ),
11718 rec( 16, 4, TtlEAsDataSize ),
11719 rec( 20, 4, TtlEAsKeySize ),
11720 rec( 24, 4, NewEAHandle ),
11722 pkt.CompletionCodes([0x0000, 0x8800, 0xc900, 0xce00, 0xcf00, 0xd101,
11725 pkt = NCP(0x5605, "Duplicate Extended Attributes", 'file', has_length=0 )
11727 rec( 8, 2, EAFlags ),
11728 rec( 10, 2, DstEAFlags ),
11729 rec( 12, 4, EAHandleOrNetWareHandleOrVolume ),
11730 rec( 16, 4, ReservedOrDirectoryNumber ),
11731 rec( 20, 4, EAHandleOrNetWareHandleOrVolume ),
11732 rec( 24, 4, ReservedOrDirectoryNumber ),
11735 rec( 8, 4, EADuplicateCount ),
11736 rec( 12, 4, EADataSizeDuplicated ),
11737 rec( 16, 4, EAKeySizeDuplicated ),
11739 pkt.CompletionCodes([0x0000, 0xd101])
11741 pkt = NCP(0x5701, "Open/Create File or Subdirectory", 'file', has_length=0)
11742 pkt.Request((30, 284), [
11743 rec( 8, 1, NameSpace ),
11744 rec( 9, 1, OpenCreateMode ),
11745 rec( 10, 2, SearchAttributesLow ),
11746 rec( 12, 2, ReturnInfoMask ),
11747 rec( 14, 2, ExtendedInfo ),
11748 rec( 16, 4, AttributesDef32 ),
11749 rec( 20, 2, DesiredAccessRights ),
11750 rec( 22, 1, VolumeNumber ),
11751 rec( 23, 4, DirectoryBase ),
11752 rec( 27, 1, HandleFlag ),
11753 rec( 28, 1, PathCount, var="x" ),
11754 rec( 29, (1,255), Path, repeat="x" ),
11755 ], info_str=(Path, "Open or Create: %s", "/%s"))
11756 pkt.Reply( NO_LENGTH_CHECK, [
11757 rec( 8, 4, FileHandle ),
11758 rec( 12, 1, OpenCreateAction ),
11759 rec( 13, 1, Reserved ),
11760 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11761 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11762 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11763 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11764 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11765 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11766 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11767 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11768 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11769 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11770 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11771 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11772 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11773 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11774 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11775 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11776 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11777 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11778 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11779 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
11780 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
11781 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
11782 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
11783 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
11784 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
11785 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
11786 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
11787 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
11788 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
11789 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
11790 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
11791 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
11792 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
11793 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
11794 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
11795 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
11796 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
11797 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
11798 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
11799 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
11800 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
11801 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
11802 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
11803 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
11804 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
11805 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
11806 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
11808 pkt.ReqCondSizeVariable()
11809 pkt.CompletionCodes([0x0000, 0x7f00, 0x8001, 0x8101, 0x8401, 0x8501,
11810 0x8701, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
11811 0x9804, 0x9b03, 0x9c03, 0xa500, 0xa802, 0xbf00, 0xfd00, 0xff16])
11813 pkt = NCP(0x5702, "Initialize Search", 'file', has_length=0)
11814 pkt.Request( (18,272), [
11815 rec( 8, 1, NameSpace ),
11816 rec( 9, 1, Reserved ),
11817 rec( 10, 1, VolumeNumber ),
11818 rec( 11, 4, DirectoryBase ),
11819 rec( 15, 1, HandleFlag ),
11820 rec( 16, 1, PathCount, var="x" ),
11821 rec( 17, (1,255), Path, repeat="x" ),
11822 ], info_str=(Path, "Set Search Pointer to: %s", "/%s"))
11824 rec( 8, 1, VolumeNumber ),
11825 rec( 9, 4, DirectoryNumber ),
11826 rec( 13, 4, DirectoryEntryNumber ),
11828 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11829 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11830 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11832 pkt = NCP(0x5703, "Search for File or Subdirectory", 'file', has_length=0)
11833 pkt.Request((26, 280), [
11834 rec( 8, 1, NameSpace ),
11835 rec( 9, 1, DataStream ),
11836 rec( 10, 2, SearchAttributesLow ),
11837 rec( 12, 2, ReturnInfoMask ),
11838 rec( 14, 2, ExtendedInfo ),
11839 rec( 16, 9, SearchSequence ),
11840 rec( 25, (1,255), SearchPattern ),
11841 ], info_str=(SearchPattern, "Search for: %s", "/%s"))
11842 pkt.Reply( NO_LENGTH_CHECK, [
11843 rec( 8, 9, SearchSequence ),
11844 rec( 17, 1, Reserved ),
11845 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11846 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11847 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11848 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11849 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11850 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11851 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11852 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11853 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11854 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11855 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11856 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11857 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11858 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11859 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11860 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11861 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11862 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11863 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11864 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
11865 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
11866 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
11867 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
11868 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
11869 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
11870 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
11871 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
11872 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
11873 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
11874 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
11875 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
11876 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
11877 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
11878 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
11879 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
11880 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
11881 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
11882 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
11883 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
11884 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
11885 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
11886 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
11887 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
11888 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
11889 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
11890 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
11891 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
11893 pkt.ReqCondSizeVariable()
11894 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11895 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11896 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11898 pkt = NCP(0x5704, "Rename Or Move a File or Subdirectory", 'file', has_length=0)
11899 pkt.Request((28, 536), [
11900 rec( 8, 1, NameSpace ),
11901 rec( 9, 1, RenameFlag ),
11902 rec( 10, 2, SearchAttributesLow ),
11903 rec( 12, 1, VolumeNumber ),
11904 rec( 13, 4, DirectoryBase ),
11905 rec( 17, 1, HandleFlag ),
11906 rec( 18, 1, PathCount, var="x" ),
11907 rec( 19, 1, VolumeNumber ),
11908 rec( 20, 4, DirectoryBase ),
11909 rec( 24, 1, HandleFlag ),
11910 rec( 25, 1, PathCount, var="y" ),
11911 rec( 26, (1, 255), Path, repeat="x" ),
11912 rec( -1, (1,255), Path, repeat="y" ),
11913 ], info_str=(Path, "Rename or Move: %s", "/%s"))
11915 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11916 0x8701, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9200, 0x9600,
11917 0x9804, 0x9a00, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11919 pkt = NCP(0x5705, "Scan File or Subdirectory for Trustees", 'file', has_length=0)
11920 pkt.Request((24, 278), [
11921 rec( 8, 1, NameSpace ),
11922 rec( 9, 1, Reserved ),
11923 rec( 10, 2, SearchAttributesLow ),
11924 rec( 12, 4, SequenceNumber ),
11925 rec( 16, 1, VolumeNumber ),
11926 rec( 17, 4, DirectoryBase ),
11927 rec( 21, 1, HandleFlag ),
11928 rec( 22, 1, PathCount, var="x" ),
11929 rec( 23, (1, 255), Path, repeat="x" ),
11930 ], info_str=(Path, "Scan Trustees for: %s", "/%s"))
11932 rec( 8, 4, SequenceNumber ),
11933 rec( 12, 2, ObjectIDCount, var="x" ),
11934 rec( 14, 6, TrusteeStruct, repeat="x" ),
11936 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11937 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11938 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
11940 pkt = NCP(0x5706, "Obtain File or SubDirectory Information", 'file', has_length=0)
11941 pkt.Request((24,278), [
11942 rec( 10, 1, SrcNameSpace ),
11943 rec( 11, 1, DestNameSpace ),
11944 rec( 12, 2, SearchAttributesLow ),
11945 rec( 14, 2, ReturnInfoMask, LE ),
11946 rec( 16, 2, ExtendedInfo ),
11947 rec( 18, 1, VolumeNumber ),
11948 rec( 19, 4, DirectoryBase ),
11949 rec( 23, 1, HandleFlag ),
11950 rec( 24, 1, PathCount, var="x" ),
11951 rec( 25, (1,255), Path, repeat="x",),
11952 ], info_str=(Path, "Obtain Info for: %s", "/%s"))
11953 pkt.Reply(NO_LENGTH_CHECK, [
11954 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
11955 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
11956 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
11957 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
11958 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
11959 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
11960 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
11961 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
11962 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
11963 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
11964 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
11965 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
11966 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
11967 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
11968 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
11969 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
11970 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
11971 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
11972 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
11973 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
11974 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
11975 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
11976 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
11977 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
11978 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
11979 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
11980 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
11981 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
11982 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
11983 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
11984 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
11985 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
11986 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
11987 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
11988 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
11989 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
11990 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
11991 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
11992 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
11993 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
11994 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
11995 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
11996 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
11997 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
11998 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
11999 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12000 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12002 pkt.ReqCondSizeVariable()
12003 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12004 0x8700, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
12005 0x9804, 0x9b03, 0x9c03, 0xa802, 0xbf00, 0xfd00, 0xff16])
12007 pkt = NCP(0x5707, "Modify File or Subdirectory DOS Information", 'file', has_length=0)
12008 pkt.Request((62,316), [
12009 rec( 8, 1, NameSpace ),
12010 rec( 9, 1, Reserved ),
12011 rec( 10, 2, SearchAttributesLow ),
12012 rec( 12, 2, ModifyDOSInfoMask ),
12013 rec( 14, 2, Reserved2 ),
12014 rec( 16, 2, AttributesDef16 ),
12015 rec( 18, 1, FileMode ),
12016 rec( 19, 1, FileExtendedAttributes ),
12017 rec( 20, 2, CreationDate ),
12018 rec( 22, 2, CreationTime ),
12019 rec( 24, 4, CreatorID, BE ),
12020 rec( 28, 2, ModifiedDate ),
12021 rec( 30, 2, ModifiedTime ),
12022 rec( 32, 4, ModifierID, BE ),
12023 rec( 36, 2, ArchivedDate ),
12024 rec( 38, 2, ArchivedTime ),
12025 rec( 40, 4, ArchiverID, BE ),
12026 rec( 44, 2, LastAccessedDate ),
12027 rec( 46, 2, InheritedRightsMask ),
12028 rec( 48, 2, InheritanceRevokeMask ),
12029 rec( 50, 4, MaxSpace ),
12030 rec( 54, 1, VolumeNumber ),
12031 rec( 55, 4, DirectoryBase ),
12032 rec( 59, 1, HandleFlag ),
12033 rec( 60, 1, PathCount, var="x" ),
12034 rec( 61, (1,255), Path, repeat="x" ),
12035 ], info_str=(Path, "Modify DOS Information for: %s", "/%s"))
12037 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12038 0x8701, 0x8c01, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
12039 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12041 pkt = NCP(0x5708, "Delete a File or Subdirectory", 'file', has_length=0)
12042 pkt.Request((20,274), [
12043 rec( 8, 1, NameSpace ),
12044 rec( 9, 1, Reserved ),
12045 rec( 10, 2, SearchAttributesLow ),
12046 rec( 12, 1, VolumeNumber ),
12047 rec( 13, 4, DirectoryBase ),
12048 rec( 17, 1, HandleFlag ),
12049 rec( 18, 1, PathCount, var="x" ),
12050 rec( 19, (1,255), Path, repeat="x" ),
12051 ], info_str=(Path, "Delete a File or Subdirectory: %s", "/%s"))
12053 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12054 0x8701, 0x8900, 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
12055 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12057 pkt = NCP(0x5709, "Set Short Directory Handle", 'file', has_length=0)
12058 pkt.Request((20,274), [
12059 rec( 8, 1, NameSpace ),
12060 rec( 9, 1, DataStream ),
12061 rec( 10, 1, DestDirHandle ),
12062 rec( 11, 1, Reserved ),
12063 rec( 12, 1, VolumeNumber ),
12064 rec( 13, 4, DirectoryBase ),
12065 rec( 17, 1, HandleFlag ),
12066 rec( 18, 1, PathCount, var="x" ),
12067 rec( 19, (1,255), Path, repeat="x" ),
12068 ], info_str=(Path, "Set Short Directory Handle to: %s", "/%s"))
12070 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12071 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12072 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12074 pkt = NCP(0x570A, "Add Trustee Set to File or Subdirectory", 'file', has_length=0)
12075 pkt.Request((31,285), [
12076 rec( 8, 1, NameSpace ),
12077 rec( 9, 1, Reserved ),
12078 rec( 10, 2, SearchAttributesLow ),
12079 rec( 12, 2, AccessRightsMaskWord ),
12080 rec( 14, 2, ObjectIDCount, var="y" ),
12081 rec( 16, 1, VolumeNumber ),
12082 rec( 17, 4, DirectoryBase ),
12083 rec( 21, 1, HandleFlag ),
12084 rec( 22, 1, PathCount, var="x" ),
12085 rec( 23, (1,255), Path, repeat="x" ),
12086 rec( -1, 7, TrusteeStruct, repeat="y" ),
12087 ], info_str=(Path, "Add Trustee Set to: %s", "/%s"))
12089 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12090 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12091 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfc01, 0xfd00, 0xff16])
12093 pkt = NCP(0x570B, "Delete Trustee Set from File or SubDirectory", 'file', has_length=0)
12094 pkt.Request((27,281), [
12095 rec( 8, 1, NameSpace ),
12096 rec( 9, 1, Reserved ),
12097 rec( 10, 2, ObjectIDCount, var="y" ),
12098 rec( 12, 1, VolumeNumber ),
12099 rec( 13, 4, DirectoryBase ),
12100 rec( 17, 1, HandleFlag ),
12101 rec( 18, 1, PathCount, var="x" ),
12102 rec( 19, (1,255), Path, repeat="x" ),
12103 rec( -1, 7, TrusteeStruct, repeat="y" ),
12104 ], info_str=(Path, "Delete Trustee Set from: %s", "/%s"))
12106 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12107 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12108 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12110 pkt = NCP(0x570C, "Allocate Short Directory Handle", 'file', has_length=0)
12111 pkt.Request((20,274), [
12112 rec( 8, 1, NameSpace ),
12113 rec( 9, 1, Reserved ),
12114 rec( 10, 2, AllocateMode ),
12115 rec( 12, 1, VolumeNumber ),
12116 rec( 13, 4, DirectoryBase ),
12117 rec( 17, 1, HandleFlag ),
12118 rec( 18, 1, PathCount, var="x" ),
12119 rec( 19, (1,255), Path, repeat="x" ),
12120 ], info_str=(Path, "Allocate Short Directory Handle to: %s", "/%s"))
12122 rec( 8, 1, DirHandle ),
12123 rec( 9, 1, VolumeNumber ),
12124 rec( 10, 4, Reserved4 ),
12126 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12127 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12128 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12130 pkt = NCP(0x5710, "Scan Salvageable Files", 'file', has_length=0)
12131 pkt.Request((26,280), [
12132 rec( 8, 1, NameSpace ),
12133 rec( 9, 1, DataStream ),
12134 rec( 10, 2, ReturnInfoMask ),
12135 rec( 12, 2, ExtendedInfo ),
12136 rec( 14, 4, SequenceNumber ),
12137 rec( 18, 1, VolumeNumber ),
12138 rec( 19, 4, DirectoryBase ),
12139 rec( 23, 1, HandleFlag ),
12140 rec( 24, 1, PathCount, var="x" ),
12141 rec( 25, (1,255), Path, repeat="x" ),
12142 ], info_str=(Path, "Scan for Deleted Files in: %s", "/%s"))
12143 pkt.Reply(NO_LENGTH_CHECK, [
12144 rec( 8, 4, SequenceNumber ),
12145 rec( 12, 2, DeletedTime ),
12146 rec( 14, 2, DeletedDate ),
12147 rec( 16, 4, DeletedID, BE ),
12148 rec( 20, 4, VolumeID ),
12149 rec( 24, 4, DirectoryBase ),
12150 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12151 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12152 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12153 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12154 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12155 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12156 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12157 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12158 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12159 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12160 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12161 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12162 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12163 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12164 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12165 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12166 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12167 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12168 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12169 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12170 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12171 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12172 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12173 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12174 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12175 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12176 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12177 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12178 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12179 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12180 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12181 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12182 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12183 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12184 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12186 pkt.ReqCondSizeVariable()
12187 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12188 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12189 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12191 pkt = NCP(0x5711, "Recover Salvageable File", 'file', has_length=0)
12192 pkt.Request((23,277), [
12193 rec( 8, 1, NameSpace ),
12194 rec( 9, 1, Reserved ),
12195 rec( 10, 4, SequenceNumber ),
12196 rec( 14, 4, VolumeID ),
12197 rec( 18, 4, DirectoryBase ),
12198 rec( 22, (1,255), FileName ),
12199 ], info_str=(FileName, "Recover Deleted File: %s", ", %s"))
12201 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12202 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12203 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12205 pkt = NCP(0x5712, "Purge Salvageable Files", 'file', has_length=0)
12207 rec( 8, 1, NameSpace ),
12208 rec( 9, 1, Reserved ),
12209 rec( 10, 4, SequenceNumber ),
12210 rec( 14, 4, VolumeID ),
12211 rec( 18, 4, DirectoryBase ),
12214 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12215 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12216 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12218 pkt = NCP(0x5713, "Get Name Space Information", 'file', has_length=0)
12220 rec( 8, 1, SrcNameSpace ),
12221 rec( 9, 1, DestNameSpace ),
12222 rec( 10, 1, Reserved ),
12223 rec( 11, 1, VolumeNumber ),
12224 rec( 12, 4, DirectoryBase ),
12225 rec( 16, 2, NamesSpaceInfoMask ),
12227 pkt.Reply(NO_LENGTH_CHECK, [
12228 srec( FileNameStruct, req_cond="ncp.ns_info_mask_modify == TRUE" ),
12229 srec( FileAttributesStruct, req_cond="ncp.ns_info_mask_fatt == TRUE" ),
12230 srec( CreationDateStruct, req_cond="ncp.ns_info_mask_cdate == TRUE" ),
12231 srec( CreationTimeStruct, req_cond="ncp.ns_info_mask_ctime == TRUE" ),
12232 srec( OwnerIDStruct, req_cond="ncp.ns_info_mask_owner == TRUE" ),
12233 srec( ArchiveDateStruct, req_cond="ncp.ns_info_mask_adate == TRUE" ),
12234 srec( ArchiveTimeStruct, req_cond="ncp.ns_info_mask_atime == TRUE" ),
12235 srec( ArchiveIdStruct, req_cond="ncp.ns_info_mask_aid == TRUE" ),
12236 srec( UpdateDateStruct, req_cond="ncp.ns_info_mask_udate == TRUE" ),
12237 srec( UpdateTimeStruct, req_cond="ncp.ns_info_mask_utime == TRUE" ),
12238 srec( UpdateIDStruct, req_cond="ncp.ns_info_mask_uid == TRUE" ),
12239 srec( LastAccessStruct, req_cond="ncp.ns_info_mask_acc_date == TRUE" ),
12240 srec( RightsInfoStruct, req_cond="ncp.ns_info_mask_max_acc_mask == TRUE" ),
12242 pkt.ReqCondSizeVariable()
12243 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12244 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12245 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12247 pkt = NCP(0x5714, "Search for File or Subdirectory Set", 'file', has_length=0)
12248 pkt.Request((28, 282), [
12249 rec( 8, 1, NameSpace ),
12250 rec( 9, 1, DataStream ),
12251 rec( 10, 2, SearchAttributesLow ),
12252 rec( 12, 2, ReturnInfoMask ),
12253 rec( 14, 2, ExtendedInfo ),
12254 rec( 16, 2, ReturnInfoCount ),
12255 rec( 18, 9, SearchSequence ),
12256 rec( 27, (1,255), SearchPattern ),
12258 pkt.Reply(NO_LENGTH_CHECK, [
12259 rec( 8, 9, SearchSequence ),
12260 rec( 17, 1, MoreFlag ),
12261 rec( 18, 2, InfoCount ),
12262 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12263 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12264 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12265 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12266 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12267 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12268 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12269 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12270 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12271 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12272 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12273 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12274 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12275 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12276 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12277 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12278 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12279 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12280 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12281 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12282 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12283 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12284 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12285 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12286 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12287 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12288 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12289 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12290 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12291 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12292 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12293 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12294 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12295 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12296 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12297 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
12298 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
12299 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12300 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12301 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12302 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12303 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12304 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12305 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12306 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12307 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12308 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12310 pkt.ReqCondSizeVariable()
12311 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12312 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12313 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12315 pkt = NCP(0x5715, "Get Path String from Short Directory Handle", 'file', has_length=0)
12317 rec( 8, 1, NameSpace ),
12318 rec( 9, 1, DirHandle ),
12320 pkt.Reply((9,263), [
12321 rec( 8, (1,255), Path ),
12323 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12324 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12325 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
12327 pkt = NCP(0x5716, "Generate Directory Base and Volume Number", 'file', has_length=0)
12328 pkt.Request((20,274), [
12329 rec( 8, 1, SrcNameSpace ),
12330 rec( 9, 1, DestNameSpace ),
12331 rec( 10, 2, dstNSIndicator ),
12332 rec( 12, 1, VolumeNumber ),
12333 rec( 13, 4, DirectoryBase ),
12334 rec( 17, 1, HandleFlag ),
12335 rec( 18, 1, PathCount, var="x" ),
12336 rec( 19, (1,255), Path, repeat="x" ),
12337 ], info_str=(Path, "Get Volume and Directory Base from: %s", "/%s"))
12339 rec( 8, 4, DirectoryBase ),
12340 rec( 12, 4, DOSDirectoryBase ),
12341 rec( 16, 1, VolumeNumber ),
12343 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12344 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12345 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12347 pkt = NCP(0x5717, "Query Name Space Information Format", 'file', has_length=0)
12349 rec( 8, 1, NameSpace ),
12350 rec( 9, 1, VolumeNumber ),
12353 rec( 8, 4, FixedBitMask ),
12354 rec( 12, 4, VariableBitMask ),
12355 rec( 16, 4, HugeBitMask ),
12356 rec( 20, 2, FixedBitsDefined ),
12357 rec( 22, 2, VariableBitsDefined ),
12358 rec( 24, 2, HugeBitsDefined ),
12359 rec( 26, 32, FieldsLenTable ),
12361 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12362 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12363 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12365 pkt = NCP(0x5718, "Get Name Spaces Loaded List from Volume Number", 'file', has_length=0)
12367 rec( 8, 1, Reserved ),
12368 rec( 9, 1, VolumeNumber ),
12371 rec( 8, 2, NumberOfNSLoaded, var="x" ),
12372 rec( 10, 1, NameSpace, repeat="x" ),
12374 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12375 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12376 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12378 pkt = NCP(0x5719, "Set Name Space Information", 'file', has_length=0)
12380 rec( 8, 1, SrcNameSpace ),
12381 rec( 9, 1, DestNameSpace ),
12382 rec( 10, 1, VolumeNumber ),
12383 rec( 11, 4, DirectoryBase ),
12384 rec( 15, 2, NamesSpaceInfoMask ),
12385 rec( 17, 2, Reserved2 ),
12386 rec( 19, 512, NSSpecificInfo ),
12389 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12390 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12391 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12394 pkt = NCP(0x571A, "Get Huge Name Space Information", 'file', has_length=0)
12396 rec( 8, 1, NameSpace ),
12397 rec( 9, 1, VolumeNumber ),
12398 rec( 10, 4, DirectoryBase ),
12399 rec( 14, 4, HugeBitMask ),
12400 rec( 18, 16, HugeStateInfo ),
12402 pkt.Reply((25,279), [
12403 rec( 8, 16, NextHugeStateInfo ),
12404 rec( 24, (1,255), HugeData ),
12406 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12407 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12408 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12411 pkt = NCP(0x571B, "Set Huge Name Space Information", 'file', has_length=0)
12412 pkt.Request((35,289), [
12413 rec( 8, 1, NameSpace ),
12414 rec( 9, 1, VolumeNumber ),
12415 rec( 10, 4, DirectoryBase ),
12416 rec( 14, 4, HugeBitMask ),
12417 rec( 18, 16, HugeStateInfo ),
12418 rec( 34, (1,255), HugeData ),
12421 rec( 8, 16, NextHugeStateInfo ),
12422 rec( 24, 4, HugeDataUsed ),
12424 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12425 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12426 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12429 pkt = NCP(0x571C, "Get Full Path String", 'file', has_length=0)
12430 pkt.Request((28,282), [
12431 rec( 8, 1, SrcNameSpace ),
12432 rec( 9, 1, DestNameSpace ),
12433 rec( 10, 2, PathCookieFlags ),
12434 rec( 12, 4, Cookie1 ),
12435 rec( 16, 4, Cookie2 ),
12436 rec( 20, 1, VolumeNumber ),
12437 rec( 21, 4, DirectoryBase ),
12438 rec( 25, 1, HandleFlag ),
12439 rec( 26, 1, PathCount, var="x" ),
12440 rec( 27, (1,255), Path, repeat="x" ),
12441 ], info_str=(Path, "Get Full Path from: %s", "/%s"))
12442 pkt.Reply((23,277), [
12443 rec( 8, 2, PathCookieFlags ),
12444 rec( 10, 4, Cookie1 ),
12445 rec( 14, 4, Cookie2 ),
12446 rec( 18, 2, PathComponentSize ),
12447 rec( 20, 2, PathComponentCount, var='x' ),
12448 rec( 22, (1,255), Path, repeat='x' ),
12450 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12451 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12452 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12455 pkt = NCP(0x571D, "Get Effective Directory Rights", 'file', has_length=0)
12456 pkt.Request((24, 278), [
12457 rec( 8, 1, NameSpace ),
12458 rec( 9, 1, DestNameSpace ),
12459 rec( 10, 2, SearchAttributesLow ),
12460 rec( 12, 2, ReturnInfoMask ),
12461 rec( 14, 2, ExtendedInfo ),
12462 rec( 16, 1, VolumeNumber ),
12463 rec( 17, 4, DirectoryBase ),
12464 rec( 21, 1, HandleFlag ),
12465 rec( 22, 1, PathCount, var="x" ),
12466 rec( 23, (1,255), Path, repeat="x" ),
12467 ], info_str=(Path, "Get Effective Rights for: %s", "/%s"))
12468 pkt.Reply(NO_LENGTH_CHECK, [
12469 rec( 8, 2, EffectiveRights ),
12470 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12471 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12472 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12473 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12474 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12475 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12476 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12477 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12478 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12479 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12480 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12481 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12482 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12483 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12484 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12485 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12486 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12487 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12488 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12489 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12490 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12491 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12492 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12493 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12494 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12495 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12496 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12497 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12498 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12499 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12500 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12501 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12502 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12503 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12504 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12506 pkt.ReqCondSizeVariable()
12507 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12508 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12509 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12511 pkt = NCP(0x571E, "Open/Create File or Subdirectory", 'file', has_length=0)
12512 pkt.Request((34, 288), [
12513 rec( 8, 1, NameSpace ),
12514 rec( 9, 1, DataStream ),
12515 rec( 10, 1, OpenCreateMode ),
12516 rec( 11, 1, Reserved ),
12517 rec( 12, 2, SearchAttributesLow ),
12518 rec( 14, 2, Reserved2 ),
12519 rec( 16, 2, ReturnInfoMask ),
12520 rec( 18, 2, ExtendedInfo ),
12521 rec( 20, 4, AttributesDef32 ),
12522 rec( 24, 2, DesiredAccessRights ),
12523 rec( 26, 1, VolumeNumber ),
12524 rec( 27, 4, DirectoryBase ),
12525 rec( 31, 1, HandleFlag ),
12526 rec( 32, 1, PathCount, var="x" ),
12527 rec( 33, (1,255), Path, repeat="x" ),
12528 ], info_str=(Path, "Open or Create File: %s", "/%s"))
12529 pkt.Reply(NO_LENGTH_CHECK, [
12530 rec( 8, 4, FileHandle, BE ),
12531 rec( 12, 1, OpenCreateAction ),
12532 rec( 13, 1, Reserved ),
12533 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12534 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12535 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12536 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12537 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12538 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12539 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12540 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12541 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12542 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12543 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12544 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12545 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12546 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12547 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12548 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12549 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12550 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12551 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12552 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12553 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12554 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12555 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12556 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12557 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12558 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12559 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12560 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12561 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12562 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12563 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12564 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12565 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12566 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12567 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12569 pkt.ReqCondSizeVariable()
12570 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12571 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12572 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12574 pkt = NCP(0x571F, "Get File Information", 'file', has_length=0)
12576 rec( 8, 6, FileHandle ),
12577 rec( 14, 1, HandleInfoLevel ),
12578 rec( 15, 1, NameSpace ),
12580 pkt.Reply(NO_LENGTH_CHECK, [
12581 rec( 8, 4, VolumeNumberLong ),
12582 rec( 12, 4, DirectoryBase ),
12583 srec(HandleInfoLevel0, req_cond="ncp.handle_info_level==0x00" ),
12584 srec(HandleInfoLevel1, req_cond="ncp.handle_info_level==0x01" ),
12585 srec(HandleInfoLevel2, req_cond="ncp.handle_info_level==0x02" ),
12586 srec(HandleInfoLevel3, req_cond="ncp.handle_info_level==0x03" ),
12587 srec(HandleInfoLevel4, req_cond="ncp.handle_info_level==0x04" ),
12588 srec(HandleInfoLevel5, req_cond="ncp.handle_info_level==0x05" ),
12590 pkt.ReqCondSizeVariable()
12591 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12592 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12593 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12595 pkt = NCP(0x5720, "Open/Create File or Subdirectory with Callback", 'file', has_length=0)
12596 pkt.Request((30, 284), [
12597 rec( 8, 1, NameSpace ),
12598 rec( 9, 1, OpenCreateMode ),
12599 rec( 10, 2, SearchAttributesLow ),
12600 rec( 12, 2, ReturnInfoMask ),
12601 rec( 14, 2, ExtendedInfo ),
12602 rec( 16, 4, AttributesDef32 ),
12603 rec( 20, 2, DesiredAccessRights ),
12604 rec( 22, 1, VolumeNumber ),
12605 rec( 23, 4, DirectoryBase ),
12606 rec( 27, 1, HandleFlag ),
12607 rec( 28, 1, PathCount, var="x" ),
12608 rec( 29, (1,255), Path, repeat="x" ),
12609 ], info_str=(Path, "Open or Create with Op-Lock: %s", "/%s"))
12610 pkt.Reply( NO_LENGTH_CHECK, [
12611 rec( 8, 4, FileHandle, BE ),
12612 rec( 12, 1, OpenCreateAction ),
12613 rec( 13, 1, OCRetFlags ),
12614 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12615 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12616 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12617 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12618 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12619 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12620 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12621 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12622 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12623 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12624 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12625 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12626 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12627 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12628 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12629 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12630 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12631 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12632 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12633 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12634 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12635 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12636 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12637 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12638 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12639 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12640 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12641 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12642 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12643 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12644 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12645 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12646 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12647 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12648 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12649 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
12650 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
12651 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12652 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12653 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12654 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12655 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12656 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12657 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12658 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12659 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12660 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12662 pkt.ReqCondSizeVariable()
12663 pkt.CompletionCodes([0x0000, 0x7f00, 0x8000, 0x8101, 0x8401, 0x8501,
12664 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12665 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12667 pkt = NCP(0x5721, "Open/Create File or Subdirectory II with Callback", 'file', has_length=0)
12668 pkt.Request((34, 288), [
12669 rec( 8, 1, NameSpace ),
12670 rec( 9, 1, DataStream ),
12671 rec( 10, 1, OpenCreateMode ),
12672 rec( 11, 1, Reserved ),
12673 rec( 12, 2, SearchAttributesLow ),
12674 rec( 14, 2, Reserved2 ),
12675 rec( 16, 2, ReturnInfoMask ),
12676 rec( 18, 2, ExtendedInfo ),
12677 rec( 20, 4, AttributesDef32 ),
12678 rec( 24, 2, DesiredAccessRights ),
12679 rec( 26, 1, VolumeNumber ),
12680 rec( 27, 4, DirectoryBase ),
12681 rec( 31, 1, HandleFlag ),
12682 rec( 32, 1, PathCount, var="x" ),
12683 rec( 33, (1,255), Path, repeat="x" ),
12684 ], info_str=(FilePath, "Open or Create II with Op-Lock: %s", "/%s"))
12685 pkt.Reply((91,345), [
12686 rec( 8, 4, FileHandle ),
12687 rec( 12, 1, OpenCreateAction ),
12688 rec( 13, 1, OCRetFlags ),
12689 rec( 14, 4, DataStreamSpaceAlloc ),
12690 rec( 18, 6, AttributesStruct ),
12691 rec( 24, 4, DataStreamSize ),
12692 rec( 28, 4, TtlDSDskSpaceAlloc ),
12693 rec( 32, 2, NumberOfDataStreams ),
12694 rec( 34, 2, CreationTime ),
12695 rec( 36, 2, CreationDate ),
12696 rec( 38, 4, CreatorID, BE ),
12697 rec( 42, 2, ModifiedTime ),
12698 rec( 44, 2, ModifiedDate ),
12699 rec( 46, 4, ModifierID, BE ),
12700 rec( 50, 2, LastAccessedDate ),
12701 rec( 52, 2, ArchivedTime ),
12702 rec( 54, 2, ArchivedDate ),
12703 rec( 56, 4, ArchiverID, BE ),
12704 rec( 60, 2, InheritedRightsMask ),
12705 rec( 62, 4, DirectoryEntryNumber ),
12706 rec( 66, 4, DOSDirectoryEntryNumber ),
12707 rec( 70, 4, VolumeNumberLong ),
12708 rec( 74, 4, EADataSize ),
12709 rec( 78, 4, EACount ),
12710 rec( 82, 4, EAKeySize ),
12711 rec( 86, 1, CreatorNameSpaceNumber ),
12712 rec( 87, 3, Reserved3 ),
12713 rec( 90, (1,255), FileName ),
12715 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12716 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12717 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12719 pkt = NCP(0x5722, "Open CallBack Control (Op-Lock)", 'file', has_length=0)
12721 rec( 10, 4, CCFileHandle, BE ),
12722 rec( 14, 1, CCFunction ),
12725 pkt.CompletionCodes([0x0000, 0x8800, 0xff16])
12727 pkt = NCP(0x5723, "Modify DOS Attributes on a File or Subdirectory", 'file', has_length=0)
12728 pkt.Request((28, 282), [
12729 rec( 8, 1, NameSpace ),
12730 rec( 9, 1, Flags ),
12731 rec( 10, 2, SearchAttributesLow ),
12732 rec( 12, 2, ReturnInfoMask ),
12733 rec( 14, 2, ExtendedInfo ),
12734 rec( 16, 4, AttributesDef32 ),
12735 rec( 20, 1, VolumeNumber ),
12736 rec( 21, 4, DirectoryBase ),
12737 rec( 25, 1, HandleFlag ),
12738 rec( 26, 1, PathCount, var="x" ),
12739 rec( 27, (1,255), Path, repeat="x" ),
12740 ], info_str=(Path, "Modify DOS Attributes for: %s", "/%s"))
12742 rec( 8, 4, ItemsChecked ),
12743 rec( 12, 4, ItemsChanged ),
12744 rec( 16, 4, AttributeValidFlag ),
12745 rec( 20, 4, AttributesDef32 ),
12747 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12748 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12749 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12751 pkt = NCP(0x5724, "Log File", 'file', has_length=0)
12752 pkt.Request((28, 282), [
12753 rec( 8, 1, NameSpace ),
12754 rec( 9, 1, Reserved ),
12755 rec( 10, 2, Reserved2 ),
12756 rec( 12, 1, LogFileFlagLow ),
12757 rec( 13, 1, LogFileFlagHigh ),
12758 rec( 14, 2, Reserved2 ),
12759 rec( 16, 4, WaitTime ),
12760 rec( 20, 1, VolumeNumber ),
12761 rec( 21, 4, DirectoryBase ),
12762 rec( 25, 1, HandleFlag ),
12763 rec( 26, 1, PathCount, var="x" ),
12764 rec( 27, (1,255), Path, repeat="x" ),
12765 ], info_str=(Path, "Lock File: %s", "/%s"))
12767 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12768 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12769 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12771 pkt = NCP(0x5725, "Release File", 'file', has_length=0)
12772 pkt.Request((20, 274), [
12773 rec( 8, 1, NameSpace ),
12774 rec( 9, 1, Reserved ),
12775 rec( 10, 2, Reserved2 ),
12776 rec( 12, 1, VolumeNumber ),
12777 rec( 13, 4, DirectoryBase ),
12778 rec( 17, 1, HandleFlag ),
12779 rec( 18, 1, PathCount, var="x" ),
12780 rec( 19, (1,255), Path, repeat="x" ),
12781 ], info_str=(Path, "Release Lock on: %s", "/%s"))
12783 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12784 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12785 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12787 pkt = NCP(0x5726, "Clear File", 'file', has_length=0)
12788 pkt.Request((20, 274), [
12789 rec( 8, 1, NameSpace ),
12790 rec( 9, 1, Reserved ),
12791 rec( 10, 2, Reserved2 ),
12792 rec( 12, 1, VolumeNumber ),
12793 rec( 13, 4, DirectoryBase ),
12794 rec( 17, 1, HandleFlag ),
12795 rec( 18, 1, PathCount, var="x" ),
12796 rec( 19, (1,255), Path, repeat="x" ),
12797 ], info_str=(Path, "Clear File: %s", "/%s"))
12799 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12800 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12801 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12803 pkt = NCP(0x5727, "Get Directory Disk Space Restriction", 'file', has_length=0)
12804 pkt.Request((19, 273), [
12805 rec( 8, 1, NameSpace ),
12806 rec( 9, 2, Reserved2 ),
12807 rec( 11, 1, VolumeNumber ),
12808 rec( 12, 4, DirectoryBase ),
12809 rec( 16, 1, HandleFlag ),
12810 rec( 17, 1, PathCount, var="x" ),
12811 rec( 18, (1,255), Path, repeat="x" ),
12812 ], info_str=(Path, "Get Disk Space Restriction for: %s", "/%s"))
12814 rec( 8, 1, NumberOfEntries, var="x" ),
12815 rec( 9, 9, SpaceStruct, repeat="x" ),
12817 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12818 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12819 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12822 pkt = NCP(0x5728, "Search for File or Subdirectory Set (Extended Errors)", 'file', has_length=0)
12823 pkt.Request((28, 282), [
12824 rec( 8, 1, NameSpace ),
12825 rec( 9, 1, DataStream ),
12826 rec( 10, 2, SearchAttributesLow ),
12827 rec( 12, 2, ReturnInfoMask ),
12828 rec( 14, 2, ExtendedInfo ),
12829 rec( 16, 2, ReturnInfoCount ),
12830 rec( 18, 9, SearchSequence ),
12831 rec( 27, (1,255), SearchPattern ),
12832 ], info_str=(SearchPattern, "Search for: %s", ", %s"))
12833 pkt.Reply(NO_LENGTH_CHECK, [
12834 rec( 8, 9, SearchSequence ),
12835 rec( 17, 1, MoreFlag ),
12836 rec( 18, 2, InfoCount ),
12837 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12838 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12839 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12840 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12841 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12842 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12843 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12844 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12845 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12846 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12847 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12848 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12849 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12850 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12851 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12852 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12853 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12854 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12855 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12856 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12857 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12858 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12859 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12860 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12861 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12862 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12863 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12864 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12865 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12866 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12867 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12868 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12869 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12870 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12871 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12873 pkt.ReqCondSizeVariable()
12874 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12875 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12876 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12878 pkt = NCP(0x5729, "Scan Salvageable Files", 'file', has_length=0)
12879 pkt.Request((24,278), [
12880 rec( 8, 1, NameSpace ),
12881 rec( 9, 1, Reserved ),
12882 rec( 10, 2, CtrlFlags, LE ),
12883 rec( 12, 4, SequenceNumber ),
12884 rec( 16, 1, VolumeNumber ),
12885 rec( 17, 4, DirectoryBase ),
12886 rec( 21, 1, HandleFlag ),
12887 rec( 22, 1, PathCount, var="x" ),
12888 rec( 23, (1,255), Path, repeat="x" ),
12889 ], info_str=(Path, "Scan Deleted Files: %s", "/%s"))
12890 pkt.Reply(NO_LENGTH_CHECK, [
12891 rec( 8, 4, SequenceNumber ),
12892 rec( 12, 4, DirectoryBase ),
12893 rec( 16, 4, ScanItems, var="x" ),
12894 srec(ScanInfoFileName, req_cond="ncp.ctrl_flags==0x0001", repeat="x" ),
12895 srec(ScanInfoFileNoName, req_cond="ncp.ctrl_flags==0x0000", repeat="x" ),
12897 pkt.ReqCondSizeVariable()
12898 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12899 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12900 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12902 pkt = NCP(0x572A, "Purge Salvageable File List", 'file', has_length=0)
12904 rec( 8, 1, NameSpace ),
12905 rec( 9, 1, Reserved ),
12906 rec( 10, 2, PurgeFlags ),
12907 rec( 12, 4, VolumeNumberLong ),
12908 rec( 16, 4, DirectoryBase ),
12909 rec( 20, 4, PurgeCount, var="x" ),
12910 rec( 24, 4, PurgeList, repeat="x" ),
12913 rec( 8, 4, PurgeCount, var="x" ),
12914 rec( 12, 4, PurgeCcode, repeat="x" ),
12916 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12917 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12918 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12920 pkt = NCP(0x572B, "Revoke File Handle Rights", 'file', has_length=0)
12922 rec( 8, 3, Reserved3 ),
12923 rec( 11, 1, RevQueryFlag ),
12924 rec( 12, 4, FileHandle ),
12925 rec( 16, 1, RemoveOpenRights ),
12928 rec( 8, 4, FileHandle ),
12929 rec( 12, 1, OpenRights ),
12931 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12932 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12933 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12935 pkt = NCP(0x572C, "Update File Handle Rights", 'file', has_length=0)
12937 rec( 8, 2, Reserved2 ),
12938 rec( 10, 1, VolumeNumber ),
12939 rec( 11, 1, NameSpace ),
12940 rec( 12, 4, DirectoryNumber ),
12941 rec( 16, 2, AccessRightsMaskWord ),
12942 rec( 18, 2, NewAccessRights ),
12943 rec( 20, 4, FileHandle, BE ),
12946 rec( 8, 4, FileHandle, BE ),
12947 rec( 12, 4, EffectiveRights ),
12949 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12950 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12951 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12953 pkt = NCP(0x5742, "Novell Advanced Auditing Service (NAAS)", 'auditing', has_length=0)
12956 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12957 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12958 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12960 pkt = NCP(0x5801, "Query Volume Audit Status", "auditing", has_length=0)
12962 rec( 8, 4, ConnectionNumber ),
12965 rec(8, 32, NWAuditStatus ),
12967 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12968 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12969 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12971 pkt = NCP(0x5802, "Add User Audit Property", "auditing", has_length=0)
12973 rec(8, 4, AuditIDType ),
12974 rec(12, 4, AuditID ),
12975 rec(16, 4, AuditHandle ),
12976 rec(20, 4, ObjectID ),
12977 rec(24, 1, AuditFlag ),
12980 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12981 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12982 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12984 pkt = NCP(0x5803, "Add Auditor Access", "auditing", has_length=0)
12987 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12988 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12989 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12991 pkt = NCP(0x5804, "Change Auditor Volume Password", "auditing", has_length=0)
12994 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
12995 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
12996 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
12998 pkt = NCP(0x5805, "Check Auditor Access", "auditing", has_length=0)
13001 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13002 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13003 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13005 pkt = NCP(0x5806, "Delete User Audit Property", "auditing", has_length=0)
13008 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13009 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13010 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13012 pkt = NCP(0x5807, "Disable Auditing On A Volume", "auditing", has_length=0)
13015 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13016 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13017 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13019 pkt = NCP(0x5808, "Enable Auditing On A Volume", "auditing", has_length=0)
13022 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13023 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13024 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13026 pkt = NCP(0x5809, "Query User Being Audited", "auditing", has_length=0)
13029 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13030 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13031 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13033 pkt = NCP(0x580A, "Read Audit Bit Map", "auditing", has_length=0)
13036 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13037 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13038 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13040 pkt = NCP(0x580B, "Read Audit File Configuration Header", "auditing", has_length=0)
13043 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13044 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13045 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13047 pkt = NCP(0x580D, "Remove Auditor Access", "auditing", has_length=0)
13050 pkt.CompletionCodes([0x0000, 0x300, 0x8000, 0x8101, 0x8401, 0x8501,
13051 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13052 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13054 pkt = NCP(0x580E, "Reset Audit File", "auditing", has_length=0)
13057 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13058 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13059 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13062 pkt = NCP(0x580F, "Auditing NCP", "auditing", has_length=0)
13065 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13066 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13067 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13069 pkt = NCP(0x5810, "Write Audit Bit Map", "auditing", has_length=0)
13072 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13073 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13074 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13076 pkt = NCP(0x5811, "Write Audit File Configuration Header", "auditing", has_length=0)
13079 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13080 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13081 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13083 pkt = NCP(0x5812, "Change Auditor Volume Password2", "auditing", has_length=0)
13086 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13087 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13088 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13090 pkt = NCP(0x5813, "Return Audit Flags", "auditing", has_length=0)
13093 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13094 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13095 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13097 pkt = NCP(0x5814, "Close Old Audit File", "auditing", has_length=0)
13100 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13101 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13102 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13104 pkt = NCP(0x5816, "Check Level Two Access", "auditing", has_length=0)
13107 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13108 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13109 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13111 pkt = NCP(0x5817, "Return Old Audit File List", "auditing", has_length=0)
13114 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13115 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13116 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13118 pkt = NCP(0x5818, "Init Audit File Reads", "auditing", has_length=0)
13121 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13122 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13123 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13125 pkt = NCP(0x5819, "Read Auditing File", "auditing", has_length=0)
13128 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13129 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13130 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13132 pkt = NCP(0x581A, "Delete Old Audit File", "auditing", has_length=0)
13135 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13136 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13137 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13139 pkt = NCP(0x581E, "Restart Volume auditing", "auditing", has_length=0)
13142 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13143 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13144 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13146 pkt = NCP(0x581F, "Set Volume Password", "auditing", has_length=0)
13149 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13150 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13151 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16])
13153 pkt = NCP(0x5A01, "Parse Tree", 'file')
13155 rec( 10, 4, InfoMask ),
13156 rec( 14, 4, Reserved4 ),
13157 rec( 18, 4, Reserved4 ),
13158 rec( 22, 4, limbCount ),
13161 rec( 8, 4, limbCount ),
13162 rec( 12, 4, ItemsCount ),
13163 rec( 16, 4, nextLimbScanNum ),
13164 rec( 20, 4, CompletionCode ),
13165 rec( 24, 1, FolderFlag ),
13166 rec( 25, 3, Reserved ),
13167 rec( 28, 4, DirectoryBase ),
13169 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13170 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13171 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13173 pkt = NCP(0x5A0A, "Get Reference Count from Dir Entry Number", 'file')
13175 rec( 10, 4, VolumeNumberLong ),
13176 rec( 14, 4, DirectoryBase ),
13177 rec( 18, 1, NameSpace ),
13180 rec( 8, 4, ReferenceCount ),
13182 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13183 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13184 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13186 pkt = NCP(0x5A0B, "Get Reference Count from Dir Handle", 'file')
13188 rec( 10, 4, DirHandle ),
13191 rec( 8, 4, ReferenceCount ),
13193 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13194 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13195 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13197 pkt = NCP(0x5A0C, "Set Compressed File Size", 'file')
13199 rec( 10, 6, FileHandle ),
13200 rec( 16, 4, SuggestedFileSize ),
13203 rec( 8, 4, OldFileSize ),
13204 rec( 12, 4, NewFileSize ),
13206 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13207 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13208 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
13209 # 2222/5A80, 90/128
13210 pkt = NCP(0x5A80, "Move File Data To Data Migration", 'file')
13212 rec( 10, 4, VolumeNumberLong ),
13213 rec( 14, 4, DirectoryEntryNumber ),
13214 rec( 18, 1, NameSpace ),
13215 rec( 19, 3, Reserved ),
13216 rec( 22, 4, SupportModuleID ),
13217 rec( 26, 1, DMFlags ),
13220 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13221 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13222 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13223 # 2222/5A81, 90/129
13224 pkt = NCP(0x5A81, "Data Migration File Information", 'file')
13226 rec( 10, 4, VolumeNumberLong ),
13227 rec( 14, 4, DirectoryEntryNumber ),
13228 rec( 18, 1, NameSpace ),
13231 rec( 8, 4, SupportModuleID ),
13232 rec( 12, 4, RestoreTime ),
13233 rec( 16, 4, DMInfoEntries, var="x" ),
13234 rec( 20, 4, DataSize, repeat="x" ),
13236 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13237 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13238 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13239 # 2222/5A82, 90/130
13240 pkt = NCP(0x5A82, "Volume Data Migration Status", 'file')
13242 rec( 10, 4, VolumeNumberLong ),
13243 rec( 14, 4, SupportModuleID ),
13246 rec( 8, 4, NumOfFilesMigrated ),
13247 rec( 12, 4, TtlMigratedSize ),
13248 rec( 16, 4, SpaceUsed ),
13249 rec( 20, 4, LimboUsed ),
13250 rec( 24, 4, SpaceMigrated ),
13251 rec( 28, 4, FileLimbo ),
13253 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13254 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13255 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13256 # 2222/5A83, 90/131
13257 pkt = NCP(0x5A83, "Migrator Status Info", 'file')
13260 rec( 8, 1, DMPresentFlag ),
13261 rec( 9, 3, Reserved3 ),
13262 rec( 12, 4, DMmajorVersion ),
13263 rec( 16, 4, DMminorVersion ),
13265 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13266 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13267 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13268 # 2222/5A84, 90/132
13269 pkt = NCP(0x5A84, "Data Migration Support Module Information", 'file')
13271 rec( 10, 1, DMInfoLevel ),
13272 rec( 11, 3, Reserved3),
13273 rec( 14, 4, SupportModuleID ),
13275 pkt.Reply(NO_LENGTH_CHECK, [
13276 srec( DMInfoLevel0, req_cond="ncp.dm_info_level == 0x00" ),
13277 srec( DMInfoLevel1, req_cond="ncp.dm_info_level == 0x01" ),
13278 srec( DMInfoLevel2, req_cond="ncp.dm_info_level == 0x02" ),
13280 pkt.ReqCondSizeVariable()
13281 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13282 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13283 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13284 # 2222/5A85, 90/133
13285 pkt = NCP(0x5A85, "Move File Data From Data Migration", 'file')
13287 rec( 10, 4, VolumeNumberLong ),
13288 rec( 14, 4, DirectoryEntryNumber ),
13289 rec( 18, 1, NameSpace ),
13292 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13293 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13294 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13295 # 2222/5A86, 90/134
13296 pkt = NCP(0x5A86, "Get/Set Default Read-Write Support Module ID", 'file')
13298 rec( 10, 1, GetSetFlag ),
13299 rec( 11, 3, Reserved3 ),
13300 rec( 14, 4, SupportModuleID ),
13303 rec( 8, 4, SupportModuleID ),
13305 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13306 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13307 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13308 # 2222/5A87, 90/135
13309 pkt = NCP(0x5A87, "Data Migration Support Module Capacity Request", 'file')
13311 rec( 10, 4, SupportModuleID ),
13312 rec( 14, 4, VolumeNumberLong ),
13313 rec( 18, 4, DirectoryBase ),
13316 rec( 8, 4, BlockSizeInSectors ),
13317 rec( 12, 4, TotalBlocks ),
13318 rec( 16, 4, UsedBlocks ),
13320 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13321 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13322 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13323 # 2222/5A88, 90/136
13324 pkt = NCP(0x5A88, "RTDM Request", 'file')
13326 rec( 10, 4, Verb ),
13327 rec( 14, 1, VerbData ),
13330 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13331 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13332 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13334 pkt = NCP(0x5B, "NMAS Graded Authentication", 'nmas')
13335 #Need info on this packet structure
13338 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13339 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13340 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13342 pkt = NCP(0x5C01, "SecretStore Services (Ping Server)", 'sss', 0)
13343 #Need info on this packet structure and SecretStore Verbs
13346 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13347 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13348 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13350 pkt = NCP(0x5C02, "SecretStore Services", 'sss', 0)
13351 #Need info on this packet structure and SecretStore Verbs
13354 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13355 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13356 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13358 pkt = NCP(0x5C03, "SecretStore Services", 'sss', 0)
13359 #Need info on this packet structure and SecretStore Verbs
13362 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13363 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13364 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13366 pkt = NCP(0x5C04, "SecretStore Services", 'sss', 0)
13367 #Need info on this packet structure and SecretStore Verbs
13370 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13371 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13372 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13374 pkt = NCP(0x5C05, "SecretStore Services", 'sss', 0)
13375 #Need info on this packet structure and SecretStore Verbs
13378 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13379 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13380 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13382 pkt = NCP(0x5C06, "SecretStore Services", 'sss', 0)
13383 #Need info on this packet structure and SecretStore Verbs
13386 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13387 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13388 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13390 pkt = NCP(0x5C07, "SecretStore Services", 'sss', 0)
13391 #Need info on this packet structure and SecretStore Verbs
13394 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13395 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13396 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13398 pkt = NCP(0x5C08, "SecretStore Services", 'sss', 0)
13399 #Need info on this packet structure and SecretStore Verbs
13402 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13403 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13404 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13406 pkt = NCP(0x5C09, "SecretStore Services", 'sss', 0)
13407 #Need info on this packet structure and SecretStore Verbs
13410 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13411 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13412 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13414 pkt = NCP(0x5C0a, "SecretStore Services", 'sss', 0)
13415 #Need info on this packet structure and SecretStore Verbs
13418 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
13419 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
13420 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
13422 pkt = NCP(0x5E01, "NMAS Communications Packet", 'nmas', 0)
13425 pkt.CompletionCodes([0x0000, 0xfb09])
13427 pkt = NCP(0x5E02, "NMAS Communications Packet", 'nmas', 0)
13430 pkt.CompletionCodes([0x0000, 0xfb09])
13432 pkt = NCP(0x5E03, "NMAS Communications Packet", 'nmas', 0)
13435 pkt.CompletionCodes([0x0000, 0xfb09])
13437 pkt = NCP(0x61, "Get Big Packet NCP Max Packet Size", 'comm')
13439 rec( 7, 2, ProposedMaxSize, BE ),
13440 rec( 9, 1, SecurityFlag ),
13441 ],info_str=(ProposedMaxSize, "Get Big Max Packet Size - %d", ", %d"))
13443 rec( 8, 2, AcceptedMaxSize, BE ),
13444 rec( 10, 2, EchoSocket, BE ),
13445 rec( 12, 1, SecurityFlag ),
13447 pkt.CompletionCodes([0x0000])
13449 pkt = NCP(0x63, "Undocumented Packet Burst", 'comm')
13452 pkt.CompletionCodes([0x0000])
13454 pkt = NCP(0x64, "Undocumented Packet Burst", 'comm')
13457 pkt.CompletionCodes([0x0000])
13459 pkt = NCP(0x65, "Packet Burst Connection Request", 'comm')
13461 rec( 7, 4, LocalConnectionID, BE ),
13462 rec( 11, 4, LocalMaxPacketSize, BE ),
13463 rec( 15, 2, LocalTargetSocket, BE ),
13464 rec( 17, 4, LocalMaxSendSize, BE ),
13465 rec( 21, 4, LocalMaxRecvSize, BE ),
13468 rec( 8, 4, RemoteTargetID, BE ),
13469 rec( 12, 4, RemoteMaxPacketSize, BE ),
13471 pkt.CompletionCodes([0x0000])
13473 pkt = NCP(0x66, "Undocumented Packet Burst", 'comm')
13476 pkt.CompletionCodes([0x0000])
13478 pkt = NCP(0x67, "Undocumented Packet Burst", 'comm')
13481 pkt.CompletionCodes([0x0000])
13482 # 2222/6801, 104/01
13483 pkt = NCP(0x6801, "Ping for NDS NCP", "nds", has_length=0)
13486 pkt.ReqCondSizeVariable()
13487 pkt.CompletionCodes([0x0000, 0x8100, 0xfb04, 0xfe0c])
13488 # 2222/6802, 104/02
13490 # XXX - if FraggerHandle is not 0xffffffff, this is not the
13491 # first fragment, so we can only dissect this by reassembling;
13492 # the fields after "Fragment Handle" are bogus for non-0xffffffff
13493 # fragments, so we shouldn't dissect them.
13495 # XXX - are there TotalRequest requests in the packet, and
13496 # does each of them have NDSFlags and NDSVerb fields, or
13497 # does only the first one have it?
13499 pkt = NCP(0x6802, "Send NDS Fragmented Request/Reply", "nds", has_length=0)
13502 pkt.ReqCondSizeVariable()
13503 pkt.CompletionCodes([0x0000, 0xfd01])
13504 # 2222/6803, 104/03
13505 pkt = NCP(0x6803, "Fragment Close", "nds", has_length=0)
13507 rec( 8, 4, FraggerHandle ),
13510 pkt.CompletionCodes([0x0000, 0xff00])
13511 # 2222/6804, 104/04
13512 pkt = NCP(0x6804, "Return Bindery Context", "nds", has_length=0)
13514 pkt.Reply((9, 263), [
13515 rec( 8, (1,255), binderyContext ),
13517 pkt.CompletionCodes([0x0000, 0xfe0c, 0xff00])
13518 # 2222/6805, 104/05
13519 pkt = NCP(0x6805, "Monitor NDS Connection", "nds", has_length=0)
13522 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13523 # 2222/6806, 104/06
13524 pkt = NCP(0x6806, "Return NDS Statistics", "nds", has_length=0)
13526 rec( 8, 2, NDSRequestFlags ),
13529 #Need to investigate how to decode Statistics Return Value
13530 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13531 # 2222/6807, 104/07
13532 pkt = NCP(0x6807, "Clear NDS Statistics", "nds", has_length=0)
13535 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13536 # 2222/6808, 104/08
13537 pkt = NCP(0x6808, "Reload NDS Software", "nds", has_length=0)
13540 rec( 8, 4, NDSStatus ),
13542 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
13543 # 2222/68C8, 104/200
13544 pkt = NCP(0x68C8, "Query Container Audit Status", "auditing", has_length=0)
13546 rec( 8, 4, ConnectionNumber ),
13547 # rec( 12, 4, AuditIDType, LE ),
13548 # rec( 16, 4, AuditID ),
13549 # rec( 20, 2, BufferSize ),
13552 rec(8, 32, NWAuditStatus ),
13554 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13555 # 2222/68CA, 104/202
13556 pkt = NCP(0x68CA, "Add Auditor Access", "auditing", has_length=0)
13559 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13560 # 2222/68CB, 104/203
13561 pkt = NCP(0x68CB, "Change Auditor Container Password", "auditing", has_length=0)
13564 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13565 # 2222/68CC, 104/204
13566 pkt = NCP(0x68CC, "Check Auditor Access", "auditing", has_length=0)
13569 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13570 # 2222/68CE, 104/206
13571 pkt = NCP(0x680CE, "Disable Container Auditing", "auditing", has_length=0)
13574 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13575 # 2222/68CF, 104/207
13576 pkt = NCP(0x68CF, "Enable Container Auditing", "auditing", has_length=0)
13579 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13580 # 2222/68D1, 104/209
13581 pkt = NCP(0x68D1, "Read Audit File Header", "auditing", has_length=0)
13584 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13585 # 2222/68D3, 104/211
13586 pkt = NCP(0x68D3, "Remove Auditor Access", "auditing", has_length=0)
13589 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13590 # 2222/68D4, 104/212
13591 pkt = NCP(0x68D4, "Reset Audit File", "auditing", has_length=0)
13594 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13595 # 2222/68D6, 104/214
13596 pkt = NCP(0x68D6, "Write Audit File Configuration Header", "auditing", has_length=0)
13599 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13600 # 2222/68D7, 104/215
13601 pkt = NCP(0x68D7, "Change Auditor Container Password2", "auditing", has_length=0)
13604 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13605 # 2222/68D8, 104/216
13606 pkt = NCP(0x68D8, "Return Audit Flags", "auditing", has_length=0)
13609 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13610 # 2222/68D9, 104/217
13611 pkt = NCP(0x68D9, "Close Old Audit File", "auditing", has_length=0)
13614 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13615 # 2222/68DB, 104/219
13616 pkt = NCP(0x68DB, "Check Level Two Access", "auditing", has_length=0)
13619 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13620 # 2222/68DC, 104/220
13621 pkt = NCP(0x68DC, "Check Object Audited", "auditing", has_length=0)
13624 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13625 # 2222/68DD, 104/221
13626 pkt = NCP(0x68DD, "Change Object Audited", "auditing", has_length=0)
13629 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13630 # 2222/68DE, 104/222
13631 pkt = NCP(0x68DE, "Return Old Audit File List", "auditing", has_length=0)
13634 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13635 # 2222/68DF, 104/223
13636 pkt = NCP(0x68DF, "Init Audit File Reads", "auditing", has_length=0)
13639 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13640 # 2222/68E0, 104/224
13641 pkt = NCP(0x68E0, "Read Auditing File", "auditing", has_length=0)
13644 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13645 # 2222/68E1, 104/225
13646 pkt = NCP(0x68E1, "Delete Old Audit File", "auditing", has_length=0)
13649 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13650 # 2222/68E5, 104/229
13651 pkt = NCP(0x68E5, "Set Audit Password", "auditing", has_length=0)
13654 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13655 # 2222/68E7, 104/231
13656 pkt = NCP(0x68E7, "External Audit Append To File", "auditing", has_length=0)
13659 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
13661 pkt = NCP(0x69, "Log File", 'file')
13662 pkt.Request( (12, 267), [
13663 rec( 7, 1, DirHandle ),
13664 rec( 8, 1, LockFlag ),
13665 rec( 9, 2, TimeoutLimit ),
13666 rec( 11, (1, 256), FilePath ),
13667 ], info_str=(FilePath, "Log File: %s", "/%s"))
13669 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x9600, 0xfe0d, 0xff01])
13671 pkt = NCP(0x6A, "Lock File Set", 'file')
13673 rec( 7, 2, TimeoutLimit ),
13676 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x9600, 0xfe0d, 0xff01])
13678 pkt = NCP(0x6B, "Log Logical Record", 'file')
13679 pkt.Request( (11, 266), [
13680 rec( 7, 1, LockFlag ),
13681 rec( 8, 2, TimeoutLimit ),
13682 rec( 10, (1, 256), SynchName ),
13683 ], info_str=(SynchName, "Log Logical Record: %s", ", %s"))
13685 pkt.CompletionCodes([0x0000, 0x7f00, 0x9600, 0xfe0d, 0xff01])
13687 pkt = NCP(0x6C, "Log Logical Record", 'file')
13689 rec( 7, 1, LockFlag ),
13690 rec( 8, 2, TimeoutLimit ),
13693 pkt.CompletionCodes([0x0000, 0x7f00, 0x9600, 0xfe0d, 0xff01])
13695 pkt = NCP(0x6D, "Log Physical Record", 'file')
13697 rec( 7, 1, LockFlag ),
13698 rec( 8, 6, FileHandle ),
13699 rec( 14, 4, LockAreasStartOffset ),
13700 rec( 18, 4, LockAreaLen ),
13701 rec( 22, 2, LockTimeout ),
13704 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
13706 pkt = NCP(0x6E, "Lock Physical Record Set", 'file')
13708 rec( 7, 1, LockFlag ),
13709 rec( 8, 2, LockTimeout ),
13712 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
13713 # 2222/6F00, 111/00
13714 pkt = NCP(0x6F00, "Open/Create a Semaphore", 'file', has_length=0)
13715 pkt.Request((10,521), [
13716 rec( 8, 1, InitialSemaphoreValue ),
13717 rec( 9, (1, 512), SemaphoreName ),
13718 ], info_str=(SemaphoreName, "Open/Create Semaphore: %s", ", %s"))
13720 rec( 8, 4, SemaphoreHandle ),
13721 rec( 12, 1, SemaphoreOpenCount ),
13723 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
13724 # 2222/6F01, 111/01
13725 pkt = NCP(0x6F01, "Examine Semaphore", 'file', has_length=0)
13727 rec( 8, 4, SemaphoreHandle ),
13730 rec( 8, 1, SemaphoreValue ),
13731 rec( 9, 1, SemaphoreOpenCount ),
13733 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
13734 # 2222/6F02, 111/02
13735 pkt = NCP(0x6F02, "Wait On (P) Semaphore", 'file', has_length=0)
13737 rec( 8, 4, SemaphoreHandle ),
13738 rec( 12, 2, LockTimeout ),
13741 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13742 # 2222/6F03, 111/03
13743 pkt = NCP(0x6F03, "Signal (V) Semaphore", 'file', has_length=0)
13745 rec( 8, 4, SemaphoreHandle ),
13748 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13749 # 2222/6F04, 111/04
13750 pkt = NCP(0x6F04, "Close Semaphore", 'file', has_length=0)
13752 rec( 8, 4, SemaphoreHandle ),
13755 rec( 8, 1, SemaphoreOpenCount ),
13756 rec( 9, 1, SemaphoreShareCount ),
13758 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
13759 # 2222/7201, 114/01
13760 pkt = NCP(0x7201, "Timesync Get Time", 'file')
13763 rec( 8, 12, theTimeStruct ),
13764 rec(20, 8, eventOffset ),
13765 rec(28, 4, eventTime ),
13767 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13768 # 2222/7202, 114/02
13769 pkt = NCP(0x7202, "Timesync Exchange Time", 'file')
13770 pkt.Request((63,112), [
13771 rec( 10, 4, protocolFlags ),
13772 rec( 14, 4, nodeFlags ),
13773 rec( 18, 8, sourceOriginateTime ),
13774 rec( 26, 8, targetReceiveTime ),
13775 rec( 34, 8, targetTransmitTime ),
13776 rec( 42, 8, sourceReturnTime ),
13777 rec( 50, 8, eventOffset ),
13778 rec( 58, 4, eventTime ),
13779 rec( 62, (1,50), ServerNameLen ),
13780 ], info_str=(ServerNameLen, "Timesync Exchange Time: %s", ", %s"))
13781 pkt.Reply((64,113), [
13782 rec( 8, 3, Reserved3 ),
13783 rec( 11, 4, protocolFlags ),
13784 rec( 15, 4, nodeFlags ),
13785 rec( 19, 8, sourceOriginateTime ),
13786 rec( 27, 8, targetReceiveTime ),
13787 rec( 35, 8, targetTransmitTime ),
13788 rec( 43, 8, sourceReturnTime ),
13789 rec( 51, 8, eventOffset ),
13790 rec( 59, 4, eventTime ),
13791 rec( 63, (1,50), ServerNameLen ),
13793 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13794 # 2222/7205, 114/05
13795 pkt = NCP(0x7205, "Timesync Get Server List", 'file')
13797 rec( 10, 4, StartNumber ),
13800 rec( 8, 4, nameType ),
13801 rec( 12, 48, ServerName ),
13802 rec( 60, 4, serverListFlags ),
13803 rec( 64, 2, startNumberFlag ),
13805 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13806 # 2222/7206, 114/06
13807 pkt = NCP(0x7206, "Timesync Set Server List", 'file')
13809 rec( 10, 4, StartNumber ),
13812 rec( 8, 4, nameType ),
13813 rec( 12, 48, ServerName ),
13814 rec( 60, 4, serverListFlags ),
13815 rec( 64, 2, startNumberFlag ),
13817 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13818 # 2222/720C, 114/12
13819 pkt = NCP(0x720C, "Timesync Get Version", 'file')
13822 rec( 8, 4, version ),
13824 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
13825 # 2222/7B01, 123/01
13826 pkt = NCP(0x7B01, "Get Cache Information", 'stats')
13828 rec(10, 1, VersionNumber),
13829 rec(11, 1, RevisionNumber),
13832 rec(8, 4, CurrentServerTime, LE),
13833 rec(12, 1, VConsoleVersion ),
13834 rec(13, 1, VConsoleRevision ),
13835 rec(14, 2, Reserved2 ),
13836 rec(16, 104, Counters ),
13837 rec(120, 40, ExtraCacheCntrs ),
13838 rec(160, 40, MemoryCounters ),
13839 rec(200, 48, TrendCounters ),
13840 rec(248, 40, CacheInfo ),
13842 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xff00])
13843 # 2222/7B02, 123/02
13844 pkt = NCP(0x7B02, "Get File Server Information", 'stats')
13847 rec(8, 4, CurrentServerTime ),
13848 rec(12, 1, VConsoleVersion ),
13849 rec(13, 1, VConsoleRevision ),
13850 rec(14, 2, Reserved2 ),
13851 rec(16, 4, NCPStaInUseCnt ),
13852 rec(20, 4, NCPPeakStaInUse ),
13853 rec(24, 4, NumOfNCPReqs ),
13854 rec(28, 4, ServerUtilization ),
13855 rec(32, 96, ServerInfo ),
13856 rec(128, 22, FileServerCounters ),
13858 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13859 # 2222/7B03, 123/03
13860 pkt = NCP(0x7B03, "NetWare File System Information", 'stats')
13862 rec(10, 1, FileSystemID ),
13865 rec(8, 4, CurrentServerTime ),
13866 rec(12, 1, VConsoleVersion ),
13867 rec(13, 1, VConsoleRevision ),
13868 rec(14, 2, Reserved2 ),
13869 rec(16, 52, FileSystemInfo ),
13871 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13872 # 2222/7B04, 123/04
13873 pkt = NCP(0x7B04, "User Information", 'stats')
13875 rec(10, 4, ConnectionNumber ),
13877 pkt.Reply((85, 132), [
13878 rec(8, 4, CurrentServerTime ),
13879 rec(12, 1, VConsoleVersion ),
13880 rec(13, 1, VConsoleRevision ),
13881 rec(14, 2, Reserved2 ),
13882 rec(16, 68, UserInformation ),
13883 rec(84, (1, 48), UserName ),
13885 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13886 # 2222/7B05, 123/05
13887 pkt = NCP(0x7B05, "Packet Burst Information", 'stats')
13890 rec(8, 4, CurrentServerTime ),
13891 rec(12, 1, VConsoleVersion ),
13892 rec(13, 1, VConsoleRevision ),
13893 rec(14, 2, Reserved2 ),
13894 rec(16, 200, PacketBurstInformation ),
13896 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13897 # 2222/7B06, 123/06
13898 pkt = NCP(0x7B06, "IPX SPX Information", 'stats')
13901 rec(8, 4, CurrentServerTime ),
13902 rec(12, 1, VConsoleVersion ),
13903 rec(13, 1, VConsoleRevision ),
13904 rec(14, 2, Reserved2 ),
13905 rec(16, 34, IPXInformation ),
13906 rec(50, 44, SPXInformation ),
13908 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13909 # 2222/7B07, 123/07
13910 pkt = NCP(0x7B07, "Garbage Collection Information", 'stats')
13913 rec(8, 4, CurrentServerTime ),
13914 rec(12, 1, VConsoleVersion ),
13915 rec(13, 1, VConsoleRevision ),
13916 rec(14, 2, Reserved2 ),
13917 rec(16, 4, FailedAllocReqCnt ),
13918 rec(20, 4, NumberOfAllocs ),
13919 rec(24, 4, NoMoreMemAvlCnt ),
13920 rec(28, 4, NumOfGarbageColl ),
13921 rec(32, 4, FoundSomeMem ),
13922 rec(36, 4, NumOfChecks ),
13924 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13925 # 2222/7B08, 123/08
13926 pkt = NCP(0x7B08, "CPU Information", 'stats')
13928 rec(10, 4, CPUNumber ),
13931 rec(8, 4, CurrentServerTime ),
13932 rec(12, 1, VConsoleVersion ),
13933 rec(13, 1, VConsoleRevision ),
13934 rec(14, 2, Reserved2 ),
13935 rec(16, 4, NumberOfCPUs ),
13936 rec(20, 31, CPUInformation ),
13938 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13939 # 2222/7B09, 123/09
13940 pkt = NCP(0x7B09, "Volume Switch Information", 'stats')
13942 rec(10, 4, StartNumber )
13945 rec(8, 4, CurrentServerTime ),
13946 rec(12, 1, VConsoleVersion ),
13947 rec(13, 1, VConsoleRevision ),
13948 rec(14, 2, Reserved2 ),
13949 rec(16, 4, TotalLFSCounters ),
13950 rec(20, 4, CurrentLFSCounters, var="x"),
13951 rec(24, 4, LFSCounters, repeat="x"),
13953 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13954 # 2222/7B0A, 123/10
13955 pkt = NCP(0x7B0A, "Get NLM Loaded List", 'stats')
13957 rec(10, 4, StartNumber )
13960 rec(8, 4, CurrentServerTime ),
13961 rec(12, 1, VConsoleVersion ),
13962 rec(13, 1, VConsoleRevision ),
13963 rec(14, 2, Reserved2 ),
13964 rec(16, 4, NLMcount ),
13965 rec(20, 4, NLMsInList, var="x" ),
13966 rec(24, 4, NLMNumbers, repeat="x" ),
13968 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13969 # 2222/7B0B, 123/11
13970 pkt = NCP(0x7B0B, "NLM Information", 'stats')
13972 rec(10, 4, NLMNumber ),
13974 pkt.Reply((79,841), [
13975 rec(8, 4, CurrentServerTime ),
13976 rec(12, 1, VConsoleVersion ),
13977 rec(13, 1, VConsoleRevision ),
13978 rec(14, 2, Reserved2 ),
13979 rec(16, 60, NLMInformation ),
13980 rec(76, (1,255), FileName ),
13981 rec(-1, (1,255), Name ),
13982 rec(-1, (1,255), Copyright ),
13984 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13985 # 2222/7B0C, 123/12
13986 pkt = NCP(0x7B0C, "Get Directory Cache Information", 'stats')
13989 rec(8, 4, CurrentServerTime ),
13990 rec(12, 1, VConsoleVersion ),
13991 rec(13, 1, VConsoleRevision ),
13992 rec(14, 2, Reserved2 ),
13993 rec(16, 56, DirCacheInfo ),
13995 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
13996 # 2222/7B0D, 123/13
13997 pkt = NCP(0x7B0D, "Get Operating System Version Information", 'stats')
14000 rec(8, 4, CurrentServerTime ),
14001 rec(12, 1, VConsoleVersion ),
14002 rec(13, 1, VConsoleRevision ),
14003 rec(14, 2, Reserved2 ),
14004 rec(16, 1, OSMajorVersion ),
14005 rec(17, 1, OSMinorVersion ),
14006 rec(18, 1, OSRevision ),
14007 rec(19, 1, AccountVersion ),
14008 rec(20, 1, VAPVersion ),
14009 rec(21, 1, QueueingVersion ),
14010 rec(22, 1, SecurityRestrictionVersion ),
14011 rec(23, 1, InternetBridgeVersion ),
14012 rec(24, 4, MaxNumOfVol ),
14013 rec(28, 4, MaxNumOfConn ),
14014 rec(32, 4, MaxNumOfUsers ),
14015 rec(36, 4, MaxNumOfNmeSps ),
14016 rec(40, 4, MaxNumOfLANS ),
14017 rec(44, 4, MaxNumOfMedias ),
14018 rec(48, 4, MaxNumOfStacks ),
14019 rec(52, 4, MaxDirDepth ),
14020 rec(56, 4, MaxDataStreams ),
14021 rec(60, 4, MaxNumOfSpoolPr ),
14022 rec(64, 4, ServerSerialNumber ),
14023 rec(68, 2, ServerAppNumber ),
14025 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14026 # 2222/7B0E, 123/14
14027 pkt = NCP(0x7B0E, "Get Active Connection List by Type", 'stats')
14029 rec(10, 4, StartConnNumber ),
14030 rec(14, 1, ConnectionType ),
14033 rec(8, 4, CurrentServerTime ),
14034 rec(12, 1, VConsoleVersion ),
14035 rec(13, 1, VConsoleRevision ),
14036 rec(14, 2, Reserved2 ),
14037 rec(16, 512, ActiveConnBitList ),
14039 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfd01, 0xff00])
14040 # 2222/7B0F, 123/15
14041 pkt = NCP(0x7B0F, "Get NLM Resource Tag List", 'stats')
14043 rec(10, 4, NLMNumber ),
14044 rec(14, 4, NLMStartNumber ),
14047 rec(8, 4, CurrentServerTime ),
14048 rec(12, 1, VConsoleVersion ),
14049 rec(13, 1, VConsoleRevision ),
14050 rec(14, 2, Reserved2 ),
14051 rec(16, 4, TtlNumOfRTags ),
14052 rec(20, 4, CurNumOfRTags ),
14053 rec(24, 13, RTagStructure ),
14055 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14056 # 2222/7B10, 123/16
14057 pkt = NCP(0x7B10, "Enumerate Connection Information from Connection List", 'stats')
14059 rec(10, 1, EnumInfoMask),
14060 rec(11, 3, Reserved3),
14061 rec(14, 4, itemsInList, var="x"),
14062 rec(18, 4, connList, repeat="x"),
14064 pkt.Reply(NO_LENGTH_CHECK, [
14065 rec(8, 4, CurrentServerTime ),
14066 rec(12, 1, VConsoleVersion ),
14067 rec(13, 1, VConsoleRevision ),
14068 rec(14, 2, Reserved2 ),
14069 rec(16, 4, ItemsInPacket ),
14070 srec(netAddr, req_cond="ncp.enum_info_transport==TRUE"),
14071 srec(timeInfo, req_cond="ncp.enum_info_time==TRUE"),
14072 srec(nameInfo, req_cond="ncp.enum_info_name==TRUE"),
14073 srec(lockInfo, req_cond="ncp.enum_info_lock==TRUE"),
14074 srec(printInfo, req_cond="ncp.enum_info_print==TRUE"),
14075 srec(statsInfo, req_cond="ncp.enum_info_stats==TRUE"),
14076 srec(acctngInfo, req_cond="ncp.enum_info_account==TRUE"),
14077 srec(authInfo, req_cond="ncp.enum_info_auth==TRUE"),
14079 pkt.ReqCondSizeVariable()
14080 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14081 # 2222/7B11, 123/17
14082 pkt = NCP(0x7B11, "Enumerate NCP Service Network Addresses", 'stats')
14084 rec(10, 4, SearchNumber ),
14087 rec(8, 4, CurrentServerTime ),
14088 rec(12, 1, VConsoleVersion ),
14089 rec(13, 1, VConsoleRevision ),
14090 rec(14, 2, ServerInfoFlags ),
14091 rec(16, 16, GUID ),
14092 rec(32, 4, NextSearchNum ),
14093 rec(36, 4, ItemsInPacket, var="x"),
14094 rec(40, 20, NCPNetworkAddress, repeat="x" ),
14096 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14097 # 2222/7B14, 123/20
14098 pkt = NCP(0x7B14, "Active LAN Board List", 'stats')
14100 rec(10, 4, StartNumber ),
14103 rec(8, 4, CurrentServerTime ),
14104 rec(12, 1, VConsoleVersion ),
14105 rec(13, 1, VConsoleRevision ),
14106 rec(14, 2, Reserved2 ),
14107 rec(16, 4, MaxNumOfLANS ),
14108 rec(20, 4, ItemsInPacket, var="x"),
14109 rec(24, 4, BoardNumbers, repeat="x"),
14111 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14112 # 2222/7B15, 123/21
14113 pkt = NCP(0x7B15, "LAN Configuration Information", 'stats')
14115 rec(10, 4, BoardNumber ),
14118 rec(8, 4, CurrentServerTime ),
14119 rec(12, 1, VConsoleVersion ),
14120 rec(13, 1, VConsoleRevision ),
14121 rec(14, 2, Reserved2 ),
14122 rec(16,136, LANConfigInfo ),
14124 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14125 # 2222/7B16, 123/22
14126 pkt = NCP(0x7B16, "LAN Common Counters Information", 'stats')
14128 rec(10, 4, BoardNumber ),
14129 rec(14, 4, BlockNumber ),
14132 rec(8, 4, CurrentServerTime ),
14133 rec(12, 1, VConsoleVersion ),
14134 rec(13, 1, VConsoleRevision ),
14135 rec(14, 1, StatMajorVersion ),
14136 rec(15, 1, StatMinorVersion ),
14137 rec(16, 4, TotalCommonCnts ),
14138 rec(20, 4, TotalCntBlocks ),
14139 rec(24, 4, CustomCounters ),
14140 rec(28, 4, NextCntBlock ),
14141 rec(32, 54, CommonLanStruc ),
14143 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14144 # 2222/7B17, 123/23
14145 pkt = NCP(0x7B17, "LAN Custom Counters Information", 'stats')
14147 rec(10, 4, BoardNumber ),
14148 rec(14, 4, StartNumber ),
14151 rec(8, 4, CurrentServerTime ),
14152 rec(12, 1, VConsoleVersion ),
14153 rec(13, 1, VConsoleRevision ),
14154 rec(14, 2, Reserved2 ),
14155 rec(16, 4, NumOfCCinPkt, var="x"),
14156 rec(20, 5, CustomCntsInfo, repeat="x"),
14158 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14159 # 2222/7B18, 123/24
14160 pkt = NCP(0x7B18, "LAN Name Information", 'stats')
14162 rec(10, 4, BoardNumber ),
14165 rec(8, 4, CurrentServerTime ),
14166 rec(12, 1, VConsoleVersion ),
14167 rec(13, 1, VConsoleRevision ),
14168 rec(14, 2, Reserved2 ),
14169 rec(16, 3, BoardNameStruct ),
14171 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14172 # 2222/7B19, 123/25
14173 pkt = NCP(0x7B19, "LSL Information", 'stats')
14176 rec(8, 4, CurrentServerTime ),
14177 rec(12, 1, VConsoleVersion ),
14178 rec(13, 1, VConsoleRevision ),
14179 rec(14, 2, Reserved2 ),
14180 rec(16, 74, LSLInformation ),
14182 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14183 # 2222/7B1A, 123/26
14184 pkt = NCP(0x7B1A, "LSL Logical Board Statistics", 'stats')
14186 rec(10, 4, BoardNumber ),
14189 rec(8, 4, CurrentServerTime ),
14190 rec(12, 1, VConsoleVersion ),
14191 rec(13, 1, VConsoleRevision ),
14192 rec(14, 2, Reserved2 ),
14193 rec(16, 4, LogTtlTxPkts ),
14194 rec(20, 4, LogTtlRxPkts ),
14195 rec(24, 4, UnclaimedPkts ),
14197 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14198 # 2222/7B1B, 123/27
14199 pkt = NCP(0x7B1B, "MLID Board Information", 'stats')
14201 rec(10, 4, BoardNumber ),
14204 rec(8, 4, CurrentServerTime ),
14205 rec(12, 1, VConsoleVersion ),
14206 rec(13, 1, VConsoleRevision ),
14207 rec(14, 1, Reserved ),
14208 rec(15, 1, NumberOfProtocols ),
14209 rec(16, 28, MLIDBoardInfo ),
14211 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14212 # 2222/7B1E, 123/30
14213 pkt = NCP(0x7B1E, "Get Media Manager Object Information", 'stats')
14215 rec(10, 4, ObjectNumber ),
14218 rec(8, 4, CurrentServerTime ),
14219 rec(12, 1, VConsoleVersion ),
14220 rec(13, 1, VConsoleRevision ),
14221 rec(14, 2, Reserved2 ),
14222 rec(16, 196, GenericInfoDef ),
14224 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14225 # 2222/7B1F, 123/31
14226 pkt = NCP(0x7B1F, "Get Media Manager Objects List", 'stats')
14228 rec(10, 4, StartNumber ),
14229 rec(14, 1, MediaObjectType ),
14232 rec(8, 4, CurrentServerTime ),
14233 rec(12, 1, VConsoleVersion ),
14234 rec(13, 1, VConsoleRevision ),
14235 rec(14, 2, Reserved2 ),
14236 rec(16, 4, nextStartingNumber ),
14237 rec(20, 4, ObjectCount, var="x"),
14238 rec(24, 4, ObjectID, repeat="x"),
14240 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14241 # 2222/7B20, 123/32
14242 pkt = NCP(0x7B20, "Get Media Manager Object Childrens List", 'stats')
14244 rec(10, 4, StartNumber ),
14245 rec(14, 1, MediaObjectType ),
14246 rec(15, 3, Reserved3 ),
14247 rec(18, 4, ParentObjectNumber ),
14250 rec(8, 4, CurrentServerTime ),
14251 rec(12, 1, VConsoleVersion ),
14252 rec(13, 1, VConsoleRevision ),
14253 rec(14, 2, Reserved2 ),
14254 rec(16, 4, nextStartingNumber ),
14255 rec(20, 4, ObjectCount, var="x" ),
14256 rec(24, 4, ObjectID, repeat="x" ),
14258 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14259 # 2222/7B21, 123/33
14260 pkt = NCP(0x7B21, "Get Volume Segment List", 'stats')
14262 rec(10, 4, VolumeNumberLong ),
14265 rec(8, 4, CurrentServerTime ),
14266 rec(12, 1, VConsoleVersion ),
14267 rec(13, 1, VConsoleRevision ),
14268 rec(14, 2, Reserved2 ),
14269 rec(16, 4, NumOfSegments, var="x" ),
14270 rec(20, 12, Segments, repeat="x" ),
14272 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14273 # 2222/7B22, 123/34
14274 pkt = NCP(0x7B22, "Get Volume Information by Level", 'stats')
14276 rec(10, 4, VolumeNumberLong ),
14277 rec(14, 1, InfoLevelNumber ),
14279 pkt.Reply(NO_LENGTH_CHECK, [
14280 rec(8, 4, CurrentServerTime ),
14281 rec(12, 1, VConsoleVersion ),
14282 rec(13, 1, VConsoleRevision ),
14283 rec(14, 2, Reserved2 ),
14284 rec(16, 1, InfoLevelNumber ),
14285 rec(17, 3, Reserved3 ),
14286 srec(VolInfoStructure, req_cond="ncp.info_level_num==0x01"),
14287 srec(VolInfo2Struct, req_cond="ncp.info_level_num==0x02"),
14289 pkt.ReqCondSizeVariable()
14290 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14291 # 2222/7B28, 123/40
14292 pkt = NCP(0x7B28, "Active Protocol Stacks", 'stats')
14294 rec(10, 4, StartNumber ),
14297 rec(8, 4, CurrentServerTime ),
14298 rec(12, 1, VConsoleVersion ),
14299 rec(13, 1, VConsoleRevision ),
14300 rec(14, 2, Reserved2 ),
14301 rec(16, 4, MaxNumOfLANS ),
14302 rec(20, 4, StackCount, var="x" ),
14303 rec(24, 4, nextStartingNumber ),
14304 rec(28, 20, StackInfo, repeat="x" ),
14306 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14307 # 2222/7B29, 123/41
14308 pkt = NCP(0x7B29, "Get Protocol Stack Configuration Information", 'stats')
14310 rec(10, 4, StackNumber ),
14312 pkt.Reply((37,164), [
14313 rec(8, 4, CurrentServerTime ),
14314 rec(12, 1, VConsoleVersion ),
14315 rec(13, 1, VConsoleRevision ),
14316 rec(14, 2, Reserved2 ),
14317 rec(16, 1, ConfigMajorVN ),
14318 rec(17, 1, ConfigMinorVN ),
14319 rec(18, 1, StackMajorVN ),
14320 rec(19, 1, StackMinorVN ),
14321 rec(20, 16, ShortStkName ),
14322 rec(36, (1,128), StackFullNameStr ),
14324 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14325 # 2222/7B2A, 123/42
14326 pkt = NCP(0x7B2A, "Get Protocol Stack Statistics Information", 'stats')
14328 rec(10, 4, StackNumber ),
14331 rec(8, 4, CurrentServerTime ),
14332 rec(12, 1, VConsoleVersion ),
14333 rec(13, 1, VConsoleRevision ),
14334 rec(14, 2, Reserved2 ),
14335 rec(16, 1, StatMajorVersion ),
14336 rec(17, 1, StatMinorVersion ),
14337 rec(18, 2, ComCnts ),
14338 rec(20, 4, CounterMask ),
14339 rec(24, 4, TotalTxPkts ),
14340 rec(28, 4, TotalRxPkts ),
14341 rec(32, 4, IgnoredRxPkts ),
14342 rec(36, 2, CustomCnts ),
14344 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14345 # 2222/7B2B, 123/43
14346 pkt = NCP(0x7B2B, "Get Protocol Stack Custom Information", 'stats')
14348 rec(10, 4, StackNumber ),
14349 rec(14, 4, StartNumber ),
14352 rec(8, 4, CurrentServerTime ),
14353 rec(12, 1, VConsoleVersion ),
14354 rec(13, 1, VConsoleRevision ),
14355 rec(14, 2, Reserved2 ),
14356 rec(16, 4, CustomCount, var="x" ),
14357 rec(20, 5, CustomCntsInfo, repeat="x" ),
14359 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14360 # 2222/7B2C, 123/44
14361 pkt = NCP(0x7B2C, "Get Protocol Stack Numbers by Media Number", 'stats')
14363 rec(10, 4, MediaNumber ),
14366 rec(8, 4, CurrentServerTime ),
14367 rec(12, 1, VConsoleVersion ),
14368 rec(13, 1, VConsoleRevision ),
14369 rec(14, 2, Reserved2 ),
14370 rec(16, 4, StackCount, var="x" ),
14371 rec(20, 4, StackNumber, repeat="x" ),
14373 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14374 # 2222/7B2D, 123/45
14375 pkt = NCP(0x7B2D, "Get Protocol Stack Numbers by LAN Board Number", 'stats')
14377 rec(10, 4, BoardNumber ),
14380 rec(8, 4, CurrentServerTime ),
14381 rec(12, 1, VConsoleVersion ),
14382 rec(13, 1, VConsoleRevision ),
14383 rec(14, 2, Reserved2 ),
14384 rec(16, 4, StackCount, var="x" ),
14385 rec(20, 4, StackNumber, repeat="x" ),
14387 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14388 # 2222/7B2E, 123/46
14389 pkt = NCP(0x7B2E, "Get Media Name by Media Number", 'stats')
14391 rec(10, 4, MediaNumber ),
14393 pkt.Reply((17,144), [
14394 rec(8, 4, CurrentServerTime ),
14395 rec(12, 1, VConsoleVersion ),
14396 rec(13, 1, VConsoleRevision ),
14397 rec(14, 2, Reserved2 ),
14398 rec(16, (1,128), MediaName ),
14400 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
14401 # 2222/7B2F, 123/47
14402 pkt = NCP(0x7B2F, "Get Loaded Media Number", 'stats')
14405 rec(8, 4, CurrentServerTime ),
14406 rec(12, 1, VConsoleVersion ),
14407 rec(13, 1, VConsoleRevision ),
14408 rec(14, 2, Reserved2 ),
14409 rec(16, 4, MaxNumOfMedias ),
14410 rec(20, 4, MediaListCount, var="x" ),
14411 rec(24, 4, MediaList, repeat="x" ),
14413 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14414 # 2222/7B32, 123/50
14415 pkt = NCP(0x7B32, "Get General Router and SAP Information", 'stats')
14418 rec(8, 4, CurrentServerTime ),
14419 rec(12, 1, VConsoleVersion ),
14420 rec(13, 1, VConsoleRevision ),
14421 rec(14, 2, Reserved2 ),
14422 rec(16, 2, RIPSocketNumber ),
14423 rec(18, 2, Reserved2 ),
14424 rec(20, 1, RouterDownFlag ),
14425 rec(21, 3, Reserved3 ),
14426 rec(24, 1, TrackOnFlag ),
14427 rec(25, 3, Reserved3 ),
14428 rec(28, 1, ExtRouterActiveFlag ),
14429 rec(29, 3, Reserved3 ),
14430 rec(32, 2, SAPSocketNumber ),
14431 rec(34, 2, Reserved2 ),
14432 rec(36, 1, RpyNearestSrvFlag ),
14434 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14435 # 2222/7B33, 123/51
14436 pkt = NCP(0x7B33, "Get Network Router Information", 'stats')
14438 rec(10, 4, NetworkNumber ),
14441 rec(8, 4, CurrentServerTime ),
14442 rec(12, 1, VConsoleVersion ),
14443 rec(13, 1, VConsoleRevision ),
14444 rec(14, 2, Reserved2 ),
14445 rec(16, 10, KnownRoutes ),
14447 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14448 # 2222/7B34, 123/52
14449 pkt = NCP(0x7B34, "Get Network Routers Information", 'stats')
14451 rec(10, 4, NetworkNumber),
14452 rec(14, 4, StartNumber ),
14455 rec(8, 4, CurrentServerTime ),
14456 rec(12, 1, VConsoleVersion ),
14457 rec(13, 1, VConsoleRevision ),
14458 rec(14, 2, Reserved2 ),
14459 rec(16, 4, NumOfEntries, var="x" ),
14460 rec(20, 14, RoutersInfo, repeat="x" ),
14462 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14463 # 2222/7B35, 123/53
14464 pkt = NCP(0x7B35, "Get Known Networks Information", 'stats')
14466 rec(10, 4, StartNumber ),
14469 rec(8, 4, CurrentServerTime ),
14470 rec(12, 1, VConsoleVersion ),
14471 rec(13, 1, VConsoleRevision ),
14472 rec(14, 2, Reserved2 ),
14473 rec(16, 4, NumOfEntries, var="x" ),
14474 rec(20, 10, KnownRoutes, repeat="x" ),
14476 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14477 # 2222/7B36, 123/54
14478 pkt = NCP(0x7B36, "Get Server Information", 'stats')
14479 pkt.Request((15,64), [
14480 rec(10, 2, ServerType ),
14481 rec(12, 2, Reserved2 ),
14482 rec(14, (1,50), ServerNameLen ),
14483 ], info_str=(ServerNameLen, "Get Server Information: %s", ", %s"))
14485 rec(8, 4, CurrentServerTime ),
14486 rec(12, 1, VConsoleVersion ),
14487 rec(13, 1, VConsoleRevision ),
14488 rec(14, 2, Reserved2 ),
14489 rec(16, 12, ServerAddress ),
14490 rec(28, 2, HopsToNet ),
14492 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14493 # 2222/7B37, 123/55
14494 pkt = NCP(0x7B37, "Get Server Sources Information", 'stats')
14495 pkt.Request((19,68), [
14496 rec(10, 4, StartNumber ),
14497 rec(14, 2, ServerType ),
14498 rec(16, 2, Reserved2 ),
14499 rec(18, (1,50), ServerNameLen ),
14500 ], info_str=(ServerNameLen, "Get Server Sources Info: %s", ", %s"))
14502 rec(8, 4, CurrentServerTime ),
14503 rec(12, 1, VConsoleVersion ),
14504 rec(13, 1, VConsoleRevision ),
14505 rec(14, 2, Reserved2 ),
14506 rec(16, 4, NumOfEntries, var="x" ),
14507 rec(20, 12, ServersSrcInfo, repeat="x" ),
14509 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14510 # 2222/7B38, 123/56
14511 pkt = NCP(0x7B38, "Get Known Servers Information", 'stats')
14513 rec(10, 4, StartNumber ),
14514 rec(14, 2, ServerType ),
14517 rec(8, 4, CurrentServerTime ),
14518 rec(12, 1, VConsoleVersion ),
14519 rec(13, 1, VConsoleRevision ),
14520 rec(14, 2, Reserved2 ),
14521 rec(16, 4, NumOfEntries, var="x" ),
14522 rec(20, 15, KnownServStruc, repeat="x" ),
14524 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
14525 # 2222/7B3C, 123/60
14526 pkt = NCP(0x7B3C, "Get Server Set Commands Information", 'stats')
14528 rec(10, 4, StartNumber ),
14530 pkt.Reply(NO_LENGTH_CHECK, [
14531 rec(8, 4, CurrentServerTime ),
14532 rec(12, 1, VConsoleVersion ),
14533 rec(13, 1, VConsoleRevision ),
14534 rec(14, 2, Reserved2 ),
14535 rec(16, 4, TtlNumOfSetCmds ),
14536 rec(20, 4, nextStartingNumber ),
14537 rec(24, 1, SetCmdType ),
14538 rec(25, 3, Reserved3 ),
14539 rec(28, 1, SetCmdCategory ),
14540 rec(29, 3, Reserved3 ),
14541 rec(32, 1, SetCmdFlags ),
14542 rec(33, 3, Reserved3 ),
14543 rec(36, 100, SetCmdName ),
14544 rec(136, 4, SetCmdValueNum ),
14546 pkt.ReqCondSizeVariable()
14547 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14548 # 2222/7B3D, 123/61
14549 pkt = NCP(0x7B3D, "Get Server Set Categories", 'stats')
14551 rec(10, 4, StartNumber ),
14553 pkt.Reply(NO_LENGTH_CHECK, [
14554 rec(8, 4, CurrentServerTime ),
14555 rec(12, 1, VConsoleVersion ),
14556 rec(13, 1, VConsoleRevision ),
14557 rec(14, 2, Reserved2 ),
14558 rec(16, 4, NumberOfSetCategories ),
14559 rec(20, 4, nextStartingNumber ),
14560 rec(24, PROTO_LENGTH_UNKNOWN, CategoryName ),
14562 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14563 # 2222/7B3E, 123/62
14564 pkt = NCP(0x7B3E, "Get Server Set Commands Information By Name", 'stats')
14565 pkt.Request(NO_LENGTH_CHECK, [
14566 rec(10, PROTO_LENGTH_UNKNOWN, SetParmName ),
14567 ], info_str=(SetParmName, "Get Server Set Command Info for: %s", ", %s"))
14568 pkt.Reply(NO_LENGTH_CHECK, [
14569 rec(8, 4, CurrentServerTime ),
14570 rec(12, 1, VConsoleVersion ),
14571 rec(13, 1, VConsoleRevision ),
14572 rec(14, 2, Reserved2 ),
14573 rec(16, 4, TtlNumOfSetCmds ),
14574 rec(20, 4, nextStartingNumber ),
14575 rec(24, 1, SetCmdType ),
14576 rec(25, 3, Reserved3 ),
14577 rec(28, 1, SetCmdCategory ),
14578 rec(29, 3, Reserved3 ),
14579 rec(32, 1, SetCmdFlags ),
14580 rec(33, 3, Reserved3 ),
14581 rec(36, PROTO_LENGTH_UNKNOWN, SetCmdName ),
14582 #rec(136, 4, SetCmdValueNum ),
14584 pkt.ReqCondSizeVariable()
14585 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
14586 # 2222/7B46, 123/70
14587 pkt = NCP(0x7B46, "Get Current Compressing File", 'stats')
14589 rec(10, 4, VolumeNumberLong ),
14592 rec(8, 4, ParentID ),
14593 rec(12, 4, DirectoryEntryNumber ),
14594 rec(16, 4, compressionStage ),
14595 rec(20, 4, ttlIntermediateBlks ),
14596 rec(24, 4, ttlCompBlks ),
14597 rec(28, 4, curIntermediateBlks ),
14598 rec(32, 4, curCompBlks ),
14599 rec(36, 4, curInitialBlks ),
14600 rec(40, 4, fileFlags ),
14601 rec(44, 4, projectedCompSize ),
14602 rec(48, 4, originalSize ),
14603 rec(52, 4, compressVolume ),
14605 pkt.CompletionCodes([0x0000, 0x7e00, 0x7901, 0xfb06, 0xff00])
14606 # 2222/7B47, 123/71
14607 pkt = NCP(0x7B47, "Get Current DeCompressing File Info List", 'stats')
14609 rec(10, 4, VolumeNumberLong ),
14612 rec(8, 4, FileListCount ),
14613 rec(12, 16, FileInfoStruct ),
14615 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
14616 # 2222/7B48, 123/72
14617 pkt = NCP(0x7B48, "Get Compression and Decompression Time and Counts", 'stats')
14619 rec(10, 4, VolumeNumberLong ),
14622 rec(8, 56, CompDeCompStat ),
14624 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
14625 # 2222/8301, 131/01
14626 pkt = NCP(0x8301, "RPC Load an NLM", 'fileserver')
14627 pkt.Request(NO_LENGTH_CHECK, [
14628 rec(10, 4, NLMLoadOptions ),
14629 rec(14, 16, Reserved16 ),
14630 rec(30, PROTO_LENGTH_UNKNOWN, PathAndName ),
14631 ], info_str=(PathAndName, "RPC Load NLM: %s", ", %s"))
14633 rec(8, 4, RPCccode ),
14635 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14636 # 2222/8302, 131/02
14637 pkt = NCP(0x8302, "RPC Unload an NLM", 'fileserver')
14638 pkt.Request(NO_LENGTH_CHECK, [
14639 rec(10, 20, Reserved20 ),
14640 rec(30, PROTO_LENGTH_UNKNOWN, NLMName ),
14641 ], info_str=(NLMName, "RPC Unload NLM: %s", ", %s"))
14643 rec(8, 4, RPCccode ),
14645 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14646 # 2222/8303, 131/03
14647 pkt = NCP(0x8303, "RPC Mount Volume", 'fileserver')
14648 pkt.Request(NO_LENGTH_CHECK, [
14649 rec(10, 20, Reserved20 ),
14650 rec(30, PROTO_LENGTH_UNKNOWN, VolumeNameStringz ),
14651 ], info_str=(VolumeNameStringz, "RPC Mount Volume: %s", ", %s"))
14653 rec(8, 4, RPCccode),
14654 rec(12, 16, Reserved16 ),
14655 rec(28, 4, VolumeNumberLong ),
14657 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14658 # 2222/8304, 131/04
14659 pkt = NCP(0x8304, "RPC Dismount Volume", 'fileserver')
14660 pkt.Request(NO_LENGTH_CHECK, [
14661 rec(10, 20, Reserved20 ),
14662 rec(30, PROTO_LENGTH_UNKNOWN, VolumeNameStringz ),
14663 ], info_str=(VolumeNameStringz, "RPC Dismount Volume: %s", ", %s"))
14665 rec(8, 4, RPCccode ),
14667 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14668 # 2222/8305, 131/05
14669 pkt = NCP(0x8305, "RPC Add Name Space To Volume", 'fileserver')
14670 pkt.Request(NO_LENGTH_CHECK, [
14671 rec(10, 20, Reserved20 ),
14672 rec(30, PROTO_LENGTH_UNKNOWN, AddNameSpaceAndVol ),
14673 ], info_str=(AddNameSpaceAndVol, "RPC Add Name Space to Volume: %s", ", %s"))
14675 rec(8, 4, RPCccode ),
14677 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14678 # 2222/8306, 131/06
14679 pkt = NCP(0x8306, "RPC Set Command Value", 'fileserver')
14680 pkt.Request(NO_LENGTH_CHECK, [
14681 rec(10, 1, SetCmdType ),
14682 rec(11, 3, Reserved3 ),
14683 rec(14, 4, SetCmdValueNum ),
14684 rec(18, 12, Reserved12 ),
14685 rec(30, PROTO_LENGTH_UNKNOWN, SetCmdName ),
14687 # XXX - optional string, if SetCmdType is 0
14689 ], info_str=(SetCmdName, "RPC Set Command Value: %s", ", %s"))
14691 rec(8, 4, RPCccode ),
14693 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14694 # 2222/8307, 131/07
14695 pkt = NCP(0x8307, "RPC Execute NCF File", 'fileserver')
14696 pkt.Request(NO_LENGTH_CHECK, [
14697 rec(10, 20, Reserved20 ),
14698 rec(30, PROTO_LENGTH_UNKNOWN, PathAndName ),
14699 ], info_str=(PathAndName, "RPC Execute NCF File: %s", ", %s"))
14701 rec(8, 4, RPCccode ),
14703 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
14704 if __name__ == '__main__':
14706 # filename = "ncp.pstats"
14707 # profile.run("main()", filename)
14711 # p = pstats.Stats(filename)
14713 # print "Stats sorted by cumulative time"
14714 # p.strip_dirs().sort_stats('cumulative').print_stats()
14716 # print "Function callees"
14717 # p.print_callees()