zoukankan      html  css  js  c++  java
  • NetBios 的结构体详解

    NetBios 的结构体详解

      NetBIOS是早期的局域网传输协议。

    1、结构体。

      

    2、命令 NetBIOS命令的使用方式有两种,即等待和非等待(或称为同步与异步)方式。

      如果命令码的高阶位是0时是等待方式,命令将阻止提交命令的应用程序继续执行,直到该NetBIOS命令执行完毕后才允许这个应用程序继续执行。NetBIOS每次只能处理一个等待方式命令。

       如果命令码的高阶位是二进制1时则是非等待方式,命令由NetBIOS在内部排队,并不阻止提交命令的应用程序继续执行。应用程序可通过对命令结束标志字段值的轮询来了解命令执行的状态(详见命令结束字段介绍)。命令执行完毕后,最终的返回码存放在Ncb结构的命令结束标志字段中。NetBIOS每次可以挂起几个非等待方式命令。

    3、命令结束标志 NetBIOS驱动程序利用该字段来表明异步命令已完成。起先,当应用程序提交一条异步命令时,NetBIOS将置该字段值为FFh。待命令执行完毕后,再将最终值填入该字段。也就是说,提交了一条非等待命令后,应用程序可以监视(轮询)该字段的取值以了解命令是否完毕,直到其值不再是FFh为止。

    4、返回码 命令提交给NetBIOS驱动程序后,该命令的成功与否即在该字段中反映出来。若返回码字段值为00h,则表示命令成功。对于异步NetBIOS命令NetBIOS将立即在返回码字段中返回值FFh,表明该命令已经排队,即将执行。命令执行完毕后,该字段将置成最终的返回码。

    5、LANA编号 一台工作站上可能有不止一个LANA(LAN-Adapter)卡或网络协议(或传输驱动程序),所以Ncb中的LANA编号字段是用来指明应用程序想使用哪一个网络适配器上的哪个网络协议的。该字段称为LAN适配器号或LANA号,LANA编号在0~9之间。

      

      注意:只有基于相同NetBIOS协议的程序才能相互通信。 基于此,在设计程序时,服务器应用程序应对每个LANA编号上的客户机连接进行监听;客户机上的应用程序需要通过本机安装的每个LANA编号尝试进行连接。

    6、POST例程地址 在提交异步命令时,应用程序可以设置该字段。在MS-DOS中,应用程序将后处理例程的地址填在该字段中。所谓后处理例程,即命令执行完毕后NetBIOS驱动程序将要调用的例程。

    7、事件句柄 在提交异步命令时,应用程序可以设置该字段。该域用于存放后处理例程的句柄。 注意:当命令域的设置使用ASYNCH(异步)标志时,该域的设置与POST例程地址域的设置互斥,即其中必须有一个域的设置为0,而另一个为非0值。

    参考:

    1、http://www.cnblogs.com/tianya2543/p/3888907.html

    2、https://msdn.microsoft.com/en-us/library/bb870902(v=vs.85).aspx

  • 相关阅读:
    String的本质是一个char*,只是以类的形式提供,使用起来比较方便
    感觉技术停滞时,该怎么办?(离开舒适区,刻意练习)
    网盘和云存储的区别(面向用户,产品形态,文件组织形式,功能侧重,一共4点区别)
    压力负载测试工具
    模型配置方式实现爬虫
    jquery Deferred
    Server是如何完成针对请求的监听、接收与响应1
    asp.net core 使用 Redis 和 Protobuf
    带进度条的文件上传
    ASP.NET Core Authorization
  • 原文地址:https://www.cnblogs.com/tekkaman/p/6123320.html
Copyright © 2011-2022 走看看