Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*--
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 */
|