147 lines
4 KiB
C
147 lines
4 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1991 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
vrdlctab.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Contains structures which are shared between the VDM code and the DOS
|
||
|
redir code. Separated from VDMREDIR.H
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Richard L Firth (rfirth) 13-May-1992
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
//
|
||
|
// manifests
|
||
|
//
|
||
|
|
||
|
#define DOS_DLC_STATUS_PERM_SLOTS 10
|
||
|
#define DOS_DLC_STATUS_TEMP_SLOTS 5
|
||
|
#define DOS_DLC_MAX_ADAPTERS 2
|
||
|
|
||
|
//
|
||
|
// EXTENDED_STATUS_PARMS - there is one of these per adapter
|
||
|
//
|
||
|
|
||
|
/* XLATOFF */
|
||
|
#pragma pack(1)
|
||
|
/* XLATON */
|
||
|
|
||
|
typedef struct _EXTENDED_STATUS_PARMS { /* */
|
||
|
BYTE cbSize;
|
||
|
BYTE cbPageFrameSize;
|
||
|
WORD wAdapterType;
|
||
|
WORD wCurrentFrameSize;
|
||
|
WORD wMaxFrameSize;
|
||
|
} EXTENDED_STATUS_PARMS;
|
||
|
|
||
|
typedef EXTENDED_STATUS_PARMS UNALIGNED * PEXTENDED_STATUS_PARMS;
|
||
|
|
||
|
//
|
||
|
// DOS_DLC_STATUS - there is one of these for each of the permanent and temporary
|
||
|
// connections
|
||
|
//
|
||
|
|
||
|
typedef struct _DOS_DLC_STATUS { /* */
|
||
|
WORD usStationId;
|
||
|
WORD usDlcStatusCode;
|
||
|
BYTE uchFrmrData[5];
|
||
|
BYTE uchAccessPriority;
|
||
|
BYTE uchRemoteNodeAddress[6];
|
||
|
BYTE uchRemoteSap;
|
||
|
BYTE auchReserved[3];
|
||
|
} DOS_DLC_STATUS;
|
||
|
|
||
|
typedef DOS_DLC_STATUS UNALIGNED * PDOS_DLC_STATUS;
|
||
|
|
||
|
//
|
||
|
// ADAPTER_STATUS_PARMS - In real DOS workstation, this is maintained by the
|
||
|
// adapter software, but is made available to applications through DIR.STATUS.
|
||
|
// Token Ring and Ethernet adapter have different adapter status parameters
|
||
|
//
|
||
|
// Note: some fields prefixed by Tr or Eth because the x86 assembler
|
||
|
// can't handle the same field name in different structures
|
||
|
//
|
||
|
|
||
|
typedef struct _TOKEN_RING_ADAPTER_STATUS_PARMS { /* */
|
||
|
DWORD PhysicalAddress;
|
||
|
BYTE UpstreamNodeAddress[6];
|
||
|
DWORD UpstreamPhysicalAddress;
|
||
|
BYTE LastPollAddress[6];
|
||
|
WORD AuthorizedEnvironment;
|
||
|
WORD TransmitAccessPriority;
|
||
|
WORD SourceClassAuthorization;
|
||
|
WORD LastAttentionCode;
|
||
|
BYTE TrLastSourceAddress[6];
|
||
|
WORD LastBeaconType;
|
||
|
WORD TrLastMajorVector;
|
||
|
WORD TrNetworkStatus;
|
||
|
WORD SoftError;
|
||
|
WORD FrontEndErrorCount;
|
||
|
WORD LocalRingNumber;
|
||
|
WORD MonitorErrorCode;
|
||
|
WORD BeaconTransmitType;
|
||
|
WORD BeaconReceiveType;
|
||
|
WORD TrFrameCorrelation;
|
||
|
BYTE BeaconingNaun[6];
|
||
|
DWORD Reserved;
|
||
|
DWORD BeaconingPhysicalAddress;
|
||
|
} TOKEN_RING_ADAPTER_STATUS_PARMS;
|
||
|
|
||
|
typedef TOKEN_RING_ADAPTER_STATUS_PARMS UNALIGNED * PTOKEN_RING_ADAPTER_STATUS_PARMS;
|
||
|
|
||
|
typedef struct _ETHERNET_ADAPTER_STATUS_PARMS { /* */
|
||
|
BYTE Reserved1[28];
|
||
|
BYTE EthLastSourceAddress[6];
|
||
|
BYTE Reserved2[2];
|
||
|
WORD EthLastMajorVector;
|
||
|
WORD EthNetworkStatus;
|
||
|
WORD ErrorReportTimerValue;
|
||
|
WORD ErrorReportTimerTickCounter;
|
||
|
WORD LocalBusNumber;
|
||
|
BYTE Reserved3[6];
|
||
|
WORD EthFrameCorrelation;
|
||
|
BYTE Reserved4[6];
|
||
|
WORD NetworkUtilizationSamples;
|
||
|
WORD NetworkBusySamples;
|
||
|
BYTE Reserved5[4];
|
||
|
} ETHERNET_ADAPTER_STATUS_PARMS;
|
||
|
|
||
|
typedef ETHERNET_ADAPTER_STATUS_PARMS UNALIGNED * PETHERNET_ADAPTER_STATUS_PARMS;
|
||
|
|
||
|
typedef union _ADAPTER_STATUS_PARMS { /* */
|
||
|
TOKEN_RING_ADAPTER_STATUS_PARMS TokenRing;
|
||
|
ETHERNET_ADAPTER_STATUS_PARMS Ethernet;
|
||
|
} ADAPTER_STATUS_PARMS;
|
||
|
|
||
|
typedef ADAPTER_STATUS_PARMS UNALIGNED * PADAPTER_STATUS_PARMS;
|
||
|
|
||
|
//
|
||
|
// VDM_REDIR_DOS_WINDOW - this structure is used by the MVDM DLC code to return
|
||
|
// information to the DOS DLC program via the redir. This is used mainly in
|
||
|
// asynchronous call-backs (aka ANRs, post-routines or DLC appendages). We let
|
||
|
// the redir code know if there is an ANR by setting dwPostRoutine
|
||
|
//
|
||
|
|
||
|
typedef struct _VDM_REDIR_DOS_WINDOW { /* */
|
||
|
DWORD dwPostRoutine;
|
||
|
DWORD dwDlcTimerTick;
|
||
|
EXTENDED_STATUS_PARMS aExtendedStatus[DOS_DLC_MAX_ADAPTERS];
|
||
|
ADAPTER_STATUS_PARMS AdapterStatusParms[DOS_DLC_MAX_ADAPTERS];
|
||
|
DOS_DLC_STATUS aStatusTables[(DOS_DLC_STATUS_TEMP_SLOTS + DOS_DLC_STATUS_PERM_SLOTS)];
|
||
|
} VDM_REDIR_DOS_WINDOW;
|
||
|
|
||
|
typedef VDM_REDIR_DOS_WINDOW UNALIGNED * LPVDM_REDIR_DOS_WINDOW;
|
||
|
|
||
|
/* XLATOFF */
|
||
|
#pragma pack()
|
||
|
/* XLATON */
|