Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

930 lines
18 KiB

/****************************************************************************
*
* MDGNCDET.H
*
* Madge Adapter Dection DLL Global Header File
*
* Copyright (c) Madge Networks Ltd 1994
*
* COMPANY CONFIDENTIAL - RELEASED TO MICROSOFT CORP. ONLY FOR DEVELOPMENT
* OF WINDOWS95 NETCARD DETECTION - THIS SOURCE IS NOT TO BE RELEASED OUTSIDE
* OF MICROSOFT WITHOUT EXPLICIT WRITTEN PERMISSION FROM AN AUTHORISED
* OFFICER OF MADGE NETWORKS LTD.
*
* Created: PBA 19/08/1994
*
****************************************************************************/
#ifndef __MDGNCDET__
#define __MDGNCDET__
/*---------------------------------------------------------------------------
|
| Debugging macros.
|
|--------------------------------------------------------------------------*/
#if DBG
#define MadgePrint1(p1) DbgPrint("MdgNcDet: "##p1)
#define MadgePrint2(p1, p2) DbgPrint("MdgNcDet: "##p1, (p2))
#define MadgePrint3(p1, p2, p3) DbgPrint("MdgNcDet: "##p1, (p2), (p3))
#else
#define MadgePrint1(p1)
#define MadgePrint2(p1, p2)
#define MadgePrint3(p1, p2, p3)
#endif
/*---------------------------------------------------------------------------
|
| Adapter option tokens.
|
Ý Note: The MDGMPISA and MDGMPMCA tokens are used so that the OEMSETUP.INF
Ý can be backwards compatible (and therefore upgradeable).
Ý
|--------------------------------------------------------------------------*/
#define MDGMPORT
#ifdef MDGMPORT
#define MDGAT L"MSMDGMPISA"
#define MDGATP L"MSMDGMPATP"
#define MDGISAC L"MSMDGMPISAC"
#define MDGISACP L"MSMDGMPISACP"
#define MDGPC L"MSMDGMPPC"
#define MDGSM16 L"MSMDGMPSM16"
#define MDGPNP L"MSMDGMPPNP"
#define MDGEISA L"MSMDGMPEISA"
#define MDGMC16 L"MSMDGMPMCA"
#define MDGMC32 L"MSMDGMPMC32"
#define MDGPCI L"MSMDGMPPCI"
#define MDGPCIBM L"MSMDGMPPCIBM"
#define MDGPCMCIA L"MSMDGMPPCMCIA"
#endif
/*---------------------------------------------------------------------------
|
Ý Name of the net detect DLL.
Ý
--------------------------------------------------------------------------*/
#define NET_DETECT_DLL_NAME "NETDTECT"
/*---------------------------------------------------------------------------
|
| Resource constants.
Ý
Ý Note: For historical reasons DMA channel 0 is used to mean PIO and
Ý 0 < DMA channel < 16 means bus master DMA on ATULA based adapters.
Ý (This scheme also works well for Windows95 where we have to
Ý give a DMA resource range in the NETMADGE.INF file. The user
Ý must choose one of the valid DMA channels at installtion time.
Ý The simplest way to say to Windows95 that although we have
Ý said the we use a DMA channel we don't actually wont want is
Ý specify a DMA channel of 0 when the use wants PIO.) To make things
Ý easier for OEMSETUP.INF we have extended this approach.
Ý A DMA channel of GENERAL_DMA means the adapter uses DMA but
Ý the channel is determined by the driver at start up (EISA and MC).
Ý A DMA channel of GENERAL_MMIO means that the driver uses MMIO.
|
|--------------------------------------------------------------------------*/
#define RESOURCE_UNKNOWN 0xffff // Unknown DMA, IRQ etc.
#define GENERAL_DMA 500 // DMA without explicit channel
// (EISA/MC).
#define GENERAL_MMIO 501 // General memory mapped IO.
#define END_OF_LIST 1000 // End of a resource list.
/*---------------------------------------------------------------------------
|
| Function typedefs for the functions exported by the individual adapter
| detection modules.
|
|--------------------------------------------------------------------------*/
typedef
LONG
(*NC_DETECT_IDENTIFY)(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
typedef
LONG
(*NC_DETECT_FIRST_NEXT)(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
BOOL first,
VOID * * token,
LONG * confidence
);
typedef
LONG
(*NC_DETECT_OPEN_HANDLE)(
VOID * token,
VOID * * handle
);
typedef
LONG
(*NC_DETECT_CREATE_HANDLE)(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
VOID * * handle
);
typedef
LONG
(*NC_DETECT_CLOSE_HANDLE)(
VOID * handle
);
typedef
LONG
(*NC_DETECT_QUERY_CFG)(
VOID * handle,
WCHAR * buffer,
LONG bufferSize
);
typedef
LONG
(*NC_DETECT_VERIFY_CFG)(
VOID * handle,
WCHAR * buffer
);
typedef
LONG
(*NC_DETECT_QUERY_MASK)(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
typedef
LONG
(*NC_DETECT_PARAM_RANGE)(
LONG index,
WCHAR * param,
LONG * buffer,
LONG * bufferSize
);
typedef
LONG
(*NC_DETECT_QUERY_PARAMETER_NAME)(
WCHAR * param,
WCHAR * buffer,
LONG bufferSize
);
/*---------------------------------------------------------------------------
|
| Structure used to hold all the information required by the main wrapper
| about an individual adapter setection module.
|
|--------------------------------------------------------------------------*/
typedef struct
{
NC_DETECT_IDENTIFY NcDetectIdentifyHandler;
NC_DETECT_FIRST_NEXT NcDetectFirstNextHandler;
NC_DETECT_OPEN_HANDLE NcDetectOpenHandleHandler;
NC_DETECT_CREATE_HANDLE NcDetectCreateHandleHandler;
NC_DETECT_CLOSE_HANDLE NcDetectCloseHandleHandler;
NC_DETECT_QUERY_CFG NcDetectQueryCfgHandler;
NC_DETECT_VERIFY_CFG NcDetectVerifyCfgHandler;
NC_DETECT_QUERY_MASK NcDetectQueryMaskHandler;
NC_DETECT_PARAM_RANGE NcDetectParamRangeHandler;
NC_DETECT_QUERY_PARAMETER_NAME NcDetectQueryParameterNameHandler;
LONG SupportedAdapters;
}
DETECT_ADAPTER;
/*--------------------------------------------------------------------------
|
| Structure for holding information about an adapter type.
|
---------------------------------------------------------------------------*/
typedef struct
{
LONG Index;
WCHAR * InfId;
WCHAR * CardDescription;
WCHAR * Manufacturer;
WCHAR * Parameters;
NC_DETECT_FIRST_NEXT FirstNext;
ULONG SearchOrder;
}
ADAPTER_INFO;
/*---------------------------------------------------------------------------
|
| Structure for holding handles in the NcDetect routines.
|
---------------------------------------------------------------------------*/
typedef struct
{
VOID * Handle;
LONG DriverNumber;
}
ADAPTER_HANDLE;
/*---------------------------------------------------------------------------
|
| Parameter identifier strings. Instantiated in MDGNCDET.C.
|
|--------------------------------------------------------------------------*/
extern WCHAR IrqString[];
extern WCHAR IoAddrString[];
extern WCHAR DmaChanString[];
extern WCHAR AdapTypeString[];
extern WCHAR SlotNumberString[];
extern WCHAR MultiprocessorString[];
/*---------------------------------------------------------------------------
|
| Functions exported by MDGUTILS.C
|
|--------------------------------------------------------------------------*/
ULONG
UnicodeStrLen(
WCHAR * string
);
WCHAR *
FindParameterString(
WCHAR * string1,
WCHAR * string2
);
VOID
ScanForNumber(
WCHAR * place,
ULONG * value,
BOOLEAN * found
);
VOID *
DetectAllocateHeap(
LONG size
);
VOID
DetectFreeHeap(
VOID * ptr
);
BOOLEAN
GetMcaKey(
ULONG busNumber,
VOID * * infoHandle
);
BOOLEAN
GetMcaPosId(
VOID * infoHandle,
ULONG slotNumber,
ULONG * posId
);
VOID
DeleteMcaKey(
VOID * infoHandle
);
BOOLEAN
GetEisaKey(
ULONG busNumber,
VOID * * infoHandle
);
BOOLEAN
GetEisaCompressedId(
VOID * infoHandle,
ULONG slotNumber,
ULONG * compressedId
);
VOID
DeleteEisaKey(
VOID * infoHandle
);
LONG
AppendParameter(
WCHAR * * buffer,
LONG * bufferSize,
WCHAR * title,
ULONG value
);
BOOLEAN
UnicodeStringsEqual(
WCHAR *string1,
WCHAR *string2
);
BOOLEAN
MadgeCardAlreadyInstalled(
BOOLEAN useSlotNumber,
ULONG busNumber,
ULONG descriptor
);
ULONG
IsMultiprocessor(void);
BOOLEAN
IsValueInList(
ULONG value,
ULONG * list
);
BOOLEAN
CheckForPcmciaCard(
ULONG * ioLocation,
ULONG * irqNumber
);
/*---------------------------------------------------------------------------
|
| Functions exported by MDGEISA.C.
|
|--------------------------------------------------------------------------*/
LONG
MadgeEisaIdentifyHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeEisaFirstNextHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
BOOL first,
VOID * * token,
LONG * confidence
);
LONG
MadgeEisaOpenHandleHandler(
VOID * token,
VOID * * handle
);
LONG
MadgeEisaCreateHandleHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
VOID * * handle
);
LONG
MadgeEisaCloseHandleHandler(
VOID * handle
);
LONG
MadgeEisaQueryCfgHandler(
VOID * handle,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeEisaVerifyCfgHandler(
VOID * handle,
WCHAR * buffer
);
LONG
MadgeEisaQueryMaskHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeEisaParamRangeHandler(
LONG index,
WCHAR * param,
LONG * buffer,
LONG * bufferSize
);
LONG
MadgeEisaQueryParameterNameHandler(
WCHAR * param,
WCHAR * buffer,
LONG bufferSize
);
/*---------------------------------------------------------------------------
|
| Functions exported by MDGPCI.C.
|
|--------------------------------------------------------------------------*/
LONG
MadgePciIdentifyHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgePciFirstNextHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
BOOL first,
VOID * * token,
LONG * confidence
);
LONG
MadgePciOpenHandleHandler(
VOID * token,
VOID * * handle
);
LONG
MadgePciCreateHandleHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
VOID * * handle
);
LONG
MadgePciCloseHandleHandler(
VOID * handle
);
LONG
MadgePciQueryCfgHandler(
VOID * handle,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgePciVerifyCfgHandler(
VOID * handle,
WCHAR * buffer
);
LONG
MadgePciQueryMaskHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgePciParamRangeHandler(
LONG index,
WCHAR * param,
LONG * buffer,
LONG * bufferSize
);
LONG
MadgePciQueryParameterNameHandler(
WCHAR * param,
WCHAR * buffer,
LONG bufferSize
);
/*---------------------------------------------------------------------------
|
| Functions exported by MDGPCMC.C.
|
|--------------------------------------------------------------------------*/
LONG
MadgePcmciaIdentifyHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgePcmciaFirstNextHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
BOOL first,
VOID * * token,
LONG * confidence
);
LONG
MadgePcmciaOpenHandleHandler(
VOID * token,
VOID * * handle
);
LONG
MadgePcmciaCreateHandleHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
VOID * * handle
);
LONG
MadgePcmciaCloseHandleHandler(
VOID * handle
);
LONG
MadgePcmciaQueryCfgHandler(
VOID * handle,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgePcmciaVerifyCfgHandler(
VOID * handle,
WCHAR * buffer
);
LONG
MadgePcmciaQueryMaskHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgePcmciaParamRangeHandler(
LONG index,
WCHAR * param,
LONG * buffer,
LONG * bufferSize
);
LONG
MadgePcmciaQueryParameterNameHandler(
WCHAR * param,
WCHAR * buffer,
LONG bufferSize
);
/*---------------------------------------------------------------------------
|
| Functions exported by MDGAT.C.
|
|--------------------------------------------------------------------------*/
LONG
MadgeATIdentifyHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeATFirstNextHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
BOOL first,
VOID * * token,
LONG * confidence
);
LONG
MadgeATOpenHandleHandler(
VOID * token,
VOID * * handle
);
LONG
MadgeATCreateHandleHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
VOID * * handle
);
LONG
MadgeATCloseHandleHandler(
VOID * handle
);
LONG
MadgeATQueryCfgHandler(
VOID * handle,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeATVerifyCfgHandler(
VOID * handle,
WCHAR * buffer
);
LONG
MadgeATQueryMaskHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeATParamRangeHandler(
LONG index,
WCHAR * param,
LONG * buffer,
LONG * bufferSize
);
LONG
MadgeATQueryParameterNameHandler(
WCHAR * param,
WCHAR * buffer,
LONG bufferSize
);
/*---------------------------------------------------------------------------
|
| Functions exported by MDGSM16.C.
|
|--------------------------------------------------------------------------*/
LONG
MadgeSm16IdentifyHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeSm16FirstNextHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
BOOL first,
VOID * * token,
LONG * confidence
);
LONG
MadgeSm16OpenHandleHandler(
VOID * token,
VOID * * handle
);
LONG
MadgeSm16CreateHandleHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
VOID * * handle
);
LONG
MadgeSm16CloseHandleHandler(
VOID * handle
);
LONG
MadgeSm16QueryCfgHandler(
VOID * handle,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeSm16VerifyCfgHandler(
VOID * handle,
WCHAR * buffer
);
LONG
MadgeSm16QueryMaskHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeSm16ParamRangeHandler(
LONG index,
WCHAR * param,
LONG * buffer,
LONG * bufferSize
);
LONG
MadgeSm16QueryParameterNameHandler(
WCHAR * param,
WCHAR * buffer,
LONG bufferSize
);
/*---------------------------------------------------------------------------
|
| Functions exported by MDGPNP.C.
|
|--------------------------------------------------------------------------*/
LONG
MadgePnPIdentifyHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgePnPFirstNextHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
BOOL first,
VOID * * token,
LONG * confidence
);
LONG
MadgePnPOpenHandleHandler(
VOID * token,
VOID * * handle
);
LONG
MadgePnPCreateHandleHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
VOID * * handle
);
LONG
MadgePnPCloseHandleHandler(
VOID * handle
);
LONG
MadgePnPQueryCfgHandler(
VOID * handle,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgePnPVerifyCfgHandler(
VOID * handle,
WCHAR * buffer
);
LONG
MadgePnPQueryMaskHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgePnPParamRangeHandler(
LONG index,
WCHAR * param,
LONG * buffer,
LONG * bufferSize
);
LONG
MadgePnPQueryParameterNameHandler(
WCHAR * param,
WCHAR * buffer,
LONG bufferSize
);
/*---------------------------------------------------------------------------
|
| Functions exported by MDGMC.C.
|
|--------------------------------------------------------------------------*/
LONG
MadgeMCIdentifyHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeMCFirstNextHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
BOOL first,
VOID * * token,
LONG * confidence
);
LONG
MadgeMCOpenHandleHandler(
VOID * token,
VOID * * handle
);
LONG
MadgeMCCreateHandleHandler(
LONG index,
INTERFACE_TYPE interface,
ULONG busNumber,
VOID * * handle
);
LONG
MadgeMCCloseHandleHandler(
VOID * handle
);
LONG
MadgeMCQueryCfgHandler(
VOID * handle,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeMCVerifyCfgHandler(
VOID * handle,
WCHAR * buffer
);
LONG
MadgeMCQueryMaskHandler(
LONG index,
WCHAR * buffer,
LONG bufferSize
);
LONG
MadgeMCParamRangeHandler(
LONG index,
WCHAR * param,
LONG * buffer,
LONG * bufferSize
);
LONG
MadgeMCQueryParameterNameHandler(
WCHAR * param,
WCHAR * buffer,
LONG bufferSize
);
#endif
/******** End of MDGNCDET.H ************************************************/