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