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.
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
77 PROTO_LENGTH_UNKNOWN = -1
79 global_highest_var = -1
83 REQ_COND_SIZE_VARIABLE = "REQ_COND_SIZE_VARIABLE"
84 REQ_COND_SIZE_CONSTANT = "REQ_COND_SIZE_CONSTANT"
86 ##############################################################################
88 ##############################################################################
90 class UniqueCollection:
91 """The UniqueCollection class stores objects which can be compared to other
92 objects of the same class. If two objects in the collection are equivalent,
93 only one is stored."""
95 def __init__(self, name):
99 self.member_reprs = {}
101 def Add(self, object):
102 """Add an object to the members lists, if a comparable object
103 doesn't already exist. The object that is in the member list, that is
104 either the object that was added or the comparable object that was
105 already in the member list, is returned."""
108 # Is 'object' a duplicate of some other member?
109 if self.member_reprs.has_key(r):
110 return self.member_reprs[r]
112 self.member_reprs[r] = object
113 self.members.append(object)
117 "Returns the list of members."
120 def HasMember(self, object):
121 "Does the list of members contain the object?"
122 if self.members_reprs.has_key(repr(object)):
127 # This list needs to be defined before the NCP types are defined,
128 # because the NCP types are defined in the global scope, not inside
129 # a function's scope.
130 ptvc_lists = UniqueCollection('PTVC Lists')
132 ##############################################################################
135 "NamedList's keep track of PTVC's and Completion Codes"
136 def __init__(self, name, list):
141 def __cmp__(self, other):
142 "Compare this NamedList to another"
144 if isinstance(other, NamedList):
145 return cmp(self.list, other.list)
150 def Name(self, new_name = None):
151 "Get/Set name of list"
157 "Returns record lists"
161 "Is there no list (different from an empty list)?"
162 return self.list == None
165 "It the list empty (different from a null list)?"
166 assert(not self.Null())
174 return repr(self.list)
176 class PTVC(NamedList):
177 """ProtoTree TVBuff Cursor List ("PTVC List") Class"""
179 def __init__(self, name, records):
181 NamedList.__init__(self, name, [])
183 global global_highest_var
185 expected_offset = None
190 # Make a PTVCRecord object for each list in 'records'
191 for record in records:
192 offset = record[REC_START]
193 length = record[REC_LENGTH]
194 field = record[REC_FIELD]
195 endianness = record[REC_ENDIANNESS]
198 var_name = record[REC_VAR]
200 # Did we already define this var?
201 if named_vars.has_key(var_name):
202 sys.exit("%s has multiple %s vars." % \
205 highest_var = highest_var + 1
207 if highest_var > global_highest_var:
208 global_highest_var = highest_var
209 named_vars[var_name] = var
214 repeat_name = record[REC_REPEAT]
216 # Do we have this var?
217 if not named_vars.has_key(repeat_name):
218 sys.exit("%s does not have %s var defined." % \
220 repeat = named_vars[repeat_name]
225 req_cond = record[REC_REQ_COND]
226 if req_cond != NO_REQ_COND:
227 global_req_cond[req_cond] = None
229 ptvc_rec = PTVCRecord(field, length, endianness, var, repeat, req_cond)
231 if expected_offset == None:
232 expected_offset = offset
234 elif expected_offset == -1:
237 elif expected_offset != offset and offset != -1:
238 msg.write("Expected offset in %s for %s to be %d\n" % \
239 (name, field.HFName(), expected_offset))
242 # We can't make a PTVC list from a variable-length
243 # packet, unless the fields can tell us at run time
244 # how long the packet is. That is, nstring8 is fine, since
245 # the field has an integer telling us how long the string is.
246 # Fields that don't have a length determinable at run-time
247 # cannot be variable-length.
248 if type(ptvc_rec.Length()) == type(()):
249 if isinstance(ptvc_rec.Field(), nstring):
252 elif isinstance(ptvc_rec.Field(), nbytes):
255 elif isinstance(ptvc_rec.Field(), struct):
259 field = ptvc_rec.Field()
260 assert 0, "Cannot make PTVC from %s, type %s" % \
261 (field.HFName(), field)
263 elif expected_offset > -1:
264 if ptvc_rec.Length() < 0:
267 expected_offset = expected_offset + ptvc_rec.Length()
270 self.list.append(ptvc_rec)
273 return "ett_%s" % (self.Name(),)
277 x = "static const ptvc_record %s[] = {\n" % (self.Name())
278 for ptvc_rec in self.list:
279 x = x + "\t%s,\n" % (ptvc_rec.Code())
280 x = x + "\t{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }\n"
286 for ptvc_rec in self.list:
287 x = x + repr(ptvc_rec)
291 class PTVCBitfield(PTVC):
292 def __init__(self, name, vars):
293 NamedList.__init__(self, name, [])
296 ptvc_rec = PTVCRecord(var, var.Length(), var.Endianness(),
297 NO_VAR, NO_REPEAT, NO_REQ_COND)
298 self.list.append(ptvc_rec)
301 ett_name = self.ETTName()
302 x = "static gint %s = -1;\n" % (ett_name,)
304 x = x + "static const ptvc_record ptvc_%s[] = {\n" % (self.Name())
305 for ptvc_rec in self.list:
306 x = x + "\t%s,\n" % (ptvc_rec.Code())
307 x = x + "\t{ NULL, 0, NULL, NO_ENDIANNESS, NO_VAR, NO_REPEAT, NO_REQ_COND, NCP_FMT_NONE }\n"
310 x = x + "static const sub_ptvc_record %s = {\n" % (self.Name(),)
311 x = x + "\t&%s,\n" % (ett_name,)
313 x = x + "\tptvc_%s,\n" % (self.Name(),)
319 def __init__(self, field, length, endianness, var, repeat, req_cond):
323 self.endianness = endianness
326 self.req_cond = req_cond
328 def __cmp__(self, other):
329 "Comparison operator"
330 if self.field != other.field:
332 elif self.length < other.length:
334 elif self.length > other.length:
336 elif self.endianness != other.endianness:
342 # Nice textual representations
343 if self.var == NO_VAR:
348 if self.repeat == NO_REPEAT:
353 if self.req_cond == NO_REQ_COND:
354 req_cond = "NO_REQ_COND"
356 req_cond = global_req_cond[self.req_cond]
357 assert req_cond != None
359 if isinstance(self.field, struct):
360 return self.field.ReferenceString(var, repeat, req_cond)
362 return self.RegularCode(var, repeat, req_cond)
364 def RegularCode(self, var, repeat, req_cond):
365 "String representation"
367 if self.endianness == LE:
372 if type(self.length) == type(0):
375 # This is for cases where a length is needed
376 # in order to determine a following variable-length,
377 # like nstring8, where 1 byte is needed in order
378 # to determine the variable length.
379 var_length = self.field.Length()
383 if length == PROTO_LENGTH_UNKNOWN:
384 # XXX length = "PROTO_LENGTH_UNKNOWN"
387 assert length, "Length not handled for %s" % (self.field.HFName(),)
389 sub_ptvc_name = self.field.PTVCName()
390 if sub_ptvc_name != "NULL":
391 sub_ptvc_name = "&%s" % (sub_ptvc_name,)
394 return "{ &%s, %s, %s, %s, %s, %s, %s, %s }" % \
395 (self.field.HFName(), length, sub_ptvc_name,
396 endianness, var, repeat, req_cond,
397 self.field.SpecialFmt())
409 return "{%s len=%s end=%s var=%s rpt=%s rqc=%s}" % \
410 (self.field.HFName(), self.length,
411 self.endianness, self.var, self.repeat, self.req_cond)
413 ##############################################################################
417 def __init__(self, func_code, description, group, has_length=1):
419 self.func_code = func_code
420 self.description = description
423 self.request_records = None
424 self.reply_records = None
425 self.has_length = has_length
426 self.req_cond_size = None
427 self.req_info_str = None
429 if not groups.has_key(group):
430 msg.write("NCP 0x%x has invalid group '%s'\n" % \
431 (self.func_code, group))
434 if self.HasSubFunction():
435 # NCP Function with SubFunction
436 self.start_offset = 10
438 # Simple NCP Function
439 self.start_offset = 7
441 def ReqCondSize(self):
442 return self.req_cond_size
444 def ReqCondSizeVariable(self):
445 self.req_cond_size = REQ_COND_SIZE_VARIABLE
447 def ReqCondSizeConstant(self):
448 self.req_cond_size = REQ_COND_SIZE_CONSTANT
450 def FunctionCode(self, part=None):
451 "Returns the function code for this NCP packet."
453 return self.func_code
455 if self.HasSubFunction():
456 return (self.func_code & 0xff00) >> 8
458 return self.func_code
460 if self.HasSubFunction():
461 return self.func_code & 0x00ff
465 msg.write("Unknown directive '%s' for function_code()\n" % (part))
468 def HasSubFunction(self):
469 "Does this NPC packet require a subfunction field?"
470 if self.func_code <= 0xff:
476 return self.has_length
478 def Description(self):
479 return self.description
484 def PTVCRequest(self):
485 return self.ptvc_request
488 return self.ptvc_reply
490 def Request(self, size, records=[], **kwargs):
491 self.request_size = size
492 self.request_records = records
493 if self.HasSubFunction():
495 self.CheckRecords(size, records, "Request", 10)
497 self.CheckRecords(size, records, "Request", 8)
499 self.CheckRecords(size, records, "Request", 7)
500 self.ptvc_request = self.MakePTVC(records, "request")
502 if kwargs.has_key("info_str"):
503 self.req_info_str = kwargs["info_str"]
505 def Reply(self, size, records=[]):
506 self.reply_size = size
507 self.reply_records = records
508 self.CheckRecords(size, records, "Reply", 8)
509 self.ptvc_reply = self.MakePTVC(records, "reply")
511 def CheckRecords(self, size, records, descr, min_hdr_length):
512 "Simple sanity check"
513 if size == NO_LENGTH_CHECK:
517 if type(size) == type(()):
521 lower = min_hdr_length
522 upper = min_hdr_length
524 for record in records:
525 rec_size = record[REC_LENGTH]
528 if type(rec_size) == type(()):
529 rec_lower = rec_size[0]
530 rec_upper = rec_size[1]
532 lower = lower + rec_lower
533 upper = upper + rec_upper
537 msg.write("%s records for 2222/0x%x sum to %d bytes minimum, but param1 shows %d\n" \
538 % (descr, self.FunctionCode(), lower, min))
541 msg.write("%s records for 2222/0x%x sum to %d bytes maximum, but param1 shows %d\n" \
542 % (descr, self.FunctionCode(), upper, max))
549 def MakePTVC(self, records, name_suffix):
550 """Makes a PTVC out of a request or reply record list. Possibly adds
551 it to the global list of PTVCs (the global list is a UniqueCollection,
552 so an equivalent PTVC may already be in the global list)."""
554 name = "%s_%s" % (self.CName(), name_suffix)
555 ptvc = PTVC(name, records)
556 return ptvc_lists.Add(ptvc)
559 "Returns a C symbol based on the NCP function code"
560 return "ncp_0x%x" % (self.func_code)
562 def InfoStrName(self):
563 "Returns a C symbol based on the NCP function code, for the info_str"
564 return "info_str_0x%x" % (self.func_code)
567 """Returns a list of variables used in the request and reply records.
568 A variable is listed only once, even if it is used twice (once in
569 the request, once in the reply)."""
572 if self.request_records:
573 for record in self.request_records:
574 var = record[REC_FIELD]
575 variables[var.HFName()] = var
577 sub_vars = var.SubVariables()
579 variables[sv.HFName()] = sv
581 if self.reply_records:
582 for record in self.reply_records:
583 var = record[REC_FIELD]
584 variables[var.HFName()] = var
586 sub_vars = var.SubVariables()
588 variables[sv.HFName()] = sv
590 return variables.values()
592 def CalculateReqConds(self):
593 """Returns a list of request conditions (dfilter text) used
594 in the reply records. A request condition is listed only once,"""
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 WiresharkFType(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 = -1;\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 uint64(Type, CountingNumber):
877 def __init__(self, abbrev, descr, endianness = LE):
878 Type.__init__(self, abbrev, descr, 8, endianness)
880 class boolean8(uint8):
885 class boolean16(uint16):
890 class boolean24(uint24):
895 class boolean32(uint32):
903 class nstring8(Type, nstring):
904 """A string of up to (2^8)-1 characters. The first byte
905 gives the string length."""
908 ftype = "FT_UINT_STRING"
910 def __init__(self, abbrev, descr):
911 Type.__init__(self, abbrev, descr, 1)
913 class nstring16(Type, nstring):
914 """A string of up to (2^16)-2 characters. The first 2 bytes
915 gives the string length."""
918 ftype = "FT_UINT_STRING"
920 def __init__(self, abbrev, descr, endianness = LE):
921 Type.__init__(self, abbrev, descr, 2, endianness)
923 class nstring32(Type, nstring):
924 """A string of up to (2^32)-4 characters. The first 4 bytes
925 gives the string length."""
928 ftype = "FT_UINT_STRING"
930 def __init__(self, abbrev, descr, endianness = LE):
931 Type.__init__(self, abbrev, descr, 4, endianness)
933 class fw_string(Type):
934 """A fixed-width string of n bytes."""
940 def __init__(self, abbrev, descr, bytes):
941 Type.__init__(self, abbrev, descr, bytes)
945 "NUL-terminated string, with a maximum length"
950 def __init__(self, abbrev, descr):
951 Type.__init__(self, abbrev, descr, PROTO_LENGTH_UNKNOWN)
953 class val_string(Type):
954 """Abstract class for val_stringN, where N is number
955 of bits that key takes up."""
960 def __init__(self, abbrev, descr, val_string_array, endianness = LE):
961 Type.__init__(self, abbrev, descr, self.bytes, endianness)
962 self.values = val_string_array
965 result = "static const value_string %s[] = {\n" \
966 % (self.ValuesCName())
967 for val_record in self.values:
968 value = val_record[0]
970 value_repr = self.value_format % value
971 result = result + '\t{ %s,\t"%s" },\n' \
974 value_repr = self.value_format % 0
975 result = result + "\t{ %s,\tNULL },\n" % (value_repr)
976 result = result + "};\n"
977 REC_VAL_STRING_RES = self.value_format % value
980 def ValuesCName(self):
981 return "ncp_%s_vals" % (self.abbrev)
983 def ValuesName(self):
984 return "VALS(%s)" % (self.ValuesCName())
986 class val_string8(val_string):
990 value_format = "0x%02x"
992 class val_string16(val_string):
993 type = "val_string16"
996 value_format = "0x%04x"
998 class val_string32(val_string):
999 type = "val_string32"
1002 value_format = "0x%08x"
1009 def __init__(self, abbrev, descr, bytes):
1010 Type.__init__(self, abbrev, descr, bytes, NA)
1015 class nbytes8(Type, nbytes):
1016 """A series of up to (2^8)-1 bytes. The first byte
1017 gives the byte-string length."""
1020 ftype = "FT_UINT_BYTES"
1022 def __init__(self, abbrev, descr, endianness = LE):
1023 Type.__init__(self, abbrev, descr, 1, endianness)
1025 class nbytes16(Type, nbytes):
1026 """A series of up to (2^16)-2 bytes. The first 2 bytes
1027 gives the byte-string length."""
1030 ftype = "FT_UINT_BYTES"
1032 def __init__(self, abbrev, descr, endianness = LE):
1033 Type.__init__(self, abbrev, descr, 2, endianness)
1035 class nbytes32(Type, nbytes):
1036 """A series of up to (2^32)-4 bytes. The first 4 bytes
1037 gives the byte-string length."""
1040 ftype = "FT_UINT_BYTES"
1042 def __init__(self, abbrev, descr, endianness = LE):
1043 Type.__init__(self, abbrev, descr, 4, endianness)
1045 class bf_uint(Type):
1049 def __init__(self, bitmask, abbrev, descr, endianness=LE):
1050 Type.__init__(self, abbrev, descr, self.bytes, endianness)
1051 self.bitmask = bitmask
1056 class bf_val_str(bf_uint):
1060 def __init__(self, bitmask, abbrev, descr, val_string_array, endiannes=LE):
1061 bf_uint.__init__(self, bitmask, abbrev, descr, endiannes)
1062 self.values = val_string_array
1064 def ValuesName(self):
1065 return "VALS(%s)" % (self.ValuesCName())
1067 class bf_val_str8(bf_val_str, val_string8):
1068 type = "bf_val_str8"
1073 class bf_val_str16(bf_val_str, val_string16):
1074 type = "bf_val_str16"
1079 class bf_val_str32(bf_val_str, val_string32):
1080 type = "bf_val_str32"
1088 class bf_boolean8(bf_uint, boolean8, bf_boolean):
1089 type = "bf_boolean8"
1090 ftype = "FT_BOOLEAN"
1094 class bf_boolean16(bf_uint, boolean16, bf_boolean):
1095 type = "bf_boolean16"
1096 ftype = "FT_BOOLEAN"
1100 class bf_boolean24(bf_uint, boolean24, bf_boolean):
1101 type = "bf_boolean24"
1102 ftype = "FT_BOOLEAN"
1106 class bf_boolean32(bf_uint, boolean32, bf_boolean):
1107 type = "bf_boolean32"
1108 ftype = "FT_BOOLEAN"
1112 class bitfield(Type):
1116 def __init__(self, vars):
1119 if isinstance(var, bf_boolean):
1120 if not isinstance(var, self.bf_type):
1121 print "%s must be of type %s" % \
1122 (var.Abbreviation(),
1125 var_hash[var.bitmask] = var
1127 bitmasks = var_hash.keys()
1132 for bitmask in bitmasks:
1133 var = var_hash[bitmask]
1134 ordered_vars.append(var)
1136 self.vars = ordered_vars
1137 self.ptvcname = "ncp_%s_bitfield" % (self.abbrev,)
1138 self.hfname = "hf_ncp_%s" % (self.abbrev,)
1139 self.sub_ptvc = PTVCBitfield(self.PTVCName(), self.vars)
1141 def SubVariables(self):
1144 def SubVariablesPTVC(self):
1145 return self.sub_ptvc
1148 return self.ptvcname
1151 class bitfield8(bitfield, uint8):
1154 bf_type = bf_boolean8
1156 def __init__(self, abbrev, descr, vars):
1157 uint8.__init__(self, abbrev, descr)
1158 bitfield.__init__(self, vars)
1160 class bitfield16(bitfield, uint16):
1163 bf_type = bf_boolean16
1165 def __init__(self, abbrev, descr, vars, endianness=LE):
1166 uint16.__init__(self, abbrev, descr, endianness)
1167 bitfield.__init__(self, vars)
1169 class bitfield24(bitfield, uint24):
1172 bf_type = bf_boolean24
1174 def __init__(self, abbrev, descr, vars, endianness=LE):
1175 uint24.__init__(self, abbrev, descr, endianness)
1176 bitfield.__init__(self, vars)
1178 class bitfield32(bitfield, uint32):
1181 bf_type = bf_boolean32
1183 def __init__(self, abbrev, descr, vars, endianness=LE):
1184 uint32.__init__(self, abbrev, descr, endianness)
1185 bitfield.__init__(self, vars)
1188 # Force the endianness of a field to a non-default value; used in
1189 # the list of fields of a structure.
1191 def endian(field, endianness):
1192 return [-1, field.Length(), field, endianness, NO_VAR, NO_REPEAT, NO_REQ_COND]
1194 ##############################################################################
1195 # NCP Field Types. Defined in Appendix A of "Programmer's Guide..."
1196 ##############################################################################
1198 AbortQueueFlag = val_string8("abort_q_flag", "Abort Queue Flag", [
1199 [ 0x00, "Place at End of Queue" ],
1200 [ 0x01, "Do Not Place Spool File, Examine Flags" ],
1202 AcceptedMaxSize = uint16("accepted_max_size", "Accepted Max Size")
1203 AccessControl = val_string8("access_control", "Access Control", [
1204 [ 0x00, "Open for read by this client" ],
1205 [ 0x01, "Open for write by this client" ],
1206 [ 0x02, "Deny read requests from other stations" ],
1207 [ 0x03, "Deny write requests from other stations" ],
1208 [ 0x04, "File detached" ],
1209 [ 0x05, "TTS holding detach" ],
1210 [ 0x06, "TTS holding open" ],
1212 AccessDate = uint16("access_date", "Access Date")
1214 AccessMode = bitfield8("access_mode", "Access Mode", [
1215 bf_boolean8(0x01, "acc_mode_read", "Read Access"),
1216 bf_boolean8(0x02, "acc_mode_write", "Write Access"),
1217 bf_boolean8(0x04, "acc_mode_deny_read", "Deny Read Access"),
1218 bf_boolean8(0x08, "acc_mode_deny_write", "Deny Write Access"),
1219 bf_boolean8(0x10, "acc_mode_comp", "Compatibility Mode"),
1221 AccessPrivileges = bitfield8("access_privileges", "Access Privileges", [
1222 bf_boolean8(0x01, "acc_priv_read", "Read Privileges (files only)"),
1223 bf_boolean8(0x02, "acc_priv_write", "Write Privileges (files only)"),
1224 bf_boolean8(0x04, "acc_priv_open", "Open Privileges (files only)"),
1225 bf_boolean8(0x08, "acc_priv_create", "Create Privileges (files only)"),
1226 bf_boolean8(0x10, "acc_priv_delete", "Delete Privileges (files only)"),
1227 bf_boolean8(0x20, "acc_priv_parent", "Parental Privileges (directories only for creating, deleting, and renaming)"),
1228 bf_boolean8(0x40, "acc_priv_search", "Search Privileges (directories only)"),
1229 bf_boolean8(0x80, "acc_priv_modify", "Modify File Status Flags Privileges (files and directories)"),
1231 AccessRightsMask = bitfield8("access_rights_mask", "Access Rights", [
1232 bf_boolean8(0x0001, "acc_rights_read", "Read Rights"),
1233 bf_boolean8(0x0002, "acc_rights_write", "Write Rights"),
1234 bf_boolean8(0x0004, "acc_rights_open", "Open Rights"),
1235 bf_boolean8(0x0008, "acc_rights_create", "Create Rights"),
1236 bf_boolean8(0x0010, "acc_rights_delete", "Delete Rights"),
1237 bf_boolean8(0x0020, "acc_rights_parent", "Parental Rights"),
1238 bf_boolean8(0x0040, "acc_rights_search", "Search Rights"),
1239 bf_boolean8(0x0080, "acc_rights_modify", "Modify Rights"),
1241 AccessRightsMaskWord = bitfield16("access_rights_mask_word", "Access Rights", [
1242 bf_boolean16(0x0001, "acc_rights1_read", "Read Rights"),
1243 bf_boolean16(0x0002, "acc_rights1_write", "Write Rights"),
1244 bf_boolean16(0x0004, "acc_rights1_open", "Open Rights"),
1245 bf_boolean16(0x0008, "acc_rights1_create", "Create Rights"),
1246 bf_boolean16(0x0010, "acc_rights1_delete", "Delete Rights"),
1247 bf_boolean16(0x0020, "acc_rights1_parent", "Parental Rights"),
1248 bf_boolean16(0x0040, "acc_rights1_search", "Search Rights"),
1249 bf_boolean16(0x0080, "acc_rights1_modify", "Modify Rights"),
1250 bf_boolean16(0x0100, "acc_rights1_supervisor", "Supervisor Access Rights"),
1252 AccountBalance = uint32("account_balance", "Account Balance")
1253 AccountVersion = uint8("acct_version", "Acct Version")
1254 ActionFlag = bitfield8("action_flag", "Action Flag", [
1255 bf_boolean8(0x01, "act_flag_open", "Open"),
1256 bf_boolean8(0x02, "act_flag_replace", "Replace"),
1257 bf_boolean8(0x10, "act_flag_create", "Create"),
1259 ActiveConnBitList = fw_string("active_conn_bit_list", "Active Connection List", 512)
1260 ActiveIndexedFiles = uint16("active_indexed_files", "Active Indexed Files")
1261 ActualMaxBinderyObjects = uint16("actual_max_bindery_objects", "Actual Max Bindery Objects")
1262 ActualMaxIndexedFiles = uint16("actual_max_indexed_files", "Actual Max Indexed Files")
1263 ActualMaxOpenFiles = uint16("actual_max_open_files", "Actual Max Open Files")
1264 ActualMaxSimultaneousTransactions = uint16("actual_max_sim_trans", "Actual Max Simultaneous Transactions")
1265 ActualMaxUsedDirectoryEntries = uint16("actual_max_used_directory_entries", "Actual Max Used Directory Entries")
1266 ActualMaxUsedRoutingBuffers = uint16("actual_max_used_routing_buffers", "Actual Max Used Routing Buffers")
1267 ActualResponseCount = uint16("actual_response_count", "Actual Response Count")
1268 AddNameSpaceAndVol = stringz("add_nm_spc_and_vol", "Add Name Space and Volume")
1269 AFPEntryID = uint32("afp_entry_id", "AFP Entry ID", BE)
1270 AFPEntryID.Display("BASE_HEX")
1271 AllocAvailByte = uint32("alloc_avail_byte", "Bytes Available for Allocation")
1272 AllocateMode = bitfield16("alloc_mode", "Allocate Mode", [
1273 bf_val_str16(0x0001, "alloc_dir_hdl", "Dir Handle Type",[
1274 [0x00, "Permanent"],
1275 [0x01, "Temporary"],
1277 bf_boolean16(0x0002, "alloc_spec_temp_dir_hdl","Special Temporary Directory Handle"),
1278 bf_boolean16(0x4000, "alloc_reply_lvl2","Reply Level 2"),
1279 bf_boolean16(0x8000, "alloc_dst_name_spc","Destination Name Space Input Parameter"),
1281 AllocationBlockSize = uint32("allocation_block_size", "Allocation Block Size")
1282 AllocFreeCount = uint32("alloc_free_count", "Reclaimable Free Bytes")
1283 ApplicationNumber = uint16("application_number", "Application Number")
1284 ArchivedTime = uint16("archived_time", "Archived Time")
1285 ArchivedTime.NWTime()
1286 ArchivedDate = uint16("archived_date", "Archived Date")
1287 ArchivedDate.NWDate()
1288 ArchiverID = uint32("archiver_id", "Archiver ID", BE)
1289 ArchiverID.Display("BASE_HEX")
1290 AssociatedNameSpace = uint8("associated_name_space", "Associated Name Space")
1291 AttachDuringProcessing = uint16("attach_during_processing", "Attach During Processing")
1292 AttachedIndexedFiles = uint8("attached_indexed_files", "Attached Indexed Files")
1293 AttachWhileProcessingAttach = uint16("attach_while_processing_attach", "Attach While Processing Attach")
1294 Attributes = uint32("attributes", "Attributes")
1295 AttributesDef = bitfield8("attr_def", "Attributes", [
1296 bf_boolean8(0x01, "att_def_ro", "Read Only"),
1297 bf_boolean8(0x02, "att_def_hidden", "Hidden"),
1298 bf_boolean8(0x04, "att_def_system", "System"),
1299 bf_boolean8(0x08, "att_def_execute", "Execute"),
1300 bf_boolean8(0x10, "att_def_sub_only", "Subdirectory"),
1301 bf_boolean8(0x20, "att_def_archive", "Archive"),
1302 bf_boolean8(0x80, "att_def_shareable", "Shareable"),
1304 AttributesDef16 = bitfield16("attr_def_16", "Attributes", [
1305 bf_boolean16(0x0001, "att_def16_ro", "Read Only"),
1306 bf_boolean16(0x0002, "att_def16_hidden", "Hidden"),
1307 bf_boolean16(0x0004, "att_def16_system", "System"),
1308 bf_boolean16(0x0008, "att_def16_execute", "Execute"),
1309 bf_boolean16(0x0010, "att_def16_sub_only", "Subdirectory"),
1310 bf_boolean16(0x0020, "att_def16_archive", "Archive"),
1311 bf_boolean16(0x0080, "att_def16_shareable", "Shareable"),
1312 bf_boolean16(0x1000, "att_def16_transaction", "Transactional"),
1313 bf_boolean16(0x4000, "att_def16_read_audit", "Read Audit"),
1314 bf_boolean16(0x8000, "att_def16_write_audit", "Write Audit"),
1316 AttributesDef32 = bitfield32("attr_def_32", "Attributes", [
1317 bf_boolean32(0x00000001, "att_def32_ro", "Read Only"),
1318 bf_boolean32(0x00000002, "att_def32_hidden", "Hidden"),
1319 bf_boolean32(0x00000004, "att_def32_system", "System"),
1320 bf_boolean32(0x00000008, "att_def32_execute", "Execute"),
1321 bf_boolean32(0x00000010, "att_def32_sub_only", "Subdirectory"),
1322 bf_boolean32(0x00000020, "att_def32_archive", "Archive"),
1323 bf_boolean32(0x00000040, "att_def32_execute_confirm", "Execute Confirm"),
1324 bf_boolean32(0x00000080, "att_def32_shareable", "Shareable"),
1325 bf_val_str32(0x00000700, "att_def32_search", "Search Mode",[
1326 [0, "Search on all Read Only Opens"],
1327 [1, "Search on Read Only Opens with no Path"],
1328 [2, "Shell Default Search Mode"],
1329 [3, "Search on all Opens with no Path"],
1330 [4, "Do not Search"],
1331 [5, "Reserved - Do not Use"],
1332 [6, "Search on All Opens"],
1333 [7, "Reserved - Do not Use"],
1335 bf_boolean32(0x00000800, "att_def32_no_suballoc", "No Suballoc"),
1336 bf_boolean32(0x00001000, "att_def32_transaction", "Transactional"),
1337 bf_boolean32(0x00004000, "att_def32_read_audit", "Read Audit"),
1338 bf_boolean32(0x00008000, "att_def32_write_audit", "Write Audit"),
1339 bf_boolean32(0x00010000, "att_def32_purge", "Immediate Purge"),
1340 bf_boolean32(0x00020000, "att_def32_reninhibit", "Rename Inhibit"),
1341 bf_boolean32(0x00040000, "att_def32_delinhibit", "Delete Inhibit"),
1342 bf_boolean32(0x00080000, "att_def32_cpyinhibit", "Copy Inhibit"),
1343 bf_boolean32(0x00100000, "att_def32_file_audit", "File Audit"),
1344 bf_boolean32(0x00200000, "att_def32_reserved", "Reserved"),
1345 bf_boolean32(0x00400000, "att_def32_data_migrate", "Data Migrated"),
1346 bf_boolean32(0x00800000, "att_def32_inhibit_dm", "Inhibit Data Migration"),
1347 bf_boolean32(0x01000000, "att_def32_dm_save_key", "Data Migration Save Key"),
1348 bf_boolean32(0x02000000, "att_def32_im_comp", "Immediate Compress"),
1349 bf_boolean32(0x04000000, "att_def32_comp", "Compressed"),
1350 bf_boolean32(0x08000000, "att_def32_comp_inhibit", "Inhibit Compression"),
1351 bf_boolean32(0x10000000, "att_def32_reserved2", "Reserved"),
1352 bf_boolean32(0x20000000, "att_def32_cant_compress", "Can't Compress"),
1353 bf_boolean32(0x40000000, "att_def32_attr_archive", "Archive Attributes"),
1354 bf_boolean32(0x80000000, "att_def32_reserved3", "Reserved"),
1356 AttributeValidFlag = uint32("attribute_valid_flag", "Attribute Valid Flag")
1357 AuditFileVersionDate = uint16("audit_file_ver_date", "Audit File Version Date")
1358 AuditFileVersionDate.NWDate()
1359 AuditFlag = val_string8("audit_flag", "Audit Flag", [
1360 [ 0x00, "Do NOT audit object" ],
1361 [ 0x01, "Audit object" ],
1363 AuditHandle = uint32("audit_handle", "Audit File Handle")
1364 AuditHandle.Display("BASE_HEX")
1365 AuditID = uint32("audit_id", "Audit ID", BE)
1366 AuditID.Display("BASE_HEX")
1367 AuditIDType = val_string16("audit_id_type", "Audit ID Type", [
1368 [ 0x0000, "Volume" ],
1369 [ 0x0001, "Container" ],
1371 AuditVersionDate = uint16("audit_ver_date", "Auditing Version Date")
1372 AuditVersionDate.NWDate()
1373 AvailableBlocks = uint32("available_blocks", "Available Blocks")
1374 AvailableClusters = uint16("available_clusters", "Available Clusters")
1375 AvailableDirectorySlots = uint16("available_directory_slots", "Available Directory Slots")
1376 AvailableDirEntries = uint32("available_dir_entries", "Available Directory Entries")
1377 AvailableIndexedFiles = uint16("available_indexed_files", "Available Indexed Files")
1379 BackgroundAgedWrites = uint32("background_aged_writes", "Background Aged Writes")
1380 BackgroundDirtyWrites = uint32("background_dirty_writes", "Background Dirty Writes")
1381 BadLogicalConnectionCount = uint16("bad_logical_connection_count", "Bad Logical Connection Count")
1382 BannerName = fw_string("banner_name", "Banner Name", 14)
1383 BaseDirectoryID = uint32("base_directory_id", "Base Directory ID", BE)
1384 BaseDirectoryID.Display("BASE_HEX")
1385 binderyContext = nstring8("bindery_context", "Bindery Context")
1386 BitMap = bytes("bit_map", "Bit Map", 512)
1387 BlockNumber = uint32("block_number", "Block Number")
1388 BlockSize = uint16("block_size", "Block Size")
1389 BlockSizeInSectors = uint32("block_size_in_sectors", "Block Size in Sectors")
1390 BoardInstalled = uint8("board_installed", "Board Installed")
1391 BoardNumber = uint32("board_number", "Board Number")
1392 BoardNumbers = uint32("board_numbers", "Board Numbers")
1393 BufferSize = uint16("buffer_size", "Buffer Size")
1394 BusString = stringz("bus_string", "Bus String")
1395 BusType = val_string8("bus_type", "Bus Type", [
1397 [0x01, "Micro Channel" ],
1404 BytesActuallyTransferred = uint32("bytes_actually_transferred", "Bytes Actually Transferred")
1405 BytesRead = fw_string("bytes_read", "Bytes Read", 6)
1406 BytesToCopy = uint32("bytes_to_copy", "Bytes to Copy")
1407 BytesWritten = fw_string("bytes_written", "Bytes Written", 6)
1409 CacheAllocations = uint32("cache_allocations", "Cache Allocations")
1410 CacheBlockScrapped = uint16("cache_block_scrapped", "Cache Block Scrapped")
1411 CacheBufferCount = uint16("cache_buffer_count", "Cache Buffer Count")
1412 CacheBufferSize = uint16("cache_buffer_size", "Cache Buffer Size")
1413 CacheFullWriteRequests = uint32("cache_full_write_requests", "Cache Full Write Requests")
1414 CacheGetRequests = uint32("cache_get_requests", "Cache Get Requests")
1415 CacheHitOnUnavailableBlock = uint16("cache_hit_on_unavailable_block", "Cache Hit On Unavailable Block")
1416 CacheHits = uint32("cache_hits", "Cache Hits")
1417 CacheMisses = uint32("cache_misses", "Cache Misses")
1418 CachePartialWriteRequests = uint32("cache_partial_write_requests", "Cache Partial Write Requests")
1419 CacheReadRequests = uint32("cache_read_requests", "Cache Read Requests")
1420 CacheWriteRequests = uint32("cache_write_requests", "Cache Write Requests")
1421 CategoryName = stringz("category_name", "Category Name")
1422 CCFileHandle = uint32("cc_file_handle", "File Handle")
1423 CCFileHandle.Display("BASE_HEX")
1424 CCFunction = val_string8("cc_function", "OP-Lock Flag", [
1425 [ 0x01, "Clear OP-Lock" ],
1426 [ 0x02, "Acknowledge Callback" ],
1427 [ 0x03, "Decline Callback" ],
1428 [ 0x04, "Level 2" ],
1430 ChangeBits = bitfield16("change_bits", "Change Bits", [
1431 bf_boolean16(0x0001, "change_bits_modify", "Modify Name"),
1432 bf_boolean16(0x0002, "change_bits_fatt", "File Attributes"),
1433 bf_boolean16(0x0004, "change_bits_cdate", "Creation Date"),
1434 bf_boolean16(0x0008, "change_bits_ctime", "Creation Time"),
1435 bf_boolean16(0x0010, "change_bits_owner", "Owner ID"),
1436 bf_boolean16(0x0020, "change_bits_adate", "Archive Date"),
1437 bf_boolean16(0x0040, "change_bits_atime", "Archive Time"),
1438 bf_boolean16(0x0080, "change_bits_aid", "Archiver ID"),
1439 bf_boolean16(0x0100, "change_bits_udate", "Update Date"),
1440 bf_boolean16(0x0200, "change_bits_utime", "Update Time"),
1441 bf_boolean16(0x0400, "change_bits_uid", "Update ID"),
1442 bf_boolean16(0x0800, "change_bits_acc_date", "Access Date"),
1443 bf_boolean16(0x1000, "change_bits_max_acc_mask", "Maximum Access Mask"),
1444 bf_boolean16(0x2000, "change_bits_max_space", "Maximum Space"),
1446 ChannelState = val_string8("channel_state", "Channel State", [
1447 [ 0x00, "Channel is running" ],
1448 [ 0x01, "Channel is stopping" ],
1449 [ 0x02, "Channel is stopped" ],
1450 [ 0x03, "Channel is not functional" ],
1452 ChannelSynchronizationState = val_string8("channel_synchronization_state", "Channel Synchronization State", [
1453 [ 0x00, "Channel is not being used" ],
1454 [ 0x02, "NetWare is using the channel; no one else wants it" ],
1455 [ 0x04, "NetWare is using the channel; someone else wants it" ],
1456 [ 0x06, "Someone else is using the channel; NetWare does not need it" ],
1457 [ 0x08, "Someone else is using the channel; NetWare needs it" ],
1458 [ 0x0A, "Someone else has released the channel; NetWare should use it" ],
1460 ChargeAmount = uint32("charge_amount", "Charge Amount")
1461 ChargeInformation = uint32("charge_information", "Charge Information")
1462 ClientCompFlag = val_string16("client_comp_flag", "Completion Flag", [
1463 [ 0x0000, "Successful" ],
1464 [ 0x0001, "Illegal Station Number" ],
1465 [ 0x0002, "Client Not Logged In" ],
1466 [ 0x0003, "Client Not Accepting Messages" ],
1467 [ 0x0004, "Client Already has a Message" ],
1468 [ 0x0096, "No Alloc Space for the Message" ],
1469 [ 0x00fd, "Bad Station Number" ],
1470 [ 0x00ff, "Failure" ],
1472 ClientIDNumber = uint32("client_id_number", "Client ID Number", BE)
1473 ClientIDNumber.Display("BASE_HEX")
1474 ClientList = uint32("client_list", "Client List")
1475 ClientListCount = uint16("client_list_cnt", "Client List Count")
1476 ClientListLen = uint8("client_list_len", "Client List Length")
1477 ClientName = nstring8("client_name", "Client Name")
1478 ClientRecordArea = fw_string("client_record_area", "Client Record Area", 152)
1479 ClientStation = uint8("client_station", "Client Station")
1480 ClientStationLong = uint32("client_station_long", "Client Station")
1481 ClientTaskNumber = uint8("client_task_number", "Client Task Number")
1482 ClientTaskNumberLong = uint32("client_task_number_long", "Client Task Number")
1483 ClusterCount = uint16("cluster_count", "Cluster Count")
1484 ClustersUsedByDirectories = uint32("clusters_used_by_directories", "Clusters Used by Directories")
1485 ClustersUsedByExtendedDirectories = uint32("clusters_used_by_extended_dirs", "Clusters Used by Extended Directories")
1486 ClustersUsedByFAT = uint32("clusters_used_by_fat", "Clusters Used by FAT")
1487 CodePage = uint32("code_page", "Code Page")
1488 ComCnts = uint16("com_cnts", "Communication Counters")
1489 Comment = nstring8("comment", "Comment")
1490 CommentType = uint16("comment_type", "Comment Type")
1491 CompletionCode = uint32("ncompletion_code", "Completion Code")
1492 CompressedDataStreamsCount = uint32("compressed_data_streams_count", "Compressed Data Streams Count")
1493 CompressedLimboDataStreamsCount = uint32("compressed_limbo_data_streams_count", "Compressed Limbo Data Streams Count")
1494 CompressedSectors = uint32("compressed_sectors", "Compressed Sectors")
1495 compressionStage = uint32("compression_stage", "Compression Stage")
1496 compressVolume = uint32("compress_volume", "Volume Compression")
1497 ConfigMajorVN = uint8("config_major_vn", "Configuration Major Version Number")
1498 ConfigMinorVN = uint8("config_minor_vn", "Configuration Minor Version Number")
1499 ConfigurationDescription = fw_string("configuration_description", "Configuration Description", 80)
1500 ConfigurationText = fw_string("configuration_text", "Configuration Text", 160)
1501 ConfiguredMaxBinderyObjects = uint16("configured_max_bindery_objects", "Configured Max Bindery Objects")
1502 ConfiguredMaxOpenFiles = uint16("configured_max_open_files", "Configured Max Open Files")
1503 ConfiguredMaxRoutingBuffers = uint16("configured_max_routing_buffers", "Configured Max Routing Buffers")
1504 ConfiguredMaxSimultaneousTransactions = uint16("cfg_max_simultaneous_transactions", "Configured Max Simultaneous Transactions")
1505 ConnectedLAN = uint32("connected_lan", "LAN Adapter")
1506 ConnectionControlBits = bitfield8("conn_ctrl_bits", "Connection Control", [
1507 bf_boolean8(0x01, "enable_brdcasts", "Enable Broadcasts"),
1508 bf_boolean8(0x02, "enable_personal_brdcasts", "Enable Personal Broadcasts"),
1509 bf_boolean8(0x04, "enable_wdog_messages", "Enable Watchdog Message"),
1510 bf_boolean8(0x10, "disable_brdcasts", "Disable Broadcasts"),
1511 bf_boolean8(0x20, "disable_personal_brdcasts", "Disable Personal Broadcasts"),
1512 bf_boolean8(0x40, "disable_wdog_messages", "Disable Watchdog Message"),
1514 ConnectionListCount = uint32("conn_list_count", "Connection List Count")
1515 ConnectionList = uint32("connection_list", "Connection List")
1516 ConnectionNumber = uint32("connection_number", "Connection Number", BE)
1517 ConnectionNumberList = nstring8("connection_number_list", "Connection Number List")
1518 ConnectionNumberWord = uint16("conn_number_word", "Connection Number")
1519 ConnectionNumberByte = uint8("conn_number_byte", "Connection Number")
1520 ConnectionServiceType = val_string8("connection_service_type","Connection Service Type",[
1521 [ 0x01, "CLIB backward Compatibility" ],
1522 [ 0x02, "NCP Connection" ],
1523 [ 0x03, "NLM Connection" ],
1524 [ 0x04, "AFP Connection" ],
1525 [ 0x05, "FTAM Connection" ],
1526 [ 0x06, "ANCP Connection" ],
1527 [ 0x07, "ACP Connection" ],
1528 [ 0x08, "SMB Connection" ],
1529 [ 0x09, "Winsock Connection" ],
1531 ConnectionsInUse = uint16("connections_in_use", "Connections In Use")
1532 ConnectionsMaxUsed = uint16("connections_max_used", "Connections Max Used")
1533 ConnectionsSupportedMax = uint16("connections_supported_max", "Connections Supported Max")
1534 ConnectionType = val_string8("connection_type", "Connection Type", [
1535 [ 0x00, "Not in use" ],
1537 [ 0x0b, "UDP (for IP)" ],
1539 ConnListLen = uint8("conn_list_len", "Connection List Length")
1540 connList = uint32("conn_list", "Connection List")
1541 ControlFlags = val_string8("control_flags", "Control Flags", [
1542 [ 0x00, "Forced Record Locking is Off" ],
1543 [ 0x01, "Forced Record Locking is On" ],
1545 ControllerDriveNumber = uint8("controller_drive_number", "Controller Drive Number")
1546 ControllerNumber = uint8("controller_number", "Controller Number")
1547 ControllerType = uint8("controller_type", "Controller Type")
1548 Cookie1 = uint32("cookie_1", "Cookie 1")
1549 Cookie2 = uint32("cookie_2", "Cookie 2")
1550 Copies = uint8( "copies", "Copies" )
1551 CoprocessorFlag = uint32("co_processor_flag", "CoProcessor Present Flag")
1552 CoProcessorString = stringz("co_proc_string", "CoProcessor String")
1553 CounterMask = val_string8("counter_mask", "Counter Mask", [
1554 [ 0x00, "Counter is Valid" ],
1555 [ 0x01, "Counter is not Valid" ],
1557 CPUNumber = uint32("cpu_number", "CPU Number")
1558 CPUString = stringz("cpu_string", "CPU String")
1559 CPUType = val_string8("cpu_type", "CPU Type", [
1562 [ 0x02, "Pentium" ],
1563 [ 0x03, "Pentium Pro" ],
1565 CreationDate = uint16("creation_date", "Creation Date")
1566 CreationDate.NWDate()
1567 CreationTime = uint16("creation_time", "Creation Time")
1568 CreationTime.NWTime()
1569 CreatorID = uint32("creator_id", "Creator ID", BE)
1570 CreatorID.Display("BASE_HEX")
1571 CreatorNameSpaceNumber = val_string8("creator_name_space_number", "Creator Name Space Number", [
1572 [ 0x00, "DOS Name Space" ],
1573 [ 0x01, "MAC Name Space" ],
1574 [ 0x02, "NFS Name Space" ],
1575 [ 0x04, "Long Name Space" ],
1577 CreditLimit = uint32("credit_limit", "Credit Limit")
1578 CtrlFlags = val_string16("ctrl_flags", "Control Flags", [
1579 [ 0x0000, "Do Not Return File Name" ],
1580 [ 0x0001, "Return File Name" ],
1582 curCompBlks = uint32("cur_comp_blks", "Current Compression Blocks")
1583 curInitialBlks = uint32("cur_initial_blks", "Current Initial Blocks")
1584 curIntermediateBlks = uint32("cur_inter_blks", "Current Intermediate Blocks")
1585 CurNumOfRTags = uint32("cur_num_of_r_tags", "Current Number of Resource Tags")
1586 CurrentBlockBeingDecompressed = uint32("cur_blk_being_dcompress", "Current Block Being Decompressed")
1587 CurrentChangedFATs = uint16("current_changed_fats", "Current Changed FAT Entries")
1588 CurrentEntries = uint32("current_entries", "Current Entries")
1589 CurrentFormType = uint8( "current_form_type", "Current Form Type" )
1590 CurrentLFSCounters = uint32("current_lfs_counters", "Current LFS Counters")
1591 CurrentlyUsedRoutingBuffers = uint16("currently_used_routing_buffers", "Currently Used Routing Buffers")
1592 CurrentOpenFiles = uint16("current_open_files", "Current Open Files")
1593 CurrentReferenceID = uint16("curr_ref_id", "Current Reference ID")
1594 CurrentServers = uint32("current_servers", "Current Servers")
1595 CurrentServerTime = uint32("current_server_time", "Time Elapsed Since Server Was Brought Up")
1596 CurrentSpace = uint32("current_space", "Current Space")
1597 CurrentTransactionCount = uint32("current_trans_count", "Current Transaction Count")
1598 CurrentUsedBinderyObjects = uint16("current_used_bindery_objects", "Current Used Bindery Objects")
1599 CurrentUsedDynamicSpace = uint32("current_used_dynamic_space", "Current Used Dynamic Space")
1600 CustomCnts = uint32("custom_cnts", "Custom Counters")
1601 CustomCount = uint32("custom_count", "Custom Count")
1602 CustomCounters = uint32("custom_counters", "Custom Counters")
1603 CustomString = nstring8("custom_string", "Custom String")
1604 CustomVariableValue = uint32("custom_var_value", "Custom Variable Value")
1606 Data = nstring8("data", "Data")
1607 DataForkFirstFAT = uint32("data_fork_first_fat", "Data Fork First FAT Entry")
1608 DataForkLen = uint32("data_fork_len", "Data Fork Len")
1609 DataForkSize = uint32("data_fork_size", "Data Fork Size")
1610 DataSize = uint32("data_size", "Data Size")
1611 DataStream = val_string8("data_stream", "Data Stream", [
1612 [ 0x00, "Resource Fork or DOS" ],
1613 [ 0x01, "Data Fork" ],
1615 DataStreamFATBlocks = uint32("data_stream_fat_blks", "Data Stream FAT Blocks")
1616 DataStreamName = nstring8("data_stream_name", "Data Stream Name")
1617 DataStreamNumber = uint8("data_stream_number", "Data Stream Number")
1618 DataStreamNumberLong = uint32("data_stream_num_long", "Data Stream Number")
1619 DataStreamsCount = uint32("data_streams_count", "Data Streams Count")
1620 DataStreamSize = uint32("data_stream_size", "Size")
1621 DataStreamSpaceAlloc = uint32( "data_stream_space_alloc", "Space Allocated for Data Stream" )
1622 DataTypeFlag = val_string8("data_type_flag", "Data Type Flag", [
1623 [ 0x00, "ASCII Data" ],
1624 [ 0x01, "UTF8 Data" ],
1626 Day = uint8("s_day", "Day")
1627 DayOfWeek = val_string8("s_day_of_week", "Day of Week", [
1630 [ 0x02, "Tuesday" ],
1631 [ 0x03, "Wednesday" ],
1632 [ 0x04, "Thursday" ],
1634 [ 0x06, "Saturday" ],
1636 DeadMirrorTable = bytes("dead_mirror_table", "Dead Mirror Table", 32)
1637 DefinedDataStreams = uint8("defined_data_streams", "Defined Data Streams")
1638 DefinedNameSpaces = uint8("defined_name_spaces", "Defined Name Spaces")
1639 DeletedDate = uint16("deleted_date", "Deleted Date")
1640 DeletedDate.NWDate()
1641 DeletedFileTime = uint32( "deleted_file_time", "Deleted File Time")
1642 DeletedFileTime.Display("BASE_HEX")
1643 DeletedTime = uint16("deleted_time", "Deleted Time")
1644 DeletedTime.NWTime()
1645 DeletedID = uint32( "delete_id", "Deleted ID", BE)
1646 DeletedID.Display("BASE_HEX")
1647 DeleteExistingFileFlag = val_string8("delete_existing_file_flag", "Delete Existing File Flag", [
1648 [ 0x00, "Do Not Delete Existing File" ],
1649 [ 0x01, "Delete Existing File" ],
1651 DenyReadCount = uint16("deny_read_count", "Deny Read Count")
1652 DenyWriteCount = uint16("deny_write_count", "Deny Write Count")
1653 DescriptionStrings = fw_string("description_string", "Description", 100)
1654 DesiredAccessRights = bitfield16("desired_access_rights", "Desired Access Rights", [
1655 bf_boolean16(0x0001, "dsired_acc_rights_read_o", "Read Only"),
1656 bf_boolean16(0x0002, "dsired_acc_rights_write_o", "Write Only"),
1657 bf_boolean16(0x0004, "dsired_acc_rights_deny_r", "Deny Read"),
1658 bf_boolean16(0x0008, "dsired_acc_rights_deny_w", "Deny Write"),
1659 bf_boolean16(0x0010, "dsired_acc_rights_compat", "Compatibility"),
1660 bf_boolean16(0x0040, "dsired_acc_rights_w_thru", "File Write Through"),
1661 bf_boolean16(0x0400, "dsired_acc_rights_del_file_cls", "Delete File Close"),
1663 DesiredResponseCount = uint16("desired_response_count", "Desired Response Count")
1664 DestDirHandle = uint8("dest_dir_handle", "Destination Directory Handle")
1665 DestNameSpace = val_string8("dest_name_space", "Destination Name Space", [
1666 [ 0x00, "DOS Name Space" ],
1667 [ 0x01, "MAC Name Space" ],
1668 [ 0x02, "NFS Name Space" ],
1669 [ 0x04, "Long Name Space" ],
1671 DestPathComponentCount = uint8("dest_component_count", "Destination Path Component Count")
1672 DestPath = nstring8("dest_path", "Destination Path")
1673 DestPath16 = nstring16("dest_path_16", "Destination Path")
1674 DetachDuringProcessing = uint16("detach_during_processing", "Detach During Processing")
1675 DetachForBadConnectionNumber = uint16("detach_for_bad_connection_number", "Detach For Bad Connection Number")
1676 DirHandle = uint8("dir_handle", "Directory Handle")
1677 DirHandleName = uint8("dir_handle_name", "Handle Name")
1678 DirHandleLong = uint32("dir_handle_long", "Directory Handle")
1679 DirectoryAccessRights = uint8("directory_access_rights", "Directory Access Rights")
1681 # XXX - what do the bits mean here?
1683 DirectoryAttributes = uint8("directory_attributes", "Directory Attributes")
1684 DirectoryBase = uint32("dir_base", "Directory Base")
1685 DirectoryBase.Display("BASE_HEX")
1686 DirectoryCount = uint16("dir_count", "Directory Count")
1687 DirectoryEntryNumber = uint32("directory_entry_number", "Directory Entry Number")
1688 DirectoryEntryNumber.Display('BASE_HEX')
1689 DirectoryEntryNumberWord = uint16("directory_entry_number_word", "Directory Entry Number")
1690 DirectoryID = uint16("directory_id", "Directory ID", BE)
1691 DirectoryID.Display("BASE_HEX")
1692 DirectoryName = fw_string("directory_name", "Directory Name",12)
1693 DirectoryName14 = fw_string("directory_name_14", "Directory Name", 14)
1694 DirectoryNameLen = uint8("directory_name_len", "Directory Name Length")
1695 DirectoryNumber = uint32("directory_number", "Directory Number")
1696 DirectoryNumber.Display("BASE_HEX")
1697 DirectoryPath = fw_string("directory_path", "Directory Path", 16)
1698 DirectoryServicesObjectID = uint32("directory_services_object_id", "Directory Services Object ID")
1699 DirectoryServicesObjectID.Display("BASE_HEX")
1700 DirectoryStamp = uint16("directory_stamp", "Directory Stamp (0xD1D1)")
1701 DirtyCacheBuffers = uint16("dirty_cache_buffers", "Dirty Cache Buffers")
1702 DiskChannelNumber = uint8("disk_channel_number", "Disk Channel Number")
1703 DiskChannelTable = val_string8("disk_channel_table", "Disk Channel Table", [
1707 [ 0x04, "Disk Coprocessor" ],
1709 DiskSpaceLimit = uint32("disk_space_limit", "Disk Space Limit")
1710 DMAChannelsUsed = uint32("dma_channels_used", "DMA Channels Used")
1711 DMInfoEntries = uint32("dm_info_entries", "DM Info Entries")
1712 DMInfoLevel = val_string8("dm_info_level", "DM Info Level", [
1713 [ 0x00, "Return Detailed DM Support Module Information" ],
1714 [ 0x01, "Return Number of DM Support Modules" ],
1715 [ 0x02, "Return DM Support Modules Names" ],
1717 DMFlags = val_string8("dm_flags", "DM Flags", [
1718 [ 0x00, "OnLine Media" ],
1719 [ 0x01, "OffLine Media" ],
1721 DMmajorVersion = uint32("dm_major_version", "DM Major Version")
1722 DMminorVersion = uint32("dm_minor_version", "DM Minor Version")
1723 DMPresentFlag = val_string8("dm_present_flag", "Data Migration Present Flag", [
1724 [ 0x00, "Data Migration NLM is not loaded" ],
1725 [ 0x01, "Data Migration NLM has been loaded and is running" ],
1727 DOSDirectoryBase = uint32("dos_directory_base", "DOS Directory Base")
1728 DOSDirectoryBase.Display("BASE_HEX")
1729 DOSDirectoryEntry = uint32("dos_directory_entry", "DOS Directory Entry")
1730 DOSDirectoryEntry.Display("BASE_HEX")
1731 DOSDirectoryEntryNumber = uint32("dos_directory_entry_number", "DOS Directory Entry Number")
1732 DOSDirectoryEntryNumber.Display('BASE_HEX')
1733 DOSFileAttributes = uint8("dos_file_attributes", "DOS File Attributes")
1734 DOSParentDirectoryEntry = uint32("dos_parent_directory_entry", "DOS Parent Directory Entry")
1735 DOSParentDirectoryEntry.Display('BASE_HEX')
1736 DOSSequence = uint32("dos_sequence", "DOS Sequence")
1737 DriveCylinders = uint16("drive_cylinders", "Drive Cylinders")
1738 DriveDefinitionString = fw_string("drive_definition_string", "Drive Definition", 64)
1739 DriveHeads = uint8("drive_heads", "Drive Heads")
1740 DriveMappingTable = bytes("drive_mapping_table", "Drive Mapping Table", 32)
1741 DriveMirrorTable = bytes("drive_mirror_table", "Drive Mirror Table", 32)
1742 DriverBoardName = stringz("driver_board_name", "Driver Board Name")
1743 DriveRemovableFlag = val_string8("drive_removable_flag", "Drive Removable Flag", [
1744 [ 0x00, "Nonremovable" ],
1745 [ 0xff, "Removable" ],
1747 DriverLogicalName = stringz("driver_log_name", "Driver Logical Name")
1748 DriverShortName = stringz("driver_short_name", "Driver Short Name")
1749 DriveSize = uint32("drive_size", "Drive Size")
1750 DstEAFlags = val_string16("dst_ea_flags", "Destination EA Flags", [
1751 [ 0x0000, "Return EAHandle,Information Level 0" ],
1752 [ 0x0001, "Return NetWareHandle,Information Level 0" ],
1753 [ 0x0002, "Return Volume/Directory Number,Information Level 0" ],
1754 [ 0x0004, "Return EAHandle,Close Handle on Error,Information Level 0" ],
1755 [ 0x0005, "Return NetWareHandle,Close Handle on Error,Information Level 0" ],
1756 [ 0x0006, "Return Volume/Directory Number,Close Handle on Error,Information Level 0" ],
1757 [ 0x0010, "Return EAHandle,Information Level 1" ],
1758 [ 0x0011, "Return NetWareHandle,Information Level 1" ],
1759 [ 0x0012, "Return Volume/Directory Number,Information Level 1" ],
1760 [ 0x0014, "Return EAHandle,Close Handle on Error,Information Level 1" ],
1761 [ 0x0015, "Return NetWareHandle,Close Handle on Error,Information Level 1" ],
1762 [ 0x0016, "Return Volume/Directory Number,Close Handle on Error,Information Level 1" ],
1763 [ 0x0020, "Return EAHandle,Information Level 2" ],
1764 [ 0x0021, "Return NetWareHandle,Information Level 2" ],
1765 [ 0x0022, "Return Volume/Directory Number,Information Level 2" ],
1766 [ 0x0024, "Return EAHandle,Close Handle on Error,Information Level 2" ],
1767 [ 0x0025, "Return NetWareHandle,Close Handle on Error,Information Level 2" ],
1768 [ 0x0026, "Return Volume/Directory Number,Close Handle on Error,Information Level 2" ],
1769 [ 0x0030, "Return EAHandle,Information Level 3" ],
1770 [ 0x0031, "Return NetWareHandle,Information Level 3" ],
1771 [ 0x0032, "Return Volume/Directory Number,Information Level 3" ],
1772 [ 0x0034, "Return EAHandle,Close Handle on Error,Information Level 3" ],
1773 [ 0x0035, "Return NetWareHandle,Close Handle on Error,Information Level 3" ],
1774 [ 0x0036, "Return Volume/Directory Number,Close Handle on Error,Information Level 3" ],
1775 [ 0x0040, "Return EAHandle,Information Level 4" ],
1776 [ 0x0041, "Return NetWareHandle,Information Level 4" ],
1777 [ 0x0042, "Return Volume/Directory Number,Information Level 4" ],
1778 [ 0x0044, "Return EAHandle,Close Handle on Error,Information Level 4" ],
1779 [ 0x0045, "Return NetWareHandle,Close Handle on Error,Information Level 4" ],
1780 [ 0x0046, "Return Volume/Directory Number,Close Handle on Error,Information Level 4" ],
1781 [ 0x0050, "Return EAHandle,Information Level 5" ],
1782 [ 0x0051, "Return NetWareHandle,Information Level 5" ],
1783 [ 0x0052, "Return Volume/Directory Number,Information Level 5" ],
1784 [ 0x0054, "Return EAHandle,Close Handle on Error,Information Level 5" ],
1785 [ 0x0055, "Return NetWareHandle,Close Handle on Error,Information Level 5" ],
1786 [ 0x0056, "Return Volume/Directory Number,Close Handle on Error,Information Level 5" ],
1787 [ 0x0060, "Return EAHandle,Information Level 6" ],
1788 [ 0x0061, "Return NetWareHandle,Information Level 6" ],
1789 [ 0x0062, "Return Volume/Directory Number,Information Level 6" ],
1790 [ 0x0064, "Return EAHandle,Close Handle on Error,Information Level 6" ],
1791 [ 0x0065, "Return NetWareHandle,Close Handle on Error,Information Level 6" ],
1792 [ 0x0066, "Return Volume/Directory Number,Close Handle on Error,Information Level 6" ],
1793 [ 0x0070, "Return EAHandle,Information Level 7" ],
1794 [ 0x0071, "Return NetWareHandle,Information Level 7" ],
1795 [ 0x0072, "Return Volume/Directory Number,Information Level 7" ],
1796 [ 0x0074, "Return EAHandle,Close Handle on Error,Information Level 7" ],
1797 [ 0x0075, "Return NetWareHandle,Close Handle on Error,Information Level 7" ],
1798 [ 0x0076, "Return Volume/Directory Number,Close Handle on Error,Information Level 7" ],
1799 [ 0x0080, "Return EAHandle,Information Level 0,Immediate Close Handle" ],
1800 [ 0x0081, "Return NetWareHandle,Information Level 0,Immediate Close Handle" ],
1801 [ 0x0082, "Return Volume/Directory Number,Information Level 0,Immediate Close Handle" ],
1802 [ 0x0084, "Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1803 [ 0x0085, "Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1804 [ 0x0086, "Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1805 [ 0x0090, "Return EAHandle,Information Level 1,Immediate Close Handle" ],
1806 [ 0x0091, "Return NetWareHandle,Information Level 1,Immediate Close Handle" ],
1807 [ 0x0092, "Return Volume/Directory Number,Information Level 1,Immediate Close Handle" ],
1808 [ 0x0094, "Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1809 [ 0x0095, "Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1810 [ 0x0096, "Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1811 [ 0x00a0, "Return EAHandle,Information Level 2,Immediate Close Handle" ],
1812 [ 0x00a1, "Return NetWareHandle,Information Level 2,Immediate Close Handle" ],
1813 [ 0x00a2, "Return Volume/Directory Number,Information Level 2,Immediate Close Handle" ],
1814 [ 0x00a4, "Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1815 [ 0x00a5, "Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1816 [ 0x00a6, "Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1817 [ 0x00b0, "Return EAHandle,Information Level 3,Immediate Close Handle" ],
1818 [ 0x00b1, "Return NetWareHandle,Information Level 3,Immediate Close Handle" ],
1819 [ 0x00b2, "Return Volume/Directory Number,Information Level 3,Immediate Close Handle" ],
1820 [ 0x00b4, "Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1821 [ 0x00b5, "Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1822 [ 0x00b6, "Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1823 [ 0x00c0, "Return EAHandle,Information Level 4,Immediate Close Handle" ],
1824 [ 0x00c1, "Return NetWareHandle,Information Level 4,Immediate Close Handle" ],
1825 [ 0x00c2, "Return Volume/Directory Number,Information Level 4,Immediate Close Handle" ],
1826 [ 0x00c4, "Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1827 [ 0x00c5, "Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1828 [ 0x00c6, "Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1829 [ 0x00d0, "Return EAHandle,Information Level 5,Immediate Close Handle" ],
1830 [ 0x00d1, "Return NetWareHandle,Information Level 5,Immediate Close Handle" ],
1831 [ 0x00d2, "Return Volume/Directory Number,Information Level 5,Immediate Close Handle" ],
1832 [ 0x00d4, "Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1833 [ 0x00d5, "Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1834 [ 0x00d6, "Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1835 [ 0x00e0, "Return EAHandle,Information Level 6,Immediate Close Handle" ],
1836 [ 0x00e1, "Return NetWareHandle,Information Level 6,Immediate Close Handle" ],
1837 [ 0x00e2, "Return Volume/Directory Number,Information Level 6,Immediate Close Handle" ],
1838 [ 0x00e4, "Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1839 [ 0x00e5, "Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1840 [ 0x00e6, "Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1841 [ 0x00f0, "Return EAHandle,Information Level 7,Immediate Close Handle" ],
1842 [ 0x00f1, "Return NetWareHandle,Information Level 7,Immediate Close Handle" ],
1843 [ 0x00f2, "Return Volume/Directory Number,Information Level 7,Immediate Close Handle" ],
1844 [ 0x00f4, "Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1845 [ 0x00f5, "Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1846 [ 0x00f6, "Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1848 dstNSIndicator = val_string16("dst_ns_indicator", "Destination Name Space Indicator", [
1849 [ 0x0000, "Return Source Name Space Information" ],
1850 [ 0x0001, "Return Destination Name Space Information" ],
1852 DstQueueID = uint32("dst_queue_id", "Destination Queue ID")
1853 DuplicateRepliesSent = uint16("duplicate_replies_sent", "Duplicate Replies Sent")
1855 EAAccessFlag = bitfield16("ea_access_flag", "EA Access Flag", [
1856 bf_boolean16(0x0001, "ea_permanent_memory", "Permanent Memory"),
1857 bf_boolean16(0x0002, "ea_deep_freeze", "Deep Freeze"),
1858 bf_boolean16(0x0004, "ea_in_progress", "In Progress"),
1859 bf_boolean16(0x0008, "ea_header_being_enlarged", "Header Being Enlarged"),
1860 bf_boolean16(0x0010, "ea_new_tally_used", "New Tally Used"),
1861 bf_boolean16(0x0020, "ea_tally_need_update", "Tally Need Update"),
1862 bf_boolean16(0x0040, "ea_score_card_present", "Score Card Present"),
1863 bf_boolean16(0x0080, "ea_need_bit_flag", "EA Need Bit Flag"),
1864 bf_boolean16(0x0100, "ea_write_privileges", "Write Privileges"),
1865 bf_boolean16(0x0200, "ea_read_privileges", "Read Privileges"),
1866 bf_boolean16(0x0400, "ea_delete_privileges", "Delete Privileges"),
1867 bf_boolean16(0x0800, "ea_system_ea_only", "System EA Only"),
1868 bf_boolean16(0x1000, "ea_write_in_progress", "Write In Progress"),
1870 EABytesWritten = uint32("ea_bytes_written", "Bytes Written")
1871 EACount = uint32("ea_count", "Count")
1872 EADataSize = uint32("ea_data_size", "Data Size")
1873 EADataSizeDuplicated = uint32("ea_data_size_duplicated", "Data Size Duplicated")
1874 EADuplicateCount = uint32("ea_duplicate_count", "Duplicate Count")
1875 EAErrorCodes = val_string16("ea_error_codes", "EA Error Codes", [
1876 [ 0x0000, "SUCCESSFUL" ],
1877 [ 0x00c8, "ERR_MISSING_EA_KEY" ],
1878 [ 0x00c9, "ERR_EA_NOT_FOUND" ],
1879 [ 0x00ca, "ERR_INVALID_EA_HANDLE_TYPE" ],
1880 [ 0x00cb, "ERR_EA_NO_KEY_NO_DATA" ],
1881 [ 0x00cc, "ERR_EA_NUMBER_MISMATCH" ],
1882 [ 0x00cd, "ERR_EXTENT_NUMBER_OUT_OF_RANGE" ],
1883 [ 0x00ce, "ERR_EA_BAD_DIR_NUM" ],
1884 [ 0x00cf, "ERR_INVALID_EA_HANDLE" ],
1885 [ 0x00d0, "ERR_EA_POSITION_OUT_OF_RANGE" ],
1886 [ 0x00d1, "ERR_EA_ACCESS_DENIED" ],
1887 [ 0x00d2, "ERR_DATA_PAGE_ODD_SIZE" ],
1888 [ 0x00d3, "ERR_EA_VOLUME_NOT_MOUNTED" ],
1889 [ 0x00d4, "ERR_BAD_PAGE_BOUNDARY" ],
1890 [ 0x00d5, "ERR_INSPECT_FAILURE" ],
1891 [ 0x00d6, "ERR_EA_ALREADY_CLAIMED" ],
1892 [ 0x00d7, "ERR_ODD_BUFFER_SIZE" ],
1893 [ 0x00d8, "ERR_NO_SCORECARDS" ],
1894 [ 0x00d9, "ERR_BAD_EDS_SIGNATURE" ],
1895 [ 0x00da, "ERR_EA_SPACE_LIMIT" ],
1896 [ 0x00db, "ERR_EA_KEY_CORRUPT" ],
1897 [ 0x00dc, "ERR_EA_KEY_LIMIT" ],
1898 [ 0x00dd, "ERR_TALLY_CORRUPT" ],
1900 EAFlags = val_string16("ea_flags", "EA Flags", [
1901 [ 0x0000, "Return EAHandle,Information Level 0" ],
1902 [ 0x0001, "Return NetWareHandle,Information Level 0" ],
1903 [ 0x0002, "Return Volume/Directory Number,Information Level 0" ],
1904 [ 0x0004, "Return EAHandle,Close Handle on Error,Information Level 0" ],
1905 [ 0x0005, "Return NetWareHandle,Close Handle on Error,Information Level 0" ],
1906 [ 0x0006, "Return Volume/Directory Number,Close Handle on Error,Information Level 0" ],
1907 [ 0x0010, "Return EAHandle,Information Level 1" ],
1908 [ 0x0011, "Return NetWareHandle,Information Level 1" ],
1909 [ 0x0012, "Return Volume/Directory Number,Information Level 1" ],
1910 [ 0x0014, "Return EAHandle,Close Handle on Error,Information Level 1" ],
1911 [ 0x0015, "Return NetWareHandle,Close Handle on Error,Information Level 1" ],
1912 [ 0x0016, "Return Volume/Directory Number,Close Handle on Error,Information Level 1" ],
1913 [ 0x0020, "Return EAHandle,Information Level 2" ],
1914 [ 0x0021, "Return NetWareHandle,Information Level 2" ],
1915 [ 0x0022, "Return Volume/Directory Number,Information Level 2" ],
1916 [ 0x0024, "Return EAHandle,Close Handle on Error,Information Level 2" ],
1917 [ 0x0025, "Return NetWareHandle,Close Handle on Error,Information Level 2" ],
1918 [ 0x0026, "Return Volume/Directory Number,Close Handle on Error,Information Level 2" ],
1919 [ 0x0030, "Return EAHandle,Information Level 3" ],
1920 [ 0x0031, "Return NetWareHandle,Information Level 3" ],
1921 [ 0x0032, "Return Volume/Directory Number,Information Level 3" ],
1922 [ 0x0034, "Return EAHandle,Close Handle on Error,Information Level 3" ],
1923 [ 0x0035, "Return NetWareHandle,Close Handle on Error,Information Level 3" ],
1924 [ 0x0036, "Return Volume/Directory Number,Close Handle on Error,Information Level 3" ],
1925 [ 0x0040, "Return EAHandle,Information Level 4" ],
1926 [ 0x0041, "Return NetWareHandle,Information Level 4" ],
1927 [ 0x0042, "Return Volume/Directory Number,Information Level 4" ],
1928 [ 0x0044, "Return EAHandle,Close Handle on Error,Information Level 4" ],
1929 [ 0x0045, "Return NetWareHandle,Close Handle on Error,Information Level 4" ],
1930 [ 0x0046, "Return Volume/Directory Number,Close Handle on Error,Information Level 4" ],
1931 [ 0x0050, "Return EAHandle,Information Level 5" ],
1932 [ 0x0051, "Return NetWareHandle,Information Level 5" ],
1933 [ 0x0052, "Return Volume/Directory Number,Information Level 5" ],
1934 [ 0x0054, "Return EAHandle,Close Handle on Error,Information Level 5" ],
1935 [ 0x0055, "Return NetWareHandle,Close Handle on Error,Information Level 5" ],
1936 [ 0x0056, "Return Volume/Directory Number,Close Handle on Error,Information Level 5" ],
1937 [ 0x0060, "Return EAHandle,Information Level 6" ],
1938 [ 0x0061, "Return NetWareHandle,Information Level 6" ],
1939 [ 0x0062, "Return Volume/Directory Number,Information Level 6" ],
1940 [ 0x0064, "Return EAHandle,Close Handle on Error,Information Level 6" ],
1941 [ 0x0065, "Return NetWareHandle,Close Handle on Error,Information Level 6" ],
1942 [ 0x0066, "Return Volume/Directory Number,Close Handle on Error,Information Level 6" ],
1943 [ 0x0070, "Return EAHandle,Information Level 7" ],
1944 [ 0x0071, "Return NetWareHandle,Information Level 7" ],
1945 [ 0x0072, "Return Volume/Directory Number,Information Level 7" ],
1946 [ 0x0074, "Return EAHandle,Close Handle on Error,Information Level 7" ],
1947 [ 0x0075, "Return NetWareHandle,Close Handle on Error,Information Level 7" ],
1948 [ 0x0076, "Return Volume/Directory Number,Close Handle on Error,Information Level 7" ],
1949 [ 0x0080, "Return EAHandle,Information Level 0,Immediate Close Handle" ],
1950 [ 0x0081, "Return NetWareHandle,Information Level 0,Immediate Close Handle" ],
1951 [ 0x0082, "Return Volume/Directory Number,Information Level 0,Immediate Close Handle" ],
1952 [ 0x0084, "Return EAHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1953 [ 0x0085, "Return NetWareHandle,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1954 [ 0x0086, "Return Volume/Directory Number,Close Handle on Error,Information Level 0,Immediate Close Handle" ],
1955 [ 0x0090, "Return EAHandle,Information Level 1,Immediate Close Handle" ],
1956 [ 0x0091, "Return NetWareHandle,Information Level 1,Immediate Close Handle" ],
1957 [ 0x0092, "Return Volume/Directory Number,Information Level 1,Immediate Close Handle" ],
1958 [ 0x0094, "Return EAHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1959 [ 0x0095, "Return NetWareHandle,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1960 [ 0x0096, "Return Volume/Directory Number,Close Handle on Error,Information Level 1,Immediate Close Handle" ],
1961 [ 0x00a0, "Return EAHandle,Information Level 2,Immediate Close Handle" ],
1962 [ 0x00a1, "Return NetWareHandle,Information Level 2,Immediate Close Handle" ],
1963 [ 0x00a2, "Return Volume/Directory Number,Information Level 2,Immediate Close Handle" ],
1964 [ 0x00a4, "Return EAHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1965 [ 0x00a5, "Return NetWareHandle,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1966 [ 0x00a6, "Return Volume/Directory Number,Close Handle on Error,Information Level 2,Immediate Close Handle" ],
1967 [ 0x00b0, "Return EAHandle,Information Level 3,Immediate Close Handle" ],
1968 [ 0x00b1, "Return NetWareHandle,Information Level 3,Immediate Close Handle" ],
1969 [ 0x00b2, "Return Volume/Directory Number,Information Level 3,Immediate Close Handle" ],
1970 [ 0x00b4, "Return EAHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1971 [ 0x00b5, "Return NetWareHandle,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1972 [ 0x00b6, "Return Volume/Directory Number,Close Handle on Error,Information Level 3,Immediate Close Handle" ],
1973 [ 0x00c0, "Return EAHandle,Information Level 4,Immediate Close Handle" ],
1974 [ 0x00c1, "Return NetWareHandle,Information Level 4,Immediate Close Handle" ],
1975 [ 0x00c2, "Return Volume/Directory Number,Information Level 4,Immediate Close Handle" ],
1976 [ 0x00c4, "Return EAHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1977 [ 0x00c5, "Return NetWareHandle,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1978 [ 0x00c6, "Return Volume/Directory Number,Close Handle on Error,Information Level 4,Immediate Close Handle" ],
1979 [ 0x00d0, "Return EAHandle,Information Level 5,Immediate Close Handle" ],
1980 [ 0x00d1, "Return NetWareHandle,Information Level 5,Immediate Close Handle" ],
1981 [ 0x00d2, "Return Volume/Directory Number,Information Level 5,Immediate Close Handle" ],
1982 [ 0x00d4, "Return EAHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1983 [ 0x00d5, "Return NetWareHandle,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1984 [ 0x00d6, "Return Volume/Directory Number,Close Handle on Error,Information Level 5,Immediate Close Handle" ],
1985 [ 0x00e0, "Return EAHandle,Information Level 6,Immediate Close Handle" ],
1986 [ 0x00e1, "Return NetWareHandle,Information Level 6,Immediate Close Handle" ],
1987 [ 0x00e2, "Return Volume/Directory Number,Information Level 6,Immediate Close Handle" ],
1988 [ 0x00e4, "Return EAHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1989 [ 0x00e5, "Return NetWareHandle,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1990 [ 0x00e6, "Return Volume/Directory Number,Close Handle on Error,Information Level 6,Immediate Close Handle" ],
1991 [ 0x00f0, "Return EAHandle,Information Level 7,Immediate Close Handle" ],
1992 [ 0x00f1, "Return NetWareHandle,Information Level 7,Immediate Close Handle" ],
1993 [ 0x00f2, "Return Volume/Directory Number,Information Level 7,Immediate Close Handle" ],
1994 [ 0x00f4, "Return EAHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1995 [ 0x00f5, "Return NetWareHandle,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1996 [ 0x00f6, "Return Volume/Directory Number,Close Handle on Error,Information Level 7,Immediate Close Handle" ],
1998 EAHandle = uint32("ea_handle", "EA Handle")
1999 EAHandle.Display("BASE_HEX")
2000 EAHandleOrNetWareHandleOrVolume = uint32("ea_handle_or_netware_handle_or_volume", "EAHandle or NetWare Handle or Volume (see EAFlags)")
2001 EAHandleOrNetWareHandleOrVolume.Display("BASE_HEX")
2002 EAKey = nstring16("ea_key", "EA Key")
2003 EAKeySize = uint32("ea_key_size", "Key Size")
2004 EAKeySizeDuplicated = uint32("ea_key_size_duplicated", "Key Size Duplicated")
2005 EAValue = nstring16("ea_value", "EA Value")
2006 EAValueRep = fw_string("ea_value_rep", "EA Value", 1)
2007 EAValueLength = uint16("ea_value_length", "Value Length")
2008 EchoSocket = uint16("echo_socket", "Echo Socket")
2009 EchoSocket.Display('BASE_HEX')
2010 EffectiveRights = bitfield8("effective_rights", "Effective Rights", [
2011 bf_boolean8(0x01, "effective_rights_read", "Read Rights"),
2012 bf_boolean8(0x02, "effective_rights_write", "Write Rights"),
2013 bf_boolean8(0x04, "effective_rights_open", "Open Rights"),
2014 bf_boolean8(0x08, "effective_rights_create", "Create Rights"),
2015 bf_boolean8(0x10, "effective_rights_delete", "Delete Rights"),
2016 bf_boolean8(0x20, "effective_rights_parental", "Parental Rights"),
2017 bf_boolean8(0x40, "effective_rights_search", "Search Rights"),
2018 bf_boolean8(0x80, "effective_rights_modify", "Modify Rights"),
2020 EnumInfoMask = bitfield8("enum_info_mask", "Return Information Mask", [
2021 bf_boolean8(0x01, "enum_info_transport", "Transport Information"),
2022 bf_boolean8(0x02, "enum_info_time", "Time Information"),
2023 bf_boolean8(0x04, "enum_info_name", "Name Information"),
2024 bf_boolean8(0x08, "enum_info_lock", "Lock Information"),
2025 bf_boolean8(0x10, "enum_info_print", "Print Information"),
2026 bf_boolean8(0x20, "enum_info_stats", "Statistical Information"),
2027 bf_boolean8(0x40, "enum_info_account", "Accounting Information"),
2028 bf_boolean8(0x80, "enum_info_auth", "Authentication Information"),
2031 eventOffset = bytes("event_offset", "Event Offset", 8)
2032 eventTime = uint32("event_time", "Event Time")
2033 eventTime.Display("BASE_HEX")
2034 ExpirationTime = uint32("expiration_time", "Expiration Time")
2035 ExpirationTime.Display('BASE_HEX')
2036 ExtAttrDataSize = uint32("ext_attr_data_size", "Extended Attributes Data Size")
2037 ExtAttrCount = uint32("ext_attr_count", "Extended Attributes Count")
2038 ExtAttrKeySize = uint32("ext_attr_key_size", "Extended Attributes Key Size")
2039 ExtendedAttributesDefined = uint32("extended_attributes_defined", "Extended Attributes Defined")
2040 ExtendedAttributeExtentsUsed = uint32("extended_attribute_extents_used", "Extended Attribute Extents Used")
2041 ExtendedInfo = bitfield16("ext_info", "Extended Return Information", [
2042 bf_boolean16(0x0001, "ext_info_update", "Last Update"),
2043 bf_boolean16(0x0002, "ext_info_dos_name", "DOS Name"),
2044 bf_boolean16(0x0004, "ext_info_flush", "Flush Time"),
2045 bf_boolean16(0x0008, "ext_info_parental", "Parental"),
2046 bf_boolean16(0x0010, "ext_info_mac_finder", "MAC Finder"),
2047 bf_boolean16(0x0020, "ext_info_sibling", "Sibling"),
2048 bf_boolean16(0x0040, "ext_info_effective", "Effective"),
2049 bf_boolean16(0x0080, "ext_info_mac_date", "MAC Date"),
2050 bf_boolean16(0x0100, "ext_info_access", "Last Access"),
2051 bf_boolean16(0x0400, "ext_info_64_bit_fs", "64 Bit File Sizes"),
2052 bf_boolean16(0x8000, "ext_info_newstyle", "New Style"),
2054 ExtRouterActiveFlag = boolean8("ext_router_active_flag", "External Router Active Flag")
2056 FailedAllocReqCnt = uint32("failed_alloc_req", "Failed Alloc Request Count")
2057 FatalFATWriteErrors = uint16("fatal_fat_write_errors", "Fatal FAT Write Errors")
2058 FATScanErrors = uint16("fat_scan_errors", "FAT Scan Errors")
2059 FATWriteErrors = uint16("fat_write_errors", "FAT Write Errors")
2060 FieldsLenTable = bytes("fields_len_table", "Fields Len Table", 32)
2061 FileCount = uint16("file_count", "File Count")
2062 FileDate = uint16("file_date", "File Date")
2064 FileDirWindow = uint16("file_dir_win", "File/Dir Window")
2065 FileDirWindow.Display("BASE_HEX")
2066 FileExecuteType = uint8("file_execute_type", "File Execute Type")
2067 FileExtendedAttributes = val_string8("file_ext_attr", "File Extended Attributes", [
2068 [ 0x00, "Search On All Read Only Opens" ],
2069 [ 0x01, "Search On Read Only Opens With No Path" ],
2070 [ 0x02, "Shell Default Search Mode" ],
2071 [ 0x03, "Search On All Opens With No Path" ],
2072 [ 0x04, "Do Not Search" ],
2073 [ 0x05, "Reserved" ],
2074 [ 0x06, "Search On All Opens" ],
2075 [ 0x07, "Reserved" ],
2076 [ 0x08, "Search On All Read Only Opens/Indexed" ],
2077 [ 0x09, "Search On Read Only Opens With No Path/Indexed" ],
2078 [ 0x0a, "Shell Default Search Mode/Indexed" ],
2079 [ 0x0b, "Search On All Opens With No Path/Indexed" ],
2080 [ 0x0c, "Do Not Search/Indexed" ],
2081 [ 0x0d, "Indexed" ],
2082 [ 0x0e, "Search On All Opens/Indexed" ],
2083 [ 0x0f, "Indexed" ],
2084 [ 0x10, "Search On All Read Only Opens/Transactional" ],
2085 [ 0x11, "Search On Read Only Opens With No Path/Transactional" ],
2086 [ 0x12, "Shell Default Search Mode/Transactional" ],
2087 [ 0x13, "Search On All Opens With No Path/Transactional" ],
2088 [ 0x14, "Do Not Search/Transactional" ],
2089 [ 0x15, "Transactional" ],
2090 [ 0x16, "Search On All Opens/Transactional" ],
2091 [ 0x17, "Transactional" ],
2092 [ 0x18, "Search On All Read Only Opens/Indexed/Transactional" ],
2093 [ 0x19, "Search On Read Only Opens With No Path/Indexed/Transactional" ],
2094 [ 0x1a, "Shell Default Search Mode/Indexed/Transactional" ],
2095 [ 0x1b, "Search On All Opens With No Path/Indexed/Transactional" ],
2096 [ 0x1c, "Do Not Search/Indexed/Transactional" ],
2097 [ 0x1d, "Indexed/Transactional" ],
2098 [ 0x1e, "Search On All Opens/Indexed/Transactional" ],
2099 [ 0x1f, "Indexed/Transactional" ],
2100 [ 0x40, "Search On All Read Only Opens/Read Audit" ],
2101 [ 0x41, "Search On Read Only Opens With No Path/Read Audit" ],
2102 [ 0x42, "Shell Default Search Mode/Read Audit" ],
2103 [ 0x43, "Search On All Opens With No Path/Read Audit" ],
2104 [ 0x44, "Do Not Search/Read Audit" ],
2105 [ 0x45, "Read Audit" ],
2106 [ 0x46, "Search On All Opens/Read Audit" ],
2107 [ 0x47, "Read Audit" ],
2108 [ 0x48, "Search On All Read Only Opens/Indexed/Read Audit" ],
2109 [ 0x49, "Search On Read Only Opens With No Path/Indexed/Read Audit" ],
2110 [ 0x4a, "Shell Default Search Mode/Indexed/Read Audit" ],
2111 [ 0x4b, "Search On All Opens With No Path/Indexed/Read Audit" ],
2112 [ 0x4c, "Do Not Search/Indexed/Read Audit" ],
2113 [ 0x4d, "Indexed/Read Audit" ],
2114 [ 0x4e, "Search On All Opens/Indexed/Read Audit" ],
2115 [ 0x4f, "Indexed/Read Audit" ],
2116 [ 0x50, "Search On All Read Only Opens/Transactional/Read Audit" ],
2117 [ 0x51, "Search On Read Only Opens With No Path/Transactional/Read Audit" ],
2118 [ 0x52, "Shell Default Search Mode/Transactional/Read Audit" ],
2119 [ 0x53, "Search On All Opens With No Path/Transactional/Read Audit" ],
2120 [ 0x54, "Do Not Search/Transactional/Read Audit" ],
2121 [ 0x55, "Transactional/Read Audit" ],
2122 [ 0x56, "Search On All Opens/Transactional/Read Audit" ],
2123 [ 0x57, "Transactional/Read Audit" ],
2124 [ 0x58, "Search On All Read Only Opens/Indexed/Transactional/Read Audit" ],
2125 [ 0x59, "Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit" ],
2126 [ 0x5a, "Shell Default Search Mode/Indexed/Transactional/Read Audit" ],
2127 [ 0x5b, "Search On All Opens With No Path/Indexed/Transactional/Read Audit" ],
2128 [ 0x5c, "Do Not Search/Indexed/Transactional/Read Audit" ],
2129 [ 0x5d, "Indexed/Transactional/Read Audit" ],
2130 [ 0x5e, "Search On All Opens/Indexed/Transactional/Read Audit" ],
2131 [ 0x5f, "Indexed/Transactional/Read Audit" ],
2132 [ 0x80, "Search On All Read Only Opens/Write Audit" ],
2133 [ 0x81, "Search On Read Only Opens With No Path/Write Audit" ],
2134 [ 0x82, "Shell Default Search Mode/Write Audit" ],
2135 [ 0x83, "Search On All Opens With No Path/Write Audit" ],
2136 [ 0x84, "Do Not Search/Write Audit" ],
2137 [ 0x85, "Write Audit" ],
2138 [ 0x86, "Search On All Opens/Write Audit" ],
2139 [ 0x87, "Write Audit" ],
2140 [ 0x88, "Search On All Read Only Opens/Indexed/Write Audit" ],
2141 [ 0x89, "Search On Read Only Opens With No Path/Indexed/Write Audit" ],
2142 [ 0x8a, "Shell Default Search Mode/Indexed/Write Audit" ],
2143 [ 0x8b, "Search On All Opens With No Path/Indexed/Write Audit" ],
2144 [ 0x8c, "Do Not Search/Indexed/Write Audit" ],
2145 [ 0x8d, "Indexed/Write Audit" ],
2146 [ 0x8e, "Search On All Opens/Indexed/Write Audit" ],
2147 [ 0x8f, "Indexed/Write Audit" ],
2148 [ 0x90, "Search On All Read Only Opens/Transactional/Write Audit" ],
2149 [ 0x91, "Search On Read Only Opens With No Path/Transactional/Write Audit" ],
2150 [ 0x92, "Shell Default Search Mode/Transactional/Write Audit" ],
2151 [ 0x93, "Search On All Opens With No Path/Transactional/Write Audit" ],
2152 [ 0x94, "Do Not Search/Transactional/Write Audit" ],
2153 [ 0x95, "Transactional/Write Audit" ],
2154 [ 0x96, "Search On All Opens/Transactional/Write Audit" ],
2155 [ 0x97, "Transactional/Write Audit" ],
2156 [ 0x98, "Search On All Read Only Opens/Indexed/Transactional/Write Audit" ],
2157 [ 0x99, "Search On Read Only Opens With No Path/Indexed/Transactional/Write Audit" ],
2158 [ 0x9a, "Shell Default Search Mode/Indexed/Transactional/Write Audit" ],
2159 [ 0x9b, "Search On All Opens With No Path/Indexed/Transactional/Write Audit" ],
2160 [ 0x9c, "Do Not Search/Indexed/Transactional/Write Audit" ],
2161 [ 0x9d, "Indexed/Transactional/Write Audit" ],
2162 [ 0x9e, "Search On All Opens/Indexed/Transactional/Write Audit" ],
2163 [ 0x9f, "Indexed/Transactional/Write Audit" ],
2164 [ 0xa0, "Search On All Read Only Opens/Read Audit/Write Audit" ],
2165 [ 0xa1, "Search On Read Only Opens With No Path/Read Audit/Write Audit" ],
2166 [ 0xa2, "Shell Default Search Mode/Read Audit/Write Audit" ],
2167 [ 0xa3, "Search On All Opens With No Path/Read Audit/Write Audit" ],
2168 [ 0xa4, "Do Not Search/Read Audit/Write Audit" ],
2169 [ 0xa5, "Read Audit/Write Audit" ],
2170 [ 0xa6, "Search On All Opens/Read Audit/Write Audit" ],
2171 [ 0xa7, "Read Audit/Write Audit" ],
2172 [ 0xa8, "Search On All Read Only Opens/Indexed/Read Audit/Write Audit" ],
2173 [ 0xa9, "Search On Read Only Opens With No Path/Indexed/Read Audit/Write Audit" ],
2174 [ 0xaa, "Shell Default Search Mode/Indexed/Read Audit/Write Audit" ],
2175 [ 0xab, "Search On All Opens With No Path/Indexed/Read Audit/Write Audit" ],
2176 [ 0xac, "Do Not Search/Indexed/Read Audit/Write Audit" ],
2177 [ 0xad, "Indexed/Read Audit/Write Audit" ],
2178 [ 0xae, "Search On All Opens/Indexed/Read Audit/Write Audit" ],
2179 [ 0xaf, "Indexed/Read Audit/Write Audit" ],
2180 [ 0xb0, "Search On All Read Only Opens/Transactional/Read Audit/Write Audit" ],
2181 [ 0xb1, "Search On Read Only Opens With No Path/Transactional/Read Audit/Write Audit" ],
2182 [ 0xb2, "Shell Default Search Mode/Transactional/Read Audit/Write Audit" ],
2183 [ 0xb3, "Search On All Opens With No Path/Transactional/Read Audit/Write Audit" ],
2184 [ 0xb4, "Do Not Search/Transactional/Read Audit/Write Audit" ],
2185 [ 0xb5, "Transactional/Read Audit/Write Audit" ],
2186 [ 0xb6, "Search On All Opens/Transactional/Read Audit/Write Audit" ],
2187 [ 0xb7, "Transactional/Read Audit/Write Audit" ],
2188 [ 0xb8, "Search On All Read Only Opens/Indexed/Transactional/Read Audit/Write Audit" ],
2189 [ 0xb9, "Search On Read Only Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" ],
2190 [ 0xba, "Shell Default Search Mode/Indexed/Transactional/Read Audit/Write Audit" ],
2191 [ 0xbb, "Search On All Opens With No Path/Indexed/Transactional/Read Audit/Write Audit" ],
2192 [ 0xbc, "Do Not Search/Indexed/Transactional/Read Audit/Write Audit" ],
2193 [ 0xbd, "Indexed/Transactional/Read Audit/Write Audit" ],
2194 [ 0xbe, "Search On All Opens/Indexed/Transactional/Read Audit/Write Audit" ],
2195 [ 0xbf, "Indexed/Transactional/Read Audit/Write Audit" ],
2197 fileFlags = uint32("file_flags", "File Flags")
2198 FileHandle = bytes("file_handle", "File Handle", 6)
2199 FileLimbo = uint32("file_limbo", "File Limbo")
2200 FileListCount = uint32("file_list_count", "File List Count")
2201 FileLock = val_string8("file_lock", "File Lock", [
2202 [ 0x00, "Not Locked" ],
2203 [ 0xfe, "Locked by file lock" ],
2204 [ 0xff, "Unknown" ],
2206 FileLockCount = uint16("file_lock_count", "File Lock Count")
2207 FileMigrationState = val_string8("file_mig_state", "File Migration State", [
2208 [ 0x00, "Mark file ineligible for file migration" ],
2209 [ 0x01, "Mark file eligible for file migration" ],
2210 [ 0x02, "Mark file as migrated and delete fat chains" ],
2211 [ 0x03, "Reset file status back to normal" ],
2212 [ 0x04, "Get file data back and reset file status back to normal" ],
2214 FileMode = uint8("file_mode", "File Mode")
2215 FileName = nstring8("file_name", "Filename")
2216 FileName12 = fw_string("file_name_12", "Filename", 12)
2217 FileName14 = fw_string("file_name_14", "Filename", 14)
2218 FileName16 = nstring16("file_name_16", "Filename")
2219 FileNameLen = uint8("file_name_len", "Filename Length")
2220 FileOffset = uint32("file_offset", "File Offset")
2221 FilePath = nstring8("file_path", "File Path")
2222 FileSize = uint32("file_size", "File Size", BE)
2223 FileSize64bit = uint64("f_size_64bit", "64bit File Size")
2224 FileSystemID = uint8("file_system_id", "File System ID")
2225 FileTime = uint16("file_time", "File Time")
2227 FileUseCount = uint16("file_use_count", "File Use Count")
2228 FileWriteFlags = val_string8("file_write_flags", "File Write Flags", [
2229 [ 0x01, "Writing" ],
2230 [ 0x02, "Write aborted" ],
2232 FileWriteState = val_string8("file_write_state", "File Write State", [
2233 [ 0x00, "Not Writing" ],
2234 [ 0x01, "Write in Progress" ],
2235 [ 0x02, "Write Being Stopped" ],
2237 Filler = uint8("filler", "Filler")
2238 FinderAttr = bitfield16("finder_attr", "Finder Info Attributes", [
2239 bf_boolean16(0x0001, "finder_attr_desktop", "Object on Desktop"),
2240 bf_boolean16(0x2000, "finder_attr_invisible", "Object is Invisible"),
2241 bf_boolean16(0x4000, "finder_attr_bundle", "Object Has Bundle"),
2243 FixedBitMask = uint32("fixed_bit_mask", "Fixed Bit Mask")
2244 FixedBitsDefined = uint16("fixed_bits_defined", "Fixed Bits Defined")
2245 FlagBits = uint8("flag_bits", "Flag Bits")
2246 Flags = uint8("flags", "Flags")
2247 FlagsDef = uint16("flags_def", "Flags")
2248 FlushTime = uint32("flush_time", "Flush Time")
2249 FolderFlag = val_string8("folder_flag", "Folder Flag", [
2250 [ 0x00, "Not a Folder" ],
2253 ForkCount = uint8("fork_count", "Fork Count")
2254 ForkIndicator = val_string8("fork_indicator", "Fork Indicator", [
2255 [ 0x00, "Data Fork" ],
2256 [ 0x01, "Resource Fork" ],
2258 ForceFlag = val_string8("force_flag", "Force Server Down Flag", [
2259 [ 0x00, "Down Server if No Files Are Open" ],
2260 [ 0xff, "Down Server Immediately, Auto-Close Open Files" ],
2262 ForgedDetachedRequests = uint16("forged_detached_requests", "Forged Detached Requests")
2263 FormType = uint16( "form_type", "Form Type" )
2264 FormTypeCnt = uint32("form_type_count", "Form Types Count")
2265 FoundSomeMem = uint32("found_some_mem", "Found Some Memory")
2266 FractionalSeconds = uint32("fractional_time", "Fractional Time in Seconds")
2267 FraggerHandle = uint32("fragger_handle", "Fragment Handle")
2268 FraggerHandle.Display('BASE_HEX')
2269 FragmentWriteOccurred = uint16("fragment_write_occurred", "Fragment Write Occurred")
2270 FragSize = uint32("frag_size", "Fragment Size")
2271 FreeableLimboSectors = uint32("freeable_limbo_sectors", "Freeable Limbo Sectors")
2272 FreeBlocks = uint32("free_blocks", "Free Blocks")
2273 FreedClusters = uint32("freed_clusters", "Freed Clusters")
2274 FreeDirectoryEntries = uint16("free_directory_entries", "Free Directory Entries")
2275 FSEngineFlag = boolean8("fs_engine_flag", "FS Engine Flag")
2276 FullName = fw_string("full_name", "Full Name", 39)
2278 GetSetFlag = val_string8("get_set_flag", "Get Set Flag", [
2279 [ 0x00, "Get the default support module ID" ],
2280 [ 0x01, "Set the default support module ID" ],
2282 GUID = bytes("guid", "GUID", 16)
2284 HandleFlag = val_string8("handle_flag", "Handle Flag", [
2285 [ 0x00, "Short Directory Handle" ],
2286 [ 0x01, "Directory Base" ],
2287 [ 0xFF, "No Handle Present" ],
2289 HandleInfoLevel = val_string8("handle_info_level", "Handle Info Level", [
2290 [ 0x00, "Get Limited Information from a File Handle" ],
2291 [ 0x01, "Get Limited Information from a File Handle Using a Name Space" ],
2292 [ 0x02, "Get Information from a File Handle" ],
2293 [ 0x03, "Get Information from a Directory Handle" ],
2294 [ 0x04, "Get Complete Information from a Directory Handle" ],
2295 [ 0x05, "Get Complete Information from a File Handle" ],
2297 HeldBytesRead = bytes("held_bytes_read", "Held Bytes Read", 6)
2298 HeldBytesWritten = bytes("held_bytes_write", "Held Bytes Written", 6)
2299 HeldConnectTimeInMinutes = uint32("held_conn_time", "Held Connect Time in Minutes")
2300 HeldRequests = uint32("user_info_held_req", "Held Requests")
2301 HoldAmount = uint32("hold_amount", "Hold Amount")
2302 HoldCancelAmount = uint32("hold_cancel_amount", "Hold Cancel Amount")
2303 HolderID = uint32("holder_id", "Holder ID")
2304 HolderID.Display("BASE_HEX")
2305 HoldTime = uint32("hold_time", "Hold Time")
2306 HopsToNet = uint16("hops_to_net", "Hop Count")
2307 HorizLocation = uint16("horiz_location", "Horizontal Location")
2308 HostAddress = bytes("host_address", "Host Address", 6)
2309 HotFixBlocksAvailable = uint16("hot_fix_blocks_available", "Hot Fix Blocks Available")
2310 HotFixDisabled = val_string8("hot_fix_disabled", "Hot Fix Disabled", [
2311 [ 0x00, "Enabled" ],
2312 [ 0x01, "Disabled" ],
2314 HotFixTableSize = uint16("hot_fix_table_size", "Hot Fix Table Size")
2315 HotFixTableStart = uint32("hot_fix_table_start", "Hot Fix Table Start")
2316 Hour = uint8("s_hour", "Hour")
2317 HugeBitMask = uint32("huge_bit_mask", "Huge Bit Mask")
2318 HugeBitsDefined = uint16("huge_bits_defined", "Huge Bits Defined")
2319 HugeData = nstring8("huge_data", "Huge Data")
2320 HugeDataUsed = uint32("huge_data_used", "Huge Data Used")
2321 HugeStateInfo = bytes("huge_state_info", "Huge State Info", 16)
2323 IdentificationNumber = uint32("identification_number", "Identification Number")
2324 IgnoredRxPkts = uint32("ignored_rx_pkts", "Ignored Receive Packets")
2325 IncomingPacketDiscardedNoDGroup = uint16("incoming_packet_discarded_no_dgroup", "Incoming Packet Discarded No DGroup")
2326 IndexNumber = uint8("index_number", "Index Number")
2327 InfoCount = uint16("info_count", "Info Count")
2328 InfoFlags = bitfield32("info_flags", "Info Flags", [
2329 bf_boolean32(0x10000000, "info_flags_security", "Return Object Security"),
2330 bf_boolean32(0x20000000, "info_flags_flags", "Return Object Flags"),
2331 bf_boolean32(0x40000000, "info_flags_type", "Return Object Type"),
2332 bf_boolean32(0x80000000, "info_flags_name", "Return Object Name"),
2334 InfoLevelNumber = val_string8("info_level_num", "Information Level Number", [
2335 [ 0x01, "Volume Information Definition" ],
2336 [ 0x02, "Volume Information 2 Definition" ],
2338 InfoMask = bitfield32("info_mask", "Information Mask", [
2339 bf_boolean32(0x00000001, "info_flags_dos_time", "DOS Time"),
2340 bf_boolean32(0x00000002, "info_flags_ref_count", "Reference Count"),
2341 bf_boolean32(0x00000004, "info_flags_dos_attr", "DOS Attributes"),
2342 bf_boolean32(0x00000008, "info_flags_ids", "ID's"),
2343 bf_boolean32(0x00000010, "info_flags_ds_sizes", "Data Stream Sizes"),
2344 bf_boolean32(0x00000020, "info_flags_ns_attr", "Name Space Attributes"),
2345 bf_boolean32(0x00000040, "info_flags_ea_present", "EA Present Flag"),
2346 bf_boolean32(0x00000080, "info_flags_all_attr", "All Attributes"),
2347 bf_boolean32(0x00000100, "info_flags_all_dirbase_num", "All Directory Base Numbers"),
2348 bf_boolean32(0x00000200, "info_flags_max_access_mask", "Maximum Access Mask"),
2349 bf_boolean32(0x00000400, "info_flags_flush_time", "Flush Time"),
2350 bf_boolean32(0x00000800, "info_flags_prnt_base_id", "Parent Base ID"),
2351 bf_boolean32(0x00001000, "info_flags_mac_finder", "Mac Finder Information"),
2352 bf_boolean32(0x00002000, "info_flags_sibling_cnt", "Sibling Count"),
2353 bf_boolean32(0x00004000, "info_flags_effect_rights", "Effective Rights"),
2354 bf_boolean32(0x00008000, "info_flags_mac_time", "Mac Time"),
2355 bf_boolean32(0x20000000, "info_mask_dosname", "DOS Name"),
2356 bf_boolean32(0x40000000, "info_mask_c_name_space", "Creator Name Space & Name"),
2357 bf_boolean32(0x80000000, "info_mask_name", "Name"),
2359 InheritedRightsMask = bitfield16("inherited_rights_mask", "Inherited Rights Mask", [
2360 bf_boolean16(0x0001, "inh_rights_read", "Read Rights"),
2361 bf_boolean16(0x0002, "inh_rights_write", "Write Rights"),
2362 bf_boolean16(0x0004, "inh_rights_open", "Open Rights"),
2363 bf_boolean16(0x0008, "inh_rights_create", "Create Rights"),
2364 bf_boolean16(0x0010, "inh_rights_delete", "Delete Rights"),
2365 bf_boolean16(0x0020, "inh_rights_parent", "Change Access"),
2366 bf_boolean16(0x0040, "inh_rights_search", "See Files Flag"),
2367 bf_boolean16(0x0080, "inh_rights_modify", "Modify Rights"),
2368 bf_boolean16(0x0100, "inh_rights_supervisor", "Supervisor"),
2370 InheritanceRevokeMask = bitfield16("inheritance_revoke_mask", "Revoke Rights Mask", [
2371 bf_boolean16(0x0001, "inh_revoke_read", "Read Rights"),
2372 bf_boolean16(0x0002, "inh_revoke_write", "Write Rights"),
2373 bf_boolean16(0x0004, "inh_revoke_open", "Open Rights"),
2374 bf_boolean16(0x0008, "inh_revoke_create", "Create Rights"),
2375 bf_boolean16(0x0010, "inh_revoke_delete", "Delete Rights"),
2376 bf_boolean16(0x0020, "inh_revoke_parent", "Change Access"),
2377 bf_boolean16(0x0040, "inh_revoke_search", "See Files Flag"),
2378 bf_boolean16(0x0080, "inh_revoke_modify", "Modify Rights"),
2379 bf_boolean16(0x0100, "inh_revoke_supervisor", "Supervisor"),
2381 InitialSemaphoreValue = uint8("initial_semaphore_value", "Initial Semaphore Value")
2382 InspectSize = uint32("inspect_size", "Inspect Size")
2383 InternetBridgeVersion = uint8("internet_bridge_version", "Internet Bridge Version")
2384 InterruptNumbersUsed = uint32("interrupt_numbers_used", "Interrupt Numbers Used")
2385 InUse = uint32("in_use", "Bytes in Use")
2386 IOAddressesUsed = bytes("io_addresses_used", "IO Addresses Used", 8)
2387 IOErrorCount = uint16("io_error_count", "IO Error Count")
2388 IOEngineFlag = boolean8("io_engine_flag", "IO Engine Flag")
2389 IPXNotMyNetwork = uint16("ipx_not_my_network", "IPX Not My Network")
2390 ItemsChanged = uint32("items_changed", "Items Changed")
2391 ItemsChecked = uint32("items_checked", "Items Checked")
2392 ItemsCount = uint32("items_count", "Items Count")
2393 itemsInList = uint32("items_in_list", "Items in List")
2394 ItemsInPacket = uint32("items_in_packet", "Items in Packet")
2396 JobControlFlags = bitfield8("job_control_flags", "Job Control Flags", [
2397 bf_boolean8(0x08, "job_control_job_recovery", "Job Recovery"),
2398 bf_boolean8(0x10, "job_control_reservice", "ReService Job"),
2399 bf_boolean8(0x20, "job_control_file_open", "File Open"),
2400 bf_boolean8(0x40, "job_control_user_hold", "User Hold"),
2401 bf_boolean8(0x80, "job_control_operator_hold", "Operator Hold"),
2404 JobControlFlagsWord = bitfield16("job_control_flags_word", "Job Control Flags", [
2405 bf_boolean16(0x0008, "job_control1_job_recovery", "Job Recovery"),
2406 bf_boolean16(0x0010, "job_control1_reservice", "ReService Job"),
2407 bf_boolean16(0x0020, "job_control1_file_open", "File Open"),
2408 bf_boolean16(0x0040, "job_control1_user_hold", "User Hold"),
2409 bf_boolean16(0x0080, "job_control1_operator_hold", "Operator Hold"),
2412 JobCount = uint32("job_count", "Job Count")
2413 JobFileHandle = bytes("job_file_handle", "Job File Handle", 6)
2414 JobFileHandleLong = uint32("job_file_handle_long", "Job File Handle", BE)
2415 JobFileHandleLong.Display("BASE_HEX")
2416 JobFileName = fw_string("job_file_name", "Job File Name", 14)
2417 JobPosition = uint8("job_position", "Job Position")
2418 JobPositionWord = uint16("job_position_word", "Job Position")
2419 JobNumber = uint16("job_number", "Job Number", BE )
2420 JobNumberLong = uint32("job_number_long", "Job Number", BE )
2421 JobNumberLong.Display("BASE_HEX")
2422 JobType = uint16("job_type", "Job Type", BE )
2424 LANCustomVariablesCount = uint32("lan_cust_var_count", "LAN Custom Variables Count")
2425 LANdriverBoardInstance = uint16("lan_drv_bd_inst", "LAN Driver Board Instance")
2426 LANdriverBoardNumber = uint16("lan_drv_bd_num", "LAN Driver Board Number")
2427 LANdriverCardID = uint16("lan_drv_card_id", "LAN Driver Card ID")
2428 LANdriverCardName = fw_string("lan_drv_card_name", "LAN Driver Card Name", 28)
2429 LANdriverCFG_MajorVersion = uint8("lan_dvr_cfg_major_vrs", "LAN Driver Config - Major Version")
2430 LANdriverCFG_MinorVersion = uint8("lan_dvr_cfg_minor_vrs", "LAN Driver Config - Minor Version")
2431 LANdriverDMAUsage1 = uint8("lan_drv_dma_usage1", "Primary DMA Channel")
2432 LANdriverDMAUsage2 = uint8("lan_drv_dma_usage2", "Secondary DMA Channel")
2433 LANdriverFlags = uint16("lan_drv_flags", "LAN Driver Flags")
2434 LANdriverFlags.Display("BASE_HEX")
2435 LANdriverInterrupt1 = uint8("lan_drv_interrupt1", "Primary Interrupt Vector")
2436 LANdriverInterrupt2 = uint8("lan_drv_interrupt2", "Secondary Interrupt Vector")
2437 LANdriverIOPortsAndRanges1 = uint16("lan_drv_io_ports_and_ranges_1", "Primary Base I/O Port")
2438 LANdriverIOPortsAndRanges2 = uint16("lan_drv_io_ports_and_ranges_2", "Number of I/O Ports")
2439 LANdriverIOPortsAndRanges3 = uint16("lan_drv_io_ports_and_ranges_3", "Secondary Base I/O Port")
2440 LANdriverIOPortsAndRanges4 = uint16("lan_drv_io_ports_and_ranges_4", "Number of I/O Ports")
2441 LANdriverIOReserved = bytes("lan_drv_io_reserved", "LAN Driver IO Reserved", 14)
2442 LANdriverLineSpeed = uint16("lan_drv_line_speed", "LAN Driver Line Speed")
2443 LANdriverLink = uint32("lan_drv_link", "LAN Driver Link")
2444 LANdriverLogicalName = bytes("lan_drv_log_name", "LAN Driver Logical Name", 18)
2445 LANdriverMajorVersion = uint8("lan_drv_major_ver", "LAN Driver Major Version")
2446 LANdriverMaximumSize = uint32("lan_drv_max_size", "LAN Driver Maximum Size")
2447 LANdriverMaxRecvSize = uint32("lan_drv_max_rcv_size", "LAN Driver Maximum Receive Size")
2448 LANdriverMediaID = uint16("lan_drv_media_id", "LAN Driver Media ID")
2449 LANdriverMediaType = fw_string("lan_drv_media_type", "LAN Driver Media Type", 40)
2450 LANdriverMemoryDecode0 = uint32("lan_drv_mem_decode_0", "LAN Driver Memory Decode 0")
2451 LANdriverMemoryDecode1 = uint32("lan_drv_mem_decode_1", "LAN Driver Memory Decode 1")
2452 LANdriverMemoryLength0 = uint16("lan_drv_mem_length_0", "LAN Driver Memory Length 0")
2453 LANdriverMemoryLength1 = uint16("lan_drv_mem_length_1", "LAN Driver Memory Length 1")
2454 LANdriverMinorVersion = uint8("lan_drv_minor_ver", "LAN Driver Minor Version")
2455 LANdriverModeFlags = val_string8("lan_dvr_mode_flags", "LAN Driver Mode Flags", [
2456 [0x80, "Canonical Address" ],
2457 [0x81, "Canonical Address" ],
2458 [0x82, "Canonical Address" ],
2459 [0x83, "Canonical Address" ],
2460 [0x84, "Canonical Address" ],
2461 [0x85, "Canonical Address" ],
2462 [0x86, "Canonical Address" ],
2463 [0x87, "Canonical Address" ],
2464 [0x88, "Canonical Address" ],
2465 [0x89, "Canonical Address" ],
2466 [0x8a, "Canonical Address" ],
2467 [0x8b, "Canonical Address" ],
2468 [0x8c, "Canonical Address" ],
2469 [0x8d, "Canonical Address" ],
2470 [0x8e, "Canonical Address" ],
2471 [0x8f, "Canonical Address" ],
2472 [0x90, "Canonical Address" ],
2473 [0x91, "Canonical Address" ],
2474 [0x92, "Canonical Address" ],
2475 [0x93, "Canonical Address" ],
2476 [0x94, "Canonical Address" ],
2477 [0x95, "Canonical Address" ],
2478 [0x96, "Canonical Address" ],
2479 [0x97, "Canonical Address" ],
2480 [0x98, "Canonical Address" ],
2481 [0x99, "Canonical Address" ],
2482 [0x9a, "Canonical Address" ],
2483 [0x9b, "Canonical Address" ],
2484 [0x9c, "Canonical Address" ],
2485 [0x9d, "Canonical Address" ],
2486 [0x9e, "Canonical Address" ],
2487 [0x9f, "Canonical Address" ],
2488 [0xa0, "Canonical Address" ],
2489 [0xa1, "Canonical Address" ],
2490 [0xa2, "Canonical Address" ],
2491 [0xa3, "Canonical Address" ],
2492 [0xa4, "Canonical Address" ],
2493 [0xa5, "Canonical Address" ],
2494 [0xa6, "Canonical Address" ],
2495 [0xa7, "Canonical Address" ],
2496 [0xa8, "Canonical Address" ],
2497 [0xa9, "Canonical Address" ],
2498 [0xaa, "Canonical Address" ],
2499 [0xab, "Canonical Address" ],
2500 [0xac, "Canonical Address" ],
2501 [0xad, "Canonical Address" ],
2502 [0xae, "Canonical Address" ],
2503 [0xaf, "Canonical Address" ],
2504 [0xb0, "Canonical Address" ],
2505 [0xb1, "Canonical Address" ],
2506 [0xb2, "Canonical Address" ],
2507 [0xb3, "Canonical Address" ],
2508 [0xb4, "Canonical Address" ],
2509 [0xb5, "Canonical Address" ],
2510 [0xb6, "Canonical Address" ],
2511 [0xb7, "Canonical Address" ],
2512 [0xb8, "Canonical Address" ],
2513 [0xb9, "Canonical Address" ],
2514 [0xba, "Canonical Address" ],
2515 [0xbb, "Canonical Address" ],
2516 [0xbc, "Canonical Address" ],
2517 [0xbd, "Canonical Address" ],
2518 [0xbe, "Canonical Address" ],
2519 [0xbf, "Canonical Address" ],
2520 [0xc0, "Non-Canonical Address" ],
2521 [0xc1, "Non-Canonical Address" ],
2522 [0xc2, "Non-Canonical Address" ],
2523 [0xc3, "Non-Canonical Address" ],
2524 [0xc4, "Non-Canonical Address" ],
2525 [0xc5, "Non-Canonical Address" ],
2526 [0xc6, "Non-Canonical Address" ],
2527 [0xc7, "Non-Canonical Address" ],
2528 [0xc8, "Non-Canonical Address" ],
2529 [0xc9, "Non-Canonical Address" ],
2530 [0xca, "Non-Canonical Address" ],
2531 [0xcb, "Non-Canonical Address" ],
2532 [0xcc, "Non-Canonical Address" ],
2533 [0xcd, "Non-Canonical Address" ],
2534 [0xce, "Non-Canonical Address" ],
2535 [0xcf, "Non-Canonical Address" ],
2536 [0xd0, "Non-Canonical Address" ],
2537 [0xd1, "Non-Canonical Address" ],
2538 [0xd2, "Non-Canonical Address" ],
2539 [0xd3, "Non-Canonical Address" ],
2540 [0xd4, "Non-Canonical Address" ],
2541 [0xd5, "Non-Canonical Address" ],
2542 [0xd6, "Non-Canonical Address" ],
2543 [0xd7, "Non-Canonical Address" ],
2544 [0xd8, "Non-Canonical Address" ],
2545 [0xd9, "Non-Canonical Address" ],
2546 [0xda, "Non-Canonical Address" ],
2547 [0xdb, "Non-Canonical Address" ],
2548 [0xdc, "Non-Canonical Address" ],
2549 [0xdd, "Non-Canonical Address" ],
2550 [0xde, "Non-Canonical Address" ],
2551 [0xdf, "Non-Canonical Address" ],
2552 [0xe0, "Non-Canonical Address" ],
2553 [0xe1, "Non-Canonical Address" ],
2554 [0xe2, "Non-Canonical Address" ],
2555 [0xe3, "Non-Canonical Address" ],
2556 [0xe4, "Non-Canonical Address" ],
2557 [0xe5, "Non-Canonical Address" ],
2558 [0xe6, "Non-Canonical Address" ],
2559 [0xe7, "Non-Canonical Address" ],
2560 [0xe8, "Non-Canonical Address" ],
2561 [0xe9, "Non-Canonical Address" ],
2562 [0xea, "Non-Canonical Address" ],
2563 [0xeb, "Non-Canonical Address" ],
2564 [0xec, "Non-Canonical Address" ],
2565 [0xed, "Non-Canonical Address" ],
2566 [0xee, "Non-Canonical Address" ],
2567 [0xef, "Non-Canonical Address" ],
2568 [0xf0, "Non-Canonical Address" ],
2569 [0xf1, "Non-Canonical Address" ],
2570 [0xf2, "Non-Canonical Address" ],
2571 [0xf3, "Non-Canonical Address" ],
2572 [0xf4, "Non-Canonical Address" ],
2573 [0xf5, "Non-Canonical Address" ],
2574 [0xf6, "Non-Canonical Address" ],
2575 [0xf7, "Non-Canonical Address" ],
2576 [0xf8, "Non-Canonical Address" ],
2577 [0xf9, "Non-Canonical Address" ],
2578 [0xfa, "Non-Canonical Address" ],
2579 [0xfb, "Non-Canonical Address" ],
2580 [0xfc, "Non-Canonical Address" ],
2581 [0xfd, "Non-Canonical Address" ],
2582 [0xfe, "Non-Canonical Address" ],
2583 [0xff, "Non-Canonical Address" ],
2585 LANDriverNumber = uint8("lan_driver_number", "LAN Driver Number")
2586 LANdriverNodeAddress = bytes("lan_dvr_node_addr", "LAN Driver Node Address", 6)
2587 LANdriverRecvSize = uint32("lan_drv_rcv_size", "LAN Driver Receive Size")
2588 LANdriverReserved = uint16("lan_drv_reserved", "LAN Driver Reserved")
2589 LANdriverSendRetries = uint16("lan_drv_snd_retries", "LAN Driver Send Retries")
2590 LANdriverSharingFlags = uint16("lan_drv_share", "LAN Driver Sharing Flags")
2591 LANdriverShortName = fw_string("lan_drv_short_name", "LAN Driver Short Name", 40)
2592 LANdriverSlot = uint16("lan_drv_slot", "LAN Driver Slot")
2593 LANdriverSrcRouting = uint32("lan_drv_src_route", "LAN Driver Source Routing")
2594 LANdriverTransportTime = uint16("lan_drv_trans_time", "LAN Driver Transport Time")
2595 LastAccessedDate = uint16("last_access_date", "Last Accessed Date")
2596 LastAccessedDate.NWDate()
2597 LastAccessedTime = uint16("last_access_time", "Last Accessed Time")
2598 LastAccessedTime.NWTime()
2599 LastGarbCollect = uint32("last_garbage_collect", "Last Garbage Collection")
2600 LastInstance = uint32("last_instance", "Last Instance")
2601 LastRecordSeen = uint16("last_record_seen", "Last Record Seen")
2602 LastSearchIndex = uint16("last_search_index", "Search Index")
2603 LastSeen = uint32("last_seen", "Last Seen")
2604 LastSequenceNumber = uint16("last_sequence_number", "Sequence Number")
2605 Length64bit = bytes("length_64bit", "64bit Length", 64)
2606 Level = uint8("level", "Level")
2607 LFSCounters = uint32("lfs_counters", "LFS Counters")
2608 LimboDataStreamsCount = uint32("limbo_data_streams_count", "Limbo Data Streams Count")
2609 limbCount = uint32("limb_count", "Limb Count")
2610 limbFlags = bitfield32("limb_flags", "Limb Flags", [
2611 bf_boolean32(0x00000002, "scan_entire_folder", "Wild Search"),
2612 bf_boolean32(0x00000004, "scan_files_only", "Scan Files Only"),
2613 bf_boolean32(0x00000008, "scan_folders_only", "Scan Folders Only"),
2614 bf_boolean32(0x00000010, "allow_system", "Allow System Files and Folders"),
2615 bf_boolean32(0x00000020, "allow_hidden", "Allow Hidden Files and Folders"),
2618 limbScanNum = uint32("limb_scan_num", "Limb Scan Number")
2619 LimboUsed = uint32("limbo_used", "Limbo Used")
2620 LoadedNameSpaces = uint8("loaded_name_spaces", "Loaded Name Spaces")
2621 LocalConnectionID = uint32("local_connection_id", "Local Connection ID")
2622 LocalConnectionID.Display("BASE_HEX")
2623 LocalMaxPacketSize = uint32("local_max_packet_size", "Local Max Packet Size")
2624 LocalMaxSendSize = uint32("local_max_send_size", "Local Max Send Size")
2625 LocalMaxRecvSize = uint32("local_max_recv_size", "Local Max Recv Size")
2626 LocalLoginInfoCcode = uint8("local_login_info_ccode", "Local Login Info C Code")
2627 LocalTargetSocket = uint32("local_target_socket", "Local Target Socket")
2628 LocalTargetSocket.Display("BASE_HEX")
2629 LockAreaLen = uint32("lock_area_len", "Lock Area Length")
2630 LockAreasStartOffset = uint32("lock_areas_start_offset", "Lock Areas Start Offset")
2631 LockTimeout = uint16("lock_timeout", "Lock Timeout")
2632 Locked = val_string8("locked", "Locked Flag", [
2633 [ 0x00, "Not Locked Exclusively" ],
2634 [ 0x01, "Locked Exclusively" ],
2636 LockFlag = val_string8("lock_flag", "Lock Flag", [
2637 [ 0x00, "Not Locked, Log for Future Exclusive Lock" ],
2638 [ 0x01, "Exclusive Lock (Read/Write)" ],
2639 [ 0x02, "Log for Future Shared Lock"],
2640 [ 0x03, "Shareable Lock (Read-Only)" ],
2641 [ 0xfe, "Locked by a File Lock" ],
2642 [ 0xff, "Locked by Begin Share File Set" ],
2644 LockName = nstring8("lock_name", "Lock Name")
2645 LockStatus = val_string8("lock_status", "Lock Status", [
2646 [ 0x00, "Locked Exclusive" ],
2647 [ 0x01, "Locked Shareable" ],
2649 [ 0x06, "Lock is Held by TTS"],
2651 ConnLockStatus = val_string8("conn_lock_status", "Lock Status", [
2652 [ 0x00, "Normal (connection free to run)" ],
2653 [ 0x01, "Waiting on physical record lock" ],
2654 [ 0x02, "Waiting on a file lock" ],
2655 [ 0x03, "Waiting on a logical record lock"],
2656 [ 0x04, "Waiting on a semaphore"],
2658 LockType = val_string8("lock_type", "Lock Type", [
2660 [ 0x01, "Open Shareable" ],
2662 [ 0x03, "Open Normal" ],
2663 [ 0x06, "TTS Holding Lock" ],
2664 [ 0x07, "Transaction Flag Set on This File" ],
2666 LogFileFlagHigh = bitfield8("log_file_flag_high", "Log File Flag (byte 2)", [
2667 bf_boolean8(0x80, "log_flag_call_back", "Call Back Requested" ),
2669 LogFileFlagLow = bitfield8("log_file_flag_low", "Log File Flag", [
2670 bf_boolean8(0x01, "log_flag_lock_file", "Lock File Immediately" ),
2672 LoggedObjectID = uint32("logged_object_id", "Logged in Object ID")
2673 LoggedObjectID.Display("BASE_HEX")
2674 LoggedCount = uint16("logged_count", "Logged Count")
2675 LogicalConnectionNumber = uint16("logical_connection_number", "Logical Connection Number", BE)
2676 LogicalDriveCount = uint8("logical_drive_count", "Logical Drive Count")
2677 LogicalDriveNumber = uint8("logical_drive_number", "Logical Drive Number")
2678 LogicalLockThreshold = uint8("logical_lock_threshold", "LogicalLockThreshold")
2679 LogicalRecordName = nstring8("logical_record_name", "Logical Record Name")
2680 LoginKey = bytes("login_key", "Login Key", 8)
2681 LogLockType = uint8("log_lock_type", "Log Lock Type")
2682 LogTtlRxPkts = uint32("log_ttl_rx_pkts", "Total Received Packets")
2683 LogTtlTxPkts = uint32("log_ttl_tx_pkts", "Total Transmitted Packets")
2684 LongName = fw_string("long_name", "Long Name", 32)
2685 LRUBlockWasDirty = uint16("lru_block_was_dirty", "LRU Block Was Dirty")
2687 MacAttr = bitfield16("mac_attr", "Attributes", [
2688 bf_boolean16(0x0001, "mac_attr_smode1", "Search Mode"),
2689 bf_boolean16(0x0002, "mac_attr_smode2", "Search Mode"),
2690 bf_boolean16(0x0004, "mac_attr_smode3", "Search Mode"),
2691 bf_boolean16(0x0010, "mac_attr_transaction", "Transaction"),
2692 bf_boolean16(0x0020, "mac_attr_index", "Index"),
2693 bf_boolean16(0x0040, "mac_attr_r_audit", "Read Audit"),
2694 bf_boolean16(0x0080, "mac_attr_w_audit", "Write Audit"),
2695 bf_boolean16(0x0100, "mac_attr_r_only", "Read Only"),
2696 bf_boolean16(0x0200, "mac_attr_hidden", "Hidden"),
2697 bf_boolean16(0x0400, "mac_attr_system", "System"),
2698 bf_boolean16(0x0800, "mac_attr_execute_only", "Execute Only"),
2699 bf_boolean16(0x1000, "mac_attr_subdirectory", "Subdirectory"),
2700 bf_boolean16(0x2000, "mac_attr_archive", "Archive"),
2701 bf_boolean16(0x8000, "mac_attr_share", "Shareable File"),
2703 MACBackupDate = uint16("mac_backup_date", "Mac Backup Date")
2704 MACBackupDate.NWDate()
2705 MACBackupTime = uint16("mac_backup_time", "Mac Backup Time")
2706 MACBackupTime.NWTime()
2707 MacBaseDirectoryID = uint32("mac_base_directory_id", "Mac Base Directory ID", BE)
2708 MacBaseDirectoryID.Display("BASE_HEX")
2709 MACCreateDate = uint16("mac_create_date", "Mac Create Date")
2710 MACCreateDate.NWDate()
2711 MACCreateTime = uint16("mac_create_time", "Mac Create Time")
2712 MACCreateTime.NWTime()
2713 MacDestinationBaseID = uint32("mac_destination_base_id", "Mac Destination Base ID")
2714 MacDestinationBaseID.Display("BASE_HEX")
2715 MacFinderInfo = bytes("mac_finder_info", "Mac Finder Information", 32)
2716 MacLastSeenID = uint32("mac_last_seen_id", "Mac Last Seen ID")
2717 MacLastSeenID.Display("BASE_HEX")
2718 MacSourceBaseID = uint32("mac_source_base_id", "Mac Source Base ID")
2719 MacSourceBaseID.Display("BASE_HEX")
2720 MajorVersion = uint32("major_version", "Major Version")
2721 MaxBytes = uint16("max_bytes", "Maximum Number of Bytes")
2722 MaxDataStreams = uint32("max_data_streams", "Maximum Data Streams")
2723 MaxDirDepth = uint32("max_dir_depth", "Maximum Directory Depth")
2724 MaximumSpace = uint16("max_space", "Maximum Space")
2725 MaxNumOfConn = uint32("max_num_of_conn", "Maximum Number of Connections")
2726 MaxNumOfLANS = uint32("max_num_of_lans", "Maximum Number Of LAN's")
2727 MaxNumOfMedias = uint32("max_num_of_medias", "Maximum Number Of Media's")
2728 MaxNumOfNmeSps = uint32("max_num_of_nme_sps", "Maximum Number Of Name Spaces")
2729 MaxNumOfSpoolPr = uint32("max_num_of_spool_pr", "Maximum Number Of Spool Printers")
2730 MaxNumOfStacks = uint32("max_num_of_stacks", "Maximum Number Of Stacks")
2731 MaxNumOfUsers = uint32("max_num_of_users", "Maximum Number Of Users")
2732 MaxNumOfVol = uint32("max_num_of_vol", "Maximum Number of Volumes")
2733 MaxReadDataReplySize = uint16("max_read_data_reply_size", "Max Read Data Reply Size")
2734 MaxSpace = uint32("maxspace", "Maximum Space")
2735 MaxUsedDynamicSpace = uint32("max_used_dynamic_space", "Max Used Dynamic Space")
2736 MediaList = uint32("media_list", "Media List")
2737 MediaListCount = uint32("media_list_count", "Media List Count")
2738 MediaName = nstring8("media_name", "Media Name")
2739 MediaNumber = uint32("media_number", "Media Number")
2740 MaxReplyObjectIDCount = uint8("max_reply_obj_id_count", "Max Reply Object ID Count")
2741 MediaObjectType = val_string8("media_object_type", "Object Type", [
2742 [ 0x00, "Adapter" ],
2743 [ 0x01, "Changer" ],
2744 [ 0x02, "Removable Device" ],
2746 [ 0x04, "Removable Media" ],
2747 [ 0x05, "Partition" ],
2752 [ 0x0a, "Volume Segment" ],
2755 [ 0x0d, "Fixed Media" ],
2756 [ 0x0e, "Unknown" ],
2758 MemberName = nstring8("member_name", "Member Name")
2759 MemberType = val_string16("member_type", "Member Type", [
2760 [ 0x0000, "Unknown" ],
2762 [ 0x0002, "User group" ],
2763 [ 0x0003, "Print queue" ],
2764 [ 0x0004, "NetWare file server" ],
2765 [ 0x0005, "Job server" ],
2766 [ 0x0006, "Gateway" ],
2767 [ 0x0007, "Print server" ],
2768 [ 0x0008, "Archive queue" ],
2769 [ 0x0009, "Archive server" ],
2770 [ 0x000a, "Job queue" ],
2771 [ 0x000b, "Administration" ],
2772 [ 0x0021, "NAS SNA gateway" ],
2773 [ 0x0026, "Remote bridge server" ],
2774 [ 0x0027, "TCP/IP gateway" ],
2776 MessageLanguage = uint32("message_language", "NLM Language")
2777 MigratedFiles = uint32("migrated_files", "Migrated Files")
2778 MigratedSectors = uint32("migrated_sectors", "Migrated Sectors")
2779 MinorVersion = uint32("minor_version", "Minor Version")
2780 Minute = uint8("s_minute", "Minutes")
2781 MixedModePathFlag = val_string8("mixed_mode_path_flag", "Mixed Mode Path Flag", [
2782 [ 0x00, "Mixed mode path handling is not available"],
2783 [ 0x01, "Mixed mode path handling is available"],
2785 ModifiedDate = uint16("modified_date", "Modified Date")
2786 ModifiedDate.NWDate()
2787 ModifiedTime = uint16("modified_time", "Modified Time")
2788 ModifiedTime.NWTime()
2789 ModifierID = uint32("modifier_id", "Modifier ID", BE)
2790 ModifierID.Display("BASE_HEX")
2791 ModifyDOSInfoMask = bitfield16("modify_dos_info_mask", "Modify DOS Info Mask", [
2792 bf_boolean16(0x0002, "modify_dos_read", "Attributes"),
2793 bf_boolean16(0x0004, "modify_dos_write", "Creation Date"),
2794 bf_boolean16(0x0008, "modify_dos_open", "Creation Time"),
2795 bf_boolean16(0x0010, "modify_dos_create", "Creator ID"),
2796 bf_boolean16(0x0020, "modify_dos_delete", "Archive Date"),
2797 bf_boolean16(0x0040, "modify_dos_parent", "Archive Time"),
2798 bf_boolean16(0x0080, "modify_dos_search", "Archiver ID"),
2799 bf_boolean16(0x0100, "modify_dos_mdate", "Modify Date"),
2800 bf_boolean16(0x0200, "modify_dos_mtime", "Modify Time"),
2801 bf_boolean16(0x0400, "modify_dos_mid", "Modifier ID"),
2802 bf_boolean16(0x0800, "modify_dos_laccess", "Last Access"),
2803 bf_boolean16(0x1000, "modify_dos_inheritance", "Inheritance"),
2804 bf_boolean16(0x2000, "modify_dos_max_space", "Maximum Space"),
2806 Month = val_string8("s_month", "Month", [
2808 [ 0x02, "February"],
2815 [ 0x09, "September"],
2817 [ 0x0b, "November"],
2818 [ 0x0c, "December"],
2821 MoreFlag = val_string8("more_flag", "More Flag", [
2822 [ 0x00, "No More Segments/Entries Available" ],
2823 [ 0x01, "More Segments/Entries Available" ],
2824 [ 0xff, "More Segments/Entries Available" ],
2826 MoreProperties = val_string8("more_properties", "More Properties", [
2827 [ 0x00, "No More Properties Available" ],
2828 [ 0x01, "No More Properties Available" ],
2829 [ 0xff, "More Properties Available" ],
2832 Name = nstring8("name", "Name")
2833 Name12 = fw_string("name12", "Name", 12)
2834 NameLen = uint8("name_len", "Name Space Length")
2835 NameLength = uint8("name_length", "Name Length")
2836 NameList = uint32("name_list", "Name List")
2838 # XXX - should this value be used to interpret the characters in names,
2839 # search patterns, and the like?
2841 # We need to handle character sets better, e.g. translating strings
2842 # from whatever character set they are in the packet (DOS/Windows code
2843 # pages, ISO character sets, UNIX EUC character sets, UTF-8, UCS-2/Unicode,
2844 # Mac character sets, etc.) into UCS-4 or UTF-8 and storing them as such
2845 # in the protocol tree, and displaying them as best we can.
2847 NameSpace = val_string8("name_space", "Name Space", [
2852 [ 0x04, "OS/2, Long" ],
2854 NamesSpaceInfoMask = bitfield16("ns_info_mask", "Names Space Info Mask", [
2855 bf_boolean16(0x0001, "ns_info_mask_modify", "Modify Name"),
2856 bf_boolean16(0x0002, "ns_info_mask_fatt", "File Attributes"),
2857 bf_boolean16(0x0004, "ns_info_mask_cdate", "Creation Date"),
2858 bf_boolean16(0x0008, "ns_info_mask_ctime", "Creation Time"),
2859 bf_boolean16(0x0010, "ns_info_mask_owner", "Owner ID"),
2860 bf_boolean16(0x0020, "ns_info_mask_adate", "Archive Date"),
2861 bf_boolean16(0x0040, "ns_info_mask_atime", "Archive Time"),
2862 bf_boolean16(0x0080, "ns_info_mask_aid", "Archiver ID"),
2863 bf_boolean16(0x0100, "ns_info_mask_udate", "Update Date"),
2864 bf_boolean16(0x0200, "ns_info_mask_utime", "Update Time"),
2865 bf_boolean16(0x0400, "ns_info_mask_uid", "Update ID"),
2866 bf_boolean16(0x0800, "ns_info_mask_acc_date", "Access Date"),
2867 bf_boolean16(0x1000, "ns_info_mask_max_acc_mask", "Inheritance"),
2868 bf_boolean16(0x2000, "ns_info_mask_max_space", "Maximum Space"),
2870 NameSpaceName = nstring8("name_space_name", "Name Space Name")
2871 nameType = uint32("name_type", "nameType")
2872 NCPdataSize = uint32("ncp_data_size", "NCP Data Size")
2873 NCPEncodedStringsBits = uint32("ncp_encoded_strings_bits", "NCP Encoded Strings Bits")
2874 NCPextensionMajorVersion = uint8("ncp_extension_major_version", "NCP Extension Major Version")
2875 NCPextensionMinorVersion = uint8("ncp_extension_minor_version", "NCP Extension Minor Version")
2876 NCPextensionName = nstring8("ncp_extension_name", "NCP Extension Name")
2877 NCPextensionNumber = uint32("ncp_extension_number", "NCP Extension Number")
2878 NCPextensionNumber.Display("BASE_HEX")
2879 NCPExtensionNumbers = uint32("ncp_extension_numbers", "NCP Extension Numbers")
2880 NCPextensionRevisionNumber = uint8("ncp_extension_revision_number", "NCP Extension Revision Number")
2881 NCPPeakStaInUse = uint32("ncp_peak_sta_in_use", "Peak Number of Connections since Server was brought up")
2882 NCPStaInUseCnt = uint32("ncp_sta_in_use", "Number of Workstations Connected to Server")
2883 NDSRequestFlags = bitfield16("nds_request_flags", "NDS Request Flags", [
2884 bf_boolean16(0x0001, "nds_request_flags_output", "Output Fields"),
2885 bf_boolean16(0x0002, "nds_request_flags_no_such_entry", "No Such Entry"),
2886 bf_boolean16(0x0004, "nds_request_flags_local_entry", "Local Entry"),
2887 bf_boolean16(0x0008, "nds_request_flags_type_ref", "Type Referral"),
2888 bf_boolean16(0x0010, "nds_request_flags_alias_ref", "Alias Referral"),
2889 bf_boolean16(0x0020, "nds_request_flags_req_cnt", "Request Count"),
2890 bf_boolean16(0x0040, "nds_request_flags_req_data_size", "Request Data Size"),
2891 bf_boolean16(0x0080, "nds_request_flags_reply_data_size", "Reply Data Size"),
2892 bf_boolean16(0x0100, "nds_request_flags_trans_ref", "Transport Referral"),
2893 bf_boolean16(0x0200, "nds_request_flags_trans_ref2", "Transport Referral"),
2894 bf_boolean16(0x0400, "nds_request_flags_up_ref", "Up Referral"),
2895 bf_boolean16(0x0800, "nds_request_flags_dn_ref", "Down Referral"),
2897 NDSStatus = uint32("nds_status", "NDS Status")
2898 NetBIOSBroadcastWasPropogated = uint32("netbios_broadcast_was_propogated", "NetBIOS Broadcast Was Propogated")
2899 NetIDNumber = uint32("net_id_number", "Net ID Number")
2900 NetIDNumber.Display("BASE_HEX")
2901 NetAddress = nbytes32("address", "Address")
2902 NetStatus = uint16("net_status", "Network Status")
2903 NetWareAccessHandle = bytes("netware_access_handle", "NetWare Access Handle", 6)
2904 NetworkAddress = uint32("network_address", "Network Address")
2905 NetworkAddress.Display("BASE_HEX")
2906 NetworkNodeAddress = bytes("network_node_address", "Network Node Address", 6)
2907 NetworkNumber = uint32("network_number", "Network Number")
2908 NetworkNumber.Display("BASE_HEX")
2910 # XXX - this should have the "ipx_socket_vals" value_string table
2911 # from "packet-ipx.c".
2913 NetworkSocket = uint16("network_socket", "Network Socket")
2914 NetworkSocket.Display("BASE_HEX")
2915 NewAccessRights = bitfield16("new_access_rights_mask", "New Access Rights", [
2916 bf_boolean16(0x0001, "new_access_rights_read", "Read"),
2917 bf_boolean16(0x0002, "new_access_rights_write", "Write"),
2918 bf_boolean16(0x0004, "new_access_rights_open", "Open"),
2919 bf_boolean16(0x0008, "new_access_rights_create", "Create"),
2920 bf_boolean16(0x0010, "new_access_rights_delete", "Delete"),
2921 bf_boolean16(0x0020, "new_access_rights_parental", "Parental"),
2922 bf_boolean16(0x0040, "new_access_rights_search", "Search"),
2923 bf_boolean16(0x0080, "new_access_rights_modify", "Modify"),
2924 bf_boolean16(0x0100, "new_access_rights_supervisor", "Supervisor"),
2926 NewDirectoryID = uint32("new_directory_id", "New Directory ID", BE)
2927 NewDirectoryID.Display("BASE_HEX")
2928 NewEAHandle = uint32("new_ea_handle", "New EA Handle")
2929 NewEAHandle.Display("BASE_HEX")
2930 NewFileName = fw_string("new_file_name", "New File Name", 14)
2931 NewFileNameLen = nstring8("new_file_name_len", "New File Name")
2932 NewFileSize = uint32("new_file_size", "New File Size")
2933 NewPassword = nstring8("new_password", "New Password")
2934 NewPath = nstring8("new_path", "New Path")
2935 NewPosition = uint8("new_position", "New Position")
2936 NewObjectName = nstring8("new_object_name", "New Object Name")
2937 NextCntBlock = uint32("next_cnt_block", "Next Count Block")
2938 NextHugeStateInfo = bytes("next_huge_state_info", "Next Huge State Info", 16)
2939 nextLimbScanNum = uint32("next_limb_scan_num", "Next Limb Scan Number")
2940 NextObjectID = uint32("next_object_id", "Next Object ID", BE)
2941 NextObjectID.Display("BASE_HEX")
2942 NextRecord = uint32("next_record", "Next Record")
2943 NextRequestRecord = uint16("next_request_record", "Next Request Record")
2944 NextSearchIndex = uint16("next_search_index", "Next Search Index")
2945 NextSearchNumber = uint16("next_search_number", "Next Search Number")
2946 NextSearchNum = uint32("nxt_search_num", "Next Search Number")
2947 nextStartingNumber = uint32("next_starting_number", "Next Starting Number")
2948 NextTrusteeEntry = uint32("next_trustee_entry", "Next Trustee Entry")
2949 NextVolumeNumber = uint32("next_volume_number", "Next Volume Number")
2950 NLMBuffer = nstring8("nlm_buffer", "Buffer")
2951 NLMcount = uint32("nlm_count", "NLM Count")
2952 NLMFlags = bitfield8("nlm_flags", "Flags", [
2953 bf_boolean8(0x01, "nlm_flags_reentrant", "ReEntrant"),
2954 bf_boolean8(0x02, "nlm_flags_multiple", "Can Load Multiple Times"),
2955 bf_boolean8(0x04, "nlm_flags_synchronize", "Synchronize Start"),
2956 bf_boolean8(0x08, "nlm_flags_pseudo", "PseudoPreemption"),
2958 NLMLoadOptions = uint32("nlm_load_options", "NLM Load Options")
2959 NLMName = stringz("nlm_name_stringz", "NLM Name")
2960 NLMNumber = uint32("nlm_number", "NLM Number")
2961 NLMNumbers = uint32("nlm_numbers", "NLM Numbers")
2962 NLMsInList = uint32("nlms_in_list", "NLM's in List")
2963 NLMStartNumber = uint32("nlm_start_num", "NLM Start Number")
2964 NLMType = val_string8("nlm_type", "NLM Type", [
2965 [ 0x00, "Generic NLM (.NLM)" ],
2966 [ 0x01, "LAN Driver (.LAN)" ],
2967 [ 0x02, "Disk Driver (.DSK)" ],
2968 [ 0x03, "Name Space Support Module (.NAM)" ],
2969 [ 0x04, "Utility or Support Program (.NLM)" ],
2970 [ 0x05, "Mirrored Server Link (.MSL)" ],
2971 [ 0x06, "OS NLM (.NLM)" ],
2972 [ 0x07, "Paged High OS NLM (.NLM)" ],
2973 [ 0x08, "Host Adapter Module (.HAM)" ],
2974 [ 0x09, "Custom Device Module (.CDM)" ],
2975 [ 0x0a, "File System Engine (.NLM)" ],
2976 [ 0x0b, "Real Mode NLM (.NLM)" ],
2977 [ 0x0c, "Hidden NLM (.NLM)" ],
2978 [ 0x15, "NICI Support (.NLM)" ],
2979 [ 0x16, "NICI Support (.NLM)" ],
2980 [ 0x17, "Cryptography (.NLM)" ],
2981 [ 0x18, "Encryption (.NLM)" ],
2982 [ 0x19, "NICI Support (.NLM)" ],
2983 [ 0x1c, "NICI Support (.NLM)" ],
2985 nodeFlags = uint32("node_flags", "Node Flags")
2986 nodeFlags.Display("BASE_HEX")
2987 NoMoreMemAvlCnt = uint32("no_more_mem_avail", "No More Memory Available Count")
2988 NonDedFlag = boolean8("non_ded_flag", "Non Dedicated Flag")
2989 NonFreeableAvailableSubAllocSectors = uint32("non_freeable_avail_sub_alloc_sectors", "Non Freeable Available Sub Alloc Sectors")
2990 NonFreeableLimboSectors = uint32("non_freeable_limbo_sectors", "Non Freeable Limbo Sectors")
2991 NotUsableSubAllocSectors = uint32("not_usable_sub_alloc_sectors", "Not Usable Sub Alloc Sectors")
2992 NotYetPurgeableBlocks = uint32("not_yet_purgeable_blocks", "Not Yet Purgeable Blocks")
2993 NSInfoBitMask = uint32("ns_info_bit_mask", "Name Space Info Bit Mask")
2994 NSSOAllInFlags = bitfield32("nsso_all_in_flags", "SecretStore All Input Flags",[
2995 bf_boolean32(0x00000010, "nsso_all_unicode", "Unicode Data"),
2996 bf_boolean32(0x00000080, "nsso_set_tree", "Set Tree"),
2997 bf_boolean32(0x00000200, "nsso_destroy_ctx", "Destroy Context"),
2999 NSSOGetServiceInFlags = bitfield32("nsso_get_svc_in_flags", "SecretStore Get Service Flags",[
3000 bf_boolean32(0x00000100, "nsso_get_ctx", "Get Context"),
3002 NSSOReadInFlags = bitfield32("nsso_read_in_flags", "SecretStore Read Flags",[
3003 bf_boolean32(0x00000001, "nsso_rw_enh_prot", "Read/Write Enhanced Protection"),
3004 bf_boolean32(0x00000008, "nsso_repair", "Repair SecretStore"),
3006 NSSOReadOrUnlockInFlags = bitfield32("nsso_read_or_unlock_in_flags", "SecretStore Read or Unlock Flags",[
3007 bf_boolean32(0x00000004, "nsso_ep_master_pwd", "Master Password used instead of ENH Password"),
3009 NSSOUnlockInFlags = bitfield32("nsso_unlock_in_flags", "SecretStore Unlock Flags",[
3010 bf_boolean32(0x00000004, "nsso_rmv_lock", "Remove Lock from Store"),
3012 NSSOWriteInFlags = bitfield32("nsso_write_in_flags", "SecretStore Write Flags",[
3013 bf_boolean32(0x00000001, "nsso_enh_prot", "Enhanced Protection"),
3014 bf_boolean32(0x00000002, "nsso_create_id", "Create ID"),
3015 bf_boolean32(0x00000040, "nsso_ep_pwd_used", "Enhanced Protection Password Used"),
3017 NSSOContextOutFlags = bitfield32("nsso_cts_out_flags", "Type of Context",[
3018 bf_boolean32(0x00000001, "nsso_ds_ctx", "DSAPI Context"),
3019 bf_boolean32(0x00000080, "nsso_ldap_ctx", "LDAP Context"),
3020 bf_boolean32(0x00000200, "nsso_dc_ctx", "Reserved"),
3022 NSSOGetServiceOutFlags = bitfield32("nsso_get_svc_out_flags", "SecretStore Status Flags",[
3023 bf_boolean32(0x00400000, "nsso_mstr_pwd", "Master Password Present"),
3025 NSSOGetServiceReadOutFlags = bitfield32("nsso_get_svc_read_out_flags", "SecretStore Status Flags",[
3026 bf_boolean32(0x00800000, "nsso_mp_disabled", "Master Password Disabled"),
3028 NSSOReadOutFlags = bitfield32("nsso_read_out_flags", "SecretStore Read Flags",[
3029 bf_boolean32(0x00010000, "nsso_secret_locked", "Enhanced Protection Lock on Secret"),
3030 bf_boolean32(0x00020000, "nsso_secret_not_init", "Secret Not Yet Initialized"),
3031 bf_boolean32(0x00040000, "nsso_secret_marked", "Secret Marked for Enhanced Protection"),
3032 bf_boolean32(0x00080000, "nsso_secret_not_sync", "Secret Not Yet Synchronized in NDS"),
3033 bf_boolean32(0x00200000, "nsso_secret_enh_pwd", "Enhanced Protection Password on Secret"),
3035 NSSOReadOutStatFlags = bitfield32("nsso_read_out_stat_flags", "SecretStore Read Status Flags",[
3036 bf_boolean32(0x00100000, "nsso_admin_mod", "Admin Modified Secret Last"),
3038 NSSOVerb = val_string8("nsso_verb", "SecretStore Verb", [
3039 [ 0x00, "Query Server" ],
3040 [ 0x01, "Read App Secrets" ],
3041 [ 0x02, "Write App Secrets" ],
3042 [ 0x03, "Add Secret ID" ],
3043 [ 0x04, "Remove Secret ID" ],
3044 [ 0x05, "Remove SecretStore" ],
3045 [ 0x06, "Enumerate SecretID's" ],
3046 [ 0x07, "Unlock Store" ],
3047 [ 0x08, "Set Master Password" ],
3048 [ 0x09, "Get Service Information" ],
3050 NSSpecificInfo = fw_string("ns_specific_info", "Name Space Specific Info", 512)
3051 NumberOfActiveTasks = uint8("num_of_active_tasks", "Number of Active Tasks")
3052 NumberOfAllocs = uint32("num_of_allocs", "Number of Allocations")
3053 NumberOfCPUs = uint32("number_of_cpus", "Number of CPU's")
3054 NumberOfDataStreams = uint16("number_of_data_streams", "Number of Data Streams")
3055 NumberOfDataStreamsLong = uint32("number_of_data_streams_long", "Number of Data Streams")
3056 NumberOfDynamicMemoryAreas = uint16("number_of_dynamic_memory_areas", "Number Of Dynamic Memory Areas")
3057 NumberOfEntries = uint8("number_of_entries", "Number of Entries")
3058 NumberOfLocks = uint8("number_of_locks", "Number of Locks")
3059 NumberOfMinutesToDelay = uint32("number_of_minutes_to_delay", "Number of Minutes to Delay")
3060 NumberOfNCPExtensions = uint32("number_of_ncp_extensions", "Number Of NCP Extensions")
3061 NumberOfNSLoaded = uint16("number_of_ns_loaded", "Number Of Name Spaces Loaded")
3062 NumberOfProtocols = uint8("number_of_protocols", "Number of Protocols")
3063 NumberOfRecords = uint16("number_of_records", "Number of Records")
3064 NumberOfReferencedPublics = uint32("num_of_ref_publics", "Number of Referenced Public Symbols")
3065 NumberOfSemaphores = uint16("number_of_semaphores", "Number Of Semaphores")
3066 NumberOfServiceProcesses = uint8("number_of_service_processes", "Number Of Service Processes")
3067 NumberOfSetCategories = uint32("number_of_set_categories", "Number Of Set Categories")
3068 NumberOfSMs = uint32("number_of_sms", "Number Of Storage Medias")
3069 NumberOfStations = uint8("number_of_stations", "Number of Stations")
3070 NumBytes = uint16("num_bytes", "Number of Bytes")
3071 NumOfCCinPkt = uint32("num_of_cc_in_pkt", "Number of Custom Counters in Packet")
3072 NumOfChecks = uint32("num_of_checks", "Number of Checks")
3073 NumOfEntries = uint32("num_of_entries", "Number of Entries")
3074 NumOfFilesMigrated = uint32("num_of_files_migrated", "Number Of Files Migrated")
3075 NumOfGarbageColl = uint32("num_of_garb_coll", "Number of Garbage Collections")
3076 NumOfNCPReqs = uint32("num_of_ncp_reqs", "Number of NCP Requests since Server was brought up")
3077 NumOfSegments = uint32("num_of_segments", "Number of Segments")
3079 ObjectCount = uint32("object_count", "Object Count")
3080 ObjectFlags = val_string8("object_flags", "Object Flags", [
3081 [ 0x00, "Dynamic object" ],
3082 [ 0x01, "Static object" ],
3084 ObjectHasProperties = val_string8("object_has_properites", "Object Has Properties", [
3085 [ 0x00, "No properties" ],
3086 [ 0xff, "One or more properties" ],
3088 ObjectID = uint32("object_id", "Object ID", BE)
3089 ObjectID.Display('BASE_HEX')
3090 ObjectIDCount = uint16("object_id_count", "Object ID Count")
3091 ObjectIDInfo = uint32("object_id_info", "Object Information")
3092 ObjectInfoReturnCount = uint32("object_info_rtn_count", "Object Information Count")
3093 ObjectName = nstring8("object_name", "Object Name")
3094 ObjectNameLen = fw_string("object_name_len", "Object Name", 48)
3095 ObjectNameStringz = stringz("object_name_stringz", "Object Name")
3096 ObjectNumber = uint32("object_number", "Object Number")
3097 ObjectSecurity = val_string8("object_security", "Object Security", [
3098 [ 0x00, "Object Read (Anyone) / Object Write (Anyone)" ],
3099 [ 0x01, "Object Read (Logged in) / Object Write (Anyone)" ],
3100 [ 0x02, "Object Read (Logged in as Object) / Object Write (Anyone)" ],
3101 [ 0x03, "Object Read (Supervisor) / Object Write (Anyone)" ],
3102 [ 0x04, "Object Read (Operating System Only) / Object Write (Anyone)" ],
3103 [ 0x10, "Object Read (Anyone) / Object Write (Logged in)" ],
3104 [ 0x11, "Object Read (Logged in) / Object Write (Logged in)" ],
3105 [ 0x12, "Object Read (Logged in as Object) / Object Write (Logged in)" ],
3106 [ 0x13, "Object Read (Supervisor) / Object Write (Logged in)" ],
3107 [ 0x14, "Object Read (Operating System Only) / Object Write (Logged in)" ],
3108 [ 0x20, "Object Read (Anyone) / Object Write (Logged in as Object)" ],
3109 [ 0x21, "Object Read (Logged in) / Object Write (Logged in as Object)" ],
3110 [ 0x22, "Object Read (Logged in as Object) / Object Write (Logged in as Object)" ],
3111 [ 0x23, "Object Read (Supervisor) / Object Write (Logged in as Object)" ],
3112 [ 0x24, "Object Read (Operating System Only) / Object Write (Logged in as Object)" ],
3113 [ 0x30, "Object Read (Anyone) / Object Write (Supervisor)" ],
3114 [ 0x31, "Object Read (Logged in) / Object Write (Supervisor)" ],
3115 [ 0x32, "Object Read (Logged in as Object) / Object Write (Supervisor)" ],
3116 [ 0x33, "Object Read (Supervisor) / Object Write (Supervisor)" ],
3117 [ 0x34, "Object Read (Operating System Only) / Object Write (Supervisor)" ],
3118 [ 0x40, "Object Read (Anyone) / Object Write (Operating System Only)" ],
3119 [ 0x41, "Object Read (Logged in) / Object Write (Operating System Only)" ],
3120 [ 0x42, "Object Read (Logged in as Object) / Object Write (Operating System Only)" ],
3121 [ 0x43, "Object Read (Supervisor) / Object Write (Operating System Only)" ],
3122 [ 0x44, "Object Read (Operating System Only) / Object Write (Operating System Only)" ],
3125 # XXX - should this use the "server_vals[]" value_string array from
3128 # XXX - should this list be merged with that list? There are some
3129 # oddities, e.g. this list has 0x03f5 for "Microsoft SQL Server", but
3130 # the list from "packet-ipx.c" has 0xf503 for that - is that just
3131 # byte-order confusion?
3133 ObjectType = val_string16("object_type", "Object Type", [
3134 [ 0x0000, "Unknown" ],
3136 [ 0x0002, "User group" ],
3137 [ 0x0003, "Print queue" ],
3138 [ 0x0004, "NetWare file server" ],
3139 [ 0x0005, "Job server" ],
3140 [ 0x0006, "Gateway" ],
3141 [ 0x0007, "Print server" ],
3142 [ 0x0008, "Archive queue" ],
3143 [ 0x0009, "Archive server" ],
3144 [ 0x000a, "Job queue" ],
3145 [ 0x000b, "Administration" ],
3146 [ 0x0021, "NAS SNA gateway" ],
3147 [ 0x0026, "Remote bridge server" ],
3148 [ 0x0027, "TCP/IP gateway" ],
3149 [ 0x0047, "Novell Print Server" ],
3150 [ 0x004b, "Btrieve Server" ],
3151 [ 0x004c, "NetWare SQL Server" ],
3152 [ 0x0064, "ARCserve" ],
3153 [ 0x0066, "ARCserve 3.0" ],
3154 [ 0x0076, "NetWare SQL" ],
3155 [ 0x00a0, "Gupta SQL Base Server" ],
3156 [ 0x00a1, "Powerchute" ],
3157 [ 0x0107, "NetWare Remote Console" ],
3158 [ 0x01cb, "Shiva NetModem/E" ],
3159 [ 0x01cc, "Shiva LanRover/E" ],
3160 [ 0x01cd, "Shiva LanRover/T" ],
3161 [ 0x01d8, "Castelle FAXPress Server" ],
3162 [ 0x01da, "Castelle Print Server" ],
3163 [ 0x01dc, "Castelle Fax Server" ],
3164 [ 0x0200, "Novell SQL Server" ],
3165 [ 0x023a, "NetWare Lanalyzer Agent" ],
3166 [ 0x023c, "DOS Target Service Agent" ],
3167 [ 0x023f, "NetWare Server Target Service Agent" ],
3168 [ 0x024f, "Appletalk Remote Access Service" ],
3169 [ 0x0263, "NetWare Management Agent" ],
3170 [ 0x0264, "Global MHS" ],
3172 [ 0x026a, "NetWare Management/NMS Console" ],
3173 [ 0x026b, "NetWare Time Synchronization" ],
3174 [ 0x0273, "Nest Device" ],
3175 [ 0x0274, "GroupWise Message Multiple Servers" ],
3176 [ 0x0278, "NDS Replica Server" ],
3177 [ 0x0282, "NDPS Service Registry Service" ],
3178 [ 0x028a, "MPR/IPX Address Mapping Gateway" ],
3179 [ 0x028b, "ManageWise" ],
3180 [ 0x0293, "NetWare 6" ],
3181 [ 0x030c, "HP JetDirect" ],
3182 [ 0x0328, "Watcom SQL Server" ],
3183 [ 0x0355, "Backup Exec" ],
3184 [ 0x039b, "Lotus Notes" ],
3185 [ 0x03e1, "Univel Server" ],
3186 [ 0x03f5, "Microsoft SQL Server" ],
3187 [ 0x055e, "Lexmark Print Server" ],
3188 [ 0x0640, "Microsoft Gateway Services for NetWare" ],
3189 [ 0x064e, "Microsoft Internet Information Server" ],
3190 [ 0x077b, "Advantage Database Server" ],
3191 [ 0x07a7, "Backup Exec Job Queue" ],
3192 [ 0x07a8, "Backup Exec Job Manager" ],
3193 [ 0x07a9, "Backup Exec Job Service" ],
3194 [ 0x5555, "Site Lock" ],
3195 [ 0x8202, "NDPS Broker" ],
3197 OCRetFlags = val_string8("o_c_ret_flags", "Open Create Return Flags", [
3198 [ 0x00, "No CallBack has been registered (No Op-Lock)" ],
3199 [ 0x01, "Request has been registered for CallBack (Op-Lock)" ],
3201 OldestDeletedFileAgeInTicks = uint32("oldest_deleted_file_age_in_ticks", "Oldest Deleted File Age in Ticks")
3202 OldFileName = bytes("old_file_name", "Old File Name", 15)
3203 OldFileSize = uint32("old_file_size", "Old File Size")
3204 OpenCount = uint16("open_count", "Open Count")
3205 OpenCreateAction = bitfield8("open_create_action", "Open Create Action", [
3206 bf_boolean8(0x01, "open_create_action_opened", "Opened"),
3207 bf_boolean8(0x02, "open_create_action_created", "Created"),
3208 bf_boolean8(0x04, "open_create_action_replaced", "Replaced"),
3209 bf_boolean8(0x08, "open_create_action_compressed", "Compressed"),
3210 bf_boolean8(0x80, "open_create_action_read_only", "Read Only"),
3212 OpenCreateMode = bitfield8("open_create_mode", "Open Create Mode", [
3213 bf_boolean8(0x01, "open_create_mode_open", "Open existing file (file must exist)"),
3214 bf_boolean8(0x02, "open_create_mode_replace", "Replace existing file"),
3215 bf_boolean8(0x08, "open_create_mode_create", "Create new file or subdirectory (file or subdirectory cannot exist)"),
3216 bf_boolean8(0x20, "open_create_mode_64bit", "Open 64-bit Access"),
3217 bf_boolean8(0x40, "open_create_mode_ro", "Open with Read Only Access"),
3218 bf_boolean8(0x80, "open_create_mode_oplock", "Open Callback (Op-Lock)"),
3220 OpenForReadCount = uint16("open_for_read_count", "Open For Read Count")
3221 OpenForWriteCount = uint16("open_for_write_count", "Open For Write Count")
3222 OpenRights = bitfield8("open_rights", "Open Rights", [
3223 bf_boolean8(0x01, "open_rights_read_only", "Read Only"),
3224 bf_boolean8(0x02, "open_rights_write_only", "Write Only"),
3225 bf_boolean8(0x04, "open_rights_deny_read", "Deny Read"),
3226 bf_boolean8(0x08, "open_rights_deny_write", "Deny Write"),
3227 bf_boolean8(0x10, "open_rights_compat", "Compatibility"),
3228 bf_boolean8(0x40, "open_rights_write_thru", "File Write Through"),
3230 OptionNumber = uint8("option_number", "Option Number")
3231 originalSize = uint32("original_size", "Original Size")
3232 OSLanguageID = uint8("os_language_id", "OS Language ID")
3233 OSMajorVersion = uint8("os_major_version", "OS Major Version")
3234 OSMinorVersion = uint8("os_minor_version", "OS Minor Version")
3235 OSRevision = uint32("os_revision", "OS Revision")
3236 OtherFileForkSize = uint32("other_file_fork_size", "Other File Fork Size")
3237 OtherFileForkFAT = uint32("other_file_fork_fat", "Other File Fork FAT Entry")
3238 OutgoingPacketDiscardedNoTurboBuffer = uint16("outgoing_packet_discarded_no_turbo_buffer", "Outgoing Packet Discarded No Turbo Buffer")
3240 PacketsDiscardedByHopCount = uint16("packets_discarded_by_hop_count", "Packets Discarded By Hop Count")
3241 PacketsDiscardedUnknownNet = uint16("packets_discarded_unknown_net", "Packets Discarded Unknown Net")
3242 PacketsFromInvalidConnection = uint16("packets_from_invalid_connection", "Packets From Invalid Connection")
3243 PacketsReceivedDuringProcessing = uint16("packets_received_during_processing", "Packets Received During Processing")
3244 PacketsWithBadRequestType = uint16("packets_with_bad_request_type", "Packets With Bad Request Type")
3245 PacketsWithBadSequenceNumber = uint16("packets_with_bad_sequence_number", "Packets With Bad Sequence Number")
3246 PageTableOwnerFlag = uint32("page_table_owner_flag", "Page Table Owner")
3247 ParentID = uint32("parent_id", "Parent ID")
3248 ParentID.Display("BASE_HEX")
3249 ParentBaseID = uint32("parent_base_id", "Parent Base ID")
3250 ParentBaseID.Display("BASE_HEX")
3251 ParentDirectoryBase = uint32("parent_directory_base", "Parent Directory Base")
3252 ParentDOSDirectoryBase = uint32("parent_dos_directory_base", "Parent DOS Directory Base")
3253 ParentObjectNumber = uint32("parent_object_number", "Parent Object Number")
3254 ParentObjectNumber.Display("BASE_HEX")
3255 Password = nstring8("password", "Password")
3256 PathBase = uint8("path_base", "Path Base")
3257 PathComponentCount = uint16("path_component_count", "Path Component Count")
3258 PathComponentSize = uint16("path_component_size", "Path Component Size")
3259 PathCookieFlags = val_string16("path_cookie_flags", "Path Cookie Flags", [
3260 [ 0x0000, "Last component is Not a File Name" ],
3261 [ 0x0001, "Last component is a File Name" ],
3263 PathCount = uint8("path_count", "Path Count")
3264 Path = nstring8("path", "Path")
3265 Path16 = nstring16("path16", "Path")
3266 PathAndName = stringz("path_and_name", "Path and Name")
3267 PendingIOCommands = uint16("pending_io_commands", "Pending IO Commands")
3268 PhysicalDiskNumber = uint8("physical_disk_number", "Physical Disk Number")
3269 PhysicalDriveCount = uint8("physical_drive_count", "Physical Drive Count")
3270 PhysicalLockThreshold = uint8("physical_lock_threshold", "Physical Lock Threshold")
3271 PingVersion = uint16("ping_version", "Ping Version")
3272 PoolName = stringz("pool_name", "Pool Name")
3273 PositiveAcknowledgesSent = uint16("positive_acknowledges_sent", "Positive Acknowledges Sent")
3274 PreCompressedSectors = uint32("pre_compressed_sectors", "Precompressed Sectors")
3275 PreviousRecord = uint32("previous_record", "Previous Record")
3276 PrimaryEntry = uint32("primary_entry", "Primary Entry")
3277 PrintFlags = bitfield8("print_flags", "Print Flags", [
3278 bf_boolean8(0x08, "print_flags_ff", "Suppress Form Feeds"),
3279 bf_boolean8(0x10, "print_flags_cr", "Create"),
3280 bf_boolean8(0x20, "print_flags_del_spool", "Delete Spool File after Printing"),
3281 bf_boolean8(0x40, "print_flags_exp_tabs", "Expand Tabs in the File"),
3282 bf_boolean8(0x80, "print_flags_banner", "Print Banner Page"),
3284 PrinterHalted = val_string8("printer_halted", "Printer Halted", [
3285 [ 0x00, "Printer is not Halted" ],
3286 [ 0xff, "Printer is Halted" ],
3288 PrinterOffLine = val_string8( "printer_offline", "Printer Off-Line", [
3289 [ 0x00, "Printer is On-Line" ],
3290 [ 0xff, "Printer is Off-Line" ],
3292 PrintServerVersion = uint8("print_server_version", "Print Server Version")
3293 Priority = uint32("priority", "Priority")
3294 Privileges = uint32("privileges", "Login Privileges")
3295 ProcessorType = val_string8("processor_type", "Processor Type", [
3296 [ 0x00, "Motorola 68000" ],
3297 [ 0x01, "Intel 8088 or 8086" ],
3298 [ 0x02, "Intel 80286" ],
3300 ProDOSInfo = bytes("pro_dos_info", "Pro DOS Info", 6)
3301 ProductMajorVersion = uint16("product_major_version", "Product Major Version")
3302 ProductMinorVersion = uint16("product_minor_version", "Product Minor Version")
3303 ProductRevisionVersion = uint8("product_revision_version", "Product Revision Version")
3304 projectedCompSize = uint32("projected_comp_size", "Projected Compression Size")
3305 PropertyHasMoreSegments = val_string8("property_has_more_segments",
3306 "Property Has More Segments", [
3307 [ 0x00, "Is last segment" ],
3308 [ 0xff, "More segments are available" ],
3310 PropertyName = nstring8("property_name", "Property Name")
3311 PropertyName16 = fw_string("property_name_16", "Property Name", 16)
3312 PropertyData = bytes("property_data", "Property Data", 128)
3313 PropertySegment = uint8("property_segment", "Property Segment")
3314 PropertyType = val_string8("property_type", "Property Type", [
3315 [ 0x00, "Display Static property" ],
3316 [ 0x01, "Display Dynamic property" ],
3317 [ 0x02, "Set Static property" ],
3318 [ 0x03, "Set Dynamic property" ],
3320 PropertyValue = fw_string("property_value", "Property Value", 128)
3321 ProposedMaxSize = uint16("proposed_max_size", "Proposed Max Size")
3322 protocolFlags = uint32("protocol_flags", "Protocol Flags")
3323 protocolFlags.Display("BASE_HEX")
3324 PurgeableBlocks = uint32("purgeable_blocks", "Purgeable Blocks")
3325 PurgeCcode = uint32("purge_c_code", "Purge Completion Code")
3326 PurgeCount = uint32("purge_count", "Purge Count")
3327 PurgeFlags = val_string16("purge_flags", "Purge Flags", [
3328 [ 0x0000, "Do not Purge All" ],
3329 [ 0x0001, "Purge All" ],
3330 [ 0xffff, "Do not Purge All" ],
3332 PurgeList = uint32("purge_list", "Purge List")
3333 PhysicalDiskChannel = uint8("physical_disk_channel", "Physical Disk Channel")
3334 PhysicalDriveType = val_string8("physical_drive_type", "Physical Drive Type", [
3338 [ 0x04, "Disk Coprocessor" ],
3339 [ 0x05, "PS/2 with MFM Controller" ],
3340 [ 0x06, "PS/2 with ESDI Controller" ],
3341 [ 0x07, "Convergent Technology SBIC" ],
3343 PhysicalReadErrors = uint16("physical_read_errors", "Physical Read Errors")
3344 PhysicalReadRequests = uint32("physical_read_requests", "Physical Read Requests")
3345 PhysicalWriteErrors = uint16("physical_write_errors", "Physical Write Errors")
3346 PhysicalWriteRequests = uint32("physical_write_requests", "Physical Write Requests")
3347 PrintToFileFlag = boolean8("print_to_file_flag", "Print to File Flag")
3349 QueueID = uint32("queue_id", "Queue ID")
3350 QueueID.Display("BASE_HEX")
3351 QueueName = nstring8("queue_name", "Queue Name")
3352 QueueStartPosition = uint32("queue_start_position", "Queue Start Position")
3353 QueueStatus = bitfield8("queue_status", "Queue Status", [
3354 bf_boolean8(0x01, "queue_status_new_jobs", "Operator does not want to add jobs to the queue"),
3355 bf_boolean8(0x02, "queue_status_pserver", "Operator does not want additional servers attaching"),
3356 bf_boolean8(0x04, "queue_status_svc_jobs", "Operator does not want servers to service jobs"),
3358 QueueType = uint16("queue_type", "Queue Type")
3359 QueueingVersion = uint8("qms_version", "QMS Version")
3361 ReadBeyondWrite = uint16("read_beyond_write", "Read Beyond Write")
3362 RecordLockCount = uint16("rec_lock_count", "Record Lock Count")
3363 RecordStart = uint32("record_start", "Record Start")
3364 RecordEnd = uint32("record_end", "Record End")
3365 RecordInUseFlag = val_string16("record_in_use", "Record in Use", [
3366 [ 0x0000, "Record In Use" ],
3367 [ 0xffff, "Record Not In Use" ],
3369 RedirectedPrinter = uint8( "redirected_printer", "Redirected Printer" )
3370 ReferenceCount = uint32("reference_count", "Reference Count")
3371 RelationsCount = uint16("relations_count", "Relations Count")
3372 ReMirrorCurrentOffset = uint32("re_mirror_current_offset", "ReMirror Current Offset")
3373 ReMirrorDriveNumber = uint8("re_mirror_drive_number", "ReMirror Drive Number")
3374 RemoteMaxPacketSize = uint32("remote_max_packet_size", "Remote Max Packet Size")
3375 RemoteTargetID = uint32("remote_target_id", "Remote Target ID")
3376 RemoteTargetID.Display("BASE_HEX")
3377 RemovableFlag = uint16("removable_flag", "Removable Flag")
3378 RemoveOpenRights = bitfield8("remove_open_rights", "Remove Open Rights", [
3379 bf_boolean8(0x01, "remove_open_rights_ro", "Read Only"),
3380 bf_boolean8(0x02, "remove_open_rights_wo", "Write Only"),
3381 bf_boolean8(0x04, "remove_open_rights_dr", "Deny Read"),
3382 bf_boolean8(0x08, "remove_open_rights_dw", "Deny Write"),
3383 bf_boolean8(0x10, "remove_open_rights_comp", "Compatibility"),
3384 bf_boolean8(0x40, "remove_open_rights_write_thru", "Write Through"),
3386 RenameFlag = bitfield8("rename_flag", "Rename Flag", [
3387 bf_boolean8(0x01, "rename_flag_ren", "Rename to Myself allows file to be renamed to it's original name"),
3388 bf_boolean8(0x02, "rename_flag_comp", "Compatibility allows files that are marked read only to be opened with read/write access"),
3389 bf_boolean8(0x04, "rename_flag_no", "Name Only renames only the specified name space entry name"),
3391 RepliesCancelled = uint16("replies_cancelled", "Replies Cancelled")
3392 ReplyBuffer = nstring8("reply_buffer", "Reply Buffer")
3393 ReplyBufferSize = uint32("reply_buffer_size", "Reply Buffer Size")
3394 ReplyQueueJobNumbers = uint32("reply_queue_job_numbers", "Reply Queue Job Numbers")
3395 RequestBitMap = bitfield16("request_bit_map", "Request Bit Map", [
3396 bf_boolean16(0x0001, "request_bit_map_ret_afp_ent", "AFP Entry ID"),
3397 bf_boolean16(0x0002, "request_bit_map_ret_data_fork", "Data Fork Length"),
3398 bf_boolean16(0x0004, "request_bit_map_ret_res_fork", "Resource Fork Length"),
3399 bf_boolean16(0x0008, "request_bit_map_ret_num_off", "Number of Offspring"),
3400 bf_boolean16(0x0010, "request_bit_map_ret_owner", "Owner ID"),
3401 bf_boolean16(0x0020, "request_bit_map_ret_short", "Short Name"),
3402 bf_boolean16(0x0040, "request_bit_map_ret_acc_priv", "Access Privileges"),
3403 bf_boolean16(0x0100, "request_bit_map_ratt", "Return Attributes"),
3404 bf_boolean16(0x0200, "request_bit_map_ret_afp_parent", "AFP Parent Entry ID"),
3405 bf_boolean16(0x0400, "request_bit_map_ret_cr_date", "Creation Date"),
3406 bf_boolean16(0x0800, "request_bit_map_ret_acc_date", "Access Date"),
3407 bf_boolean16(0x1000, "request_bit_map_ret_mod_date", "Modify Date&Time"),
3408 bf_boolean16(0x2000, "request_bit_map_ret_bak_date", "Backup Date&Time"),
3409 bf_boolean16(0x4000, "request_bit_map_ret_finder", "Finder Info"),
3410 bf_boolean16(0x8000, "request_bit_map_ret_long_nm", "Long Name"),
3412 ResourceForkLen = uint32("resource_fork_len", "Resource Fork Len")
3413 RequestCode = val_string8("request_code", "Request Code", [
3414 [ 0x00, "Change Logged in to Temporary Authenticated" ],
3415 [ 0x01, "Change Temporary Authenticated to Logged in" ],
3417 RequestData = nstring8("request_data", "Request Data")
3418 RequestsReprocessed = uint16("requests_reprocessed", "Requests Reprocessed")
3419 Reserved = uint8( "reserved", "Reserved" )
3420 Reserved2 = bytes("reserved2", "Reserved", 2)
3421 Reserved3 = bytes("reserved3", "Reserved", 3)
3422 Reserved4 = bytes("reserved4", "Reserved", 4)
3423 Reserved5 = bytes("reserved5", "Reserved", 5)
3424 Reserved6 = bytes("reserved6", "Reserved", 6)
3425 Reserved8 = bytes("reserved8", "Reserved", 8)
3426 Reserved10 = bytes("reserved10", "Reserved", 10)
3427 Reserved12 = bytes("reserved12", "Reserved", 12)
3428 Reserved16 = bytes("reserved16", "Reserved", 16)
3429 Reserved20 = bytes("reserved20", "Reserved", 20)
3430 Reserved28 = bytes("reserved28", "Reserved", 28)
3431 Reserved36 = bytes("reserved36", "Reserved", 36)
3432 Reserved44 = bytes("reserved44", "Reserved", 44)
3433 Reserved48 = bytes("reserved48", "Reserved", 48)
3434 Reserved50 = bytes("reserved50", "Reserved", 50)
3435 Reserved56 = bytes("reserved56", "Reserved", 56)
3436 Reserved64 = bytes("reserved64", "Reserved", 64)
3437 Reserved120 = bytes("reserved120", "Reserved", 120)
3438 ReservedOrDirectoryNumber = uint32("reserved_or_directory_number", "Reserved or Directory Number (see EAFlags)")
3439 ReservedOrDirectoryNumber.Display("BASE_HEX")
3440 ResourceCount = uint32("resource_count", "Resource Count")
3441 ResourceForkSize = uint32("resource_fork_size", "Resource Fork Size")
3442 ResourceName = stringz("resource_name", "Resource Name")
3443 ResourceSignature = fw_string("resource_sig", "Resource Signature", 4)
3444 RestoreTime = uint32("restore_time", "Restore Time")
3445 Restriction = uint32("restriction", "Disk Space Restriction")
3446 RestrictionsEnforced = val_string8("restrictions_enforced", "Disk Restrictions Enforce Flag", [
3447 [ 0x00, "Enforced" ],
3448 [ 0xff, "Not Enforced" ],
3450 ReturnInfoCount = uint32("return_info_count", "Return Information Count")
3451 ReturnInfoMask = bitfield16("ret_info_mask", "Return Information", [
3452 bf_boolean16(0x0001, "ret_info_mask_fname", "Return File Name Information"),
3453 bf_boolean16(0x0002, "ret_info_mask_alloc", "Return Allocation Space Information"),
3454 bf_boolean16(0x0004, "ret_info_mask_attr", "Return Attribute Information"),
3455 bf_boolean16(0x0008, "ret_info_mask_size", "Return Size Information"),
3456 bf_boolean16(0x0010, "ret_info_mask_tspace", "Return Total Space Information"),
3457 bf_boolean16(0x0020, "ret_info_mask_eattr", "Return Extended Attributes Information"),
3458 bf_boolean16(0x0040, "ret_info_mask_arch", "Return Archive Information"),
3459 bf_boolean16(0x0080, "ret_info_mask_mod", "Return Modify Information"),
3460 bf_boolean16(0x0100, "ret_info_mask_create", "Return Creation Information"),
3461 bf_boolean16(0x0200, "ret_info_mask_ns", "Return Name Space Information"),
3462 bf_boolean16(0x0400, "ret_info_mask_dir", "Return Directory Information"),
3463 bf_boolean16(0x0800, "ret_info_mask_rights", "Return Rights Information"),
3464 bf_boolean16(0x1000, "ret_info_mask_id", "Return ID Information"),
3465 bf_boolean16(0x2000, "ret_info_mask_ns_attr", "Return Name Space Attributes Information"),
3466 bf_boolean16(0x4000, "ret_info_mask_actual", "Return Actual Information"),
3467 bf_boolean16(0x8000, "ret_info_mask_logical", "Return Logical Information"),
3469 ReturnedListCount = uint32("returned_list_count", "Returned List Count")
3470 Revision = uint32("revision", "Revision")
3471 RevisionNumber = uint8("revision_number", "Revision")
3472 RevQueryFlag = val_string8("rev_query_flag", "Revoke Rights Query Flag", [
3473 [ 0x00, "Do not query the locks engine for access rights" ],
3474 [ 0x01, "Query the locks engine and return the access rights" ],
3476 RightsGrantMask = bitfield8("rights_grant_mask", "Grant Rights", [
3477 bf_boolean8(0x01, "rights_grant_mask_read", "Read"),
3478 bf_boolean8(0x02, "rights_grant_mask_write", "Write"),
3479 bf_boolean8(0x04, "rights_grant_mask_open", "Open"),
3480 bf_boolean8(0x08, "rights_grant_mask_create", "Create"),
3481 bf_boolean8(0x10, "rights_grant_mask_del", "Delete"),
3482 bf_boolean8(0x20, "rights_grant_mask_parent", "Parental"),
3483 bf_boolean8(0x40, "rights_grant_mask_search", "Search"),
3484 bf_boolean8(0x80, "rights_grant_mask_mod", "Modify"),
3486 RightsRevokeMask = bitfield8("rights_revoke_mask", "Revoke Rights", [
3487 bf_boolean8(0x01, "rights_revoke_mask_read", "Read"),
3488 bf_boolean8(0x02, "rights_revoke_mask_write", "Write"),
3489 bf_boolean8(0x04, "rights_revoke_mask_open", "Open"),
3490 bf_boolean8(0x08, "rights_revoke_mask_create", "Create"),
3491 bf_boolean8(0x10, "rights_revoke_mask_del", "Delete"),
3492 bf_boolean8(0x20, "rights_revoke_mask_parent", "Parental"),
3493 bf_boolean8(0x40, "rights_revoke_mask_search", "Search"),
3494 bf_boolean8(0x80, "rights_revoke_mask_mod", "Modify"),
3496 RIPSocketNumber = uint16("rip_socket_num", "RIP Socket Number")
3497 RIPSocketNumber.Display("BASE_HEX")
3498 RouterDownFlag = boolean8("router_dn_flag", "Router Down Flag")
3499 RPCccode = val_string16("rpc_c_code", "RPC Completion Code", [
3500 [ 0x0000, "Successful" ],
3502 RTagNumber = uint32("r_tag_num", "Resource Tag Number")
3503 RTagNumber.Display("BASE_HEX")
3504 RpyNearestSrvFlag = boolean8("rpy_nearest_srv_flag", "Reply to Nearest Server Flag")
3506 SalvageableFileEntryNumber = uint32("salvageable_file_entry_number", "Salvageable File Entry Number")
3507 SalvageableFileEntryNumber.Display("BASE_HEX")
3508 SAPSocketNumber = uint16("sap_socket_number", "SAP Socket Number")
3509 SAPSocketNumber.Display("BASE_HEX")
3510 ScanItems = uint32("scan_items", "Number of Items returned from Scan")
3511 SearchAttributes = bitfield8("sattr", "Search Attributes", [
3512 bf_boolean8(0x01, "sattr_ronly", "Read-Only Files Allowed"),
3513 bf_boolean8(0x02, "sattr_hid", "Hidden Files Allowed"),
3514 bf_boolean8(0x04, "sattr_sys", "System Files Allowed"),
3515 bf_boolean8(0x08, "sattr_exonly", "Execute-Only Files Allowed"),
3516 bf_boolean8(0x10, "sattr_sub", "Subdirectories Only"),
3517 bf_boolean8(0x20, "sattr_archive", "Archive"),
3518 bf_boolean8(0x40, "sattr_execute_confirm", "Execute Confirm"),
3519 bf_boolean8(0x80, "sattr_shareable", "Shareable"),
3521 SearchAttributesLow = bitfield16("search_att_low", "Search Attributes", [
3522 bf_boolean16(0x0001, "search_att_read_only", "Read-Only"),
3523 bf_boolean16(0x0002, "search_att_hidden", "Hidden Files Allowed"),
3524 bf_boolean16(0x0004, "search_att_system", "System"),
3525 bf_boolean16(0x0008, "search_att_execute_only", "Execute-Only"),
3526 bf_boolean16(0x0010, "search_att_sub", "Subdirectories Only"),
3527 bf_boolean16(0x0020, "search_att_archive", "Archive"),
3528 bf_boolean16(0x0040, "search_att_execute_confirm", "Execute Confirm"),
3529 bf_boolean16(0x0080, "search_att_shareable", "Shareable"),
3530 bf_boolean16(0x8000, "search_attr_all_files", "All Files and Directories"),
3532 SearchBitMap = bitfield8("search_bit_map", "Search Bit Map", [
3533 bf_boolean8(0x01, "search_bit_map_hidden", "Hidden"),
3534 bf_boolean8(0x02, "search_bit_map_sys", "System"),
3535 bf_boolean8(0x04, "search_bit_map_sub", "Subdirectory"),
3536 bf_boolean8(0x08, "search_bit_map_files", "Files"),
3538 SearchConnNumber = uint32("search_conn_number", "Search Connection Number")
3539 SearchInstance = uint32("search_instance", "Search Instance")
3540 SearchNumber = uint32("search_number", "Search Number")
3541 SearchPattern = nstring8("search_pattern", "Search Pattern")
3542 SearchPattern16 = nstring16("search_pattern_16", "Search Pattern")
3543 SearchSequence = bytes("search_sequence", "Search Sequence", 9)
3544 SearchSequenceWord = uint16("search_sequence_word", "Search Sequence", BE)
3545 Second = uint8("s_second", "Seconds")
3546 SecondsRelativeToTheYear2000 = uint32("sec_rel_to_y2k", "Seconds Relative to the Year 2000")
3547 SecretStoreVerb = val_string8("ss_verb", "Secret Store Verb",[
3548 [ 0x00, "Query Server" ],
3549 [ 0x01, "Read App Secrets" ],
3550 [ 0x02, "Write App Secrets" ],
3551 [ 0x03, "Add Secret ID" ],
3552 [ 0x04, "Remove Secret ID" ],
3553 [ 0x05, "Remove SecretStore" ],
3554 [ 0x06, "Enumerate Secret IDs" ],
3555 [ 0x07, "Unlock Store" ],
3556 [ 0x08, "Set Master Password" ],
3557 [ 0x09, "Get Service Information" ],
3559 SecurityEquivalentList = fw_string("security_equiv_list", "Security Equivalent List", 128)
3560 SecurityFlag = bitfield8("security_flag", "Security Flag", [
3561 bf_boolean8(0x01, "checksumming", "Checksumming"),
3562 bf_boolean8(0x02, "signature", "Signature"),
3563 bf_boolean8(0x04, "complete_signatures", "Complete Signatures"),
3564 bf_boolean8(0x08, "encryption", "Encryption"),
3565 bf_boolean8(0x80, "large_internet_packets", "Large Internet Packets (LIP) Disabled"),
3567 SecurityRestrictionVersion = uint8("security_restriction_version", "Security Restriction Version")
3568 SectorsPerBlock = uint8("sectors_per_block", "Sectors Per Block")
3569 SectorsPerCluster = uint16("sectors_per_cluster", "Sectors Per Cluster" )
3570 SectorsPerClusterLong = uint32("sectors_per_cluster_long", "Sectors Per Cluster" )
3571 SectorsPerTrack = uint8("sectors_per_track", "Sectors Per Track")
3572 SectorSize = uint32("sector_size", "Sector Size")
3573 SemaphoreHandle = uint32("semaphore_handle", "Semaphore Handle")
3574 SemaphoreName = nstring8("semaphore_name", "Semaphore Name")
3575 SemaphoreOpenCount = uint8("semaphore_open_count", "Semaphore Open Count")
3576 SemaphoreShareCount = uint8("semaphore_share_count", "Semaphore Share Count")
3577 SemaphoreTimeOut = uint16("semaphore_time_out", "Semaphore Time Out")
3578 SemaphoreValue = uint16("semaphore_value", "Semaphore Value")
3579 SendStatus = val_string8("send_status", "Send Status", [
3580 [ 0x00, "Successful" ],
3581 [ 0x01, "Illegal Station Number" ],
3582 [ 0x02, "Client Not Logged In" ],
3583 [ 0x03, "Client Not Accepting Messages" ],
3584 [ 0x04, "Client Already has a Message" ],
3585 [ 0x96, "No Alloc Space for the Message" ],
3586 [ 0xfd, "Bad Station Number" ],
3587 [ 0xff, "Failure" ],
3589 SequenceByte = uint8("sequence_byte", "Sequence")
3590 SequenceNumber = uint32("sequence_number", "Sequence Number")
3591 SequenceNumber.Display("BASE_HEX")
3592 ServerAddress = bytes("server_address", "Server Address", 12)
3593 ServerAppNumber = uint16("server_app_num", "Server App Number")
3594 ServerID = uint32("server_id_number", "Server ID", BE )
3595 ServerID.Display("BASE_HEX")
3596 ServerInfoFlags = val_string16("server_info_flags", "Server Information Flags", [
3597 [ 0x0000, "This server is not a member of a Cluster" ],
3598 [ 0x0001, "This server is a member of a Cluster" ],
3600 serverListFlags = uint32("server_list_flags", "Server List Flags")
3601 ServerName = fw_string("server_name", "Server Name", 48)
3602 serverName50 = fw_string("server_name50", "Server Name", 50)
3603 ServerNameLen = nstring8("server_name_len", "Server Name")
3604 ServerNameStringz = stringz("server_name_stringz", "Server Name")
3605 ServerNetworkAddress = bytes("server_network_address", "Server Network Address", 10)
3606 ServerNode = bytes("server_node", "Server Node", 6)
3607 ServerSerialNumber = uint32("server_serial_number", "Server Serial Number")
3608 ServerStation = uint8("server_station", "Server Station")
3609 ServerStationLong = uint32("server_station_long", "Server Station")
3610 ServerStationList = uint8("server_station_list", "Server Station List")
3611 ServerStatusRecord = fw_string("server_status_record", "Server Status Record", 64)
3612 ServerTaskNumber = uint8("server_task_number", "Server Task Number")
3613 ServerTaskNumberLong = uint32("server_task_number_long", "Server Task Number")
3614 ServerType = uint16("server_type", "Server Type")
3615 ServerType.Display("BASE_HEX")
3616 ServerUtilization = uint32("server_utilization", "Server Utilization")
3617 ServerUtilizationPercentage = uint8("server_utilization_percentage", "Server Utilization Percentage")
3618 ServiceType = val_string16("Service_type", "Service Type", [
3619 [ 0x0000, "Unknown" ],
3621 [ 0x0002, "User group" ],
3622 [ 0x0003, "Print queue" ],
3623 [ 0x0004, "NetWare file server" ],
3624 [ 0x0005, "Job server" ],
3625 [ 0x0006, "Gateway" ],
3626 [ 0x0007, "Print server" ],
3627 [ 0x0008, "Archive queue" ],
3628 [ 0x0009, "Archive server" ],
3629 [ 0x000a, "Job queue" ],
3630 [ 0x000b, "Administration" ],
3631 [ 0x0021, "NAS SNA gateway" ],
3632 [ 0x0026, "Remote bridge server" ],
3633 [ 0x0027, "TCP/IP gateway" ],
3634 [ 0xffff, "All Types" ],
3636 SetCmdCategory = val_string8("set_cmd_category", "Set Command Category", [
3637 [ 0x00, "Communications" ],
3639 [ 0x02, "File Cache" ],
3640 [ 0x03, "Directory Cache" ],
3641 [ 0x04, "File System" ],
3643 [ 0x06, "Transaction Tracking" ],
3647 [ 0x0a, "Miscellaneous" ],
3648 [ 0x0b, "Error Handling" ],
3649 [ 0x0c, "Directory Services" ],
3650 [ 0x0d, "MultiProcessor" ],
3651 [ 0x0e, "Service Location Protocol" ],
3652 [ 0x0f, "Licensing Services" ],
3654 SetCmdFlags = bitfield8("set_cmd_flags", "Set Command Flags", [
3655 bf_boolean8(0x01, "cmd_flags_startup_only", "Startup.ncf Only"),
3656 bf_boolean8(0x02, "cmd_flags_hidden", "Hidden"),
3657 bf_boolean8(0x04, "cmd_flags_advanced", "Advanced"),
3658 bf_boolean8(0x08, "cmd_flags_later", "Restart Server Required to Take Effect"),
3659 bf_boolean8(0x80, "cmd_flags_secure", "Console Secured"),
3661 SetCmdName = stringz("set_cmd_name", "Set Command Name")
3662 SetCmdType = val_string8("set_cmd_type", "Set Command Type", [
3663 [ 0x00, "Numeric Value" ],
3664 [ 0x01, "Boolean Value" ],
3665 [ 0x02, "Ticks Value" ],
3666 [ 0x04, "Time Value" ],
3667 [ 0x05, "String Value" ],
3668 [ 0x06, "Trigger Value" ],
3669 [ 0x07, "Numeric Value" ],
3671 SetCmdValueNum = uint32("set_cmd_value_num", "Set Command Value")
3672 SetCmdValueString = stringz("set_cmd_value_string", "Set Command Value")
3673 SetMask = bitfield32("set_mask", "Set Mask", [
3674 bf_boolean32(0x00000001, "ncp_encoded_strings", "NCP Encoded Strings"),
3675 bf_boolean32(0x00000002, "connection_code_page", "Connection Code Page"),
3677 SetParmName = stringz("set_parm_name", "Set Parameter Name")
3678 SFTErrorTable = bytes("sft_error_table", "SFT Error Table", 60)
3679 SFTSupportLevel = val_string8("sft_support_level", "SFT Support Level", [
3680 [ 0x01, "Server Offers Hot Disk Error Fixing" ],
3681 [ 0x02, "Server Offers Disk Mirroring and Transaction Tracking" ],
3682 [ 0x03, "Server Offers Physical Server Mirroring" ],
3684 ShareableLockCount = uint16("shareable_lock_count", "Shareable Lock Count")
3685 SharedMemoryAddresses = bytes("shared_memory_addresses", "Shared Memory Addresses", 10)
3686 ShortName = fw_string("short_name", "Short Name", 12)
3687 ShortStkName = fw_string("short_stack_name", "Short Stack Name", 16)
3688 SiblingCount = uint32("sibling_count", "Sibling Count")
3689 SixtyFourBitOffsetsSupportedFlag = val_string8("64_bit_flag", "64 Bit Support", [
3690 [ 0x00, "No support for 64 bit offsets" ],
3691 [ 0x01, "64 bit offsets supported" ],
3693 SMIDs = uint32("smids", "Storage Media ID's")
3694 SoftwareDescription = fw_string("software_description", "Software Description", 65)
3695 SoftwareDriverType = uint8("software_driver_type", "Software Driver Type")
3696 SoftwareMajorVersionNumber = uint8("software_major_version_number", "Software Major Version Number")
3697 SoftwareMinorVersionNumber = uint8("software_minor_version_number", "Software Minor Version Number")
3698 SourceDirHandle = uint8("source_dir_handle", "Source Directory Handle")
3699 sourceOriginateTime = bytes("source_originate_time", "Source Originate Time", 8)
3700 SourcePath = nstring8("source_path", "Source Path")
3701 SourcePathComponentCount = uint8("source_component_count", "Source Path Component Count")
3702 sourceReturnTime = bytes("source_return_time", "Source Return Time", 8)
3703 SpaceUsed = uint32("space_used", "Space Used")
3704 SpaceMigrated = uint32("space_migrated", "Space Migrated")
3705 SrcNameSpace = val_string8("src_name_space", "Source Name Space", [
3706 [ 0x00, "DOS Name Space" ],
3707 [ 0x01, "MAC Name Space" ],
3708 [ 0x02, "NFS Name Space" ],
3709 [ 0x04, "Long Name Space" ],
3711 SupModID = uint32("sup_mod_id", "Sup Mod ID")
3712 StackCount = uint32("stack_count", "Stack Count")
3713 StackFullNameStr = nstring8("stack_full_name_str", "Stack Full Name")
3714 StackMajorVN = uint8("stack_major_vn", "Stack Major Version Number")
3715 StackMinorVN = uint8("stack_minor_vn", "Stack Minor Version Number")
3716 StackNumber = uint32("stack_number", "Stack Number")
3717 StartConnNumber = uint32("start_conn_num", "Starting Connection Number")
3718 StartingBlock = uint16("starting_block", "Starting Block")
3719 StartingNumber = uint32("starting_number", "Starting Number")
3720 StartingSearchNumber = uint16("start_search_number", "Start Search Number")
3721 StartNumber = uint32("start_number", "Start Number")
3722 startNumberFlag = uint16("start_number_flag", "Start Number Flag")
3723 StartOffset64bit = bytes("s_offset_64bit", "64bit Starting Offset", 64)
3724 StartVolumeNumber = uint32("start_volume_number", "Starting Volume Number")
3725 StationList = uint32("station_list", "Station List")
3726 StationNumber = bytes("station_number", "Station Number", 3)
3727 StatMajorVersion = uint8("stat_major_version", "Statistics Table Major Version")
3728 StatMinorVersion = uint8("stat_minor_version", "Statistics Table Minor Version")
3729 Status = bitfield16("status", "Status", [
3730 bf_boolean16(0x0001, "user_info_logged_in", "Logged In"),
3731 bf_boolean16(0x0002, "user_info_being_abort", "Being Aborted"),
3732 bf_boolean16(0x0004, "user_info_audited", "Audited"),
3733 bf_boolean16(0x0008, "user_info_need_sec", "Needs Security Change"),
3734 bf_boolean16(0x0010, "user_info_mac_station", "MAC Station"),
3735 bf_boolean16(0x0020, "user_info_temp_authen", "Temporary Authenticated"),
3736 bf_boolean16(0x0040, "user_info_audit_conn", "Audit Connection Recorded"),
3737 bf_boolean16(0x0080, "user_info_dsaudit_conn", "DS Audit Connection Recorded"),
3738 bf_boolean16(0x0100, "user_info_logout", "Logout in Progress"),
3739 bf_boolean16(0x0200, "user_info_int_login", "Internal Login"),
3740 bf_boolean16(0x0400, "user_info_bindery", "Bindery Connection"),
3742 StatusFlagBits = bitfield32("status_flag_bits", "Status Flag", [
3743 bf_boolean32(0x00000001, "status_flag_bits_suballoc", "Sub Allocation"),
3744 bf_boolean32(0x00000002, "status_flag_bits_comp", "Compression"),
3745 bf_boolean32(0x00000004, "status_flag_bits_migrate", "Migration"),
3746 bf_boolean32(0x00000008, "status_flag_bits_audit", "Audit"),
3747 bf_boolean32(0x00000010, "status_flag_bits_ro", "Read Only"),
3748 bf_boolean32(0x00000020, "status_flag_bits_im_purge", "Immediate Purge"),
3749 bf_boolean32(0x00000040, "status_flag_bits_64bit", "64Bit File Offsets"),
3750 bf_boolean32(0x00000080, "status_flag_bits_utf8", "UTF8 NCP Strings"),
3751 bf_boolean32(0x80000000, "status_flag_bits_nss", "NSS Volume"),
3753 SubAllocClusters = uint32("sub_alloc_clusters", "Sub Alloc Clusters")
3754 SubAllocFreeableClusters = uint32("sub_alloc_freeable_clusters", "Sub Alloc Freeable Clusters")
3755 Subdirectory = uint32("sub_directory", "Subdirectory")
3756 Subdirectory.Display("BASE_HEX")
3757 SuggestedFileSize = uint32("suggested_file_size", "Suggested File Size")
3758 SupportModuleID = uint32("support_module_id", "Support Module ID")
3759 SynchName = nstring8("synch_name", "Synch Name")
3760 SystemIntervalMarker = uint32("system_interval_marker", "System Interval Marker")
3762 TabSize = uint8( "tab_size", "Tab Size" )
3763 TargetClientList = uint8("target_client_list", "Target Client List")
3764 TargetConnectionNumber = uint16("target_connection_number", "Target Connection Number")
3765 TargetDirectoryBase = uint32("target_directory_base", "Target Directory Base")
3766 TargetDirHandle = uint8("target_dir_handle", "Target Directory Handle")
3767 TargetEntryID = uint32("target_entry_id", "Target Entry ID")
3768 TargetEntryID.Display("BASE_HEX")
3769 TargetExecutionTime = bytes("target_execution_time", "Target Execution Time", 6)
3770 TargetFileHandle = bytes("target_file_handle", "Target File Handle", 6)
3771 TargetFileOffset = uint32("target_file_offset", "Target File Offset")
3772 TargetMessage = nstring8("target_message", "Message")
3773 TargetPrinter = uint8( "target_ptr", "Target Printer" )
3774 targetReceiveTime = bytes("target_receive_time", "Target Receive Time", 8)
3775 TargetServerIDNumber = uint32("target_server_id_number", "Target Server ID Number", BE )
3776 TargetServerIDNumber.Display("BASE_HEX")
3777 targetTransmitTime = bytes("target_transmit_time", "Target Transmit Time", 8)
3778 TaskNumByte = uint8("task_num_byte", "Task Number")
3779 TaskNumber = uint32("task_number", "Task Number")
3780 TaskNumberWord = uint16("task_number_word", "Task Number")
3781 TaskState = val_string8("task_state", "Task State", [
3783 [ 0x01, "TTS explicit transaction in progress" ],
3784 [ 0x02, "TTS implicit transaction in progress" ],
3785 [ 0x04, "Shared file set lock in progress" ],
3787 TextJobDescription = fw_string("text_job_description", "Text Job Description", 50)
3788 ThrashingCount = uint16("thrashing_count", "Thrashing Count")
3789 TimeoutLimit = uint16("timeout_limit", "Timeout Limit")
3790 TimesyncStatus = bitfield32("timesync_status_flags", "Timesync Status", [
3791 bf_boolean32(0x00000001, "timesync_status_sync", "Time is Synchronized"),
3792 bf_boolean32(0x00000002, "timesync_status_net_sync", "Time is Synchronized to the Network"),
3793 bf_boolean32(0x00000004, "timesync_status_active", "Time Synchronization is Active"),
3794 bf_boolean32(0x00000008, "timesync_status_external", "External Time Synchronization Active"),
3795 bf_val_str32(0x00000700, "timesync_status_server_type", "Time Server Type", [
3796 [ 0x01, "Client Time Server" ],
3797 [ 0x02, "Secondary Time Server" ],
3798 [ 0x03, "Primary Time Server" ],
3799 [ 0x04, "Reference Time Server" ],
3800 [ 0x05, "Single Reference Time Server" ],
3802 bf_boolean32(0x000f0000, "timesync_status_ext_sync", "External Clock Status"),
3804 TimeToNet = uint16("time_to_net", "Time To Net")
3805 TotalBlocks = uint32("total_blocks", "Total Blocks")
3806 TotalBlocksToDecompress = uint32("total_blks_to_dcompress", "Total Blocks To Decompress")
3807 TotalBytesRead = bytes("user_info_ttl_bytes_rd", "Total Bytes Read", 6)
3808 TotalBytesWritten = bytes("user_info_ttl_bytes_wrt", "Total Bytes Written", 6)
3809 TotalCacheWrites = uint32("total_cache_writes", "Total Cache Writes")
3810 TotalChangedFATs = uint32("total_changed_fats", "Total Changed FAT Entries")
3811 TotalCommonCnts = uint32("total_common_cnts", "Total Common Counts")
3812 TotalCntBlocks = uint32("total_cnt_blocks", "Total Count Blocks")
3813 TotalDataStreamDiskSpaceAlloc = uint32("ttl_data_str_size_space_alloc", "Total Data Stream Disk Space Alloc")
3814 TotalDirectorySlots = uint16("total_directory_slots", "Total Directory Slots")
3815 TotalDirectoryEntries = uint32("total_dir_entries", "Total Directory Entries")
3816 TotalDynamicSpace = uint32("total_dynamic_space", "Total Dynamic Space")
3817 TotalExtendedDirectoryExtents = uint32("total_extended_directory_extents", "Total Extended Directory Extents")
3818 TotalFileServicePackets = uint32("total_file_service_packets", "Total File Service Packets")
3819 TotalFilesOpened = uint32("total_files_opened", "Total Files Opened")
3820 TotalLFSCounters = uint32("total_lfs_counters", "Total LFS Counters")
3821 TotalOffspring = uint16("total_offspring", "Total Offspring")
3822 TotalOtherPackets = uint32("total_other_packets", "Total Other Packets")
3823 TotalQueueJobs = uint32("total_queue_jobs", "Total Queue Jobs")
3824 TotalReadRequests = uint32("total_read_requests", "Total Read Requests")
3825 TotalRequest = uint32("total_request", "Total Requests")
3826 TotalRequestPackets = uint32("total_request_packets", "Total Request Packets")
3827 TotalRoutedPackets = uint32("total_routed_packets", "Total Routed Packets")
3828 TotalRxPkts = uint32("total_rx_pkts", "Total Receive Packets")
3829 TotalServerMemory = uint16("total_server_memory", "Total Server Memory", BE)
3830 TotalTransactionsBackedOut = uint32("total_trans_backed_out", "Total Transactions Backed Out")
3831 TotalTransactionsPerformed = uint32("total_trans_performed", "Total Transactions Performed")
3832 TotalTxPkts = uint32("total_tx_pkts", "Total Transmit Packets")
3833 TotalUnfilledBackoutRequests = uint16("total_unfilled_backout_requests", "Total Unfilled Backout Requests")
3834 TotalVolumeClusters = uint16("total_volume_clusters", "Total Volume Clusters")
3835 TotalWriteRequests = uint32("total_write_requests", "Total Write Requests")
3836 TotalWriteTransactionsPerformed = uint32("total_write_trans_performed", "Total Write Transactions Performed")
3837 TrackOnFlag = boolean8("track_on_flag", "Track On Flag")
3838 TransactionDiskSpace = uint16("transaction_disk_space", "Transaction Disk Space")
3839 TransactionFATAllocations = uint32("transaction_fat_allocations", "Transaction FAT Allocations")
3840 TransactionFileSizeChanges = uint32("transaction_file_size_changes", "Transaction File Size Changes")
3841 TransactionFilesTruncated = uint32("transaction_files_truncated", "Transaction Files Truncated")
3842 TransactionNumber = uint32("transaction_number", "Transaction Number")
3843 TransactionTrackingEnabled = uint8("transaction_tracking_enabled", "Transaction Tracking Enabled")
3844 TransactionTrackingFlag = uint16("tts_flag", "Transaction Tracking Flag")
3845 TransactionTrackingSupported = uint8("transaction_tracking_supported", "Transaction Tracking Supported")
3846 TransactionVolumeNumber = uint16("transaction_volume_number", "Transaction Volume Number")
3847 TransportType = val_string8("transport_type", "Communications Type", [
3848 [ 0x01, "Internet Packet Exchange (IPX)" ],
3849 [ 0x05, "User Datagram Protocol (UDP)" ],
3850 [ 0x06, "Transmission Control Protocol (TCP)" ],
3852 TreeLength = uint32("tree_length", "Tree Length")
3853 TreeName = nstring32("tree_name", "Tree Name")
3854 TreeName.NWUnicode()
3855 TrusteeAccessMask = uint8("trustee_acc_mask", "Trustee Access Mask")
3856 TrusteeRights = bitfield16("trustee_rights_low", "Trustee Rights", [
3857 bf_boolean16(0x0001, "trustee_rights_read", "Read"),
3858 bf_boolean16(0x0002, "trustee_rights_write", "Write"),
3859 bf_boolean16(0x0004, "trustee_rights_open", "Open"),
3860 bf_boolean16(0x0008, "trustee_rights_create", "Create"),
3861 bf_boolean16(0x0010, "trustee_rights_del", "Delete"),
3862 bf_boolean16(0x0020, "trustee_rights_parent", "Parental"),
3863 bf_boolean16(0x0040, "trustee_rights_search", "Search"),
3864 bf_boolean16(0x0080, "trustee_rights_modify", "Modify"),
3865 bf_boolean16(0x0100, "trustee_rights_super", "Supervisor"),
3867 TTSLevel = uint8("tts_level", "TTS Level")
3868 TrusteeSetNumber = uint8("trustee_set_number", "Trustee Set Number")
3869 TrusteeID = uint32("trustee_id_set", "Trustee ID")
3870 TrusteeID.Display("BASE_HEX")
3871 ttlCompBlks = uint32("ttl_comp_blks", "Total Compression Blocks")
3872 TtlDSDskSpaceAlloc = uint32("ttl_ds_disk_space_alloc", "Total Streams Space Allocated")
3873 TtlEAs = uint32("ttl_eas", "Total EA's")
3874 TtlEAsDataSize = uint32("ttl_eas_data_size", "Total EA's Data Size")
3875 TtlEAsKeySize = uint32("ttl_eas_key_size", "Total EA's Key Size")
3876 ttlIntermediateBlks = uint32("ttl_inter_blks", "Total Intermediate Blocks")
3877 TtlMigratedSize = uint32("ttl_migrated_size", "Total Migrated Size")
3878 TtlNumOfRTags = uint32("ttl_num_of_r_tags", "Total Number of Resource Tags")
3879 TtlNumOfSetCmds = uint32("ttl_num_of_set_cmds", "Total Number of Set Commands")
3880 TtlValuesLength = uint32("ttl_values_length", "Total Values Length")
3881 TtlWriteDataSize = uint32("ttl_write_data_size", "Total Write Data Size")
3882 TurboUsedForFileService = uint16("turbo_used_for_file_service", "Turbo Used For File Service")
3884 UnclaimedPkts = uint32("un_claimed_packets", "Unclaimed Packets")
3885 UnCompressableDataStreamsCount = uint32("un_compressable_data_streams_count", "Uncompressable Data Streams Count")
3886 Undefined8 = bytes("undefined_8", "Undefined", 8)
3887 Undefined28 = bytes("undefined_28", "Undefined", 28)
3888 UndefinedWord = uint16("undefined_word", "Undefined")
3889 UniqueID = uint8("unique_id", "Unique ID")
3890 UnknownByte = uint8("unknown_byte", "Unknown Byte")
3891 Unused = uint8("un_used", "Unused")
3892 UnusedBlocks = uint32("unused_blocks", "Unused Blocks")
3893 UnUsedDirectoryEntries = uint32("un_used_directory_entries", "Unused Directory Entries")
3894 UnusedDiskBlocks = uint32("unused_disk_blocks", "Unused Disk Blocks")
3895 UnUsedExtendedDirectoryExtents = uint32("un_used_extended_directory_extents", "Unused Extended Directory Extents")
3896 UpdateDate = uint16("update_date", "Update Date")
3898 UpdateID = uint32("update_id", "Update ID", BE)
3899 UpdateID.Display("BASE_HEX")
3900 UpdateTime = uint16("update_time", "Update Time")
3902 UseCount = val_string16("user_info_use_count", "Use Count", [
3903 [ 0x0000, "Connection is not in use" ],
3904 [ 0x0001, "Connection is in use" ],
3906 UsedBlocks = uint32("used_blocks", "Used Blocks")
3907 UserID = uint32("user_id", "User ID", BE)
3908 UserID.Display("BASE_HEX")
3909 UserLoginAllowed = val_string8("user_login_allowed", "Login Status", [
3910 [ 0x00, "Client Login Disabled" ],
3911 [ 0x01, "Client Login Enabled" ],
3914 UserName = nstring8("user_name", "User Name")
3915 UserName16 = fw_string("user_name_16", "User Name", 16)
3916 UserName48 = fw_string("user_name_48", "User Name", 48)
3917 UserType = uint16("user_type", "User Type")
3918 UTCTimeInSeconds = uint32("uts_time_in_seconds", "UTC Time in Seconds")
3920 ValueAvailable = val_string8("value_available", "Value Available", [
3921 [ 0x00, "Has No Value" ],
3922 [ 0xff, "Has Value" ],
3924 VAPVersion = uint8("vap_version", "VAP Version")
3925 VariableBitMask = uint32("variable_bit_mask", "Variable Bit Mask")
3926 VariableBitsDefined = uint16("variable_bits_defined", "Variable Bits Defined")
3927 VConsoleRevision = uint8("vconsole_rev", "Console Revision")
3928 VConsoleVersion = uint8("vconsole_ver", "Console Version")
3929 Verb = uint32("verb", "Verb")
3930 VerbData = uint8("verb_data", "Verb Data")
3931 version = uint32("version", "Version")
3932 VersionNumber = uint8("version_number", "Version")
3933 VersionNumberLong = uint32("version_num_long", "Version")
3934 VertLocation = uint16("vert_location", "Vertical Location")
3935 VirtualConsoleVersion = uint8("virtual_console_version", "Virtual Console Version")
3936 VolumeID = uint32("volume_id", "Volume ID")
3937 VolumeID.Display("BASE_HEX")
3938 VolInfoReplyLen = uint16("vol_info_reply_len", "Volume Information Reply Length")
3939 VolumeCapabilities = bitfield32("volume_capabilities", "Volume Capabilities", [
3940 bf_boolean32(0x00000001, "vol_cap_user_space", "NetWare User Space Restrictions Supported"),
3941 bf_boolean32(0x00000002, "vol_cap_dir_quota", "NetWare Directory Quotas Supported"),
3942 bf_boolean32(0x00000004, "vol_cap_dfs", "DFS is Active on Volume"),
3943 bf_boolean32(0x00000008, "vol_cap_sal_purge", "NetWare Salvage and Purge Operations Supported"),
3944 bf_boolean32(0x00000010, "vol_cap_comp", "NetWare Compression Supported"),
3945 bf_boolean32(0x00000020, "vol_cap_cluster", "Volume is a Cluster Resource"),
3946 bf_boolean32(0x00000040, "vol_cap_nss_admin", "Volume is the NSS Admin Volume"),
3947 bf_boolean32(0x00000080, "vol_cap_nss", "Volume is Mounted by NSS"),
3948 bf_boolean32(0x00000100, "vol_cap_ea", "OS2 style EA's Supported"),
3949 bf_boolean32(0x00000200, "vol_cap_archive", "NetWare Archive bit Supported"),
3950 bf_boolean32(0x00000400, "vol_cap_file_attr", "Full NetWare file Attributes Supported"),
3952 VolumeCachedFlag = val_string8("volume_cached_flag", "Volume Cached Flag", [
3953 [ 0x00, "Volume is Not Cached" ],
3954 [ 0xff, "Volume is Cached" ],
3956 VolumeDataStreams = uint8("volume_data_streams", "Volume Data Streams")
3957 VolumeGUID = stringz("volume_guid", "Volume GUID")
3958 VolumeHashedFlag = val_string8("volume_hashed_flag", "Volume Hashed Flag", [
3959 [ 0x00, "Volume is Not Hashed" ],
3960 [ 0xff, "Volume is Hashed" ],
3962 VolumeLastModifiedDate = uint16("volume_last_modified_date", "Volume Last Modified Date")
3963 VolumeLastModifiedDate.NWDate()
3964 VolumeLastModifiedTime = uint16("volume_last_modified_time", "Volume Last Modified Time")
3965 VolumeLastModifiedTime.NWTime()
3966 VolumeMountedFlag = val_string8("volume_mounted_flag", "Volume Mounted Flag", [
3967 [ 0x00, "Volume is Not Mounted" ],
3968 [ 0xff, "Volume is Mounted" ],
3970 VolumeMountPoint = stringz("volume_mnt_point", "Volume Mount Point")
3971 VolumeName = fw_string("volume_name", "Volume Name", 16)
3972 VolumeNameLen = nstring8("volume_name_len", "Volume Name")
3973 VolumeNameSpaces = uint8("volume_name_spaces", "Volume Name Spaces")
3974 VolumeNameStringz = stringz("vol_name_stringz", "Volume Name")
3975 VolumeNumber = uint8("volume_number", "Volume Number")
3976 VolumeNumberLong = uint32("volume_number_long", "Volume Number")
3977 VolumeRemovableFlag = val_string8("volume_removable_flag", "Volume Removable Flag", [
3978 [ 0x00, "Disk Cannot be Removed from Server" ],
3979 [ 0xff, "Disk Can be Removed from Server" ],
3981 VolumeRequestFlags = val_string16("volume_request_flags", "Volume Request Flags", [
3982 [ 0x0000, "Do not return name with volume number" ],
3983 [ 0x0001, "Return name with volume number" ],
3985 VolumeSizeInClusters = uint32("volume_size_in_clusters", "Volume Size in Clusters")
3986 VolumesSupportedMax = uint16("volumes_supported_max", "Volumes Supported Max")
3987 VolumeType = val_string16("volume_type", "Volume Type", [
3988 [ 0x0000, "NetWare 386" ],
3989 [ 0x0001, "NetWare 286" ],
3990 [ 0x0002, "NetWare 386 Version 30" ],
3991 [ 0x0003, "NetWare 386 Version 31" ],
3993 WastedServerMemory = uint16("wasted_server_memory", "Wasted Server Memory", BE)
3994 WaitTime = uint32("wait_time", "Wait Time")
3996 Year = val_string8("year", "Year",[
4078 ##############################################################################
4080 ##############################################################################
4083 acctngInfo = struct("acctng_info_struct", [
4087 HeldConnectTimeInMinutes,
4091 ],"Accounting Information")
4092 AFP10Struct = struct("afp_10_struct", [
4116 ], "AFP Information" )
4117 AFP20Struct = struct("afp_20_struct", [
4143 ], "AFP Information" )
4144 ArchiveDateStruct = struct("archive_date_struct", [
4147 ArchiveIdStruct = struct("archive_id_struct", [
4150 ArchiveInfoStruct = struct("archive_info_struct", [
4154 ], "Archive Information")
4155 ArchiveTimeStruct = struct("archive_time_struct", [
4158 AttributesStruct = struct("attributes_struct", [
4162 authInfo = struct("auth_info_struct", [
4167 BoardNameStruct = struct("board_name_struct", [
4172 CacheInfo = struct("cache_info", [
4173 uint32("max_byte_cnt", "Maximum Byte Count"),
4174 uint32("min_num_of_cache_buff", "Minimum Number Of Cache Buffers"),
4175 uint32("min_cache_report_thresh", "Minimum Cache Report Threshold"),
4176 uint32("alloc_waiting", "Allocate Waiting Count"),
4177 uint32("ndirty_blocks", "Number of Dirty Blocks"),
4178 uint32("cache_dirty_wait_time", "Cache Dirty Wait Time"),
4179 uint32("cache_max_concur_writes", "Cache Maximum Concurrent Writes"),
4180 uint32("max_dirty_time", "Maximum Dirty Time"),
4181 uint32("num_dir_cache_buff", "Number Of Directory Cache Buffers"),
4182 uint32("cache_byte_to_block", "Cache Byte To Block Shift Factor"),
4183 ], "Cache Information")
4184 CommonLanStruc = struct("common_lan_struct", [
4185 boolean8("not_supported_mask", "Bit Counter Supported"),
4187 uint32("total_tx_packet_count", "Total Transmit Packet Count"),
4188 uint32("total_rx_packet_count", "Total Receive Packet Count"),
4189 uint32("no_ecb_available_count", "No ECB Available Count"),
4190 uint32("packet_tx_too_big_count", "Transmit Packet Too Big Count"),
4191 uint32("packet_tx_too_small_count", "Transmit Packet Too Small Count"),
4192 uint32("packet_rx_overflow_count", "Receive Packet Overflow Count"),
4193 uint32("packet_rx_too_big_count", "Receive Packet Too Big Count"),
4194 uint32("packet_rs_too_small_count", "Receive Packet Too Small Count"),
4195 uint32("packet_tx_misc_error_count", "Transmit Packet Misc Error Count"),
4196 uint32("packet_rx_misc_error_count", "Receive Packet Misc Error Count"),
4197 uint32("retry_tx_count", "Transmit Retry Count"),
4198 uint32("checksum_error_count", "Checksum Error Count"),
4199 uint32("hardware_rx_mismatch_count", "Hardware Receive Mismatch Count"),
4200 ], "Common LAN Information")
4201 CompDeCompStat = struct("comp_d_comp_stat", [
4202 uint32("cmphitickhigh", "Compress High Tick"),
4203 uint32("cmphitickcnt", "Compress High Tick Count"),
4204 uint32("cmpbyteincount", "Compress Byte In Count"),
4205 uint32("cmpbyteoutcnt", "Compress Byte Out Count"),
4206 uint32("cmphibyteincnt", "Compress High Byte In Count"),
4207 uint32("cmphibyteoutcnt", "Compress High Byte Out Count"),
4208 uint32("decphitickhigh", "DeCompress High Tick"),
4209 uint32("decphitickcnt", "DeCompress High Tick Count"),
4210 uint32("decpbyteincount", "DeCompress Byte In Count"),
4211 uint32("decpbyteoutcnt", "DeCompress Byte Out Count"),
4212 uint32("decphibyteincnt", "DeCompress High Byte In Count"),
4213 uint32("decphibyteoutcnt", "DeCompress High Byte Out Count"),
4214 ], "Compression/Decompression Information")
4215 ConnFileStruct = struct("conn_file_struct", [
4216 ConnectionNumberWord,
4221 ], "File Connection Information")
4222 ConnStruct = struct("conn_struct", [
4228 DirectoryEntryNumberWord,
4230 ], "Connection Information")
4231 ConnTaskStruct = struct("conn_task_struct", [
4232 ConnectionNumberByte,
4234 ], "Task Information")
4235 Counters = struct("counters_struct", [
4236 uint32("read_exist_blck", "Read Existing Block Count"),
4237 uint32("read_exist_write_wait", "Read Existing Write Wait Count"),
4238 uint32("read_exist_part_read", "Read Existing Partial Read Count"),
4239 uint32("read_exist_read_err", "Read Existing Read Error Count"),
4240 uint32("wrt_blck_cnt", "Write Block Count"),
4241 uint32("wrt_entire_blck", "Write Entire Block Count"),
4242 uint32("internl_dsk_get", "Internal Disk Get Count"),
4243 uint32("internl_dsk_get_need_to_alloc", "Internal Disk Get Need To Allocate Count"),
4244 uint32("internl_dsk_get_someone_beat", "Internal Disk Get Someone Beat My Count"),
4245 uint32("internl_dsk_get_part_read", "Internal Disk Get Partial Read Count"),
4246 uint32("internl_dsk_get_read_err", "Internal Disk Get Read Error Count"),
4247 uint32("async_internl_dsk_get", "Async Internal Disk Get Count"),
4248 uint32("async_internl_dsk_get_need_to_alloc", "Async Internal Disk Get Need To Alloc"),
4249 uint32("async_internl_dsk_get_someone_beat", "Async Internal Disk Get Someone Beat Me"),
4250 uint32("err_doing_async_read", "Error Doing Async Read Count"),
4251 uint32("internl_dsk_get_no_read", "Internal Disk Get No Read Count"),
4252 uint32("internl_dsk_get_no_read_alloc", "Internal Disk Get No Read Allocate Count"),
4253 uint32("internl_dsk_get_no_read_someone_beat", "Internal Disk Get No Read Someone Beat Me Count"),
4254 uint32("internl_dsk_write", "Internal Disk Write Count"),
4255 uint32("internl_dsk_write_alloc", "Internal Disk Write Allocate Count"),
4256 uint32("internl_dsk_write_someone_beat", "Internal Disk Write Someone Beat Me Count"),
4257 uint32("write_err", "Write Error Count"),
4258 uint32("wait_on_sema", "Wait On Semaphore Count"),
4259 uint32("alloc_blck_i_had_to_wait_for", "Allocate Block I Had To Wait For Someone Count"),
4260 uint32("alloc_blck", "Allocate Block Count"),
4261 uint32("alloc_blck_i_had_to_wait", "Allocate Block I Had To Wait Count"),
4262 ], "Disk Counter Information")
4263 CPUInformation = struct("cpu_information", [
4279 ], "CPU Information")
4280 CreationDateStruct = struct("creation_date_struct", [
4283 CreationInfoStruct = struct("creation_info_struct", [
4286 endian(CreatorID, LE),
4287 ], "Creation Information")
4288 CreationTimeStruct = struct("creation_time_struct", [
4291 CustomCntsInfo = struct("custom_cnts_info", [
4292 CustomVariableValue,
4294 ], "Custom Counters" )
4295 DataStreamInfo = struct("data_stream_info", [
4296 AssociatedNameSpace,
4299 DataStreamSizeStruct = struct("data_stream_size_struct", [
4302 DirCacheInfo = struct("dir_cache_info", [
4303 uint32("min_time_since_file_delete", "Minimum Time Since File Delete"),
4304 uint32("abs_min_time_since_file_delete", "Absolute Minimum Time Since File Delete"),
4305 uint32("min_num_of_dir_cache_buff", "Minimum Number Of Directory Cache Buffers"),
4306 uint32("max_num_of_dir_cache_buff", "Maximum Number Of Directory Cache Buffers"),
4307 uint32("num_of_dir_cache_buff", "Number Of Directory Cache Buffers"),
4308 uint32("dc_min_non_ref_time", "DC Minimum Non-Referenced Time"),
4309 uint32("dc_wait_time_before_new_buff", "DC Wait Time Before New Buffer"),
4310 uint32("dc_max_concurrent_writes", "DC Maximum Concurrent Writes"),
4311 uint32("dc_dirty_wait_time", "DC Dirty Wait Time"),
4312 uint32("dc_double_read_flag", "DC Double Read Flag"),
4313 uint32("map_hash_node_count", "Map Hash Node Count"),
4314 uint32("space_restriction_node_count", "Space Restriction Node Count"),
4315 uint32("trustee_list_node_count", "Trustee List Node Count"),
4316 uint32("percent_of_vol_used_by_dirs", "Percent Of Volume Used By Directories"),
4317 ], "Directory Cache Information")
4318 DirEntryStruct = struct("dir_entry_struct", [
4319 DirectoryEntryNumber,
4320 DOSDirectoryEntryNumber,
4322 ], "Directory Entry Information")
4323 DirectoryInstance = struct("directory_instance", [
4327 DirectoryAttributes,
4328 DirectoryAccessRights,
4329 endian(CreationDate, BE),
4330 endian(AccessDate, BE),
4334 ], "Directory Information")
4335 DMInfoLevel0 = struct("dm_info_level_0", [
4336 uint32("io_flag", "IO Flag"),
4337 uint32("sm_info_size", "Storage Module Information Size"),
4338 uint32("avail_space", "Available Space"),
4339 uint32("used_space", "Used Space"),
4340 stringz("s_module_name", "Storage Module Name"),
4341 uint8("s_m_info", "Storage Media Information"),
4343 DMInfoLevel1 = struct("dm_info_level_1", [
4347 DMInfoLevel2 = struct("dm_info_level_2", [
4350 DOSDirectoryEntryStruct = struct("dos_directory_entry_struct", [
4367 InheritedRightsMask,
4368 ], "DOS Directory Information")
4369 DOSFileEntryStruct = struct("dos_file_entry_struct", [
4389 InheritedRightsMask,
4394 ], "DOS File Information")
4395 DSSpaceAllocateStruct = struct("ds_space_alloc_struct", [
4396 DataStreamSpaceAlloc,
4398 DynMemStruct = struct("dyn_mem_struct", [
4399 uint32("dyn_mem_struct_total", "Total Dynamic Space" ),
4400 uint32("dyn_mem_struct_max", "Max Used Dynamic Space" ),
4401 uint32("dyn_mem_struct_cur", "Current Used Dynamic Space" ),
4402 ], "Dynamic Memory Information")
4403 EAInfoStruct = struct("ea_info_struct", [
4407 ], "Extended Attribute Information")
4408 ExtraCacheCntrs = struct("extra_cache_cntrs", [
4409 uint32("internl_dsk_get_no_wait", "Internal Disk Get No Wait Count"),
4410 uint32("internl_dsk_get_no_wait_need", "Internal Disk Get No Wait Need To Allocate Count"),
4411 uint32("internl_dsk_get_no_wait_no_blk", "Internal Disk Get No Wait No Block Count"),
4412 uint32("id_get_no_read_no_wait", "ID Get No Read No Wait Count"),
4413 uint32("id_get_no_read_no_wait_sema", "ID Get No Read No Wait Semaphored Count"),
4414 uint32("id_get_no_read_no_wait_buffer", "ID Get No Read No Wait No Buffer Count"),
4415 uint32("id_get_no_read_no_wait_alloc", "ID Get No Read No Wait Allocate Count"),
4416 uint32("id_get_no_read_no_wait_no_alloc", "ID Get No Read No Wait No Alloc Count"),
4417 uint32("id_get_no_read_no_wait_no_alloc_sema", "ID Get No Read No Wait No Alloc Semaphored Count"),
4418 uint32("id_get_no_read_no_wait_no_alloc_alloc", "ID Get No Read No Wait No Alloc Allocate Count"),
4419 ], "Extra Cache Counters Information")
4421 FileSize64bitStruct = struct("file_sz_64bit_struct", [
4425 ReferenceIDStruct = struct("ref_id_struct", [
4428 NSAttributeStruct = struct("ns_attrib_struct", [
4431 DStreamActual = struct("d_stream_actual", [
4432 DataStreamNumberLong,
4433 DataStreamFATBlocks,
4435 DStreamLogical = struct("d_string_logical", [
4436 DataStreamNumberLong,
4439 LastUpdatedInSecondsStruct = struct("last_update_in_seconds_struct", [
4440 SecondsRelativeToTheYear2000,
4442 DOSNameStruct = struct("dos_name_struct", [
4445 DOSName16Struct = struct("dos_name_16_struct", [
4448 FlushTimeStruct = struct("flush_time_struct", [
4451 ParentBaseIDStruct = struct("parent_base_id_struct", [
4454 MacFinderInfoStruct = struct("mac_finder_info_struct", [
4457 SiblingCountStruct = struct("sibling_count_struct", [
4460 EffectiveRightsStruct = struct("eff_rights_struct", [
4464 MacTimeStruct = struct("mac_time_struct", [
4470 LastAccessedTimeStruct = struct("last_access_time_struct", [
4473 FileAttributesStruct = struct("file_attributes_struct", [
4476 FileInfoStruct = struct("file_info_struct", [
4478 DirectoryEntryNumber,
4479 TotalBlocksToDecompress,
4480 #CurrentBlockBeingDecompressed,
4481 ], "File Information")
4482 FileInstance = struct("file_instance", [
4489 endian(CreationDate, BE),
4490 endian(AccessDate, BE),
4491 endian(UpdateDate, BE),
4492 endian(UpdateTime, BE),
4494 FileNameStruct = struct("file_name_struct", [
4497 FileName16Struct = struct("file_name16_struct", [
4500 FileServerCounters = struct("file_server_counters", [
4501 uint16("too_many_hops", "Too Many Hops"),
4502 uint16("unknown_network", "Unknown Network"),
4503 uint16("no_space_for_service", "No Space For Service"),
4504 uint16("no_receive_buff", "No Receive Buffers"),
4505 uint16("not_my_network", "Not My Network"),
4506 uint32("netbios_progated", "NetBIOS Propagated Count"),
4507 uint32("ttl_pckts_srvcd", "Total Packets Serviced"),
4508 uint32("ttl_pckts_routed", "Total Packets Routed"),
4509 ], "File Server Counters")
4510 FileSystemInfo = struct("file_system_info", [
4511 uint32("fat_moved", "Number of times the OS has move the location of FAT"),
4512 uint32("fat_write_err", "Number of write errors in both original and mirrored copies of FAT"),
4513 uint32("someone_else_did_it_0", "Someone Else Did It Count 0"),
4514 uint32("someone_else_did_it_1", "Someone Else Did It Count 1"),
4515 uint32("someone_else_did_it_2", "Someone Else Did It Count 2"),
4516 uint32("i_ran_out_someone_else_did_it_0", "I Ran Out Someone Else Did It Count 0"),
4517 uint32("i_ran_out_someone_else_did_it_1", "I Ran Out Someone Else Did It Count 1"),
4518 uint32("i_ran_out_someone_else_did_it_2", "I Ran Out Someone Else Did It Count 2"),
4519 uint32("turbo_fat_build_failed", "Turbo FAT Build Failed Count"),
4520 uint32("extra_use_count_node_count", "Errors allocating a use count node for TTS"),
4521 uint32("extra_extra_use_count_node_count", "Errors allocating an additional use count node for TTS"),
4522 uint32("error_read_last_fat", "Error Reading Last FAT Count"),
4523 uint32("someone_else_using_this_file", "Someone Else Using This File Count"),
4524 ], "File System Information")
4525 GenericInfoDef = struct("generic_info_def", [
4526 fw_string("generic_label", "Label", 64),
4527 uint32("generic_ident_type", "Identification Type"),
4528 uint32("generic_ident_time", "Identification Time"),
4529 uint32("generic_media_type", "Media Type"),
4530 uint32("generic_cartridge_type", "Cartridge Type"),
4531 uint32("generic_unit_size", "Unit Size"),
4532 uint32("generic_block_size", "Block Size"),
4533 uint32("generic_capacity", "Capacity"),
4534 uint32("generic_pref_unit_size", "Preferred Unit Size"),
4535 fw_string("generic_name", "Name",64),
4536 uint32("generic_type", "Type"),
4537 uint32("generic_status", "Status"),
4538 uint32("generic_func_mask", "Function Mask"),
4539 uint32("generic_ctl_mask", "Control Mask"),
4540 uint32("generic_parent_count", "Parent Count"),
4541 uint32("generic_sib_count", "Sibling Count"),
4542 uint32("generic_child_count", "Child Count"),
4543 uint32("generic_spec_info_sz", "Specific Information Size"),
4544 uint32("generic_object_uniq_id", "Unique Object ID"),
4545 uint32("generic_media_slot", "Media Slot"),
4546 ], "Generic Information")
4547 HandleInfoLevel0 = struct("handle_info_level_0", [
4550 HandleInfoLevel1 = struct("handle_info_level_1", [
4553 HandleInfoLevel2 = struct("handle_info_level_2", [
4558 HandleInfoLevel3 = struct("handle_info_level_3", [
4562 HandleInfoLevel4 = struct("handle_info_level_4", [
4565 ParentDirectoryBase,
4566 ParentDOSDirectoryBase,
4568 HandleInfoLevel5 = struct("handle_info_level_5", [
4572 ParentDirectoryBase,
4573 ParentDOSDirectoryBase,
4575 IPXInformation = struct("ipx_information", [
4576 uint32("ipx_send_pkt", "IPX Send Packet Count"),
4577 uint16("ipx_malform_pkt", "IPX Malformed Packet Count"),
4578 uint32("ipx_get_ecb_req", "IPX Get ECB Request Count"),
4579 uint32("ipx_get_ecb_fail", "IPX Get ECB Fail Count"),
4580 uint32("ipx_aes_event", "IPX AES Event Count"),
4581 uint16("ipx_postponed_aes", "IPX Postponed AES Count"),
4582 uint16("ipx_max_conf_sock", "IPX Max Configured Socket Count"),
4583 uint16("ipx_max_open_sock", "IPX Max Open Socket Count"),
4584 uint16("ipx_open_sock_fail", "IPX Open Socket Fail Count"),
4585 uint32("ipx_listen_ecb", "IPX Listen ECB Count"),
4586 uint16("ipx_ecb_cancel_fail", "IPX ECB Cancel Fail Count"),
4587 uint16("ipx_get_lcl_targ_fail", "IPX Get Local Target Fail Count"),
4588 ], "IPX Information")
4589 JobEntryTime = struct("job_entry_time", [
4596 ], "Job Entry Time")
4597 JobStruct3x = struct("job_struct_3x", [
4602 ClientTaskNumberLong,
4604 TargetServerIDNumber,
4605 TargetExecutionTime,
4610 JobControlFlagsWord,
4614 ServerTaskNumberLong,
4618 ], "Job Information")
4619 JobStruct = struct("job_struct", [
4623 TargetServerIDNumber,
4624 TargetExecutionTime,
4637 ], "Job Information")
4638 JobStructNew = struct("job_struct_new", [
4643 ClientTaskNumberLong,
4645 TargetServerIDNumber,
4646 TargetExecutionTime,
4651 JobControlFlagsWord,
4655 ServerTaskNumberLong,
4657 ], "Job Information")
4658 KnownRoutes = struct("known_routes", [
4664 SrcEnhNWHandlePathS1 = struct("source_nwhandle", [
4670 ], "Source Information")
4671 DstEnhNWHandlePathS1 = struct("destination_nwhandle", [
4677 ], "Destination Information")
4678 KnownServStruc = struct("known_server_struct", [
4683 LANConfigInfo = struct("lan_cfg_info", [
4684 LANdriverCFG_MajorVersion,
4685 LANdriverCFG_MinorVersion,
4686 LANdriverNodeAddress,
4689 LANdriverBoardNumber,
4690 LANdriverBoardInstance,
4691 LANdriverMaximumSize,
4692 LANdriverMaxRecvSize,
4696 LANdriverTransportTime,
4697 LANdriverSrcRouting,
4700 LANdriverMajorVersion,
4701 LANdriverMinorVersion,
4703 LANdriverSendRetries,
4705 LANdriverSharingFlags,
4707 LANdriverIOPortsAndRanges1,
4708 LANdriverIOPortsAndRanges2,
4709 LANdriverIOPortsAndRanges3,
4710 LANdriverIOPortsAndRanges4,
4711 LANdriverMemoryDecode0,
4712 LANdriverMemoryLength0,
4713 LANdriverMemoryDecode1,
4714 LANdriverMemoryLength1,
4715 LANdriverInterrupt1,
4716 LANdriverInterrupt2,
4719 LANdriverLogicalName,
4720 LANdriverIOReserved,
4722 ], "LAN Configuration Information")
4723 LastAccessStruct = struct("last_access_struct", [
4726 lockInfo = struct("lock_info_struct", [
4727 LogicalLockThreshold,
4728 PhysicalLockThreshold,
4731 ], "Lock Information")
4732 LockStruct = struct("lock_struct", [
4738 LoginTime = struct("login_time", [
4747 LogLockStruct = struct("log_lock_struct", [
4752 LogRecStruct = struct("log_rec_struct", [
4753 ConnectionNumberWord,
4756 ], "Logical Record Locks")
4757 LSLInformation = struct("lsl_information", [
4758 uint32("rx_buffers", "Receive Buffers"),
4759 uint32("rx_buffers_75", "Receive Buffers Warning Level"),
4760 uint32("rx_buffers_checked_out", "Receive Buffers Checked Out Count"),
4761 uint32("rx_buffer_size", "Receive Buffer Size"),
4762 uint32("max_phy_packet_size", "Maximum Physical Packet Size"),
4763 uint32("last_time_rx_buff_was_alloc", "Last Time a Receive Buffer was Allocated"),
4764 uint32("max_num_of_protocols", "Maximum Number of Protocols"),
4765 uint32("max_num_of_media_types", "Maximum Number of Media Types"),
4766 uint32("total_tx_packets", "Total Transmit Packets"),
4767 uint32("get_ecb_buf", "Get ECB Buffers"),
4768 uint32("get_ecb_fails", "Get ECB Failures"),
4769 uint32("aes_event_count", "AES Event Count"),
4770 uint32("post_poned_events", "Postponed Events"),
4771 uint32("ecb_cxl_fails", "ECB Cancel Failures"),
4772 uint32("valid_bfrs_reused", "Valid Buffers Reused"),
4773 uint32("enqueued_send_cnt", "Enqueued Send Count"),
4774 uint32("total_rx_packets", "Total Receive Packets"),
4775 uint32("unclaimed_packets", "Unclaimed Packets"),
4776 uint8("stat_table_major_version", "Statistics Table Major Version"),
4777 uint8("stat_table_minor_version", "Statistics Table Minor Version"),
4778 ], "LSL Information")
4779 MaximumSpaceStruct = struct("max_space_struct", [
4782 MemoryCounters = struct("memory_counters", [
4783 uint32("orig_num_cache_buff", "Original Number Of Cache Buffers"),
4784 uint32("curr_num_cache_buff", "Current Number Of Cache Buffers"),
4785 uint32("cache_dirty_block_thresh", "Cache Dirty Block Threshold"),
4786 uint32("wait_node", "Wait Node Count"),
4787 uint32("wait_node_alloc_fail", "Wait Node Alloc Failure Count"),
4788 uint32("move_cache_node", "Move Cache Node Count"),
4789 uint32("move_cache_node_from_avai", "Move Cache Node From Avail Count"),
4790 uint32("accel_cache_node_write", "Accelerate Cache Node Write Count"),
4791 uint32("rem_cache_node", "Remove Cache Node Count"),
4792 uint32("rem_cache_node_from_avail", "Remove Cache Node From Avail Count"),
4793 ], "Memory Counters")
4794 MLIDBoardInfo = struct("mlid_board_info", [
4795 uint32("protocol_board_num", "Protocol Board Number"),
4796 uint16("protocol_number", "Protocol Number"),
4797 bytes("protocol_id", "Protocol ID", 6),
4798 nstring8("protocol_name", "Protocol Name"),
4799 ], "MLID Board Information")
4800 ModifyInfoStruct = struct("modify_info_struct", [
4803 endian(ModifierID, LE),
4805 ], "Modification Information")
4806 nameInfo = struct("name_info_struct", [
4808 nstring8("login_name", "Login Name"),
4809 ], "Name Information")
4810 NCPNetworkAddress = struct("ncp_network_address_struct", [
4814 ], "Network Address")
4816 netAddr = struct("net_addr_struct", [
4818 nbytes32("transport_addr", "Transport Address"),
4819 ], "Network Address")
4821 NetWareInformationStruct = struct("netware_information_struct", [
4822 DataStreamSpaceAlloc, # (Data Stream Alloc Bit)
4823 AttributesDef32, # (Attributes Bit)
4825 DataStreamSize, # (Data Stream Size Bit)
4826 TotalDataStreamDiskSpaceAlloc, # (Total Stream Size Bit)
4827 NumberOfDataStreams,
4828 CreationTime, # (Creation Bit)
4831 ModifiedTime, # (Modify Bit)
4835 ArchivedTime, # (Archive Bit)
4838 InheritedRightsMask, # (Rights Bit)
4839 DirectoryEntryNumber, # (Directory Entry Bit)
4840 DOSDirectoryEntryNumber,
4842 EADataSize, # (Extended Attribute Bit)
4845 CreatorNameSpaceNumber, # (Name Space Bit)
4847 ], "NetWare Information")
4848 NLMInformation = struct("nlm_information", [
4849 IdentificationNumber,
4868 NumberOfReferencedPublics,
4869 ], "NLM Information")
4870 NSInfoStruct = struct("ns_info_struct", [
4871 CreatorNameSpaceNumber,
4874 NWAuditStatus = struct("nw_audit_status", [
4876 AuditFileVersionDate,
4877 val_string16("audit_enable_flag", "Auditing Enabled Flag", [
4878 [ 0x0000, "Auditing Disabled" ],
4879 [ 0x0001, "Auditing Enabled" ],
4882 uint32("audit_file_size", "Audit File Size"),
4883 uint32("modified_counter", "Modified Counter"),
4884 uint32("audit_file_max_size", "Audit File Maximum Size"),
4885 uint32("audit_file_size_threshold", "Audit File Size Threshold"),
4886 uint32("audit_record_count", "Audit Record Count"),
4887 uint32("auditing_flags", "Auditing Flags"),
4888 ], "NetWare Audit Status")
4889 ObjectSecurityStruct = struct("object_security_struct", [
4892 ObjectFlagsStruct = struct("object_flags_struct", [
4895 ObjectTypeStruct = struct("object_type_struct", [
4896 endian(ObjectType, BE),
4899 ObjectNameStruct = struct("object_name_struct", [
4902 ObjectIDStruct = struct("object_id_struct", [
4906 OpnFilesStruct = struct("opn_files_struct", [
4912 DOSParentDirectoryEntry,
4917 ], "Open Files Information")
4918 OwnerIDStruct = struct("owner_id_struct", [
4921 PacketBurstInformation = struct("packet_burst_information", [
4922 uint32("big_invalid_slot", "Big Invalid Slot Count"),
4923 uint32("big_forged_packet", "Big Forged Packet Count"),
4924 uint32("big_invalid_packet", "Big Invalid Packet Count"),
4925 uint32("big_still_transmitting", "Big Still Transmitting Count"),
4926 uint32("still_doing_the_last_req", "Still Doing The Last Request Count"),
4927 uint32("invalid_control_req", "Invalid Control Request Count"),
4928 uint32("control_invalid_message_number", "Control Invalid Message Number Count"),
4929 uint32("control_being_torn_down", "Control Being Torn Down Count"),
4930 uint32("big_repeat_the_file_read", "Big Repeat the File Read Count"),
4931 uint32("big_send_extra_cc_count", "Big Send Extra CC Count"),
4932 uint32("big_return_abort_mess", "Big Return Abort Message Count"),
4933 uint32("big_read_invalid_mess", "Big Read Invalid Message Number Count"),
4934 uint32("big_read_do_it_over", "Big Read Do It Over Count"),
4935 uint32("big_read_being_torn_down", "Big Read Being Torn Down Count"),
4936 uint32("previous_control_packet", "Previous Control Packet Count"),
4937 uint32("send_hold_off_message", "Send Hold Off Message Count"),
4938 uint32("big_read_no_data_avail", "Big Read No Data Available Count"),
4939 uint32("big_read_trying_to_read", "Big Read Trying To Read Too Much Count"),
4940 uint32("async_read_error", "Async Read Error Count"),
4941 uint32("big_read_phy_read_err", "Big Read Physical Read Error Count"),
4942 uint32("ctl_bad_ack_frag_list", "Control Bad ACK Fragment List Count"),
4943 uint32("ctl_no_data_read", "Control No Data Read Count"),
4944 uint32("write_dup_req", "Write Duplicate Request Count"),
4945 uint32("shouldnt_be_ack_here", "Shouldn't Be ACKing Here Count"),
4946 uint32("write_incon_packet_len", "Write Inconsistent Packet Lengths Count"),
4947 uint32("first_packet_isnt_a_write", "First Packet Isn't A Write Count"),
4948 uint32("write_trash_dup_req", "Write Trashed Duplicate Request Count"),
4949 uint32("big_write_inv_message_num", "Big Write Invalid Message Number Count"),
4950 uint32("big_write_being_torn_down", "Big Write Being Torn Down Count"),
4951 uint32("big_write_being_abort", "Big Write Being Aborted Count"),
4952 uint32("zero_ack_frag", "Zero ACK Fragment Count"),
4953 uint32("write_curr_trans", "Write Currently Transmitting Count"),
4954 uint32("try_to_write_too_much", "Trying To Write Too Much Count"),
4955 uint32("write_out_of_mem_for_ctl_nodes", "Write Out Of Memory For Control Nodes Count"),
4956 uint32("write_didnt_need_this_frag", "Write Didn't Need This Fragment Count"),
4957 uint32("write_too_many_buf_check", "Write Too Many Buffers Checked Out Count"),
4958 uint32("write_timeout", "Write Time Out Count"),
4959 uint32("write_got_an_ack0", "Write Got An ACK Count 0"),
4960 uint32("write_got_an_ack1", "Write Got An ACK Count 1"),
4961 uint32("poll_abort_conn", "Poller Aborted The Connection Count"),
4962 uint32("may_had_out_of_order", "Maybe Had Out Of Order Writes Count"),
4963 uint32("had_an_out_of_order", "Had An Out Of Order Write Count"),
4964 uint32("moved_the_ack_bit_dn", "Moved The ACK Bit Down Count"),
4965 uint32("bumped_out_of_order", "Bumped Out Of Order Write Count"),
4966 uint32("poll_rem_old_out_of_order", "Poller Removed Old Out Of Order Count"),
4967 uint32("write_didnt_need_but_req_ack", "Write Didn't Need But Requested ACK Count"),
4968 uint32("write_trash_packet", "Write Trashed Packet Count"),
4969 uint32("too_many_ack_frag", "Too Many ACK Fragments Count"),
4970 uint32("saved_an_out_of_order_packet", "Saved An Out Of Order Packet Count"),
4971 uint32("conn_being_aborted", "Connection Being Aborted Count"),
4972 ], "Packet Burst Information")
4974 PadDSSpaceAllocate = struct("pad_ds_space_alloc", [
4977 PadAttributes = struct("pad_attributes", [
4980 PadDataStreamSize = struct("pad_data_stream_size", [
4983 PadTotalStreamSize = struct("pad_total_stream_size", [
4986 PadCreationInfo = struct("pad_creation_info", [
4989 PadModifyInfo = struct("pad_modify_info", [
4992 PadArchiveInfo = struct("pad_archive_info", [
4995 PadRightsInfo = struct("pad_rights_info", [
4998 PadDirEntry = struct("pad_dir_entry", [
5001 PadEAInfo = struct("pad_ea_info", [
5004 PadNSInfo = struct("pad_ns_info", [
5007 PhyLockStruct = struct("phy_lock_struct", [
5012 LogicalConnectionNumber,
5015 ], "Physical Locks")
5016 printInfo = struct("print_info_struct", [
5024 ], "Print Information")
5025 ReplyLevel1Struct = struct("reply_lvl_1_struct", [
5030 ReplyLevel2Struct = struct("reply_lvl_2_struct", [
5037 RightsInfoStruct = struct("rights_info_struct", [
5038 InheritedRightsMask,
5040 RoutersInfo = struct("routers_info", [
5041 bytes("node", "Node", 6),
5043 uint16("route_hops", "Hop Count"),
5044 uint16("route_time", "Route Time"),
5045 ], "Router Information")
5046 RTagStructure = struct("r_tag_struct", [
5052 ScanInfoFileName = struct("scan_info_file_name", [
5053 SalvageableFileEntryNumber,
5056 ScanInfoFileNoName = struct("scan_info_file_no_name", [
5057 SalvageableFileEntryNumber,
5059 SeachSequenceStruct = struct("search_seq", [
5061 DirectoryEntryNumber,
5063 ], "Search Sequence")
5064 Segments = struct("segments", [
5065 uint32("volume_segment_dev_num", "Volume Segment Device Number"),
5066 uint32("volume_segment_offset", "Volume Segment Offset"),
5067 uint32("volume_segment_size", "Volume Segment Size"),
5068 ], "Volume Segment Information")
5069 SemaInfoStruct = struct("sema_info_struct", [
5070 LogicalConnectionNumber,
5073 SemaStruct = struct("sema_struct", [
5078 ], "Semaphore Information")
5079 ServerInfo = struct("server_info", [
5080 uint32("reply_canceled", "Reply Canceled Count"),
5081 uint32("write_held_off", "Write Held Off Count"),
5082 uint32("write_held_off_with_dup", "Write Held Off With Duplicate Request"),
5083 uint32("invalid_req_type", "Invalid Request Type Count"),
5084 uint32("being_aborted", "Being Aborted Count"),
5085 uint32("already_doing_realloc", "Already Doing Re-Allocate Count"),
5086 uint32("dealloc_invalid_slot", "De-Allocate Invalid Slot Count"),
5087 uint32("dealloc_being_proc", "De-Allocate Being Processed Count"),
5088 uint32("dealloc_forged_packet", "De-Allocate Forged Packet Count"),
5089 uint32("dealloc_still_transmit", "De-Allocate Still Transmitting Count"),
5090 uint32("start_station_error", "Start Station Error Count"),
5091 uint32("invalid_slot", "Invalid Slot Count"),
5092 uint32("being_processed", "Being Processed Count"),
5093 uint32("forged_packet", "Forged Packet Count"),
5094 uint32("still_transmitting", "Still Transmitting Count"),
5095 uint32("reexecute_request", "Re-Execute Request Count"),
5096 uint32("invalid_sequence_number", "Invalid Sequence Number Count"),
5097 uint32("dup_is_being_sent", "Duplicate Is Being Sent Already Count"),
5098 uint32("sent_pos_ack", "Sent Positive Acknowledge Count"),
5099 uint32("sent_a_dup_reply", "Sent A Duplicate Reply Count"),
5100 uint32("no_mem_for_station", "No Memory For Station Control Count"),
5101 uint32("no_avail_conns", "No Available Connections Count"),
5102 uint32("realloc_slot", "Re-Allocate Slot Count"),
5103 uint32("realloc_slot_came_too_soon", "Re-Allocate Slot Came Too Soon Count"),
5104 ], "Server Information")
5105 ServersSrcInfo = struct("servers_src_info", [
5109 ], "Source Server Information")
5110 SpaceStruct = struct("space_struct", [
5114 ], "Space Information")
5115 SPXInformation = struct("spx_information", [
5116 uint16("spx_max_conn", "SPX Max Connections Count"),
5117 uint16("spx_max_used_conn", "SPX Max Used Connections"),
5118 uint16("spx_est_conn_req", "SPX Establish Connection Requests"),
5119 uint16("spx_est_conn_fail", "SPX Establish Connection Fail"),
5120 uint16("spx_listen_con_req", "SPX Listen Connect Request"),
5121 uint16("spx_listen_con_fail", "SPX Listen Connect Fail"),
5122 uint32("spx_send", "SPX Send Count"),
5123 uint32("spx_window_choke", "SPX Window Choke Count"),
5124 uint16("spx_bad_send", "SPX Bad Send Count"),
5125 uint16("spx_send_fail", "SPX Send Fail Count"),
5126 uint16("spx_abort_conn", "SPX Aborted Connection"),
5127 uint32("spx_listen_pkt", "SPX Listen Packet Count"),
5128 uint16("spx_bad_listen", "SPX Bad Listen Count"),
5129 uint32("spx_incoming_pkt", "SPX Incoming Packet Count"),
5130 uint16("spx_bad_in_pkt", "SPX Bad In Packet Count"),
5131 uint16("spx_supp_pkt", "SPX Suppressed Packet Count"),
5132 uint16("spx_no_ses_listen", "SPX No Session Listen ECB Count"),
5133 uint16("spx_watch_dog", "SPX Watch Dog Destination Session Count"),
5134 ], "SPX Information")
5135 StackInfo = struct("stack_info", [
5137 fw_string("stack_short_name", "Stack Short Name", 16),
5138 ], "Stack Information")
5139 statsInfo = struct("stats_info_struct", [
5144 TaskStruct = struct("task_struct", [
5147 ], "Task Information")
5148 theTimeStruct = struct("the_time_struct", [
5153 timeInfo = struct("time_info", [
5161 uint32("login_expiration_time", "Login Expiration Time"),
5163 TotalStreamSizeStruct = struct("total_stream_size_struct", [
5165 NumberOfDataStreams,
5167 TrendCounters = struct("trend_counters", [
5168 uint32("num_of_cache_checks", "Number Of Cache Checks"),
5169 uint32("num_of_cache_hits", "Number Of Cache Hits"),
5170 uint32("num_of_dirty_cache_checks", "Number Of Dirty Cache Checks"),
5171 uint32("num_of_cache_dirty_checks", "Number Of Cache Dirty Checks"),
5172 uint32("cache_used_while_check", "Cache Used While Checking"),
5173 uint32("wait_till_dirty_blcks_dec", "Wait Till Dirty Blocks Decrease Count"),
5174 uint32("alloc_blck_frm_avail", "Allocate Block From Available Count"),
5175 uint32("alloc_blck_frm_lru", "Allocate Block From LRU Count"),
5176 uint32("alloc_blck_already_wait", "Allocate Block Already Waiting"),
5177 uint32("lru_sit_time", "LRU Sitting Time"),
5178 uint32("num_of_cache_check_no_wait", "Number Of Cache Check No Wait"),
5179 uint32("num_of_cache_hits_no_wait", "Number Of Cache Hits No Wait"),
5180 ], "Trend Counters")
5181 TrusteeStruct = struct("trustee_struct", [
5182 endian(ObjectID, LE),
5183 AccessRightsMaskWord,
5185 UpdateDateStruct = struct("update_date_struct", [
5188 UpdateIDStruct = struct("update_id_struct", [
5191 UpdateTimeStruct = struct("update_time_struct", [
5194 UserInformation = struct("user_info", [
5195 endian(ConnectionNumber, LE),
5198 ConnectionServiceType,
5211 TransactionTrackingFlag,
5212 LogicalLockThreshold,
5224 ], "User Information")
5225 VolInfoStructure = struct("vol_info_struct", [
5230 SectorsPerClusterLong,
5231 VolumeSizeInClusters,
5233 SubAllocFreeableClusters,
5234 FreeableLimboSectors,
5235 NonFreeableLimboSectors,
5236 NonFreeableAvailableSubAllocSectors,
5237 NotUsableSubAllocSectors,
5240 LimboDataStreamsCount,
5241 OldestDeletedFileAgeInTicks,
5242 CompressedDataStreamsCount,
5243 CompressedLimboDataStreamsCount,
5244 UnCompressableDataStreamsCount,
5245 PreCompressedSectors,
5250 ClustersUsedByDirectories,
5251 ClustersUsedByExtendedDirectories,
5252 TotalDirectoryEntries,
5253 UnUsedDirectoryEntries,
5254 TotalExtendedDirectoryExtents,
5255 UnUsedExtendedDirectoryExtents,
5256 ExtendedAttributesDefined,
5257 ExtendedAttributeExtentsUsed,
5258 DirectoryServicesObjectID,
5259 VolumeLastModifiedTime,
5260 VolumeLastModifiedDate,
5261 ], "Volume Information")
5262 VolInfo2Struct = struct("vol_info_struct_2", [
5263 uint32("volume_active_count", "Volume Active Count"),
5264 uint32("volume_use_count", "Volume Use Count"),
5265 uint32("mac_root_ids", "MAC Root IDs"),
5266 VolumeLastModifiedTime,
5267 VolumeLastModifiedDate,
5268 uint32("volume_reference_count", "Volume Reference Count"),
5269 uint32("compression_lower_limit", "Compression Lower Limit"),
5270 uint32("outstanding_ios", "Outstanding IOs"),
5271 uint32("outstanding_compression_ios", "Outstanding Compression IOs"),
5272 uint32("compression_ios_limit", "Compression IOs Limit"),
5273 ], "Extended Volume Information")
5274 VolumeWithNameStruct = struct("volume_with_name_struct", [
5278 VolumeStruct = struct("volume_struct", [
5281 DataStreamsStruct = struct("number_of_data_streams_struct", [
5282 NumberOfDataStreamsLong,
5285 ##############################################################################
5287 ##############################################################################
5288 def define_groups():
5289 groups['accounting'] = "Accounting"
5290 groups['afp'] = "AFP"
5291 groups['auditing'] = "Auditing"
5292 groups['bindery'] = "Bindery"
5293 groups['connection'] = "Connection"
5294 groups['enhanced'] = "Enhanced File System"
5295 groups['extended'] = "Extended Attribute"
5296 groups['extension'] = "NCP Extension"
5297 groups['file'] = "File System"
5298 groups['fileserver'] = "File Server Environment"
5299 groups['message'] = "Message"
5300 groups['migration'] = "Data Migration"
5301 groups['nds'] = "Novell Directory Services"
5302 groups['pburst'] = "Packet Burst"
5303 groups['print'] = "Print"
5304 groups['remote'] = "Remote"
5305 groups['sync'] = "Synchronization"
5306 groups['tsync'] = "Time Synchronization"
5307 groups['tts'] = "Transaction Tracking"
5308 groups['qms'] = "Queue Management System (QMS)"
5309 groups['stats'] = "Server Statistics"
5310 groups['nmas'] = "Novell Modular Authentication Service"
5311 groups['sss'] = "SecretStore Services"
5313 ##############################################################################
5315 ##############################################################################
5316 def define_errors():
5317 errors[0x0000] = "Ok"
5318 errors[0x0001] = "Transaction tracking is available"
5319 errors[0x0002] = "Ok. The data has been written"
5320 errors[0x0003] = "Calling Station is a Manager"
5322 errors[0x0100] = "One or more of the Connection Numbers in the send list are invalid"
5323 errors[0x0101] = "Invalid space limit"
5324 errors[0x0102] = "Insufficient disk space"
5325 errors[0x0103] = "Queue server cannot add jobs"
5326 errors[0x0104] = "Out of disk space"
5327 errors[0x0105] = "Semaphore overflow"
5328 errors[0x0106] = "Invalid Parameter"
5329 errors[0x0107] = "Invalid Number of Minutes to Delay"
5330 errors[0x0108] = "Invalid Start or Network Number"
5331 errors[0x0109] = "Cannot Obtain License"
5332 errors[0x010a] = "No Purgeable Files Available"
5334 errors[0x0200] = "One or more clients in the send list are not logged in"
5335 errors[0x0201] = "Queue server cannot attach"
5337 errors[0x0300] = "One or more clients in the send list are not accepting messages"
5339 errors[0x0400] = "Client already has message"
5340 errors[0x0401] = "Queue server cannot service job"
5342 errors[0x7300] = "Revoke Handle Rights Not Found"
5343 errors[0x7700] = "Buffer Too Small"
5344 errors[0x7900] = "Invalid Parameter in Request Packet"
5345 errors[0x7901] = "Nothing being Compressed"
5346 errors[0x7a00] = "Connection Already Temporary"
5347 errors[0x7b00] = "Connection Already Logged in"
5348 errors[0x7c00] = "Connection Not Authenticated"
5349 errors[0x7d00] = "Connection Not Logged In"
5351 errors[0x7e00] = "NCP failed boundary check"
5352 errors[0x7e01] = "Invalid Length"
5354 errors[0x7f00] = "Lock Waiting"
5355 errors[0x8000] = "Lock fail"
5356 errors[0x8001] = "File in Use"
5358 errors[0x8100] = "A file handle could not be allocated by the file server"
5359 errors[0x8101] = "Out of File Handles"
5361 errors[0x8200] = "Unauthorized to open the file"
5362 errors[0x8300] = "Unable to read/write the volume. Possible bad sector on the file server"
5363 errors[0x8301] = "Hard I/O Error"
5365 errors[0x8400] = "Unauthorized to create the directory"
5366 errors[0x8401] = "Unauthorized to create the file"
5368 errors[0x8500] = "Unauthorized to delete the specified file"
5369 errors[0x8501] = "Unauthorized to overwrite an existing file in this directory"
5371 errors[0x8700] = "An unexpected character was encountered in the filename"
5372 errors[0x8701] = "Create Filename Error"
5374 errors[0x8800] = "Invalid file handle"
5375 errors[0x8900] = "Unauthorized to search this file/directory"
5376 errors[0x8a00] = "Unauthorized to delete this file/directory"
5377 errors[0x8b00] = "Unauthorized to rename a file in this directory"
5379 errors[0x8c00] = "No set privileges"
5380 errors[0x8c01] = "Unauthorized to modify a file in this directory"
5381 errors[0x8c02] = "Unauthorized to change the restriction on this volume"
5383 errors[0x8d00] = "Some of the affected files are in use by another client"
5384 errors[0x8d01] = "The affected file is in use"
5386 errors[0x8e00] = "All of the affected files are in use by another client"
5387 errors[0x8f00] = "Some of the affected files are read-only"
5389 errors[0x9000] = "An attempt to modify a read-only volume occurred"
5390 errors[0x9001] = "All of the affected files are read-only"
5391 errors[0x9002] = "Read Only Access to Volume"
5393 errors[0x9100] = "Some of the affected files already exist"
5394 errors[0x9101] = "Some Names Exist"
5396 errors[0x9200] = "Directory with the new name already exists"
5397 errors[0x9201] = "All of the affected files already exist"
5399 errors[0x9300] = "Unauthorized to read from this file"
5400 errors[0x9400] = "Unauthorized to write to this file"
5401 errors[0x9500] = "The affected file is detached"
5403 errors[0x9600] = "The file server has run out of memory to service this request"
5404 errors[0x9601] = "No alloc space for message"
5405 errors[0x9602] = "Server Out of Space"
5407 errors[0x9800] = "The affected volume is not mounted"
5408 errors[0x9801] = "The volume associated with Volume Number is not mounted"
5409 errors[0x9802] = "The resulting volume does not exist"
5410 errors[0x9803] = "The destination volume is not mounted"
5411 errors[0x9804] = "Disk Map Error"
5413 errors[0x9900] = "The file server has run out of directory space on the affected volume"
5414 errors[0x9a00] = "Invalid request to rename the affected file to another volume"
5416 errors[0x9b00] = "DirHandle is not associated with a valid directory path"
5417 errors[0x9b01] = "A resulting directory handle is not associated with a valid directory path"
5418 errors[0x9b02] = "The directory associated with DirHandle does not exist"
5419 errors[0x9b03] = "Bad directory handle"
5421 errors[0x9c00] = "The resulting path is not valid"
5422 errors[0x9c01] = "The resulting file path is not valid"
5423 errors[0x9c02] = "The resulting directory path is not valid"
5424 errors[0x9c03] = "Invalid path"
5425 errors[0x9c04] = "No more trustees found, based on requested search sequence number"
5427 errors[0x9d00] = "A directory handle was not available for allocation"
5429 errors[0x9e00] = "The name of the directory does not conform to a legal name for this name space"
5430 errors[0x9e01] = "The new directory name does not conform to a legal name for this name space"
5431 errors[0x9e02] = "Bad File Name"
5433 errors[0x9f00] = "The request attempted to delete a directory that is in use by another client"
5435 errors[0xa000] = "The request attempted to delete a directory that is not empty"
5436 errors[0xa100] = "An unrecoverable error occurred on the affected directory"
5438 errors[0xa200] = "The request attempted to read from a file region that is physically locked"
5439 errors[0xa201] = "I/O Lock Error"
5441 errors[0xa400] = "Invalid directory rename attempted"
5442 errors[0xa500] = "Invalid open create mode"
5443 errors[0xa600] = "Auditor Access has been Removed"
5444 errors[0xa700] = "Error Auditing Version"
5446 errors[0xa800] = "Invalid Support Module ID"
5447 errors[0xa801] = "No Auditing Access Rights"
5448 errors[0xa802] = "No Access Rights"
5450 errors[0xa900] = "Error Link in Path"
5451 errors[0xa901] = "Invalid Path With Junction Present"
5453 errors[0xaa00] = "Invalid Data Type Flag"
5455 errors[0xac00] = "Packet Signature Required"
5457 errors[0xbe00] = "Invalid Data Stream"
5458 errors[0xbf00] = "Requests for this name space are not valid on this volume"
5460 errors[0xc000] = "Unauthorized to retrieve accounting data"
5462 errors[0xc100] = "The ACCOUNT_BALANCE property does not exist"
5463 errors[0xc101] = "No Account Balance"
5465 errors[0xc200] = "The object has exceeded its credit limit"
5466 errors[0xc300] = "Too many holds have been placed against this account"
5467 errors[0xc400] = "The client account has been disabled"
5469 errors[0xc500] = "Access to the account has been denied because of intruder detection"
5470 errors[0xc501] = "Login lockout"
5471 errors[0xc502] = "Server Login Locked"
5473 errors[0xc600] = "The caller does not have operator privileges"
5474 errors[0xc601] = "The client does not have operator privileges"
5476 errors[0xc800] = "Missing EA Key"
5477 errors[0xc900] = "EA Not Found"
5478 errors[0xca00] = "Invalid EA Handle Type"
5479 errors[0xcb00] = "EA No Key No Data"
5480 errors[0xcc00] = "EA Number Mismatch"
5481 errors[0xcd00] = "Extent Number Out of Range"
5482 errors[0xce00] = "EA Bad Directory Number"
5483 errors[0xcf00] = "Invalid EA Handle"
5485 errors[0xd000] = "Queue error"
5486 errors[0xd001] = "EA Position Out of Range"
5488 errors[0xd100] = "The queue does not exist"
5489 errors[0xd101] = "EA Access Denied"
5491 errors[0xd200] = "A queue server is not associated with this queue"
5492 errors[0xd201] = "A queue server is not associated with the selected queue"
5493 errors[0xd202] = "No queue server"
5494 errors[0xd203] = "Data Page Odd Size"
5496 errors[0xd300] = "No queue rights"
5497 errors[0xd301] = "EA Volume Not Mounted"
5499 errors[0xd400] = "The queue is full and cannot accept another request"
5500 errors[0xd401] = "The queue associated with ObjectId is full and cannot accept another request"
5501 errors[0xd402] = "Bad Page Boundary"
5503 errors[0xd500] = "A job does not exist in this queue"
5504 errors[0xd501] = "No queue job"
5505 errors[0xd502] = "The job associated with JobNumber does not exist in this queue"
5506 errors[0xd503] = "Inspect Failure"
5507 errors[0xd504] = "Unknown NCP Extension Number"
5509 errors[0xd600] = "The file server does not allow unencrypted passwords"
5510 errors[0xd601] = "No job right"
5511 errors[0xd602] = "EA Already Claimed"
5513 errors[0xd700] = "Bad account"
5514 errors[0xd701] = "The old and new password strings are identical"
5515 errors[0xd702] = "The job is currently being serviced"
5516 errors[0xd703] = "The queue is currently servicing a job"
5517 errors[0xd704] = "Queue servicing"
5518 errors[0xd705] = "Odd Buffer Size"
5520 errors[0xd800] = "Queue not active"
5521 errors[0xd801] = "No Scorecards"
5523 errors[0xd900] = "The file server cannot accept another connection as it has reached its limit"
5524 errors[0xd901] = "The client is not security equivalent to one of the objects in the Q_SERVERS group property of the target queue"
5525 errors[0xd902] = "Queue Station is not a server"
5526 errors[0xd903] = "Bad EDS Signature"
5527 errors[0xd904] = "Attempt to log in using an account which has limits on the number of concurrent connections and that number has been reached."
5529 errors[0xda00] = "Attempted to login to the file server during a restricted time period"
5530 errors[0xda01] = "Queue halted"
5531 errors[0xda02] = "EA Space Limit"
5533 errors[0xdb00] = "Attempted to login to the file server from an unauthorized workstation or network"
5534 errors[0xdb01] = "The queue cannot attach another queue server"
5535 errors[0xdb02] = "Maximum queue servers"
5536 errors[0xdb03] = "EA Key Corrupt"
5538 errors[0xdc00] = "Account Expired"
5539 errors[0xdc01] = "EA Key Limit"
5541 errors[0xdd00] = "Tally Corrupt"
5542 errors[0xde00] = "Attempted to login to the file server with an incorrect password"
5543 errors[0xdf00] = "Attempted to login to the file server with a password that has expired"
5545 errors[0xe000] = "No Login Connections Available"
5546 errors[0xe700] = "No disk track"
5547 errors[0xe800] = "Write to group"
5548 errors[0xe900] = "The object is already a member of the group property"
5550 errors[0xea00] = "No such member"
5551 errors[0xea01] = "The bindery object is not a member of the set"
5552 errors[0xea02] = "Non-existent member"
5554 errors[0xeb00] = "The property is not a set property"
5556 errors[0xec00] = "No such set"
5557 errors[0xec01] = "The set property does not exist"
5559 errors[0xed00] = "Property exists"
5560 errors[0xed01] = "The property already exists"
5561 errors[0xed02] = "An attempt was made to create a bindery object property that already exists"
5563 errors[0xee00] = "The object already exists"
5564 errors[0xee01] = "The bindery object already exists"
5566 errors[0xef00] = "Illegal name"
5567 errors[0xef01] = "Illegal characters in ObjectName field"
5568 errors[0xef02] = "Invalid name"
5570 errors[0xf000] = "A wildcard was detected in a field that does not support wildcards"
5571 errors[0xf001] = "An illegal wildcard was detected in ObjectName"
5573 errors[0xf100] = "The client does not have the rights to access this bindery object"
5574 errors[0xf101] = "Bindery security"
5575 errors[0xf102] = "Invalid bindery security"
5577 errors[0xf200] = "Unauthorized to read from this object"
5578 errors[0xf300] = "Unauthorized to rename this object"
5580 errors[0xf400] = "Unauthorized to delete this object"
5581 errors[0xf401] = "No object delete privileges"
5582 errors[0xf402] = "Unauthorized to delete this queue"
5584 errors[0xf500] = "Unauthorized to create this object"
5585 errors[0xf501] = "No object create"
5587 errors[0xf600] = "No property delete"
5588 errors[0xf601] = "Unauthorized to delete the property of this object"
5589 errors[0xf602] = "Unauthorized to delete this property"
5591 errors[0xf700] = "Unauthorized to create this property"
5592 errors[0xf701] = "No property create privilege"
5594 errors[0xf800] = "Unauthorized to write to this property"
5595 errors[0xf900] = "Unauthorized to read this property"
5596 errors[0xfa00] = "Temporary remap error"
5598 errors[0xfb00] = "No such property"
5599 errors[0xfb01] = "The file server does not support this request"
5600 errors[0xfb02] = "The specified property does not exist"
5601 errors[0xfb03] = "The PASSWORD property does not exist for this bindery object"
5602 errors[0xfb04] = "NDS NCP not available"
5603 errors[0xfb05] = "Bad Directory Handle"
5604 errors[0xfb06] = "Unknown Request"
5605 errors[0xfb07] = "Invalid Subfunction Request"
5606 errors[0xfb08] = "Attempt to use an invalid parameter (drive number, path, or flag value) during a set drive path call"
5607 errors[0xfb09] = "NMAS not running on this server, NCP NOT Supported"
5608 errors[0xfb0a] = "Station Not Logged In"
5609 errors[0xfb0b] = "Secret Store not running on this server, NCP Not supported"
5611 errors[0xfc00] = "The message queue cannot accept another message"
5612 errors[0xfc01] = "The trustee associated with ObjectId does not exist"
5613 errors[0xfc02] = "The specified bindery object does not exist"
5614 errors[0xfc03] = "The bindery object associated with ObjectID does not exist"
5615 errors[0xfc04] = "A bindery object does not exist that matches"
5616 errors[0xfc05] = "The specified queue does not exist"
5617 errors[0xfc06] = "No such object"
5618 errors[0xfc07] = "The queue associated with ObjectID does not exist"
5620 errors[0xfd00] = "Bad station number"
5621 errors[0xfd01] = "The connection associated with ConnectionNumber is not active"
5622 errors[0xfd02] = "Lock collision"
5623 errors[0xfd03] = "Transaction tracking is disabled"
5625 errors[0xfe00] = "I/O failure"
5626 errors[0xfe01] = "The files containing the bindery on the file server are locked"
5627 errors[0xfe02] = "A file with the specified name already exists in this directory"
5628 errors[0xfe03] = "No more restrictions were found"
5629 errors[0xfe04] = "The file server was unable to lock the file within the specified time limit"
5630 errors[0xfe05] = "The file server was unable to lock all files within the specified time limit"
5631 errors[0xfe06] = "The bindery object associated with ObjectID is not a valid trustee"
5632 errors[0xfe07] = "Directory locked"
5633 errors[0xfe08] = "Bindery locked"
5634 errors[0xfe09] = "Invalid semaphore name length"
5635 errors[0xfe0a] = "The file server was unable to complete the operation within the specified time limit"
5636 errors[0xfe0b] = "Transaction restart"
5637 errors[0xfe0c] = "Bad packet"
5638 errors[0xfe0d] = "Timeout"
5639 errors[0xfe0e] = "User Not Found"
5640 errors[0xfe0f] = "Trustee Not Found"
5642 errors[0xff00] = "Failure"
5643 errors[0xff01] = "Lock error"
5644 errors[0xff02] = "File not found"
5645 errors[0xff03] = "The file not found or cannot be unlocked"
5646 errors[0xff04] = "Record not found"
5647 errors[0xff05] = "The logical record was not found"
5648 errors[0xff06] = "The printer associated with Printer Number does not exist"
5649 errors[0xff07] = "No such printer"
5650 errors[0xff08] = "Unable to complete the request"
5651 errors[0xff09] = "Unauthorized to change privileges of this trustee"
5652 errors[0xff0a] = "No files matching the search criteria were found"
5653 errors[0xff0b] = "A file matching the search criteria was not found"
5654 errors[0xff0c] = "Verification failed"
5655 errors[0xff0d] = "Object associated with ObjectID is not a manager"
5656 errors[0xff0e] = "Invalid initial semaphore value"
5657 errors[0xff0f] = "The semaphore handle is not valid"
5658 errors[0xff10] = "SemaphoreHandle is not associated with a valid sempahore"
5659 errors[0xff11] = "Invalid semaphore handle"
5660 errors[0xff12] = "Transaction tracking is not available"
5661 errors[0xff13] = "The transaction has not yet been written to disk"
5662 errors[0xff14] = "Directory already exists"
5663 errors[0xff15] = "The file already exists and the deletion flag was not set"
5664 errors[0xff16] = "No matching files or directories were found"
5665 errors[0xff17] = "A file or directory matching the search criteria was not found"
5666 errors[0xff18] = "The file already exists"
5667 errors[0xff19] = "Failure, No files found"
5668 errors[0xff1a] = "Unlock Error"
5669 errors[0xff1b] = "I/O Bound Error"
5670 errors[0xff1c] = "Not Accepting Messages"
5671 errors[0xff1d] = "No More Salvageable Files in Directory"
5672 errors[0xff1e] = "Calling Station is Not a Manager"
5673 errors[0xff1f] = "Bindery Failure"
5674 errors[0xff20] = "NCP Extension Not Found"
5675 errors[0xff21] = "Audit Property Not Found"
5676 errors[0xff22] = "Server Set Parameter Not Found"
5678 ##############################################################################
5680 ##############################################################################
5681 def ExamineVars(vars, structs_hash, vars_hash):
5683 if isinstance(var, struct):
5684 structs_hash[var.HFName()] = var
5685 struct_vars = var.Variables()
5686 ExamineVars(struct_vars, structs_hash, vars_hash)
5688 vars_hash[repr(var)] = var
5689 if isinstance(var, bitfield):
5690 sub_vars = var.SubVariables()
5691 ExamineVars(sub_vars, structs_hash, vars_hash)
5698 print " * Generated automatically from %s" % (sys.argv[0])
5699 print " * Do not edit this file manually, as all changes will be lost."
5704 * Portions Copyright (c) Gilbert Ramirez 2000-2002
5705 * Portions Copyright (c) Novell, Inc. 2000-2005
5707 * This program is free software; you can redistribute it and/or
5708 * modify it under the terms of the GNU General Public License
5709 * as published by the Free Software Foundation; either version 2
5710 * of the License, or (at your option) any later version.
5712 * This program is distributed in the hope that it will be useful,
5713 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5714 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5715 * GNU General Public License for more details.
5717 * You should have received a copy of the GNU General Public License
5718 * along with this program; if not, write to the Free Software
5719 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
5722 #ifdef HAVE_CONFIG_H
5723 # include "config.h"
5728 #include <epan/packet.h>
5729 #include <epan/conversation.h>
5730 #include <epan/ptvcursor.h>
5731 #include <epan/emem.h>
5732 #include <epan/strutil.h>
5733 #include <epan/reassemble.h>
5734 #include <epan/tap.h>
5735 #include "packet-ncp-int.h"
5736 #include "packet-ncp-nmas.h"
5737 #include "packet-ncp-sss.h"
5739 /* Function declarations for functions used in proto_register_ncp2222() */
5740 static void ncp_init_protocol(void);
5741 static void ncp_postseq_cleanup(void);
5743 /* Endianness macros */
5746 #define NO_ENDIANNESS 0
5748 #define NO_LENGTH -1
5750 /* We use this int-pointer as a special flag in ptvc_record's */
5751 static int ptvc_struct_int_storage;
5752 #define PTVC_STRUCT (&ptvc_struct_int_storage)
5754 /* Values used in the count-variable ("var"/"repeat") logic. */"""
5757 if global_highest_var > -1:
5758 print "#define NUM_REPEAT_VARS\t%d" % (global_highest_var + 1)
5759 print "static guint repeat_vars[NUM_REPEAT_VARS];"
5761 print "#define NUM_REPEAT_VARS\t0"
5762 print "static guint *repeat_vars = NULL;"
5765 #define NO_VAR NUM_REPEAT_VARS
5766 #define NO_REPEAT NUM_REPEAT_VARS
5768 #define REQ_COND_SIZE_CONSTANT 0
5769 #define REQ_COND_SIZE_VARIABLE 1
5770 #define NO_REQ_COND_SIZE 0
5773 #define NTREE 0x00020000
5774 #define NDEPTH 0x00000002
5775 #define NREV 0x00000004
5776 #define NFLAGS 0x00000008
5778 static int hf_ncp_func = -1;
5779 static int hf_ncp_length = -1;
5780 static int hf_ncp_subfunc = -1;
5781 static int hf_ncp_group = -1;
5782 static int hf_ncp_fragment_handle = -1;
5783 static int hf_ncp_completion_code = -1;
5784 static int hf_ncp_connection_status = -1;
5785 static int hf_ncp_req_frame_num = -1;
5786 static int hf_ncp_req_frame_time = -1;
5787 static int hf_ncp_fragment_size = -1;
5788 static int hf_ncp_message_size = -1;
5789 static int hf_ncp_nds_flag = -1;
5790 static int hf_ncp_nds_verb = -1;
5791 static int hf_ping_version = -1;
5792 static int hf_nds_version = -1;
5793 static int hf_nds_flags = -1;
5794 static int hf_nds_reply_depth = -1;
5795 static int hf_nds_reply_rev = -1;
5796 static int hf_nds_reply_flags = -1;
5797 static int hf_nds_p1type = -1;
5798 static int hf_nds_uint32value = -1;
5799 static int hf_nds_bit1 = -1;
5800 static int hf_nds_bit2 = -1;
5801 static int hf_nds_bit3 = -1;
5802 static int hf_nds_bit4 = -1;
5803 static int hf_nds_bit5 = -1;
5804 static int hf_nds_bit6 = -1;
5805 static int hf_nds_bit7 = -1;
5806 static int hf_nds_bit8 = -1;
5807 static int hf_nds_bit9 = -1;
5808 static int hf_nds_bit10 = -1;
5809 static int hf_nds_bit11 = -1;
5810 static int hf_nds_bit12 = -1;
5811 static int hf_nds_bit13 = -1;
5812 static int hf_nds_bit14 = -1;
5813 static int hf_nds_bit15 = -1;
5814 static int hf_nds_bit16 = -1;
5815 static int hf_bit1outflags = -1;
5816 static int hf_bit2outflags = -1;
5817 static int hf_bit3outflags = -1;
5818 static int hf_bit4outflags = -1;
5819 static int hf_bit5outflags = -1;
5820 static int hf_bit6outflags = -1;
5821 static int hf_bit7outflags = -1;
5822 static int hf_bit8outflags = -1;
5823 static int hf_bit9outflags = -1;
5824 static int hf_bit10outflags = -1;
5825 static int hf_bit11outflags = -1;
5826 static int hf_bit12outflags = -1;
5827 static int hf_bit13outflags = -1;
5828 static int hf_bit14outflags = -1;
5829 static int hf_bit15outflags = -1;
5830 static int hf_bit16outflags = -1;
5831 static int hf_bit1nflags = -1;
5832 static int hf_bit2nflags = -1;
5833 static int hf_bit3nflags = -1;
5834 static int hf_bit4nflags = -1;
5835 static int hf_bit5nflags = -1;
5836 static int hf_bit6nflags = -1;
5837 static int hf_bit7nflags = -1;
5838 static int hf_bit8nflags = -1;
5839 static int hf_bit9nflags = -1;
5840 static int hf_bit10nflags = -1;
5841 static int hf_bit11nflags = -1;
5842 static int hf_bit12nflags = -1;
5843 static int hf_bit13nflags = -1;
5844 static int hf_bit14nflags = -1;
5845 static int hf_bit15nflags = -1;
5846 static int hf_bit16nflags = -1;
5847 static int hf_bit1rflags = -1;
5848 static int hf_bit2rflags = -1;
5849 static int hf_bit3rflags = -1;
5850 static int hf_bit4rflags = -1;
5851 static int hf_bit5rflags = -1;
5852 static int hf_bit6rflags = -1;
5853 static int hf_bit7rflags = -1;
5854 static int hf_bit8rflags = -1;
5855 static int hf_bit9rflags = -1;
5856 static int hf_bit10rflags = -1;
5857 static int hf_bit11rflags = -1;
5858 static int hf_bit12rflags = -1;
5859 static int hf_bit13rflags = -1;
5860 static int hf_bit14rflags = -1;
5861 static int hf_bit15rflags = -1;
5862 static int hf_bit16rflags = -1;
5863 static int hf_bit1cflags = -1;
5864 static int hf_bit2cflags = -1;
5865 static int hf_bit3cflags = -1;
5866 static int hf_bit4cflags = -1;
5867 static int hf_bit5cflags = -1;
5868 static int hf_bit6cflags = -1;
5869 static int hf_bit7cflags = -1;
5870 static int hf_bit8cflags = -1;
5871 static int hf_bit9cflags = -1;
5872 static int hf_bit10cflags = -1;
5873 static int hf_bit11cflags = -1;
5874 static int hf_bit12cflags = -1;
5875 static int hf_bit13cflags = -1;
5876 static int hf_bit14cflags = -1;
5877 static int hf_bit15cflags = -1;
5878 static int hf_bit16cflags = -1;
5879 static int hf_bit1acflags = -1;
5880 static int hf_bit2acflags = -1;
5881 static int hf_bit3acflags = -1;
5882 static int hf_bit4acflags = -1;
5883 static int hf_bit5acflags = -1;
5884 static int hf_bit6acflags = -1;
5885 static int hf_bit7acflags = -1;
5886 static int hf_bit8acflags = -1;
5887 static int hf_bit9acflags = -1;
5888 static int hf_bit10acflags = -1;
5889 static int hf_bit11acflags = -1;
5890 static int hf_bit12acflags = -1;
5891 static int hf_bit13acflags = -1;
5892 static int hf_bit14acflags = -1;
5893 static int hf_bit15acflags = -1;
5894 static int hf_bit16acflags = -1;
5895 static int hf_bit1vflags = -1;
5896 static int hf_bit2vflags = -1;
5897 static int hf_bit3vflags = -1;
5898 static int hf_bit4vflags = -1;
5899 static int hf_bit5vflags = -1;
5900 static int hf_bit6vflags = -1;
5901 static int hf_bit7vflags = -1;
5902 static int hf_bit8vflags = -1;
5903 static int hf_bit9vflags = -1;
5904 static int hf_bit10vflags = -1;
5905 static int hf_bit11vflags = -1;
5906 static int hf_bit12vflags = -1;
5907 static int hf_bit13vflags = -1;
5908 static int hf_bit14vflags = -1;
5909 static int hf_bit15vflags = -1;
5910 static int hf_bit16vflags = -1;
5911 static int hf_bit1eflags = -1;
5912 static int hf_bit2eflags = -1;
5913 static int hf_bit3eflags = -1;
5914 static int hf_bit4eflags = -1;
5915 static int hf_bit5eflags = -1;
5916 static int hf_bit6eflags = -1;
5917 static int hf_bit7eflags = -1;
5918 static int hf_bit8eflags = -1;
5919 static int hf_bit9eflags = -1;
5920 static int hf_bit10eflags = -1;
5921 static int hf_bit11eflags = -1;
5922 static int hf_bit12eflags = -1;
5923 static int hf_bit13eflags = -1;
5924 static int hf_bit14eflags = -1;
5925 static int hf_bit15eflags = -1;
5926 static int hf_bit16eflags = -1;
5927 static int hf_bit1infoflagsl = -1;
5928 static int hf_bit2infoflagsl = -1;
5929 static int hf_bit3infoflagsl = -1;
5930 static int hf_bit4infoflagsl = -1;
5931 static int hf_bit5infoflagsl = -1;
5932 static int hf_bit6infoflagsl = -1;
5933 static int hf_bit7infoflagsl = -1;
5934 static int hf_bit8infoflagsl = -1;
5935 static int hf_bit9infoflagsl = -1;
5936 static int hf_bit10infoflagsl = -1;
5937 static int hf_bit11infoflagsl = -1;
5938 static int hf_bit12infoflagsl = -1;
5939 static int hf_bit13infoflagsl = -1;
5940 static int hf_bit14infoflagsl = -1;
5941 static int hf_bit15infoflagsl = -1;
5942 static int hf_bit16infoflagsl = -1;
5943 static int hf_bit1infoflagsh = -1;
5944 static int hf_bit2infoflagsh = -1;
5945 static int hf_bit3infoflagsh = -1;
5946 static int hf_bit4infoflagsh = -1;
5947 static int hf_bit5infoflagsh = -1;
5948 static int hf_bit6infoflagsh = -1;
5949 static int hf_bit7infoflagsh = -1;
5950 static int hf_bit8infoflagsh = -1;
5951 static int hf_bit9infoflagsh = -1;
5952 static int hf_bit10infoflagsh = -1;
5953 static int hf_bit11infoflagsh = -1;
5954 static int hf_bit12infoflagsh = -1;
5955 static int hf_bit13infoflagsh = -1;
5956 static int hf_bit14infoflagsh = -1;
5957 static int hf_bit15infoflagsh = -1;
5958 static int hf_bit16infoflagsh = -1;
5959 static int hf_bit1lflags = -1;
5960 static int hf_bit2lflags = -1;
5961 static int hf_bit3lflags = -1;
5962 static int hf_bit4lflags = -1;
5963 static int hf_bit5lflags = -1;
5964 static int hf_bit6lflags = -1;
5965 static int hf_bit7lflags = -1;
5966 static int hf_bit8lflags = -1;
5967 static int hf_bit9lflags = -1;
5968 static int hf_bit10lflags = -1;
5969 static int hf_bit11lflags = -1;
5970 static int hf_bit12lflags = -1;
5971 static int hf_bit13lflags = -1;
5972 static int hf_bit14lflags = -1;
5973 static int hf_bit15lflags = -1;
5974 static int hf_bit16lflags = -1;
5975 static int hf_bit1l1flagsl = -1;
5976 static int hf_bit2l1flagsl = -1;
5977 static int hf_bit3l1flagsl = -1;
5978 static int hf_bit4l1flagsl = -1;
5979 static int hf_bit5l1flagsl = -1;
5980 static int hf_bit6l1flagsl = -1;
5981 static int hf_bit7l1flagsl = -1;
5982 static int hf_bit8l1flagsl = -1;
5983 static int hf_bit9l1flagsl = -1;
5984 static int hf_bit10l1flagsl = -1;
5985 static int hf_bit11l1flagsl = -1;
5986 static int hf_bit12l1flagsl = -1;
5987 static int hf_bit13l1flagsl = -1;
5988 static int hf_bit14l1flagsl = -1;
5989 static int hf_bit15l1flagsl = -1;
5990 static int hf_bit16l1flagsl = -1;
5991 static int hf_bit1l1flagsh = -1;
5992 static int hf_bit2l1flagsh = -1;
5993 static int hf_bit3l1flagsh = -1;
5994 static int hf_bit4l1flagsh = -1;
5995 static int hf_bit5l1flagsh = -1;
5996 static int hf_bit6l1flagsh = -1;
5997 static int hf_bit7l1flagsh = -1;
5998 static int hf_bit8l1flagsh = -1;
5999 static int hf_bit9l1flagsh = -1;
6000 static int hf_bit10l1flagsh = -1;
6001 static int hf_bit11l1flagsh = -1;
6002 static int hf_bit12l1flagsh = -1;
6003 static int hf_bit13l1flagsh = -1;
6004 static int hf_bit14l1flagsh = -1;
6005 static int hf_bit15l1flagsh = -1;
6006 static int hf_bit16l1flagsh = -1;
6007 static int hf_nds_tree_name = -1;
6008 static int hf_nds_reply_error = -1;
6009 static int hf_nds_net = -1;
6010 static int hf_nds_node = -1;
6011 static int hf_nds_socket = -1;
6012 static int hf_add_ref_ip = -1;
6013 static int hf_add_ref_udp = -1;
6014 static int hf_add_ref_tcp = -1;
6015 static int hf_referral_record = -1;
6016 static int hf_referral_addcount = -1;
6017 static int hf_nds_port = -1;
6018 static int hf_mv_string = -1;
6019 static int hf_nds_syntax = -1;
6020 static int hf_value_string = -1;
6021 static int hf_nds_buffer_size = -1;
6022 static int hf_nds_ver = -1;
6023 static int hf_nds_nflags = -1;
6024 static int hf_nds_scope = -1;
6025 static int hf_nds_name = -1;
6026 static int hf_nds_comm_trans = -1;
6027 static int hf_nds_tree_trans = -1;
6028 static int hf_nds_iteration = -1;
6029 static int hf_nds_eid = -1;
6030 static int hf_nds_info_type = -1;
6031 static int hf_nds_all_attr = -1;
6032 static int hf_nds_req_flags = -1;
6033 static int hf_nds_attr = -1;
6034 static int hf_nds_crc = -1;
6035 static int hf_nds_referrals = -1;
6036 static int hf_nds_result_flags = -1;
6037 static int hf_nds_tag_string = -1;
6038 static int hf_value_bytes = -1;
6039 static int hf_replica_type = -1;
6040 static int hf_replica_state = -1;
6041 static int hf_replica_number = -1;
6042 static int hf_min_nds_ver = -1;
6043 static int hf_nds_ver_include = -1;
6044 static int hf_nds_ver_exclude = -1;
6045 static int hf_nds_es = -1;
6046 static int hf_es_type = -1;
6047 static int hf_delim_string = -1;
6048 static int hf_rdn_string = -1;
6049 static int hf_nds_revent = -1;
6050 static int hf_nds_rnum = -1;
6051 static int hf_nds_name_type = -1;
6052 static int hf_nds_rflags = -1;
6053 static int hf_nds_eflags = -1;
6054 static int hf_nds_depth = -1;
6055 static int hf_nds_class_def_type = -1;
6056 static int hf_nds_classes = -1;
6057 static int hf_nds_return_all_classes = -1;
6058 static int hf_nds_stream_flags = -1;
6059 static int hf_nds_stream_name = -1;
6060 static int hf_nds_file_handle = -1;
6061 static int hf_nds_file_size = -1;
6062 static int hf_nds_dn_output_type = -1;
6063 static int hf_nds_nested_output_type = -1;
6064 static int hf_nds_output_delimiter = -1;
6065 static int hf_nds_output_entry_specifier = -1;
6066 static int hf_es_value = -1;
6067 static int hf_es_rdn_count = -1;
6068 static int hf_nds_replica_num = -1;
6069 static int hf_nds_event_num = -1;
6070 static int hf_es_seconds = -1;
6071 static int hf_nds_compare_results = -1;
6072 static int hf_nds_parent = -1;
6073 static int hf_nds_name_filter = -1;
6074 static int hf_nds_class_filter = -1;
6075 static int hf_nds_time_filter = -1;
6076 static int hf_nds_partition_root_id = -1;
6077 static int hf_nds_replicas = -1;
6078 static int hf_nds_purge = -1;
6079 static int hf_nds_local_partition = -1;
6080 static int hf_partition_busy = -1;
6081 static int hf_nds_number_of_changes = -1;
6082 static int hf_sub_count = -1;
6083 static int hf_nds_revision = -1;
6084 static int hf_nds_base_class = -1;
6085 static int hf_nds_relative_dn = -1;
6086 static int hf_nds_root_dn = -1;
6087 static int hf_nds_parent_dn = -1;
6088 static int hf_deref_base = -1;
6089 static int hf_nds_entry_info = -1;
6090 static int hf_nds_base = -1;
6091 static int hf_nds_privileges = -1;
6092 static int hf_nds_vflags = -1;
6093 static int hf_nds_value_len = -1;
6094 static int hf_nds_cflags = -1;
6095 static int hf_nds_acflags = -1;
6096 static int hf_nds_asn1 = -1;
6097 static int hf_nds_upper = -1;
6098 static int hf_nds_lower = -1;
6099 static int hf_nds_trustee_dn = -1;
6100 static int hf_nds_attribute_dn = -1;
6101 static int hf_nds_acl_add = -1;
6102 static int hf_nds_acl_del = -1;
6103 static int hf_nds_att_add = -1;
6104 static int hf_nds_att_del = -1;
6105 static int hf_nds_keep = -1;
6106 static int hf_nds_new_rdn = -1;
6107 static int hf_nds_time_delay = -1;
6108 static int hf_nds_root_name = -1;
6109 static int hf_nds_new_part_id = -1;
6110 static int hf_nds_child_part_id = -1;
6111 static int hf_nds_master_part_id = -1;
6112 static int hf_nds_target_name = -1;
6113 static int hf_nds_super = -1;
6114 static int hf_bit1pingflags2 = -1;
6115 static int hf_bit2pingflags2 = -1;
6116 static int hf_bit3pingflags2 = -1;
6117 static int hf_bit4pingflags2 = -1;
6118 static int hf_bit5pingflags2 = -1;
6119 static int hf_bit6pingflags2 = -1;
6120 static int hf_bit7pingflags2 = -1;
6121 static int hf_bit8pingflags2 = -1;
6122 static int hf_bit9pingflags2 = -1;
6123 static int hf_bit10pingflags2 = -1;
6124 static int hf_bit11pingflags2 = -1;
6125 static int hf_bit12pingflags2 = -1;
6126 static int hf_bit13pingflags2 = -1;
6127 static int hf_bit14pingflags2 = -1;
6128 static int hf_bit15pingflags2 = -1;
6129 static int hf_bit16pingflags2 = -1;
6130 static int hf_bit1pingflags1 = -1;
6131 static int hf_bit2pingflags1 = -1;
6132 static int hf_bit3pingflags1 = -1;
6133 static int hf_bit4pingflags1 = -1;
6134 static int hf_bit5pingflags1 = -1;
6135 static int hf_bit6pingflags1 = -1;
6136 static int hf_bit7pingflags1 = -1;
6137 static int hf_bit8pingflags1 = -1;
6138 static int hf_bit9pingflags1 = -1;
6139 static int hf_bit10pingflags1 = -1;
6140 static int hf_bit11pingflags1 = -1;
6141 static int hf_bit12pingflags1 = -1;
6142 static int hf_bit13pingflags1 = -1;
6143 static int hf_bit14pingflags1 = -1;
6144 static int hf_bit15pingflags1 = -1;
6145 static int hf_bit16pingflags1 = -1;
6146 static int hf_bit1pingpflags1 = -1;
6147 static int hf_bit2pingpflags1 = -1;
6148 static int hf_bit3pingpflags1 = -1;
6149 static int hf_bit4pingpflags1 = -1;
6150 static int hf_bit5pingpflags1 = -1;
6151 static int hf_bit6pingpflags1 = -1;
6152 static int hf_bit7pingpflags1 = -1;
6153 static int hf_bit8pingpflags1 = -1;
6154 static int hf_bit9pingpflags1 = -1;
6155 static int hf_bit10pingpflags1 = -1;
6156 static int hf_bit11pingpflags1 = -1;
6157 static int hf_bit12pingpflags1 = -1;
6158 static int hf_bit13pingpflags1 = -1;
6159 static int hf_bit14pingpflags1 = -1;
6160 static int hf_bit15pingpflags1 = -1;
6161 static int hf_bit16pingpflags1 = -1;
6162 static int hf_bit1pingvflags1 = -1;
6163 static int hf_bit2pingvflags1 = -1;
6164 static int hf_bit3pingvflags1 = -1;
6165 static int hf_bit4pingvflags1 = -1;
6166 static int hf_bit5pingvflags1 = -1;
6167 static int hf_bit6pingvflags1 = -1;
6168 static int hf_bit7pingvflags1 = -1;
6169 static int hf_bit8pingvflags1 = -1;
6170 static int hf_bit9pingvflags1 = -1;
6171 static int hf_bit10pingvflags1 = -1;
6172 static int hf_bit11pingvflags1 = -1;
6173 static int hf_bit12pingvflags1 = -1;
6174 static int hf_bit13pingvflags1 = -1;
6175 static int hf_bit14pingvflags1 = -1;
6176 static int hf_bit15pingvflags1 = -1;
6177 static int hf_bit16pingvflags1 = -1;
6178 static int hf_nds_letter_ver = -1;
6179 static int hf_nds_os_majver = -1;
6180 static int hf_nds_os_minver = -1;
6181 static int hf_nds_lic_flags = -1;
6182 static int hf_nds_ds_time = -1;
6183 static int hf_nds_ping_version = -1;
6184 static int hf_nds_search_scope = -1;
6185 static int hf_nds_num_objects = -1;
6186 static int hf_bit1siflags = -1;
6187 static int hf_bit2siflags = -1;
6188 static int hf_bit3siflags = -1;
6189 static int hf_bit4siflags = -1;
6190 static int hf_bit5siflags = -1;
6191 static int hf_bit6siflags = -1;
6192 static int hf_bit7siflags = -1;
6193 static int hf_bit8siflags = -1;
6194 static int hf_bit9siflags = -1;
6195 static int hf_bit10siflags = -1;
6196 static int hf_bit11siflags = -1;
6197 static int hf_bit12siflags = -1;
6198 static int hf_bit13siflags = -1;
6199 static int hf_bit14siflags = -1;
6200 static int hf_bit15siflags = -1;
6201 static int hf_bit16siflags = -1;
6202 static int hf_nds_segments = -1;
6203 static int hf_nds_segment = -1;
6204 static int hf_nds_segment_overlap = -1;
6205 static int hf_nds_segment_overlap_conflict = -1;
6206 static int hf_nds_segment_multiple_tails = -1;
6207 static int hf_nds_segment_too_long_segment = -1;
6208 static int hf_nds_segment_error = -1;
6209 static int hf_nds_segment_count = -1;
6210 static int hf_nds_reassembled_length = -1;
6211 static int hf_nds_verb2b_req_flags = -1;
6212 static int hf_ncp_ip_address = -1;
6213 static int hf_ncp_copyright = -1;
6214 static int hf_ndsprot1flag = -1;
6215 static int hf_ndsprot2flag = -1;
6216 static int hf_ndsprot3flag = -1;
6217 static int hf_ndsprot4flag = -1;
6218 static int hf_ndsprot5flag = -1;
6219 static int hf_ndsprot6flag = -1;
6220 static int hf_ndsprot7flag = -1;
6221 static int hf_ndsprot8flag = -1;
6222 static int hf_ndsprot9flag = -1;
6223 static int hf_ndsprot10flag = -1;
6224 static int hf_ndsprot11flag = -1;
6225 static int hf_ndsprot12flag = -1;
6226 static int hf_ndsprot13flag = -1;
6227 static int hf_ndsprot14flag = -1;
6228 static int hf_ndsprot15flag = -1;
6229 static int hf_ndsprot16flag = -1;
6230 static int hf_nds_svr_dst_name = -1;
6231 static int hf_nds_tune_mark = -1;
6232 static int hf_nds_create_time = -1;
6233 static int hf_srvr_param_number = -1;
6234 static int hf_srvr_param_boolean = -1;
6235 static int hf_srvr_param_string = -1;
6236 static int hf_nds_svr_time = -1;
6237 static int hf_nds_crt_time = -1;
6238 static int hf_nds_number_of_items = -1;
6239 static int hf_nds_compare_attributes = -1;
6240 static int hf_nds_read_attribute = -1;
6241 static int hf_nds_write_add_delete_attribute = -1;
6242 static int hf_nds_add_delete_self = -1;
6243 static int hf_nds_privilege_not_defined = -1;
6244 static int hf_nds_supervisor = -1;
6245 static int hf_nds_inheritance_control = -1;
6246 static int hf_nds_browse_entry = -1;
6247 static int hf_nds_add_entry = -1;
6248 static int hf_nds_delete_entry = -1;
6249 static int hf_nds_rename_entry = -1;
6250 static int hf_nds_supervisor_entry = -1;
6251 static int hf_nds_entry_privilege_not_defined = -1;
6252 static int hf_nds_iterator = -1;
6253 static int hf_ncp_nds_iterverb = -1;
6254 static int hf_iter_completion_code = -1;
6255 static int hf_nds_iterobj = -1;
6256 static int hf_iter_verb_completion_code = -1;
6257 static int hf_iter_ans = -1;
6258 static int hf_positionable = -1;
6259 static int hf_num_skipped = -1;
6260 static int hf_num_to_skip = -1;
6261 static int hf_timelimit = -1;
6262 static int hf_iter_index = -1;
6263 static int hf_num_to_get = -1;
6264 static int hf_ret_info_type = -1;
6265 static int hf_data_size = -1;
6266 static int hf_this_count = -1;
6267 static int hf_max_entries = -1;
6268 static int hf_move_position = -1;
6269 static int hf_iter_copy = -1;
6270 static int hf_iter_position = -1;
6271 static int hf_iter_search = -1;
6272 static int hf_iter_other = -1;
6273 static int hf_nds_oid = -1;
6277 # Look at all packet types in the packets collection, and cull information
6279 errors_used_list = []
6280 errors_used_hash = {}
6281 groups_used_list = []
6282 groups_used_hash = {}
6283 variables_used_hash = {}
6284 structs_used_hash = {}
6287 # Determine which error codes are used.
6288 codes = pkt.CompletionCodes()
6289 for code in codes.Records():
6290 if not errors_used_hash.has_key(code):
6291 errors_used_hash[code] = len(errors_used_list)
6292 errors_used_list.append(code)
6294 # Determine which groups are used.
6296 if not groups_used_hash.has_key(group):
6297 groups_used_hash[group] = len(groups_used_list)
6298 groups_used_list.append(group)
6303 # Determine which variables are used.
6304 vars = pkt.Variables()
6305 ExamineVars(vars, structs_used_hash, variables_used_hash)
6308 # Print the hf variable declarations
6309 sorted_vars = variables_used_hash.values()
6311 for var in sorted_vars:
6312 print "static int " + var.HFName() + " = -1;"
6315 # Print the value_string's
6316 for var in sorted_vars:
6317 if isinstance(var, val_string):
6321 # Determine which error codes are not used
6322 errors_not_used = {}
6323 # Copy the keys from the error list...
6324 for code in errors.keys():
6325 errors_not_used[code] = 1
6326 # ... and remove the ones that *were* used.
6327 for code in errors_used_list:
6328 del errors_not_used[code]
6330 # Print a remark showing errors not used
6331 list_errors_not_used = errors_not_used.keys()
6332 list_errors_not_used.sort()
6333 for code in list_errors_not_used:
6334 print "/* Error 0x%04x not used: %s */" % (code, errors[code])
6337 # Print the errors table
6338 print "/* Error strings. */"
6339 print "static const char *ncp_errors[] = {"
6340 for code in errors_used_list:
6341 print '\t/* %02d (0x%04x) */ "%s",' % (errors_used_hash[code], code, errors[code])
6347 # Determine which groups are not used
6348 groups_not_used = {}
6349 # Copy the keys from the group list...
6350 for group in groups.keys():
6351 groups_not_used[group] = 1
6352 # ... and remove the ones that *were* used.
6353 for group in groups_used_list:
6354 del groups_not_used[group]
6356 # Print a remark showing groups not used
6357 list_groups_not_used = groups_not_used.keys()
6358 list_groups_not_used.sort()
6359 for group in list_groups_not_used:
6360 print "/* Group not used: %s = %s */" % (group, groups[group])
6363 # Print the groups table
6364 print "/* Group strings. */"
6365 print "static const char *ncp_groups[] = {"
6366 for group in groups_used_list:
6367 print '\t/* %02d (%s) */ "%s",' % (groups_used_hash[group], group, groups[group])
6370 # Print the group macros
6371 for group in groups_used_list:
6372 name = string.upper(group)
6373 print "#define NCP_GROUP_%s\t%d" % (name, groups_used_hash[group])
6377 # Print the conditional_records for all Request Conditions.
6379 print "/* Request-Condition dfilter records. The NULL pointer"
6380 print " is replaced by a pointer to the created dfilter_t. */"
6381 if len(global_req_cond) == 0:
6382 print "static conditional_record req_conds = NULL;"
6384 print "static conditional_record req_conds[] = {"
6385 for req_cond in global_req_cond.keys():
6386 print "\t{ \"%s\", NULL }," % (req_cond,)
6387 global_req_cond[req_cond] = num
6390 print "#define NUM_REQ_CONDS %d" % (num,)
6391 print "#define NO_REQ_COND NUM_REQ_CONDS\n\n"
6395 # Print PTVC's for bitfields
6397 print "/* PTVC records for bit-fields. */"
6398 for var in sorted_vars:
6399 if isinstance(var, bitfield):
6400 sub_vars_ptvc = var.SubVariablesPTVC()
6401 print "/* %s */" % (sub_vars_ptvc.Name())
6402 print sub_vars_ptvc.Code()
6403 ett_list.append(sub_vars_ptvc.ETTName())
6406 # Print the PTVC's for structures
6407 print "/* PTVC records for structs. */"
6410 for svar in structs_used_hash.values():
6411 svhash[svar.HFName()] = svar
6413 ett_list.append(svar.ETTName())
6415 struct_vars = svhash.keys()
6417 for varname in struct_vars:
6418 var = svhash[varname]
6423 # Print regular PTVC's
6424 print "/* PTVC records. These are re-used to save space. */"
6425 for ptvc in ptvc_lists.Members():
6426 if not ptvc.Null() and not ptvc.Empty():
6429 # Print error_equivalency tables
6430 print "/* Error-Equivalency Tables. These are re-used to save space. */"
6431 for compcodes in compcode_lists.Members():
6432 errors = compcodes.Records()
6433 # Make sure the record for error = 0x00 comes last.
6434 print "static const error_equivalency %s[] = {" % (compcodes.Name())
6435 for error in errors:
6436 error_in_packet = error >> 8;
6437 ncp_error_index = errors_used_hash[error]
6438 print "\t{ 0x%02x, %d }, /* 0x%04x */" % (error_in_packet,
6439 ncp_error_index, error)
6440 print "\t{ 0x00, -1 }\n};\n"
6444 # Print integer arrays for all ncp_records that need
6445 # a list of req_cond_indexes. Do it "uniquely" to save space;
6446 # if multiple packets share the same set of req_cond's,
6447 # then they'll share the same integer array
6448 print "/* Request Condition Indexes */"
6449 # First, make them unique
6450 req_cond_collection = UniqueCollection("req_cond_collection")
6452 req_conds = pkt.CalculateReqConds()
6454 unique_list = req_cond_collection.Add(req_conds)
6455 pkt.SetReqConds(unique_list)
6457 pkt.SetReqConds(None)
6460 for req_cond in req_cond_collection.Members():
6461 print "static const int %s[] = {" % (req_cond.Name(),)
6464 for text in req_cond.Records():
6465 vals.append(global_req_cond[text])
6468 print "%s, " % (val,),
6475 # Functions without length parameter
6476 funcs_without_length = {}
6478 # Print info string structures
6479 print "/* Info Strings */"
6481 if pkt.req_info_str:
6482 name = pkt.InfoStrName() + "_req"
6483 var = pkt.req_info_str[0]
6484 print "static const info_string_t %s = {" % (name,)
6485 print "\t&%s," % (var.HFName(),)
6486 print '\t"%s",' % (pkt.req_info_str[1],)
6487 print '\t"%s"' % (pkt.req_info_str[2],)
6492 # Print ncp_record packet records
6493 print "#define SUBFUNC_WITH_LENGTH 0x02"
6494 print "#define SUBFUNC_NO_LENGTH 0x01"
6495 print "#define NO_SUBFUNC 0x00"
6497 print "/* ncp_record structs for packets */"
6498 print "static const ncp_record ncp_packets[] = {"
6500 if pkt.HasSubFunction():
6501 func = pkt.FunctionCode('high')
6503 subfunc_string = "SUBFUNC_WITH_LENGTH"
6504 # Ensure that the function either has a length param or not
6505 if funcs_without_length.has_key(func):
6506 sys.exit("Function 0x%04x sometimes has length param, sometimes not." \
6507 % (pkt.FunctionCode(),))
6509 subfunc_string = "SUBFUNC_NO_LENGTH"
6510 funcs_without_length[func] = 1
6512 subfunc_string = "NO_SUBFUNC"
6513 print '\t{ 0x%02x, 0x%02x, %s, "%s",' % (pkt.FunctionCode('high'),
6514 pkt.FunctionCode('low'), subfunc_string, pkt.Description()),
6516 print '\t%d /* %s */,' % (groups_used_hash[pkt.Group()], pkt.Group())
6518 ptvc = pkt.PTVCRequest()
6519 if not ptvc.Null() and not ptvc.Empty():
6520 ptvc_request = ptvc.Name()
6522 ptvc_request = 'NULL'
6524 ptvc = pkt.PTVCReply()
6525 if not ptvc.Null() and not ptvc.Empty():
6526 ptvc_reply = ptvc.Name()
6530 errors = pkt.CompletionCodes()
6532 req_conds_obj = pkt.GetReqConds()
6534 req_conds = req_conds_obj.Name()
6538 if not req_conds_obj:
6539 req_cond_size = "NO_REQ_COND_SIZE"
6541 req_cond_size = pkt.ReqCondSize()
6542 if req_cond_size == None:
6543 msg.write("NCP packet %s needs a ReqCondSize*() call\n" \
6547 if pkt.req_info_str:
6548 req_info_str = "&" + pkt.InfoStrName() + "_req"
6550 req_info_str = "NULL"
6552 print '\t\t%s, %s, %s, %s, %s, %s },\n' % \
6553 (ptvc_request, ptvc_reply, errors.Name(), req_conds,
6554 req_cond_size, req_info_str)
6556 print '\t{ 0, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NO_REQ_COND_SIZE, NULL }'
6559 print "/* ncp funcs that require a subfunc */"
6560 print "static const guint8 ncp_func_requires_subfunc[] = {"
6563 if pkt.HasSubFunction():
6564 hi_func = pkt.FunctionCode('high')
6565 if not hi_seen.has_key(hi_func):
6566 print "\t0x%02x," % (hi_func)
6567 hi_seen[hi_func] = 1
6572 print "/* ncp funcs that have no length parameter */"
6573 print "static const guint8 ncp_func_has_no_length_parameter[] = {"
6574 funcs = funcs_without_length.keys()
6577 print "\t0x%02x," % (func,)
6583 # proto_register_ncp2222()
6585 static const value_string ncp_nds_verb_vals[] = {
6586 { 1, "Resolve Name" },
6587 { 2, "Read Entry Information" },
6591 { 6, "Search Entries" },
6593 { 8, "Remove Entry" },
6594 { 9, "Modify Entry" },
6595 { 10, "Modify RDN" },
6596 { 11, "Create Attribute" },
6597 { 12, "Read Attribute Definition" },
6598 { 13, "Remove Attribute Definition" },
6599 { 14, "Define Class" },
6600 { 15, "Read Class Definition " },
6601 { 16, "Modify Class Definition" },
6602 { 17, "Remove Class Definition" },
6603 { 18, "List Containable Classes" },
6604 { 19, "Get Effective Rights" },
6605 { 20, "Add Partition" },
6606 { 21, "Remove Partition" },
6607 { 22, "List Partitions" },
6608 { 23, "Split Partition" },
6609 { 24, "Join Partitions" },
6610 { 25, "Add Replica" },
6611 { 26, "Remove Replica" },
6612 { 27, "Open Stream" },
6613 { 28, "Search Filter" },
6614 { 29, "Create Subordinate Reference" },
6615 { 30, "Link Replica" },
6616 { 31, "Change Replica Type" },
6617 { 32, "Start Update Schema" },
6618 { 33, "End Update Schema" },
6619 { 34, "Update Schema" },
6620 { 35, "Start Update Replica" },
6621 { 36, "End Update Replica" },
6622 { 37, "Update Replica" },
6623 { 38, "Synchronize Partition" },
6624 { 39, "Synchronize Schema" },
6625 { 40, "Read Syntaxes" },
6626 { 41, "Get Replica Root ID" },
6627 { 42, "Begin Move Entry" },
6628 { 43, "Finish Move Entry" },
6629 { 44, "Release Moved Entry" },
6630 { 45, "Backup Entry" },
6631 { 46, "Restore Entry" },
6632 { 47, "Save DIB (Obsolete)" },
6634 { 49, "Remove Backlink" },
6635 { 50, "Close Iteration" },
6636 { 51, "Mutate Entry" },
6637 { 52, "Audit Skulking" },
6638 { 53, "Get Server Address" },
6640 { 55, "Change Password" },
6641 { 56, "Verify Password" },
6642 { 57, "Begin Login" },
6643 { 58, "Finish Login" },
6644 { 59, "Begin Authentication" },
6645 { 60, "Finish Authentication" },
6647 { 62, "Repair Ring (Obsolete)" },
6648 { 63, "Repair Timestamps" },
6649 { 64, "Create Back Link" },
6650 { 65, "Delete External Reference" },
6651 { 66, "Rename External Reference" },
6652 { 67, "Create Queue Entry Directory" },
6653 { 68, "Remove Queue Entry Directory" },
6654 { 69, "Merge Entries" },
6655 { 70, "Change Tree Name" },
6656 { 71, "Partition Entry Count" },
6657 { 72, "Check Login Restrictions" },
6658 { 73, "Start Join" },
6659 { 74, "Low Level Split" },
6660 { 75, "Low Level Join" },
6661 { 76, "Abort Partition Operation" },
6662 { 77, "Get All Servers" },
6663 { 78, "Partition Function" },
6664 { 79, "Read References" },
6665 { 80, "Inspect Entry" },
6666 { 81, "Get Remote Entry ID" },
6667 { 82, "Change Security" },
6668 { 83, "Check Console Operator" },
6669 { 84, "Start Move Tree" },
6670 { 85, "Move Tree" },
6671 { 86, "End Move Tree" },
6672 { 87, "Low Level Abort Join" },
6673 { 88, "Check Security Equivalence" },
6674 { 89, "Merge Tree" },
6675 { 90, "Sync External Reference" },
6676 { 91, "Resend Entry" },
6677 { 92, "New Schema Epoch" },
6678 { 93, "Statistics" },
6680 { 95, "Get Bindery Contexts" },
6681 { 96, "Monitor Connection" },
6682 { 97, "Get DS Statistics" },
6683 { 98, "Reset DS Counters" },
6685 { 100, "Read Stream" },
6686 { 101, "Write Stream" },
6687 { 102, "Create Orphan Partition" },
6688 { 103, "Remove Orphan Partition" },
6689 { 104, "Link Orphan Partition" },
6690 { 105, "Set Distributed Reference Link (DRL)" },
6691 { 106, "Available" },
6692 { 107, "Available" },
6693 { 108, "Verify Distributed Reference Link (DRL)" },
6694 { 109, "Verify Partition" },
6695 { 110, "Iterator" },
6696 { 111, "Available" },
6697 { 112, "Close Stream" },
6698 { 113, "Available" },
6699 { 114, "Read Status" },
6700 { 115, "Partition Sync Status" },
6701 { 116, "Read Reference Data" },
6702 { 117, "Write Reference Data" },
6703 { 118, "Resource Event" },
6704 { 119, "DIB Request (obsolete)" },
6705 { 120, "Set Replication Filter" },
6706 { 121, "Get Replication Filter" },
6707 { 122, "Change Attribute Definition" },
6708 { 123, "Schema in Use" },
6709 { 124, "Remove Keys" },
6711 { 126, "Multiple Operations Transaction" },
6713 { 255, "EDirectory Call" },
6717 static const value_string connection_status_vals[] = {
6719 { 0x01, "Bad Service Connection" },
6720 { 0x10, "File Server is Down" },
6721 { 0x40, "Broadcast Message Pending" },
6726 proto_register_ncp2222(void)
6729 static hf_register_info hf[] = {
6731 { "Function", "ncp.func", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }},
6734 { "Packet Length", "ncp.length", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
6737 { "SubFunction", "ncp.subfunc", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }},
6739 { &hf_ncp_completion_code,
6740 { "Completion Code", "ncp.completion_code", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }},
6743 { "NCP Group Type", "ncp.group", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
6745 { &hf_ncp_fragment_handle,
6746 { "NDS Fragment Handle", "ncp.ndsfrag", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
6748 { &hf_ncp_fragment_size,
6749 { "NDS Fragment Size", "ncp.ndsfragsize", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
6751 { &hf_ncp_message_size,
6752 { "Message Size", "ncp.ndsmessagesize", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
6755 { "Flags", "ncp.ndsflag", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
6758 { "NDS Verb", "ncp.ndsverb", FT_UINT8, BASE_HEX, VALS(ncp_nds_verb_vals), 0x0, NULL, HFILL }},
6761 { "NDS Version", "ncp.ping_version", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
6764 { "NDS Version", "ncp.nds_version", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
6766 { &hf_nds_tree_name,
6767 { "Tree Name", "ncp.nds_tree_name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
6772 * http://www.odyssea.com/whats_new/tcpipnet/tcpipnet.html
6774 * says of the connection status "The Connection Code field may
6775 * contain values that indicate the status of the client host to
6776 * server connection. A value of 1 in the fourth bit of this data
6777 * byte indicates that the server is unavailable (server was
6782 * http://www.unm.edu/~network/presentations/course/appendix/appendix_f/tsld088.htm
6784 * says that bit 0 is "bad service", bit 2 is "no connection
6785 * available", bit 4 is "service down", and bit 6 is "server
6786 * has a broadcast message waiting for the client".
6788 * Should it be displayed in hex, and should those bits (and any
6789 * other bits with significance) be displayed as bitfields
6792 { &hf_ncp_connection_status,
6793 { "Connection Status", "ncp.connection_status", FT_UINT8, BASE_DEC, VALS(connection_status_vals), 0x0, NULL, HFILL }},
6795 { &hf_ncp_req_frame_num,
6796 { "Response to Request in Frame Number", "ncp.req_frame_num", FT_FRAMENUM, BASE_NONE, NULL, 0x0, NULL, HFILL }},
6798 { &hf_ncp_req_frame_time,
6799 { "Time from Request", "ncp.time", FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0, "Time between request and response in seconds", HFILL }},
6802 { "NDS Return Flags", "ncp.nds_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
6804 { &hf_nds_reply_depth,
6805 { "Distance from Root", "ncp.ndsdepth", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
6807 { &hf_nds_reply_rev,
6808 { "NDS Revision", "ncp.ndsrev", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
6810 { &hf_nds_reply_flags,
6811 { "Flags", "ncp.ndsflags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
6814 { "NDS Parameter Type", "ncp.p1type", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
6816 { &hf_nds_uint32value,
6817 { "NDS Value", "ncp.uint32value", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
6820 { "Typeless", "ncp.nds_bit1", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
6823 { "All Containers", "ncp.nds_bit2", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
6826 { "Slashed", "ncp.nds_bit3", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
6829 { "Dotted", "ncp.nds_bit4", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
6832 { "Tuned", "ncp.nds_bit5", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
6835 { "Not Defined", "ncp.nds_bit6", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
6838 { "Not Defined", "ncp.nds_bit7", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
6841 { "Not Defined", "ncp.nds_bit8", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
6844 { "Not Defined", "ncp.nds_bit9", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
6847 { "Not Defined", "ncp.nds_bit10", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
6850 { "Not Defined", "ncp.nds_bit11", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
6853 { "Not Defined", "ncp.nds_bit12", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
6856 { "Not Defined", "ncp.nds_bit13", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
6859 { "Not Defined", "ncp.nds_bit14", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
6862 { "Not Defined", "ncp.nds_bit15", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
6865 { "Not Defined", "ncp.nds_bit16", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
6868 { "Output Flags", "ncp.bit1outflags", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
6871 { "Entry ID", "ncp.bit2outflags", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
6874 { "Replica State", "ncp.bit3outflags", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
6877 { "Modification Timestamp", "ncp.bit4outflags", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
6880 { "Purge Time", "ncp.bit5outflags", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
6883 { "Local Partition ID", "ncp.bit6outflags", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
6886 { "Distinguished Name", "ncp.bit7outflags", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
6889 { "Replica Type", "ncp.bit8outflags", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
6892 { "Partition Busy", "ncp.bit9outflags", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
6894 { &hf_bit10outflags,
6895 { "Not Defined", "ncp.bit10outflags", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
6897 { &hf_bit11outflags,
6898 { "Not Defined", "ncp.bit11outflags", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
6900 { &hf_bit12outflags,
6901 { "Not Defined", "ncp.bit12outflags", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
6903 { &hf_bit13outflags,
6904 { "Not Defined", "ncp.bit13outflags", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
6906 { &hf_bit14outflags,
6907 { "Not Defined", "ncp.bit14outflags", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
6909 { &hf_bit15outflags,
6910 { "Not Defined", "ncp.bit15outflags", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
6912 { &hf_bit16outflags,
6913 { "Not Defined", "ncp.bit16outflags", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
6916 { "Entry ID", "ncp.bit1nflags", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
6919 { "Readable", "ncp.bit2nflags", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
6922 { "Writeable", "ncp.bit3nflags", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
6925 { "Master", "ncp.bit4nflags", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
6928 { "Create ID", "ncp.bit5nflags", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
6931 { "Walk Tree", "ncp.bit6nflags", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
6934 { "Dereference Alias", "ncp.bit7nflags", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
6937 { "Not Defined", "ncp.bit8nflags", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
6940 { "Not Defined", "ncp.bit9nflags", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
6943 { "Not Defined", "ncp.bit10nflags", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
6946 { "Not Defined", "ncp.bit11nflags", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
6949 { "Not Defined", "ncp.bit12nflags", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
6952 { "Not Defined", "ncp.bit13nflags", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
6955 { "Prefer Referrals", "ncp.bit14nflags", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
6958 { "Prefer Only Referrals", "ncp.bit15nflags", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
6961 { "Not Defined", "ncp.bit16nflags", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
6964 { "Typeless", "ncp.bit1rflags", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
6967 { "Slashed", "ncp.bit2rflags", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
6970 { "Dotted", "ncp.bit3rflags", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
6973 { "Tuned", "ncp.bit4rflags", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
6976 { "Not Defined", "ncp.bit5rflags", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
6979 { "Not Defined", "ncp.bit6rflags", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
6982 { "Not Defined", "ncp.bit7rflags", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
6985 { "Not Defined", "ncp.bit8rflags", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
6988 { "Not Defined", "ncp.bit9rflags", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
6991 { "Not Defined", "ncp.bit10rflags", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
6994 { "Not Defined", "ncp.bit11rflags", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
6997 { "Not Defined", "ncp.bit12rflags", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7000 { "Not Defined", "ncp.bit13rflags", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7003 { "Not Defined", "ncp.bit14rflags", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7006 { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7009 { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7012 { "Alias Entry", "ncp.bit1eflags", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7015 { "Partition Root", "ncp.bit2eflags", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7018 { "Container Entry", "ncp.bit3eflags", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7021 { "Container Alias", "ncp.bit4eflags", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7024 { "Matches List Filter", "ncp.bit5eflags", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7027 { "Reference Entry", "ncp.bit6eflags", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7030 { "40x Reference Entry", "ncp.bit7eflags", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7033 { "Back Linked", "ncp.bit8eflags", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7036 { "New Entry", "ncp.bit9eflags", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7039 { "Temporary Reference", "ncp.bit10eflags", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7042 { "Audited", "ncp.bit11eflags", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7045 { "Entry Not Present", "ncp.bit12eflags", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7048 { "Entry Verify CTS", "ncp.bit13eflags", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7051 { "Entry Damaged", "ncp.bit14eflags", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7054 { "Not Defined", "ncp.bit15rflags", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7057 { "Not Defined", "ncp.bit16rflags", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7059 { &hf_bit1infoflagsl,
7060 { "Output Flags", "ncp.bit1infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7062 { &hf_bit2infoflagsl,
7063 { "Entry ID", "ncp.bit2infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7065 { &hf_bit3infoflagsl,
7066 { "Entry Flags", "ncp.bit3infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7068 { &hf_bit4infoflagsl,
7069 { "Subordinate Count", "ncp.bit4infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7071 { &hf_bit5infoflagsl,
7072 { "Modification Time", "ncp.bit5infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7074 { &hf_bit6infoflagsl,
7075 { "Modification Timestamp", "ncp.bit6infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7077 { &hf_bit7infoflagsl,
7078 { "Creation Timestamp", "ncp.bit7infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7080 { &hf_bit8infoflagsl,
7081 { "Partition Root ID", "ncp.bit8infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7083 { &hf_bit9infoflagsl,
7084 { "Parent ID", "ncp.bit9infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7086 { &hf_bit10infoflagsl,
7087 { "Revision Count", "ncp.bit10infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7089 { &hf_bit11infoflagsl,
7090 { "Replica Type", "ncp.bit11infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7092 { &hf_bit12infoflagsl,
7093 { "Base Class", "ncp.bit12infoflagsl", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7095 { &hf_bit13infoflagsl,
7096 { "Relative Distinguished Name", "ncp.bit13infoflagsl", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7098 { &hf_bit14infoflagsl,
7099 { "Distinguished Name", "ncp.bit14infoflagsl", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7101 { &hf_bit15infoflagsl,
7102 { "Root Distinguished Name", "ncp.bit15infoflagsl", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7104 { &hf_bit16infoflagsl,
7105 { "Parent Distinguished Name", "ncp.bit16infoflagsl", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7107 { &hf_bit1infoflagsh,
7108 { "Purge Time", "ncp.bit1infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7110 { &hf_bit2infoflagsh,
7111 { "Dereference Base Class", "ncp.bit2infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7113 { &hf_bit3infoflagsh,
7114 { "Not Defined", "ncp.bit3infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7116 { &hf_bit4infoflagsh,
7117 { "Not Defined", "ncp.bit4infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7119 { &hf_bit5infoflagsh,
7120 { "Not Defined", "ncp.bit5infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7122 { &hf_bit6infoflagsh,
7123 { "Not Defined", "ncp.bit6infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7125 { &hf_bit7infoflagsh,
7126 { "Not Defined", "ncp.bit7infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7128 { &hf_bit8infoflagsh,
7129 { "Not Defined", "ncp.bit8infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7131 { &hf_bit9infoflagsh,
7132 { "Not Defined", "ncp.bit9infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7134 { &hf_bit10infoflagsh,
7135 { "Not Defined", "ncp.bit10infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7137 { &hf_bit11infoflagsh,
7138 { "Not Defined", "ncp.bit11infoflagsh", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7140 { &hf_bit12infoflagsh,
7141 { "Not Defined", "ncp.bit12infoflagshs", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7143 { &hf_bit13infoflagsh,
7144 { "Not Defined", "ncp.bit13infoflagsh", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7146 { &hf_bit14infoflagsh,
7147 { "Not Defined", "ncp.bit14infoflagsh", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7149 { &hf_bit15infoflagsh,
7150 { "Not Defined", "ncp.bit15infoflagsh", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7152 { &hf_bit16infoflagsh,
7153 { "Not Defined", "ncp.bit16infoflagsh", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7156 { "List Typeless", "ncp.bit1lflags", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7159 { "List Containers", "ncp.bit2lflags", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7162 { "List Slashed", "ncp.bit3lflags", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7165 { "List Dotted", "ncp.bit4lflags", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7168 { "Dereference Alias", "ncp.bit5lflags", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7171 { "List All Containers", "ncp.bit6lflags", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7174 { "List Obsolete", "ncp.bit7lflags", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7177 { "List Tuned Output", "ncp.bit8lflags", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7180 { "List External Reference", "ncp.bit9lflags", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7183 { "Not Defined", "ncp.bit10lflags", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7186 { "Not Defined", "ncp.bit11lflags", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7189 { "Not Defined", "ncp.bit12lflags", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7192 { "Not Defined", "ncp.bit13lflags", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7195 { "Not Defined", "ncp.bit14lflags", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7198 { "Not Defined", "ncp.bit15lflags", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7201 { "Not Defined", "ncp.bit16lflags", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7204 { "Output Flags", "ncp.bit1l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7207 { "Entry ID", "ncp.bit2l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7210 { "Replica State", "ncp.bit3l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7213 { "Modification Timestamp", "ncp.bit4l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7216 { "Purge Time", "ncp.bit5l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7219 { "Local Partition ID", "ncp.bit6l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7222 { "Distinguished Name", "ncp.bit7l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7225 { "Replica Type", "ncp.bit8l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7228 { "Partition Busy", "ncp.bit9l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7230 { &hf_bit10l1flagsl,
7231 { "Not Defined", "ncp.bit10l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7233 { &hf_bit11l1flagsl,
7234 { "Not Defined", "ncp.bit11l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7236 { &hf_bit12l1flagsl,
7237 { "Not Defined", "ncp.bit12l1flagsl", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7239 { &hf_bit13l1flagsl,
7240 { "Not Defined", "ncp.bit13l1flagsl", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7242 { &hf_bit14l1flagsl,
7243 { "Not Defined", "ncp.bit14l1flagsl", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7245 { &hf_bit15l1flagsl,
7246 { "Not Defined", "ncp.bit15l1flagsl", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7248 { &hf_bit16l1flagsl,
7249 { "Not Defined", "ncp.bit16l1flagsl", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7252 { "Not Defined", "ncp.bit1l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7255 { "Not Defined", "ncp.bit2l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7258 { "Not Defined", "ncp.bit3l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7261 { "Not Defined", "ncp.bit4l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7264 { "Not Defined", "ncp.bit5l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7267 { "Not Defined", "ncp.bit6l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7270 { "Not Defined", "ncp.bit7l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7273 { "Not Defined", "ncp.bit8l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7276 { "Not Defined", "ncp.bit9l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7278 { &hf_bit10l1flagsh,
7279 { "Not Defined", "ncp.bit10l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7281 { &hf_bit11l1flagsh,
7282 { "Not Defined", "ncp.bit11l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7284 { &hf_bit12l1flagsh,
7285 { "Not Defined", "ncp.bit12l1flagsh", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7287 { &hf_bit13l1flagsh,
7288 { "Not Defined", "ncp.bit13l1flagsh", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7290 { &hf_bit14l1flagsh,
7291 { "Not Defined", "ncp.bit14l1flagsh", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7293 { &hf_bit15l1flagsh,
7294 { "Not Defined", "ncp.bit15l1flagsh", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7296 { &hf_bit16l1flagsh,
7297 { "Not Defined", "ncp.bit16l1flagsh", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7300 { "Naming", "ncp.bit1vflags", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7303 { "Base Class", "ncp.bit2vflags", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7306 { "Present", "ncp.bit3vflags", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7309 { "Value Damaged", "ncp.bit4vflags", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7312 { "Not Defined", "ncp.bit5vflags", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7315 { "Not Defined", "ncp.bit6vflags", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7318 { "Not Defined", "ncp.bit7vflags", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7321 { "Not Defined", "ncp.bit8vflags", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7324 { "Not Defined", "ncp.bit9vflags", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7327 { "Not Defined", "ncp.bit10vflags", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7330 { "Not Defined", "ncp.bit11vflags", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7333 { "Not Defined", "ncp.bit12vflags", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7336 { "Not Defined", "ncp.bit13vflags", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7339 { "Not Defined", "ncp.bit14vflags", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7342 { "Not Defined", "ncp.bit15vflags", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7345 { "Not Defined", "ncp.bit16vflags", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7348 { "Container", "ncp.bit1cflags", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7351 { "Effective", "ncp.bit2cflags", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7354 { "Class Definition Cannot be Removed", "ncp.bit3cflags", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7357 { "Ambiguous Naming", "ncp.bit4cflags", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7360 { "Ambiguous Containment", "ncp.bit5cflags", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7363 { "Auxiliary", "ncp.bit6cflags", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7366 { "Operational", "ncp.bit7cflags", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7369 { "Sparse Required", "ncp.bit8cflags", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7372 { "Sparse Operational", "ncp.bit9cflags", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7375 { "Not Defined", "ncp.bit10cflags", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7378 { "Not Defined", "ncp.bit11cflags", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7381 { "Not Defined", "ncp.bit12cflags", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7384 { "Not Defined", "ncp.bit13cflags", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7387 { "Not Defined", "ncp.bit14cflags", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7390 { "Not Defined", "ncp.bit15cflags", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7393 { "Not Defined", "ncp.bit16cflags", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7396 { "Single Valued", "ncp.bit1acflags", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7399 { "Sized", "ncp.bit2acflags", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7402 { "Non-Removable", "ncp.bit3acflags", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7405 { "Read Only", "ncp.bit4acflags", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7408 { "Hidden", "ncp.bit5acflags", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7411 { "String", "ncp.bit6acflags", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7414 { "Synchronize Immediate", "ncp.bit7acflags", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7417 { "Public Read", "ncp.bit8acflags", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7420 { "Server Read", "ncp.bit9acflags", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7423 { "Write Managed", "ncp.bit10acflags", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7426 { "Per Replica", "ncp.bit11acflags", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7429 { "Never Schedule Synchronization", "ncp.bit12acflags", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7432 { "Operational", "ncp.bit13acflags", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7435 { "Not Defined", "ncp.bit14acflags", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7438 { "Not Defined", "ncp.bit15acflags", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7441 { "Not Defined", "ncp.bit16acflags", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7444 { &hf_nds_reply_error,
7445 { "NDS Error", "ncp.ndsreplyerror", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7448 { "Network","ncp.ndsnet", FT_IPXNET, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7451 { "Node", "ncp.ndsnode", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7454 { "Socket", "ncp.ndssocket", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7457 { "Address Referral", "ncp.ipref", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7460 { "Address Referral", "ncp.udpref", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7463 { "Address Referral", "ncp.tcpref", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7465 { &hf_referral_record,
7466 { "Referral Record", "ncp.ref_rec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7468 { &hf_referral_addcount,
7469 { "Address Count", "ncp.ref_addcount", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7472 { "Port", "ncp.ndsport", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7475 { "Attribute Name", "ncp.mv_string", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7478 { "Attribute Syntax", "ncp.nds_syntax", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7481 { "Value", "ncp.value_string", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7483 { &hf_nds_stream_name,
7484 { "Stream Name", "ncp.nds_stream_name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7486 { &hf_nds_buffer_size,
7487 { "NDS Reply Buffer Size", "ncp.nds_reply_buf", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7490 { "NDS Version", "ncp.nds_ver", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7493 { "Flags", "ncp.nds_nflags", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7496 { "Request Flags", "ncp.nds_rflags", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7499 { "Entry Flags", "ncp.nds_eflags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7502 { "Scope", "ncp.nds_scope", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7505 { "Name", "ncp.nds_name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7507 { &hf_nds_name_type,
7508 { "Name Type", "ncp.nds_name_type", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7510 { &hf_nds_comm_trans,
7511 { "Communications Transport", "ncp.nds_comm_trans", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7513 { &hf_nds_tree_trans,
7514 { "Tree Walker Transport", "ncp.nds_tree_trans", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7516 { &hf_nds_iteration,
7517 { "Iteration Handle", "ncp.nds_iteration", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7520 { "Iterator", "ncp.nds_iterator", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7522 { &hf_nds_file_handle,
7523 { "File Handle", "ncp.nds_file_handle", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7525 { &hf_nds_file_size,
7526 { "File Size", "ncp.nds_file_size", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7529 { "NDS EID", "ncp.nds_eid", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7532 { "Distance object is from Root", "ncp.nds_depth", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7534 { &hf_nds_info_type,
7535 { "Info Type", "ncp.nds_info_type", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7537 { &hf_nds_class_def_type,
7538 { "Class Definition Type", "ncp.nds_class_def_type", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7541 { "All Attributes", "ncp.nds_all_attr", FT_UINT32, BASE_DEC, NULL, 0x0, "Return all Attributes?", HFILL }},
7543 { &hf_nds_return_all_classes,
7544 { "All Classes", "ncp.nds_return_all_classes", FT_STRING, BASE_NONE, NULL, 0x0, "Return all Classes?", HFILL }},
7546 { &hf_nds_req_flags,
7547 { "Request Flags", "ncp.nds_req_flags", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7550 { "Attributes", "ncp.nds_attributes", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7553 { "Classes", "ncp.nds_classes", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7556 { "CRC", "ncp.nds_crc", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7558 { &hf_nds_referrals,
7559 { "Referrals", "ncp.nds_referrals", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7561 { &hf_nds_result_flags,
7562 { "Result Flags", "ncp.nds_result_flags", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7564 { &hf_nds_stream_flags,
7565 { "Streams Flags", "ncp.nds_stream_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7567 { &hf_nds_tag_string,
7568 { "Tags", "ncp.nds_tags", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7571 { "Bytes", "ncp.value_bytes", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7574 { "Replica Type", "ncp.rtype", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7576 { &hf_replica_state,
7577 { "Replica State", "ncp.rstate", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7580 { "Replica Number", "ncp.rnum", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7583 { "Event", "ncp.revent", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7585 { &hf_replica_number,
7586 { "Replica Number", "ncp.rnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7589 { "Minimum NDS Version", "ncp.min_nds_version", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7591 { &hf_nds_ver_include,
7592 { "Include NDS Version", "ncp.inc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7594 { &hf_nds_ver_exclude,
7595 { "Exclude NDS Version", "ncp.exc_nds_ver", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7598 { "Input Entry Specifier", "ncp.nds_es", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7601 { "Entry Specifier Type", "ncp.nds_es_type", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7604 { "RDN", "ncp.nds_rdn", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7607 { "Delimiter", "ncp.nds_delim", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7609 { &hf_nds_dn_output_type,
7610 { "Output Entry Specifier Type", "ncp.nds_out_es_type", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7612 { &hf_nds_nested_output_type,
7613 { "Nested Output Entry Specifier Type", "ncp.nds_nested_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7615 { &hf_nds_output_delimiter,
7616 { "Output Delimiter", "ncp.nds_out_delimiter", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7618 { &hf_nds_output_entry_specifier,
7619 { "Output Entry Specifier", "ncp.nds_out_es", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7622 { "Entry Specifier Value", "ncp.nds_es_value", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7625 { "RDN Count", "ncp.nds_es_rdn_count", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7627 { &hf_nds_replica_num,
7628 { "Replica Number", "ncp.nds_replica_num", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7631 { "Seconds", "ncp.nds_es_seconds", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0, NULL, HFILL }},
7633 { &hf_nds_event_num,
7634 { "Event Number", "ncp.nds_event_num", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7636 { &hf_nds_compare_results,
7637 { "Compare Results", "ncp.nds_compare_results", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7640 { "Parent ID", "ncp.nds_parent", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7642 { &hf_nds_name_filter,
7643 { "Name Filter", "ncp.nds_name_filter", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7645 { &hf_nds_class_filter,
7646 { "Class Filter", "ncp.nds_class_filter", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7648 { &hf_nds_time_filter,
7649 { "Time Filter", "ncp.nds_time_filter", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7651 { &hf_nds_partition_root_id,
7652 { "Partition Root ID", "ncp.nds_partition_root_id", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7655 { "Replicas", "ncp.nds_replicas", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7658 { "Purge Time", "ncp.nds_purge", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0, NULL, HFILL }},
7660 { &hf_nds_local_partition,
7661 { "Local Partition ID", "ncp.nds_local_partition", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7663 { &hf_partition_busy,
7664 { "Partition Busy", "ncp.nds_partition_busy", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7666 { &hf_nds_number_of_changes,
7667 { "Number of Attribute Changes", "ncp.nds_number_of_changes", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7670 { "Subordinate Count", "ncp.sub_count", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7673 { "Revision Count", "ncp.nds_rev_count", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7675 { &hf_nds_base_class,
7676 { "Base Class", "ncp.nds_base_class", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7678 { &hf_nds_relative_dn,
7679 { "Relative Distinguished Name", "ncp.nds_relative_dn", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7682 { "Root Distinguished Name", "ncp.nds_root_dn", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7684 { &hf_nds_parent_dn,
7685 { "Parent Distinguished Name", "ncp.nds_parent_dn", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7688 { "Dereference Base Class", "ncp.nds_deref_base", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7691 { "Base Class", "ncp.nds_base", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7694 { "Super Class", "ncp.nds_super", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7696 { &hf_nds_entry_info,
7697 { "Entry Information", "ncp.nds_entry_info", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7699 { &hf_nds_privileges,
7700 { "Privileges", "ncp.nds_privileges", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7702 { &hf_nds_compare_attributes,
7703 { "Compare Attributes?", "ncp.nds_compare_attributes", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7705 { &hf_nds_read_attribute,
7706 { "Read Attribute?", "ncp.nds_read_attribute", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7708 { &hf_nds_write_add_delete_attribute,
7709 { "Write, Add, Delete Attribute?", "ncp.nds_write_add_delete_attribute", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7711 { &hf_nds_add_delete_self,
7712 { "Add/Delete Self?", "ncp.nds_add_delete_self", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7714 { &hf_nds_privilege_not_defined,
7715 { "Privilege Not defined", "ncp.nds_privilege_not_defined", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7717 { &hf_nds_supervisor,
7718 { "Supervisor?", "ncp.nds_supervisor", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7720 { &hf_nds_inheritance_control,
7721 { "Inheritance?", "ncp.nds_inheritance_control", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7723 { &hf_nds_browse_entry,
7724 { "Browse Entry?", "ncp.nds_browse_entry", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7726 { &hf_nds_add_entry,
7727 { "Add Entry?", "ncp.nds_add_entry", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7729 { &hf_nds_delete_entry,
7730 { "Delete Entry?", "ncp.nds_delete_entry", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7732 { &hf_nds_rename_entry,
7733 { "Rename Entry?", "ncp.nds_rename_entry", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7735 { &hf_nds_supervisor_entry,
7736 { "Supervisor?", "ncp.nds_supervisor_entry", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7738 { &hf_nds_entry_privilege_not_defined,
7739 { "Privilege Not Defined", "ncp.nds_entry_privilege_not_defined", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7742 { "Value Flags", "ncp.nds_vflags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7744 { &hf_nds_value_len,
7745 { "Value Length", "ncp.nds_vlength", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7748 { "Class Flags", "ncp.nds_cflags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7751 { "ASN.1 ID", "ncp.nds_asn1", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7754 { "Attribute Constraint Flags", "ncp.nds_acflags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7757 { "Upper Limit Value", "ncp.nds_upper", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7760 { "Lower Limit Value", "ncp.nds_lower", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7762 { &hf_nds_trustee_dn,
7763 { "Trustee Distinguished Name", "ncp.nds_trustee_dn", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7765 { &hf_nds_attribute_dn,
7766 { "Attribute Name", "ncp.nds_attribute_dn", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7769 { "Access Control Lists to Add", "ncp.nds_acl_add", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7772 { "Access Control Lists to Delete", "ncp.nds_acl_del", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7775 { "Attribute to Add", "ncp.nds_att_add", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7778 { "Attribute to Delete", "ncp.nds_att_del", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7781 { "Delete Original RDN", "ncp.nds_keep", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7784 { "New Relative Distinguished Name", "ncp.nds_new_rdn", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7786 { &hf_nds_time_delay,
7787 { "Time Delay", "ncp.nds_time_delay", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
7789 { &hf_nds_root_name,
7790 { "Root Most Object Name", "ncp.nds_root_name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7792 { &hf_nds_new_part_id,
7793 { "New Partition Root ID", "ncp.nds_new_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7795 { &hf_nds_child_part_id,
7796 { "Child Partition Root ID", "ncp.nds_child_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7798 { &hf_nds_master_part_id,
7799 { "Master Partition Root ID", "ncp.nds_master_part_id", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
7801 { &hf_nds_target_name,
7802 { "Target Server Name", "ncp.nds_target_dn", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
7805 { &hf_bit1pingflags1,
7806 { "Supported Fields", "ncp.bit1pingflags1", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7808 { &hf_bit2pingflags1,
7809 { "Depth", "ncp.bit2pingflags1", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7811 { &hf_bit3pingflags1,
7812 { "Build Number", "ncp.bit3pingflags1", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7814 { &hf_bit4pingflags1,
7815 { "Flags", "ncp.bit4pingflags1", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7817 { &hf_bit5pingflags1,
7818 { "Verification Flags", "ncp.bit5pingflags1", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7820 { &hf_bit6pingflags1,
7821 { "Letter Version", "ncp.bit6pingflags1", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7823 { &hf_bit7pingflags1,
7824 { "OS Version", "ncp.bit7pingflags1", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7826 { &hf_bit8pingflags1,
7827 { "Not Defined", "ncp.bit8pingflags1", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7829 { &hf_bit9pingflags1,
7830 { "License Flags", "ncp.bit9pingflags1", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7832 { &hf_bit10pingflags1,
7833 { "DS Time", "ncp.bit10pingflags1", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7835 { &hf_bit11pingflags1,
7836 { "Server Time", "ncp.bit11pingflags1", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7838 { &hf_bit12pingflags1,
7839 { "Create Time", "ncp.bit12pingflags1", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7841 { &hf_bit13pingflags1,
7842 { "Not Defined", "ncp.bit13pingflags1", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7844 { &hf_bit14pingflags1,
7845 { "Not Defined", "ncp.bit14pingflags1", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7847 { &hf_bit15pingflags1,
7848 { "Not Defined", "ncp.bit15pingflags1", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7850 { &hf_bit16pingflags1,
7851 { "Not Defined", "ncp.bit16pingflags1", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7853 { &hf_bit1pingflags2,
7854 { "Sap Name", "ncp.bit1pingflags2", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7856 { &hf_bit2pingflags2,
7857 { "Tree Name", "ncp.bit2pingflags2", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7859 { &hf_bit3pingflags2,
7860 { "OS Name", "ncp.bit3pingflags2", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7862 { &hf_bit4pingflags2,
7863 { "Hardware Name", "ncp.bit4pingflags2", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7865 { &hf_bit5pingflags2,
7866 { "Vendor Name", "ncp.bit5pingflags2", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7868 { &hf_bit6pingflags2,
7869 { "Not Defined", "ncp.bit6pingflags2", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7871 { &hf_bit7pingflags2,
7872 { "Not Defined", "ncp.bit7pingflags2", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7874 { &hf_bit8pingflags2,
7875 { "Not Defined", "ncp.bit8pingflags2", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7877 { &hf_bit9pingflags2,
7878 { "Not Defined", "ncp.bit9pingflags2", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7880 { &hf_bit10pingflags2,
7881 { "Not Defined", "ncp.bit10pingflags2", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7883 { &hf_bit11pingflags2,
7884 { "Not Defined", "ncp.bit11pingflags2", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7886 { &hf_bit12pingflags2,
7887 { "Not Defined", "ncp.bit12pingflags2", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7889 { &hf_bit13pingflags2,
7890 { "Not Defined", "ncp.bit13pingflags2", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7892 { &hf_bit14pingflags2,
7893 { "Not Defined", "ncp.bit14pingflags2", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7895 { &hf_bit15pingflags2,
7896 { "Not Defined", "ncp.bit15pingflags2", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7898 { &hf_bit16pingflags2,
7899 { "Not Defined", "ncp.bit16pingflags2", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7901 { &hf_bit1pingpflags1,
7902 { "Root Most Master Replica", "ncp.bit1pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7904 { &hf_bit2pingpflags1,
7905 { "Is Time Synchronized?", "ncp.bit2pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7907 { &hf_bit3pingpflags1,
7908 { "Is Time Valid?", "ncp.bit3pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7910 { &hf_bit4pingpflags1,
7911 { "Is DS Time Synchronized?", "ncp.bit4pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7913 { &hf_bit5pingpflags1,
7914 { "Does Agent Have All Replicas?", "ncp.bit5pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7916 { &hf_bit6pingpflags1,
7917 { "Not Defined", "ncp.bit6pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7919 { &hf_bit7pingpflags1,
7920 { "Not Defined", "ncp.bit7pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7922 { &hf_bit8pingpflags1,
7923 { "Not Defined", "ncp.bit8pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7925 { &hf_bit9pingpflags1,
7926 { "Not Defined", "ncp.bit9pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7928 { &hf_bit10pingpflags1,
7929 { "Not Defined", "ncp.bit10pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7931 { &hf_bit11pingpflags1,
7932 { "Not Defined", "ncp.bit11pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7934 { &hf_bit12pingpflags1,
7935 { "Not Defined", "ncp.bit12pingpflags1", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7937 { &hf_bit13pingpflags1,
7938 { "Not Defined", "ncp.bit13pingpflags1", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7940 { &hf_bit14pingpflags1,
7941 { "Not Defined", "ncp.bit14pingpflags1", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7943 { &hf_bit15pingpflags1,
7944 { "Not Defined", "ncp.bit15pingpflags1", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7946 { &hf_bit16pingpflags1,
7947 { "Not Defined", "ncp.bit16pingpflags1", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7949 { &hf_bit1pingvflags1,
7950 { "Checksum", "ncp.bit1pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
7952 { &hf_bit2pingvflags1,
7953 { "CRC32", "ncp.bit2pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
7955 { &hf_bit3pingvflags1,
7956 { "Not Defined", "ncp.bit3pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
7958 { &hf_bit4pingvflags1,
7959 { "Not Defined", "ncp.bit4pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
7961 { &hf_bit5pingvflags1,
7962 { "Not Defined", "ncp.bit5pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
7964 { &hf_bit6pingvflags1,
7965 { "Not Defined", "ncp.bit6pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
7967 { &hf_bit7pingvflags1,
7968 { "Not Defined", "ncp.bit7pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
7970 { &hf_bit8pingvflags1,
7971 { "Not Defined", "ncp.bit8pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
7973 { &hf_bit9pingvflags1,
7974 { "Not Defined", "ncp.bit9pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
7976 { &hf_bit10pingvflags1,
7977 { "Not Defined", "ncp.bit10pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
7979 { &hf_bit11pingvflags1,
7980 { "Not Defined", "ncp.bit11pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
7982 { &hf_bit12pingvflags1,
7983 { "Not Defined", "ncp.bit12pingvflags1", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
7985 { &hf_bit13pingvflags1,
7986 { "Not Defined", "ncp.bit13pingvflags1", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
7988 { &hf_bit14pingvflags1,
7989 { "Not Defined", "ncp.bit14pingvflags1", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
7991 { &hf_bit15pingvflags1,
7992 { "Not Defined", "ncp.bit15pingvflags1", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
7994 { &hf_bit16pingvflags1,
7995 { "Not Defined", "ncp.bit16pingvflags1", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
7997 { &hf_nds_letter_ver,
7998 { "Letter Version", "ncp.nds_letter_ver", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8000 { &hf_nds_os_majver,
8001 { "OS Major Version", "ncp.nds_os_majver", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
8003 { &hf_nds_os_minver,
8004 { "OS Minor Version", "ncp.nds_os_minver", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
8006 { &hf_nds_lic_flags,
8007 { "License Flags", "ncp.nds_lic_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8010 { "DS Time", "ncp.nds_ds_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0, NULL, HFILL }},
8013 { "Server Time", "ncp.nds_svr_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0, NULL, HFILL }},
8016 { "Agent Create Time", "ncp.nds_crt_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0, NULL, HFILL }},
8018 { &hf_nds_ping_version,
8019 { "Ping Version", "ncp.nds_ping_version", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
8021 { &hf_nds_search_scope,
8022 { "Search Scope", "ncp.nds_search_scope", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
8024 { &hf_nds_num_objects,
8025 { "Number of Objects to Search", "ncp.nds_num_objects", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8029 { "Names", "ncp.bit1siflags", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
8032 { "Names and Values", "ncp.bit2siflags", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
8035 { "Effective Privileges", "ncp.bit3siflags", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
8038 { "Value Info", "ncp.bit4siflags", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
8041 { "Abbreviated Value", "ncp.bit5siflags", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
8044 { "Not Defined", "ncp.bit6siflags", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
8047 { "Not Defined", "ncp.bit7siflags", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
8050 { "Not Defined", "ncp.bit8siflags", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
8053 { "Expanded Class", "ncp.bit9siflags", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
8056 { "Not Defined", "ncp.bit10siflags", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
8059 { "Not Defined", "ncp.bit11siflags", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
8062 { "Not Defined", "ncp.bit12siflags", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
8065 { "Not Defined", "ncp.bit13siflags", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
8068 { "Not Defined", "ncp.bit14siflags", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
8071 { "Not Defined", "ncp.bit15siflags", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
8074 { "Not Defined", "ncp.bit16siflags", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
8076 { &hf_nds_segment_overlap,
8077 { "Segment overlap", "nds.segment.overlap", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "Segment overlaps with other segments", HFILL }},
8079 { &hf_nds_segment_overlap_conflict,
8080 { "Conflicting data in segment overlap", "nds.segment.overlap.conflict", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "Overlapping segments contained conflicting data", HFILL }},
8082 { &hf_nds_segment_multiple_tails,
8083 { "Multiple tail segments found", "nds.segment.multipletails", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "Several tails were found when desegmenting the packet", HFILL }},
8085 { &hf_nds_segment_too_long_segment,
8086 { "Segment too long", "nds.segment.toolongsegment", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "Segment contained data past end of packet", HFILL }},
8088 { &hf_nds_segment_error,
8089 { "Desegmentation error", "nds.segment.error", FT_FRAMENUM, BASE_NONE, NULL, 0x0, "Desegmentation error due to illegal segments", HFILL }},
8091 { &hf_nds_segment_count,
8092 { "Segment count", "nds.segment.count", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
8094 { &hf_nds_reassembled_length,
8095 { "Reassembled NDS length", "nds.reassembled.length", FT_UINT32, BASE_DEC, NULL, 0x0, "The total length of the reassembled payload", HFILL }},
8098 { "NDS Fragment", "nds.fragment", FT_FRAMENUM, BASE_NONE, NULL, 0x0, "NDPS Fragment", HFILL }},
8101 { "NDS Fragments", "nds.fragments", FT_NONE, BASE_NONE, NULL, 0x0, "NDPS Fragments", HFILL }},
8103 { &hf_nds_verb2b_req_flags,
8104 { "Flags", "ncp.nds_verb2b_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8106 { &hf_ncp_ip_address,
8107 { "IP Address", "ncp.ip_addr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL }},
8109 { &hf_ncp_copyright,
8110 { "Copyright", "ncp.copyright", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
8113 { "Not Defined", "ncp.nds_prot_bit1", FT_BOOLEAN, 16, NULL, 0x00000001, NULL, HFILL }},
8116 { "Not Defined", "ncp.nds_prot_bit2", FT_BOOLEAN, 16, NULL, 0x00000002, NULL, HFILL }},
8119 { "Not Defined", "ncp.nds_prot_bit3", FT_BOOLEAN, 16, NULL, 0x00000004, NULL, HFILL }},
8122 { "Not Defined", "ncp.nds_prot_bit4", FT_BOOLEAN, 16, NULL, 0x00000008, NULL, HFILL }},
8125 { "Not Defined", "ncp.nds_prot_bit5", FT_BOOLEAN, 16, NULL, 0x00000010, NULL, HFILL }},
8128 { "Not Defined", "ncp.nds_prot_bit6", FT_BOOLEAN, 16, NULL, 0x00000020, NULL, HFILL }},
8131 { "Not Defined", "ncp.nds_prot_bit7", FT_BOOLEAN, 16, NULL, 0x00000040, NULL, HFILL }},
8134 { "Not Defined", "ncp.nds_prot_bit8", FT_BOOLEAN, 16, NULL, 0x00000080, NULL, HFILL }},
8137 { "Not Defined", "ncp.nds_prot_bit9", FT_BOOLEAN, 16, NULL, 0x00000100, NULL, HFILL }},
8139 { &hf_ndsprot10flag,
8140 { "Not Defined", "ncp.nds_prot_bit10", FT_BOOLEAN, 16, NULL, 0x00000200, NULL, HFILL }},
8142 { &hf_ndsprot11flag,
8143 { "Not Defined", "ncp.nds_prot_bit11", FT_BOOLEAN, 16, NULL, 0x00000400, NULL, HFILL }},
8145 { &hf_ndsprot12flag,
8146 { "Not Defined", "ncp.nds_prot_bit12", FT_BOOLEAN, 16, NULL, 0x00000800, NULL, HFILL }},
8148 { &hf_ndsprot13flag,
8149 { "Not Defined", "ncp.nds_prot_bit13", FT_BOOLEAN, 16, NULL, 0x00001000, NULL, HFILL }},
8151 { &hf_ndsprot14flag,
8152 { "Not Defined", "ncp.nds_prot_bit14", FT_BOOLEAN, 16, NULL, 0x00002000, NULL, HFILL }},
8154 { &hf_ndsprot15flag,
8155 { "Include CRC in NDS Header", "ncp.nds_prot_bit15", FT_BOOLEAN, 16, NULL, 0x00004000, NULL, HFILL }},
8157 { &hf_ndsprot16flag,
8158 { "Client is a Server", "ncp.nds_prot_bit16", FT_BOOLEAN, 16, NULL, 0x00008000, NULL, HFILL }},
8160 { &hf_nds_svr_dst_name,
8161 { "Server Distinguished Name", "ncp.nds_svr_dist_name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
8163 { &hf_nds_tune_mark,
8164 { "Tune Mark", "ncp.ndstunemark", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8166 { &hf_nds_create_time,
8167 { "NDS Creation Time", "ncp.ndscreatetime", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0, NULL, HFILL }},
8169 { &hf_srvr_param_string,
8170 { "Set Parameter Value", "ncp.srvr_param_string", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
8172 { &hf_srvr_param_number,
8173 { "Set Parameter Value", "ncp.srvr_param_string", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
8175 { &hf_srvr_param_boolean,
8176 { "Set Parameter Value", "ncp.srvr_param_boolean", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL }},
8178 { &hf_nds_number_of_items,
8179 { "Number of Items", "ncp.ndsitems", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
8181 { &hf_ncp_nds_iterverb,
8182 { "NDS Iteration Verb", "ncp.ndsiterverb", FT_UINT32, BASE_HEX, NULL /*VALS(iterator_subverbs)*/, 0x0, NULL, HFILL }},
8184 { &hf_iter_completion_code,
8185 { "Iteration Completion Code", "ncp.iter_completion_code", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8188 { "Iterator Object", "ncp.ndsiterobj", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8190 { &hf_iter_verb_completion_code,
8191 { "Completion Code", "ncp.iter_verb_completion_code", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8194 { "Iterator Answer", "ncp.iter_answer", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL }},
8197 { "Positionable", "ncp.iterpositionable", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL }},
8200 { "Number Skipped", "ncp.iternumskipped", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8203 { "Number to Skip", "ncp.iternumtoskip", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8206 { "Time Limit", "ncp.itertimelimit", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8209 { "Iterator Index", "ncp.iterindex", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8212 { "Number to Get", "ncp.iternumtoget", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8214 { &hf_ret_info_type,
8215 { "Return Information Type", "ncp.iterretinfotype", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8218 { "Data Size", "ncp.iterdatasize", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
8221 { "Number of Items", "ncp.itercount", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
8224 { "Maximum Entries", "ncp.itermaxentries", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8226 { &hf_move_position,
8227 { "Move Position", "ncp.itermoveposition", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8230 { "Iterator Copy", "ncp.itercopy", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8232 { &hf_iter_position,
8233 { "Iteration Position", "ncp.iterposition", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8236 { "Search Filter", "ncp.iter_search", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8239 { "Other Iteration", "ncp.iterother", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
8242 { "Object ID", "ncp.nds_oid", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
8248 # Print the registration code for the hf variables
8249 for var in sorted_vars:
8250 print "\t{ &%s," % (var.HFName())
8251 print "\t{ \"%s\", \"%s\", %s, %s, %s, 0x%x, NULL, HFILL }},\n" % \
8252 (var.Description(), var.DFilter(),
8253 var.WiresharkFType(), var.Display(), var.ValuesName(),
8259 print "\tstatic gint *ett[] = {"
8261 for ett in ett_list:
8262 print "\t\t&%s," % (ett,)
8267 proto_register_field_array(proto_ncp, hf, array_length(hf));"""
8271 proto_register_subtree_array(ett, array_length(ett));"""
8274 register_init_routine(&ncp_init_protocol);
8275 register_postseq_cleanup_routine(&ncp_postseq_cleanup);"""
8277 # End of proto_register_ncp2222()
8280 print '#include "packet-ncp2222.inc"'
8283 print "Usage: ncp2222.py -o output_file"
8287 global compcode_lists
8295 opts, args = getopt.getopt(sys.argv[1:], optstring)
8296 except getopt.error:
8299 for opt, arg in opts:
8308 if not out_filename:
8311 # Create the output file
8313 out_file = open(out_filename, "w")
8314 except IOError, err:
8315 sys.exit("Could not open %s for writing: %s" % (out_filename,
8318 # Set msg to current stdout
8321 # Set stdout to the output file
8322 sys.stdout = out_file
8324 msg.write("Processing NCP definitions...\n")
8325 # Run the code, and if we catch any exception,
8326 # erase the output file.
8328 compcode_lists = UniqueCollection('Completion Code Lists')
8329 ptvc_lists = UniqueCollection('PTVC Lists')
8336 msg.write("Defined %d NCP types.\n" % (len(packets),))
8339 traceback.print_exc(20, msg)
8342 except IOError, err:
8343 msg.write("Could not close %s: %s\n" % (out_filename, err))
8346 if os.path.exists(out_filename):
8347 os.remove(out_filename)
8348 except OSError, err:
8349 msg.write("Could not remove %s: %s\n" % (out_filename, err))
8355 def define_ncp2222():
8356 ##############################################################################
8357 # NCP Packets. Here I list functions and subfunctions in hexadecimal like the
8358 # NCP book (and I believe LanAlyzer does this too).
8359 # However, Novell lists these in decimal in their on-line documentation.
8360 ##############################################################################
8362 pkt = NCP(0x01, "File Set Lock", 'sync')
8365 pkt.CompletionCodes([0x0000])
8367 pkt = NCP(0x02, "File Release Lock", 'sync')
8370 pkt.CompletionCodes([0x0000, 0xff00])
8372 pkt = NCP(0x03, "Log File Exclusive", 'sync')
8373 pkt.Request( (12, 267), [
8374 rec( 7, 1, DirHandle ),
8375 rec( 8, 1, LockFlag ),
8376 rec( 9, 2, TimeoutLimit, BE ),
8377 rec( 11, (1, 256), FilePath ),
8380 pkt.CompletionCodes([0x0000, 0x8200, 0x9600, 0xfe0d, 0xff01])
8382 pkt = NCP(0x04, "Lock File Set", 'sync')
8384 rec( 7, 2, TimeoutLimit ),
8387 pkt.CompletionCodes([0x0000, 0xfe0d, 0xff01])
8389 pkt = NCP(0x05, "Release File", 'sync')
8390 pkt.Request( (9, 264), [
8391 rec( 7, 1, DirHandle ),
8392 rec( 8, (1, 256), FilePath ),
8395 pkt.CompletionCodes([0x0000, 0x9b00, 0x9c03, 0xff1a])
8397 pkt = NCP(0x06, "Release File Set", 'sync')
8399 rec( 7, 1, LockFlag ),
8402 pkt.CompletionCodes([0x0000])
8404 pkt = NCP(0x07, "Clear File", 'sync')
8405 pkt.Request( (9, 264), [
8406 rec( 7, 1, DirHandle ),
8407 rec( 8, (1, 256), FilePath ),
8410 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03,
8411 0xa100, 0xfd00, 0xff1a])
8413 pkt = NCP(0x08, "Clear File Set", 'sync')
8415 rec( 7, 1, LockFlag ),
8418 pkt.CompletionCodes([0x0000])
8420 pkt = NCP(0x09, "Log Logical Record", 'sync')
8421 pkt.Request( (11, 138), [
8422 rec( 7, 1, LockFlag ),
8423 rec( 8, 2, TimeoutLimit, BE ),
8424 rec( 10, (1, 128), LogicalRecordName ),
8425 ], info_str=(LogicalRecordName, "Log Logical Record: %s", ", %s"))
8427 pkt.CompletionCodes([0x0000, 0x9600, 0xfe0d, 0xff1a])
8429 pkt = NCP(0x0A, "Lock Logical Record Set", 'sync')
8431 rec( 7, 1, LockFlag ),
8432 rec( 8, 2, TimeoutLimit ),
8435 pkt.CompletionCodes([0x0000, 0xfe0d, 0xff1a])
8437 pkt = NCP(0x0B, "Clear Logical Record", 'sync')
8438 pkt.Request( (8, 135), [
8439 rec( 7, (1, 128), LogicalRecordName ),
8440 ], info_str=(LogicalRecordName, "Clear Logical Record: %s", ", %s"))
8442 pkt.CompletionCodes([0x0000, 0xff1a])
8444 pkt = NCP(0x0C, "Release Logical Record", 'sync')
8445 pkt.Request( (8, 135), [
8446 rec( 7, (1, 128), LogicalRecordName ),
8447 ], info_str=(LogicalRecordName, "Release Logical Record: %s", ", %s"))
8449 pkt.CompletionCodes([0x0000, 0xff1a])
8451 pkt = NCP(0x0D, "Release Logical Record Set", 'sync')
8453 rec( 7, 1, LockFlag ),
8456 pkt.CompletionCodes([0x0000])
8458 pkt = NCP(0x0E, "Clear Logical Record Set", 'sync')
8460 rec( 7, 1, LockFlag ),
8463 pkt.CompletionCodes([0x0000])
8465 pkt = NCP(0x1100, "Write to Spool File", 'print')
8466 pkt.Request( (11, 16), [
8467 rec( 10, ( 1, 6 ), Data ),
8468 ], info_str=(Data, "Write to Spool File: %s", ", %s"))
8470 pkt.CompletionCodes([0x0000, 0x0104, 0x8000, 0x8101, 0x8701, 0x8800,
8471 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9400, 0x9500,
8472 0x9600, 0x9804, 0x9900, 0xa100, 0xa201, 0xff19])
8474 pkt = NCP(0x1101, "Close Spool File", 'print')
8476 rec( 10, 1, AbortQueueFlag ),
8479 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8701, 0x8800, 0x8d00,
8480 0x8e00, 0x8f00, 0x9001, 0x9300, 0x9400, 0x9500,
8481 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03, 0x9d00,
8482 0xa100, 0xd000, 0xd100, 0xd202, 0xd300, 0xd400,
8483 0xda01, 0xe800, 0xea00, 0xeb00, 0xec00, 0xfc06,
8484 0xfd00, 0xfe07, 0xff06])
8486 pkt = NCP(0x1102, "Set Spool File Flags", 'print')
8488 rec( 10, 1, PrintFlags ),
8489 rec( 11, 1, TabSize ),
8490 rec( 12, 1, TargetPrinter ),
8491 rec( 13, 1, Copies ),
8492 rec( 14, 1, FormType ),
8493 rec( 15, 1, Reserved ),
8494 rec( 16, 14, BannerName ),
8497 pkt.CompletionCodes([0x0000, 0x9600, 0xd202, 0xd300, 0xe800, 0xea00,
8498 0xeb00, 0xec00, 0xfc06, 0xfe07, 0xff06])
8501 pkt = NCP(0x1103, "Spool A Disk File", 'print')
8502 pkt.Request( (12, 23), [
8503 rec( 10, 1, DirHandle ),
8504 rec( 11, (1, 12), Data ),
8505 ], info_str=(Data, "Spool a Disk File: %s", ", %s"))
8507 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8701, 0x8800, 0x8d00,
8508 0x8e00, 0x8f00, 0x9001, 0x9300, 0x9400, 0x9500,
8509 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03, 0x9d00,
8510 0xa100, 0xd000, 0xd100, 0xd202, 0xd300, 0xd400,
8511 0xda01, 0xe800, 0xea00, 0xeb00, 0xec00, 0xfc06,
8512 0xfd00, 0xfe07, 0xff06])
8515 pkt = NCP(0x1106, "Get Printer Status", 'print')
8517 rec( 10, 1, TargetPrinter ),
8520 rec( 8, 1, PrinterHalted ),
8521 rec( 9, 1, PrinterOffLine ),
8522 rec( 10, 1, CurrentFormType ),
8523 rec( 11, 1, RedirectedPrinter ),
8525 pkt.CompletionCodes([0x0000, 0x9600, 0xfb05, 0xfd00, 0xff06])
8528 pkt = NCP(0x1109, "Create Spool File", 'print')
8529 pkt.Request( (12, 23), [
8530 rec( 10, 1, DirHandle ),
8531 rec( 11, (1, 12), Data ),
8532 ], info_str=(Data, "Create Spool File: %s", ", %s"))
8534 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8400, 0x8701, 0x8d00,
8535 0x8f00, 0x9001, 0x9400, 0x9600, 0x9804, 0x9900,
8536 0x9b03, 0x9c03, 0xa100, 0xd000, 0xd100, 0xd202,
8537 0xd300, 0xd400, 0xda01, 0xe800, 0xea00, 0xeb00,
8538 0xec00, 0xfc06, 0xfd00, 0xfe07, 0xff06])
8541 pkt = NCP(0x110A, "Get Printer's Queue", 'print')
8543 rec( 10, 1, TargetPrinter ),
8546 rec( 8, 4, ObjectID, BE ),
8548 pkt.CompletionCodes([0x0000, 0x9600, 0xff06])
8551 pkt = NCP(0x12, "Get Volume Info with Number", 'file')
8553 rec( 7, 1, VolumeNumber )
8554 ],info_str=(VolumeNumber, "Get Volume Information for Volume %d", ", %d"))
8556 rec( 8, 2, SectorsPerCluster, BE ),
8557 rec( 10, 2, TotalVolumeClusters, BE ),
8558 rec( 12, 2, AvailableClusters, BE ),
8559 rec( 14, 2, TotalDirectorySlots, BE ),
8560 rec( 16, 2, AvailableDirectorySlots, BE ),
8561 rec( 18, 16, VolumeName ),
8562 rec( 34, 2, RemovableFlag, BE ),
8564 pkt.CompletionCodes([0x0000, 0x9804])
8567 pkt = NCP(0x13, "Get Station Number", 'connection')
8570 rec( 8, 3, StationNumber )
8572 pkt.CompletionCodes([0x0000, 0xff00])
8575 pkt = NCP(0x14, "Get File Server Date And Time", 'fileserver')
8582 rec( 12, 1, Minute ),
8583 rec( 13, 1, Second ),
8584 rec( 14, 1, DayOfWeek ),
8586 pkt.CompletionCodes([0x0000])
8589 pkt = NCP(0x1500, "Send Broadcast Message", 'message')
8590 pkt.Request((13, 70), [
8591 rec( 10, 1, ClientListLen, var="x" ),
8592 rec( 11, 1, TargetClientList, repeat="x" ),
8593 rec( 12, (1, 58), TargetMessage ),
8594 ], info_str=(TargetMessage, "Send Broadcast Message: %s", ", %s"))
8596 rec( 8, 1, ClientListLen, var="x" ),
8597 rec( 9, 1, SendStatus, repeat="x" )
8599 pkt.CompletionCodes([0x0000, 0xfd00])
8602 pkt = NCP(0x1501, "Get Broadcast Message", 'message')
8605 rec( 8, (1, 58), TargetMessage )
8607 pkt.CompletionCodes([0x0000, 0xfd00])
8610 pkt = NCP(0x1502, "Disable Broadcasts", 'message')
8613 pkt.CompletionCodes([0x0000, 0xfb0a])
8616 pkt = NCP(0x1503, "Enable Broadcasts", 'message')
8619 pkt.CompletionCodes([0x0000])
8622 pkt = NCP(0x1509, "Broadcast To Console", 'message')
8623 pkt.Request((11, 68), [
8624 rec( 10, (1, 58), TargetMessage )
8625 ], info_str=(TargetMessage, "Broadcast to Console: %s", ", %s"))
8627 pkt.CompletionCodes([0x0000])
8630 pkt = NCP(0x150A, "Send Broadcast Message", 'message')
8631 pkt.Request((17, 74), [
8632 rec( 10, 2, ClientListCount, LE, var="x" ),
8633 rec( 12, 4, ClientList, LE, repeat="x" ),
8634 rec( 16, (1, 58), TargetMessage ),
8635 ], info_str=(TargetMessage, "Send Broadcast Message: %s", ", %s"))
8637 rec( 8, 2, ClientListCount, LE, var="x" ),
8638 rec( 10, 4, ClientCompFlag, LE, repeat="x" ),
8640 pkt.CompletionCodes([0x0000, 0xfd00])
8643 pkt = NCP(0x150B, "Get Broadcast Message", 'message')
8646 rec( 8, (1, 58), TargetMessage )
8648 pkt.CompletionCodes([0x0000, 0xfd00])
8651 pkt = NCP(0x150C, "Connection Message Control", 'message')
8653 rec( 10, 1, ConnectionControlBits ),
8654 rec( 11, 3, Reserved3 ),
8655 rec( 14, 4, ConnectionListCount, LE, var="x" ),
8656 rec( 18, 4, ConnectionList, LE, repeat="x" ),
8659 pkt.CompletionCodes([0x0000, 0xff00])
8662 pkt = NCP(0x1600, "Set Directory Handle", 'file')
8663 pkt.Request((13,267), [
8664 rec( 10, 1, TargetDirHandle ),
8665 rec( 11, 1, DirHandle ),
8666 rec( 12, (1, 255), Path ),
8667 ], info_str=(Path, "Set Directory Handle to: %s", ", %s"))
8669 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8674 pkt = NCP(0x1601, "Get Directory Path", 'file')
8676 rec( 10, 1, DirHandle ),
8677 ],info_str=(DirHandle, "Get Directory Path for Directory Handle %d", ", %d"))
8678 pkt.Reply((9,263), [
8679 rec( 8, (1,255), Path ),
8681 pkt.CompletionCodes([0x0000, 0x9600, 0x9b00, 0x9c00, 0xa100])
8684 pkt = NCP(0x1602, "Scan Directory Information", 'file')
8685 pkt.Request((14,268), [
8686 rec( 10, 1, DirHandle ),
8687 rec( 11, 2, StartingSearchNumber, BE ),
8688 rec( 13, (1, 255), Path ),
8689 ], info_str=(Path, "Scan Directory Information: %s", ", %s"))
8691 rec( 8, 16, DirectoryPath ),
8692 rec( 24, 2, CreationDate, BE ),
8693 rec( 26, 2, CreationTime, BE ),
8694 rec( 28, 4, CreatorID, BE ),
8695 rec( 32, 1, AccessRightsMask ),
8696 rec( 33, 1, Reserved ),
8697 rec( 34, 2, NextSearchNumber, BE ),
8699 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8703 pkt = NCP(0x1603, "Get Effective Directory Rights", 'file')
8704 pkt.Request((12,266), [
8705 rec( 10, 1, DirHandle ),
8706 rec( 11, (1, 255), Path ),
8707 ], info_str=(Path, "Get Effective Directory Rights: %s", ", %s"))
8709 rec( 8, 1, AccessRightsMask ),
8711 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8715 pkt = NCP(0x1604, "Modify Maximum Rights Mask", 'file')
8716 pkt.Request((14,268), [
8717 rec( 10, 1, DirHandle ),
8718 rec( 11, 1, RightsGrantMask ),
8719 rec( 12, 1, RightsRevokeMask ),
8720 rec( 13, (1, 255), Path ),
8721 ], info_str=(Path, "Modify Maximum Rights Mask: %s", ", %s"))
8723 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfa00,
8727 pkt = NCP(0x1605, "Get Volume Number", 'file')
8728 pkt.Request((11, 265), [
8729 rec( 10, (1,255), VolumeNameLen ),
8730 ], info_str=(VolumeNameLen, "Get Volume Number for: %s", ", %s"))
8732 rec( 8, 1, VolumeNumber ),
8734 pkt.CompletionCodes([0x0000, 0x9600, 0x9804])
8737 pkt = NCP(0x1606, "Get Volume Name", 'file')
8739 rec( 10, 1, VolumeNumber ),
8740 ],info_str=(VolumeNumber, "Get Name for Volume %d", ", %d"))
8741 pkt.Reply((9, 263), [
8742 rec( 8, (1,255), VolumeNameLen ),
8744 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0xff00])
8747 pkt = NCP(0x160A, "Create Directory", 'file')
8748 pkt.Request((13,267), [
8749 rec( 10, 1, DirHandle ),
8750 rec( 11, 1, AccessRightsMask ),
8751 rec( 12, (1, 255), Path ),
8752 ], info_str=(Path, "Create Directory: %s", ", %s"))
8754 pkt.CompletionCodes([0x0000, 0x8400, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8755 0x9e00, 0xa100, 0xfd00, 0xff00])
8758 pkt = NCP(0x160B, "Delete Directory", 'file')
8759 pkt.Request((13,267), [
8760 rec( 10, 1, DirHandle ),
8761 rec( 11, 1, Reserved ),
8762 rec( 12, (1, 255), Path ),
8763 ], info_str=(Path, "Delete Directory: %s", ", %s"))
8765 pkt.CompletionCodes([0x0000, 0x8a00, 0x9600, 0x9804, 0x9b03, 0x9c03,
8766 0x9f00, 0xa000, 0xa100, 0xfd00, 0xff00])
8769 pkt = NCP(0x160C, "Scan Directory for Trustees", 'file')
8770 pkt.Request((13,267), [
8771 rec( 10, 1, DirHandle ),
8772 rec( 11, 1, TrusteeSetNumber ),
8773 rec( 12, (1, 255), Path ),
8774 ], info_str=(Path, "Scan Directory for Trustees: %s", ", %s"))
8776 rec( 8, 16, DirectoryPath ),
8777 rec( 24, 2, CreationDate, BE ),
8778 rec( 26, 2, CreationTime, BE ),
8779 rec( 28, 4, CreatorID ),
8780 rec( 32, 4, TrusteeID, BE ),
8781 rec( 36, 4, TrusteeID, BE ),
8782 rec( 40, 4, TrusteeID, BE ),
8783 rec( 44, 4, TrusteeID, BE ),
8784 rec( 48, 4, TrusteeID, BE ),
8785 rec( 52, 1, AccessRightsMask ),
8786 rec( 53, 1, AccessRightsMask ),
8787 rec( 54, 1, AccessRightsMask ),
8788 rec( 55, 1, AccessRightsMask ),
8789 rec( 56, 1, AccessRightsMask ),
8791 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c03,
8792 0xa100, 0xfd00, 0xff00])
8795 pkt = NCP(0x160D, "Add Trustee to Directory", 'file')
8796 pkt.Request((17,271), [
8797 rec( 10, 1, DirHandle ),
8798 rec( 11, 4, TrusteeID, BE ),
8799 rec( 15, 1, AccessRightsMask ),
8800 rec( 16, (1, 255), Path ),
8801 ], info_str=(Path, "Add Trustee to Directory: %s", ", %s"))
8803 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8804 0xa100, 0xfc06, 0xfd00, 0xff00])
8807 pkt = NCP(0x160E, "Delete Trustee from Directory", 'file')
8808 pkt.Request((17,271), [
8809 rec( 10, 1, DirHandle ),
8810 rec( 11, 4, TrusteeID, BE ),
8811 rec( 15, 1, Reserved ),
8812 rec( 16, (1, 255), Path ),
8813 ], info_str=(Path, "Delete Trustee from Directory: %s", ", %s"))
8815 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9900, 0x9b03, 0x9c03,
8816 0xa100, 0xfc06, 0xfd00, 0xfe07, 0xff00])
8819 pkt = NCP(0x160F, "Rename Directory", 'file')
8820 pkt.Request((13, 521), [
8821 rec( 10, 1, DirHandle ),
8822 rec( 11, (1, 255), Path ),
8823 rec( -1, (1, 255), NewPath ),
8824 ], info_str=(Path, "Rename Directory: %s", ", %s"))
8826 pkt.CompletionCodes([0x0000, 0x8b00, 0x9200, 0x9600, 0x9804, 0x9b03, 0x9c03,
8827 0x9e00, 0xa100, 0xef00, 0xfd00, 0xff00])
8830 pkt = NCP(0x1610, "Purge Erased Files", 'file')
8833 pkt.CompletionCodes([0x0000, 0x8100, 0x9600, 0x9804, 0xa100, 0xff00])
8836 pkt = NCP(0x1611, "Recover Erased File", 'file')
8838 rec( 10, 1, DirHandle ),
8839 ],info_str=(DirHandle, "Recover Erased File from Directory Handle %d", ", %d"))
8841 rec( 8, 15, OldFileName ),
8842 rec( 23, 15, NewFileName ),
8844 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03,
8845 0xa100, 0xfd00, 0xff00])
8847 pkt = NCP(0x1612, "Alloc Permanent Directory Handle", 'file')
8848 pkt.Request((13, 267), [
8849 rec( 10, 1, DirHandle ),
8850 rec( 11, 1, DirHandleName ),
8851 rec( 12, (1,255), Path ),
8852 ], info_str=(Path, "Allocate Permanent Directory Handle: %s", ", %s"))
8854 rec( 8, 1, DirHandle ),
8855 rec( 9, 1, AccessRightsMask ),
8857 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9b00, 0x9c03, 0x9d00,
8858 0xa100, 0xfd00, 0xff00])
8860 pkt = NCP(0x1613, "Alloc Temporary Directory Handle", 'file')
8861 pkt.Request((13, 267), [
8862 rec( 10, 1, DirHandle ),
8863 rec( 11, 1, DirHandleName ),
8864 rec( 12, (1,255), Path ),
8865 ], info_str=(Path, "Allocate Temporary Directory Handle: %s", ", %s"))
8867 rec( 8, 1, DirHandle ),
8868 rec( 9, 1, AccessRightsMask ),
8870 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00,
8871 0xa100, 0xfd00, 0xff00])
8873 pkt = NCP(0x1614, "Deallocate Directory Handle", 'file')
8875 rec( 10, 1, DirHandle ),
8876 ],info_str=(DirHandle, "Deallocate Directory Handle %d", ", %d"))
8878 pkt.CompletionCodes([0x0000, 0x9b03])
8880 pkt = NCP(0x1615, "Get Volume Info with Handle", 'file')
8882 rec( 10, 1, DirHandle )
8883 ],info_str=(DirHandle, "Get Volume Information with Handle %d", ", %d"))
8885 rec( 8, 2, SectorsPerCluster, BE ),
8886 rec( 10, 2, TotalVolumeClusters, BE ),
8887 rec( 12, 2, AvailableClusters, BE ),
8888 rec( 14, 2, TotalDirectorySlots, BE ),
8889 rec( 16, 2, AvailableDirectorySlots, BE ),
8890 rec( 18, 16, VolumeName ),
8891 rec( 34, 2, RemovableFlag, BE ),
8893 pkt.CompletionCodes([0x0000, 0xff00])
8895 pkt = NCP(0x1616, "Alloc Special Temporary Directory Handle", 'file')
8896 pkt.Request((13, 267), [
8897 rec( 10, 1, DirHandle ),
8898 rec( 11, 1, DirHandleName ),
8899 rec( 12, (1,255), Path ),
8900 ], info_str=(Path, "Allocate Special Temporary Directory Handle: %s", ", %s"))
8902 rec( 8, 1, DirHandle ),
8903 rec( 9, 1, AccessRightsMask ),
8905 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9b00, 0x9c03, 0x9d00,
8906 0xa100, 0xfd00, 0xff00])
8908 pkt = NCP(0x1617, "Extract a Base Handle", 'file')
8910 rec( 10, 1, DirHandle ),
8911 ],info_str=(DirHandle, "Extract a Base Handle from Directory Handle %d", ", %d"))
8913 rec( 8, 10, ServerNetworkAddress ),
8914 rec( 18, 4, DirHandleLong ),
8916 pkt.CompletionCodes([0x0000, 0x9600, 0x9b03])
8918 pkt = NCP(0x1618, "Restore an Extracted Base Handle", 'file')
8920 rec( 10, 10, ServerNetworkAddress ),
8921 rec( 20, 4, DirHandleLong ),
8924 rec( 8, 1, DirHandle ),
8925 rec( 9, 1, AccessRightsMask ),
8927 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c00, 0x9d00, 0xa100,
8930 pkt = NCP(0x1619, "Set Directory Information", 'file')
8931 pkt.Request((21, 275), [
8932 rec( 10, 1, DirHandle ),
8933 rec( 11, 2, CreationDate ),
8934 rec( 13, 2, CreationTime ),
8935 rec( 15, 4, CreatorID, BE ),
8936 rec( 19, 1, AccessRightsMask ),
8937 rec( 20, (1,255), Path ),
8938 ], info_str=(Path, "Set Directory Information: %s", ", %s"))
8940 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9804, 0x9b03, 0x9c00, 0xa100,
8943 pkt = NCP(0x161A, "Get Path Name of a Volume-Directory Number Pair", 'file')
8945 rec( 10, 1, VolumeNumber ),
8946 rec( 11, 2, DirectoryEntryNumberWord ),
8948 pkt.Reply((9,263), [
8949 rec( 8, (1,255), Path ),
8951 pkt.CompletionCodes([0x0000, 0x9804, 0x9c00, 0xa100])
8953 pkt = NCP(0x161B, "Scan Salvageable Files", 'file')
8955 rec( 10, 1, DirHandle ),
8956 rec( 11, 4, SequenceNumber ),
8959 rec( 8, 4, SequenceNumber ),
8960 rec( 12, 2, Subdirectory ),
8961 rec( 14, 2, Reserved2 ),
8962 rec( 16, 4, AttributesDef32 ),
8963 rec( 20, 1, UniqueID ),
8964 rec( 21, 1, FlagsDef ),
8965 rec( 22, 1, DestNameSpace ),
8966 rec( 23, 1, FileNameLen ),
8967 rec( 24, 12, FileName12 ),
8968 rec( 36, 2, CreationTime ),
8969 rec( 38, 2, CreationDate ),
8970 rec( 40, 4, CreatorID, BE ),
8971 rec( 44, 2, ArchivedTime ),
8972 rec( 46, 2, ArchivedDate ),
8973 rec( 48, 4, ArchiverID, BE ),
8974 rec( 52, 2, UpdateTime ),
8975 rec( 54, 2, UpdateDate ),
8976 rec( 56, 4, UpdateID, BE ),
8977 rec( 60, 4, FileSize, BE ),
8978 rec( 64, 44, Reserved44 ),
8979 rec( 108, 2, InheritedRightsMask ),
8980 rec( 110, 2, LastAccessedDate ),
8981 rec( 112, 4, DeletedFileTime ),
8982 rec( 116, 2, DeletedTime ),
8983 rec( 118, 2, DeletedDate ),
8984 rec( 120, 4, DeletedID, BE ),
8985 rec( 124, 16, Reserved16 ),
8987 pkt.CompletionCodes([0x0000, 0xfb01, 0x9801, 0xff1d])
8989 pkt = NCP(0x161C, "Recover Salvageable File", 'file')
8990 pkt.Request((17,525), [
8991 rec( 10, 1, DirHandle ),
8992 rec( 11, 4, SequenceNumber ),
8993 rec( 15, (1, 255), FileName ),
8994 rec( -1, (1, 255), NewFileNameLen ),
8995 ], info_str=(FileName, "Recover File: %s", ", %s"))
8997 pkt.CompletionCodes([0x0000, 0x8401, 0x9c03, 0xfe02])
8999 pkt = NCP(0x161D, "Purge Salvageable File", 'file')
9001 rec( 10, 1, DirHandle ),
9002 rec( 11, 4, SequenceNumber ),
9005 pkt.CompletionCodes([0x0000, 0x8500, 0x9c03])
9007 pkt = NCP(0x161E, "Scan a Directory", 'file')
9008 pkt.Request((17, 271), [
9009 rec( 10, 1, DirHandle ),
9010 rec( 11, 1, DOSFileAttributes ),
9011 rec( 12, 4, SequenceNumber ),
9012 rec( 16, (1, 255), SearchPattern ),
9013 ], info_str=(SearchPattern, "Scan a Directory: %s", ", %s"))
9015 rec( 8, 4, SequenceNumber ),
9016 rec( 12, 4, Subdirectory ),
9017 rec( 16, 4, AttributesDef32 ),
9018 rec( 20, 1, UniqueID, LE ),
9019 rec( 21, 1, PurgeFlags ),
9020 rec( 22, 1, DestNameSpace ),
9021 rec( 23, 1, NameLen ),
9022 rec( 24, 12, Name12 ),
9023 rec( 36, 2, CreationTime ),
9024 rec( 38, 2, CreationDate ),
9025 rec( 40, 4, CreatorID, BE ),
9026 rec( 44, 2, ArchivedTime ),
9027 rec( 46, 2, ArchivedDate ),
9028 rec( 48, 4, ArchiverID, BE ),
9029 rec( 52, 2, UpdateTime ),
9030 rec( 54, 2, UpdateDate ),
9031 rec( 56, 4, UpdateID, BE ),
9032 rec( 60, 4, FileSize, BE ),
9033 rec( 64, 44, Reserved44 ),
9034 rec( 108, 2, InheritedRightsMask ),
9035 rec( 110, 2, LastAccessedDate ),
9036 rec( 112, 28, Reserved28 ),
9038 pkt.CompletionCodes([0x0000, 0x8500, 0x9c03])
9040 pkt = NCP(0x161F, "Get Directory Entry", 'file')
9042 rec( 10, 1, DirHandle ),
9045 rec( 8, 4, Subdirectory ),
9046 rec( 12, 4, AttributesDef32 ),
9047 rec( 16, 1, UniqueID, LE ),
9048 rec( 17, 1, PurgeFlags ),
9049 rec( 18, 1, DestNameSpace ),
9050 rec( 19, 1, NameLen ),
9051 rec( 20, 12, Name12 ),
9052 rec( 32, 2, CreationTime ),
9053 rec( 34, 2, CreationDate ),
9054 rec( 36, 4, CreatorID, BE ),
9055 rec( 40, 2, ArchivedTime ),
9056 rec( 42, 2, ArchivedDate ),
9057 rec( 44, 4, ArchiverID, BE ),
9058 rec( 48, 2, UpdateTime ),
9059 rec( 50, 2, UpdateDate ),
9060 rec( 52, 4, NextTrusteeEntry, BE ),
9061 rec( 56, 48, Reserved48 ),
9062 rec( 104, 2, MaximumSpace ),
9063 rec( 106, 2, InheritedRightsMask ),
9064 rec( 108, 28, Undefined28 ),
9066 pkt.CompletionCodes([0x0000, 0x8900, 0xbf00, 0xfb00])
9068 pkt = NCP(0x1620, "Scan Volume's User Disk Restrictions", 'file')
9070 rec( 10, 1, VolumeNumber ),
9071 rec( 11, 4, SequenceNumber ),
9074 rec( 8, 1, NumberOfEntries, var="x" ),
9075 rec( 9, 8, ObjectIDStruct, repeat="x" ),
9077 pkt.CompletionCodes([0x0000, 0x9800])
9079 pkt = NCP(0x1621, "Add User Disk Space Restriction", 'file')
9081 rec( 10, 1, VolumeNumber ),
9082 rec( 11, 4, ObjectID ),
9083 rec( 15, 4, DiskSpaceLimit ),
9086 pkt.CompletionCodes([0x0000, 0x8c00, 0x9600, 0x9800])
9088 pkt = NCP(0x1622, "Remove User Disk Space Restrictions", 'file')
9090 rec( 10, 1, VolumeNumber ),
9091 rec( 11, 4, ObjectID ),
9094 pkt.CompletionCodes([0x0000, 0x8c00, 0xfe0e])
9096 pkt = NCP(0x1623, "Get Directory Disk Space Restriction", 'file')
9098 rec( 10, 1, DirHandle ),
9101 rec( 8, 1, NumberOfEntries ),
9103 rec( 10, 4, MaxSpace ),
9104 rec( 14, 4, CurrentSpace ),
9106 pkt.CompletionCodes([0x0000])
9108 pkt = NCP(0x1624, "Set Directory Disk Space Restriction", 'file')
9110 rec( 10, 1, DirHandle ),
9111 rec( 11, 4, DiskSpaceLimit ),
9114 pkt.CompletionCodes([0x0000, 0x0101, 0x8c00, 0xbf00])
9116 pkt = NCP(0x1625, "Set Directory Entry Information", 'file')
9117 pkt.Request(NO_LENGTH_CHECK, [
9119 # XXX - this didn't match what was in the spec for 22/37
9120 # on the Novell Web site.
9122 rec( 10, 1, DirHandle ),
9123 rec( 11, 1, SearchAttributes ),
9124 rec( 12, 4, SequenceNumber ),
9125 rec( 16, 2, ChangeBits ),
9126 rec( 18, 2, Reserved2 ),
9127 rec( 20, 4, Subdirectory ),
9128 #srec(DOSDirectoryEntryStruct, req_cond="ncp.search_att_sub == TRUE"),
9129 srec(DOSFileEntryStruct, req_cond="ncp.search_att_sub == FALSE"),
9132 pkt.ReqCondSizeConstant()
9133 pkt.CompletionCodes([0x0000, 0x0106, 0x8c00, 0xbf00])
9135 pkt = NCP(0x1626, "Scan File or Directory for Extended Trustees", 'file')
9136 pkt.Request((13,267), [
9137 rec( 10, 1, DirHandle ),
9138 rec( 11, 1, SequenceByte ),
9139 rec( 12, (1, 255), Path ),
9140 ], info_str=(Path, "Scan for Extended Trustees: %s", ", %s"))
9142 rec( 8, 1, NumberOfEntries, var="x" ),
9143 rec( 9, 4, ObjectID ),
9144 rec( 13, 4, ObjectID ),
9145 rec( 17, 4, ObjectID ),
9146 rec( 21, 4, ObjectID ),
9147 rec( 25, 4, ObjectID ),
9148 rec( 29, 4, ObjectID ),
9149 rec( 33, 4, ObjectID ),
9150 rec( 37, 4, ObjectID ),
9151 rec( 41, 4, ObjectID ),
9152 rec( 45, 4, ObjectID ),
9153 rec( 49, 4, ObjectID ),
9154 rec( 53, 4, ObjectID ),
9155 rec( 57, 4, ObjectID ),
9156 rec( 61, 4, ObjectID ),
9157 rec( 65, 4, ObjectID ),
9158 rec( 69, 4, ObjectID ),
9159 rec( 73, 4, ObjectID ),
9160 rec( 77, 4, ObjectID ),
9161 rec( 81, 4, ObjectID ),
9162 rec( 85, 4, ObjectID ),
9163 rec( 89, 2, AccessRightsMaskWord, repeat="x" ),
9165 pkt.CompletionCodes([0x0000, 0x9800, 0x9b00, 0x9c00])
9167 pkt = NCP(0x1627, "Add Extended Trustee to Directory or File", 'file')
9168 pkt.Request((18,272), [
9169 rec( 10, 1, DirHandle ),
9170 rec( 11, 4, ObjectID, BE ),
9171 rec( 15, 2, TrusteeRights ),
9172 rec( 17, (1, 255), Path ),
9173 ], info_str=(Path, "Add Extended Trustee: %s", ", %s"))
9175 pkt.CompletionCodes([0x0000, 0x9000])
9177 pkt = NCP(0x1628, "Scan Directory Disk Space", 'file')
9178 pkt.Request((17,271), [
9179 rec( 10, 1, DirHandle ),
9180 rec( 11, 1, SearchAttributes ),
9181 rec( 12, 4, SequenceNumber ),
9182 rec( 16, (1, 255), SearchPattern ),
9183 ], info_str=(SearchPattern, "Scan Directory Disk Space: %s", ", %s"))
9185 rec( 8, 4, SequenceNumber ),
9186 rec( 12, 4, Subdirectory ),
9187 rec( 16, 4, AttributesDef32 ),
9188 rec( 20, 1, UniqueID ),
9189 rec( 21, 1, PurgeFlags ),
9190 rec( 22, 1, DestNameSpace ),
9191 rec( 23, 1, NameLen ),
9192 rec( 24, 12, Name12 ),
9193 rec( 36, 2, CreationTime ),
9194 rec( 38, 2, CreationDate ),
9195 rec( 40, 4, CreatorID, BE ),
9196 rec( 44, 2, ArchivedTime ),
9197 rec( 46, 2, ArchivedDate ),
9198 rec( 48, 4, ArchiverID, BE ),
9199 rec( 52, 2, UpdateTime ),
9200 rec( 54, 2, UpdateDate ),
9201 rec( 56, 4, UpdateID, BE ),
9202 rec( 60, 4, DataForkSize, BE ),
9203 rec( 64, 4, DataForkFirstFAT, BE ),
9204 rec( 68, 4, NextTrusteeEntry, BE ),
9205 rec( 72, 36, Reserved36 ),
9206 rec( 108, 2, InheritedRightsMask ),
9207 rec( 110, 2, LastAccessedDate ),
9208 rec( 112, 4, DeletedFileTime ),
9209 rec( 116, 2, DeletedTime ),
9210 rec( 118, 2, DeletedDate ),
9211 rec( 120, 4, DeletedID, BE ),
9212 rec( 124, 8, Undefined8 ),
9213 rec( 132, 4, PrimaryEntry, LE ),
9214 rec( 136, 4, NameList, LE ),
9215 rec( 140, 4, OtherFileForkSize, BE ),
9216 rec( 144, 4, OtherFileForkFAT, BE ),
9218 pkt.CompletionCodes([0x0000, 0x8900, 0x9c03, 0xfb01, 0xff00])
9220 pkt = NCP(0x1629, "Get Object Disk Usage and Restrictions", 'file')
9222 rec( 10, 1, VolumeNumber ),
9223 rec( 11, 4, ObjectID, LE ),
9226 rec( 8, 4, Restriction ),
9227 rec( 12, 4, InUse ),
9229 pkt.CompletionCodes([0x0000, 0x9802])
9231 pkt = NCP(0x162A, "Get Effective Rights for Directory Entry", 'file')
9232 pkt.Request((12,266), [
9233 rec( 10, 1, DirHandle ),
9234 rec( 11, (1, 255), Path ),
9235 ], info_str=(Path, "Get Effective Rights: %s", ", %s"))
9237 rec( 8, 2, AccessRightsMaskWord ),
9239 pkt.CompletionCodes([0x0000, 0x9804, 0x9c03])
9241 pkt = NCP(0x162B, "Remove Extended Trustee from Dir or File", 'file')
9242 pkt.Request((17,271), [
9243 rec( 10, 1, DirHandle ),
9244 rec( 11, 4, ObjectID, BE ),
9245 rec( 15, 1, Unused ),
9246 rec( 16, (1, 255), Path ),
9247 ], info_str=(Path, "Remove Extended Trustee from %s", ", %s"))
9249 pkt.CompletionCodes([0x0000, 0x9002, 0x9c03, 0xfe0f, 0xff09])
9251 pkt = NCP(0x162C, "Get Volume and Purge Information", 'file')
9253 rec( 10, 1, VolumeNumber )
9254 ],info_str=(VolumeNumber, "Get Volume and Purge Information for Volume %d", ", %d"))
9255 pkt.Reply( (38,53), [
9256 rec( 8, 4, TotalBlocks ),
9257 rec( 12, 4, FreeBlocks ),
9258 rec( 16, 4, PurgeableBlocks ),
9259 rec( 20, 4, NotYetPurgeableBlocks ),
9260 rec( 24, 4, TotalDirectoryEntries ),
9261 rec( 28, 4, AvailableDirEntries ),
9262 rec( 32, 4, Reserved4 ),
9263 rec( 36, 1, SectorsPerBlock ),
9264 rec( 37, (1,16), VolumeNameLen ),
9266 pkt.CompletionCodes([0x0000])
9268 pkt = NCP(0x162D, "Get Directory Information", 'file')
9270 rec( 10, 1, DirHandle )
9272 pkt.Reply( (30, 45), [
9273 rec( 8, 4, TotalBlocks ),
9274 rec( 12, 4, AvailableBlocks ),
9275 rec( 16, 4, TotalDirectoryEntries ),
9276 rec( 20, 4, AvailableDirEntries ),
9277 rec( 24, 4, Reserved4 ),
9278 rec( 28, 1, SectorsPerBlock ),
9279 rec( 29, (1,16), VolumeNameLen ),
9281 pkt.CompletionCodes([0x0000, 0x9b03])
9283 pkt = NCP(0x162E, "Rename Or Move", 'file')
9284 pkt.Request( (17,525), [
9285 rec( 10, 1, SourceDirHandle ),
9286 rec( 11, 1, SearchAttributes ),
9287 rec( 12, 1, SourcePathComponentCount ),
9288 rec( 13, (1,255), SourcePath ),
9289 rec( -1, 1, DestDirHandle ),
9290 rec( -1, 1, DestPathComponentCount ),
9291 rec( -1, (1,255), DestPath ),
9292 ], info_str=(SourcePath, "Rename or Move: %s", ", %s"))
9294 pkt.CompletionCodes([0x0000, 0x0102, 0x8701, 0x8b00, 0x8d00, 0x8e00,
9295 0x8f00, 0x9001, 0x9101, 0x9201, 0x9a00, 0x9b03,
9296 0x9c03, 0xa400, 0xff17])
9298 pkt = NCP(0x162F, "Get Name Space Information", 'file')
9300 rec( 10, 1, VolumeNumber )
9301 ],info_str=(VolumeNumber, "Get Name Space Information for Volume %d", ", %d"))
9302 pkt.Reply( (15,523), [
9304 # XXX - why does this not display anything at all
9305 # if the stuff after the first IndexNumber is
9306 # un-commented? That stuff really is there....
9308 rec( 8, 1, DefinedNameSpaces, var="v" ),
9309 rec( 9, (1,255), NameSpaceName, repeat="v" ),
9310 rec( -1, 1, DefinedDataStreams, var="w" ),
9311 rec( -1, (2,256), DataStreamInfo, repeat="w" ),
9312 rec( -1, 1, LoadedNameSpaces, var="x" ),
9313 rec( -1, 1, IndexNumber, repeat="x" ),
9314 # rec( -1, 1, VolumeNameSpaces, var="y" ),
9315 # rec( -1, 1, IndexNumber, repeat="y" ),
9316 # rec( -1, 1, VolumeDataStreams, var="z" ),
9317 # rec( -1, 1, IndexNumber, repeat="z" ),
9319 pkt.CompletionCodes([0x0000, 0x9802, 0xff00])
9321 pkt = NCP(0x1630, "Get Name Space Directory Entry", 'file')
9323 rec( 10, 1, VolumeNumber ),
9324 rec( 11, 4, DOSSequence ),
9325 rec( 15, 1, SrcNameSpace ),
9328 rec( 8, 4, SequenceNumber ),
9329 rec( 12, 4, Subdirectory ),
9330 rec( 16, 4, AttributesDef32 ),
9331 rec( 20, 1, UniqueID ),
9332 rec( 21, 1, Flags ),
9333 rec( 22, 1, SrcNameSpace ),
9334 rec( 23, 1, NameLength ),
9335 rec( 24, 12, Name12 ),
9336 rec( 36, 2, CreationTime ),
9337 rec( 38, 2, CreationDate ),
9338 rec( 40, 4, CreatorID, BE ),
9339 rec( 44, 2, ArchivedTime ),
9340 rec( 46, 2, ArchivedDate ),
9341 rec( 48, 4, ArchiverID ),
9342 rec( 52, 2, UpdateTime ),
9343 rec( 54, 2, UpdateDate ),
9344 rec( 56, 4, UpdateID ),
9345 rec( 60, 4, FileSize ),
9346 rec( 64, 44, Reserved44 ),
9347 rec( 108, 2, InheritedRightsMask ),
9348 rec( 110, 2, LastAccessedDate ),
9350 pkt.CompletionCodes([0x0000, 0x8900, 0x9802, 0xbf00])
9352 pkt = NCP(0x1631, "Open Data Stream", 'file')
9353 pkt.Request( (15,269), [
9354 rec( 10, 1, DataStream ),
9355 rec( 11, 1, DirHandle ),
9356 rec( 12, 1, AttributesDef ),
9357 rec( 13, 1, OpenRights ),
9358 rec( 14, (1, 255), FileName ),
9359 ], info_str=(FileName, "Open Data Stream: %s", ", %s"))
9361 rec( 8, 4, CCFileHandle, BE ),
9363 pkt.CompletionCodes([0x0000, 0x8000, 0x8200, 0x9002, 0xbe00, 0xff00])
9365 pkt = NCP(0x1632, "Get Object Effective Rights for Directory Entry", 'file')
9366 pkt.Request( (16,270), [
9367 rec( 10, 4, ObjectID, BE ),
9368 rec( 14, 1, DirHandle ),
9369 rec( 15, (1, 255), Path ),
9370 ], info_str=(Path, "Get Object Effective Rights: %s", ", %s"))
9372 rec( 8, 2, TrusteeRights ),
9374 pkt.CompletionCodes([0x0000, 0x7e01, 0x9b00, 0x9c03, 0xfc06])
9376 pkt = NCP(0x1633, "Get Extended Volume Information", 'file')
9378 rec( 10, 1, VolumeNumber ),
9379 ],info_str=(VolumeNumber, "Get Extended Volume Information for Volume %d", ", %d"))
9380 pkt.Reply( (139,266), [
9381 rec( 8, 2, VolInfoReplyLen ),
9382 rec( 10, 128, VolInfoStructure),
9383 rec( 138, (1,128), VolumeNameLen ),
9385 pkt.CompletionCodes([0x0000, 0x7e01, 0x9804, 0xfb08, 0xff00])
9387 pkt = NCP(0x1634, "Get Mount Volume List", 'file')
9389 rec( 10, 4, StartVolumeNumber ),
9390 rec( 14, 4, VolumeRequestFlags, LE ),
9391 rec( 18, 4, SrcNameSpace ),
9393 pkt.Reply( NO_LENGTH_CHECK, [
9394 rec( 8, 4, ItemsInPacket, var="x" ),
9395 rec( 12, 4, NextVolumeNumber ),
9396 srec( VolumeStruct, req_cond="ncp.volume_request_flags==0x0000", repeat="x" ),
9397 srec( VolumeWithNameStruct, req_cond="ncp.volume_request_flags==0x0001", repeat="x" ),
9399 pkt.ReqCondSizeVariable()
9400 pkt.CompletionCodes([0x0000, 0x9802])
9402 pkt = NCP(0x1635, "Get Volume Capabilities", 'file')
9404 rec( 10, 4, VolumeNumberLong ),
9405 rec( 14, 4, VersionNumberLong ),
9408 rec( 8, 4, VolumeCapabilities ),
9409 rec( 12, 28, Reserved28 ),
9410 rec( 40, 64, VolumeNameStringz ),
9411 rec( 104, 128, VolumeGUID ),
9412 rec( 232, 256, PoolName ),
9413 rec( 488, 256, VolumeMountPoint ),
9415 pkt.CompletionCodes([0x0000])
9417 pkt = NCP(0x1700, "Login User", 'connection')
9418 pkt.Request( (12, 58), [
9419 rec( 10, (1,16), UserName ),
9420 rec( -1, (1,32), Password ),
9421 ], info_str=(UserName, "Login User: %s", ", %s"))
9423 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc501, 0xd700,
9424 0xd900, 0xda00, 0xdb00, 0xde00, 0xdf00, 0xe800,
9425 0xec00, 0xed00, 0xef00, 0xf001, 0xf100, 0xf200,
9426 0xf600, 0xfb00, 0xfc06, 0xfe07, 0xff00])
9428 pkt = NCP(0x1701, "Change User Password", 'bindery')
9429 pkt.Request( (13, 90), [
9430 rec( 10, (1,16), UserName ),
9431 rec( -1, (1,32), Password ),
9432 rec( -1, (1,32), NewPassword ),
9433 ], info_str=(UserName, "Change Password for User: %s", ", %s"))
9435 pkt.CompletionCodes([0x0000, 0x9600, 0xd600, 0xf001, 0xf101, 0xf501,
9436 0xfc06, 0xfe07, 0xff00])
9438 pkt = NCP(0x1702, "Get User Connection List", 'connection')
9439 pkt.Request( (11, 26), [
9440 rec( 10, (1,16), UserName ),
9441 ], info_str=(UserName, "Get User Connection: %s", ", %s"))
9442 pkt.Reply( (9, 136), [
9443 rec( 8, (1, 128), ConnectionNumberList ),
9445 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9447 pkt = NCP(0x1703, "Get User Number", 'bindery')
9448 pkt.Request( (11, 26), [
9449 rec( 10, (1,16), UserName ),
9450 ], info_str=(UserName, "Get User Number: %s", ", %s"))
9452 rec( 8, 4, ObjectID, BE ),
9454 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9456 pkt = NCP(0x1705, "Get Station's Logged Info", 'connection')
9458 rec( 10, 1, TargetConnectionNumber ),
9459 ],info_str=(TargetConnectionNumber, "Get Station's Logged Information on Connection %d", ", %d"))
9461 rec( 8, 16, UserName16 ),
9462 rec( 24, 7, LoginTime ),
9463 rec( 31, 39, FullName ),
9464 rec( 70, 4, UserID, BE ),
9465 rec( 74, 128, SecurityEquivalentList ),
9466 rec( 202, 64, Reserved64 ),
9468 pkt.CompletionCodes([0x0000, 0x9602, 0xfc06, 0xfd00, 0xfe07, 0xff00])
9470 pkt = NCP(0x1707, "Get Group Number", 'bindery')
9472 rec( 10, 4, ObjectID, BE ),
9475 rec( 8, 4, ObjectID, BE ),
9476 rec( 12, 2, ObjectType, BE ),
9477 rec( 14, 48, ObjectNameLen ),
9479 pkt.CompletionCodes([0x0000, 0x9602, 0xf101, 0xfc06, 0xfe07, 0xff00])
9481 pkt = NCP(0x170C, "Verify Serialization", 'fileserver')
9483 rec( 10, 4, ServerSerialNumber ),
9486 pkt.CompletionCodes([0x0000, 0xff00])
9488 pkt = NCP(0x170D, "Log Network Message", 'file')
9489 pkt.Request( (11, 68), [
9490 rec( 10, (1, 58), TargetMessage ),
9491 ], info_str=(TargetMessage, "Log Network Message: %s", ", %s"))
9493 pkt.CompletionCodes([0x0000, 0x8000, 0x8100, 0x8800, 0x8d00, 0x8e00, 0x8f00,
9494 0x9001, 0x9400, 0x9600, 0x9804, 0x9900, 0x9b00, 0xa100,
9497 pkt = NCP(0x170E, "Get Disk Utilization", 'fileserver')
9499 rec( 10, 1, VolumeNumber ),
9500 rec( 11, 4, TrusteeID, BE ),
9503 rec( 8, 1, VolumeNumber ),
9504 rec( 9, 4, TrusteeID, BE ),
9505 rec( 13, 2, DirectoryCount, BE ),
9506 rec( 15, 2, FileCount, BE ),
9507 rec( 17, 2, ClusterCount, BE ),
9509 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0xa100, 0xf200])
9511 pkt = NCP(0x170F, "Scan File Information", 'file')
9512 pkt.Request((15,269), [
9513 rec( 10, 2, LastSearchIndex ),
9514 rec( 12, 1, DirHandle ),
9515 rec( 13, 1, SearchAttributes ),
9516 rec( 14, (1, 255), FileName ),
9517 ], info_str=(FileName, "Scan File Information: %s", ", %s"))
9519 rec( 8, 2, NextSearchIndex ),
9520 rec( 10, 14, FileName14 ),
9521 rec( 24, 2, AttributesDef16 ),
9522 rec( 26, 4, FileSize, BE ),
9523 rec( 30, 2, CreationDate, BE ),
9524 rec( 32, 2, LastAccessedDate, BE ),
9525 rec( 34, 2, ModifiedDate, BE ),
9526 rec( 36, 2, ModifiedTime, BE ),
9527 rec( 38, 4, CreatorID, BE ),
9528 rec( 42, 2, ArchivedDate, BE ),
9529 rec( 44, 2, ArchivedTime, BE ),
9530 rec( 46, 56, Reserved56 ),
9532 pkt.CompletionCodes([0x0000, 0x8800, 0x8900, 0x9300, 0x9400, 0x9804, 0x9b00, 0x9c00,
9533 0xa100, 0xfd00, 0xff17])
9535 pkt = NCP(0x1710, "Set File Information", 'file')
9536 pkt.Request((91,345), [
9537 rec( 10, 2, AttributesDef16 ),
9538 rec( 12, 4, FileSize, BE ),
9539 rec( 16, 2, CreationDate, BE ),
9540 rec( 18, 2, LastAccessedDate, BE ),
9541 rec( 20, 2, ModifiedDate, BE ),
9542 rec( 22, 2, ModifiedTime, BE ),
9543 rec( 24, 4, CreatorID, BE ),
9544 rec( 28, 2, ArchivedDate, BE ),
9545 rec( 30, 2, ArchivedTime, BE ),
9546 rec( 32, 56, Reserved56 ),
9547 rec( 88, 1, DirHandle ),
9548 rec( 89, 1, SearchAttributes ),
9549 rec( 90, (1, 255), FileName ),
9550 ], info_str=(FileName, "Set Information for File: %s", ", %s"))
9552 pkt.CompletionCodes([0x0000, 0x8800, 0x8c00, 0x8e00, 0x9400, 0x9600, 0x9804,
9553 0x9b03, 0x9c00, 0xa100, 0xa201, 0xfc06, 0xfd00, 0xfe07,
9556 pkt = NCP(0x1711, "Get File Server Information", 'fileserver')
9559 rec( 8, 48, ServerName ),
9560 rec( 56, 1, OSMajorVersion ),
9561 rec( 57, 1, OSMinorVersion ),
9562 rec( 58, 2, ConnectionsSupportedMax, BE ),
9563 rec( 60, 2, ConnectionsInUse, BE ),
9564 rec( 62, 2, VolumesSupportedMax, BE ),
9565 rec( 64, 1, OSRevision ),
9566 rec( 65, 1, SFTSupportLevel ),
9567 rec( 66, 1, TTSLevel ),
9568 rec( 67, 2, ConnectionsMaxUsed, BE ),
9569 rec( 69, 1, AccountVersion ),
9570 rec( 70, 1, VAPVersion ),
9571 rec( 71, 1, QueueingVersion ),
9572 rec( 72, 1, PrintServerVersion ),
9573 rec( 73, 1, VirtualConsoleVersion ),
9574 rec( 74, 1, SecurityRestrictionVersion ),
9575 rec( 75, 1, InternetBridgeVersion ),
9576 rec( 76, 1, MixedModePathFlag ),
9577 rec( 77, 1, LocalLoginInfoCcode ),
9578 rec( 78, 2, ProductMajorVersion, BE ),
9579 rec( 80, 2, ProductMinorVersion, BE ),
9580 rec( 82, 2, ProductRevisionVersion, BE ),
9581 rec( 84, 1, OSLanguageID, LE ),
9582 rec( 85, 1, SixtyFourBitOffsetsSupportedFlag ),
9583 rec( 86, 50, Reserved50 ),
9585 pkt.CompletionCodes([0x0000, 0x9600])
9587 pkt = NCP(0x1712, "Get Network Serial Number", 'fileserver')
9590 rec( 8, 4, ServerSerialNumber ),
9591 rec( 12, 2, ApplicationNumber ),
9593 pkt.CompletionCodes([0x0000, 0x9600])
9595 pkt = NCP(0x1713, "Get Internet Address", 'connection')
9597 rec( 10, 1, TargetConnectionNumber ),
9598 ],info_str=(TargetConnectionNumber, "Get Internet Address for Connection %d", ", %d"))
9600 rec( 8, 4, NetworkAddress, BE ),
9601 rec( 12, 6, NetworkNodeAddress ),
9602 rec( 18, 2, NetworkSocket, BE ),
9604 pkt.CompletionCodes([0x0000, 0xff00])
9606 pkt = NCP(0x1714, "Login Object", 'connection')
9607 pkt.Request( (14, 60), [
9608 rec( 10, 2, ObjectType, BE ),
9609 rec( 12, (1,16), ClientName ),
9610 rec( -1, (1,32), Password ),
9611 ], info_str=(UserName, "Login Object: %s", ", %s"))
9613 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc501, 0xd600, 0xd700,
9614 0xd900, 0xda00, 0xdb00, 0xde00, 0xdf00, 0xe800, 0xec00,
9615 0xed00, 0xef00, 0xf001, 0xf100, 0xf200, 0xf600, 0xfb00,
9616 0xfc06, 0xfe07, 0xff00])
9618 pkt = NCP(0x1715, "Get Object Connection List", 'connection')
9619 pkt.Request( (13, 28), [
9620 rec( 10, 2, ObjectType, BE ),
9621 rec( 12, (1,16), ObjectName ),
9622 ], info_str=(UserName, "Get Object Connection List: %s", ", %s"))
9623 pkt.Reply( (9, 136), [
9624 rec( 8, (1, 128), ConnectionNumberList ),
9626 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9628 pkt = NCP(0x1716, "Get Station's Logged Info", 'connection')
9630 rec( 10, 1, TargetConnectionNumber ),
9633 rec( 8, 4, UserID, BE ),
9634 rec( 12, 2, ObjectType, BE ),
9635 rec( 14, 48, ObjectNameLen ),
9636 rec( 62, 7, LoginTime ),
9637 rec( 69, 1, Reserved ),
9639 pkt.CompletionCodes([0x0000, 0x9602, 0xfb0a, 0xfc06, 0xfd00, 0xfe07, 0xff00])
9641 pkt = NCP(0x1717, "Get Login Key", 'connection')
9644 rec( 8, 8, LoginKey ),
9646 pkt.CompletionCodes([0x0000, 0x9602])
9648 pkt = NCP(0x1718, "Keyed Object Login", 'connection')
9649 pkt.Request( (21, 68), [
9650 rec( 10, 8, LoginKey ),
9651 rec( 18, 2, ObjectType, BE ),
9652 rec( 20, (1,48), ObjectName ),
9653 ], info_str=(ObjectName, "Keyed Object Login: %s", ", %s"))
9655 pkt.CompletionCodes([0x0000, 0x9602, 0xc101, 0xc200, 0xc500, 0xd904, 0xda00,
9656 0xdb00, 0xdc00, 0xde00, 0xff00])
9658 pkt = NCP(0x171A, "Get Internet Address", 'connection')
9660 rec( 10, 2, TargetConnectionNumber ),
9662 # Dissect reply in packet-ncp2222.inc
9664 pkt.CompletionCodes([0x0000])
9666 pkt = NCP(0x171B, "Get Object Connection List", 'connection')
9667 pkt.Request( (17,64), [
9668 rec( 10, 4, SearchConnNumber ),
9669 rec( 14, 2, ObjectType, BE ),
9670 rec( 16, (1,48), ObjectName ),
9671 ], info_str=(ObjectName, "Get Object Connection List: %s", ", %s"))
9673 rec( 8, 1, ConnListLen, var="x" ),
9674 rec( 9, 4, ConnectionNumber, LE, repeat="x" ),
9676 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9678 pkt = NCP(0x171C, "Get Station's Logged Info", 'connection')
9680 rec( 10, 4, TargetConnectionNumber ),
9683 rec( 8, 4, UserID, BE ),
9684 rec( 12, 2, ObjectType, BE ),
9685 rec( 14, 48, ObjectNameLen ),
9686 rec( 62, 7, LoginTime ),
9687 rec( 69, 1, Reserved ),
9689 pkt.CompletionCodes([0x0000, 0x7d00, 0x9602, 0xfb02, 0xfc06, 0xfd00, 0xfe07, 0xff00])
9691 pkt = NCP(0x171D, "Change Connection State", 'connection')
9693 rec( 10, 1, RequestCode ),
9696 pkt.CompletionCodes([0x0000, 0x0109, 0x7a00, 0x7b00, 0x7c00, 0xe000, 0xfb06, 0xfd00])
9698 pkt = NCP(0x171E, "Set Watchdog Delay Interval", 'connection')
9700 rec( 10, 4, NumberOfMinutesToDelay ),
9703 pkt.CompletionCodes([0x0000, 0x0107])
9705 pkt = NCP(0x171F, "Get Connection List From Object", 'connection')
9707 rec( 10, 4, ObjectID, BE ),
9708 rec( 14, 4, ConnectionNumber ),
9710 pkt.Reply( (9, 136), [
9711 rec( 8, (1, 128), ConnectionNumberList ),
9713 pkt.CompletionCodes([0x0000, 0x9600, 0xf001, 0xfc06, 0xfe07, 0xff00])
9715 pkt = NCP(0x1720, "Scan Bindery Object (List)", 'bindery')
9716 pkt.Request((23,70), [
9717 rec( 10, 4, NextObjectID, BE ),
9718 rec( 14, 2, ObjectType, BE ),
9719 rec( 16, 2, Reserved2 ),
9720 rec( 18, 4, InfoFlags ),
9721 rec( 22, (1,48), ObjectName ),
9722 ], info_str=(ObjectName, "Scan Bindery Object: %s", ", %s"))
9723 pkt.Reply(NO_LENGTH_CHECK, [
9724 rec( 8, 4, ObjectInfoReturnCount ),
9725 rec( 12, 4, NextObjectID, BE ),
9726 rec( 16, 4, ObjectID ),
9727 srec(ObjectTypeStruct, req_cond="ncp.info_flags_type == TRUE"),
9728 srec(ObjectSecurityStruct, req_cond="ncp.info_flags_security == TRUE"),
9729 srec(ObjectFlagsStruct, req_cond="ncp.info_flags_flags == TRUE"),
9730 srec(ObjectNameStruct, req_cond="ncp.info_flags_name == TRUE"),
9732 pkt.ReqCondSizeVariable()
9733 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xfc02, 0xfe01, 0xff00])
9735 pkt = NCP(0x1721, "Generate GUIDs", 'connection')
9737 rec( 10, 4, ReturnInfoCount ),
9740 rec( 8, 4, ReturnInfoCount, var="x" ),
9741 rec( 12, 16, GUID, repeat="x" ),
9743 pkt.CompletionCodes([0x0000, 0x7e01])
9745 pkt = NCP(0x1722, "Set Connection Language Encoding", 'connection')
9747 rec( 10, 4, SetMask ),
9748 rec( 14, 4, NCPEncodedStringsBits ),
9749 rec( 18, 4, CodePage ),
9752 pkt.CompletionCodes([0x0000])
9754 pkt = NCP(0x1732, "Create Bindery Object", 'bindery')
9755 pkt.Request( (15,62), [
9756 rec( 10, 1, ObjectFlags ),
9757 rec( 11, 1, ObjectSecurity ),
9758 rec( 12, 2, ObjectType, BE ),
9759 rec( 14, (1,48), ObjectName ),
9760 ], info_str=(ObjectName, "Create Bindery Object: %s", ", %s"))
9762 pkt.CompletionCodes([0x0000, 0x9600, 0xe700, 0xee00, 0xef00, 0xf101, 0xf501,
9763 0xfc06, 0xfe07, 0xff00])
9765 pkt = NCP(0x1733, "Delete Bindery Object", 'bindery')
9766 pkt.Request( (13,60), [
9767 rec( 10, 2, ObjectType, BE ),
9768 rec( 12, (1,48), ObjectName ),
9769 ], info_str=(ObjectName, "Delete Bindery Object: %s", ", %s"))
9771 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf200, 0xf400, 0xf600, 0xfb00,
9772 0xfc06, 0xfe07, 0xff00])
9774 pkt = NCP(0x1734, "Rename Bindery Object", 'bindery')
9775 pkt.Request( (14,108), [
9776 rec( 10, 2, ObjectType, BE ),
9777 rec( 12, (1,48), ObjectName ),
9778 rec( -1, (1,48), NewObjectName ),
9779 ], info_str=(ObjectName, "Rename Bindery Object: %s", ", %s"))
9781 pkt.CompletionCodes([0x0000, 0x9600, 0xee00, 0xf000, 0xf300, 0xfc06, 0xfe07, 0xff00])
9783 pkt = NCP(0x1735, "Get Bindery Object ID", 'bindery')
9784 pkt.Request((13,60), [
9785 rec( 10, 2, ObjectType, BE ),
9786 rec( 12, (1,48), ObjectName ),
9787 ], info_str=(ObjectName, "Get Bindery Object: %s", ", %s"))
9789 rec( 8, 4, ObjectID, BE ),
9790 rec( 12, 2, ObjectType, BE ),
9791 rec( 14, 48, ObjectNameLen ),
9793 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xf000, 0xfc02, 0xfe01, 0xff00])
9795 pkt = NCP(0x1736, "Get Bindery Object Name", 'bindery')
9797 rec( 10, 4, ObjectID, BE ),
9800 rec( 8, 4, ObjectID, BE ),
9801 rec( 12, 2, ObjectType, BE ),
9802 rec( 14, 48, ObjectNameLen ),
9804 pkt.CompletionCodes([0x0000, 0x9600, 0xf101, 0xfc02, 0xfe01, 0xff00])
9806 pkt = NCP(0x1737, "Scan Bindery Object", 'bindery')
9807 pkt.Request((17,64), [
9808 rec( 10, 4, ObjectID, BE ),
9809 rec( 14, 2, ObjectType, BE ),
9810 rec( 16, (1,48), ObjectName ),
9811 ], info_str=(ObjectName, "Scan Bindery Object: %s", ", %s"))
9813 rec( 8, 4, ObjectID, BE ),
9814 rec( 12, 2, ObjectType, BE ),
9815 rec( 14, 48, ObjectNameLen ),
9816 rec( 62, 1, ObjectFlags ),
9817 rec( 63, 1, ObjectSecurity ),
9818 rec( 64, 1, ObjectHasProperties ),
9820 pkt.CompletionCodes([0x0000, 0x9600, 0xef01, 0xfc02,
9823 pkt = NCP(0x1738, "Change Bindery Object Security", 'bindery')
9824 pkt.Request((14,61), [
9825 rec( 10, 1, ObjectSecurity ),
9826 rec( 11, 2, ObjectType, BE ),
9827 rec( 13, (1,48), ObjectName ),
9828 ], info_str=(ObjectName, "Change Bindery Object Security: %s", ", %s"))
9830 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf501, 0xfc02, 0xfe01, 0xff00])
9832 pkt = NCP(0x1739, "Create Property", 'bindery')
9833 pkt.Request((16,78), [
9834 rec( 10, 2, ObjectType, BE ),
9835 rec( 12, (1,48), ObjectName ),
9836 rec( -1, 1, PropertyType ),
9837 rec( -1, 1, ObjectSecurity ),
9838 rec( -1, (1,16), PropertyName ),
9839 ], info_str=(PropertyName, "Create Property: %s", ", %s"))
9841 pkt.CompletionCodes([0x0000, 0x9600, 0xed00, 0xef00, 0xf000, 0xf101,
9842 0xf200, 0xf600, 0xf700, 0xfb00, 0xfc02, 0xfe01,
9845 pkt = NCP(0x173A, "Delete Property", 'bindery')
9846 pkt.Request((14,76), [
9847 rec( 10, 2, ObjectType, BE ),
9848 rec( 12, (1,48), ObjectName ),
9849 rec( -1, (1,16), PropertyName ),
9850 ], info_str=(PropertyName, "Delete Property: %s", ", %s"))
9852 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf600, 0xfb00, 0xfc02,
9855 pkt = NCP(0x173B, "Change Property Security", 'bindery')
9856 pkt.Request((15,77), [
9857 rec( 10, 2, ObjectType, BE ),
9858 rec( 12, (1,48), ObjectName ),
9859 rec( -1, 1, ObjectSecurity ),
9860 rec( -1, (1,16), PropertyName ),
9861 ], info_str=(PropertyName, "Change Property Security: %s", ", %s"))
9863 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf200, 0xf600, 0xfb00,
9864 0xfc02, 0xfe01, 0xff00])
9866 pkt = NCP(0x173C, "Scan Property", 'bindery')
9867 pkt.Request((18,80), [
9868 rec( 10, 2, ObjectType, BE ),
9869 rec( 12, (1,48), ObjectName ),
9870 rec( -1, 4, LastInstance, BE ),
9871 rec( -1, (1,16), PropertyName ),
9872 ], info_str=(PropertyName, "Scan Property: %s", ", %s"))
9874 rec( 8, 16, PropertyName16 ),
9875 rec( 24, 1, ObjectFlags ),
9876 rec( 25, 1, ObjectSecurity ),
9877 rec( 26, 4, SearchInstance, BE ),
9878 rec( 30, 1, ValueAvailable ),
9879 rec( 31, 1, MoreProperties ),
9881 pkt.CompletionCodes([0x0000, 0x9600, 0xf000, 0xf101, 0xf200, 0xf600, 0xfb00,
9882 0xfc02, 0xfe01, 0xff00])
9884 pkt = NCP(0x173D, "Read Property Value", 'bindery')
9885 pkt.Request((15,77), [
9886 rec( 10, 2, ObjectType, BE ),
9887 rec( 12, (1,48), ObjectName ),
9888 rec( -1, 1, PropertySegment ),
9889 rec( -1, (1,16), PropertyName ),
9890 ], info_str=(PropertyName, "Read Property Value: %s", ", %s"))
9892 rec( 8, 128, PropertyData ),
9893 rec( 136, 1, PropertyHasMoreSegments ),
9894 rec( 137, 1, PropertyType ),
9896 pkt.CompletionCodes([0x0000, 0x8800, 0x9300, 0x9600, 0xec01,
9897 0xf000, 0xf100, 0xf900, 0xfb02, 0xfc02,
9900 pkt = NCP(0x173E, "Write Property Value", 'bindery')
9901 pkt.Request((144,206), [
9902 rec( 10, 2, ObjectType, BE ),
9903 rec( 12, (1,48), ObjectName ),
9904 rec( -1, 1, PropertySegment ),
9905 rec( -1, 1, MoreFlag ),
9906 rec( -1, (1,16), PropertyName ),
9908 # XXX - don't show this if MoreFlag isn't set?
9909 # In at least some packages where it's not set,
9910 # PropertyValue appears to be garbage.
9912 rec( -1, 128, PropertyValue ),
9913 ], info_str=(PropertyName, "Write Property Value: %s", ", %s"))
9915 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xec01, 0xf000, 0xf800,
9916 0xfb02, 0xfc03, 0xfe01, 0xff00 ])
9918 pkt = NCP(0x173F, "Verify Bindery Object Password", 'bindery')
9919 pkt.Request((14,92), [
9920 rec( 10, 2, ObjectType, BE ),
9921 rec( 12, (1,48), ObjectName ),
9922 rec( -1, (1,32), Password ),
9923 ], info_str=(ObjectName, "Verify Bindery Object Password: %s", ", %s"))
9925 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xec01, 0xf000, 0xf101,
9926 0xfb02, 0xfc03, 0xfe01, 0xff00 ])
9928 pkt = NCP(0x1740, "Change Bindery Object Password", 'bindery')
9929 pkt.Request((15,124), [
9930 rec( 10, 2, ObjectType, BE ),
9931 rec( 12, (1,48), ObjectName ),
9932 rec( -1, (1,32), Password ),
9933 rec( -1, (1,32), NewPassword ),
9934 ], info_str=(ObjectName, "Change Bindery Object Password: %s", ", %s"))
9936 pkt.CompletionCodes([0x0000, 0x9600, 0xc501, 0xd701, 0xe800, 0xec01, 0xf001,
9937 0xf100, 0xf800, 0xfb02, 0xfc03, 0xfe01, 0xff00])
9939 pkt = NCP(0x1741, "Add Bindery Object To Set", 'bindery')
9940 pkt.Request((17,126), [
9941 rec( 10, 2, ObjectType, BE ),
9942 rec( 12, (1,48), ObjectName ),
9943 rec( -1, (1,16), PropertyName ),
9944 rec( -1, 2, MemberType, BE ),
9945 rec( -1, (1,48), MemberName ),
9946 ], info_str=(MemberName, "Add Bindery Object to Set: %s", ", %s"))
9948 pkt.CompletionCodes([0x0000, 0x9600, 0xe800, 0xe900, 0xea00, 0xeb00,
9949 0xec01, 0xf000, 0xf800, 0xfb02, 0xfc03, 0xfe01,
9952 pkt = NCP(0x1742, "Delete Bindery Object From Set", 'bindery')
9953 pkt.Request((17,126), [
9954 rec( 10, 2, ObjectType, BE ),
9955 rec( 12, (1,48), ObjectName ),
9956 rec( -1, (1,16), PropertyName ),
9957 rec( -1, 2, MemberType, BE ),
9958 rec( -1, (1,48), MemberName ),
9959 ], info_str=(MemberName, "Delete Bindery Object from Set: %s", ", %s"))
9961 pkt.CompletionCodes([0x0000, 0x9600, 0xeb00, 0xf000, 0xf800, 0xfb02,
9962 0xfc03, 0xfe01, 0xff00])
9964 pkt = NCP(0x1743, "Is Bindery Object In Set", 'bindery')
9965 pkt.Request((17,126), [
9966 rec( 10, 2, ObjectType, BE ),
9967 rec( 12, (1,48), ObjectName ),
9968 rec( -1, (1,16), PropertyName ),
9969 rec( -1, 2, MemberType, BE ),
9970 rec( -1, (1,48), MemberName ),
9971 ], info_str=(MemberName, "Is Bindery Object in Set: %s", ", %s"))
9973 pkt.CompletionCodes([0x0000, 0x9600, 0xea00, 0xeb00, 0xec01, 0xf000,
9974 0xfb02, 0xfc03, 0xfe01, 0xff00])
9976 pkt = NCP(0x1744, "Close Bindery", 'bindery')
9979 pkt.CompletionCodes([0x0000, 0xff00])
9981 pkt = NCP(0x1745, "Open Bindery", 'bindery')
9984 pkt.CompletionCodes([0x0000, 0xff00])
9986 pkt = NCP(0x1746, "Get Bindery Access Level", 'bindery')
9989 rec( 8, 1, ObjectSecurity ),
9990 rec( 9, 4, LoggedObjectID, BE ),
9992 pkt.CompletionCodes([0x0000, 0x9600])
9994 pkt = NCP(0x1747, "Scan Bindery Object Trustee Paths", 'bindery')
9996 rec( 10, 1, VolumeNumber ),
9997 rec( 11, 2, LastSequenceNumber, BE ),
9998 rec( 13, 4, ObjectID, BE ),
10000 pkt.Reply((16,270), [
10001 rec( 8, 2, LastSequenceNumber, BE),
10002 rec( 10, 4, ObjectID, BE ),
10003 rec( 14, 1, ObjectSecurity ),
10004 rec( 15, (1,255), Path ),
10006 pkt.CompletionCodes([0x0000, 0x9300, 0x9600, 0xa100, 0xf000, 0xf100,
10007 0xf200, 0xfc02, 0xfe01, 0xff00])
10009 pkt = NCP(0x1748, "Get Bindery Object Access Level", 'bindery')
10011 rec( 10, 4, ObjectID, BE ),
10014 rec( 8, 1, ObjectSecurity ),
10016 pkt.CompletionCodes([0x0000, 0x9600])
10018 pkt = NCP(0x1749, "Is Calling Station a Manager", 'bindery')
10021 pkt.CompletionCodes([0x0003, 0xff1e])
10023 pkt = NCP(0x174A, "Keyed Verify Password", 'bindery')
10024 pkt.Request((21,68), [
10025 rec( 10, 8, LoginKey ),
10026 rec( 18, 2, ObjectType, BE ),
10027 rec( 20, (1,48), ObjectName ),
10028 ], info_str=(ObjectName, "Keyed Verify Password: %s", ", %s"))
10030 pkt.CompletionCodes([0x0000, 0xc500, 0xfe01, 0xff0c])
10032 pkt = NCP(0x174B, "Keyed Change Password", 'bindery')
10033 pkt.Request((22,100), [
10034 rec( 10, 8, LoginKey ),
10035 rec( 18, 2, ObjectType, BE ),
10036 rec( 20, (1,48), ObjectName ),
10037 rec( -1, (1,32), Password ),
10038 ], info_str=(ObjectName, "Keyed Change Password: %s", ", %s"))
10040 pkt.CompletionCodes([0x0000, 0xc500, 0xfe01, 0xff0c])
10042 pkt = NCP(0x174C, "List Relations Of an Object", 'bindery')
10043 pkt.Request((18,80), [
10044 rec( 10, 4, LastSeen, BE ),
10045 rec( 14, 2, ObjectType, BE ),
10046 rec( 16, (1,48), ObjectName ),
10047 rec( -1, (1,16), PropertyName ),
10048 ], info_str=(ObjectName, "List Relations of an Object: %s", ", %s"))
10050 rec( 8, 2, RelationsCount, BE, var="x" ),
10051 rec( 10, 4, ObjectID, BE, repeat="x" ),
10053 pkt.CompletionCodes([0x0000, 0xf000, 0xf200, 0xfe01, 0xff00])
10054 # 2222/1764, 23/100
10055 pkt = NCP(0x1764, "Create Queue", 'qms')
10056 pkt.Request((15,316), [
10057 rec( 10, 2, QueueType, BE ),
10058 rec( 12, (1,48), QueueName ),
10059 rec( -1, 1, PathBase ),
10060 rec( -1, (1,255), Path ),
10061 ], info_str=(QueueName, "Create Queue: %s", ", %s"))
10063 rec( 8, 4, QueueID ),
10065 pkt.CompletionCodes([0x0000, 0x9600, 0x9900, 0xd000, 0xd100,
10066 0xd200, 0xd300, 0xd400, 0xd500, 0xd601,
10067 0xd703, 0xd800, 0xd902, 0xda01, 0xdb02,
10069 # 2222/1765, 23/101
10070 pkt = NCP(0x1765, "Destroy Queue", 'qms')
10072 rec( 10, 4, QueueID ),
10075 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10076 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10077 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10078 # 2222/1766, 23/102
10079 pkt = NCP(0x1766, "Read Queue Current Status", 'qms')
10081 rec( 10, 4, QueueID ),
10084 rec( 8, 4, QueueID ),
10085 rec( 12, 1, QueueStatus ),
10086 rec( 13, 1, CurrentEntries ),
10087 rec( 14, 1, CurrentServers, var="x" ),
10088 rec( 15, 4, ServerID, repeat="x" ),
10089 rec( 19, 1, ServerStationList, repeat="x" ),
10091 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10092 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10093 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10094 # 2222/1767, 23/103
10095 pkt = NCP(0x1767, "Set Queue Current Status", 'qms')
10097 rec( 10, 4, QueueID ),
10098 rec( 14, 1, QueueStatus ),
10101 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10102 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10103 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07,
10105 # 2222/1768, 23/104
10106 pkt = NCP(0x1768, "Create Queue Job And File", 'qms')
10108 rec( 10, 4, QueueID ),
10109 rec( 14, 250, JobStruct ),
10112 rec( 8, 1, ClientStation ),
10113 rec( 9, 1, ClientTaskNumber ),
10114 rec( 10, 4, ClientIDNumber, BE ),
10115 rec( 14, 4, TargetServerIDNumber, BE ),
10116 rec( 18, 6, TargetExecutionTime ),
10117 rec( 24, 6, JobEntryTime ),
10118 rec( 30, 2, JobNumber, BE ),
10119 rec( 32, 2, JobType, BE ),
10120 rec( 34, 1, JobPosition ),
10121 rec( 35, 1, JobControlFlags ),
10122 rec( 36, 14, JobFileName ),
10123 rec( 50, 6, JobFileHandle ),
10124 rec( 56, 1, ServerStation ),
10125 rec( 57, 1, ServerTaskNumber ),
10126 rec( 58, 4, ServerID, BE ),
10128 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10129 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10130 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07,
10132 # 2222/1769, 23/105
10133 pkt = NCP(0x1769, "Close File And Start Queue Job", 'qms')
10135 rec( 10, 4, QueueID ),
10136 rec( 14, 2, JobNumber, BE ),
10139 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10140 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10141 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10142 # 2222/176A, 23/106
10143 pkt = NCP(0x176A, "Remove Job From Queue", 'qms')
10145 rec( 10, 4, QueueID ),
10146 rec( 14, 2, JobNumber, BE ),
10149 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10150 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10151 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10152 # 2222/176B, 23/107
10153 pkt = NCP(0x176B, "Get Queue Job List", 'qms')
10155 rec( 10, 4, QueueID ),
10158 rec( 8, 2, JobCount, BE, var="x" ),
10159 rec( 10, 2, JobNumber, BE, repeat="x" ),
10161 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10162 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10163 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10164 # 2222/176C, 23/108
10165 pkt = NCP(0x176C, "Read Queue Job Entry", 'qms')
10167 rec( 10, 4, QueueID ),
10168 rec( 14, 2, JobNumber, BE ),
10171 rec( 8, 250, JobStruct ),
10173 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10174 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10175 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10176 # 2222/176D, 23/109
10177 pkt = NCP(0x176D, "Change Queue Job Entry", 'qms')
10179 rec( 14, 250, JobStruct ),
10182 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10183 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10184 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
10185 # 2222/176E, 23/110
10186 pkt = NCP(0x176E, "Change Queue Job Position", 'qms')
10188 rec( 10, 4, QueueID ),
10189 rec( 14, 2, JobNumber, BE ),
10190 rec( 16, 1, NewPosition ),
10193 pkt.CompletionCodes([0x0000, 0x9600, 0xd000, 0xd100, 0xd300, 0xd500,
10194 0xd601, 0xfe07, 0xff1f])
10195 # 2222/176F, 23/111
10196 pkt = NCP(0x176F, "Attach Queue Server To Queue", 'qms')
10198 rec( 10, 4, QueueID ),
10201 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10202 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10203 0xd800, 0xd902, 0xda01, 0xdb02, 0xea00,
10205 # 2222/1770, 23/112
10206 pkt = NCP(0x1770, "Detach Queue Server From Queue", 'qms')
10208 rec( 10, 4, QueueID ),
10211 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10212 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10213 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10214 # 2222/1771, 23/113
10215 pkt = NCP(0x1771, "Service Queue Job", 'qms')
10217 rec( 10, 4, QueueID ),
10218 rec( 14, 2, ServiceType, BE ),
10221 rec( 8, 1, ClientStation ),
10222 rec( 9, 1, ClientTaskNumber ),
10223 rec( 10, 4, ClientIDNumber, BE ),
10224 rec( 14, 4, TargetServerIDNumber, BE ),
10225 rec( 18, 6, TargetExecutionTime ),
10226 rec( 24, 6, JobEntryTime ),
10227 rec( 30, 2, JobNumber, BE ),
10228 rec( 32, 2, JobType, BE ),
10229 rec( 34, 1, JobPosition ),
10230 rec( 35, 1, JobControlFlags ),
10231 rec( 36, 14, JobFileName ),
10232 rec( 50, 6, JobFileHandle ),
10233 rec( 56, 1, ServerStation ),
10234 rec( 57, 1, ServerTaskNumber ),
10235 rec( 58, 4, ServerID, BE ),
10237 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10238 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10239 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10240 # 2222/1772, 23/114
10241 pkt = NCP(0x1772, "Finish Servicing Queue Job", 'qms')
10243 rec( 10, 4, QueueID ),
10244 rec( 14, 2, JobNumber, BE ),
10245 rec( 16, 2, ChargeInformation, BE ),
10248 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10249 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10250 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00])
10251 # 2222/1773, 23/115
10252 pkt = NCP(0x1773, "Abort Servicing Queue Job", 'qms')
10254 rec( 10, 4, QueueID ),
10255 rec( 14, 2, JobNumber, BE ),
10258 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10259 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10260 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff18])
10261 # 2222/1774, 23/116
10262 pkt = NCP(0x1774, "Change To Client Rights", 'qms')
10264 rec( 10, 4, QueueID ),
10265 rec( 14, 2, JobNumber, BE ),
10268 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10269 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10270 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
10271 # 2222/1775, 23/117
10272 pkt = NCP(0x1775, "Restore Queue Server Rights", 'qms')
10275 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10276 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10277 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10278 # 2222/1776, 23/118
10279 pkt = NCP(0x1776, "Read Queue Server Current Status", 'qms')
10281 rec( 10, 4, QueueID ),
10282 rec( 14, 4, ServerID, BE ),
10283 rec( 18, 1, ServerStation ),
10286 rec( 8, 64, ServerStatusRecord ),
10288 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10289 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10290 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10291 # 2222/1777, 23/119
10292 pkt = NCP(0x1777, "Set Queue Server Current Status", 'qms')
10294 rec( 10, 4, QueueID ),
10295 rec( 14, 64, ServerStatusRecord ),
10298 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10299 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10300 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10301 # 2222/1778, 23/120
10302 pkt = NCP(0x1778, "Get Queue Job File Size", 'qms')
10304 rec( 10, 4, QueueID ),
10305 rec( 14, 2, JobNumber, BE ),
10308 rec( 8, 4, QueueID ),
10309 rec( 12, 2, JobNumber, BE ),
10310 rec( 14, 4, FileSize, BE ),
10312 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10313 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10314 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00])
10315 # 2222/1779, 23/121
10316 pkt = NCP(0x1779, "Create Queue Job And File", 'qms')
10318 rec( 10, 4, QueueID ),
10319 rec( 14, 250, JobStruct3x ),
10322 rec( 8, 86, JobStructNew ),
10324 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10325 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10326 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00])
10327 # 2222/177A, 23/122
10328 pkt = NCP(0x177A, "Read Queue Job Entry", 'qms')
10330 rec( 10, 4, QueueID ),
10331 rec( 14, 4, JobNumberLong ),
10334 rec( 8, 250, JobStruct3x ),
10336 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10337 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10338 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10339 # 2222/177B, 23/123
10340 pkt = NCP(0x177B, "Change Queue Job Entry", 'qms')
10342 rec( 10, 4, QueueID ),
10343 rec( 14, 250, JobStruct ),
10346 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10347 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10348 0xd800, 0xd902, 0xda01, 0xdb02, 0xea02, 0xfc07, 0xff00])
10349 # 2222/177C, 23/124
10350 pkt = NCP(0x177C, "Service Queue Job", 'qms')
10352 rec( 10, 4, QueueID ),
10353 rec( 14, 2, ServiceType ),
10356 rec( 8, 86, JobStructNew ),
10358 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10359 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10360 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc05, 0xff00])
10361 # 2222/177D, 23/125
10362 pkt = NCP(0x177D, "Read Queue Current Status", 'qms')
10364 rec( 10, 4, QueueID ),
10367 rec( 8, 4, QueueID ),
10368 rec( 12, 1, QueueStatus ),
10369 rec( 13, 3, Reserved3 ),
10370 rec( 16, 4, CurrentEntries ),
10371 rec( 20, 4, CurrentServers, var="x" ),
10372 rec( 24, 4, ServerID, repeat="x" ),
10373 rec( 28, 4, ServerStationLong, LE, repeat="x" ),
10375 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10376 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10377 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10378 # 2222/177E, 23/126
10379 pkt = NCP(0x177E, "Set Queue Current Status", 'qms')
10381 rec( 10, 4, QueueID ),
10382 rec( 14, 1, QueueStatus ),
10385 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10386 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10387 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10388 # 2222/177F, 23/127
10389 pkt = NCP(0x177F, "Close File And Start Queue Job", 'qms')
10391 rec( 10, 4, QueueID ),
10392 rec( 14, 4, JobNumberLong ),
10395 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10396 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10397 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00])
10398 # 2222/1780, 23/128
10399 pkt = NCP(0x1780, "Remove Job From Queue", 'qms')
10401 rec( 10, 4, QueueID ),
10402 rec( 14, 4, JobNumberLong ),
10405 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10406 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10407 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10408 # 2222/1781, 23/129
10409 pkt = NCP(0x1781, "Get Queue Job List", 'qms')
10411 rec( 10, 4, QueueID ),
10412 rec( 14, 4, JobNumberLong ),
10415 rec( 8, 4, TotalQueueJobs ),
10416 rec( 12, 4, ReplyQueueJobNumbers, var="x" ),
10417 rec( 16, 4, JobNumberLong, repeat="x" ),
10419 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10420 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10421 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10422 # 2222/1782, 23/130
10423 pkt = NCP(0x1782, "Change Job Priority", 'qms')
10425 rec( 10, 4, QueueID ),
10426 rec( 14, 4, JobNumberLong ),
10427 rec( 18, 4, Priority ),
10430 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10431 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10432 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10433 # 2222/1783, 23/131
10434 pkt = NCP(0x1783, "Finish Servicing Queue Job", 'qms')
10436 rec( 10, 4, QueueID ),
10437 rec( 14, 4, JobNumberLong ),
10438 rec( 18, 4, ChargeInformation ),
10441 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10442 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10443 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc05, 0xff00])
10444 # 2222/1784, 23/132
10445 pkt = NCP(0x1784, "Abort Servicing Queue Job", 'qms')
10447 rec( 10, 4, QueueID ),
10448 rec( 14, 4, JobNumberLong ),
10451 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10452 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10453 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc05, 0xff18])
10454 # 2222/1785, 23/133
10455 pkt = NCP(0x1785, "Change To Client Rights", 'qms')
10457 rec( 10, 4, QueueID ),
10458 rec( 14, 4, JobNumberLong ),
10461 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10462 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10463 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18])
10464 # 2222/1786, 23/134
10465 pkt = NCP(0x1786, "Read Queue Server Current Status", 'qms')
10467 rec( 10, 4, QueueID ),
10468 rec( 14, 4, ServerID, BE ),
10469 rec( 18, 4, ServerStation ),
10472 rec( 8, 64, ServerStatusRecord ),
10474 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10475 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10476 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00])
10477 # 2222/1787, 23/135
10478 pkt = NCP(0x1787, "Get Queue Job File Size", 'qms')
10480 rec( 10, 4, QueueID ),
10481 rec( 14, 4, JobNumberLong ),
10484 rec( 8, 4, QueueID ),
10485 rec( 12, 4, JobNumberLong ),
10486 rec( 16, 4, FileSize, BE ),
10488 pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200,
10489 0xd300, 0xd400, 0xd500, 0xd601, 0xd703,
10490 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc05, 0xff00])
10491 # 2222/1788, 23/136
10492 pkt = NCP(0x1788, "Move Queue Job From Src Q to Dst Q", 'qms')
10494 rec( 10, 4, QueueID ),
10495 rec( 14, 4, JobNumberLong ),
10496 rec( 18, 4, DstQueueID ),
10499 rec( 8, 4, JobNumberLong ),
10501 pkt.CompletionCodes([0x0000, 0x7e01, 0xfc06])
10502 # 2222/1789, 23/137
10503 pkt = NCP(0x1789, "Get Queue Jobs From Form List", 'qms')
10505 rec( 10, 4, QueueID ),
10506 rec( 14, 4, QueueStartPosition ),
10507 rec( 18, 4, FormTypeCnt, LE, var="x" ),
10508 rec( 22, 2, FormType, repeat="x" ),
10511 rec( 8, 4, TotalQueueJobs ),
10512 rec( 12, 4, JobCount, var="x" ),
10513 rec( 16, 4, JobNumberLong, repeat="x" ),
10515 pkt.CompletionCodes([0x0000, 0x7e01, 0xd300, 0xfc06])
10516 # 2222/178A, 23/138
10517 pkt = NCP(0x178A, "Service Queue Job By Form List", 'qms')
10519 rec( 10, 4, QueueID ),
10520 rec( 14, 4, QueueStartPosition ),
10521 rec( 18, 4, FormTypeCnt, LE, var= "x" ),
10522 rec( 22, 2, FormType, repeat="x" ),
10525 rec( 8, 86, JobStructNew ),
10527 pkt.CompletionCodes([0x0000, 0x7e01, 0xd902, 0xfc06, 0xff00])
10528 # 2222/1796, 23/150
10529 pkt = NCP(0x1796, "Get Current Account Status", 'accounting')
10530 pkt.Request((13,60), [
10531 rec( 10, 2, ObjectType, BE ),
10532 rec( 12, (1,48), ObjectName ),
10533 ], info_str=(ObjectName, "Get Current Account Status: %s", ", %s"))
10535 rec( 8, 4, AccountBalance, BE ),
10536 rec( 12, 4, CreditLimit, BE ),
10537 rec( 16, 120, Reserved120 ),
10538 rec( 136, 4, HolderID, BE ),
10539 rec( 140, 4, HoldAmount, BE ),
10540 rec( 144, 4, HolderID, BE ),
10541 rec( 148, 4, HoldAmount, BE ),
10542 rec( 152, 4, HolderID, BE ),
10543 rec( 156, 4, HoldAmount, BE ),
10544 rec( 160, 4, HolderID, BE ),
10545 rec( 164, 4, HoldAmount, BE ),
10546 rec( 168, 4, HolderID, BE ),
10547 rec( 172, 4, HoldAmount, BE ),
10548 rec( 176, 4, HolderID, BE ),
10549 rec( 180, 4, HoldAmount, BE ),
10550 rec( 184, 4, HolderID, BE ),
10551 rec( 188, 4, HoldAmount, BE ),
10552 rec( 192, 4, HolderID, BE ),
10553 rec( 196, 4, HoldAmount, BE ),
10554 rec( 200, 4, HolderID, BE ),
10555 rec( 204, 4, HoldAmount, BE ),
10556 rec( 208, 4, HolderID, BE ),
10557 rec( 212, 4, HoldAmount, BE ),
10558 rec( 216, 4, HolderID, BE ),
10559 rec( 220, 4, HoldAmount, BE ),
10560 rec( 224, 4, HolderID, BE ),
10561 rec( 228, 4, HoldAmount, BE ),
10562 rec( 232, 4, HolderID, BE ),
10563 rec( 236, 4, HoldAmount, BE ),
10564 rec( 240, 4, HolderID, BE ),
10565 rec( 244, 4, HoldAmount, BE ),
10566 rec( 248, 4, HolderID, BE ),
10567 rec( 252, 4, HoldAmount, BE ),
10568 rec( 256, 4, HolderID, BE ),
10569 rec( 260, 4, HoldAmount, BE ),
10571 pkt.CompletionCodes([0x0000, 0x9600, 0xc000, 0xc101, 0xc400, 0xe800,
10572 0xea00, 0xeb00, 0xec00, 0xfc06, 0xfe07, 0xff00])
10573 # 2222/1797, 23/151
10574 pkt = NCP(0x1797, "Submit Account Charge", 'accounting')
10575 pkt.Request((26,327), [
10576 rec( 10, 2, ServiceType, BE ),
10577 rec( 12, 4, ChargeAmount, BE ),
10578 rec( 16, 4, HoldCancelAmount, BE ),
10579 rec( 20, 2, ObjectType, BE ),
10580 rec( 22, 2, CommentType, BE ),
10581 rec( 24, (1,48), ObjectName ),
10582 rec( -1, (1,255), Comment ),
10583 ], info_str=(ObjectName, "Submit Account Charge: %s", ", %s"))
10585 pkt.CompletionCodes([0x0000, 0x0102, 0x8800, 0x9400, 0x9600, 0xa201,
10586 0xc000, 0xc101, 0xc200, 0xc400, 0xe800, 0xea00,
10587 0xeb00, 0xec00, 0xfe07, 0xff00])
10588 # 2222/1798, 23/152
10589 pkt = NCP(0x1798, "Submit Account Hold", 'accounting')
10590 pkt.Request((17,64), [
10591 rec( 10, 4, HoldCancelAmount, BE ),
10592 rec( 14, 2, ObjectType, BE ),
10593 rec( 16, (1,48), ObjectName ),
10594 ], info_str=(ObjectName, "Submit Account Hold: %s", ", %s"))
10596 pkt.CompletionCodes([0x0000, 0x0102, 0x8800, 0x9400, 0x9600, 0xa201,
10597 0xc000, 0xc101, 0xc200, 0xc400, 0xe800, 0xea00,
10598 0xeb00, 0xec00, 0xfe07, 0xff00])
10599 # 2222/1799, 23/153
10600 pkt = NCP(0x1799, "Submit Account Note", 'accounting')
10601 pkt.Request((18,319), [
10602 rec( 10, 2, ServiceType, BE ),
10603 rec( 12, 2, ObjectType, BE ),
10604 rec( 14, 2, CommentType, BE ),
10605 rec( 16, (1,48), ObjectName ),
10606 rec( -1, (1,255), Comment ),
10607 ], info_str=(ObjectName, "Submit Account Note: %s", ", %s"))
10609 pkt.CompletionCodes([0x0000, 0x0102, 0x9600, 0xc000, 0xc101, 0xc400,
10610 0xe800, 0xea00, 0xeb00, 0xec00, 0xf000, 0xfc06,
10612 # 2222/17c8, 23/200
10613 pkt = NCP(0x17c8, "Check Console Privileges", 'fileserver')
10616 pkt.CompletionCodes([0x0000, 0xc601])
10617 # 2222/17c9, 23/201
10618 pkt = NCP(0x17c9, "Get File Server Description Strings", 'fileserver')
10621 rec( 8, 100, DescriptionStrings ),
10623 pkt.CompletionCodes([0x0000, 0x9600])
10624 # 2222/17CA, 23/202
10625 pkt = NCP(0x17CA, "Set File Server Date And Time", 'fileserver')
10627 rec( 10, 1, Year ),
10628 rec( 11, 1, Month ),
10630 rec( 13, 1, Hour ),
10631 rec( 14, 1, Minute ),
10632 rec( 15, 1, Second ),
10635 pkt.CompletionCodes([0x0000, 0xc601])
10636 # 2222/17CB, 23/203
10637 pkt = NCP(0x17CB, "Disable File Server Login", 'fileserver')
10640 pkt.CompletionCodes([0x0000, 0xc601])
10641 # 2222/17CC, 23/204
10642 pkt = NCP(0x17CC, "Enable File Server Login", 'fileserver')
10645 pkt.CompletionCodes([0x0000, 0xc601])
10646 # 2222/17CD, 23/205
10647 pkt = NCP(0x17CD, "Get File Server Login Status", 'fileserver')
10650 rec( 8, 1, UserLoginAllowed ),
10652 pkt.CompletionCodes([0x0000, 0x9600, 0xfb01])
10653 # 2222/17CF, 23/207
10654 pkt = NCP(0x17CF, "Disable Transaction Tracking", 'fileserver')
10657 pkt.CompletionCodes([0x0000, 0xc601])
10658 # 2222/17D0, 23/208
10659 pkt = NCP(0x17D0, "Enable Transaction Tracking", 'fileserver')
10662 pkt.CompletionCodes([0x0000, 0xc601])
10663 # 2222/17D1, 23/209
10664 pkt = NCP(0x17D1, "Send Console Broadcast", 'fileserver')
10665 pkt.Request((13,267), [
10666 rec( 10, 1, NumberOfStations, var="x" ),
10667 rec( 11, 1, StationList, repeat="x" ),
10668 rec( 12, (1, 255), TargetMessage ),
10669 ], info_str=(TargetMessage, "Send Console Broadcast: %s", ", %s"))
10671 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10672 # 2222/17D2, 23/210
10673 pkt = NCP(0x17D2, "Clear Connection Number", 'fileserver')
10675 rec( 10, 1, ConnectionNumber ),
10676 ],info_str=(ConnectionNumber, "Clear Connection Number %d", ", %d"))
10678 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
10679 # 2222/17D3, 23/211
10680 pkt = NCP(0x17D3, "Down File Server", 'fileserver')
10682 rec( 10, 1, ForceFlag ),
10685 pkt.CompletionCodes([0x0000, 0xc601, 0xff00])
10686 # 2222/17D4, 23/212
10687 pkt = NCP(0x17D4, "Get File System Statistics", 'fileserver')
10690 rec( 8, 4, SystemIntervalMarker, BE ),
10691 rec( 12, 2, ConfiguredMaxOpenFiles ),
10692 rec( 14, 2, ActualMaxOpenFiles ),
10693 rec( 16, 2, CurrentOpenFiles ),
10694 rec( 18, 4, TotalFilesOpened ),
10695 rec( 22, 4, TotalReadRequests ),
10696 rec( 26, 4, TotalWriteRequests ),
10697 rec( 30, 2, CurrentChangedFATs ),
10698 rec( 32, 4, TotalChangedFATs ),
10699 rec( 36, 2, FATWriteErrors ),
10700 rec( 38, 2, FatalFATWriteErrors ),
10701 rec( 40, 2, FATScanErrors ),
10702 rec( 42, 2, ActualMaxIndexedFiles ),
10703 rec( 44, 2, ActiveIndexedFiles ),
10704 rec( 46, 2, AttachedIndexedFiles ),
10705 rec( 48, 2, AvailableIndexedFiles ),
10707 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10708 # 2222/17D5, 23/213
10709 pkt = NCP(0x17D5, "Get Transaction Tracking Statistics", 'fileserver')
10710 pkt.Request((13,267), [
10711 rec( 10, 2, LastRecordSeen ),
10712 rec( 12, (1,255), SemaphoreName ),
10715 rec( 8, 4, SystemIntervalMarker, BE ),
10716 rec( 12, 1, TransactionTrackingSupported ),
10717 rec( 13, 1, TransactionTrackingEnabled ),
10718 rec( 14, 2, TransactionVolumeNumber ),
10719 rec( 16, 2, ConfiguredMaxSimultaneousTransactions ),
10720 rec( 18, 2, ActualMaxSimultaneousTransactions ),
10721 rec( 20, 2, CurrentTransactionCount ),
10722 rec( 22, 4, TotalTransactionsPerformed ),
10723 rec( 26, 4, TotalWriteTransactionsPerformed ),
10724 rec( 30, 4, TotalTransactionsBackedOut ),
10725 rec( 34, 2, TotalUnfilledBackoutRequests ),
10726 rec( 36, 2, TransactionDiskSpace ),
10727 rec( 38, 4, TransactionFATAllocations ),
10728 rec( 42, 4, TransactionFileSizeChanges ),
10729 rec( 46, 4, TransactionFilesTruncated ),
10730 rec( 50, 1, NumberOfEntries, var="x" ),
10731 rec( 51, 2, ConnTaskStruct, repeat="x" ),
10733 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10734 # 2222/17D6, 23/214
10735 pkt = NCP(0x17D6, "Read Disk Cache Statistics", 'fileserver')
10738 rec( 8, 4, SystemIntervalMarker, BE ),
10739 rec( 12, 2, CacheBufferCount ),
10740 rec( 14, 2, CacheBufferSize ),
10741 rec( 16, 2, DirtyCacheBuffers ),
10742 rec( 18, 4, CacheReadRequests ),
10743 rec( 22, 4, CacheWriteRequests ),
10744 rec( 26, 4, CacheHits ),
10745 rec( 30, 4, CacheMisses ),
10746 rec( 34, 4, PhysicalReadRequests ),
10747 rec( 38, 4, PhysicalWriteRequests ),
10748 rec( 42, 2, PhysicalReadErrors ),
10749 rec( 44, 2, PhysicalWriteErrors ),
10750 rec( 46, 4, CacheGetRequests ),
10751 rec( 50, 4, CacheFullWriteRequests ),
10752 rec( 54, 4, CachePartialWriteRequests ),
10753 rec( 58, 4, BackgroundDirtyWrites ),
10754 rec( 62, 4, BackgroundAgedWrites ),
10755 rec( 66, 4, TotalCacheWrites ),
10756 rec( 70, 4, CacheAllocations ),
10757 rec( 74, 2, ThrashingCount ),
10758 rec( 76, 2, LRUBlockWasDirty ),
10759 rec( 78, 2, ReadBeyondWrite ),
10760 rec( 80, 2, FragmentWriteOccurred ),
10761 rec( 82, 2, CacheHitOnUnavailableBlock ),
10762 rec( 84, 2, CacheBlockScrapped ),
10764 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10765 # 2222/17D7, 23/215
10766 pkt = NCP(0x17D7, "Get Drive Mapping Table", 'fileserver')
10769 rec( 8, 4, SystemIntervalMarker, BE ),
10770 rec( 12, 1, SFTSupportLevel ),
10771 rec( 13, 1, LogicalDriveCount ),
10772 rec( 14, 1, PhysicalDriveCount ),
10773 rec( 15, 1, DiskChannelTable ),
10774 rec( 16, 4, Reserved4 ),
10775 rec( 20, 2, PendingIOCommands, BE ),
10776 rec( 22, 32, DriveMappingTable ),
10777 rec( 54, 32, DriveMirrorTable ),
10778 rec( 86, 32, DeadMirrorTable ),
10779 rec( 118, 1, ReMirrorDriveNumber ),
10780 rec( 119, 1, Filler ),
10781 rec( 120, 4, ReMirrorCurrentOffset, BE ),
10782 rec( 124, 60, SFTErrorTable ),
10784 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10785 # 2222/17D8, 23/216
10786 pkt = NCP(0x17D8, "Read Physical Disk Statistics", 'fileserver')
10788 rec( 10, 1, PhysicalDiskNumber ),
10791 rec( 8, 4, SystemIntervalMarker, BE ),
10792 rec( 12, 1, PhysicalDiskChannel ),
10793 rec( 13, 1, DriveRemovableFlag ),
10794 rec( 14, 1, PhysicalDriveType ),
10795 rec( 15, 1, ControllerDriveNumber ),
10796 rec( 16, 1, ControllerNumber ),
10797 rec( 17, 1, ControllerType ),
10798 rec( 18, 4, DriveSize ),
10799 rec( 22, 2, DriveCylinders ),
10800 rec( 24, 1, DriveHeads ),
10801 rec( 25, 1, SectorsPerTrack ),
10802 rec( 26, 64, DriveDefinitionString ),
10803 rec( 90, 2, IOErrorCount ),
10804 rec( 92, 4, HotFixTableStart ),
10805 rec( 96, 2, HotFixTableSize ),
10806 rec( 98, 2, HotFixBlocksAvailable ),
10807 rec( 100, 1, HotFixDisabled ),
10809 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10810 # 2222/17D9, 23/217
10811 pkt = NCP(0x17D9, "Get Disk Channel Statistics", 'fileserver')
10813 rec( 10, 1, DiskChannelNumber ),
10816 rec( 8, 4, SystemIntervalMarker, BE ),
10817 rec( 12, 2, ChannelState, BE ),
10818 rec( 14, 2, ChannelSynchronizationState, BE ),
10819 rec( 16, 1, SoftwareDriverType ),
10820 rec( 17, 1, SoftwareMajorVersionNumber ),
10821 rec( 18, 1, SoftwareMinorVersionNumber ),
10822 rec( 19, 65, SoftwareDescription ),
10823 rec( 84, 8, IOAddressesUsed ),
10824 rec( 92, 10, SharedMemoryAddresses ),
10825 rec( 102, 4, InterruptNumbersUsed ),
10826 rec( 106, 4, DMAChannelsUsed ),
10827 rec( 110, 1, FlagBits ),
10828 rec( 111, 1, Reserved ),
10829 rec( 112, 80, ConfigurationDescription ),
10831 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10832 # 2222/17DB, 23/219
10833 pkt = NCP(0x17DB, "Get Connection's Open Files", 'fileserver')
10835 rec( 10, 2, ConnectionNumber ),
10836 rec( 12, 2, LastRecordSeen, BE ),
10839 rec( 8, 2, NextRequestRecord ),
10840 rec( 10, 1, NumberOfRecords, var="x" ),
10841 rec( 11, 21, ConnStruct, repeat="x" ),
10843 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10844 # 2222/17DC, 23/220
10845 pkt = NCP(0x17DC, "Get Connection Using A File", 'fileserver')
10846 pkt.Request((14,268), [
10847 rec( 10, 2, LastRecordSeen, BE ),
10848 rec( 12, 1, DirHandle ),
10849 rec( 13, (1,255), Path ),
10850 ], info_str=(Path, "Get Connection Using File: %s", ", %s"))
10852 rec( 8, 2, UseCount, BE ),
10853 rec( 10, 2, OpenCount, BE ),
10854 rec( 12, 2, OpenForReadCount, BE ),
10855 rec( 14, 2, OpenForWriteCount, BE ),
10856 rec( 16, 2, DenyReadCount, BE ),
10857 rec( 18, 2, DenyWriteCount, BE ),
10858 rec( 20, 2, NextRequestRecord, BE ),
10859 rec( 22, 1, Locked ),
10860 rec( 23, 1, NumberOfRecords, var="x" ),
10861 rec( 24, 6, ConnFileStruct, repeat="x" ),
10863 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
10864 # 2222/17DD, 23/221
10865 pkt = NCP(0x17DD, "Get Physical Record Locks By Connection And File", 'fileserver')
10867 rec( 10, 2, TargetConnectionNumber ),
10868 rec( 12, 2, LastRecordSeen, BE ),
10869 rec( 14, 1, VolumeNumber ),
10870 rec( 15, 2, DirectoryID ),
10871 rec( 17, 14, FileName14 ),
10872 ], info_str=(FileName14, "Get Physical Record Locks by Connection and File: %s", ", %s"))
10874 rec( 8, 2, NextRequestRecord ),
10875 rec( 10, 1, NumberOfLocks, var="x" ),
10876 rec( 11, 1, Reserved ),
10877 rec( 12, 10, LockStruct, repeat="x" ),
10879 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10880 # 2222/17DE, 23/222
10881 pkt = NCP(0x17DE, "Get Physical Record Locks By File", 'fileserver')
10882 pkt.Request((14,268), [
10883 rec( 10, 2, TargetConnectionNumber ),
10884 rec( 12, 1, DirHandle ),
10885 rec( 13, (1,255), Path ),
10886 ], info_str=(Path, "Get Physical Record Locks by File: %s", ", %s"))
10888 rec( 8, 2, NextRequestRecord ),
10889 rec( 10, 1, NumberOfLocks, var="x" ),
10890 rec( 11, 1, Reserved ),
10891 rec( 12, 16, PhyLockStruct, repeat="x" ),
10893 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10894 # 2222/17DF, 23/223
10895 pkt = NCP(0x17DF, "Get Logical Records By Connection", 'fileserver')
10897 rec( 10, 2, TargetConnectionNumber ),
10898 rec( 12, 2, LastRecordSeen, BE ),
10900 pkt.Reply((14,268), [
10901 rec( 8, 2, NextRequestRecord ),
10902 rec( 10, 1, NumberOfRecords, var="x" ),
10903 rec( 11, (3, 257), LogLockStruct, repeat="x" ),
10905 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10906 # 2222/17E0, 23/224
10907 pkt = NCP(0x17E0, "Get Logical Record Information", 'fileserver')
10908 pkt.Request((13,267), [
10909 rec( 10, 2, LastRecordSeen ),
10910 rec( 12, (1,255), LogicalRecordName ),
10911 ], info_str=(LogicalRecordName, "Get Logical Record Information: %s", ", %s"))
10913 rec( 8, 2, UseCount, BE ),
10914 rec( 10, 2, ShareableLockCount, BE ),
10915 rec( 12, 2, NextRequestRecord ),
10916 rec( 14, 1, Locked ),
10917 rec( 15, 1, NumberOfRecords, var="x" ),
10918 rec( 16, 4, LogRecStruct, repeat="x" ),
10920 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10921 # 2222/17E1, 23/225
10922 pkt = NCP(0x17E1, "Get Connection's Semaphores", 'fileserver')
10924 rec( 10, 2, ConnectionNumber ),
10925 rec( 12, 2, LastRecordSeen ),
10927 pkt.Reply((18,272), [
10928 rec( 8, 2, NextRequestRecord ),
10929 rec( 10, 2, NumberOfSemaphores, var="x" ),
10930 rec( 12, (6,260), SemaStruct, repeat="x" ),
10932 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10933 # 2222/17E2, 23/226
10934 pkt = NCP(0x17E2, "Get Semaphore Information", 'fileserver')
10935 pkt.Request((13,267), [
10936 rec( 10, 2, LastRecordSeen ),
10937 rec( 12, (1,255), SemaphoreName ),
10938 ], info_str=(SemaphoreName, "Get Semaphore Information: %s", ", %s"))
10940 rec( 8, 2, NextRequestRecord, BE ),
10941 rec( 10, 2, OpenCount, BE ),
10942 rec( 12, 1, SemaphoreValue ),
10943 rec( 13, 1, NumberOfRecords, var="x" ),
10944 rec( 14, 3, SemaInfoStruct, repeat="x" ),
10946 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10947 # 2222/17E3, 23/227
10948 pkt = NCP(0x17E3, "Get LAN Driver Configuration Information", 'fileserver')
10950 rec( 10, 1, LANDriverNumber ),
10953 rec( 8, 4, NetworkAddress, BE ),
10954 rec( 12, 6, HostAddress ),
10955 rec( 18, 1, BoardInstalled ),
10956 rec( 19, 1, OptionNumber ),
10957 rec( 20, 160, ConfigurationText ),
10959 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10960 # 2222/17E5, 23/229
10961 pkt = NCP(0x17E5, "Get Connection Usage Statistics", 'fileserver')
10963 rec( 10, 2, ConnectionNumber ),
10966 rec( 8, 2, NextRequestRecord ),
10967 rec( 10, 6, BytesRead ),
10968 rec( 16, 6, BytesWritten ),
10969 rec( 22, 4, TotalRequestPackets ),
10971 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10972 # 2222/17E6, 23/230
10973 pkt = NCP(0x17E6, "Get Object's Remaining Disk Space", 'fileserver')
10975 rec( 10, 4, ObjectID, BE ),
10978 rec( 8, 4, SystemIntervalMarker, BE ),
10979 rec( 12, 4, ObjectID ),
10980 rec( 16, 4, UnusedDiskBlocks, BE ),
10981 rec( 20, 1, RestrictionsEnforced ),
10983 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
10984 # 2222/17E7, 23/231
10985 pkt = NCP(0x17E7, "Get File Server LAN I/O Statistics", 'fileserver')
10988 rec( 8, 4, SystemIntervalMarker, BE ),
10989 rec( 12, 2, ConfiguredMaxRoutingBuffers ),
10990 rec( 14, 2, ActualMaxUsedRoutingBuffers ),
10991 rec( 16, 2, CurrentlyUsedRoutingBuffers ),
10992 rec( 18, 4, TotalFileServicePackets ),
10993 rec( 22, 2, TurboUsedForFileService ),
10994 rec( 24, 2, PacketsFromInvalidConnection ),
10995 rec( 26, 2, BadLogicalConnectionCount ),
10996 rec( 28, 2, PacketsReceivedDuringProcessing ),
10997 rec( 30, 2, RequestsReprocessed ),
10998 rec( 32, 2, PacketsWithBadSequenceNumber ),
10999 rec( 34, 2, DuplicateRepliesSent ),
11000 rec( 36, 2, PositiveAcknowledgesSent ),
11001 rec( 38, 2, PacketsWithBadRequestType ),
11002 rec( 40, 2, AttachDuringProcessing ),
11003 rec( 42, 2, AttachWhileProcessingAttach ),
11004 rec( 44, 2, ForgedDetachedRequests ),
11005 rec( 46, 2, DetachForBadConnectionNumber ),
11006 rec( 48, 2, DetachDuringProcessing ),
11007 rec( 50, 2, RepliesCancelled ),
11008 rec( 52, 2, PacketsDiscardedByHopCount ),
11009 rec( 54, 2, PacketsDiscardedUnknownNet ),
11010 rec( 56, 2, IncomingPacketDiscardedNoDGroup ),
11011 rec( 58, 2, OutgoingPacketDiscardedNoTurboBuffer ),
11012 rec( 60, 2, IPXNotMyNetwork ),
11013 rec( 62, 4, NetBIOSBroadcastWasPropogated ),
11014 rec( 66, 4, TotalOtherPackets ),
11015 rec( 70, 4, TotalRoutedPackets ),
11017 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
11018 # 2222/17E8, 23/232
11019 pkt = NCP(0x17E8, "Get File Server Misc Information", 'fileserver')
11022 rec( 8, 4, SystemIntervalMarker, BE ),
11023 rec( 12, 1, ProcessorType ),
11024 rec( 13, 1, Reserved ),
11025 rec( 14, 1, NumberOfServiceProcesses ),
11026 rec( 15, 1, ServerUtilizationPercentage ),
11027 rec( 16, 2, ConfiguredMaxBinderyObjects ),
11028 rec( 18, 2, ActualMaxBinderyObjects ),
11029 rec( 20, 2, CurrentUsedBinderyObjects ),
11030 rec( 22, 2, TotalServerMemory ),
11031 rec( 24, 2, WastedServerMemory ),
11032 rec( 26, 2, NumberOfDynamicMemoryAreas, var="x" ),
11033 rec( 28, 12, DynMemStruct, repeat="x" ),
11035 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
11036 # 2222/17E9, 23/233
11037 pkt = NCP(0x17E9, "Get Volume Information", 'fileserver')
11039 rec( 10, 1, VolumeNumber ),
11040 ],info_str=(VolumeNumber, "Get Information on Volume %d", ", %d"))
11042 rec( 8, 4, SystemIntervalMarker, BE ),
11043 rec( 12, 1, VolumeNumber ),
11044 rec( 13, 1, LogicalDriveNumber ),
11045 rec( 14, 2, BlockSize ),
11046 rec( 16, 2, StartingBlock ),
11047 rec( 18, 2, TotalBlocks ),
11048 rec( 20, 2, FreeBlocks ),
11049 rec( 22, 2, TotalDirectoryEntries ),
11050 rec( 24, 2, FreeDirectoryEntries ),
11051 rec( 26, 2, ActualMaxUsedDirectoryEntries ),
11052 rec( 28, 1, VolumeHashedFlag ),
11053 rec( 29, 1, VolumeCachedFlag ),
11054 rec( 30, 1, VolumeRemovableFlag ),
11055 rec( 31, 1, VolumeMountedFlag ),
11056 rec( 32, 16, VolumeName ),
11058 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
11059 # 2222/17EA, 23/234
11060 pkt = NCP(0x17EA, "Get Connection's Task Information", 'fileserver')
11062 rec( 10, 2, ConnectionNumber ),
11065 rec( 8, 1, ConnLockStatus ),
11066 rec( 9, 1, NumberOfActiveTasks, var="x" ),
11067 rec( 10, 3, TaskStruct, repeat="x" ),
11069 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
11070 # 2222/17EB, 23/235
11071 pkt = NCP(0x17EB, "Get Connection's Open Files", 'fileserver')
11073 rec( 10, 2, ConnectionNumber ),
11074 rec( 12, 2, LastRecordSeen ),
11076 pkt.Reply((29,283), [
11077 rec( 8, 2, NextRequestRecord ),
11078 rec( 10, 2, NumberOfRecords, var="x" ),
11079 rec( 12, (17, 271), OpnFilesStruct, repeat="x" ),
11081 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
11082 # 2222/17EC, 23/236
11083 pkt = NCP(0x17EC, "Get Connection Using A File", 'fileserver')
11085 rec( 10, 1, DataStreamNumber ),
11086 rec( 11, 1, VolumeNumber ),
11087 rec( 12, 4, DirectoryBase, LE ),
11088 rec( 16, 2, LastRecordSeen ),
11091 rec( 8, 2, NextRequestRecord ),
11092 rec( 10, 2, FileUseCount ),
11093 rec( 12, 2, OpenCount ),
11094 rec( 14, 2, OpenForReadCount ),
11095 rec( 16, 2, OpenForWriteCount ),
11096 rec( 18, 2, DenyReadCount ),
11097 rec( 20, 2, DenyWriteCount ),
11098 rec( 22, 1, Locked ),
11099 rec( 23, 1, ForkCount ),
11100 rec( 24, 2, NumberOfRecords, var="x" ),
11101 rec( 26, 7, ConnFileStruct, repeat="x" ),
11103 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xff00])
11104 # 2222/17ED, 23/237
11105 pkt = NCP(0x17ED, "Get Physical Record Locks By Connection And File", 'fileserver')
11107 rec( 10, 2, TargetConnectionNumber ),
11108 rec( 12, 1, DataStreamNumber ),
11109 rec( 13, 1, VolumeNumber ),
11110 rec( 14, 4, DirectoryBase, LE ),
11111 rec( 18, 2, LastRecordSeen ),
11114 rec( 8, 2, NextRequestRecord ),
11115 rec( 10, 2, NumberOfLocks, LE, var="x" ),
11116 rec( 12, 11, LockStruct, repeat="x" ),
11118 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
11119 # 2222/17EE, 23/238
11120 pkt = NCP(0x17EE, "Get Physical Record Locks By File", 'fileserver')
11122 rec( 10, 1, DataStreamNumber ),
11123 rec( 11, 1, VolumeNumber ),
11124 rec( 12, 4, DirectoryBase ),
11125 rec( 16, 2, LastRecordSeen ),
11128 rec( 8, 2, NextRequestRecord ),
11129 rec( 10, 2, NumberOfLocks, LE, var="x" ),
11130 rec( 12, 18, PhyLockStruct, repeat="x" ),
11132 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
11133 # 2222/17EF, 23/239
11134 pkt = NCP(0x17EF, "Get Logical Records By Connection", 'fileserver')
11136 rec( 10, 2, TargetConnectionNumber ),
11137 rec( 12, 2, LastRecordSeen ),
11139 pkt.Reply((16,270), [
11140 rec( 8, 2, NextRequestRecord ),
11141 rec( 10, 2, NumberOfRecords, var="x" ),
11142 rec( 12, (4, 258), LogLockStruct, repeat="x" ),
11144 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
11145 # 2222/17F0, 23/240
11146 pkt = NCP(0x17F0, "Get Logical Record Information (old)", 'fileserver')
11147 pkt.Request((13,267), [
11148 rec( 10, 2, LastRecordSeen ),
11149 rec( 12, (1,255), LogicalRecordName ),
11152 rec( 8, 2, ShareableLockCount ),
11153 rec( 10, 2, UseCount ),
11154 rec( 12, 1, Locked ),
11155 rec( 13, 2, NextRequestRecord ),
11156 rec( 15, 2, NumberOfRecords, var="x" ),
11157 rec( 17, 5, LogRecStruct, repeat="x" ),
11159 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
11160 # 2222/17F1, 23/241
11161 pkt = NCP(0x17F1, "Get Connection's Semaphores", 'fileserver')
11163 rec( 10, 2, ConnectionNumber ),
11164 rec( 12, 2, LastRecordSeen ),
11166 pkt.Reply((19,273), [
11167 rec( 8, 2, NextRequestRecord ),
11168 rec( 10, 2, NumberOfSemaphores, var="x" ),
11169 rec( 12, (7, 261), SemaStruct, repeat="x" ),
11171 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
11172 # 2222/17F2, 23/242
11173 pkt = NCP(0x17F2, "Get Semaphore Information", 'fileserver')
11174 pkt.Request((13,267), [
11175 rec( 10, 2, LastRecordSeen ),
11176 rec( 12, (1,255), SemaphoreName ),
11177 ], info_str=(SemaphoreName, "Get Semaphore Information: %s", ", %s"))
11179 rec( 8, 2, NextRequestRecord ),
11180 rec( 10, 2, OpenCount ),
11181 rec( 12, 2, SemaphoreValue ),
11182 rec( 14, 2, NumberOfRecords, var="x" ),
11183 rec( 16, 4, SemaInfoStruct, repeat="x" ),
11185 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
11186 # 2222/17F3, 23/243
11187 pkt = NCP(0x17F3, "Map Directory Number to Path", 'file')
11189 rec( 10, 1, VolumeNumber ),
11190 rec( 11, 4, DirectoryNumber ),
11191 rec( 15, 1, NameSpace ),
11193 pkt.Reply((9,263), [
11194 rec( 8, (1,255), Path ),
11196 pkt.CompletionCodes([0x0000, 0x9600, 0x9c00, 0xc601, 0xfd00, 0xff00])
11197 # 2222/17F4, 23/244
11198 pkt = NCP(0x17F4, "Convert Path to Dir Entry", 'file')
11199 pkt.Request((12,266), [
11200 rec( 10, 1, DirHandle ),
11201 rec( 11, (1,255), Path ),
11202 ], info_str=(Path, "Convert Path to Directory Entry: %s", ", %s"))
11204 rec( 8, 1, VolumeNumber ),
11205 rec( 9, 4, DirectoryNumber ),
11207 pkt.CompletionCodes([0x0000, 0x9600, 0xc601, 0xfd00, 0xff00])
11208 # 2222/17FD, 23/253
11209 pkt = NCP(0x17FD, "Send Console Broadcast", 'fileserver')
11210 pkt.Request((16, 270), [
11211 rec( 10, 1, NumberOfStations, var="x" ),
11212 rec( 11, 4, StationList, repeat="x" ),
11213 rec( 15, (1, 255), TargetMessage ),
11214 ], info_str=(TargetMessage, "Send Console Broadcast: %s", ", %s"))
11216 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
11217 # 2222/17FE, 23/254
11218 pkt = NCP(0x17FE, "Clear Connection Number", 'fileserver')
11220 rec( 10, 4, ConnectionNumber ),
11223 pkt.CompletionCodes([0x0000, 0xc601, 0xfd00])
11225 pkt = NCP(0x18, "End of Job", 'connection')
11228 pkt.CompletionCodes([0x0000])
11230 pkt = NCP(0x19, "Logout", 'connection')
11233 pkt.CompletionCodes([0x0000])
11235 pkt = NCP(0x1A, "Log Physical Record", 'sync')
11237 rec( 7, 1, LockFlag ),
11238 rec( 8, 6, FileHandle ),
11239 rec( 14, 4, LockAreasStartOffset, BE ),
11240 rec( 18, 4, LockAreaLen, BE ),
11241 rec( 22, 2, LockTimeout ),
11242 ], info_str=(LockAreaLen, "Lock Record - Length of %d", "%d"))
11244 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
11246 pkt = NCP(0x1B, "Lock Physical Record Set", 'sync')
11248 rec( 7, 1, LockFlag ),
11249 rec( 8, 2, LockTimeout ),
11252 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
11254 pkt = NCP(0x1C, "Release Physical Record", 'sync')
11256 rec( 7, 1, Reserved ),
11257 rec( 8, 6, FileHandle ),
11258 rec( 14, 4, LockAreasStartOffset ),
11259 rec( 18, 4, LockAreaLen ),
11260 ], info_str=(LockAreaLen, "Release Lock Record - Length of %d", "%d"))
11262 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
11264 pkt = NCP(0x1D, "Release Physical Record Set", 'sync')
11266 rec( 7, 1, LockFlag ),
11269 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
11270 # 2222/1E, 30 #Tested and fixed 6-14-02 GM
11271 pkt = NCP(0x1E, "Clear Physical Record", 'sync')
11273 rec( 7, 1, Reserved ),
11274 rec( 8, 6, FileHandle ),
11275 rec( 14, 4, LockAreasStartOffset, BE ),
11276 rec( 18, 4, LockAreaLen, BE ),
11277 ], info_str=(LockAreaLen, "Clear Lock Record - Length of %d", "%d"))
11279 pkt.CompletionCodes([0x0000, 0x8000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
11281 pkt = NCP(0x1F, "Clear Physical Record Set", 'sync')
11283 rec( 7, 1, LockFlag ),
11286 pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03])
11288 pkt = NCP(0x2000, "Open Semaphore", 'sync', has_length=0)
11289 pkt.Request((10,264), [
11290 rec( 8, 1, InitialSemaphoreValue ),
11291 rec( 9, (1,255), SemaphoreName ),
11292 ], info_str=(SemaphoreName, "Open Semaphore: %s", ", %s"))
11294 rec( 8, 4, SemaphoreHandle, BE ),
11295 rec( 12, 1, SemaphoreOpenCount ),
11297 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
11299 pkt = NCP(0x2001, "Examine Semaphore", 'sync', has_length=0)
11301 rec( 8, 4, SemaphoreHandle, BE ),
11304 rec( 8, 1, SemaphoreValue ),
11305 rec( 9, 1, SemaphoreOpenCount ),
11307 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
11309 pkt = NCP(0x2002, "Wait On Semaphore", 'sync', has_length=0)
11311 rec( 8, 4, SemaphoreHandle, BE ),
11312 rec( 12, 2, SemaphoreTimeOut, BE ),
11315 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
11317 pkt = NCP(0x2003, "Signal Semaphore", 'sync', has_length=0)
11319 rec( 8, 4, SemaphoreHandle, BE ),
11322 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
11324 pkt = NCP(0x2004, "Close Semaphore", 'sync', has_length=0)
11326 rec( 8, 4, SemaphoreHandle, BE ),
11329 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
11331 pkt = NCP(0x21, "Negotiate Buffer Size", 'connection')
11333 rec( 7, 2, BufferSize, BE ),
11336 rec( 8, 2, BufferSize, BE ),
11338 pkt.CompletionCodes([0x0000])
11340 pkt = NCP(0x2200, "TTS Is Available", 'tts', has_length=0)
11343 pkt.CompletionCodes([0x0001, 0xfd03, 0xff12])
11345 pkt = NCP(0x2201, "TTS Begin Transaction", 'tts', has_length=0)
11348 pkt.CompletionCodes([0x0000])
11350 pkt = NCP(0x2202, "TTS End Transaction", 'tts', has_length=0)
11353 rec( 8, 4, TransactionNumber, BE ),
11355 pkt.CompletionCodes([0x0000, 0xff01])
11357 pkt = NCP(0x2203, "TTS Abort Transaction", 'tts', has_length=0)
11360 pkt.CompletionCodes([0x0000, 0xfd03, 0xfe0b, 0xff01])
11362 pkt = NCP(0x2204, "TTS Transaction Status", 'tts', has_length=0)
11364 rec( 8, 4, TransactionNumber, BE ),
11367 pkt.CompletionCodes([0x0000])
11369 pkt = NCP(0x2205, "TTS Get Application Thresholds", 'tts', has_length=0)
11372 rec( 8, 1, LogicalLockThreshold ),
11373 rec( 9, 1, PhysicalLockThreshold ),
11375 pkt.CompletionCodes([0x0000])
11377 pkt = NCP(0x2206, "TTS Set Application Thresholds", 'tts', has_length=0)
11379 rec( 8, 1, LogicalLockThreshold ),
11380 rec( 9, 1, PhysicalLockThreshold ),
11383 pkt.CompletionCodes([0x0000, 0x9600])
11385 pkt = NCP(0x2207, "TTS Get Workstation Thresholds", 'tts', has_length=0)
11388 rec( 8, 1, LogicalLockThreshold ),
11389 rec( 9, 1, PhysicalLockThreshold ),
11391 pkt.CompletionCodes([0x0000])
11393 pkt = NCP(0x2208, "TTS Set Workstation Thresholds", 'tts', has_length=0)
11395 rec( 8, 1, LogicalLockThreshold ),
11396 rec( 9, 1, PhysicalLockThreshold ),
11399 pkt.CompletionCodes([0x0000])
11401 pkt = NCP(0x2209, "TTS Get Transaction Bits", 'tts', has_length=0)
11404 rec( 8, 1, ControlFlags ),
11406 pkt.CompletionCodes([0x0000])
11408 pkt = NCP(0x220A, "TTS Set Transaction Bits", 'tts', has_length=0)
11410 rec( 8, 1, ControlFlags ),
11413 pkt.CompletionCodes([0x0000])
11415 pkt = NCP(0x2301, "AFP Create Directory", 'afp')
11416 pkt.Request((49, 303), [
11417 rec( 10, 1, VolumeNumber ),
11418 rec( 11, 4, BaseDirectoryID ),
11419 rec( 15, 1, Reserved ),
11420 rec( 16, 4, CreatorID ),
11421 rec( 20, 4, Reserved4 ),
11422 rec( 24, 2, FinderAttr ),
11423 rec( 26, 2, HorizLocation ),
11424 rec( 28, 2, VertLocation ),
11425 rec( 30, 2, FileDirWindow ),
11426 rec( 32, 16, Reserved16 ),
11427 rec( 48, (1,255), Path ),
11428 ], info_str=(Path, "AFP Create Directory: %s", ", %s"))
11430 rec( 8, 4, NewDirectoryID ),
11432 pkt.CompletionCodes([0x0000, 0x8301, 0x8400, 0x8800, 0x9300, 0x9600, 0x9804,
11433 0x9900, 0x9c03, 0x9e02, 0xa100, 0xa201, 0xfd00, 0xff18])
11435 pkt = NCP(0x2302, "AFP Create File", 'afp')
11436 pkt.Request((49, 303), [
11437 rec( 10, 1, VolumeNumber ),
11438 rec( 11, 4, BaseDirectoryID ),
11439 rec( 15, 1, DeleteExistingFileFlag ),
11440 rec( 16, 4, CreatorID, BE ),
11441 rec( 20, 4, Reserved4 ),
11442 rec( 24, 2, FinderAttr ),
11443 rec( 26, 2, HorizLocation, BE ),
11444 rec( 28, 2, VertLocation, BE ),
11445 rec( 30, 2, FileDirWindow, BE ),
11446 rec( 32, 16, Reserved16 ),
11447 rec( 48, (1,255), Path ),
11448 ], info_str=(Path, "AFP Create File: %s", ", %s"))
11450 rec( 8, 4, NewDirectoryID ),
11452 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8400, 0x8701, 0x8800,
11453 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9300, 0x9600, 0x9804,
11454 0x9900, 0x9b03, 0x9c03, 0x9e02, 0xa100, 0xa201, 0xfd00,
11457 pkt = NCP(0x2303, "AFP Delete", 'afp')
11458 pkt.Request((16,270), [
11459 rec( 10, 1, VolumeNumber ),
11460 rec( 11, 4, BaseDirectoryID ),
11461 rec( 15, (1,255), Path ),
11462 ], info_str=(Path, "AFP Delete: %s", ", %s"))
11464 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x8a00, 0x8d00, 0x8e00, 0x8f00,
11465 0x9000, 0x9300, 0x9600, 0x9804, 0x9b03, 0x9c03, 0x9e02,
11466 0xa000, 0xa100, 0xa201, 0xfd00, 0xff19])
11468 pkt = NCP(0x2304, "AFP Get Entry ID From Name", 'afp')
11469 pkt.Request((16,270), [
11470 rec( 10, 1, VolumeNumber ),
11471 rec( 11, 4, BaseDirectoryID ),
11472 rec( 15, (1,255), Path ),
11473 ], info_str=(Path, "AFP Get Entry from Name: %s", ", %s"))
11475 rec( 8, 4, TargetEntryID, BE ),
11477 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
11478 0xa100, 0xa201, 0xfd00, 0xff19])
11480 pkt = NCP(0x2305, "AFP Get File Information", 'afp')
11481 pkt.Request((18,272), [
11482 rec( 10, 1, VolumeNumber ),
11483 rec( 11, 4, BaseDirectoryID ),
11484 rec( 15, 2, RequestBitMap, BE ),
11485 rec( 17, (1,255), Path ),
11486 ], info_str=(Path, "AFP Get File Information: %s", ", %s"))
11488 rec( 8, 4, AFPEntryID, BE ),
11489 rec( 12, 4, ParentID, BE ),
11490 rec( 16, 2, AttributesDef16, LE ),
11491 rec( 18, 4, DataForkLen, BE ),
11492 rec( 22, 4, ResourceForkLen, BE ),
11493 rec( 26, 2, TotalOffspring, BE ),
11494 rec( 28, 2, CreationDate, BE ),
11495 rec( 30, 2, LastAccessedDate, BE ),
11496 rec( 32, 2, ModifiedDate, BE ),
11497 rec( 34, 2, ModifiedTime, BE ),
11498 rec( 36, 2, ArchivedDate, BE ),
11499 rec( 38, 2, ArchivedTime, BE ),
11500 rec( 40, 4, CreatorID, BE ),
11501 rec( 44, 4, Reserved4 ),
11502 rec( 48, 2, FinderAttr ),
11503 rec( 50, 2, HorizLocation ),
11504 rec( 52, 2, VertLocation ),
11505 rec( 54, 2, FileDirWindow ),
11506 rec( 56, 16, Reserved16 ),
11507 rec( 72, 32, LongName ),
11508 rec( 104, 4, CreatorID, BE ),
11509 rec( 108, 12, ShortName ),
11510 rec( 120, 1, AccessPrivileges ),
11512 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
11513 0xa100, 0xa201, 0xfd00, 0xff19])
11515 pkt = NCP(0x2306, "AFP Get Entry ID From NetWare Handle", 'afp')
11517 rec( 10, 6, FileHandle ),
11520 rec( 8, 1, VolumeID ),
11521 rec( 9, 4, TargetEntryID, BE ),
11522 rec( 13, 1, ForkIndicator ),
11524 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0xa201])
11526 pkt = NCP(0x2307, "AFP Rename", 'afp')
11527 pkt.Request((21, 529), [
11528 rec( 10, 1, VolumeNumber ),
11529 rec( 11, 4, MacSourceBaseID, BE ),
11530 rec( 15, 4, MacDestinationBaseID, BE ),
11531 rec( 19, (1,255), Path ),
11532 rec( -1, (1,255), NewFileNameLen ),
11533 ], info_str=(Path, "AFP Rename: %s", ", %s"))
11535 pkt.CompletionCodes([0x0000, 0x8301, 0x8401, 0x8800, 0x8b00, 0x8e00,
11536 0x9001, 0x9201, 0x9300, 0x9600, 0x9804, 0x9900,
11537 0x9c03, 0x9e00, 0xa100, 0xa201, 0xfd00, 0xff0a])
11539 pkt = NCP(0x2308, "AFP Open File Fork", 'afp')
11540 pkt.Request((18, 272), [
11541 rec( 10, 1, VolumeNumber ),
11542 rec( 11, 4, MacBaseDirectoryID ),
11543 rec( 15, 1, ForkIndicator ),
11544 rec( 16, 1, AccessMode ),
11545 rec( 17, (1,255), Path ),
11546 ], info_str=(Path, "AFP Open File Fork: %s", ", %s"))
11548 rec( 8, 4, AFPEntryID, BE ),
11549 rec( 12, 4, DataForkLen, BE ),
11550 rec( 16, 6, NetWareAccessHandle ),
11552 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8800, 0x9300,
11553 0x9400, 0x9600, 0x9804, 0x9900, 0x9c03, 0xa100,
11554 0xa201, 0xfd00, 0xff16])
11556 pkt = NCP(0x2309, "AFP Set File Information", 'afp')
11557 pkt.Request((64, 318), [
11558 rec( 10, 1, VolumeNumber ),
11559 rec( 11, 4, MacBaseDirectoryID ),
11560 rec( 15, 2, RequestBitMap, BE ),
11561 rec( 17, 2, MacAttr, BE ),
11562 rec( 19, 2, CreationDate, BE ),
11563 rec( 21, 2, LastAccessedDate, BE ),
11564 rec( 23, 2, ModifiedDate, BE ),
11565 rec( 25, 2, ModifiedTime, BE ),
11566 rec( 27, 2, ArchivedDate, BE ),
11567 rec( 29, 2, ArchivedTime, BE ),
11568 rec( 31, 4, CreatorID, BE ),
11569 rec( 35, 4, Reserved4 ),
11570 rec( 39, 2, FinderAttr ),
11571 rec( 41, 2, HorizLocation ),
11572 rec( 43, 2, VertLocation ),
11573 rec( 45, 2, FileDirWindow ),
11574 rec( 47, 16, Reserved16 ),
11575 rec( 63, (1,255), Path ),
11576 ], info_str=(Path, "AFP Set File Information: %s", ", %s"))
11578 pkt.CompletionCodes([0x0000, 0x0104, 0x8301, 0x8800, 0x9300, 0x9400,
11579 0x9500, 0x9600, 0x9804, 0x9c03, 0xa100, 0xa201,
11582 pkt = NCP(0x230A, "AFP Scan File Information", 'afp')
11583 pkt.Request((26, 280), [
11584 rec( 10, 1, VolumeNumber ),
11585 rec( 11, 4, MacBaseDirectoryID ),
11586 rec( 15, 4, MacLastSeenID, BE ),
11587 rec( 19, 2, DesiredResponseCount, BE ),
11588 rec( 21, 2, SearchBitMap, BE ),
11589 rec( 23, 2, RequestBitMap, BE ),
11590 rec( 25, (1,255), Path ),
11591 ], info_str=(Path, "AFP Scan File Information: %s", ", %s"))
11593 rec( 8, 2, ActualResponseCount, BE, var="x" ),
11594 rec( 10, 113, AFP10Struct, repeat="x" ),
11596 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804,
11597 0x9c03, 0xa100, 0xa201, 0xfd00, 0xff16])
11599 pkt = NCP(0x230B, "AFP Alloc Temporary Directory Handle", 'afp')
11600 pkt.Request((16,270), [
11601 rec( 10, 1, VolumeNumber ),
11602 rec( 11, 4, MacBaseDirectoryID ),
11603 rec( 15, (1,255), Path ),
11604 ], info_str=(Path, "AFP Allocate Temporary Directory Handle: %s", ", %s"))
11606 rec( 8, 1, DirHandle ),
11607 rec( 9, 1, AccessRightsMask ),
11609 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600,
11610 0x9804, 0x9b03, 0x9c03, 0x9d00, 0xa100,
11611 0xa201, 0xfd00, 0xff00])
11613 pkt = NCP(0x230C, "AFP Get Entry ID From Path Name", 'afp')
11614 pkt.Request((12,266), [
11615 rec( 10, 1, DirHandle ),
11616 rec( 11, (1,255), Path ),
11617 ], info_str=(Path, "AFP Get Entry ID from Path Name: %s", ", %s"))
11619 rec( 8, 4, AFPEntryID, BE ),
11621 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600,
11622 0x9804, 0x9b03, 0x9c03, 0xa100, 0xa201,
11625 pkt = NCP(0x230D, "AFP 2.0 Create Directory", 'afp')
11626 pkt.Request((55,309), [
11627 rec( 10, 1, VolumeNumber ),
11628 rec( 11, 4, BaseDirectoryID ),
11629 rec( 15, 1, Reserved ),
11630 rec( 16, 4, CreatorID, BE ),
11631 rec( 20, 4, Reserved4 ),
11632 rec( 24, 2, FinderAttr ),
11633 rec( 26, 2, HorizLocation ),
11634 rec( 28, 2, VertLocation ),
11635 rec( 30, 2, FileDirWindow ),
11636 rec( 32, 16, Reserved16 ),
11637 rec( 48, 6, ProDOSInfo ),
11638 rec( 54, (1,255), Path ),
11639 ], info_str=(Path, "AFP 2.0 Create Directory: %s", ", %s"))
11641 rec( 8, 4, NewDirectoryID ),
11643 pkt.CompletionCodes([0x0000, 0x8301, 0x8400, 0x8800, 0x9300,
11644 0x9600, 0x9804, 0x9900, 0x9c03, 0x9e00,
11645 0xa100, 0xa201, 0xfd00, 0xff00])
11647 pkt = NCP(0x230E, "AFP 2.0 Create File", 'afp')
11648 pkt.Request((55,309), [
11649 rec( 10, 1, VolumeNumber ),
11650 rec( 11, 4, BaseDirectoryID ),
11651 rec( 15, 1, DeleteExistingFileFlag ),
11652 rec( 16, 4, CreatorID, BE ),
11653 rec( 20, 4, Reserved4 ),
11654 rec( 24, 2, FinderAttr ),
11655 rec( 26, 2, HorizLocation ),
11656 rec( 28, 2, VertLocation ),
11657 rec( 30, 2, FileDirWindow ),
11658 rec( 32, 16, Reserved16 ),
11659 rec( 48, 6, ProDOSInfo ),
11660 rec( 54, (1,255), Path ),
11661 ], info_str=(Path, "AFP 2.0 Create File: %s", ", %s"))
11663 rec( 8, 4, NewDirectoryID ),
11665 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8301, 0x8400,
11666 0x8701, 0x8800, 0x8a00, 0x8d00, 0x8e00,
11667 0x8f00, 0x9001, 0x9300, 0x9600, 0x9804,
11668 0x9900, 0x9b03, 0x9c03, 0x9e00, 0xa100,
11669 0xa201, 0xfd00, 0xff00])
11671 pkt = NCP(0x230F, "AFP 2.0 Get File Or Directory Information", 'afp')
11672 pkt.Request((18,272), [
11673 rec( 10, 1, VolumeNumber ),
11674 rec( 11, 4, BaseDirectoryID ),
11675 rec( 15, 2, RequestBitMap, BE ),
11676 rec( 17, (1,255), Path ),
11677 ], info_str=(Path, "AFP 2.0 Get Information: %s", ", %s"))
11679 rec( 8, 4, AFPEntryID, BE ),
11680 rec( 12, 4, ParentID, BE ),
11681 rec( 16, 2, AttributesDef16 ),
11682 rec( 18, 4, DataForkLen, BE ),
11683 rec( 22, 4, ResourceForkLen, BE ),
11684 rec( 26, 2, TotalOffspring, BE ),
11685 rec( 28, 2, CreationDate, BE ),
11686 rec( 30, 2, LastAccessedDate, BE ),
11687 rec( 32, 2, ModifiedDate, BE ),
11688 rec( 34, 2, ModifiedTime, BE ),
11689 rec( 36, 2, ArchivedDate, BE ),
11690 rec( 38, 2, ArchivedTime, BE ),
11691 rec( 40, 4, CreatorID, BE ),
11692 rec( 44, 4, Reserved4 ),
11693 rec( 48, 2, FinderAttr ),
11694 rec( 50, 2, HorizLocation ),
11695 rec( 52, 2, VertLocation ),
11696 rec( 54, 2, FileDirWindow ),
11697 rec( 56, 16, Reserved16 ),
11698 rec( 72, 32, LongName ),
11699 rec( 104, 4, CreatorID, BE ),
11700 rec( 108, 12, ShortName ),
11701 rec( 120, 1, AccessPrivileges ),
11702 rec( 121, 1, Reserved ),
11703 rec( 122, 6, ProDOSInfo ),
11705 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804, 0x9c03,
11706 0xa100, 0xa201, 0xfd00, 0xff19])
11708 pkt = NCP(0x2310, "AFP 2.0 Set File Information", 'afp')
11709 pkt.Request((70, 324), [
11710 rec( 10, 1, VolumeNumber ),
11711 rec( 11, 4, MacBaseDirectoryID ),
11712 rec( 15, 2, RequestBitMap, BE ),
11713 rec( 17, 2, AttributesDef16 ),
11714 rec( 19, 2, CreationDate, BE ),
11715 rec( 21, 2, LastAccessedDate, BE ),
11716 rec( 23, 2, ModifiedDate, BE ),
11717 rec( 25, 2, ModifiedTime, BE ),
11718 rec( 27, 2, ArchivedDate, BE ),
11719 rec( 29, 2, ArchivedTime, BE ),
11720 rec( 31, 4, CreatorID, BE ),
11721 rec( 35, 4, Reserved4 ),
11722 rec( 39, 2, FinderAttr ),
11723 rec( 41, 2, HorizLocation ),
11724 rec( 43, 2, VertLocation ),
11725 rec( 45, 2, FileDirWindow ),
11726 rec( 47, 16, Reserved16 ),
11727 rec( 63, 6, ProDOSInfo ),
11728 rec( 69, (1,255), Path ),
11729 ], info_str=(Path, "AFP 2.0 Set File Information: %s", ", %s"))
11731 pkt.CompletionCodes([0x0000, 0x0104, 0x8301, 0x8800, 0x9300, 0x9400,
11732 0x9500, 0x9600, 0x9804, 0x9c03, 0xa100, 0xa201,
11735 pkt = NCP(0x2311, "AFP 2.0 Scan File Information", 'afp')
11736 pkt.Request((26, 280), [
11737 rec( 10, 1, VolumeNumber ),
11738 rec( 11, 4, MacBaseDirectoryID ),
11739 rec( 15, 4, MacLastSeenID, BE ),
11740 rec( 19, 2, DesiredResponseCount, BE ),
11741 rec( 21, 2, SearchBitMap, BE ),
11742 rec( 23, 2, RequestBitMap, BE ),
11743 rec( 25, (1,255), Path ),
11744 ], info_str=(Path, "AFP 2.0 Scan File Information: %s", ", %s"))
11746 rec( 8, 2, ActualResponseCount, var="x" ),
11747 rec( 10, 4, AFP20Struct, repeat="x" ),
11749 pkt.CompletionCodes([0x0000, 0x8301, 0x8800, 0x9300, 0x9600, 0x9804,
11750 0x9c03, 0xa100, 0xa201, 0xfd00, 0xff16])
11752 pkt = NCP(0x2312, "AFP Get DOS Name From Entry ID", 'afp')
11754 rec( 10, 1, VolumeNumber ),
11755 rec( 11, 4, AFPEntryID, BE ),
11757 pkt.Reply((9,263), [
11758 rec( 8, (1,255), Path ),
11760 pkt.CompletionCodes([0x0000, 0x8900, 0x9600, 0xbf00])
11762 pkt = NCP(0x2313, "AFP Get Macintosh Info On Deleted File", 'afp')
11764 rec( 10, 1, VolumeNumber ),
11765 rec( 11, 4, DirectoryNumber, BE ),
11767 pkt.Reply((51,305), [
11768 rec( 8, 4, CreatorID, BE ),
11769 rec( 12, 4, Reserved4 ),
11770 rec( 16, 2, FinderAttr ),
11771 rec( 18, 2, HorizLocation ),
11772 rec( 20, 2, VertLocation ),
11773 rec( 22, 2, FileDirWindow ),
11774 rec( 24, 16, Reserved16 ),
11775 rec( 40, 6, ProDOSInfo ),
11776 rec( 46, 4, ResourceForkSize, BE ),
11777 rec( 50, (1,255), FileName ),
11779 pkt.CompletionCodes([0x0000, 0x9c03, 0xbf00])
11781 pkt = NCP(0x2400, "Get NCP Extension Information", 'extension')
11783 rec( 10, 4, NCPextensionNumber, LE ),
11785 pkt.Reply((16,270), [
11786 rec( 8, 4, NCPextensionNumber ),
11787 rec( 12, 1, NCPextensionMajorVersion ),
11788 rec( 13, 1, NCPextensionMinorVersion ),
11789 rec( 14, 1, NCPextensionRevisionNumber ),
11790 rec( 15, (1, 255), NCPextensionName ),
11792 pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20])
11794 pkt = NCP(0x2401, "Get NCP Extension Maximum Data Size", 'extension')
11797 rec( 8, 2, NCPdataSize ),
11799 pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20])
11801 pkt = NCP(0x2402, "Get NCP Extension Information by Name", 'extension')
11802 pkt.Request((11, 265), [
11803 rec( 10, (1,255), NCPextensionName ),
11804 ], info_str=(NCPextensionName, "Get NCP Extension Information by Name: %s", ", %s"))
11805 pkt.Reply((16,270), [
11806 rec( 8, 4, NCPextensionNumber ),
11807 rec( 12, 1, NCPextensionMajorVersion ),
11808 rec( 13, 1, NCPextensionMinorVersion ),
11809 rec( 14, 1, NCPextensionRevisionNumber ),
11810 rec( 15, (1, 255), NCPextensionName ),
11812 pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20])
11814 pkt = NCP(0x2403, "Get Number of Registered NCP Extensions", 'extension')
11817 rec( 8, 4, NumberOfNCPExtensions ),
11819 pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20])
11821 pkt = NCP(0x2404, "Get NCP Extension Registered Verbs List", 'extension')
11823 rec( 10, 4, StartingNumber ),
11826 rec( 8, 4, ReturnedListCount, var="x" ),
11827 rec( 12, 4, nextStartingNumber ),
11828 rec( 16, 4, NCPExtensionNumbers, repeat="x" ),
11830 pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20])
11832 pkt = NCP(0x2405, "Return NCP Extension Information", 'extension')
11834 rec( 10, 4, NCPextensionNumber ),
11836 pkt.Reply((16,270), [
11837 rec( 8, 4, NCPextensionNumber ),
11838 rec( 12, 1, NCPextensionMajorVersion ),
11839 rec( 13, 1, NCPextensionMinorVersion ),
11840 rec( 14, 1, NCPextensionRevisionNumber ),
11841 rec( 15, (1, 255), NCPextensionName ),
11843 pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20])
11845 pkt = NCP(0x2406, "Return NCP Extension Maximum Data Size", 'extension')
11848 rec( 8, 4, NCPdataSize ),
11850 pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20])
11852 pkt = NCP(0x25, "Execute NCP Extension", 'extension')
11854 rec( 7, 4, NCPextensionNumber ),
11855 # The following value is Unicode
11856 #rec[ 13, (1,255), RequestData ],
11859 # The following value is Unicode
11860 #[ 8, (1, 255), ReplyBuffer ],
11861 pkt.CompletionCodes([0x0000, 0x7e01, 0xf000, 0x9c00, 0xd504, 0xee00, 0xfe00, 0xff20])
11863 pkt = NCP(0x3B, "Commit File", 'file', has_length=0 )
11865 rec( 7, 1, Reserved ),
11866 rec( 8, 6, FileHandle ),
11867 ], info_str=(FileHandle, "Commit File - 0x%s", ", %s"))
11869 pkt.CompletionCodes([0x0000, 0x8800, 0x9804, 0xff00])
11871 pkt = NCP(0x3D, "Commit File", 'file', has_length=0 )
11873 rec( 7, 1, Reserved ),
11874 rec( 8, 6, FileHandle ),
11875 ], info_str=(FileHandle, "Commit File - 0x%s", ", %s"))
11877 pkt.CompletionCodes([0x0000, 0x8800, 0x9804, 0xff00])
11879 pkt = NCP(0x3E, "File Search Initialize", 'file', has_length=0 )
11880 pkt.Request((9, 263), [
11881 rec( 7, 1, DirHandle ),
11882 rec( 8, (1,255), Path ),
11883 ], info_str=(Path, "Initialize File Search: %s", ", %s"))
11885 rec( 8, 1, VolumeNumber ),
11886 rec( 9, 2, DirectoryID ),
11887 rec( 11, 2, SequenceNumber, BE ),
11888 rec( 13, 1, AccessRightsMask ),
11890 pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa100,
11893 pkt = NCP(0x3F, "File Search Continue", 'file', has_length=0 )
11894 pkt.Request((14, 268), [
11895 rec( 7, 1, VolumeNumber ),
11896 rec( 8, 2, DirectoryID ),
11897 rec( 10, 2, SequenceNumber, BE ),
11898 rec( 12, 1, SearchAttributes ),
11899 rec( 13, (1,255), Path ),
11900 ], info_str=(Path, "File Search Continue: %s", ", %s"))
11901 pkt.Reply( NO_LENGTH_CHECK, [
11903 # XXX - don't show this if we got back a non-zero
11904 # completion code? For example, 255 means "No
11905 # matching files or directories were found", so
11906 # presumably it can't show you a matching file or
11907 # directory instance - it appears to just leave crap
11910 srec( DirectoryInstance, req_cond="ncp.sattr_sub==TRUE"),
11911 srec( FileInstance, req_cond="ncp.sattr_sub!=TRUE"),
11913 pkt.ReqCondSizeVariable()
11914 pkt.CompletionCodes([0x0000, 0xff16])
11916 pkt = NCP(0x40, "Search for a File", 'file')
11917 pkt.Request((12, 266), [
11918 rec( 7, 2, SequenceNumber, BE ),
11919 rec( 9, 1, DirHandle ),
11920 rec( 10, 1, SearchAttributes ),
11921 rec( 11, (1,255), FileName ),
11922 ], info_str=(FileName, "Search for File: %s", ", %s"))
11924 rec( 8, 2, SequenceNumber, BE ),
11925 rec( 10, 2, Reserved2 ),
11926 rec( 12, 14, FileName14 ),
11927 rec( 26, 1, AttributesDef ),
11928 rec( 27, 1, FileExecuteType ),
11929 rec( 28, 4, FileSize ),
11930 rec( 32, 2, CreationDate, BE ),
11931 rec( 34, 2, LastAccessedDate, BE ),
11932 rec( 36, 2, ModifiedDate, BE ),
11933 rec( 38, 2, ModifiedTime, BE ),
11935 pkt.CompletionCodes([0x0000, 0x8900, 0x9600, 0x9804, 0x9b03,
11936 0x9c03, 0xa100, 0xfd00, 0xff16])
11938 pkt = NCP(0x41, "Open File", 'file')
11939 pkt.Request((10, 264), [
11940 rec( 7, 1, DirHandle ),
11941 rec( 8, 1, SearchAttributes ),
11942 rec( 9, (1,255), FileName ),
11943 ], info_str=(FileName, "Open File: %s", ", %s"))
11945 rec( 8, 6, FileHandle ),
11946 rec( 14, 2, Reserved2 ),
11947 rec( 16, 14, FileName14 ),
11948 rec( 30, 1, AttributesDef ),
11949 rec( 31, 1, FileExecuteType ),
11950 rec( 32, 4, FileSize, BE ),
11951 rec( 36, 2, CreationDate, BE ),
11952 rec( 38, 2, LastAccessedDate, BE ),
11953 rec( 40, 2, ModifiedDate, BE ),
11954 rec( 42, 2, ModifiedTime, BE ),
11956 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8200, 0x9400,
11957 0x9600, 0x9804, 0x9c03, 0xa100, 0xfd00,
11960 pkt = NCP(0x42, "Close File", 'file')
11962 rec( 7, 1, Reserved ),
11963 rec( 8, 6, FileHandle ),
11964 ], info_str=(FileHandle, "Close File - 0x%s", ", %s"))
11966 pkt.CompletionCodes([0x0000, 0x8800, 0xff1a])
11968 pkt = NCP(0x43, "Create File", 'file')
11969 pkt.Request((10, 264), [
11970 rec( 7, 1, DirHandle ),
11971 rec( 8, 1, AttributesDef ),
11972 rec( 9, (1,255), FileName ),
11973 ], info_str=(FileName, "Create File: %s", ", %s"))
11975 rec( 8, 6, FileHandle ),
11976 rec( 14, 2, Reserved2 ),
11977 rec( 16, 14, FileName14 ),
11978 rec( 30, 1, AttributesDef ),
11979 rec( 31, 1, FileExecuteType ),
11980 rec( 32, 4, FileSize, BE ),
11981 rec( 36, 2, CreationDate, BE ),
11982 rec( 38, 2, LastAccessedDate, BE ),
11983 rec( 40, 2, ModifiedDate, BE ),
11984 rec( 42, 2, ModifiedTime, BE ),
11986 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
11987 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
11988 0x9804, 0x9900, 0x9b03, 0x9c03, 0xfd00,
11991 pkt = NCP(0x44, "Erase File", 'file')
11992 pkt.Request((10, 264), [
11993 rec( 7, 1, DirHandle ),
11994 rec( 8, 1, SearchAttributes ),
11995 rec( 9, (1,255), FileName ),
11996 ], info_str=(FileName, "Erase File: %s", ", %s"))
11998 pkt.CompletionCodes([0x0000, 0x8a00, 0x8d00, 0x8e00, 0x8f00,
11999 0x9001, 0x9600, 0x9804, 0x9b03, 0x9c03,
12000 0xa100, 0xfd00, 0xff00])
12002 pkt = NCP(0x45, "Rename File", 'file')
12003 pkt.Request((12, 520), [
12004 rec( 7, 1, DirHandle ),
12005 rec( 8, 1, SearchAttributes ),
12006 rec( 9, (1,255), FileName ),
12007 rec( -1, 1, TargetDirHandle ),
12008 rec( -1, (1, 255), NewFileNameLen ),
12009 ], info_str=(FileName, "Rename File: %s", ", %s"))
12011 pkt.CompletionCodes([0x0000, 0x8701, 0x8b00, 0x8d00, 0x8e00,
12012 0x8f00, 0x9001, 0x9101, 0x9201, 0x9600,
12013 0x9804, 0x9a00, 0x9b03, 0x9c03, 0xa100,
12016 pkt = NCP(0x46, "Set File Attributes", 'file')
12017 pkt.Request((11, 265), [
12018 rec( 7, 1, AttributesDef ),
12019 rec( 8, 1, DirHandle ),
12020 rec( 9, 1, SearchAttributes ),
12021 rec( 10, (1,255), FileName ),
12022 ], info_str=(FileName, "Set File Attributes: %s", ", %s"))
12024 pkt.CompletionCodes([0x0000, 0x8c00, 0x8d00, 0x8e00, 0x9600,
12025 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfd00,
12028 pkt = NCP(0x47, "Get Current Size of File", 'file')
12030 rec(7, 1, Reserved ),
12031 rec( 8, 6, FileHandle ),
12032 ], info_str=(FileHandle, "Get Current Size of File - 0x%s", ", %s"))
12034 rec( 8, 4, FileSize, BE ),
12036 pkt.CompletionCodes([0x0000, 0x8800])
12038 pkt = NCP(0x48, "Read From A File", 'file')
12040 rec( 7, 1, Reserved ),
12041 rec( 8, 6, FileHandle ),
12042 rec( 14, 4, FileOffset, BE ),
12043 rec( 18, 2, MaxBytes, BE ),
12044 ], info_str=(FileHandle, "Read From File - 0x%s", ", %s"))
12046 rec( 8, 2, NumBytes, BE ),
12048 pkt.CompletionCodes([0x0000, 0x8300, 0x8800, 0x9300, 0xff1b])
12050 pkt = NCP(0x49, "Write to a File", 'file')
12052 rec( 7, 1, Reserved ),
12053 rec( 8, 6, FileHandle ),
12054 rec( 14, 4, FileOffset, BE ),
12055 rec( 18, 2, MaxBytes, BE ),
12056 ], info_str=(FileHandle, "Write to a File - 0x%s", ", %s"))
12058 pkt.CompletionCodes([0x0000, 0x0104, 0x8300, 0x8800, 0x9400, 0x9500, 0xa201, 0xff1b])
12060 pkt = NCP(0x4A, "Copy from One File to Another", 'file')
12062 rec( 7, 1, Reserved ),
12063 rec( 8, 6, FileHandle ),
12064 rec( 14, 6, TargetFileHandle ),
12065 rec( 20, 4, FileOffset, BE ),
12066 rec( 24, 4, TargetFileOffset, BE ),
12067 rec( 28, 2, BytesToCopy, BE ),
12070 rec( 8, 4, BytesActuallyTransferred, BE ),
12072 pkt.CompletionCodes([0x0000, 0x0104, 0x8300, 0x8800, 0x9300, 0x9400,
12073 0x9500, 0x9600, 0xa201, 0xff1b])
12075 pkt = NCP(0x4B, "Set File Time Date Stamp", 'file')
12077 rec( 7, 1, Reserved ),
12078 rec( 8, 6, FileHandle ),
12079 rec( 14, 2, FileTime, BE ),
12080 rec( 16, 2, FileDate, BE ),
12081 ], info_str=(FileHandle, "Set Time and Date Stamp for File - 0x%s", ", %s"))
12083 pkt.CompletionCodes([0x0000, 0x8800, 0x9400, 0x9600, 0xfb08])
12085 pkt = NCP(0x4C, "Open File", 'file')
12086 pkt.Request((11, 265), [
12087 rec( 7, 1, DirHandle ),
12088 rec( 8, 1, SearchAttributes ),
12089 rec( 9, 1, AccessRightsMask ),
12090 rec( 10, (1,255), FileName ),
12091 ], info_str=(FileName, "Open File: %s", ", %s"))
12093 rec( 8, 6, FileHandle ),
12094 rec( 14, 2, Reserved2 ),
12095 rec( 16, 14, FileName14 ),
12096 rec( 30, 1, AttributesDef ),
12097 rec( 31, 1, FileExecuteType ),
12098 rec( 32, 4, FileSize, BE ),
12099 rec( 36, 2, CreationDate, BE ),
12100 rec( 38, 2, LastAccessedDate, BE ),
12101 rec( 40, 2, ModifiedDate, BE ),
12102 rec( 42, 2, ModifiedTime, BE ),
12104 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8200, 0x9400,
12105 0x9600, 0x9804, 0x9c03, 0xa100, 0xfd00,
12108 pkt = NCP(0x4D, "Create File", 'file')
12109 pkt.Request((10, 264), [
12110 rec( 7, 1, DirHandle ),
12111 rec( 8, 1, AttributesDef ),
12112 rec( 9, (1,255), FileName ),
12113 ], info_str=(FileName, "Create File: %s", ", %s"))
12115 rec( 8, 6, FileHandle ),
12116 rec( 14, 2, Reserved2 ),
12117 rec( 16, 14, FileName14 ),
12118 rec( 30, 1, AttributesDef ),
12119 rec( 31, 1, FileExecuteType ),
12120 rec( 32, 4, FileSize, BE ),
12121 rec( 36, 2, CreationDate, BE ),
12122 rec( 38, 2, LastAccessedDate, BE ),
12123 rec( 40, 2, ModifiedDate, BE ),
12124 rec( 42, 2, ModifiedTime, BE ),
12126 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12127 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12128 0x9804, 0x9900, 0x9b03, 0x9c03, 0xfd00,
12131 pkt = NCP(0x4F, "Set File Extended Attributes", 'file')
12132 pkt.Request((11, 265), [
12133 rec( 7, 1, AttributesDef ),
12134 rec( 8, 1, DirHandle ),
12135 rec( 9, 1, AccessRightsMask ),
12136 rec( 10, (1,255), FileName ),
12137 ], info_str=(FileName, "Set File Extended Attributes: %s", ", %s"))
12139 pkt.CompletionCodes([0x0000, 0x8c00, 0x8d00, 0x8e00, 0x9600,
12140 0x9804, 0x9b03, 0x9c03, 0xa100, 0xfd00,
12143 pkt = NCP(0x54, "Open/Create File", 'file')
12144 pkt.Request((12, 266), [
12145 rec( 7, 1, DirHandle ),
12146 rec( 8, 1, AttributesDef ),
12147 rec( 9, 1, AccessRightsMask ),
12148 rec( 10, 1, ActionFlag ),
12149 rec( 11, (1,255), FileName ),
12150 ], info_str=(FileName, "Open/Create File: %s", ", %s"))
12152 rec( 8, 6, FileHandle ),
12153 rec( 14, 2, Reserved2 ),
12154 rec( 16, 14, FileName14 ),
12155 rec( 30, 1, AttributesDef ),
12156 rec( 31, 1, FileExecuteType ),
12157 rec( 32, 4, FileSize, BE ),
12158 rec( 36, 2, CreationDate, BE ),
12159 rec( 38, 2, LastAccessedDate, BE ),
12160 rec( 40, 2, ModifiedDate, BE ),
12161 rec( 42, 2, ModifiedTime, BE ),
12163 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12164 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12165 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
12167 pkt = NCP(0x55, "Get Sparse File Data Block Bit Map", 'file')
12169 rec( 7, 6, FileHandle ),
12170 rec( 13, 4, FileOffset ),
12171 ], info_str=(FileHandle, "Get Sparse File Data Block Bitmap for File - 0x%s", ", %s"))
12173 rec( 8, 4, AllocationBlockSize ),
12174 rec( 12, 4, Reserved4 ),
12175 rec( 16, 512, BitMap ),
12177 pkt.CompletionCodes([0x0000, 0x8800])
12179 pkt = NCP(0x5601, "Close Extended Attribute Handle", 'extended', has_length=0 )
12181 rec( 8, 2, Reserved2 ),
12182 rec( 10, 4, EAHandle ),
12185 pkt.CompletionCodes([0x0000, 0xcf00, 0xd301])
12187 pkt = NCP(0x5602, "Write Extended Attribute", 'extended', has_length=0 )
12188 pkt.Request((35,97), [
12189 rec( 8, 2, EAFlags ),
12190 rec( 10, 4, EAHandleOrNetWareHandleOrVolume, BE ),
12191 rec( 14, 4, ReservedOrDirectoryNumber ),
12192 rec( 18, 4, TtlWriteDataSize ),
12193 rec( 22, 4, FileOffset ),
12194 rec( 26, 4, EAAccessFlag ),
12195 rec( 30, 2, EAValueLength, var='x' ),
12196 rec( 32, (2,64), EAKey ),
12197 rec( -1, 1, EAValueRep, repeat='x' ),
12198 ], info_str=(EAKey, "Write Extended Attribute: %s", ", %s"))
12200 rec( 8, 4, EAErrorCodes ),
12201 rec( 12, 4, EABytesWritten ),
12202 rec( 16, 4, NewEAHandle ),
12204 pkt.CompletionCodes([0x0000, 0xc800, 0xc900, 0xcb00, 0xce00, 0xcf00, 0xd101,
12205 0xd203, 0xd301, 0xd402, 0xda02, 0xdc01, 0xef00, 0xff00])
12207 pkt = NCP(0x5603, "Read Extended Attribute", 'extended', has_length=0 )
12208 pkt.Request((28,538), [
12209 rec( 8, 2, EAFlags ),
12210 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
12211 rec( 14, 4, ReservedOrDirectoryNumber ),
12212 rec( 18, 4, FileOffset ),
12213 rec( 22, 4, InspectSize ),
12214 rec( 26, (2,512), EAKey ),
12215 ], info_str=(EAKey, "Read Extended Attribute: %s", ", %s"))
12216 pkt.Reply((26,536), [
12217 rec( 8, 4, EAErrorCodes ),
12218 rec( 12, 4, TtlValuesLength ),
12219 rec( 16, 4, NewEAHandle ),
12220 rec( 20, 4, EAAccessFlag ),
12221 rec( 24, (2,512), EAValue ),
12223 pkt.CompletionCodes([0x0000, 0x8800, 0x9c03, 0xc900, 0xce00, 0xcf00, 0xd101,
12226 pkt = NCP(0x5604, "Enumerate Extended Attribute", 'extended', has_length=0 )
12227 pkt.Request((26,536), [
12228 rec( 8, 2, EAFlags ),
12229 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
12230 rec( 14, 4, ReservedOrDirectoryNumber ),
12231 rec( 18, 4, InspectSize ),
12232 rec( 22, 2, SequenceNumber ),
12233 rec( 24, (2,512), EAKey ),
12234 ], info_str=(EAKey, "Enumerate Extended Attribute: %s", ", %s"))
12236 rec( 8, 4, EAErrorCodes ),
12237 rec( 12, 4, TtlEAs ),
12238 rec( 16, 4, TtlEAsDataSize ),
12239 rec( 20, 4, TtlEAsKeySize ),
12240 rec( 24, 4, NewEAHandle ),
12242 pkt.CompletionCodes([0x0000, 0x8800, 0x8c01, 0xc800, 0xc900, 0xce00, 0xcf00, 0xd101,
12243 0xd301, 0xd503, 0xfb08, 0xff00])
12245 pkt = NCP(0x5605, "Duplicate Extended Attributes", 'extended', has_length=0 )
12247 rec( 8, 2, EAFlags ),
12248 rec( 10, 2, DstEAFlags ),
12249 rec( 12, 4, EAHandleOrNetWareHandleOrVolume ),
12250 rec( 16, 4, ReservedOrDirectoryNumber ),
12251 rec( 20, 4, EAHandleOrNetWareHandleOrVolume ),
12252 rec( 24, 4, ReservedOrDirectoryNumber ),
12255 rec( 8, 4, EADuplicateCount ),
12256 rec( 12, 4, EADataSizeDuplicated ),
12257 rec( 16, 4, EAKeySizeDuplicated ),
12259 pkt.CompletionCodes([0x0000, 0x8800, 0xd101])
12261 pkt = NCP(0x5701, "Open/Create File or Subdirectory", 'file', has_length=0)
12262 pkt.Request((30, 284), [
12263 rec( 8, 1, NameSpace ),
12264 rec( 9, 1, OpenCreateMode ),
12265 rec( 10, 2, SearchAttributesLow ),
12266 rec( 12, 2, ReturnInfoMask ),
12267 rec( 14, 2, ExtendedInfo ),
12268 rec( 16, 4, AttributesDef32 ),
12269 rec( 20, 2, DesiredAccessRights ),
12270 rec( 22, 1, VolumeNumber ),
12271 rec( 23, 4, DirectoryBase ),
12272 rec( 27, 1, HandleFlag ),
12273 rec( 28, 1, PathCount, var="x" ),
12274 rec( 29, (1,255), Path, repeat="x" ),
12275 ], info_str=(Path, "Open or Create: %s", "/%s"))
12276 pkt.Reply( NO_LENGTH_CHECK, [
12277 rec( 8, 4, FileHandle ),
12278 rec( 12, 1, OpenCreateAction ),
12279 rec( 13, 1, Reserved ),
12280 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12281 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12282 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12283 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12284 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12285 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12286 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12287 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12288 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12289 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12290 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12291 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12292 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12293 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12294 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12295 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12296 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12297 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12298 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12299 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12300 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12301 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12302 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12303 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12304 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12305 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12306 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12307 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12308 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12309 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12310 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12311 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12312 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12313 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12314 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12315 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
12316 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
12317 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12318 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12319 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12320 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12321 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12322 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12323 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12324 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12325 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12326 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12328 pkt.ReqCondSizeVariable()
12329 pkt.CompletionCodes([0x0000, 0x0102, 0x7f00, 0x8001, 0x8101, 0x8401, 0x8501,
12330 0x8701, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9400, 0x9600,
12331 0x9804, 0x9900, 0x9b03, 0x9c03, 0xa500, 0xa802, 0xa901, 0xbf00, 0xfd00, 0xff16])
12333 pkt = NCP(0x5702, "Initialize Search", 'file', has_length=0)
12334 pkt.Request( (18,272), [
12335 rec( 8, 1, NameSpace ),
12336 rec( 9, 1, Reserved ),
12337 rec( 10, 1, VolumeNumber ),
12338 rec( 11, 4, DirectoryBase ),
12339 rec( 15, 1, HandleFlag ),
12340 rec( 16, 1, PathCount, var="x" ),
12341 rec( 17, (1,255), Path, repeat="x" ),
12342 ], info_str=(Path, "Set Search Pointer to: %s", "/%s"))
12344 rec( 8, 1, VolumeNumber ),
12345 rec( 9, 4, DirectoryNumber ),
12346 rec( 13, 4, DirectoryEntryNumber ),
12348 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12349 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12350 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
12352 pkt = NCP(0x5703, "Search for File or Subdirectory", 'file', has_length=0)
12353 pkt.Request((26, 280), [
12354 rec( 8, 1, NameSpace ),
12355 rec( 9, 1, DataStream ),
12356 rec( 10, 2, SearchAttributesLow ),
12357 rec( 12, 2, ReturnInfoMask ),
12358 rec( 14, 2, ExtendedInfo ),
12359 rec( 16, 9, SeachSequenceStruct ),
12360 rec( 25, (1,255), SearchPattern ),
12361 ], info_str=(SearchPattern, "Search for: %s", "/%s"))
12362 pkt.Reply( NO_LENGTH_CHECK, [
12363 rec( 8, 9, SeachSequenceStruct ),
12364 rec( 17, 1, Reserved ),
12365 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12366 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12367 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12368 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12369 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12370 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12371 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12372 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12373 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12374 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12375 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12376 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12377 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12378 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12379 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12380 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12381 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12382 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12383 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12384 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12385 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12386 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12387 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12388 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12389 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12390 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12391 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12392 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12393 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12394 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12395 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12396 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12397 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12398 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12399 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12400 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
12401 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
12402 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12403 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12404 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12405 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12406 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12407 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12408 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12409 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12410 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12411 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12413 pkt.ReqCondSizeVariable()
12414 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12415 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12416 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
12418 pkt = NCP(0x5704, "Rename Or Move a File or Subdirectory", 'file', has_length=0)
12419 pkt.Request((28, 536), [
12420 rec( 8, 1, NameSpace ),
12421 rec( 9, 1, RenameFlag ),
12422 rec( 10, 2, SearchAttributesLow ),
12423 rec( 12, 1, VolumeNumber ),
12424 rec( 13, 4, DirectoryBase ),
12425 rec( 17, 1, HandleFlag ),
12426 rec( 18, 1, PathCount, var="x" ),
12427 rec( 19, 1, VolumeNumber ),
12428 rec( 20, 4, DirectoryBase ),
12429 rec( 24, 1, HandleFlag ),
12430 rec( 25, 1, PathCount, var="y" ),
12431 rec( 26, (1, 255), Path, repeat="x" ),
12432 rec( -1, (1,255), DestPath, repeat="y" ),
12433 ], info_str=(Path, "Rename or Move: %s", "/%s"))
12435 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
12436 0x8701, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9100, 0x9200, 0x9600,
12437 0x9804, 0x9a00, 0x9b03, 0x9c03, 0x9e00, 0xa901, 0xbf00, 0xfd00, 0xff16])
12439 pkt = NCP(0x5705, "Scan File or Subdirectory for Trustees", 'file', has_length=0)
12440 pkt.Request((24, 278), [
12441 rec( 8, 1, NameSpace ),
12442 rec( 9, 1, Reserved ),
12443 rec( 10, 2, SearchAttributesLow ),
12444 rec( 12, 4, SequenceNumber ),
12445 rec( 16, 1, VolumeNumber ),
12446 rec( 17, 4, DirectoryBase ),
12447 rec( 21, 1, HandleFlag ),
12448 rec( 22, 1, PathCount, var="x" ),
12449 rec( 23, (1, 255), Path, repeat="x" ),
12450 ], info_str=(Path, "Scan Trustees for: %s", "/%s"))
12452 rec( 8, 4, SequenceNumber ),
12453 rec( 12, 2, ObjectIDCount, var="x" ),
12454 rec( 14, 6, TrusteeStruct, repeat="x" ),
12456 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12457 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12458 0x9804, 0x9b03, 0x9c04, 0xa901, 0xbf00, 0xfd00, 0xff16])
12460 pkt = NCP(0x5706, "Obtain File or SubDirectory Information", 'file', has_length=0)
12461 pkt.Request((24,278), [
12462 rec( 10, 1, SrcNameSpace ),
12463 rec( 11, 1, DestNameSpace ),
12464 rec( 12, 2, SearchAttributesLow ),
12465 rec( 14, 2, ReturnInfoMask, LE ),
12466 rec( 16, 2, ExtendedInfo ),
12467 rec( 18, 1, VolumeNumber ),
12468 rec( 19, 4, DirectoryBase ),
12469 rec( 23, 1, HandleFlag ),
12470 rec( 24, 1, PathCount, var="x" ),
12471 rec( 25, (1,255), Path, repeat="x",),
12472 ], info_str=(Path, "Obtain Info for: %s", "/%s"))
12473 pkt.Reply(NO_LENGTH_CHECK, [
12474 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12475 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12476 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12477 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12478 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12479 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12480 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12481 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12482 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12483 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12484 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12485 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12486 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12487 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12488 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12489 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12490 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12491 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12492 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12493 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12494 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12495 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12496 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12497 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12498 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12499 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12500 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12501 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12502 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12503 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12504 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12505 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12506 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12507 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
12508 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
12509 srec( DataStreamsStruct, req_cond="ncp.ret_info_mask_actual == 1" ),
12510 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1 && ncp.number_of_data_streams_long > 0" ), # , repeat="x"
12511 srec( DataStreamsStruct, req_cond="ncp.ret_info_mask_logical == 1" ), # , var="y"
12512 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1 && ncp.number_of_data_streams_long > 0" ), # , repeat="y"
12513 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
12514 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
12515 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
12516 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
12517 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
12518 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
12519 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
12520 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
12521 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
12522 srec( FileSize64bitStruct, req_cond="ncp.ext_info_64_bit_fs == 1" ),
12523 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
12525 pkt.ReqCondSizeVariable()
12526 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12527 0x8700, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
12528 0x9802, 0x9b03, 0x9c03, 0xa802, 0xa901, 0xbf00, 0xfd00, 0xff16])
12530 pkt = NCP(0x5707, "Modify File or Subdirectory DOS Information", 'file', has_length=0)
12531 pkt.Request((62,316), [
12532 rec( 8, 1, NameSpace ),
12533 rec( 9, 1, Reserved ),
12534 rec( 10, 2, SearchAttributesLow ),
12535 rec( 12, 2, ModifyDOSInfoMask ),
12536 rec( 14, 2, Reserved2 ),
12537 rec( 16, 2, AttributesDef16 ),
12538 rec( 18, 1, FileMode ),
12539 rec( 19, 1, FileExtendedAttributes ),
12540 rec( 20, 2, CreationDate ),
12541 rec( 22, 2, CreationTime ),
12542 rec( 24, 4, CreatorID, BE ),
12543 rec( 28, 2, ModifiedDate ),
12544 rec( 30, 2, ModifiedTime ),
12545 rec( 32, 4, ModifierID, BE ),
12546 rec( 36, 2, ArchivedDate ),
12547 rec( 38, 2, ArchivedTime ),
12548 rec( 40, 4, ArchiverID, BE ),
12549 rec( 44, 2, LastAccessedDate ),
12550 rec( 46, 2, InheritedRightsMask ),
12551 rec( 48, 2, InheritanceRevokeMask ),
12552 rec( 50, 4, MaxSpace ),
12553 rec( 54, 1, VolumeNumber ),
12554 rec( 55, 4, DirectoryBase ),
12555 rec( 59, 1, HandleFlag ),
12556 rec( 60, 1, PathCount, var="x" ),
12557 rec( 61, (1,255), Path, repeat="x" ),
12558 ], info_str=(Path, "Modify DOS Information for: %s", "/%s"))
12560 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
12561 0x8701, 0x8c01, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
12562 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
12564 pkt = NCP(0x5708, "Delete a File or Subdirectory", 'file', has_length=0)
12565 pkt.Request((20,274), [
12566 rec( 8, 1, NameSpace ),
12567 rec( 9, 1, Reserved ),
12568 rec( 10, 2, SearchAttributesLow ),
12569 rec( 12, 1, VolumeNumber ),
12570 rec( 13, 4, DirectoryBase ),
12571 rec( 17, 1, HandleFlag ),
12572 rec( 18, 1, PathCount, var="x" ),
12573 rec( 19, (1,255), Path, repeat="x" ),
12574 ], info_str=(Path, "Delete a File or Subdirectory: %s", "/%s"))
12576 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12577 0x8701, 0x8900, 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
12578 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
12580 pkt = NCP(0x5709, "Set Short Directory Handle", 'file', has_length=0)
12581 pkt.Request((20,274), [
12582 rec( 8, 1, NameSpace ),
12583 rec( 9, 1, DataStream ),
12584 rec( 10, 1, DestDirHandle ),
12585 rec( 11, 1, Reserved ),
12586 rec( 12, 1, VolumeNumber ),
12587 rec( 13, 4, DirectoryBase ),
12588 rec( 17, 1, HandleFlag ),
12589 rec( 18, 1, PathCount, var="x" ),
12590 rec( 19, (1,255), Path, repeat="x" ),
12591 ], info_str=(Path, "Set Short Directory Handle to: %s", "/%s"))
12593 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12594 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12595 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
12597 pkt = NCP(0x570A, "Add Trustee Set to File or Subdirectory", 'file', has_length=0)
12598 pkt.Request((31,285), [
12599 rec( 8, 1, NameSpace ),
12600 rec( 9, 1, Reserved ),
12601 rec( 10, 2, SearchAttributesLow ),
12602 rec( 12, 2, AccessRightsMaskWord ),
12603 rec( 14, 2, ObjectIDCount, var="y" ),
12604 rec( 16, 1, VolumeNumber ),
12605 rec( 17, 4, DirectoryBase ),
12606 rec( 21, 1, HandleFlag ),
12607 rec( 22, 1, PathCount, var="x" ),
12608 rec( 23, (1,255), Path, repeat="x" ),
12609 rec( -1, 7, TrusteeStruct, repeat="y" ),
12610 ], info_str=(Path, "Add Trustee Set to: %s", "/%s"))
12612 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12613 0x8701, 0x8c01, 0x8d00, 0x8f00, 0x9001, 0x9600,
12614 0x9804, 0x9b03, 0x9c03, 0xa802, 0xa901, 0xbf00, 0xfc01, 0xfd00, 0xff16])
12616 pkt = NCP(0x570B, "Delete Trustee Set from File or SubDirectory", 'file', has_length=0)
12617 pkt.Request((27,281), [
12618 rec( 8, 1, NameSpace ),
12619 rec( 9, 1, Reserved ),
12620 rec( 10, 2, ObjectIDCount, var="y" ),
12621 rec( 12, 1, VolumeNumber ),
12622 rec( 13, 4, DirectoryBase ),
12623 rec( 17, 1, HandleFlag ),
12624 rec( 18, 1, PathCount, var="x" ),
12625 rec( 19, (1,255), Path, repeat="x" ),
12626 rec( -1, 7, TrusteeStruct, repeat="y" ),
12627 ], info_str=(Path, "Delete Trustee Set from: %s", "/%s"))
12629 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12630 0x8701, 0x8c01, 0x8d00, 0x8f00, 0x9001, 0x9600,
12631 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12633 pkt = NCP(0x570C, "Allocate Short Directory Handle", 'file', has_length=0)
12634 pkt.Request((20,274), [
12635 rec( 8, 1, NameSpace ),
12636 rec( 9, 1, Reserved ),
12637 rec( 10, 2, AllocateMode ),
12638 rec( 12, 1, VolumeNumber ),
12639 rec( 13, 4, DirectoryBase ),
12640 rec( 17, 1, HandleFlag ),
12641 rec( 18, 1, PathCount, var="x" ),
12642 rec( 19, (1,255), Path, repeat="x" ),
12643 ], info_str=(Path, "Allocate Short Directory Handle to: %s", "/%s"))
12644 pkt.Reply(NO_LENGTH_CHECK, [
12645 srec( ReplyLevel2Struct, req_cond="ncp.alloc_reply_lvl2 == TRUE" ),
12646 srec( ReplyLevel1Struct, req_cond="ncp.alloc_reply_lvl2 == FALSE" ),
12648 pkt.ReqCondSizeVariable()
12649 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12650 0x8701, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
12651 0x9804, 0x9b03, 0x9c03, 0x9d00, 0xa901, 0xbf00, 0xfd00, 0xff16])
12653 pkt = NCP(0x5710, "Scan Salvageable Files", 'file', has_length=0)
12654 pkt.Request((26,280), [
12655 rec( 8, 1, NameSpace ),
12656 rec( 9, 1, DataStream ),
12657 rec( 10, 2, ReturnInfoMask ),
12658 rec( 12, 2, ExtendedInfo ),
12659 rec( 14, 4, SequenceNumber ),
12660 rec( 18, 1, VolumeNumber ),
12661 rec( 19, 4, DirectoryBase ),
12662 rec( 23, 1, HandleFlag ),
12663 rec( 24, 1, PathCount, var="x" ),
12664 rec( 25, (1,255), Path, repeat="x" ),
12665 ], info_str=(Path, "Scan for Deleted Files in: %s", "/%s"))
12666 pkt.Reply(NO_LENGTH_CHECK, [
12667 rec( 8, 4, SequenceNumber ),
12668 rec( 12, 2, DeletedTime ),
12669 rec( 14, 2, DeletedDate ),
12670 rec( 16, 4, DeletedID, BE ),
12671 rec( 20, 4, VolumeID ),
12672 rec( 24, 4, DirectoryBase ),
12673 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12674 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12675 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12676 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12677 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12678 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12679 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12680 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12681 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12682 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12683 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12684 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12685 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12686 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12687 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12688 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12689 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12690 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12691 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12692 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12693 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12694 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12695 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12696 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12697 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12698 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12699 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12700 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12701 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12702 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12703 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12704 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12705 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12706 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12707 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12709 pkt.ReqCondSizeVariable()
12710 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12711 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12712 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12714 pkt = NCP(0x5711, "Recover Salvageable File", 'file', has_length=0)
12715 pkt.Request((23,277), [
12716 rec( 8, 1, NameSpace ),
12717 rec( 9, 1, Reserved ),
12718 rec( 10, 4, SequenceNumber ),
12719 rec( 14, 4, VolumeID ),
12720 rec( 18, 4, DirectoryBase ),
12721 rec( 22, (1,255), FileName ),
12722 ], info_str=(FileName, "Recover Deleted File: %s", ", %s"))
12724 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12725 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12726 0x9804, 0x9b03, 0x9c03, 0xa802, 0xbf00, 0xfe02, 0xfd00, 0xff16])
12728 pkt = NCP(0x5712, "Purge Salvageable Files", 'file', has_length=0)
12730 rec( 8, 1, NameSpace ),
12731 rec( 9, 1, Reserved ),
12732 rec( 10, 4, SequenceNumber ),
12733 rec( 14, 4, VolumeID ),
12734 rec( 18, 4, DirectoryBase ),
12737 pkt.CompletionCodes([0x0000, 0x010a, 0x8000, 0x8101, 0x8401, 0x8501,
12738 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12739 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12741 pkt = NCP(0x5713, "Get Name Space Information", 'file', has_length=0)
12743 rec( 8, 1, SrcNameSpace ),
12744 rec( 9, 1, DestNameSpace ),
12745 rec( 10, 1, Reserved ),
12746 rec( 11, 1, VolumeNumber ),
12747 rec( 12, 4, DirectoryBase ),
12748 rec( 16, 2, NamesSpaceInfoMask ),
12750 pkt.Reply(NO_LENGTH_CHECK, [
12751 srec( FileNameStruct, req_cond="ncp.ns_info_mask_modify == TRUE" ),
12752 srec( FileAttributesStruct, req_cond="ncp.ns_info_mask_fatt == TRUE" ),
12753 srec( CreationDateStruct, req_cond="ncp.ns_info_mask_cdate == TRUE" ),
12754 srec( CreationTimeStruct, req_cond="ncp.ns_info_mask_ctime == TRUE" ),
12755 srec( OwnerIDStruct, req_cond="ncp.ns_info_mask_owner == TRUE" ),
12756 srec( ArchiveDateStruct, req_cond="ncp.ns_info_mask_adate == TRUE" ),
12757 srec( ArchiveTimeStruct, req_cond="ncp.ns_info_mask_atime == TRUE" ),
12758 srec( ArchiveIdStruct, req_cond="ncp.ns_info_mask_aid == TRUE" ),
12759 srec( UpdateDateStruct, req_cond="ncp.ns_info_mask_udate == TRUE" ),
12760 srec( UpdateTimeStruct, req_cond="ncp.ns_info_mask_utime == TRUE" ),
12761 srec( UpdateIDStruct, req_cond="ncp.ns_info_mask_uid == TRUE" ),
12762 srec( LastAccessStruct, req_cond="ncp.ns_info_mask_acc_date == TRUE" ),
12763 srec( RightsInfoStruct, req_cond="ncp.ns_info_mask_max_acc_mask == TRUE" ),
12765 pkt.ReqCondSizeVariable()
12766 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12767 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12768 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12770 pkt = NCP(0x5714, "Search for File or Subdirectory Set", 'file', has_length=0)
12771 pkt.Request((28, 282), [
12772 rec( 8, 1, NameSpace ),
12773 rec( 9, 1, DataStream ),
12774 rec( 10, 2, SearchAttributesLow ),
12775 rec( 12, 2, ReturnInfoMask ),
12776 rec( 14, 2, ExtendedInfo ),
12777 rec( 16, 2, ReturnInfoCount ),
12778 rec( 18, 9, SeachSequenceStruct ),
12779 rec( 27, (1,255), SearchPattern ),
12781 # The reply packet is dissected in packet-ncp2222.inc
12782 pkt.Reply(NO_LENGTH_CHECK, [
12784 pkt.ReqCondSizeVariable()
12785 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12786 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12787 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
12789 pkt = NCP(0x5715, "Get Path String from Short Directory Handle", 'file', has_length=0)
12791 rec( 8, 1, NameSpace ),
12792 rec( 9, 1, DirHandle ),
12794 pkt.Reply((9,263), [
12795 rec( 8, (1,255), Path ),
12797 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12798 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12799 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
12801 pkt = NCP(0x5716, "Generate Directory Base and Volume Number", 'file', has_length=0)
12802 pkt.Request((20,274), [
12803 rec( 8, 1, SrcNameSpace ),
12804 rec( 9, 1, DestNameSpace ),
12805 rec( 10, 2, dstNSIndicator ),
12806 rec( 12, 1, VolumeNumber ),
12807 rec( 13, 4, DirectoryBase ),
12808 rec( 17, 1, HandleFlag ),
12809 rec( 18, 1, PathCount, var="x" ),
12810 rec( 19, (1,255), Path, repeat="x" ),
12811 ], info_str=(Path, "Get Volume and Directory Base from: %s", "/%s"))
12813 rec( 8, 4, DirectoryBase ),
12814 rec( 12, 4, DOSDirectoryBase ),
12815 rec( 16, 1, VolumeNumber ),
12817 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12818 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12819 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12821 pkt = NCP(0x5717, "Query Name Space Information Format", 'file', has_length=0)
12823 rec( 8, 1, NameSpace ),
12824 rec( 9, 1, VolumeNumber ),
12827 rec( 8, 4, FixedBitMask ),
12828 rec( 12, 4, VariableBitMask ),
12829 rec( 16, 4, HugeBitMask ),
12830 rec( 20, 2, FixedBitsDefined ),
12831 rec( 22, 2, VariableBitsDefined ),
12832 rec( 24, 2, HugeBitsDefined ),
12833 rec( 26, 32, FieldsLenTable ),
12835 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12836 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12837 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12839 pkt = NCP(0x5718, "Get Name Spaces Loaded List from Volume Number", 'file', has_length=0)
12841 rec( 8, 2, Reserved2 ),
12842 rec( 10, 1, VolumeNumber ),
12843 ], info_str=(VolumeNumber, "Get Name Spaces Loaded List from Vol: %d", "/%d"))
12845 rec( 8, 2, NumberOfNSLoaded, var="x" ),
12846 rec( 10, 1, NameSpace, repeat="x" ),
12848 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12849 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12850 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12852 pkt = NCP(0x5719, "Set Name Space Information", 'file', has_length=0)
12854 rec( 8, 1, SrcNameSpace ),
12855 rec( 9, 1, DestNameSpace ),
12856 rec( 10, 1, VolumeNumber ),
12857 rec( 11, 4, DirectoryBase ),
12858 rec( 15, 2, NamesSpaceInfoMask ),
12859 rec( 17, 2, Reserved2 ),
12860 rec( 19, 512, NSSpecificInfo ),
12863 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12864 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12865 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12868 pkt = NCP(0x571A, "Get Huge Name Space Information", 'file', has_length=0)
12870 rec( 8, 1, NameSpace ),
12871 rec( 9, 1, VolumeNumber ),
12872 rec( 10, 4, DirectoryBase ),
12873 rec( 14, 4, HugeBitMask ),
12874 rec( 18, 16, HugeStateInfo ),
12876 pkt.Reply((25,279), [
12877 rec( 8, 16, NextHugeStateInfo ),
12878 rec( 24, (1,255), HugeData ),
12880 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12881 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12882 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12885 pkt = NCP(0x571B, "Set Huge Name Space Information", 'file', has_length=0)
12886 pkt.Request((35,289), [
12887 rec( 8, 1, NameSpace ),
12888 rec( 9, 1, VolumeNumber ),
12889 rec( 10, 4, DirectoryBase ),
12890 rec( 14, 4, HugeBitMask ),
12891 rec( 18, 16, HugeStateInfo ),
12892 rec( 34, (1,255), HugeData ),
12895 rec( 8, 16, NextHugeStateInfo ),
12896 rec( 24, 4, HugeDataUsed ),
12898 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12899 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12900 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12903 pkt = NCP(0x571C, "Get Full Path String", 'file', has_length=0)
12904 pkt.Request((28,282), [
12905 rec( 8, 1, SrcNameSpace ),
12906 rec( 9, 1, DestNameSpace ),
12907 rec( 10, 2, PathCookieFlags ),
12908 rec( 12, 4, Cookie1 ),
12909 rec( 16, 4, Cookie2 ),
12910 rec( 20, 1, VolumeNumber ),
12911 rec( 21, 4, DirectoryBase ),
12912 rec( 25, 1, HandleFlag ),
12913 rec( 26, 1, PathCount, var="x" ),
12914 rec( 27, (1,255), Path, repeat="x" ),
12915 ], info_str=(Path, "Get Full Path from: %s", "/%s"))
12916 pkt.Reply((23,277), [
12917 rec( 8, 2, PathCookieFlags ),
12918 rec( 10, 4, Cookie1 ),
12919 rec( 14, 4, Cookie2 ),
12920 rec( 18, 2, PathComponentSize ),
12921 rec( 20, 2, PathComponentCount, var='x' ),
12922 rec( 22, (1,255), Path, repeat='x' ),
12924 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12925 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
12926 0x9600, 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
12929 pkt = NCP(0x571D, "Get Effective Directory Rights", 'file', has_length=0)
12930 pkt.Request((24, 278), [
12931 rec( 8, 1, NameSpace ),
12932 rec( 9, 1, DestNameSpace ),
12933 rec( 10, 2, SearchAttributesLow ),
12934 rec( 12, 2, ReturnInfoMask ),
12935 rec( 14, 2, ExtendedInfo ),
12936 rec( 16, 1, VolumeNumber ),
12937 rec( 17, 4, DirectoryBase ),
12938 rec( 21, 1, HandleFlag ),
12939 rec( 22, 1, PathCount, var="x" ),
12940 rec( 23, (1,255), Path, repeat="x" ),
12941 ], info_str=(Path, "Get Effective Rights for: %s", "/%s"))
12942 pkt.Reply(NO_LENGTH_CHECK, [
12943 rec( 8, 2, EffectiveRights ),
12944 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
12945 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
12946 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
12947 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
12948 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
12949 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
12950 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
12951 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
12952 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
12953 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
12954 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
12955 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
12956 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
12957 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
12958 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
12959 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
12960 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
12961 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
12962 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
12963 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
12964 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
12965 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
12966 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
12967 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
12968 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
12969 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
12970 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
12971 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
12972 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
12973 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
12974 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
12975 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
12976 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
12977 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
12978 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
12980 pkt.ReqCondSizeVariable()
12981 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
12982 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
12983 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
12985 pkt = NCP(0x571E, "Open/Create File or Subdirectory", 'file', has_length=0)
12986 pkt.Request((34, 288), [
12987 rec( 8, 1, NameSpace ),
12988 rec( 9, 1, DataStream ),
12989 rec( 10, 1, OpenCreateMode ),
12990 rec( 11, 1, Reserved ),
12991 rec( 12, 2, SearchAttributesLow ),
12992 rec( 14, 2, Reserved2 ),
12993 rec( 16, 2, ReturnInfoMask ),
12994 rec( 18, 2, ExtendedInfo ),
12995 rec( 20, 4, AttributesDef32 ),
12996 rec( 24, 2, DesiredAccessRights ),
12997 rec( 26, 1, VolumeNumber ),
12998 rec( 27, 4, DirectoryBase ),
12999 rec( 31, 1, HandleFlag ),
13000 rec( 32, 1, PathCount, var="x" ),
13001 rec( 33, (1,255), Path, repeat="x" ),
13002 ], info_str=(Path, "Open or Create File: %s", "/%s"))
13003 pkt.Reply(NO_LENGTH_CHECK, [
13004 rec( 8, 4, FileHandle, BE ),
13005 rec( 12, 1, OpenCreateAction ),
13006 rec( 13, 1, Reserved ),
13007 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
13008 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
13009 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
13010 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
13011 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
13012 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
13013 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
13014 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
13015 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
13016 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
13017 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
13018 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
13019 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
13020 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
13021 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
13022 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
13023 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
13024 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
13025 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
13026 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
13027 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
13028 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
13029 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
13030 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
13031 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
13032 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
13033 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
13034 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
13035 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
13036 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
13037 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
13038 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
13039 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
13040 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
13041 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
13043 pkt.ReqCondSizeVariable()
13044 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
13045 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13046 0x9804, 0x9b03, 0x9c03, 0xbe00, 0xbf00, 0xfd00, 0xff16])
13048 pkt = NCP(0x571F, "Get File Information", 'file', has_length=0)
13050 rec( 8, 6, FileHandle ),
13051 rec( 14, 1, HandleInfoLevel ),
13052 ], info_str=(FileHandle, "Get File Information - 0x%s", ", %s"))
13053 pkt.Reply(NO_LENGTH_CHECK, [
13054 rec( 8, 4, VolumeNumberLong ),
13055 rec( 12, 4, DirectoryBase ),
13056 srec(HandleInfoLevel0, req_cond="ncp.handle_info_level==0x00" ),
13057 srec(HandleInfoLevel1, req_cond="ncp.handle_info_level==0x01" ),
13058 srec(HandleInfoLevel2, req_cond="ncp.handle_info_level==0x02" ),
13059 srec(HandleInfoLevel3, req_cond="ncp.handle_info_level==0x03" ),
13060 srec(HandleInfoLevel4, req_cond="ncp.handle_info_level==0x04" ),
13061 srec(HandleInfoLevel5, req_cond="ncp.handle_info_level==0x05" ),
13063 pkt.ReqCondSizeVariable()
13064 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13065 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13066 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
13068 pkt = NCP(0x5720, "Open/Create File or Subdirectory with Callback", 'file', has_length=0)
13069 pkt.Request((30, 284), [
13070 rec( 8, 1, NameSpace ),
13071 rec( 9, 1, OpenCreateMode ),
13072 rec( 10, 2, SearchAttributesLow ),
13073 rec( 12, 2, ReturnInfoMask ),
13074 rec( 14, 2, ExtendedInfo ),
13075 rec( 16, 4, AttributesDef32 ),
13076 rec( 20, 2, DesiredAccessRights ),
13077 rec( 22, 1, VolumeNumber ),
13078 rec( 23, 4, DirectoryBase ),
13079 rec( 27, 1, HandleFlag ),
13080 rec( 28, 1, PathCount, var="x" ),
13081 rec( 29, (1,255), Path, repeat="x" ),
13082 ], info_str=(Path, "Open or Create with Op-Lock: %s", "/%s"))
13083 pkt.Reply( NO_LENGTH_CHECK, [
13084 rec( 8, 4, FileHandle, BE ),
13085 rec( 12, 1, OpenCreateAction ),
13086 rec( 13, 1, OCRetFlags ),
13087 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
13088 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
13089 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
13090 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
13091 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
13092 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
13093 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
13094 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
13095 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
13096 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
13097 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
13098 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
13099 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
13100 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
13101 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
13102 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
13103 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
13104 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
13105 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
13106 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
13107 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
13108 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
13109 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
13110 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
13111 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
13112 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
13113 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
13114 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
13115 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
13116 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
13117 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
13118 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
13119 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
13120 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
13121 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
13122 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
13123 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
13124 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
13125 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
13126 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
13127 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
13128 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
13129 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
13130 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
13131 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
13132 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
13133 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
13135 pkt.ReqCondSizeVariable()
13136 pkt.CompletionCodes([0x0000, 0x0102, 0x7f00, 0x8000, 0x8101, 0x8401, 0x8501,
13137 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13138 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
13140 pkt = NCP(0x5721, "Open/Create File or Subdirectory II with Callback", 'file', has_length=0)
13141 pkt.Request((34, 288), [
13142 rec( 8, 1, NameSpace ),
13143 rec( 9, 1, DataStream ),
13144 rec( 10, 1, OpenCreateMode ),
13145 rec( 11, 1, Reserved ),
13146 rec( 12, 2, SearchAttributesLow ),
13147 rec( 14, 2, Reserved2 ),
13148 rec( 16, 2, ReturnInfoMask ),
13149 rec( 18, 2, ExtendedInfo ),
13150 rec( 20, 4, AttributesDef32 ),
13151 rec( 24, 2, DesiredAccessRights ),
13152 rec( 26, 1, VolumeNumber ),
13153 rec( 27, 4, DirectoryBase ),
13154 rec( 31, 1, HandleFlag ),
13155 rec( 32, 1, PathCount, var="x" ),
13156 rec( 33, (1,255), Path, repeat="x" ),
13157 ], info_str=(FilePath, "Open or Create II with Op-Lock: %s", "/%s"))
13158 pkt.Reply(NO_LENGTH_CHECK, [
13159 rec( 8, 4, FileHandle ),
13160 rec( 12, 1, OpenCreateAction ),
13161 rec( 13, 1, OCRetFlags ),
13162 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
13163 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
13164 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
13165 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
13166 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
13167 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
13168 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
13169 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
13170 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
13171 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
13172 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
13173 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
13174 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
13175 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
13176 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
13177 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
13178 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
13179 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
13180 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
13181 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
13182 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
13183 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
13184 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
13185 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
13186 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
13187 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
13188 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
13189 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
13190 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
13191 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
13192 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
13193 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
13194 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
13195 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
13196 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
13197 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
13198 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
13199 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
13200 srec( DOSNameStruct, req_cond="ncp.ext_info_dos_name == 1" ),
13201 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
13202 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
13203 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
13204 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
13205 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
13206 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
13207 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
13208 srec( FileNameStruct, req_cond="ncp.ret_info_mask_fname == 1" ),
13210 pkt.ReqCondSizeVariable()
13211 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
13212 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13213 0x9804, 0x9b03, 0x9c03, 0xbe00, 0xbf00, 0xfd00, 0xff16])
13215 pkt = NCP(0x5722, "Open CallBack Control (Op-Lock)", 'file', has_length=0)
13217 rec( 10, 4, CCFileHandle, BE ),
13218 rec( 14, 1, CCFunction ),
13221 pkt.CompletionCodes([0x0000, 0x8000, 0x8800, 0xff16])
13223 pkt = NCP(0x5723, "Modify DOS Attributes on a File or Subdirectory", 'file', has_length=0)
13224 pkt.Request((28, 282), [
13225 rec( 8, 1, NameSpace ),
13226 rec( 9, 1, Flags ),
13227 rec( 10, 2, SearchAttributesLow ),
13228 rec( 12, 2, ReturnInfoMask ),
13229 rec( 14, 2, ExtendedInfo ),
13230 rec( 16, 4, AttributesDef32 ),
13231 rec( 20, 1, VolumeNumber ),
13232 rec( 21, 4, DirectoryBase ),
13233 rec( 25, 1, HandleFlag ),
13234 rec( 26, 1, PathCount, var="x" ),
13235 rec( 27, (1,255), Path, repeat="x" ),
13236 ], info_str=(Path, "Modify DOS Attributes for: %s", "/%s"))
13238 rec( 8, 4, ItemsChecked ),
13239 rec( 12, 4, ItemsChanged ),
13240 rec( 16, 4, AttributeValidFlag ),
13241 rec( 20, 4, AttributesDef32 ),
13243 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
13244 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13245 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
13247 pkt = NCP(0x5724, "Log File", 'sync', has_length=0)
13248 pkt.Request((28, 282), [
13249 rec( 8, 1, NameSpace ),
13250 rec( 9, 1, Reserved ),
13251 rec( 10, 2, Reserved2 ),
13252 rec( 12, 1, LogFileFlagLow ),
13253 rec( 13, 1, LogFileFlagHigh ),
13254 rec( 14, 2, Reserved2 ),
13255 rec( 16, 4, WaitTime ),
13256 rec( 20, 1, VolumeNumber ),
13257 rec( 21, 4, DirectoryBase ),
13258 rec( 25, 1, HandleFlag ),
13259 rec( 26, 1, PathCount, var="x" ),
13260 rec( 27, (1,255), Path, repeat="x" ),
13261 ], info_str=(Path, "Lock File: %s", "/%s"))
13263 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13264 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13265 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
13267 pkt = NCP(0x5725, "Release File", 'sync', has_length=0)
13268 pkt.Request((20, 274), [
13269 rec( 8, 1, NameSpace ),
13270 rec( 9, 1, Reserved ),
13271 rec( 10, 2, Reserved2 ),
13272 rec( 12, 1, VolumeNumber ),
13273 rec( 13, 4, DirectoryBase ),
13274 rec( 17, 1, HandleFlag ),
13275 rec( 18, 1, PathCount, var="x" ),
13276 rec( 19, (1,255), Path, repeat="x" ),
13277 ], info_str=(Path, "Release Lock on: %s", "/%s"))
13279 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13280 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13281 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
13283 pkt = NCP(0x5726, "Clear File", 'sync', has_length=0)
13284 pkt.Request((20, 274), [
13285 rec( 8, 1, NameSpace ),
13286 rec( 9, 1, Reserved ),
13287 rec( 10, 2, Reserved2 ),
13288 rec( 12, 1, VolumeNumber ),
13289 rec( 13, 4, DirectoryBase ),
13290 rec( 17, 1, HandleFlag ),
13291 rec( 18, 1, PathCount, var="x" ),
13292 rec( 19, (1,255), Path, repeat="x" ),
13293 ], info_str=(Path, "Clear File: %s", "/%s"))
13295 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13296 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13297 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
13299 pkt = NCP(0x5727, "Get Directory Disk Space Restriction", 'file', has_length=0)
13300 pkt.Request((19, 273), [
13301 rec( 8, 1, NameSpace ),
13302 rec( 9, 2, Reserved2 ),
13303 rec( 11, 1, VolumeNumber ),
13304 rec( 12, 4, DirectoryBase ),
13305 rec( 16, 1, HandleFlag ),
13306 rec( 17, 1, PathCount, var="x" ),
13307 rec( 18, (1,255), Path, repeat="x" ),
13308 ], info_str=(Path, "Get Disk Space Restriction for: %s", "/%s"))
13310 rec( 8, 1, NumberOfEntries, var="x" ),
13311 rec( 9, 9, SpaceStruct, repeat="x" ),
13313 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13314 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13315 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00,
13318 pkt = NCP(0x5728, "Search for File or Subdirectory Set (Extended Errors)", 'file', has_length=0)
13319 pkt.Request((28, 282), [
13320 rec( 8, 1, NameSpace ),
13321 rec( 9, 1, DataStream ),
13322 rec( 10, 2, SearchAttributesLow ),
13323 rec( 12, 2, ReturnInfoMask ),
13324 rec( 14, 2, ExtendedInfo ),
13325 rec( 16, 2, ReturnInfoCount ),
13326 rec( 18, 9, SeachSequenceStruct ),
13327 rec( 27, (1,255), SearchPattern ),
13328 ], info_str=(SearchPattern, "Search for: %s", ", %s"))
13329 pkt.Reply(NO_LENGTH_CHECK, [
13330 rec( 8, 9, SeachSequenceStruct ),
13331 rec( 17, 1, MoreFlag ),
13332 rec( 18, 2, InfoCount ),
13333 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
13334 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
13335 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
13336 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
13337 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
13338 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
13339 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
13340 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
13341 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
13342 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
13343 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
13344 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
13345 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
13346 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
13347 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
13348 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
13349 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
13350 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
13351 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
13352 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
13353 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
13354 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
13355 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
13356 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
13357 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
13358 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
13359 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
13360 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
13361 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
13362 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
13363 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
13364 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
13365 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
13366 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
13367 srec( FileNameStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
13369 pkt.ReqCondSizeVariable()
13370 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13371 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13372 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
13374 pkt = NCP(0x5729, "Scan Salvageable Files", 'file', has_length=0)
13375 pkt.Request((24,278), [
13376 rec( 8, 1, NameSpace ),
13377 rec( 9, 1, Reserved ),
13378 rec( 10, 2, CtrlFlags, LE ),
13379 rec( 12, 4, SequenceNumber ),
13380 rec( 16, 1, VolumeNumber ),
13381 rec( 17, 4, DirectoryBase ),
13382 rec( 21, 1, HandleFlag ),
13383 rec( 22, 1, PathCount, var="x" ),
13384 rec( 23, (1,255), Path, repeat="x" ),
13385 ], info_str=(Path, "Scan Deleted Files: %s", "/%s"))
13386 pkt.Reply(NO_LENGTH_CHECK, [
13387 rec( 8, 4, SequenceNumber ),
13388 rec( 12, 4, DirectoryBase ),
13389 rec( 16, 4, ScanItems, var="x" ),
13390 srec(ScanInfoFileName, req_cond="ncp.ctrl_flags==0x0001", repeat="x" ),
13391 srec(ScanInfoFileNoName, req_cond="ncp.ctrl_flags==0x0000", repeat="x" ),
13393 pkt.ReqCondSizeVariable()
13394 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13395 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13396 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
13398 pkt = NCP(0x572A, "Purge Salvageable File List", 'file', has_length=0)
13400 rec( 8, 1, NameSpace ),
13401 rec( 9, 1, Reserved ),
13402 rec( 10, 2, PurgeFlags ),
13403 rec( 12, 4, VolumeNumberLong ),
13404 rec( 16, 4, DirectoryBase ),
13405 rec( 20, 4, PurgeCount, var="x" ),
13406 rec( 24, 4, PurgeList, repeat="x" ),
13409 rec( 8, 4, PurgeCount, var="x" ),
13410 rec( 12, 4, PurgeCcode, repeat="x" ),
13412 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13413 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13414 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
13416 pkt = NCP(0x572B, "Revoke File Handle Rights", 'file', has_length=0)
13418 rec( 8, 3, Reserved3 ),
13419 rec( 11, 1, RevQueryFlag ),
13420 rec( 12, 4, FileHandle ),
13421 rec( 16, 1, RemoveOpenRights ),
13424 rec( 8, 4, FileHandle ),
13425 rec( 12, 1, OpenRights ),
13427 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13428 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13429 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
13431 pkt = NCP(0x572C, "Update File Handle Rights", 'file', has_length=0)
13433 rec( 8, 2, Reserved2 ),
13434 rec( 10, 1, VolumeNumber ),
13435 rec( 11, 1, NameSpace ),
13436 rec( 12, 4, DirectoryNumber ),
13437 rec( 16, 2, AccessRightsMaskWord ),
13438 rec( 18, 2, NewAccessRights ),
13439 rec( 20, 4, FileHandle, BE ),
13442 rec( 8, 4, FileHandle, BE ),
13443 rec( 12, 4, EffectiveRights, LE ),
13445 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13446 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13447 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
13449 pkt = NCP(0x5740, "Read from File", 'file', has_length=0)
13451 rec( 8, 4, FileHandle, BE ),
13452 rec( 12, 8, StartOffset64bit, BE ),
13453 rec( 20, 2, NumBytes, BE ),
13456 rec( 8, 2, NumBytes, BE),
13458 pkt.CompletionCodes([0x0000, 0x8300, 0x8800, 0x9300, 0x9500, 0xa201, 0xfd00, 0xff1b])
13460 pkt = NCP(0x5741, "Write to File", 'file', has_length=0)
13462 rec( 8, 4, FileHandle, BE ),
13463 rec( 12, 8, StartOffset64bit, BE ),
13464 rec( 20, 2, NumBytes, BE ),
13467 pkt.CompletionCodes([0x0000, 0x0102, 0x8300, 0x8800, 0x9400, 0x9500, 0xa201, 0xfd00, 0xff1b])
13469 pkt = NCP(0x5742, "Get Current Size of File", 'file', has_length=0)
13471 rec( 8, 4, FileHandle, BE ),
13474 rec( 8, 8, FileSize64bit),
13476 pkt.CompletionCodes([0x0000, 0x7f00, 0x8800, 0x9600, 0xfd02, 0xff01])
13478 pkt = NCP(0x5743, "Log Physical Record", 'file', has_length=0)
13480 rec( 8, 4, LockFlag, BE ),
13481 rec(12, 4, FileHandle, BE ),
13482 rec(16, 8, StartOffset64bit, BE ),
13483 rec(24, 8, Length64bit, BE ),
13484 rec(32, 4, LockTimeout, BE),
13487 pkt.CompletionCodes([0x0000, 0x7f00, 0x8800, 0x9600, 0xfb08, 0xfd02, 0xff01])
13489 pkt = NCP(0x5744, "Release Physical Record", 'file', has_length=0)
13491 rec(8, 4, FileHandle, BE ),
13492 rec(12, 8, StartOffset64bit, BE ),
13493 rec(20, 8, Length64bit, BE ),
13496 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13497 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13498 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff1a])
13500 pkt = NCP(0x5745, "Clear Physical Record", 'file', has_length=0)
13502 rec(8, 4, FileHandle, BE ),
13503 rec(12, 8, StartOffset64bit, BE ),
13504 rec(20, 8, Length64bit, BE ),
13507 pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13508 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13509 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff1a])
13511 pkt = NCP(0x5801, "Query Volume Audit Status", "auditing", has_length=0)
13513 rec( 8, 4, ConnectionNumber ),
13516 rec(8, 32, NWAuditStatus ),
13518 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13519 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13520 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13522 pkt = NCP(0x5802, "Add User Audit Property", "auditing", has_length=0)
13524 rec(8, 4, AuditIDType ),
13525 rec(12, 4, AuditID ),
13526 rec(16, 4, AuditHandle ),
13527 rec(20, 4, ObjectID ),
13528 rec(24, 1, AuditFlag ),
13531 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13532 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13533 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13535 pkt = NCP(0x5803, "Add Auditor Access", "auditing", has_length=0)
13538 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13539 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13540 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xde00, 0xfd00, 0xff16])
13542 pkt = NCP(0x5804, "Change Auditor Volume Password", "auditing", has_length=0)
13545 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13546 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13547 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13549 pkt = NCP(0x5805, "Check Auditor Access", "auditing", has_length=0)
13552 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13553 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13554 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13556 pkt = NCP(0x5806, "Delete User Audit Property", "auditing", has_length=0)
13559 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13560 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13561 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff21])
13563 pkt = NCP(0x5807, "Disable Auditing On A Volume", "auditing", has_length=0)
13566 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13567 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13568 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13570 pkt = NCP(0x5808, "Enable Auditing On A Volume", "auditing", has_length=0)
13573 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13574 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13575 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xde00, 0xfd00, 0xff16])
13577 pkt = NCP(0x5809, "Query User Being Audited", "auditing", has_length=0)
13580 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13581 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13582 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13584 pkt = NCP(0x580A, "Read Audit Bit Map", "auditing", has_length=0)
13587 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13588 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13589 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13591 pkt = NCP(0x580B, "Read Audit File Configuration Header", "auditing", has_length=0)
13594 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13595 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13596 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13598 pkt = NCP(0x580D, "Remove Auditor Access", "auditing", has_length=0)
13601 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13602 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13603 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13605 pkt = NCP(0x580E, "Reset Audit File", "auditing", has_length=0)
13608 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13609 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13610 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13613 pkt = NCP(0x580F, "Auditing NCP", "auditing", has_length=0)
13616 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13617 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13618 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfb00, 0xfd00, 0xff16])
13620 pkt = NCP(0x5810, "Write Audit Bit Map", "auditing", has_length=0)
13623 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13624 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13625 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13627 pkt = NCP(0x5811, "Write Audit File Configuration Header", "auditing", has_length=0)
13630 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13631 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13632 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13634 pkt = NCP(0x5812, "Change Auditor Volume Password2", "auditing", has_length=0)
13637 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13638 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13639 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13641 pkt = NCP(0x5813, "Return Audit Flags", "auditing", has_length=0)
13644 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13645 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13646 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13648 pkt = NCP(0x5814, "Close Old Audit File", "auditing", has_length=0)
13651 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13652 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13653 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13655 pkt = NCP(0x5816, "Check Level Two Access", "auditing", has_length=0)
13658 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13659 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13660 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xde00, 0xfd00, 0xff16])
13662 pkt = NCP(0x5817, "Return Old Audit File List", "auditing", has_length=0)
13665 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13666 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13667 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13669 pkt = NCP(0x5818, "Init Audit File Reads", "auditing", has_length=0)
13672 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13673 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13674 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13676 pkt = NCP(0x5819, "Read Auditing File", "auditing", has_length=0)
13679 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13680 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13681 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13683 pkt = NCP(0x581A, "Delete Old Audit File", "auditing", has_length=0)
13686 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13687 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13688 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13690 pkt = NCP(0x581E, "Restart Volume auditing", "auditing", has_length=0)
13693 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13694 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13695 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13697 pkt = NCP(0x581F, "Set Volume Password", "auditing", has_length=0)
13700 pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501,
13701 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
13702 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16])
13704 pkt = NCP(0x5901, "Open/Create File or Subdirectory", "enhanced", has_length=0)
13705 pkt.Request((37,290), [
13706 rec( 8, 1, NameSpace ),
13707 rec( 9, 1, OpenCreateMode ),
13708 rec( 10, 2, SearchAttributesLow ),
13709 rec( 12, 2, ReturnInfoMask ),
13710 rec( 14, 2, ExtendedInfo ),
13711 rec( 16, 4, AttributesDef32 ),
13712 rec( 20, 2, DesiredAccessRights ),
13713 rec( 22, 4, DirectoryBase ),
13714 rec( 26, 1, VolumeNumber ),
13715 rec( 27, 1, HandleFlag ),
13716 rec( 28, 1, DataTypeFlag ),
13717 rec( 29, 5, Reserved5 ),
13718 rec( 34, 1, PathCount, var="x" ),
13719 rec( 35, (2,255), Path16, repeat="x" ),
13720 ], info_str=(Path16, "Open or Create File or Subdirectory: %s", "/%s"))
13721 pkt.Reply( NO_LENGTH_CHECK, [
13722 rec( 8, 4, FileHandle, BE ),
13723 rec( 12, 1, OpenCreateAction ),
13724 rec( 13, 1, Reserved ),
13725 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
13726 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
13727 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
13728 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
13729 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
13730 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
13731 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
13732 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
13733 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
13734 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
13735 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
13736 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
13737 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
13738 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
13739 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
13740 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
13741 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
13742 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
13743 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
13744 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
13745 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
13746 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
13747 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
13748 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
13749 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
13750 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
13751 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
13752 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
13753 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
13754 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
13755 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
13756 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
13757 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
13758 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
13759 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
13760 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
13761 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
13762 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
13763 srec( DOSName16Struct, req_cond="ncp.ext_info_dos_name == 1" ),
13764 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
13765 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
13766 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
13767 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
13768 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
13769 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
13770 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
13771 srec( FileSize64bitStruct, req_cond="ncp.ext_info_64_bit_fs == 1" ),
13772 srec( FileName16Struct, req_cond="ncp.ret_info_mask_fname == 1" ),
13774 pkt.ReqCondSizeVariable()
13775 pkt.CompletionCodes([0x0000, 0x0102, 0x7f00, 0x8000, 0x8101, 0x8401, 0x8501,
13776 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13777 0x9804, 0x9900, 0x9b03, 0x9c03, 0xa901, 0xa500, 0xaa00, 0xbf00, 0xfd00, 0xff16])
13779 pkt = NCP(0x5902, "Initialize Search", 'enhanced', has_length=0)
13780 pkt.Request( (25,278), [
13781 rec( 8, 1, NameSpace ),
13782 rec( 9, 1, Reserved ),
13783 rec( 10, 4, DirectoryBase ),
13784 rec( 14, 1, VolumeNumber ),
13785 rec( 15, 1, HandleFlag ),
13786 rec( 16, 1, DataTypeFlag ),
13787 rec( 17, 5, Reserved5 ),
13788 rec( 22, 1, PathCount, var="x" ),
13789 rec( 23, (2,255), Path16, repeat="x" ),
13790 ], info_str=(Path16, "Set Search Pointer to: %s", "/%s"))
13792 rec( 8, 1, VolumeNumber ),
13793 rec( 9, 4, DirectoryNumber ),
13794 rec( 13, 4, DirectoryEntryNumber ),
13796 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13797 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13798 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
13800 pkt = NCP(0x5903, "Search for File or Subdirectory", 'enhanced', has_length=0)
13801 pkt.Request((28, 281), [
13802 rec( 8, 1, NameSpace ),
13803 rec( 9, 1, DataStream ),
13804 rec( 10, 2, SearchAttributesLow ),
13805 rec( 12, 2, ReturnInfoMask ),
13806 rec( 14, 2, ExtendedInfo ),
13807 rec( 16, 9, SeachSequenceStruct ),
13808 rec( 25, 1, DataTypeFlag ),
13809 rec( 26, (2,255), SearchPattern16 ),
13810 ], info_str=(SearchPattern16, "Search for: %s", "/%s"))
13811 pkt.Reply( NO_LENGTH_CHECK, [
13812 rec( 8, 9, SeachSequenceStruct ),
13813 rec( 17, 1, Reserved ),
13814 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
13815 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
13816 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
13817 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
13818 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
13819 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
13820 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
13821 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
13822 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
13823 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
13824 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
13825 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
13826 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
13827 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
13828 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
13829 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
13830 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
13831 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
13832 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
13833 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
13834 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
13835 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
13836 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
13837 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
13838 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
13839 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
13840 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
13841 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
13842 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
13843 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
13844 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
13845 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
13846 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
13847 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
13848 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
13849 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
13850 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
13851 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
13852 srec( DOSName16Struct, req_cond="ncp.ext_info_dos_name == 1" ),
13853 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
13854 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
13855 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
13856 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
13857 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
13858 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
13859 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
13860 srec( FileSize64bitStruct, req_cond="ncp.ext_info_64_bit_fs == 1" ),
13861 srec( FileName16Struct, req_cond="ncp.ret_info_mask_fname == 1" ),
13863 pkt.ReqCondSizeVariable()
13864 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13865 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13866 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
13868 pkt = NCP(0x5904, "Rename Or Move a File or Subdirectory", 'enhanced', has_length=0)
13869 pkt.Request((42, 548), [
13870 rec( 8, 1, NameSpace ),
13871 rec( 9, 1, RenameFlag ),
13872 rec( 10, 2, SearchAttributesLow ),
13873 rec( 12, 12, SrcEnhNWHandlePathS1 ),
13874 rec( 24, 1, PathCount, var="x" ),
13875 rec( 25, 12, DstEnhNWHandlePathS1 ),
13876 rec( 37, 1, PathCount, var="y" ),
13877 rec( 38, (2, 255), Path16, repeat="x" ),
13878 rec( -1, (2,255), DestPath16, repeat="y" ),
13879 ], info_str=(Path16, "Rename or Move: %s", "/%s"))
13881 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
13882 0x8701, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9200, 0x9600,
13883 0x9804, 0x9a00, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
13885 pkt = NCP(0x5905, "Scan File or Subdirectory for Trustees", 'enhanced', has_length=0)
13886 pkt.Request((31, 284), [
13887 rec( 8, 1, NameSpace ),
13888 rec( 9, 1, MaxReplyObjectIDCount ),
13889 rec( 10, 2, SearchAttributesLow ),
13890 rec( 12, 4, SequenceNumber ),
13891 rec( 16, 4, DirectoryBase ),
13892 rec( 20, 1, VolumeNumber ),
13893 rec( 21, 1, HandleFlag ),
13894 rec( 22, 1, DataTypeFlag ),
13895 rec( 23, 5, Reserved5 ),
13896 rec( 28, 1, PathCount, var="x" ),
13897 rec( 29, (2, 255), Path16, repeat="x" ),
13898 ], info_str=(Path16, "Scan Trustees for: %s", "/%s"))
13900 rec( 8, 4, SequenceNumber ),
13901 rec( 12, 2, ObjectIDCount, var="x" ),
13902 rec( 14, 6, TrusteeStruct, repeat="x" ),
13904 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13905 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
13906 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
13908 pkt = NCP(0x5906, "Obtain File or SubDirectory Information", 'enhanced', has_length=0)
13909 pkt.Request((22), [
13910 rec( 8, 1, SrcNameSpace ),
13911 rec( 9, 1, DestNameSpace ),
13912 rec( 10, 2, SearchAttributesLow ),
13913 rec( 12, 2, ReturnInfoMask, LE ),
13914 rec( 14, 2, ExtendedInfo ),
13915 rec( 16, 4, DirectoryBase ),
13916 rec( 20, 1, VolumeNumber ),
13917 rec( 21, 1, HandleFlag ),
13919 # Move to packet-ncp2222.inc
13920 # The datatype flag indicates if the path is represented as ASCII or UTF8
13921 # ASCII has a 1 byte count field whereas UTF8 has a two byte count field.
13923 #rec( 22, 1, DataTypeFlag ),
13924 #rec( 23, 5, Reserved5 ),
13925 #rec( 28, 1, PathCount, var="x" ),
13926 #rec( 29, (2,255), Path16, repeat="x",),
13927 ], info_str=(Path16, "Obtain Info for: %s", "/%s"))
13928 pkt.Reply(NO_LENGTH_CHECK, [
13929 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
13930 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
13931 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
13932 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
13933 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
13934 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
13935 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
13936 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
13937 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
13938 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
13939 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
13940 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
13941 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
13942 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
13943 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
13944 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
13945 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
13946 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
13947 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
13948 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
13949 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
13950 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
13951 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
13952 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
13953 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
13954 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
13955 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
13956 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
13957 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
13958 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
13959 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
13960 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
13961 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
13962 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
13963 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
13964 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
13965 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
13966 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
13967 srec( DOSName16Struct, req_cond="ncp.ext_info_dos_name == 1" ),
13968 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
13969 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
13970 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
13971 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
13972 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
13973 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
13974 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
13975 srec( FileSize64bitStruct, req_cond="ncp.ext_info_64_bit_fs == 1" ),
13976 srec( FileName16Struct, req_cond="ncp.ret_info_mask_fname == 1" ),
13978 pkt.ReqCondSizeVariable()
13979 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
13980 0x8700, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
13981 0x9804, 0x9b03, 0x9c03, 0xa802, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
13983 pkt = NCP(0x5907, "Modify File or Subdirectory DOS Information", 'enhanced', has_length=0)
13984 pkt.Request((69,322), [
13985 rec( 8, 1, NameSpace ),
13986 rec( 9, 1, Reserved ),
13987 rec( 10, 2, SearchAttributesLow ),
13988 rec( 12, 2, ModifyDOSInfoMask ),
13989 rec( 14, 2, Reserved2 ),
13990 rec( 16, 2, AttributesDef16 ),
13991 rec( 18, 1, FileMode ),
13992 rec( 19, 1, FileExtendedAttributes ),
13993 rec( 20, 2, CreationDate ),
13994 rec( 22, 2, CreationTime ),
13995 rec( 24, 4, CreatorID, BE ),
13996 rec( 28, 2, ModifiedDate ),
13997 rec( 30, 2, ModifiedTime ),
13998 rec( 32, 4, ModifierID, BE ),
13999 rec( 36, 2, ArchivedDate ),
14000 rec( 38, 2, ArchivedTime ),
14001 rec( 40, 4, ArchiverID, BE ),
14002 rec( 44, 2, LastAccessedDate ),
14003 rec( 46, 2, InheritedRightsMask ),
14004 rec( 48, 2, InheritanceRevokeMask ),
14005 rec( 50, 4, MaxSpace ),
14006 rec( 54, 4, DirectoryBase ),
14007 rec( 58, 1, VolumeNumber ),
14008 rec( 59, 1, HandleFlag ),
14009 rec( 60, 1, DataTypeFlag ),
14010 rec( 61, 5, Reserved5 ),
14011 rec( 66, 1, PathCount, var="x" ),
14012 rec( 67, (2,255), Path16, repeat="x" ),
14013 ], info_str=(Path16, "Modify DOS Information for: %s", "/%s"))
14015 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
14016 0x8701, 0x8c01, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
14017 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14019 pkt = NCP(0x5908, "Delete a File or Subdirectory", 'enhanced', has_length=0)
14020 pkt.Request((27,280), [
14021 rec( 8, 1, NameSpace ),
14022 rec( 9, 1, Reserved ),
14023 rec( 10, 2, SearchAttributesLow ),
14024 rec( 12, 4, DirectoryBase ),
14025 rec( 16, 1, VolumeNumber ),
14026 rec( 17, 1, HandleFlag ),
14027 rec( 18, 1, DataTypeFlag ),
14028 rec( 19, 5, Reserved5 ),
14029 rec( 24, 1, PathCount, var="x" ),
14030 rec( 25, (2,255), Path16, repeat="x" ),
14031 ], info_str=(Path16, "Delete a File or Subdirectory: %s", "/%s"))
14033 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14034 0x8701, 0x8900, 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
14035 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14037 pkt = NCP(0x5909, "Set Short Directory Handle", 'enhanced', has_length=0)
14038 pkt.Request((27,280), [
14039 rec( 8, 1, NameSpace ),
14040 rec( 9, 1, DataStream ),
14041 rec( 10, 1, DestDirHandle ),
14042 rec( 11, 1, Reserved ),
14043 rec( 12, 4, DirectoryBase ),
14044 rec( 16, 1, VolumeNumber ),
14045 rec( 17, 1, HandleFlag ),
14046 rec( 18, 1, DataTypeFlag ),
14047 rec( 19, 5, Reserved5 ),
14048 rec( 24, 1, PathCount, var="x" ),
14049 rec( 25, (2,255), Path16, repeat="x" ),
14050 ], info_str=(Path16, "Set Short Directory Handle to: %s", "/%s"))
14052 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14053 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14054 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14056 pkt = NCP(0x590A, "Add Trustee Set to File or Subdirectory", 'enhanced', has_length=0)
14057 pkt.Request((37,290), [
14058 rec( 8, 1, NameSpace ),
14059 rec( 9, 1, Reserved ),
14060 rec( 10, 2, SearchAttributesLow ),
14061 rec( 12, 2, AccessRightsMaskWord ),
14062 rec( 14, 2, ObjectIDCount, var="y" ),
14063 rec( -1, 6, TrusteeStruct, repeat="y" ),
14064 rec( -1, 4, DirectoryBase ),
14065 rec( -1, 1, VolumeNumber ),
14066 rec( -1, 1, HandleFlag ),
14067 rec( -1, 1, DataTypeFlag ),
14068 rec( -1, 5, Reserved5 ),
14069 rec( -1, 1, PathCount, var="x" ),
14070 rec( -1, (2,255), Path16, repeat="x" ),
14071 ], info_str=(Path16, "Add Trustee Set to: %s", "/%s"))
14073 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
14074 0x8701, 0x8c01, 0x8d00, 0x8f00, 0x9001, 0x9600,
14075 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfc01, 0xfd00, 0xff16])
14077 pkt = NCP(0x590B, "Delete Trustee Set from File or SubDirectory", 'enhanced', has_length=0)
14078 pkt.Request((34,287), [
14079 rec( 8, 1, NameSpace ),
14080 rec( 9, 1, Reserved ),
14081 rec( 10, 2, ObjectIDCount, var="y" ),
14082 rec( 12, 7, TrusteeStruct, repeat="y" ),
14083 rec( 19, 4, DirectoryBase ),
14084 rec( 23, 1, VolumeNumber ),
14085 rec( 24, 1, HandleFlag ),
14086 rec( 25, 1, DataTypeFlag ),
14087 rec( 26, 5, Reserved5 ),
14088 rec( 31, 1, PathCount, var="x" ),
14089 rec( 32, (2,255), Path16, repeat="x" ),
14090 ], info_str=(Path16, "Delete Trustee Set from: %s", "/%s"))
14092 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14093 0x8701, 0x8c01, 0x8d00, 0x8f00, 0x9001, 0x9600,
14094 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14096 pkt = NCP(0x590C, "Allocate Short Directory Handle", 'enhanced', has_length=0)
14097 pkt.Request((27,280), [
14098 rec( 8, 1, NameSpace ),
14099 rec( 9, 1, DestNameSpace ),
14100 rec( 10, 2, AllocateMode ),
14101 rec( 12, 4, DirectoryBase ),
14102 rec( 16, 1, VolumeNumber ),
14103 rec( 17, 1, HandleFlag ),
14104 rec( 18, 1, DataTypeFlag ),
14105 rec( 19, 5, Reserved5 ),
14106 rec( 24, 1, PathCount, var="x" ),
14107 rec( 25, (2,255), Path16, repeat="x" ),
14108 ], info_str=(Path16, "Allocate Short Directory Handle to: %s", "/%s"))
14109 pkt.Reply(NO_LENGTH_CHECK, [
14110 srec( ReplyLevel2Struct, req_cond="ncp.alloc_reply_lvl2 == TRUE" ),
14111 srec( ReplyLevel1Struct, req_cond="ncp.alloc_reply_lvl2 == FALSE" ),
14113 pkt.ReqCondSizeVariable()
14114 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14115 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14116 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14118 pkt = NCP(0x5910, "Scan Salvageable Files", 'enhanced', has_length=0)
14119 pkt.Request((33,286), [
14120 rec( 8, 1, NameSpace ),
14121 rec( 9, 1, DataStream ),
14122 rec( 10, 2, ReturnInfoMask ),
14123 rec( 12, 2, ExtendedInfo ),
14124 rec( 14, 4, SequenceNumber ),
14125 rec( 18, 4, DirectoryBase ),
14126 rec( 22, 1, VolumeNumber ),
14127 rec( 23, 1, HandleFlag ),
14128 rec( 24, 1, DataTypeFlag ),
14129 rec( 25, 5, Reserved5 ),
14130 rec( 30, 1, PathCount, var="x" ),
14131 rec( 31, (2,255), Path16, repeat="x" ),
14132 ], info_str=(Path16, "Scan for Deleted Files in: %s", "/%s"))
14133 pkt.Reply(NO_LENGTH_CHECK, [
14134 rec( 8, 4, SequenceNumber ),
14135 rec( 12, 2, DeletedTime ),
14136 rec( 14, 2, DeletedDate ),
14137 rec( 16, 4, DeletedID, BE ),
14138 rec( 20, 4, VolumeID ),
14139 rec( 24, 4, DirectoryBase ),
14140 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
14141 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
14142 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
14143 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
14144 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
14145 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
14146 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
14147 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
14148 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
14149 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
14150 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
14151 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
14152 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
14153 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
14154 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
14155 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
14156 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
14157 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
14158 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
14159 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
14160 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
14161 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
14162 srec( FileName16Struct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
14163 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
14164 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
14165 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
14166 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
14167 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
14168 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
14169 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
14170 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
14171 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
14172 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
14173 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
14174 srec( FileSize64bitStruct, req_cond="ncp.ext_info_64_bit_fs == 1" ),
14175 srec( FileName16Struct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
14177 pkt.ReqCondSizeVariable()
14178 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14179 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14180 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14182 pkt = NCP(0x5911, "Recover Salvageable File", 'enhanced', has_length=0)
14183 pkt.Request((24,278), [
14184 rec( 8, 1, NameSpace ),
14185 rec( 9, 1, Reserved ),
14186 rec( 10, 4, SequenceNumber ),
14187 rec( 14, 4, VolumeID ),
14188 rec( 18, 4, DirectoryBase ),
14189 rec( 22, 1, DataTypeFlag ),
14190 rec( 23, (1,255), FileName ),
14191 ], info_str=(FileName, "Recover Deleted File: %s", ", %s"))
14193 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
14194 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14195 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14197 pkt = NCP(0x5913, "Get Name Space Information", 'enhanced', has_length=0)
14199 rec( 8, 1, SrcNameSpace ),
14200 rec( 9, 1, DestNameSpace ),
14201 rec( 10, 1, DataTypeFlag ),
14202 rec( 11, 1, VolumeNumber ),
14203 rec( 12, 4, DirectoryBase ),
14204 rec( 16, 2, NamesSpaceInfoMask ),
14206 pkt.Reply(NO_LENGTH_CHECK, [
14207 srec( FileName16Struct, req_cond="ncp.ns_info_mask_modify == TRUE" ),
14208 srec( FileAttributesStruct, req_cond="ncp.ns_info_mask_fatt == TRUE" ),
14209 srec( CreationDateStruct, req_cond="ncp.ns_info_mask_cdate == TRUE" ),
14210 srec( CreationTimeStruct, req_cond="ncp.ns_info_mask_ctime == TRUE" ),
14211 srec( OwnerIDStruct, req_cond="ncp.ns_info_mask_owner == TRUE" ),
14212 srec( ArchiveDateStruct, req_cond="ncp.ns_info_mask_adate == TRUE" ),
14213 srec( ArchiveTimeStruct, req_cond="ncp.ns_info_mask_atime == TRUE" ),
14214 srec( ArchiveIdStruct, req_cond="ncp.ns_info_mask_aid == TRUE" ),
14215 srec( UpdateDateStruct, req_cond="ncp.ns_info_mask_udate == TRUE" ),
14216 srec( UpdateTimeStruct, req_cond="ncp.ns_info_mask_utime == TRUE" ),
14217 srec( UpdateIDStruct, req_cond="ncp.ns_info_mask_uid == TRUE" ),
14218 srec( LastAccessStruct, req_cond="ncp.ns_info_mask_acc_date == TRUE" ),
14219 srec( RightsInfoStruct, req_cond="ncp.ns_info_mask_max_acc_mask == TRUE" ),
14221 pkt.ReqCondSizeVariable()
14222 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14223 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14224 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14226 pkt = NCP(0x5914, "Search for File or Subdirectory Set", 'enhanced', has_length=0)
14227 pkt.Request((30, 283), [
14228 rec( 8, 1, NameSpace ),
14229 rec( 9, 1, DataStream ),
14230 rec( 10, 2, SearchAttributesLow ),
14231 rec( 12, 2, ReturnInfoMask ),
14232 rec( 14, 2, ExtendedInfo ),
14233 rec( 16, 2, ReturnInfoCount ),
14234 rec( 18, 9, SeachSequenceStruct ),
14235 rec( 27, 1, DataTypeFlag ),
14236 rec( 28, (2,255), SearchPattern16 ),
14238 # The reply packet is dissected in packet-ncp2222.inc
14239 pkt.Reply(NO_LENGTH_CHECK, [
14241 pkt.ReqCondSizeVariable()
14242 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14243 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14244 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14246 pkt = NCP(0x5916, "Generate Directory Base and Volume Number", 'enhanced', has_length=0)
14247 pkt.Request((27,280), [
14248 rec( 8, 1, SrcNameSpace ),
14249 rec( 9, 1, DestNameSpace ),
14250 rec( 10, 2, dstNSIndicator ),
14251 rec( 12, 4, DirectoryBase ),
14252 rec( 16, 1, VolumeNumber ),
14253 rec( 17, 1, HandleFlag ),
14254 rec( 18, 1, DataTypeFlag ),
14255 rec( 19, 5, Reserved5 ),
14256 rec( 24, 1, PathCount, var="x" ),
14257 rec( 25, (2,255), Path16, repeat="x" ),
14258 ], info_str=(Path16, "Get Volume and Directory Base from: %s", "/%s"))
14260 rec( 8, 4, DirectoryBase ),
14261 rec( 12, 4, DOSDirectoryBase ),
14262 rec( 16, 1, VolumeNumber ),
14264 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14265 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14266 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14268 pkt = NCP(0x5919, "Set Name Space Information", 'enhanced', has_length=0)
14270 rec( 8, 1, SrcNameSpace ),
14271 rec( 9, 1, DestNameSpace ),
14272 rec( 10, 1, VolumeNumber ),
14273 rec( 11, 4, DirectoryBase ),
14274 rec( 15, 2, NamesSpaceInfoMask ),
14275 rec( 17, 1, DataTypeFlag ),
14276 rec( 18, 512, NSSpecificInfo ),
14279 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
14280 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
14281 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00,
14284 pkt = NCP(0x591C, "Get Full Path String", 'enhanced', has_length=0)
14285 pkt.Request((35,288), [
14286 rec( 8, 1, SrcNameSpace ),
14287 rec( 9, 1, DestNameSpace ),
14288 rec( 10, 2, PathCookieFlags ),
14289 rec( 12, 4, Cookie1 ),
14290 rec( 16, 4, Cookie2 ),
14291 rec( 20, 4, DirectoryBase ),
14292 rec( 24, 1, VolumeNumber ),
14293 rec( 25, 1, HandleFlag ),
14294 rec( 26, 1, DataTypeFlag ),
14295 rec( 27, 5, Reserved5 ),
14296 rec( 32, 1, PathCount, var="x" ),
14297 rec( 33, (2,255), Path16, repeat="x" ),
14298 ], info_str=(Path16, "Get Full Path from: %s", "/%s"))
14299 pkt.Reply((24,277), [
14300 rec( 8, 2, PathCookieFlags ),
14301 rec( 10, 4, Cookie1 ),
14302 rec( 14, 4, Cookie2 ),
14303 rec( 18, 2, PathComponentSize ),
14304 rec( 20, 2, PathComponentCount, var='x' ),
14305 rec( 22, (2,255), Path16, repeat='x' ),
14307 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14308 0x8701, 0x8b00, 0x8d00, 0x8f00, 0x9001,
14309 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00,
14312 pkt = NCP(0x591D, "Get Effective Directory Rights", 'enhanced', has_length=0)
14313 pkt.Request((31, 284), [
14314 rec( 8, 1, NameSpace ),
14315 rec( 9, 1, DestNameSpace ),
14316 rec( 10, 2, SearchAttributesLow ),
14317 rec( 12, 2, ReturnInfoMask ),
14318 rec( 14, 2, ExtendedInfo ),
14319 rec( 16, 4, DirectoryBase ),
14320 rec( 20, 1, VolumeNumber ),
14321 rec( 21, 1, HandleFlag ),
14322 rec( 22, 1, DataTypeFlag ),
14323 rec( 23, 5, Reserved5 ),
14324 rec( 28, 1, PathCount, var="x" ),
14325 rec( 29, (2,255), Path16, repeat="x" ),
14326 ], info_str=(Path16, "Get Effective Rights for: %s", "/%s"))
14327 pkt.Reply(NO_LENGTH_CHECK, [
14328 rec( 8, 2, EffectiveRights, LE ),
14329 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
14330 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
14331 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
14332 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
14333 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
14334 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
14335 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
14336 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
14337 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
14338 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
14339 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
14340 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
14341 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
14342 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
14343 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
14344 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
14345 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
14346 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
14347 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
14348 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
14349 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
14350 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
14351 srec( FileName16Struct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
14352 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
14353 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
14354 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
14355 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
14356 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
14357 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
14358 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
14359 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
14360 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
14361 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
14362 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
14363 srec( FileSize64bitStruct, req_cond="(ncp.ext_info_64_bit_fs == 1) && (ncp.ret_info_mask_fname == 1)" ),
14364 srec( FileName16Struct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
14366 pkt.ReqCondSizeVariable()
14367 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14368 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14369 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14371 pkt = NCP(0x591E, "Open/Create File or Subdirectory", 'enhanced', has_length=0)
14372 pkt.Request((41, 294), [
14373 rec( 8, 1, NameSpace ),
14374 rec( 9, 1, DataStream ),
14375 rec( 10, 1, OpenCreateMode ),
14376 rec( 11, 1, Reserved ),
14377 rec( 12, 2, SearchAttributesLow ),
14378 rec( 14, 2, Reserved2 ),
14379 rec( 16, 2, ReturnInfoMask ),
14380 rec( 18, 2, ExtendedInfo ),
14381 rec( 20, 4, AttributesDef32 ),
14382 rec( 24, 2, DesiredAccessRights ),
14383 rec( 26, 4, DirectoryBase ),
14384 rec( 30, 1, VolumeNumber ),
14385 rec( 31, 1, HandleFlag ),
14386 rec( 32, 1, DataTypeFlag ),
14387 rec( 33, 5, Reserved5 ),
14388 rec( 38, 1, PathCount, var="x" ),
14389 rec( 39, (2,255), Path16, repeat="x" ),
14390 ], info_str=(Path16, "Open or Create File: %s", "/%s"))
14391 pkt.Reply(NO_LENGTH_CHECK, [
14392 rec( 8, 4, FileHandle, BE ),
14393 rec( 12, 1, OpenCreateAction ),
14394 rec( 13, 1, Reserved ),
14395 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
14396 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
14397 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
14398 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
14399 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
14400 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
14401 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
14402 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
14403 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
14404 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
14405 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
14406 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
14407 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
14408 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
14409 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
14410 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
14411 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
14412 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
14413 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
14414 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
14415 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
14416 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
14417 srec( FileName16Struct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
14418 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
14419 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
14420 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
14421 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
14422 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
14423 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
14424 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
14425 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
14426 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
14427 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
14428 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
14429 srec( FileSize64bitStruct, req_cond="(ncp.ext_info_64_bit_fs == 1) && (ncp.ret_info_mask_fname == 1)" ),
14430 srec( FileName16Struct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
14432 pkt.ReqCondSizeVariable()
14433 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
14434 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14435 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14437 pkt = NCP(0x5920, "Open/Create File or Subdirectory with Callback", 'enhanced', has_length=0)
14438 pkt.Request((37, 290), [
14439 rec( 8, 1, NameSpace ),
14440 rec( 9, 1, OpenCreateMode ),
14441 rec( 10, 2, SearchAttributesLow ),
14442 rec( 12, 2, ReturnInfoMask ),
14443 rec( 14, 2, ExtendedInfo ),
14444 rec( 16, 4, AttributesDef32 ),
14445 rec( 20, 2, DesiredAccessRights ),
14446 rec( 22, 4, DirectoryBase ),
14447 rec( 26, 1, VolumeNumber ),
14448 rec( 27, 1, HandleFlag ),
14449 rec( 28, 1, DataTypeFlag ),
14450 rec( 29, 5, Reserved5 ),
14451 rec( 34, 1, PathCount, var="x" ),
14452 rec( 35, (2,255), Path16, repeat="x" ),
14453 ], info_str=(Path16, "Open or Create with Op-Lock: %s", "/%s"))
14454 pkt.Reply( NO_LENGTH_CHECK, [
14455 rec( 8, 4, FileHandle, BE ),
14456 rec( 12, 1, OpenCreateAction ),
14457 rec( 13, 1, OCRetFlags ),
14458 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
14459 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
14460 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
14461 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
14462 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
14463 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
14464 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
14465 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
14466 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
14467 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
14468 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
14469 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
14470 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
14471 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
14472 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
14473 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
14474 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
14475 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
14476 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
14477 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
14478 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
14479 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
14480 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
14481 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
14482 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
14483 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
14484 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
14485 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
14486 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
14487 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
14488 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
14489 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
14490 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
14491 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
14492 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
14493 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
14494 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
14495 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
14496 srec( DOSName16Struct, req_cond="ncp.ext_info_dos_name == 1" ),
14497 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
14498 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
14499 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
14500 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
14501 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
14502 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
14503 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
14504 srec( FileSize64bitStruct, req_cond="ncp.ext_info_64_bit_fs == 1" ),
14505 srec( FileName16Struct, req_cond="ncp.ret_info_mask_fname == 1" ),
14507 pkt.ReqCondSizeVariable()
14508 pkt.CompletionCodes([0x0000, 0x0102, 0x7f00, 0x8000, 0x8101, 0x8401, 0x8501,
14509 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14510 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14512 pkt = NCP(0x5921, "Open/Create File or Subdirectory II with Callback", 'enhanced', has_length=0)
14513 pkt.Request((41, 294), [
14514 rec( 8, 1, NameSpace ),
14515 rec( 9, 1, DataStream ),
14516 rec( 10, 1, OpenCreateMode ),
14517 rec( 11, 1, Reserved ),
14518 rec( 12, 2, SearchAttributesLow ),
14519 rec( 14, 2, Reserved2 ),
14520 rec( 16, 2, ReturnInfoMask ),
14521 rec( 18, 2, ExtendedInfo ),
14522 rec( 20, 4, AttributesDef32 ),
14523 rec( 24, 2, DesiredAccessRights ),
14524 rec( 26, 4, DirectoryBase ),
14525 rec( 30, 1, VolumeNumber ),
14526 rec( 31, 1, HandleFlag ),
14527 rec( 32, 1, DataTypeFlag ),
14528 rec( 33, 5, Reserved5 ),
14529 rec( 38, 1, PathCount, var="x" ),
14530 rec( 39, (2,255), Path16, repeat="x" ),
14531 ], info_str=(Path16, "Open or Create II with Op-Lock: %s", "/%s"))
14532 pkt.Reply( NO_LENGTH_CHECK, [
14533 rec( 8, 4, FileHandle ),
14534 rec( 12, 1, OpenCreateAction ),
14535 rec( 13, 1, OCRetFlags ),
14536 srec( DSSpaceAllocateStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
14537 srec( PadDSSpaceAllocate, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
14538 srec( AttributesStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
14539 srec( PadAttributes, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
14540 srec( DataStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
14541 srec( PadDataStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
14542 srec( TotalStreamSizeStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
14543 srec( PadTotalStreamSize, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
14544 srec( CreationInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
14545 srec( PadCreationInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
14546 srec( ModifyInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
14547 srec( PadModifyInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
14548 srec( ArchiveInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
14549 srec( PadArchiveInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
14550 srec( RightsInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
14551 srec( PadRightsInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
14552 srec( DirEntryStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
14553 srec( PadDirEntry, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
14554 srec( EAInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
14555 srec( PadEAInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
14556 srec( NSInfoStruct, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
14557 srec( PadNSInfo, req_cond="(ncp.ret_info_mask != 0x0000) && (ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
14558 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
14559 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
14560 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
14561 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
14562 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
14563 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
14564 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
14565 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
14566 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
14567 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
14568 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
14569 srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
14570 srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
14571 srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
14572 srec( DStreamLogical, req_cond="ncp.ret_info_mask_logical == 1" ),
14573 srec( LastUpdatedInSecondsStruct, req_cond="ncp.ext_info_update == 1" ),
14574 srec( DOSName16Struct, req_cond="ncp.ext_info_dos_name == 1" ),
14575 srec( FlushTimeStruct, req_cond="ncp.ext_info_flush == 1" ),
14576 srec( ParentBaseIDStruct, req_cond="ncp.ext_info_parental == 1" ),
14577 srec( MacFinderInfoStruct, req_cond="ncp.ext_info_mac_finder == 1" ),
14578 srec( SiblingCountStruct, req_cond="ncp.ext_info_sibling == 1" ),
14579 srec( EffectiveRightsStruct, req_cond="ncp.ext_info_effective == 1" ),
14580 srec( MacTimeStruct, req_cond="ncp.ext_info_mac_date == 1" ),
14581 srec( LastAccessedTimeStruct, req_cond="ncp.ext_info_access == 1" ),
14582 srec( FileSize64bitStruct, req_cond="ncp.ext_info_64_bit_fs == 1" ),
14583 srec( FileName16Struct, req_cond="ncp.ret_info_mask_fname == 1" ),
14585 pkt.ReqCondSizeVariable()
14586 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
14587 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14588 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14590 pkt = NCP(0x5923, "Modify DOS Attributes on a File or Subdirectory", 'enhanced', has_length=0)
14591 pkt.Request((35, 288), [
14592 rec( 8, 1, NameSpace ),
14593 rec( 9, 1, Flags ),
14594 rec( 10, 2, SearchAttributesLow ),
14595 rec( 12, 2, ReturnInfoMask ),
14596 rec( 14, 2, ExtendedInfo ),
14597 rec( 16, 4, AttributesDef32 ),
14598 rec( 20, 4, DirectoryBase ),
14599 rec( 24, 1, VolumeNumber ),
14600 rec( 25, 1, HandleFlag ),
14601 rec( 26, 1, DataTypeFlag ),
14602 rec( 27, 5, Reserved5 ),
14603 rec( 32, 1, PathCount, var="x" ),
14604 rec( 33, (2,255), Path16, repeat="x" ),
14605 ], info_str=(Path16, "Modify DOS Attributes for: %s", "/%s"))
14607 rec( 8, 4, ItemsChecked ),
14608 rec( 12, 4, ItemsChanged ),
14609 rec( 16, 4, AttributeValidFlag ),
14610 rec( 20, 4, AttributesDef32 ),
14612 pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
14613 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14614 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14616 pkt = NCP(0x5927, "Get Directory Disk Space Restriction", 'enhanced', has_length=0)
14617 pkt.Request((26, 279), [
14618 rec( 8, 1, NameSpace ),
14619 rec( 9, 2, Reserved2 ),
14620 rec( 11, 4, DirectoryBase ),
14621 rec( 15, 1, VolumeNumber ),
14622 rec( 16, 1, HandleFlag ),
14623 rec( 17, 1, DataTypeFlag ),
14624 rec( 18, 5, Reserved5 ),
14625 rec( 23, 1, PathCount, var="x" ),
14626 rec( 24, (2,255), Path16, repeat="x" ),
14627 ], info_str=(Path16, "Get Disk Space Restriction for: %s", "/%s"))
14629 rec( 8, 1, NumberOfEntries, var="x" ),
14630 rec( 9, 9, SpaceStruct, repeat="x" ),
14632 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14633 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14634 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00,
14637 pkt = NCP(0x5928, "Search for File or Subdirectory Set (Extended Errors)", 'enhanced', has_length=0)
14638 pkt.Request((30, 283), [
14639 rec( 8, 1, NameSpace ),
14640 rec( 9, 1, DataStream ),
14641 rec( 10, 2, SearchAttributesLow ),
14642 rec( 12, 2, ReturnInfoMask ),
14643 rec( 14, 2, ExtendedInfo ),
14644 rec( 16, 2, ReturnInfoCount ),
14645 rec( 18, 9, SeachSequenceStruct ),
14646 rec( 27, 1, DataTypeFlag ),
14647 rec( 28, (2,255), SearchPattern16 ),
14648 ], info_str=(SearchPattern16, "Search for: %s", ", %s"))
14649 pkt.Reply(NO_LENGTH_CHECK, [
14650 rec( 8, 9, SeachSequenceStruct ),
14651 rec( 17, 1, MoreFlag ),
14652 rec( 18, 2, InfoCount ),
14653 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 1)" ),
14654 srec( PadDSSpaceAllocate, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_alloc == 0)" ),
14655 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 1)" ),
14656 srec( PadAttributes, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_attr == 0)" ),
14657 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 1)" ),
14658 srec( PadDataStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_size == 0)" ),
14659 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 1)" ),
14660 srec( PadTotalStreamSize, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_tspace == 0)" ),
14661 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 1)" ),
14662 srec( PadCreationInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_create == 0)" ),
14663 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 1)" ),
14664 srec( PadModifyInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_mod == 0)" ),
14665 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 1)" ),
14666 srec( PadArchiveInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_arch == 0)" ),
14667 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 1)" ),
14668 srec( PadRightsInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_rights == 0)" ),
14669 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 1)" ),
14670 srec( PadDirEntry, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_dir == 0)" ),
14671 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 1)" ),
14672 srec( PadEAInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_eattr == 0)" ),
14673 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 1)" ),
14674 srec( PadNSInfo, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_ns == 0)" ),
14675 srec( FileName16Struct, req_cond="(ncp.ext_info_newstyle == 0) && (ncp.ret_info_mask_fname == 1)" ),
14676 srec( DSSpaceAllocateStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_alloc == 1)" ),
14677 srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
14678 srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
14679 srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
14680 srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
14681 srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
14682 srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
14683 srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
14684 srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
14685 srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
14686 srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
14687 srec( FileSize64bitStruct, req_cond="(ncp.ext_info_64_bit_fs == 1) && (ncp.ret_info_mask_fname == 1)" ),
14688 srec( FileName16Struct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_fname == 1)" ),
14690 pkt.ReqCondSizeVariable()
14691 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14692 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14693 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14695 pkt = NCP(0x5932, "Get Object Effective Rights", "enhanced", has_length=0)
14697 rec( 8, 1, NameSpace ),
14698 rec( 9, 4, ObjectID ),
14699 rec( 13, 4, DirectoryBase ),
14700 rec( 17, 1, VolumeNumber ),
14701 rec( 18, 1, HandleFlag ),
14702 rec( 19, 1, DataTypeFlag ),
14703 rec( 20, 5, Reserved5 ),
14706 rec( 8, 2, TrusteeRights ),
14708 pkt.CompletionCodes([0x0000, 0x7e01, 0x9b00, 0x9c03, 0xa901, 0xaa00])
14710 pkt = NCP(0x5934, "Write Extended Attribute", 'enhanced', has_length=0 )
14711 pkt.Request((36,98), [
14712 rec( 8, 2, EAFlags ),
14713 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
14714 rec( 14, 4, ReservedOrDirectoryNumber ),
14715 rec( 18, 4, TtlWriteDataSize ),
14716 rec( 22, 4, FileOffset ),
14717 rec( 26, 4, EAAccessFlag ),
14718 rec( 30, 1, DataTypeFlag ),
14719 rec( 31, 2, EAValueLength, var='x' ),
14720 rec( 33, (2,64), EAKey ),
14721 rec( -1, 1, EAValueRep, repeat='x' ),
14722 ], info_str=(EAKey, "Write Extended Attribute: %s", ", %s"))
14724 rec( 8, 4, EAErrorCodes ),
14725 rec( 12, 4, EABytesWritten ),
14726 rec( 16, 4, NewEAHandle ),
14728 pkt.CompletionCodes([0x0000, 0xc800, 0xc900, 0xcb00, 0xce00, 0xcf00, 0xd101,
14729 0xd203, 0xa901, 0xaa00, 0xd301, 0xd402])
14731 pkt = NCP(0x5935, "Read Extended Attribute", 'enhanced', has_length=0 )
14732 pkt.Request((31,541), [
14733 rec( 8, 2, EAFlags ),
14734 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
14735 rec( 14, 4, ReservedOrDirectoryNumber ),
14736 rec( 18, 4, FileOffset ),
14737 rec( 22, 4, InspectSize ),
14738 rec( 26, 1, DataTypeFlag ),
14739 rec( 27, 2, MaxReadDataReplySize ),
14740 rec( 29, (2,512), EAKey ),
14741 ], info_str=(EAKey, "Read Extended Attribute: %s", ", %s"))
14742 pkt.Reply((26,536), [
14743 rec( 8, 4, EAErrorCodes ),
14744 rec( 12, 4, TtlValuesLength ),
14745 rec( 16, 4, NewEAHandle ),
14746 rec( 20, 4, EAAccessFlag ),
14747 rec( 24, (2,512), EAValue ),
14749 pkt.CompletionCodes([0x0000, 0xa901, 0xaa00, 0xc900, 0xce00, 0xcf00, 0xd101,
14752 pkt = NCP(0x5936, "Enumerate Extended Attribute", 'enhanced', has_length=0 )
14753 pkt.Request((27,537), [
14754 rec( 8, 2, EAFlags ),
14755 rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
14756 rec( 14, 4, ReservedOrDirectoryNumber ),
14757 rec( 18, 4, InspectSize ),
14758 rec( 22, 2, SequenceNumber ),
14759 rec( 24, 1, DataTypeFlag ),
14760 rec( 25, (2,512), EAKey ),
14761 ], info_str=(EAKey, "Enumerate Extended Attribute: %s", ", %s"))
14763 rec( 8, 4, EAErrorCodes ),
14764 rec( 12, 4, TtlEAs ),
14765 rec( 16, 4, TtlEAsDataSize ),
14766 rec( 20, 4, TtlEAsKeySize ),
14767 rec( 24, 4, NewEAHandle ),
14769 pkt.CompletionCodes([0x0000, 0x8800, 0xa901, 0xaa00, 0xc900, 0xce00, 0xcf00, 0xd101,
14772 pkt = NCP(0x5947, "Scan Volume Trustee Object Paths", 'enhanced', has_length=0)
14774 rec( 8, 4, VolumeID ),
14775 rec( 12, 4, ObjectID ),
14776 rec( 16, 4, SequenceNumber ),
14777 rec( 20, 1, DataTypeFlag ),
14779 pkt.Reply((20,273), [
14780 rec( 8, 4, SequenceNumber ),
14781 rec( 12, 4, ObjectID ),
14782 rec( 16, 1, TrusteeAccessMask ),
14783 rec( 17, 1, PathCount, var="x" ),
14784 rec( 18, (2,255), Path16, repeat="x" ),
14786 pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
14787 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
14788 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16])
14790 pkt = NCP(0x5A00, "Parse Tree", 'file')
14792 rec( 10, 4, InfoMask ),
14793 rec( 14, 4, Reserved4 ),
14794 rec( 18, 4, Reserved4 ),
14795 rec( 22, 4, limbCount ),
14796 rec( 26, 4, limbFlags ),
14797 rec( 30, 4, VolumeNumberLong ),
14798 rec( 34, 4, DirectoryBase ),
14799 rec( 38, 4, limbScanNum ),
14800 rec( 42, 4, NameSpace ),
14803 rec( 8, 4, limbCount ),
14804 rec( 12, 4, ItemsCount ),
14805 rec( 16, 4, nextLimbScanNum ),
14806 rec( 20, 4, CompletionCode ),
14807 rec( 24, 1, FolderFlag ),
14808 rec( 25, 3, Reserved ),
14809 rec( 28, 4, DirectoryBase ),
14811 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14812 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14813 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
14815 pkt = NCP(0x5A0A, "Get Reference Count from Dir Entry Number", 'file')
14817 rec( 10, 4, VolumeNumberLong ),
14818 rec( 14, 4, DirectoryBase ),
14819 rec( 18, 1, NameSpace ),
14822 rec( 8, 4, ReferenceCount ),
14824 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14825 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14826 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
14828 pkt = NCP(0x5A0B, "Get Reference Count from Dir Handle", 'file')
14830 rec( 10, 4, DirHandle ),
14833 rec( 8, 4, ReferenceCount ),
14835 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14836 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14837 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
14839 pkt = NCP(0x5A0C, "Set Compressed File Size", 'file')
14841 rec( 10, 6, FileHandle ),
14842 rec( 16, 4, SuggestedFileSize ),
14845 rec( 8, 4, OldFileSize ),
14846 rec( 12, 4, NewFileSize ),
14848 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14849 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14850 0x9804, 0x9b03, 0x9c03, 0xfd00, 0xff16])
14851 # 2222/5A80, 90/128
14852 pkt = NCP(0x5A80, "Move File Data To Data Migration", 'migration')
14854 rec( 10, 4, VolumeNumberLong ),
14855 rec( 14, 4, DirectoryEntryNumber ),
14856 rec( 18, 1, NameSpace ),
14857 rec( 19, 3, Reserved ),
14858 rec( 22, 4, SupportModuleID ),
14859 rec( 26, 1, DMFlags ),
14862 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14863 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14864 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
14865 # 2222/5A81, 90/129
14866 pkt = NCP(0x5A81, "Data Migration File Information", 'migration')
14868 rec( 10, 4, VolumeNumberLong ),
14869 rec( 14, 4, DirectoryEntryNumber ),
14870 rec( 18, 1, NameSpace ),
14873 rec( 8, 4, SupportModuleID ),
14874 rec( 12, 4, RestoreTime ),
14875 rec( 16, 4, DMInfoEntries, var="x" ),
14876 rec( 20, 4, DataSize, repeat="x" ),
14878 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14879 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14880 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
14881 # 2222/5A82, 90/130
14882 pkt = NCP(0x5A82, "Volume Data Migration Status", 'migration')
14884 rec( 10, 4, VolumeNumberLong ),
14885 rec( 14, 4, SupportModuleID ),
14888 rec( 8, 4, NumOfFilesMigrated ),
14889 rec( 12, 4, TtlMigratedSize ),
14890 rec( 16, 4, SpaceUsed ),
14891 rec( 20, 4, LimboUsed ),
14892 rec( 24, 4, SpaceMigrated ),
14893 rec( 28, 4, FileLimbo ),
14895 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14896 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14897 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
14898 # 2222/5A83, 90/131
14899 pkt = NCP(0x5A83, "Migrator Status Info", 'migration')
14902 rec( 8, 1, DMPresentFlag ),
14903 rec( 9, 3, Reserved3 ),
14904 rec( 12, 4, DMmajorVersion ),
14905 rec( 16, 4, DMminorVersion ),
14907 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14908 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14909 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
14910 # 2222/5A84, 90/132
14911 pkt = NCP(0x5A84, "Data Migration Support Module Information", 'migration')
14913 rec( 10, 1, DMInfoLevel ),
14914 rec( 11, 3, Reserved3),
14915 rec( 14, 4, SupportModuleID ),
14917 pkt.Reply(NO_LENGTH_CHECK, [
14918 srec( DMInfoLevel0, req_cond="ncp.dm_info_level == 0x00" ),
14919 srec( DMInfoLevel1, req_cond="ncp.dm_info_level == 0x01" ),
14920 srec( DMInfoLevel2, req_cond="ncp.dm_info_level == 0x02" ),
14922 pkt.ReqCondSizeVariable()
14923 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14924 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14925 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
14926 # 2222/5A85, 90/133
14927 pkt = NCP(0x5A85, "Move File Data From Data Migration", 'migration')
14929 rec( 10, 4, VolumeNumberLong ),
14930 rec( 14, 4, DirectoryEntryNumber ),
14931 rec( 18, 1, NameSpace ),
14934 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14935 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14936 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
14937 # 2222/5A86, 90/134
14938 pkt = NCP(0x5A86, "Get/Set Default Read-Write Support Module ID", 'migration')
14940 rec( 10, 1, GetSetFlag ),
14941 rec( 11, 3, Reserved3 ),
14942 rec( 14, 4, SupportModuleID ),
14945 rec( 8, 4, SupportModuleID ),
14947 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14948 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14949 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
14950 # 2222/5A87, 90/135
14951 pkt = NCP(0x5A87, "Data Migration Support Module Capacity Request", 'migration')
14953 rec( 10, 4, SupportModuleID ),
14954 rec( 14, 4, VolumeNumberLong ),
14955 rec( 18, 4, DirectoryBase ),
14958 rec( 8, 4, BlockSizeInSectors ),
14959 rec( 12, 4, TotalBlocks ),
14960 rec( 16, 4, UsedBlocks ),
14962 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14963 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14964 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
14965 # 2222/5A88, 90/136
14966 pkt = NCP(0x5A88, "RTDM Request", 'migration')
14968 rec( 10, 4, Verb ),
14969 rec( 14, 1, VerbData ),
14972 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14973 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14974 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
14975 # 2222/5A96, 90/150
14976 pkt = NCP(0x5A96, "File Migration Request", 'file')
14978 rec( 10, 4, VolumeNumberLong ),
14979 rec( 14, 4, DirectoryBase ),
14980 rec( 18, 4, FileMigrationState ),
14983 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14984 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600,
14985 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfb00, 0xff16])
14987 pkt = NCP(0x5B, "NMAS Graded Authentication", 'nmas')
14988 #Need info on this packet structure
14991 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
14992 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
14993 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
14994 # SecretStore data is dissected by packet-ncp-sss.c
14996 pkt = NCP(0x5C01, "SecretStore Services (Ping Server)", 'sss', 0)
14999 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
15000 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
15001 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
15003 pkt = NCP(0x5C02, "SecretStore Services (Fragment)", 'sss', 0)
15006 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
15007 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
15008 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
15010 pkt = NCP(0x5C03, "SecretStore Services (Write App Secrets)", 'sss', 0)
15013 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
15014 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
15015 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
15017 pkt = NCP(0x5C04, "SecretStore Services (Add Secret ID)", 'sss', 0)
15020 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
15021 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
15022 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
15024 pkt = NCP(0x5C05, "SecretStore Services (Remove Secret ID)", 'sss', 0)
15027 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
15028 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
15029 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
15031 pkt = NCP(0x5C06, "SecretStore Services (Remove SecretStore)", 'sss', 0)
15034 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
15035 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
15036 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
15038 pkt = NCP(0x5C07, "SecretStore Services (Enumerate Secret IDs)", 'sss', 0)
15041 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
15042 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
15043 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
15045 pkt = NCP(0x5C08, "SecretStore Services (Unlock Store)", 'sss', 0)
15048 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
15049 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
15050 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
15052 pkt = NCP(0x5C09, "SecretStore Services (Set Master Password)", 'sss', 0)
15055 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
15056 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
15057 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
15059 pkt = NCP(0x5C0a, "SecretStore Services (Get Service Information)", 'sss', 0)
15062 pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501,
15063 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b,
15064 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16])
15065 # NMAS packets are dissected in packet-ncp-nmas.c
15067 pkt = NCP(0x5E01, "NMAS Communications Packet (Ping)", 'nmas', 0)
15070 pkt.CompletionCodes([0x0000, 0xfb09, 0xff08])
15072 pkt = NCP(0x5E02, "NMAS Communications Packet (Fragment)", 'nmas', 0)
15075 pkt.CompletionCodes([0x0000, 0xfb09, 0xff08])
15077 pkt = NCP(0x5E03, "NMAS Communications Packet (Abort)", 'nmas', 0)
15080 pkt.CompletionCodes([0x0000, 0xfb09, 0xff08])
15082 pkt = NCP(0x61, "Get Big Packet NCP Max Packet Size", 'connection')
15084 rec( 7, 2, ProposedMaxSize, BE ),
15085 rec( 9, 1, SecurityFlag ),
15086 ],info_str=(ProposedMaxSize, "Get Big Max Packet Size - %d", ", %d"))
15088 rec( 8, 2, AcceptedMaxSize, BE ),
15089 rec( 10, 2, EchoSocket, BE ),
15090 rec( 12, 1, SecurityFlag ),
15092 pkt.CompletionCodes([0x0000])
15094 pkt = NCP(0x63, "Undocumented Packet Burst", 'pburst')
15097 pkt.CompletionCodes([0x0000])
15099 pkt = NCP(0x64, "Undocumented Packet Burst", 'pburst')
15102 pkt.CompletionCodes([0x0000])
15104 pkt = NCP(0x65, "Packet Burst Connection Request", 'pburst')
15106 rec( 7, 4, LocalConnectionID, BE ),
15107 rec( 11, 4, LocalMaxPacketSize, BE ),
15108 rec( 15, 2, LocalTargetSocket, BE ),
15109 rec( 17, 4, LocalMaxSendSize, BE ),
15110 rec( 21, 4, LocalMaxRecvSize, BE ),
15113 rec( 8, 4, RemoteTargetID, BE ),
15114 rec( 12, 4, RemoteMaxPacketSize, BE ),
15116 pkt.CompletionCodes([0x0000])
15118 pkt = NCP(0x66, "Undocumented Packet Burst", 'pburst')
15121 pkt.CompletionCodes([0x0000])
15123 pkt = NCP(0x67, "Undocumented Packet Burst", 'pburst')
15126 pkt.CompletionCodes([0x0000])
15127 # 2222/6801, 104/01
15128 pkt = NCP(0x6801, "Ping for NDS NCP", "nds", has_length=0)
15131 pkt.ReqCondSizeVariable()
15132 pkt.CompletionCodes([0x0000, 0x8100, 0xfb04, 0xfe0c])
15133 # 2222/6802, 104/02
15135 # XXX - if FraggerHandle is not 0xffffffff, this is not the
15136 # first fragment, so we can only dissect this by reassembling;
15137 # the fields after "Fragment Handle" are bogus for non-0xffffffff
15138 # fragments, so we shouldn't dissect them. This is all handled in packet-ncp2222.inc.
15140 pkt = NCP(0x6802, "Send NDS Fragmented Request/Reply", "nds", has_length=0)
15143 pkt.ReqCondSizeVariable()
15144 pkt.CompletionCodes([0x0000, 0xac00, 0xfd01])
15145 # 2222/6803, 104/03
15146 pkt = NCP(0x6803, "Fragment Close", "nds", has_length=0)
15148 rec( 8, 4, FraggerHandle ),
15151 pkt.CompletionCodes([0x0000, 0xff00])
15152 # 2222/6804, 104/04
15153 pkt = NCP(0x6804, "Return Bindery Context", "nds", has_length=0)
15155 pkt.Reply((9, 263), [
15156 rec( 8, (1,255), binderyContext ),
15158 pkt.CompletionCodes([0x0000, 0xfe0c, 0xff00])
15159 # 2222/6805, 104/05
15160 pkt = NCP(0x6805, "Monitor NDS Connection", "nds", has_length=0)
15163 pkt.CompletionCodes([0x0000, 0x7700, 0xfb00, 0xfe0c, 0xff00])
15164 # 2222/6806, 104/06
15165 pkt = NCP(0x6806, "Return NDS Statistics", "nds", has_length=0)
15167 rec( 8, 2, NDSRequestFlags ),
15170 #Need to investigate how to decode Statistics Return Value
15171 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
15172 # 2222/6807, 104/07
15173 pkt = NCP(0x6807, "Clear NDS Statistics", "nds", has_length=0)
15176 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
15177 # 2222/6808, 104/08
15178 pkt = NCP(0x6808, "Reload NDS Software", "nds", has_length=0)
15181 rec( 8, 4, NDSStatus ),
15183 pkt.CompletionCodes([0x0000, 0xfb00, 0xfe0c, 0xff00])
15184 # 2222/68C8, 104/200
15185 pkt = NCP(0x68C8, "Query Container Audit Status", "auditing", has_length=0)
15187 rec( 8, 4, ConnectionNumber ),
15190 rec(8, 32, NWAuditStatus ),
15192 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15193 # 2222/68CA, 104/202
15194 pkt = NCP(0x68CA, "Add Auditor Access", "auditing", has_length=0)
15197 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15198 # 2222/68CB, 104/203
15199 pkt = NCP(0x68CB, "Change Auditor Container Password", "auditing", has_length=0)
15202 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15203 # 2222/68CC, 104/204
15204 pkt = NCP(0x68CC, "Check Auditor Access", "auditing", has_length=0)
15207 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15208 # 2222/68CE, 104/206
15209 pkt = NCP(0x680CE, "Disable Container Auditing", "auditing", has_length=0)
15212 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15213 # 2222/68CF, 104/207
15214 pkt = NCP(0x68CF, "Enable Container Auditing", "auditing", has_length=0)
15217 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15218 # 2222/68D1, 104/209
15219 pkt = NCP(0x68D1, "Read Audit File Header", "auditing", has_length=0)
15222 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15223 # 2222/68D3, 104/211
15224 pkt = NCP(0x68D3, "Remove Auditor Access", "auditing", has_length=0)
15227 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15228 # 2222/68D4, 104/212
15229 pkt = NCP(0x68D4, "Reset Audit File", "auditing", has_length=0)
15232 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15233 # 2222/68D6, 104/214
15234 pkt = NCP(0x68D6, "Write Audit File Configuration Header", "auditing", has_length=0)
15237 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15238 # 2222/68D7, 104/215
15239 pkt = NCP(0x68D7, "Change Auditor Container Password2", "auditing", has_length=0)
15242 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15243 # 2222/68D8, 104/216
15244 pkt = NCP(0x68D8, "Return Audit Flags", "auditing", has_length=0)
15247 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15248 # 2222/68D9, 104/217
15249 pkt = NCP(0x68D9, "Close Old Audit File", "auditing", has_length=0)
15252 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15253 # 2222/68DB, 104/219
15254 pkt = NCP(0x68DB, "Check Level Two Access", "auditing", has_length=0)
15257 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15258 # 2222/68DC, 104/220
15259 pkt = NCP(0x68DC, "Check Object Audited", "auditing", has_length=0)
15262 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15263 # 2222/68DD, 104/221
15264 pkt = NCP(0x68DD, "Change Object Audited", "auditing", has_length=0)
15267 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15268 # 2222/68DE, 104/222
15269 pkt = NCP(0x68DE, "Return Old Audit File List", "auditing", has_length=0)
15272 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15273 # 2222/68DF, 104/223
15274 pkt = NCP(0x68DF, "Init Audit File Reads", "auditing", has_length=0)
15277 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15278 # 2222/68E0, 104/224
15279 pkt = NCP(0x68E0, "Read Auditing File", "auditing", has_length=0)
15282 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15283 # 2222/68E1, 104/225
15284 pkt = NCP(0x68E1, "Delete Old Audit File", "auditing", has_length=0)
15287 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15288 # 2222/68E5, 104/229
15289 pkt = NCP(0x68E5, "Set Audit Password", "auditing", has_length=0)
15292 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15293 # 2222/68E7, 104/231
15294 pkt = NCP(0x68E7, "External Audit Append To File", "auditing", has_length=0)
15297 pkt.CompletionCodes([0x0000, 0xa700, 0xfb00, 0xfe0c, 0xff00])
15299 pkt = NCP(0x69, "Log File", 'sync')
15300 pkt.Request( (12, 267), [
15301 rec( 7, 1, DirHandle ),
15302 rec( 8, 1, LockFlag ),
15303 rec( 9, 2, TimeoutLimit ),
15304 rec( 11, (1, 256), FilePath ),
15305 ], info_str=(FilePath, "Log File: %s", "/%s"))
15307 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x9600, 0xfe0d, 0xff01])
15309 pkt = NCP(0x6A, "Lock File Set", 'sync')
15311 rec( 7, 2, TimeoutLimit ),
15314 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x9600, 0xfe0d, 0xff01])
15316 pkt = NCP(0x6B, "Log Logical Record", 'sync')
15317 pkt.Request( (11, 266), [
15318 rec( 7, 1, LockFlag ),
15319 rec( 8, 2, TimeoutLimit ),
15320 rec( 10, (1, 256), SynchName ),
15321 ], info_str=(SynchName, "Log Logical Record: %s", ", %s"))
15323 pkt.CompletionCodes([0x0000, 0x7f00, 0x9600, 0xfe0d, 0xff01])
15325 pkt = NCP(0x6C, "Log Logical Record", 'sync')
15327 rec( 7, 1, LockFlag ),
15328 rec( 8, 2, TimeoutLimit ),
15331 pkt.CompletionCodes([0x0000, 0x7f00, 0x9600, 0xfe0d, 0xff01])
15333 pkt = NCP(0x6D, "Log Physical Record", 'sync')
15335 rec( 7, 1, LockFlag ),
15336 rec( 8, 6, FileHandle ),
15337 rec( 14, 4, LockAreasStartOffset ),
15338 rec( 18, 4, LockAreaLen ),
15339 rec( 22, 2, LockTimeout ),
15342 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
15344 pkt = NCP(0x6E, "Lock Physical Record Set", 'sync')
15346 rec( 7, 1, LockFlag ),
15347 rec( 8, 2, LockTimeout ),
15350 pkt.CompletionCodes([0x0000, 0x7f00, 0x8200, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff01])
15351 # 2222/6F00, 111/00
15352 pkt = NCP(0x6F00, "Open/Create a Semaphore", 'sync', has_length=0)
15353 pkt.Request((10,521), [
15354 rec( 8, 1, InitialSemaphoreValue ),
15355 rec( 9, (1, 512), SemaphoreName ),
15356 ], info_str=(SemaphoreName, "Open/Create Semaphore: %s", ", %s"))
15358 rec( 8, 4, SemaphoreHandle ),
15359 rec( 12, 1, SemaphoreOpenCount ),
15361 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
15362 # 2222/6F01, 111/01
15363 pkt = NCP(0x6F01, "Examine Semaphore", 'sync', has_length=0)
15365 rec( 8, 4, SemaphoreHandle ),
15368 rec( 8, 1, SemaphoreValue ),
15369 rec( 9, 1, SemaphoreOpenCount ),
15371 pkt.CompletionCodes([0x0000, 0x9600, 0xff01])
15372 # 2222/6F02, 111/02
15373 pkt = NCP(0x6F02, "Wait On (P) Semaphore", 'sync', has_length=0)
15375 rec( 8, 4, SemaphoreHandle ),
15376 rec( 12, 2, LockTimeout ),
15379 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
15380 # 2222/6F03, 111/03
15381 pkt = NCP(0x6F03, "Signal (V) Semaphore", 'sync', has_length=0)
15383 rec( 8, 4, SemaphoreHandle ),
15386 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
15387 # 2222/6F04, 111/04
15388 pkt = NCP(0x6F04, "Close Semaphore", 'sync', has_length=0)
15390 rec( 8, 4, SemaphoreHandle ),
15393 rec( 8, 1, SemaphoreOpenCount ),
15394 rec( 9, 1, SemaphoreShareCount ),
15396 pkt.CompletionCodes([0x0000, 0x9600, 0xfe04, 0xff01])
15398 pkt = NCP(0x70, "Clear and Get Waiting Lock Completion", 'sync')
15401 pkt.CompletionCodes([0x0000, 0x9b00, 0x9c03, 0xff1a])
15402 # 2222/7201, 114/01
15403 pkt = NCP(0x7201, "Timesync Get Time", 'tsync')
15406 rec( 8, 12, theTimeStruct ),
15407 rec(20, 8, eventOffset ),
15408 rec(28, 4, eventTime ),
15410 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
15411 # 2222/7202, 114/02
15412 pkt = NCP(0x7202, "Timesync Exchange Time", 'tsync')
15413 pkt.Request((63,112), [
15414 rec( 10, 4, protocolFlags ),
15415 rec( 14, 4, nodeFlags ),
15416 rec( 18, 8, sourceOriginateTime ),
15417 rec( 26, 8, targetReceiveTime ),
15418 rec( 34, 8, targetTransmitTime ),
15419 rec( 42, 8, sourceReturnTime ),
15420 rec( 50, 8, eventOffset ),
15421 rec( 58, 4, eventTime ),
15422 rec( 62, (1,50), ServerNameLen ),
15423 ], info_str=(ServerNameLen, "Timesync Exchange Time: %s", ", %s"))
15424 pkt.Reply((64,113), [
15425 rec( 8, 3, Reserved3 ),
15426 rec( 11, 4, protocolFlags ),
15427 rec( 15, 4, nodeFlags ),
15428 rec( 19, 8, sourceOriginateTime ),
15429 rec( 27, 8, targetReceiveTime ),
15430 rec( 35, 8, targetTransmitTime ),
15431 rec( 43, 8, sourceReturnTime ),
15432 rec( 51, 8, eventOffset ),
15433 rec( 59, 4, eventTime ),
15434 rec( 63, (1,50), ServerNameLen ),
15436 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
15437 # 2222/7205, 114/05
15438 pkt = NCP(0x7205, "Timesync Get Server List", 'tsync')
15440 rec( 10, 4, StartNumber ),
15443 rec( 8, 4, nameType ),
15444 rec( 12, 48, ServerName ),
15445 rec( 60, 4, serverListFlags ),
15446 rec( 64, 2, startNumberFlag ),
15448 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
15449 # 2222/7206, 114/06
15450 pkt = NCP(0x7206, "Timesync Set Server List", 'tsync')
15452 rec( 10, 4, StartNumber ),
15455 rec( 8, 4, nameType ),
15456 rec( 12, 48, ServerName ),
15457 rec( 60, 4, serverListFlags ),
15458 rec( 64, 2, startNumberFlag ),
15460 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
15461 # 2222/720C, 114/12
15462 pkt = NCP(0x720C, "Timesync Get Version", 'tsync')
15465 rec( 8, 4, version ),
15467 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
15468 # 2222/7B01, 123/01
15469 pkt = NCP(0x7B01, "Get Cache Information", 'stats')
15472 rec(8, 4, CurrentServerTime, LE),
15473 rec(12, 1, VConsoleVersion ),
15474 rec(13, 1, VConsoleRevision ),
15475 rec(14, 2, Reserved2 ),
15476 rec(16, 104, Counters ),
15477 rec(120, 40, ExtraCacheCntrs ),
15478 rec(160, 40, MemoryCounters ),
15479 rec(200, 48, TrendCounters ),
15480 rec(248, 40, CacheInfo ),
15482 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xff00])
15483 # 2222/7B02, 123/02
15484 pkt = NCP(0x7B02, "Get File Server Information", 'stats')
15487 rec(8, 4, CurrentServerTime ),
15488 rec(12, 1, VConsoleVersion ),
15489 rec(13, 1, VConsoleRevision ),
15490 rec(14, 2, Reserved2 ),
15491 rec(16, 4, NCPStaInUseCnt ),
15492 rec(20, 4, NCPPeakStaInUse ),
15493 rec(24, 4, NumOfNCPReqs ),
15494 rec(28, 4, ServerUtilization ),
15495 rec(32, 96, ServerInfo ),
15496 rec(128, 22, FileServerCounters ),
15498 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15499 # 2222/7B03, 123/03
15500 pkt = NCP(0x7B03, "NetWare File System Information", 'stats')
15502 rec(10, 1, FileSystemID ),
15505 rec(8, 4, CurrentServerTime ),
15506 rec(12, 1, VConsoleVersion ),
15507 rec(13, 1, VConsoleRevision ),
15508 rec(14, 2, Reserved2 ),
15509 rec(16, 52, FileSystemInfo ),
15511 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15512 # 2222/7B04, 123/04
15513 pkt = NCP(0x7B04, "User Information", 'stats')
15515 rec(10, 4, ConnectionNumber, LE ),
15517 pkt.Reply((85, 132), [
15518 rec(8, 4, CurrentServerTime ),
15519 rec(12, 1, VConsoleVersion ),
15520 rec(13, 1, VConsoleRevision ),
15521 rec(14, 2, Reserved2 ),
15522 rec(16, 68, UserInformation ),
15523 rec(84, (1, 48), UserName ),
15525 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15526 # 2222/7B05, 123/05
15527 pkt = NCP(0x7B05, "Packet Burst Information", 'stats')
15530 rec(8, 4, CurrentServerTime ),
15531 rec(12, 1, VConsoleVersion ),
15532 rec(13, 1, VConsoleRevision ),
15533 rec(14, 2, Reserved2 ),
15534 rec(16, 200, PacketBurstInformation ),
15536 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15537 # 2222/7B06, 123/06
15538 pkt = NCP(0x7B06, "IPX SPX Information", 'stats')
15541 rec(8, 4, CurrentServerTime ),
15542 rec(12, 1, VConsoleVersion ),
15543 rec(13, 1, VConsoleRevision ),
15544 rec(14, 2, Reserved2 ),
15545 rec(16, 34, IPXInformation ),
15546 rec(50, 44, SPXInformation ),
15548 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15549 # 2222/7B07, 123/07
15550 pkt = NCP(0x7B07, "Garbage Collection Information", 'stats')
15553 rec(8, 4, CurrentServerTime ),
15554 rec(12, 1, VConsoleVersion ),
15555 rec(13, 1, VConsoleRevision ),
15556 rec(14, 2, Reserved2 ),
15557 rec(16, 4, FailedAllocReqCnt ),
15558 rec(20, 4, NumberOfAllocs ),
15559 rec(24, 4, NoMoreMemAvlCnt ),
15560 rec(28, 4, NumOfGarbageColl ),
15561 rec(32, 4, FoundSomeMem ),
15562 rec(36, 4, NumOfChecks ),
15564 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15565 # 2222/7B08, 123/08
15566 pkt = NCP(0x7B08, "CPU Information", 'stats')
15568 rec(10, 4, CPUNumber ),
15571 rec(8, 4, CurrentServerTime ),
15572 rec(12, 1, VConsoleVersion ),
15573 rec(13, 1, VConsoleRevision ),
15574 rec(14, 2, Reserved2 ),
15575 rec(16, 4, NumberOfCPUs ),
15576 rec(20, 31, CPUInformation ),
15578 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15579 # 2222/7B09, 123/09
15580 pkt = NCP(0x7B09, "Volume Switch Information", 'stats')
15582 rec(10, 4, StartNumber )
15585 rec(8, 4, CurrentServerTime ),
15586 rec(12, 1, VConsoleVersion ),
15587 rec(13, 1, VConsoleRevision ),
15588 rec(14, 2, Reserved2 ),
15589 rec(16, 4, TotalLFSCounters ),
15590 rec(20, 4, CurrentLFSCounters, var="x"),
15591 rec(24, 4, LFSCounters, repeat="x"),
15593 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15594 # 2222/7B0A, 123/10
15595 pkt = NCP(0x7B0A, "Get NLM Loaded List", 'stats')
15597 rec(10, 4, StartNumber )
15600 rec(8, 4, CurrentServerTime ),
15601 rec(12, 1, VConsoleVersion ),
15602 rec(13, 1, VConsoleRevision ),
15603 rec(14, 2, Reserved2 ),
15604 rec(16, 4, NLMcount ),
15605 rec(20, 4, NLMsInList, var="x" ),
15606 rec(24, 4, NLMNumbers, repeat="x" ),
15608 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15609 # 2222/7B0B, 123/11
15610 pkt = NCP(0x7B0B, "NLM Information", 'stats')
15612 rec(10, 4, NLMNumber ),
15614 pkt.Reply(NO_LENGTH_CHECK, [
15615 rec(8, 4, CurrentServerTime ),
15616 rec(12, 1, VConsoleVersion ),
15617 rec(13, 1, VConsoleRevision ),
15618 rec(14, 2, Reserved2 ),
15619 rec(16, 60, NLMInformation ),
15620 # The remainder of this dissection is manually decoded in packet-ncp2222.inc
15621 #rec(-1, (1,255), FileName ),
15622 #rec(-1, (1,255), Name ),
15623 #rec(-1, (1,255), Copyright ),
15625 pkt.ReqCondSizeVariable()
15626 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15627 # 2222/7B0C, 123/12
15628 pkt = NCP(0x7B0C, "Get Directory Cache Information", 'stats')
15631 rec(8, 4, CurrentServerTime ),
15632 rec(12, 1, VConsoleVersion ),
15633 rec(13, 1, VConsoleRevision ),
15634 rec(14, 2, Reserved2 ),
15635 rec(16, 56, DirCacheInfo ),
15637 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15638 # 2222/7B0D, 123/13
15639 pkt = NCP(0x7B0D, "Get Operating System Version Information", 'stats')
15642 rec(8, 4, CurrentServerTime ),
15643 rec(12, 1, VConsoleVersion ),
15644 rec(13, 1, VConsoleRevision ),
15645 rec(14, 2, Reserved2 ),
15646 rec(16, 1, OSMajorVersion ),
15647 rec(17, 1, OSMinorVersion ),
15648 rec(18, 1, OSRevision ),
15649 rec(19, 1, AccountVersion ),
15650 rec(20, 1, VAPVersion ),
15651 rec(21, 1, QueueingVersion ),
15652 rec(22, 1, SecurityRestrictionVersion ),
15653 rec(23, 1, InternetBridgeVersion ),
15654 rec(24, 4, MaxNumOfVol ),
15655 rec(28, 4, MaxNumOfConn ),
15656 rec(32, 4, MaxNumOfUsers ),
15657 rec(36, 4, MaxNumOfNmeSps ),
15658 rec(40, 4, MaxNumOfLANS ),
15659 rec(44, 4, MaxNumOfMedias ),
15660 rec(48, 4, MaxNumOfStacks ),
15661 rec(52, 4, MaxDirDepth ),
15662 rec(56, 4, MaxDataStreams ),
15663 rec(60, 4, MaxNumOfSpoolPr ),
15664 rec(64, 4, ServerSerialNumber ),
15665 rec(68, 2, ServerAppNumber ),
15667 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15668 # 2222/7B0E, 123/14
15669 pkt = NCP(0x7B0E, "Get Active Connection List by Type", 'stats')
15671 rec(10, 4, StartConnNumber ),
15672 rec(14, 1, ConnectionType ),
15675 rec(8, 4, CurrentServerTime ),
15676 rec(12, 1, VConsoleVersion ),
15677 rec(13, 1, VConsoleRevision ),
15678 rec(14, 2, Reserved2 ),
15679 rec(16, 512, ActiveConnBitList ),
15681 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfd01, 0xff00])
15682 # 2222/7B0F, 123/15
15683 pkt = NCP(0x7B0F, "Get NLM Resource Tag List", 'stats')
15685 rec(10, 4, NLMNumber ),
15686 rec(14, 4, NLMStartNumber ),
15689 rec(8, 4, CurrentServerTime ),
15690 rec(12, 1, VConsoleVersion ),
15691 rec(13, 1, VConsoleRevision ),
15692 rec(14, 2, Reserved2 ),
15693 rec(16, 4, TtlNumOfRTags ),
15694 rec(20, 4, CurNumOfRTags ),
15695 rec(24, 13, RTagStructure ),
15697 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15698 # 2222/7B10, 123/16
15699 pkt = NCP(0x7B10, "Enumerate Connection Information from Connection List", 'stats')
15701 rec(10, 1, EnumInfoMask),
15702 rec(11, 3, Reserved3),
15703 rec(14, 4, itemsInList, var="x"),
15704 rec(18, 4, connList, repeat="x"),
15706 pkt.Reply(NO_LENGTH_CHECK, [
15707 rec(8, 4, CurrentServerTime ),
15708 rec(12, 1, VConsoleVersion ),
15709 rec(13, 1, VConsoleRevision ),
15710 rec(14, 2, Reserved2 ),
15711 rec(16, 4, ItemsInPacket ),
15712 srec(netAddr, req_cond="ncp.enum_info_transport==TRUE"),
15713 srec(timeInfo, req_cond="ncp.enum_info_time==TRUE"),
15714 srec(nameInfo, req_cond="ncp.enum_info_name==TRUE"),
15715 srec(lockInfo, req_cond="ncp.enum_info_lock==TRUE"),
15716 srec(printInfo, req_cond="ncp.enum_info_print==TRUE"),
15717 srec(statsInfo, req_cond="ncp.enum_info_stats==TRUE"),
15718 srec(acctngInfo, req_cond="ncp.enum_info_account==TRUE"),
15719 srec(authInfo, req_cond="ncp.enum_info_auth==TRUE"),
15721 pkt.ReqCondSizeVariable()
15722 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15723 # 2222/7B11, 123/17
15724 pkt = NCP(0x7B11, "Enumerate NCP Service Network Addresses", 'stats')
15726 rec(10, 4, SearchNumber ),
15729 rec(8, 4, CurrentServerTime ),
15730 rec(12, 1, VConsoleVersion ),
15731 rec(13, 1, VConsoleRevision ),
15732 rec(14, 2, ServerInfoFlags ),
15733 rec(16, 16, GUID ),
15734 rec(32, 4, NextSearchNum ),
15735 # The following two items are dissected in packet-ncp2222.inc
15736 #rec(36, 4, ItemsInPacket, var="x"),
15737 #rec(40, 20, NCPNetworkAddress, repeat="x" ),
15739 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb01, 0xff00])
15740 # 2222/7B14, 123/20
15741 pkt = NCP(0x7B14, "Active LAN Board List", 'stats')
15743 rec(10, 4, StartNumber ),
15746 rec(8, 4, CurrentServerTime ),
15747 rec(12, 1, VConsoleVersion ),
15748 rec(13, 1, VConsoleRevision ),
15749 rec(14, 2, Reserved2 ),
15750 rec(16, 4, MaxNumOfLANS ),
15751 rec(20, 4, ItemsInPacket, var="x"),
15752 rec(24, 4, BoardNumbers, repeat="x"),
15754 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15755 # 2222/7B15, 123/21
15756 pkt = NCP(0x7B15, "LAN Configuration Information", 'stats')
15758 rec(10, 4, BoardNumber ),
15761 rec(8, 4, CurrentServerTime ),
15762 rec(12, 1, VConsoleVersion ),
15763 rec(13, 1, VConsoleRevision ),
15764 rec(14, 2, Reserved2 ),
15765 rec(16,136, LANConfigInfo ),
15767 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15768 # 2222/7B16, 123/22
15769 pkt = NCP(0x7B16, "LAN Common Counters Information", 'stats')
15771 rec(10, 4, BoardNumber ),
15772 rec(14, 4, BlockNumber ),
15775 rec(8, 4, CurrentServerTime ),
15776 rec(12, 1, VConsoleVersion ),
15777 rec(13, 1, VConsoleRevision ),
15778 rec(14, 1, StatMajorVersion ),
15779 rec(15, 1, StatMinorVersion ),
15780 rec(16, 4, TotalCommonCnts ),
15781 rec(20, 4, TotalCntBlocks ),
15782 rec(24, 4, CustomCounters ),
15783 rec(28, 4, NextCntBlock ),
15784 rec(32, 54, CommonLanStruc ),
15786 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15787 # 2222/7B17, 123/23
15788 pkt = NCP(0x7B17, "LAN Custom Counters Information", 'stats')
15790 rec(10, 4, BoardNumber ),
15791 rec(14, 4, StartNumber ),
15794 rec(8, 4, CurrentServerTime ),
15795 rec(12, 1, VConsoleVersion ),
15796 rec(13, 1, VConsoleRevision ),
15797 rec(14, 2, Reserved2 ),
15798 rec(16, 4, NumOfCCinPkt, var="x"),
15799 rec(20, 5, CustomCntsInfo, repeat="x"),
15801 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15802 # 2222/7B18, 123/24
15803 pkt = NCP(0x7B18, "LAN Name Information", 'stats')
15805 rec(10, 4, BoardNumber ),
15807 pkt.Reply(NO_LENGTH_CHECK, [
15808 rec(8, 4, CurrentServerTime ),
15809 rec(12, 1, VConsoleVersion ),
15810 rec(13, 1, VConsoleRevision ),
15811 rec(14, 2, Reserved2 ),
15812 rec(16, PROTO_LENGTH_UNKNOWN, DriverBoardName ),
15813 rec(-1, PROTO_LENGTH_UNKNOWN, DriverShortName ),
15814 rec(-1, PROTO_LENGTH_UNKNOWN, DriverLogicalName ),
15816 pkt.ReqCondSizeVariable()
15817 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15818 # 2222/7B19, 123/25
15819 pkt = NCP(0x7B19, "LSL Information", 'stats')
15822 rec(8, 4, CurrentServerTime ),
15823 rec(12, 1, VConsoleVersion ),
15824 rec(13, 1, VConsoleRevision ),
15825 rec(14, 2, Reserved2 ),
15826 rec(16, 74, LSLInformation ),
15828 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15829 # 2222/7B1A, 123/26
15830 pkt = NCP(0x7B1A, "LSL Logical Board Statistics", 'stats')
15832 rec(10, 4, BoardNumber ),
15835 rec(8, 4, CurrentServerTime ),
15836 rec(12, 1, VConsoleVersion ),
15837 rec(13, 1, VConsoleRevision ),
15838 rec(14, 2, Reserved2 ),
15839 rec(16, 4, LogTtlTxPkts ),
15840 rec(20, 4, LogTtlRxPkts ),
15841 rec(24, 4, UnclaimedPkts ),
15843 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15844 # 2222/7B1B, 123/27
15845 pkt = NCP(0x7B1B, "MLID Board Information", 'stats')
15847 rec(10, 4, BoardNumber ),
15850 rec(8, 4, CurrentServerTime ),
15851 rec(12, 1, VConsoleVersion ),
15852 rec(13, 1, VConsoleRevision ),
15853 rec(14, 1, Reserved ),
15854 rec(15, 1, NumberOfProtocols ),
15855 rec(16, 28, MLIDBoardInfo ),
15857 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15858 # 2222/7B1E, 123/30
15859 pkt = NCP(0x7B1E, "Get Media Manager Object Information", 'stats')
15861 rec(10, 4, ObjectNumber ),
15864 rec(8, 4, CurrentServerTime ),
15865 rec(12, 1, VConsoleVersion ),
15866 rec(13, 1, VConsoleRevision ),
15867 rec(14, 2, Reserved2 ),
15868 rec(16, 196, GenericInfoDef ),
15870 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15871 # 2222/7B1F, 123/31
15872 pkt = NCP(0x7B1F, "Get Media Manager Objects List", 'stats')
15874 rec(10, 4, StartNumber ),
15875 rec(14, 1, MediaObjectType ),
15878 rec(8, 4, CurrentServerTime ),
15879 rec(12, 1, VConsoleVersion ),
15880 rec(13, 1, VConsoleRevision ),
15881 rec(14, 2, Reserved2 ),
15882 rec(16, 4, nextStartingNumber ),
15883 rec(20, 4, ObjectCount, var="x"),
15884 rec(24, 4, ObjectID, repeat="x"),
15886 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15887 # 2222/7B20, 123/32
15888 pkt = NCP(0x7B20, "Get Media Manager Object Childrens List", 'stats')
15890 rec(10, 4, StartNumber ),
15891 rec(14, 1, MediaObjectType ),
15892 rec(15, 3, Reserved3 ),
15893 rec(18, 4, ParentObjectNumber ),
15896 rec(8, 4, CurrentServerTime ),
15897 rec(12, 1, VConsoleVersion ),
15898 rec(13, 1, VConsoleRevision ),
15899 rec(14, 2, Reserved2 ),
15900 rec(16, 4, nextStartingNumber ),
15901 rec(20, 4, ObjectCount, var="x" ),
15902 rec(24, 4, ObjectID, repeat="x" ),
15904 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15905 # 2222/7B21, 123/33
15906 pkt = NCP(0x7B21, "Get Volume Segment List", 'stats')
15908 rec(10, 4, VolumeNumberLong ),
15911 rec(8, 4, CurrentServerTime ),
15912 rec(12, 1, VConsoleVersion ),
15913 rec(13, 1, VConsoleRevision ),
15914 rec(14, 2, Reserved2 ),
15915 rec(16, 4, NumOfSegments, var="x" ),
15916 rec(20, 12, Segments, repeat="x" ),
15918 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0x9801, 0xfb06, 0xff00])
15919 # 2222/7B22, 123/34
15920 pkt = NCP(0x7B22, "Get Volume Information by Level", 'stats')
15922 rec(10, 4, VolumeNumberLong ),
15923 rec(14, 1, InfoLevelNumber ),
15925 pkt.Reply(NO_LENGTH_CHECK, [
15926 rec(8, 4, CurrentServerTime ),
15927 rec(12, 1, VConsoleVersion ),
15928 rec(13, 1, VConsoleRevision ),
15929 rec(14, 2, Reserved2 ),
15930 rec(16, 1, InfoLevelNumber ),
15931 rec(17, 3, Reserved3 ),
15932 srec(VolInfoStructure, req_cond="ncp.info_level_num==0x01"),
15933 srec(VolInfo2Struct, req_cond="ncp.info_level_num==0x02"),
15935 pkt.ReqCondSizeVariable()
15936 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15937 # 2222/7B28, 123/40
15938 pkt = NCP(0x7B28, "Active Protocol Stacks", 'stats')
15940 rec(10, 4, StartNumber ),
15943 rec(8, 4, CurrentServerTime ),
15944 rec(12, 1, VConsoleVersion ),
15945 rec(13, 1, VConsoleRevision ),
15946 rec(14, 2, Reserved2 ),
15947 rec(16, 4, MaxNumOfLANS ),
15948 rec(20, 4, StackCount, var="x" ),
15949 rec(24, 4, nextStartingNumber ),
15950 rec(28, 20, StackInfo, repeat="x" ),
15952 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15953 # 2222/7B29, 123/41
15954 pkt = NCP(0x7B29, "Get Protocol Stack Configuration Information", 'stats')
15956 rec(10, 4, StackNumber ),
15958 pkt.Reply((37,164), [
15959 rec(8, 4, CurrentServerTime ),
15960 rec(12, 1, VConsoleVersion ),
15961 rec(13, 1, VConsoleRevision ),
15962 rec(14, 2, Reserved2 ),
15963 rec(16, 1, ConfigMajorVN ),
15964 rec(17, 1, ConfigMinorVN ),
15965 rec(18, 1, StackMajorVN ),
15966 rec(19, 1, StackMinorVN ),
15967 rec(20, 16, ShortStkName ),
15968 rec(36, (1,128), StackFullNameStr ),
15970 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15971 # 2222/7B2A, 123/42
15972 pkt = NCP(0x7B2A, "Get Protocol Stack Statistics Information", 'stats')
15974 rec(10, 4, StackNumber ),
15977 rec(8, 4, CurrentServerTime ),
15978 rec(12, 1, VConsoleVersion ),
15979 rec(13, 1, VConsoleRevision ),
15980 rec(14, 2, Reserved2 ),
15981 rec(16, 1, StatMajorVersion ),
15982 rec(17, 1, StatMinorVersion ),
15983 rec(18, 2, ComCnts ),
15984 rec(20, 4, CounterMask ),
15985 rec(24, 4, TotalTxPkts ),
15986 rec(28, 4, TotalRxPkts ),
15987 rec(32, 4, IgnoredRxPkts ),
15988 rec(36, 2, CustomCnts ),
15990 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
15991 # 2222/7B2B, 123/43
15992 pkt = NCP(0x7B2B, "Get Protocol Stack Custom Information", 'stats')
15994 rec(10, 4, StackNumber ),
15995 rec(14, 4, StartNumber ),
15998 rec(8, 4, CurrentServerTime ),
15999 rec(12, 1, VConsoleVersion ),
16000 rec(13, 1, VConsoleRevision ),
16001 rec(14, 2, Reserved2 ),
16002 rec(16, 4, CustomCount, var="x" ),
16003 rec(20, 5, CustomCntsInfo, repeat="x" ),
16005 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
16006 # 2222/7B2C, 123/44
16007 pkt = NCP(0x7B2C, "Get Protocol Stack Numbers by Media Number", 'stats')
16009 rec(10, 4, MediaNumber ),
16012 rec(8, 4, CurrentServerTime ),
16013 rec(12, 1, VConsoleVersion ),
16014 rec(13, 1, VConsoleRevision ),
16015 rec(14, 2, Reserved2 ),
16016 rec(16, 4, StackCount, var="x" ),
16017 rec(20, 4, StackNumber, repeat="x" ),
16019 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
16020 # 2222/7B2D, 123/45
16021 pkt = NCP(0x7B2D, "Get Protocol Stack Numbers by LAN Board Number", 'stats')
16023 rec(10, 4, BoardNumber ),
16026 rec(8, 4, CurrentServerTime ),
16027 rec(12, 1, VConsoleVersion ),
16028 rec(13, 1, VConsoleRevision ),
16029 rec(14, 2, Reserved2 ),
16030 rec(16, 4, StackCount, var="x" ),
16031 rec(20, 4, StackNumber, repeat="x" ),
16033 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
16034 # 2222/7B2E, 123/46
16035 pkt = NCP(0x7B2E, "Get Media Name by Media Number", 'stats')
16037 rec(10, 4, MediaNumber ),
16039 pkt.Reply((17,144), [
16040 rec(8, 4, CurrentServerTime ),
16041 rec(12, 1, VConsoleVersion ),
16042 rec(13, 1, VConsoleRevision ),
16043 rec(14, 2, Reserved2 ),
16044 rec(16, (1,128), MediaName ),
16046 pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00])
16047 # 2222/7B2F, 123/47
16048 pkt = NCP(0x7B2F, "Get Loaded Media Number", 'stats')
16051 rec(8, 4, CurrentServerTime ),
16052 rec(12, 1, VConsoleVersion ),
16053 rec(13, 1, VConsoleRevision ),
16054 rec(14, 2, Reserved2 ),
16055 rec(16, 4, MaxNumOfMedias ),
16056 rec(20, 4, MediaListCount, var="x" ),
16057 rec(24, 4, MediaList, repeat="x" ),
16059 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
16060 # 2222/7B32, 123/50
16061 pkt = NCP(0x7B32, "Get General Router and SAP Information", 'stats')
16064 rec(8, 4, CurrentServerTime ),
16065 rec(12, 1, VConsoleVersion ),
16066 rec(13, 1, VConsoleRevision ),
16067 rec(14, 2, Reserved2 ),
16068 rec(16, 2, RIPSocketNumber ),
16069 rec(18, 2, Reserved2 ),
16070 rec(20, 1, RouterDownFlag ),
16071 rec(21, 3, Reserved3 ),
16072 rec(24, 1, TrackOnFlag ),
16073 rec(25, 3, Reserved3 ),
16074 rec(28, 1, ExtRouterActiveFlag ),
16075 rec(29, 3, Reserved3 ),
16076 rec(32, 2, SAPSocketNumber ),
16077 rec(34, 2, Reserved2 ),
16078 rec(36, 1, RpyNearestSrvFlag ),
16080 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
16081 # 2222/7B33, 123/51
16082 pkt = NCP(0x7B33, "Get Network Router Information", 'stats')
16084 rec(10, 4, NetworkNumber ),
16087 rec(8, 4, CurrentServerTime ),
16088 rec(12, 1, VConsoleVersion ),
16089 rec(13, 1, VConsoleRevision ),
16090 rec(14, 2, Reserved2 ),
16091 rec(16, 10, KnownRoutes ),
16093 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
16094 # 2222/7B34, 123/52
16095 pkt = NCP(0x7B34, "Get Network Routers Information", 'stats')
16097 rec(10, 4, NetworkNumber),
16098 rec(14, 4, StartNumber ),
16101 rec(8, 4, CurrentServerTime ),
16102 rec(12, 1, VConsoleVersion ),
16103 rec(13, 1, VConsoleRevision ),
16104 rec(14, 2, Reserved2 ),
16105 rec(16, 4, NumOfEntries, var="x" ),
16106 rec(20, 14, RoutersInfo, repeat="x" ),
16108 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
16109 # 2222/7B35, 123/53
16110 pkt = NCP(0x7B35, "Get Known Networks Information", 'stats')
16112 rec(10, 4, StartNumber ),
16115 rec(8, 4, CurrentServerTime ),
16116 rec(12, 1, VConsoleVersion ),
16117 rec(13, 1, VConsoleRevision ),
16118 rec(14, 2, Reserved2 ),
16119 rec(16, 4, NumOfEntries, var="x" ),
16120 rec(20, 10, KnownRoutes, repeat="x" ),
16122 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
16123 # 2222/7B36, 123/54
16124 pkt = NCP(0x7B36, "Get Server Information", 'stats')
16125 pkt.Request((15,64), [
16126 rec(10, 2, ServerType ),
16127 rec(12, 2, Reserved2 ),
16128 rec(14, (1,50), ServerNameLen ),
16129 ], info_str=(ServerNameLen, "Get Server Information: %s", ", %s"))
16131 rec(8, 4, CurrentServerTime ),
16132 rec(12, 1, VConsoleVersion ),
16133 rec(13, 1, VConsoleRevision ),
16134 rec(14, 2, Reserved2 ),
16135 rec(16, 12, ServerAddress ),
16136 rec(28, 2, HopsToNet ),
16138 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
16139 # 2222/7B37, 123/55
16140 pkt = NCP(0x7B37, "Get Server Sources Information", 'stats')
16141 pkt.Request((19,68), [
16142 rec(10, 4, StartNumber ),
16143 rec(14, 2, ServerType ),
16144 rec(16, 2, Reserved2 ),
16145 rec(18, (1,50), ServerNameLen ),
16146 ], info_str=(ServerNameLen, "Get Server Sources Info: %s", ", %s"))
16148 rec(8, 4, CurrentServerTime ),
16149 rec(12, 1, VConsoleVersion ),
16150 rec(13, 1, VConsoleRevision ),
16151 rec(14, 2, Reserved2 ),
16152 rec(16, 4, NumOfEntries, var="x" ),
16153 rec(20, 12, ServersSrcInfo, repeat="x" ),
16155 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
16156 # 2222/7B38, 123/56
16157 pkt = NCP(0x7B38, "Get Known Servers Information", 'stats')
16159 rec(10, 4, StartNumber ),
16160 rec(14, 2, ServerType ),
16163 rec(8, 4, CurrentServerTime ),
16164 rec(12, 1, VConsoleVersion ),
16165 rec(13, 1, VConsoleRevision ),
16166 rec(14, 2, Reserved2 ),
16167 rec(16, 4, NumOfEntries, var="x" ),
16168 rec(20, 15, KnownServStruc, repeat="x" ),
16170 pkt.CompletionCodes([0x0000, 0x0108, 0x7e01, 0xfb06, 0xff00])
16171 # 2222/7B3C, 123/60
16172 pkt = NCP(0x7B3C, "Get Server Set Commands Information", 'stats')
16174 rec(10, 4, StartNumber ),
16176 pkt.Reply(NO_LENGTH_CHECK, [
16177 rec(8, 4, CurrentServerTime ),
16178 rec(12, 1, VConsoleVersion ),
16179 rec(13, 1, VConsoleRevision ),
16180 rec(14, 2, Reserved2 ),
16181 rec(16, 4, TtlNumOfSetCmds ),
16182 rec(20, 4, nextStartingNumber ),
16183 rec(24, 1, SetCmdType ),
16184 rec(25, 3, Reserved3 ),
16185 rec(28, 1, SetCmdCategory ),
16186 rec(29, 3, Reserved3 ),
16187 rec(32, 1, SetCmdFlags ),
16188 rec(33, 3, Reserved3 ),
16189 rec(36, PROTO_LENGTH_UNKNOWN, SetCmdName ),
16190 rec(-1, 4, SetCmdValueNum ),
16192 pkt.ReqCondSizeVariable()
16193 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
16194 # 2222/7B3D, 123/61
16195 pkt = NCP(0x7B3D, "Get Server Set Categories", 'stats')
16197 rec(10, 4, StartNumber ),
16199 pkt.Reply(NO_LENGTH_CHECK, [
16200 rec(8, 4, CurrentServerTime ),
16201 rec(12, 1, VConsoleVersion ),
16202 rec(13, 1, VConsoleRevision ),
16203 rec(14, 2, Reserved2 ),
16204 rec(16, 4, NumberOfSetCategories ),
16205 rec(20, 4, nextStartingNumber ),
16206 rec(24, PROTO_LENGTH_UNKNOWN, CategoryName ),
16208 pkt.CompletionCodes([0x0000, 0x7e01, 0xfb06, 0xff00])
16209 # 2222/7B3E, 123/62
16210 pkt = NCP(0x7B3E, "Get Server Set Commands Information By Name", 'stats')
16211 pkt.Request(NO_LENGTH_CHECK, [
16212 rec(10, PROTO_LENGTH_UNKNOWN, SetParmName ),
16213 ], info_str=(SetParmName, "Get Server Set Command Info for: %s", ", %s"))
16214 pkt.Reply(NO_LENGTH_CHECK, [
16215 rec(8, 4, CurrentServerTime ),
16216 rec(12, 1, VConsoleVersion ),
16217 rec(13, 1, VConsoleRevision ),
16218 rec(14, 2, Reserved2 ),
16219 rec(16, 4, TtlNumOfSetCmds ),
16220 rec(20, 4, nextStartingNumber ),
16221 rec(24, 1, SetCmdType ),
16222 rec(25, 3, Reserved3 ),
16223 rec(28, 1, SetCmdCategory ),
16224 rec(29, 3, Reserved3 ),
16225 rec(32, 1, SetCmdFlags ),
16226 rec(33, 3, Reserved3 ),
16227 rec(36, PROTO_LENGTH_UNKNOWN, SetCmdName ),
16228 # The value of the set command is decoded in packet-ncp2222.inc
16230 pkt.ReqCondSizeVariable()
16231 pkt.CompletionCodes([0x0000, 0x7e01, 0xc600, 0xfb06, 0xff22])
16232 # 2222/7B46, 123/70
16233 pkt = NCP(0x7B46, "Get Current Compressing File", 'stats')
16235 rec(10, 4, VolumeNumberLong ),
16238 rec(8, 4, ParentID ),
16239 rec(12, 4, DirectoryEntryNumber ),
16240 rec(16, 4, compressionStage ),
16241 rec(20, 4, ttlIntermediateBlks ),
16242 rec(24, 4, ttlCompBlks ),
16243 rec(28, 4, curIntermediateBlks ),
16244 rec(32, 4, curCompBlks ),
16245 rec(36, 4, curInitialBlks ),
16246 rec(40, 4, fileFlags ),
16247 rec(44, 4, projectedCompSize ),
16248 rec(48, 4, originalSize ),
16249 rec(52, 4, compressVolume ),
16251 pkt.CompletionCodes([0x0000, 0x7e00, 0x7901, 0x9801, 0xfb06, 0xff00])
16252 # 2222/7B47, 123/71
16253 pkt = NCP(0x7B47, "Get Current DeCompressing File Info List", 'stats')
16255 rec(10, 4, VolumeNumberLong ),
16258 #rec(8, 4, FileListCount ),
16259 rec(8, 16, FileInfoStruct ),
16261 pkt.CompletionCodes([0x0000, 0x7e00, 0x9801, 0xfb06, 0xff00])
16262 # 2222/7B48, 123/72
16263 pkt = NCP(0x7B48, "Get Compression and Decompression Time and Counts", 'stats')
16265 rec(10, 4, VolumeNumberLong ),
16268 rec(8, 56, CompDeCompStat ),
16270 pkt.CompletionCodes([0x0000, 0x7e00, 0x9801, 0xfb06, 0xff00])
16271 # 2222/7BF9, 123/249
16272 pkt = NCP(0x7BF9, "Set Alert Notification", 'stats')
16275 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
16276 # 2222/7BFB, 123/251
16277 pkt = NCP(0x7BFB, "Get Item Configuration Information", 'stats')
16280 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
16281 # 2222/7BFC, 123/252
16282 pkt = NCP(0x7BFC, "Get Subject Item ID List", 'stats')
16285 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
16286 # 2222/7BFD, 123/253
16287 pkt = NCP(0x7BFD, "Get Subject Item List Count", 'stats')
16290 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
16291 # 2222/7BFE, 123/254
16292 pkt = NCP(0x7BFE, "Get Subject ID List", 'stats')
16295 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
16296 # 2222/7BFF, 123/255
16297 pkt = NCP(0x7BFF, "Get Number of NetMan Subjects", 'stats')
16300 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb06, 0xff00])
16301 # 2222/8301, 131/01
16302 pkt = NCP(0x8301, "RPC Load an NLM", 'remote')
16303 pkt.Request(NO_LENGTH_CHECK, [
16304 rec(10, 4, NLMLoadOptions ),
16305 rec(14, 16, Reserved16 ),
16306 rec(30, PROTO_LENGTH_UNKNOWN, PathAndName ),
16307 ], info_str=(PathAndName, "RPC Load NLM: %s", ", %s"))
16309 rec(8, 4, RPCccode ),
16311 pkt.CompletionCodes([0x0000, 0x7c00, 0x7e00, 0xfb07, 0xff00])
16312 # 2222/8302, 131/02
16313 pkt = NCP(0x8302, "RPC Unload an NLM", 'remote')
16314 pkt.Request(NO_LENGTH_CHECK, [
16315 rec(10, 20, Reserved20 ),
16316 rec(30, PROTO_LENGTH_UNKNOWN, NLMName ),
16317 ], info_str=(NLMName, "RPC Unload NLM: %s", ", %s"))
16319 rec(8, 4, RPCccode ),
16321 pkt.CompletionCodes([0x0000, 0x7c00, 0x7e00, 0xfb07, 0xff00])
16322 # 2222/8303, 131/03
16323 pkt = NCP(0x8303, "RPC Mount Volume", 'remote')
16324 pkt.Request(NO_LENGTH_CHECK, [
16325 rec(10, 20, Reserved20 ),
16326 rec(30, PROTO_LENGTH_UNKNOWN, VolumeNameStringz ),
16327 ], info_str=(VolumeNameStringz, "RPC Mount Volume: %s", ", %s"))
16329 rec(8, 4, RPCccode),
16330 rec(12, 16, Reserved16 ),
16331 rec(28, 4, VolumeNumberLong ),
16333 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
16334 # 2222/8304, 131/04
16335 pkt = NCP(0x8304, "RPC Dismount Volume", 'remote')
16336 pkt.Request(NO_LENGTH_CHECK, [
16337 rec(10, 20, Reserved20 ),
16338 rec(30, PROTO_LENGTH_UNKNOWN, VolumeNameStringz ),
16339 ], info_str=(VolumeNameStringz, "RPC Dismount Volume: %s", ", %s"))
16341 rec(8, 4, RPCccode ),
16343 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
16344 # 2222/8305, 131/05
16345 pkt = NCP(0x8305, "RPC Add Name Space To Volume", 'remote')
16346 pkt.Request(NO_LENGTH_CHECK, [
16347 rec(10, 20, Reserved20 ),
16348 rec(30, PROTO_LENGTH_UNKNOWN, AddNameSpaceAndVol ),
16349 ], info_str=(AddNameSpaceAndVol, "RPC Add Name Space to Volume: %s", ", %s"))
16351 rec(8, 4, RPCccode ),
16353 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
16354 # 2222/8306, 131/06
16355 pkt = NCP(0x8306, "RPC Set Command Value", 'remote')
16356 pkt.Request(NO_LENGTH_CHECK, [
16357 rec(10, 1, SetCmdType ),
16358 rec(11, 3, Reserved3 ),
16359 rec(14, 4, SetCmdValueNum ),
16360 rec(18, 12, Reserved12 ),
16361 rec(30, PROTO_LENGTH_UNKNOWN, SetCmdName ),
16363 # XXX - optional string, if SetCmdType is 0
16365 ], info_str=(SetCmdName, "RPC Set Command Value: %s", ", %s"))
16367 rec(8, 4, RPCccode ),
16369 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
16370 # 2222/8307, 131/07
16371 pkt = NCP(0x8307, "RPC Execute NCF File", 'remote')
16372 pkt.Request(NO_LENGTH_CHECK, [
16373 rec(10, 20, Reserved20 ),
16374 rec(30, PROTO_LENGTH_UNKNOWN, PathAndName ),
16375 ], info_str=(PathAndName, "RPC Execute NCF File: %s", ", %s"))
16377 rec(8, 4, RPCccode ),
16379 pkt.CompletionCodes([0x0000, 0x7e00, 0xfb07, 0xff00])
16380 if __name__ == '__main__':
16382 # filename = "ncp.pstats"
16383 # profile.run("main()", filename)
16387 # p = pstats.Stats(filename)
16389 # print "Stats sorted by cumulative time"
16390 # p.strip_dirs().sort_stats('cumulative').print_stats()
16392 # print "Function callees"
16393 # p.print_callees()