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.
 
 
 
 
 
 

424 lines
5.7 KiB

/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
Elnk3.h
Abstract:
Ndis 3.0 MAC driver for the 3Com Etherlink III
Author:
Brian Lieuallen BrianLie 07/21/92
Environment:
Kernel Mode Operating Systems : NT
Revision History:
Portions borrowed from ELNK3 driver by
Earle R. Horton (EarleH)
--*/
#define STATIC static
//
// This constant is used for places where NdisAllocateMemory
// needs to be called and the HighestAcceptableAddress does
// not matter.
//
extern NDIS_PHYSICAL_ADDRESS HighestAcceptableMax;
//
// NDIS 3.0 entry functions
//
BOOLEAN
Elnk3CheckForHang(
IN NDIS_HANDLE MiniportAdapterContext
);
NDIS_STATUS
Elnk3QueryInformation(
IN NDIS_HANDLE MiniportContext,
IN NDIS_OID Oid,
IN PVOID InfoBuffer,
IN ULONG BytesLeft,
OUT PULONG BytesNeeded,
OUT PULONG BytesWritten
);
NDIS_STATUS
Elnk3SetInformation(
IN NDIS_HANDLE MiniportAdapterContext,
IN NDIS_OID Oid,
IN PVOID InformationBuffer,
IN ULONG InformationBufferLength,
OUT PULONG BytesRead,
OUT PULONG BytesNeeded
);
NDIS_STATUS
Elnk3Initialize(
OUT PNDIS_STATUS OpenErrorStatus,
OUT PUINT SelectedMediumIndex,
IN PNDIS_MEDIUM MediumArray,
IN UINT MediumArraySize,
IN NDIS_HANDLE MiniportAdapterHandle,
IN NDIS_HANDLE WrapperConfigurationContext
);
VOID
Elnk3Halt(
IN NDIS_HANDLE MiniportAdapterContext
);
VOID
Elnk3Shutdown(
IN NDIS_HANDLE MiniportAdapterContext
);
NDIS_STATUS
Elnk3Reset(
OUT PBOOLEAN AddressResetting,
IN NDIS_HANDLE MacBindingHandle
);
NDIS_STATUS
Elnk3MacSend(
IN NDIS_HANDLE MacBindingHandle,
IN PNDIS_PACKET pPacket,
IN UINT Flags
);
NDIS_STATUS
Elnk3TransferData(
OUT PNDIS_PACKET Packet,
OUT PUINT BytesTransferred,
IN NDIS_HANDLE MacBindingHandle,
IN NDIS_HANDLE MacReceiveContext,
IN UINT ByteOffset,
IN UINT BytesToTransfer
);
NDIS_STATUS
Elnk3Reconfigure(
OUT PNDIS_STATUS OpenErrorStatus,
IN NDIS_HANDLE MiniportAdapterContext,
IN NDIS_HANDLE ConfigurationHanel
);
VOID
Elnk3AdjustMaxLookAhead(
IN PELNK3_ADAPTER pAdapter
);
//
// Contained in Interrup.c
//
VOID
Elnk3Isr(
OUT PBOOLEAN InterruptRecognized,
OUT PBOOLEAN QueueDpc,
IN NDIS_HANDLE Context
);
VOID
Elnk3IsrDpc(
IN NDIS_HANDLE DeferredContext // will be a pointer to the adapter block
);
VOID
Elnk3EnableInterrupts(
IN NDIS_HANDLE Context
);
VOID
Elnk3DisableInterrupts(
IN NDIS_HANDLE Context
);
//
// Contained in CARD.C
//
BOOLEAN
CardTest (
OUT PELNK3_ADAPTER pAdapter
);
//
// Contained in send.c
//
PNDIS_PACKET
RemovePacketFromQueue(
IN PPACKET_QUEUE pQueue
);
BOOLEAN
MovePacketToCard(
IN PELNK3_ADAPTER pAdapter
);
//
// Contained in receive.c
//
BOOLEAN
CheckForReceives(
IN PELNK3_ADAPTER pAdapter
);
//
// Contained in config.c
//
NDIS_STATUS
Elnk3ReadRegistry(
IN PELNK3_ADAPTER pAdapter,
IN NDIS_HANDLE ConfigurationHandle
);
BOOLEAN
CardEnable(
IN PELNK3_ADAPTER pAdapter
);
BOOLEAN
CardReInit(
IN PELNK3_ADAPTER pAdapter
);
VOID
CardReset(
IN PELNK3_ADAPTER pAdapter
);
//
// Elnk3 starts here
//
BOOLEAN
HandleXmtInterrupts(
PELNK3_ADAPTER pAdapter
);
BOOLEAN
Elnk3EarlyReceive(
PELNK3_ADAPTER pAdapter
);
BOOLEAN
Elnk3IndicatePackets(
PELNK3_ADAPTER pAdapter
);
BOOLEAN
Elnk3IndicatePackets2(
PELNK3_ADAPTER pAdapter
);
BOOLEAN
CardInit(
IN PELNK3_ADAPTER pAdapter
);
UINT
Elnk3FindIsaBoards(
IN PMAC_BLOCK pMacBlock
);
BOOLEAN
Elnk3ActivateIsaBoard(
IN PMAC_BLOCK pMacBlock,
IN PELNK3_ADAPTER pAdapter,
IN NDIS_HANDLE AdapterHandle,
IN PUCHAR TranslatedIoBase,
IN ULONG ConfigIoBase,
IN OUT PULONG Irq,
IN ULONG Transceiver,
IN NDIS_HANDLE ConfigurationHandle
);
VOID
Elnk3EnableIsaBoard(
PVOID TranslatedIoBase
);
VOID
Elnk3GetEisaResources(
IN PELNK3_ADAPTER pAdapter,
IN OUT PULONG Irq
);
VOID
CardReStart(
IN PELNK3_ADAPTER pAdapter
);
VOID
CardReStartDone(
IN PELNK3_ADAPTER pAdapter
);
VOID
Elnk3AdjustMaxLookAhead(
IN PELNK3_ADAPTER Adapter
);
BOOLEAN
ReadStationAddress(
OUT PELNK3_ADAPTER pNewAdapt
);
USHORT
CardSetMulticast(
PELNK3_ADAPTER pAdapter
);
BOOLEAN
CardInit(
IN PELNK3_ADAPTER pAdapter
);
VOID
ELNK3WriteIDSequence(
IN PVOID IdPort
);
USHORT
ELNK3ContentionTest(
IN PVOID IdPort,
IN UCHAR EEPromWord
);
USHORT
ELNK3ReadEEProm(
IN PELNK3_ADAPTER Adapter,
IN UCHAR EEPromWord
);
VOID
Elnk3ProgramEEProm(
PELNK3_ADAPTER Adapter,
USHORT AddressConfig,
USHORT ResourceConfig
);
VOID
Elnk3WriteEEProm(
IN PELNK3_ADAPTER Adatper,
IN UCHAR EEPromWord,
IN USHORT Value
);
VOID
Elnk3WaitEEPromNotBusy(
PELNK3_ADAPTER pAdapter
);
NDIS_STATUS
Elnk3Init3C589(
IN OUT PELNK3_ADAPTER Adapter
);
NDIS_STATUS
Elnk3InitializeAdapter(
IN PMAC_BLOCK pMac,
IN PELNK3_ADAPTER pAdapter,
IN NDIS_HANDLE ConfigurationHandle
);
NDIS_STATUS
Elnk3AllocateBuffers(
IN PELNK3_ADAPTER pAdapter,
IN NDIS_HANDLE NdisAdapterHandle,
BOOLEAN Allocate
);
VOID
Elnk3InitAdapterBlock(
IN PELNK3_ADAPTER pAdapter
);
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
);