当前位置:  技术问答>linux和unix

怎样调用Dos中断得到网卡号?急!

    来源: 互联网  发布时间:2014-11-07

    本文导语:  | 若是PCI的网卡直接调用int 1ah,的各种功能。仔细读一下相关的代码即可。 给你段代码,看看即可。 /**************************************         PCI function code ***************************************/ #define PCI_FUNCTION_ID  ...


|
若是PCI的网卡直接调用int 1ah,的各种功能。仔细读一下相关的代码即可。
给你段代码,看看即可。

/**************************************
        PCI function code
***************************************/
#define PCI_FUNCTION_ID                 0xB1
#define PCI_BIOS_PRESENT                0x01
#define FIND_PCI_DEVICE                 0x02
#define FIND_PCI_CLASS_CODE             0xB103
#define NETWORK_CLASS                   0x20000
#define RTVID                                   0x10EC
#define RTDID                                   0x8139
#define READ_CONFIG_BYTE        0xB108
#define READ_CONFIG_WORD        0xB109
#define WRITE_CONFIG_BYTE       0xB10B

/**************************************
Find 8139 in PCI bus
***************************************/
BOOL    Find8139(void)
{
WORD    index=-1;
Find8139Loop:
index++;
if(index>=16)   return 0;
asm{
mov     si,index
mov     ax,FIND_PCI_CLASS_CODE
                mov     ecx,NETWORK_CLASS
                int     1Ah
                jc      Find8139Loop

                mov si,ax
                mov     ax,WRITE_CONFIG_BYTE;
                mov     cx,RTDID
                mov     dx,RTVID
mov     di,0x0D
mov     cl,32
int     1Ah

                mov     ax,WRITE_CONFIG_BYTE;
                mov     di,4
mov     cl,7
int     1Ah

mov     ax,READ_CONFIG_WORD
                mov     cx,RTDID
mov     di,0x12         //Get high word of I/O address
                int     1Ah

                mov     ax,READ_CONFIG_WORD;
mov     cx,RTDID;
                mov     di,0x10         //Get low word of I/O address
                int     1Ah
                and     cx,0xfffe
mov     IOADDR,cx

                mov     ax,READ_CONFIG_WORD;
mov     cx,RTDID;
mov     di,0x3C         //Get IRQ number
                int     1Ah
                xor     ch,ch
mov     IRQ,cx
}
return  1;
}



或者自己控制PCI寄存器0xcf8,0xcfc等直接去读取其配置。

如果是ISA的则需要自己都网卡的EEPROM找到相应的位置即可。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问调用那个方法能够得到变量类型的返回值?
  • 如何用系统调用得到当前终端的信息??
  • 用accept系统调用得到的socket能用在readv和writev上吗?
  • 多线程调用localtime有时得到的数据不正确如何解决
  • 我如何在代码里通过调用"ping"命令得到它的exit code
  • 请问在内核态调用什么函数得到mac地址?
  • AIX 5.3下调用windows 2000上的exe程序,且AIX下需要得到windows下程序执行的返回结果
  • 如何得到一个格林威治时间,返回32位的一个整数。有这样的函数调用么?
  • 问一个简单问题,A,B是两个JSP,A调用B,如何在B中得到A的地址?在线等●●●
  • 请问下,如果对一个程序性能进行分析,比如得到每个函数调用时间(我看别人做过,忘记了)
  • go和python调用其它程序并得到程序输出
  • 请问 怎么样在C中调用一个 shell,得到shell中一个参数的值
  • 怎么得到线程调用的返回值
  • 请问怎么才C语言中得到system调用的内核命令的返回信息???????????????????
  • 在Java中调用一个方法如何得到多个返回值?
  • linux下,在调用main()函数之前怎样得到命令行参数argc和argv??『比如在main()前面构造全局对象时』
  • 关于在java代码中调用本地方法(如何得到所需的dll文件???)
  • 关于select()系统调用的疑问,希望得到大家的指教!!
  • Help!BCB中如何调用一个Java Class且得到其返回值?
  • 在Python中使用SWIG调用C和C++程序
  • Linux添加系统调用时如何调用C语言库函数
  • sessionbean调用entitybean的时候还需要像Client一样远程调用对象吗??
  • system()调用 与 ioctl()调用
  • linux中为什么系统调用比普通函数调用更费时间?
  • 如何在LINUX下用一个普通文件调用一个自己编写的调用系统的文件
  • 可不可以用java调用其他语言的编译结果?(好象asp调用com那样)
  • 为什么我的BEAN 在WIN2000中调用没有问题,但在LINUX中调用有问题
  • 为什么守护进程调用调用getlogin会失败呢?
  • 用RMI进行远程对象调用的时候,可不可以实现多个调用远程对象的并发操作
  • 关于jsp调用javabean的问题!调用是成功了,但是有小问题!
  • ioctl中能不能调用generic_file_read呀?我一调用就不动了


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3