windows-nt/Source/XPSP1/NT/base/mvdm/inc/vrdlctab.h
2020-09-26 16:20:57 +08:00

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 */