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

📄 e100bexoids.cpp

📁 nmE100bex网卡驱动程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// E100bexOids.cpp: Definition of supported OIDs data.
//
//=============================================================================
//
// Compuware Corporation
// NuMega Lab
// 9 Townsend West
// Nashua, NH 03060  USA
//
// Copyright (c) 2000 Compuware Corporation. All Rights Reserved.
// Unpublished - rights reserved under the Copyright laws of the
// United States.
//
//=============================================================================
//
// Portions copied from Microsoft Windows 2000 DDK sample driver containing the
// following copyright
//
/****************************************************************************
** 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               **
****************************************************************************/


#include <kndis.h>
#include "E100bexInc.h"


/////////////////////////////////////////////////////////////////////////////
// List of supported OIDs. 
// NOTES 
//	1. The static variable name is a standardized ("reserved") name in KNDIS
//  2. No compile-time provisions are made to guarantee the acsending order
//	   of the array. There is a run-time assertion in DBG builds, though.
/////////////////////////////////////////////////////////////////////////////
NDIS_OID E100bexAdapter::sm_OID_GEN_SUPPORTED_LIST[] = {
	OID_GEN_SUPPORTED_LIST, 
	OID_GEN_HARDWARE_STATUS, 
	OID_GEN_MEDIA_SUPPORTED, 
	OID_GEN_MEDIA_IN_USE, 
	OID_GEN_MAXIMUM_LOOKAHEAD, 
	OID_GEN_MAXIMUM_FRAME_SIZE, 
	OID_GEN_LINK_SPEED, 
	OID_GEN_TRANSMIT_BUFFER_SPACE, 
	OID_GEN_RECEIVE_BUFFER_SPACE, 
	OID_GEN_TRANSMIT_BLOCK_SIZE, 
	OID_GEN_RECEIVE_BLOCK_SIZE, 
	OID_GEN_VENDOR_ID, 
	OID_GEN_VENDOR_DESCRIPTION, 
	OID_GEN_CURRENT_PACKET_FILTER, 
	OID_GEN_CURRENT_LOOKAHEAD, 
	OID_GEN_DRIVER_VERSION, 
	OID_GEN_MAXIMUM_TOTAL_SIZE, 
	OID_GEN_PROTOCOL_OPTIONS, 
	OID_GEN_MAC_OPTIONS, 
	OID_GEN_MEDIA_CONNECT_STATUS, 
	OID_GEN_MAXIMUM_SEND_PACKETS, 
	OID_GEN_VENDOR_DRIVER_VERSION, 
	OID_GEN_SUPPORTED_GUIDS,
	OID_GEN_XMIT_OK, 
	OID_GEN_RCV_OK, 
	OID_GEN_XMIT_ERROR, 
	OID_GEN_RCV_ERROR, 
	OID_GEN_RCV_NO_BUFFER, 
    OID_802_3_PERMANENT_ADDRESS,
    OID_802_3_CURRENT_ADDRESS,
    OID_802_3_MULTICAST_LIST,
    OID_802_3_MAXIMUM_LIST_SIZE,
    OID_802_3_RCV_ERROR_ALIGNMENT,
    OID_802_3_XMIT_ONE_COLLISION,
    OID_802_3_XMIT_MORE_COLLISIONS,
#if (KNDIS_PNP_AWARE && E100BEX_SUPPORT_PNP)
	OID_PNP_CAPABILITIES,
	OID_PNP_SET_POWER,
	OID_PNP_QUERY_POWER,
// This NIC does not have Wake-up capabilities so these are commented out.
//	OID_PNP_ADD_WAKE_UP_PATTERN,
//  OID_PNP_REMOVE_WAKE_UP_PATTERN,
//	OID_PNP_WAKE_UP_PATTERN_LIST,
//	OID_PNP_ENABLE_WAKE_UP,
#endif // KNDIS_PNP_AWARE

};


/////////////////////////////////////////////////////////////////////////////
// OID Query Map
/////////////////////////////////////////////////////////////////////////////
//{{AFX_DNW

// turn on optimization to compile out dead handler references
#pragma optimize("g", on)	
BEGIN_OID_QUERY_MAP(E100bexAdapter)

	// GEN
	OID_QUERY_ENTRY( OID_GEN_HARDWARE_STATUS)
	OID_QUERY_ENTRY( OID_GEN_MEDIA_SUPPORTED)
	OID_QUERY_ENTRY( OID_GEN_MEDIA_IN_USE)
	OID_QUERY_ENTRY( OID_GEN_MAXIMUM_LOOKAHEAD)
	OID_QUERY_ENTRY( OID_GEN_MAXIMUM_FRAME_SIZE)
	OID_QUERY_ENTRY( OID_GEN_LINK_SPEED)

	OID_QUERY_ENTRY( OID_GEN_TRANSMIT_BUFFER_SPACE)
	OID_QUERY_ENTRY( OID_GEN_RECEIVE_BUFFER_SPACE)

	OID_QUERY_ENTRY( OID_GEN_TRANSMIT_BLOCK_SIZE)
	OID_QUERY_ENTRY( OID_GEN_RECEIVE_BLOCK_SIZE)
	OID_QUERY_ENTRY( OID_GEN_VENDOR_ID)
	OID_QUERY_ENTRY( OID_GEN_VENDOR_DESCRIPTION)
	OID_QUERY_ENTRY( OID_GEN_CURRENT_PACKET_FILTER)
	OID_QUERY_ENTRY( OID_GEN_CURRENT_LOOKAHEAD)
	OID_QUERY_ENTRY( OID_GEN_DRIVER_VERSION)
	OID_QUERY_ENTRY( OID_GEN_VENDOR_DRIVER_VERSION)
	OID_QUERY_ENTRY( OID_GEN_MAXIMUM_TOTAL_SIZE)
	OID_QUERY_ENTRY( OID_GEN_MAC_OPTIONS)
	OID_QUERY_ENTRY( OID_GEN_MEDIA_CONNECT_STATUS)
	OID_QUERY_ENTRY( OID_GEN_MAXIMUM_SEND_PACKETS)

	OID_QUERY_ENTRY( OID_GEN_SUPPORTED_GUIDS)

    OID_QUERY_ENTRY( OID_GEN_XMIT_OK)
    OID_QUERY_ENTRY( OID_GEN_RCV_OK)
    OID_QUERY_ENTRY( OID_GEN_XMIT_ERROR)
    OID_QUERY_ENTRY( OID_GEN_RCV_ERROR)
    OID_QUERY_ENTRY( OID_GEN_RCV_NO_BUFFER)

	// 802_3
    OID_QUERY_ENTRY( OID_802_3_PERMANENT_ADDRESS)
    OID_QUERY_ENTRY( OID_802_3_CURRENT_ADDRESS)
    OID_QUERY_ENTRY( OID_802_3_MULTICAST_LIST)
    OID_QUERY_ENTRY( OID_802_3_MAXIMUM_LIST_SIZE)
    OID_QUERY_ENTRY( OID_802_3_RCV_ERROR_ALIGNMENT)
    OID_QUERY_ENTRY( OID_802_3_XMIT_ONE_COLLISION)
    OID_QUERY_ENTRY( OID_802_3_XMIT_MORE_COLLISIONS)

	// PNP
#if (KNDIS_PNP_AWARE && E100BEX_SUPPORT_PNP)
	OID_QUERY_ENTRY( OID_PNP_QUERY_POWER)
// This NIC does not have Wake-up capabilities so these are commented out.
//	OID_QUERY_ENTRY( OID_PNP_ENABLE_WAKE_UP	)
#endif // KNDIS_PNP_AWARE

END_OID_QUERY_MAP()
#pragma optimize("", on)	// restore default optimization
//}}AFX_DNW

///////////////////////////////////////////////////////////////////////////
// OID Set Map
/////////////////////////////////////////////////////////////////////////////
//{{AFX_DNW

// turn on optimization to compile out dead handler references
#pragma optimize("g", on)	
BEGIN_OID_SET_MAP(E100bexAdapter)

	// GEN
	OID_SET_ENTRY( OID_GEN_CURRENT_LOOKAHEAD)
	OID_SET_ENTRY( OID_GEN_CURRENT_PACKET_FILTER)
	OID_SET_ENTRY( OID_GEN_PROTOCOL_OPTIONS)

	// 802.3
    OID_SET_ENTRY( OID_802_3_MULTICAST_LIST)

	// PNP
#if (KNDIS_PNP_AWARE && E100BEX_SUPPORT_PNP)
    OID_SET_ENTRY( OID_PNP_SET_POWER)
// This NIC does not have Wake-up capabilities so these are commented out.
//    OID_SET_ENTRY( OID_PNP_ADD_WAKE_UP_PATTERN)
//    OID_SET_ENTRY( OID_PNP_REMOVE_WAKE_UP_PATTERN)
//    OID_SET_ENTRY( OID_PNP_ENABLE_WAKE_UP)
#endif // KNDIS_PNP_AWARE

END_OID_SET_MAP()
#pragma optimize("", on)	// restore default optimization
//}}AFX_DNW

///////////////////////////////////////////////////////////////////////////
// OID Handlers
/////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////
// OID Query Handlers

inline NDIS_HARDWARE_STATUS E100bexAdapter::getOID_GEN_HARDWARE_STATUS(void)
{
	return NdisHardwareStatusReady;
}

inline ULONG  E100bexAdapter::getOID_802_3_XMIT_ONE_COLLISION(void)
{
	return m_Stats->XmtSingleCollision;
}

inline ULONG  E100bexAdapter::getOID_802_3_XMIT_MORE_COLLISIONS(void)
{
	return m_Stats->XmtMultCollisions;
}

inline ULONG  E100bexAdapter::getOID_802_3_RCV_ERROR_ALIGNMENT(void)
{
	return m_Stats->RcvAlignmentErrors;
}

NDIS_STATUS  E100bexAdapter::getOID_802_3_MULTICAST_LIST
	(ETHERNET_ADDRESS *, IN OUT PULONG ByteCount, OUT PULONG BytesNeeded)
{
	return NDIS_STATUS_NOT_SUPPORTED;
}


inline ULONG  E100bexAdapter::getOID_802_3_MAXIMUM_LIST_SIZE(void)
{
	return MAX_MULTICAST_ADDRESSES;
}

inline ETHERNET_ADDRESS   E100bexAdapter::getOID_802_3_CURRENT_ADDRESS(void)
{
	return m_AiNodeAddress;
}

inline ETHERNET_ADDRESS   E100bexAdapter::getOID_802_3_PERMANENT_ADDRESS(void)
{
	return m_pCard->ReadPermanentNodeAddress();
}

inline ULONG  E100bexAdapter::getOID_GEN_RCV_NO_BUFFER(void)
{
	return m_Stats->RcvResourceErrors;
}

inline ULONG  E100bexAdapter::getOID_GEN_RCV_ERROR(void)
{
	return m_Stats->RcvCrcErrors 
		+ m_Stats->RcvAlignmentErrors
		+ m_Stats->RcvResourceErrors
		+ m_Stats->RcvOverrunErrors
		+ m_Stats->RcvShortFrames;
}

inline ULONG  E100bexAdapter::getOID_GEN_RCV_OK(void)
{
	return m_Stats->RcvGoodFrames;
}

inline ULONG  E100bexAdapter::getOID_GEN_XMIT_ERROR(void)
{
	return m_Stats->XmtMaxCollisions 
		+ m_Stats->XmtUnderruns 
		+ m_Stats->XmtLostCRS 
		+ m_Stats->XmtLateCollisions;
}

inline ULONG  E100bexAdapter::getOID_GEN_XMIT_OK(void)
{
	return m_Stats->XmtGoodFrames;
}

inline ULONG  E100bexAdapter::getOID_GEN_MAXIMUM_SEND_PACKETS(void)
{
	return MAX_ARRAY_SEND_PACKETS;
}

inline NDIS_MEDIA_STATE  E100bexAdapter::getOID_GEN_MEDIA_CONNECT_STATUS(void)
{
    if ( m_LinkIsActive != m_pCard->GetConnectionStatus() )
    {
        // if status has changed
        switch ( m_LinkIsActive )
        {
        case NdisMediaStateConnected:           
			// changing from connected
            m_LinkIsActive = NdisMediaStateDisconnected;
            break;

        case NdisMediaStateDisconnected:        
			// changing from disconnected
            m_LinkIsActive = NdisMediaStateConnected;
            break;
        }
    }

	return m_LinkIsActive;
}

inline ULONG  E100bexAdapter::getOID_GEN_MAC_OPTIONS(void)
{
	return m_uMacOptions;
}

inline ULONG  E100bexAdapter::getOID_GEN_MAXIMUM_TOTAL_SIZE(void)
{
	return MAXIMUM_ETHERNET_PACKET_SIZE;
}

inline USHORT E100bexAdapter::getOID_GEN_DRIVER_VERSION(void)
{

⌨️ 快捷键说明

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