⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d100pr.h

📁 e100bex网卡驱动程序
💻 H
字号:
/****************************************************************************
** COPYRIGHT (C) 1994-1997 INTEL CORPORATION                               **
** DEVELOPED FOR MICROSOFT BY INTEL CORP., HILLSBORO, OREGON               **
** HTTP://WWW.INTEL.COM/                                                   **
** THIS FILE IS PART OF THE INTEL ETHEREXPRESS PRO/100B(TM) AND            **
** ETHEREXPRESS PRO/100+(TM) NDIS 5.0 MINIPORT SAMPLE DRIVER               **
****************************************************************************/

/****************************************************************************
Module Name:
    d100pr.h

This driver runs on the following hardware:
    - 82557/82558 based PCI 10/100Mb ethernet adapters
    (aka Intel EtherExpress(TM) PRO Adapters)

Environment:
    Kernel Mode - Or whatever is the equivalent on WinNT

Revision History
    - JCB 8/14/97 Example Driver Created
*****************************************************************************/

#ifndef _D100PR_H
#define _D100PR_H

//
// We define the external interfaces to the D100 driver.
// These routines are only external to permit separate
// compilation.  Given a truely fast compiler they could
// all reside in a single file and be static.
//


// =============================================
// Routines in d100.c
// =============================================

VOID
SoftwareReset(
              IN PD100_ADAPTER Adapter
              );

NTSTATUS
DriverEntry(
            IN PDRIVER_OBJECT DriverObject,
            IN PUNICODE_STRING RegistryPath
            );

BOOLEAN
D100CheckForHang(
                 IN NDIS_HANDLE MiniportAdapterContext
                 );

VOID
D100Halt(
         IN  NDIS_HANDLE MiniportAdapterContext
         );

VOID
D100ShutdownHandler(
                    IN  NDIS_HANDLE MiniportAdapterContext
                    );

NDIS_STATUS
D100Initialize(
               OUT PNDIS_STATUS OpenErrorStatus,
               OUT PUINT SelectedMediumIndex,
               IN PNDIS_MEDIUM MediumArray,
               IN UINT MediumArraySize,
               IN NDIS_HANDLE MiniportAdapterHandle,
               IN NDIS_HANDLE WrapperConfigurationContext
               );

NDIS_STATUS
D100Reset(
          OUT PBOOLEAN AddressingReset,
          IN  NDIS_HANDLE MiniportAdapterContext
          );

VOID
D100GetReturnedPackets(
                       IN NDIS_HANDLE  MiniportAdapterContext,
                       IN PNDIS_PACKET Packet
                       );

VOID
InitAndChainPacket(
                   IN OUT PD100_ADAPTER Adapter,
                   IN OUT PD100SwRfd SwRfdPtr
                   );

VOID
D100AllocateComplete(NDIS_HANDLE MiniportAdapterContext,
                     IN PVOID VirtualAddress,
                     IN PNDIS_PHYSICAL_ADDRESS PhysicalAddress,
                     IN ULONG Length,
                     IN PVOID Context);


VOID
D100ResetComplete(PVOID sysspiff1,
                  NDIS_HANDLE MiniportAdapterContext,
                  PVOID sysspiff2, PVOID sysspiff3);

NDIS_STATUS
AllocateRMD(ReceiveMemoryDescriptor *new,
            UINT count,
            ULONG_PTR Virt,
            NDIS_PHYSICAL_ADDRESS Phys,
            UINT Len);

PD100SwRfd
BuildSwRfd(PD100_ADAPTER Adapter,
           ReceiveMemoryDescriptor *newmem,
           UINT startpoint);

VOID
FreeSwRfd(D100_ADAPTER *adapter,
          D100SwRfd *rfd);

VOID
FreeRMD(D100_ADAPTER *adapter,
        ReceiveMemoryDescriptor *rmd);




// =============================================
// Routines in interrup.c
// =============================================

VOID
D100Isr(
        OUT PBOOLEAN InterruptRecognized,
        OUT PBOOLEAN QueueMiniportHandleInterrupt,
        IN NDIS_HANDLE MiniportAdapterContext
        );

VOID
D100HandleInterrupt(
                    IN NDIS_HANDLE MiniportAdapterContext
                    );

BOOLEAN
StartReceiveUnit(
                 IN PD100_ADAPTER Adapter
                 );

BOOLEAN
ProcessRXInterrupt(
                   IN PD100_ADAPTER Adapter
                   );




// =============================================
// Routines in request.c
// =============================================

NDIS_STATUS
D100ChangeMCAddresses(
                      IN PD100_ADAPTER Adapter,
                      IN UINT AddressCount
                      );


NDIS_STATUS
D100SetInformation(
                   IN NDIS_HANDLE MiniportAdapterContext,
                   IN NDIS_OID Oid,
                   IN PVOID InformationBuffer,
                   IN ULONG InformationBufferLength,
                   OUT PULONG BytesRead,
                   OUT PULONG BytesNeeded
                   );

NDIS_STATUS
D100QueryInformation(
                     IN NDIS_HANDLE MiniportAdapterContext,
                     IN NDIS_OID Oid,
                     IN PVOID InformationBuffer,
                     IN ULONG InformationBufferLength,
                     OUT PULONG BytesWritten,
                     OUT PULONG BytesNeeded
                     );

// =============================================
// Routines in routines.c
// =============================================

VOID
MdiWrite(
         IN PD100_ADAPTER Adapter,
         IN ULONG RegAddress,
         IN ULONG PhyAddress,
         IN USHORT DataValue
         );

VOID
MdiRead(
        IN PD100_ADAPTER Adapter,
        IN ULONG RegAddress,
        IN ULONG PhyAddress,
        IN OUT PUSHORT DataValue
        );

VOID
DumpStatsCounters(
                  IN PD100_ADAPTER Adapter
                  );

VOID
DoBogusMulticast(
                 IN PD100_ADAPTER Adapter
                 );

VOID
D100IssueSelectiveReset(
                        IN PD100_ADAPTER Adapter
                        );

BOOLEAN
D100SubmitCommandBlockAndWait(
                              IN PD100_ADAPTER Adapter
                              );

NDIS_MEDIA_STATE
GetConnectionStatus(
                    IN PD100_ADAPTER Adapter
                    );

// =============================================
// routines in send.c
// =============================================
VOID
D100MultipleSend(
                 IN  NDIS_HANDLE             MiniportAdapterContext,
                 IN  PPNDIS_PACKET           PacketArray,
                 IN  UINT                    NumberOfPackets
                 );

VOID
D100CopyFromPacketToBuffer(
                           IN PD100_ADAPTER Adapter,
                           IN PNDIS_PACKET Packet,
                           IN UINT BytesToCopy,
                           IN PCHAR DestBuffer,
                           IN PNDIS_BUFFER FirstBuffer,
                           OUT PUINT BytesCopied
                           );

BOOLEAN
ProcessTXInterrupt(
                   IN OUT PD100_ADAPTER Adapter
                   );

NDIS_STATUS
SetupNextSend(PD100_ADAPTER Adapter,
              PNDIS_PACKET Packet);

BOOLEAN
PrepareForTransmit(PD100_ADAPTER Adapter,
                   PNDIS_PACKET Packet,
                   PD100SwTcb SwTcb);

BOOLEAN
AcquireCoalesceBuffer(PD100_ADAPTER Adapter,
                      PD100SwTcb SwTcb);


BOOLEAN
TransmitCleanup(PD100_ADAPTER Adapter);

// =============================================
// routines in pci.c
// =============================================

USHORT
FindPciDevice50Scan(
                    IN PD100_ADAPTER Adapter,
                    IN USHORT     VendorID,
                    IN USHORT     DeviceID,
                    OUT PPCI_CARDS_FOUND_STRUC PciCardsFound
                    );

// =============================================
// routines in parse.c
// =============================================

NDIS_STATUS
ParseRegistryParameters(
                        IN PD100_ADAPTER Adapter,
                        IN NDIS_HANDLE ConfigHandle
                        );


// =============================================
// routines in physet.c
// =============================================

BOOLEAN
PhyDetect(
          IN PD100_ADAPTER Adapter
          );

VOID
ResetPhy(
         IN PD100_ADAPTER Adapter
         );

VOID
SelectPhy(
          IN PD100_ADAPTER Adapter,
          IN UINT SelectPhyAddress,
          IN BOOLEAN WaitAutoNeg
          );

BOOLEAN
SetupPhy(
         IN PD100_ADAPTER Adapter
         );

VOID
FindPhySpeedAndDpx(
                   IN PD100_ADAPTER Adapter,
                   IN UINT PhyId
                   );

VOID
ResetPhy(
         IN PD100_ADAPTER Adapter
         );




// =============================================
// routines in eeprom.c
// =============================================

VOID
D100UpdateChecksum(
                   IN PD100_ADAPTER Adapter,
                   IN ULONG CSRBaseIoAddress
                   );

USHORT
ReadEEprom(
           IN PD100_ADAPTER Adapter,
           IN USHORT Reg,
           IN ULONG CSRBaseIoAddress
           );

USHORT
MemReadEEprom(
              IN PD100_ADAPTER Adapter,
              IN USHORT Reg,
              IN PCSR_STRUC CSRVirtAddress
              );

VOID
ShiftOutBits(
             IN PD100_ADAPTER Adapter,
             IN USHORT data,
             IN USHORT count,
             IN ULONG CSRBaseIoAddress
             );

VOID
RaiseClock(
           IN PD100_ADAPTER Adapter,
           IN OUT USHORT *x,
           IN ULONG CSRBaseIoAddress
           );

VOID
LowerClock(
           IN PD100_ADAPTER Adapter,
           IN OUT USHORT *x,
           IN ULONG CSRBaseIoAddress
           );

USHORT
ShiftInBits(
            IN PD100_ADAPTER Adapter,
            IN ULONG CSRBaseIoAddress
            );

VOID
EEpromCleanup(
              IN PD100_ADAPTER Adapter,
              IN ULONG CSRBaseIoAddress
              );

USHORT
MemReadEEprom(
              IN PD100_ADAPTER Adapter,
              IN USHORT Reg,
              IN PCSR_STRUC CSRVirtAddress
              );

VOID
MemShiftOutBits(
                IN PD100_ADAPTER Adapter,
                IN USHORT data,
                IN USHORT count,
                IN PCSR_STRUC CSRVirtAddress
                );

VOID
MemRaiseClock(
              IN PD100_ADAPTER Adapter,
              IN OUT USHORT *x,
              IN PCSR_STRUC CSRVirtAddress
              );

VOID
MemLowerClock(
              IN PD100_ADAPTER Adapter,
              IN OUT USHORT *x,
              IN PCSR_STRUC CSRVirtAddress
              );

USHORT
MemShiftInBits(
               IN PD100_ADAPTER Adapter,
               IN PCSR_STRUC CSRVirtAddress
               );

VOID
MemEEpromCleanup(
                 IN PD100_ADAPTER Adapter,
                 IN PCSR_STRUC CSRVirtAddress
                 );



// =============================================
// routines in init.c
// =============================================

NDIS_STATUS
ClaimAdapter(
             IN OUT PD100_ADAPTER Adapter
             );

NDIS_STATUS
SetupAdapterInfo(
                 IN OUT PD100_ADAPTER Adapter
                 );

NDIS_STATUS
SetupSharedAdapterMemory(
                         IN PD100_ADAPTER Adapter
                         );

NDIS_STATUS
SelfTestHardware(
                 IN PD100_ADAPTER Adapter
                 );

VOID
SetupTransmitQueues(
                    IN OUT PD100_ADAPTER Adapter,
                    IN BOOLEAN DebugPrint
                    );

VOID
SetupReceiveQueues (
                    IN PD100_ADAPTER Adapter
                    );

BOOLEAN
InitializeAdapter(
                  IN PD100_ADAPTER Adapter
                  );

BOOLEAN
InitializeD100(
               IN PD100_ADAPTER Adapter
               );

BOOLEAN
Configure(
          IN PD100_ADAPTER Adapter
          );

BOOLEAN
SetupIAAddress(
               IN PD100_ADAPTER Adapter
               );

VOID
ClearAllCounters(
                 IN PD100_ADAPTER Adapter
                 );



#endif  //_D100PR_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -