summaryrefslogtreecommitdiffstats
path: root/private/nw/nw16/inc/nwdos.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/nw/nw16/inc/nwdos.h')
-rw-r--r--private/nw/nw16/inc/nwdos.h220
1 files changed, 220 insertions, 0 deletions
diff --git a/private/nw/nw16/inc/nwdos.h b/private/nw/nw16/inc/nwdos.h
new file mode 100644
index 000000000..c1a03891e
--- /dev/null
+++ b/private/nw/nw16/inc/nwdos.h
@@ -0,0 +1,220 @@
+/*--
+
+ Copyright (c) 1993 Microsoft Corporation
+
+ Module Name:
+
+ NWDOS.h
+
+ Abstract:
+
+ This is the include file that defines all constants and types for
+ 16 bit applications accessing the redirector.
+
+ Author:
+
+ Colin Watson (ColinW) 08-Jul-1993
+
+ Revision History:
+
+--*/
+
+#define NWDOS_INCLUDED
+
+#define MC 8 // maximum number of connections
+
+#define NC 8 // number of novell connections
+#define MP 3 // maximum number of printers
+#define MD 32 // maximum number of drives
+#define PZ 64 // print buffer size
+
+#define SERVERNAME_LENGTH 48
+#define USERNAME_LENGTH 16
+#define PASSWORD_LENGTH 16
+#define IPXADDRESS_LENGTH 12
+#define NODEADDRESS_LENGTH 6
+
+typedef UCHAR byte;
+typedef USHORT word;
+
+typedef byte CONN_INDEX; // index into ConnectionIdTable, range 0..MC-1
+typedef byte DRIVE; // index into DriveXxxTable, range 0..MD-1
+
+/* OpenFile() Flags */
+
+#define OF_READ_WRITE_MASK 0x0003
+/*
+#define OF_READ 0x0000
+#define OF_WRITE 0x0001
+#define OF_READWRITE 0x0002
+*/
+#define OF_SHARE_MASK 0x0070
+/*
+#define OF_SHARE_COMPAT 0x0000
+#define OF_SHARE_EXCLUSIVE 0x0010
+#define OF_SHARE_DENY_WRITE 0x0020
+#define OF_SHARE_DENY_READ 0x0030
+#define OF_SHARE_DENY_NONE 0x0040
+#define OF_PARSE 0x0100
+#define OF_DELETE 0x0200
+#define OF_VERIFY 0x0400 */ /* Used with OF_REOPEN */
+/*
+#define OF_SEARCH 0x0400 */ /* Used without OF_REOPEN */
+/*
+#define OF_CANCEL 0x0800
+#define OF_CREATE 0x1000
+#define OF_PROMPT 0x2000
+#define OF_EXIST 0x4000
+#define OF_REOPEN 0x8000
+*/
+
+//
+// Force misalignment of the following structures
+//
+
+/* XLATOFF */
+#include <packon.h>
+/* XLATON */
+
+typedef struct CID { /* */
+ byte ci_InUse;
+ byte ci_OrderNo;
+ byte ci_ServerAddress[IPXADDRESS_LENGTH];
+ word ci_TimeOut;
+ byte ci_LocalNode[NODEADDRESS_LENGTH];
+ byte ci_SequenceNo;
+ byte ci_ConnectionNo;
+ byte ci_ConnectionStatus;
+ word ci_MaxTimeOut;
+ byte ci_ConnectionLo;
+ byte ci_ConnectionHi;
+ byte ci_MajorVersion;
+ byte ci_1;
+ byte ci_MinorVersion;
+} CONNECTIONID;
+typedef CONNECTIONID UNALIGNED *PCONNECTIONID;
+
+#if 0 /* Already declared in nw\inc\ntddnwfs.h */
+typedef char SERVERNAME[SERVERNAME_LENGTH];
+#endif
+
+typedef char USERNAME[USERNAME_LENGTH];
+typedef char PASSWORD[PASSWORD_LENGTH];
+typedef char IPXADDRESS[IPXADDRESS_LENGTH];
+typedef char NODEADDRESS[NODEADDRESS_LENGTH];
+
+//
+// The following type collects all the structures used between the TSR
+// and the 32 bit dll into one packed structure.
+//
+// *** ANY CHANGES TO THIS STRUCTURE MUST ALSO BE MADE TO THE ASM NWDOSTABLE_ASM
+// *** STRUCTURE (below)
+//
+
+/* XLATOFF */
+typedef struct {
+ CONNECTIONID ConnectionIdTable[MC];
+ SERVERNAME ServerNameTable[MC];
+ CONN_INDEX DriveIdTable[MD]; // Corresponding ConnectionId
+ UCHAR DriveFlagTable[MD];
+ UCHAR DriveHandleTable[MD];
+ UCHAR PreferredServer;
+ UCHAR PrimaryServer;
+ UCHAR TaskModeByte;
+ UCHAR CurrentDrive;
+ USHORT SavedAx;
+ USHORT NtHandleHi;
+ USHORT NtHandleLow;
+ USHORT NtHandleSrcHi;
+ USHORT NtHandleSrcLow;
+ USHORT hVdd;
+ USHORT PmSelector;
+ UCHAR CreatedJob;
+ UCHAR JobHandle;
+ UCHAR DeNovellBuffer[256];
+ UCHAR DeNovellBuffer2[256];
+} NWDOSTABLE;
+typedef NWDOSTABLE *PNWDOSTABLE;
+/* XLATON */
+
+//
+// Turn structure packing back off
+//
+
+/* XLATOFF */
+#include <packoff.h>
+/* XLATON */
+
+//
+// CONNECTIONID Constants
+//
+
+#define FREE 0
+#define IN_USE 0xff
+
+//
+// Values for DriveFlags
+//
+
+#define NOT_MAPPED 0
+#define PERMANENT_NETWORK_DRIVE 1
+#define TEMPORARY_NETWORK_DRIVE 2
+#define LOCAL_DRIVE 0x80
+
+
+///// Client state tables:
+
+extern CONNECTIONID* ConnectionIdTable; // MC entries
+extern SERVERNAME* ServerNameTable; // MC entries
+
+extern byte* DriveFlagTable; // MD entries
+extern byte* DriveIdTable; // MD entries
+
+//
+// this next egregious grossness is extant because MASM cannot handle anything
+// other than a basic type inside a structure declaration
+//
+// *** ANY CHANGES TO THIS STRUCTURE MUST ALSO BE MADE TO THE C NWDOSTABLE
+// *** STRUCTURE (above)
+//
+// NB. The leading underscores are there because we already have globals with
+// the same names
+//
+
+/* ASM
+
+NWDOSTABLE_ASM struc
+
+_ConnectionIdTable db ((size CID) * MC) dup (?)
+_ServerNameTable db (MC * SERVERNAME_LENGTH) dup (?)
+_DriveIdTable db MD dup (?)
+_DriveFlagTable db MD dup (?)
+_DriveHandleTable db MD dup (?)
+_PreferredServer db ?
+_PrimaryServer db ?
+_TaskModeByte db ?
+_CurrentDrive db ?
+_SavedAx dw ?
+_NtHandleHi dw ?
+_NtHandleLow dw ?
+_NtHandleSrcHi dw ?
+_NtHandleSrcLow dw ?
+_hVdd dw ?
+_PmSelector dw ?
+_CreatedJob db ?
+_JobHandle db ?
+_DeNovellBuffer db 256 dup (?)
+_DeNovellBuffer2 db 256 dup (?)
+
+NWDOSTABLE_ASM ends
+
+*/
+
+/* XLATOFF */
+//
+// IS_ASCII_PATH_SEPARATOR - returns TRUE if ch is / or \. ch is a single
+// byte (ASCII) character
+//
+#define IS_ASCII_PATH_SEPARATOR(ch) (((ch) == '/') || ((ch) == '\\'))
+/* XLATON */
+