NetBIOS编程:Windows NT环境下的深入探索
1. 异步命令基础
NetBIOS的异步命令执行在网络编程中具有重要地位。在执行异步命令时, ncb_cmd_cplt 字段初始会被填充为255(FFh)。NetBIOS驱动会保存指向NCB的指针,以便在异步命令完成时更新 ncb_cmd_cplt 字段。应用程序可以定期检查提交的NCB的 ncb_cmd_cplt 字段状态,以此来检测异步命令是否完成。当命令完成或出错时, ncb_cmd_cplt 字段会被设置为除FFh之外的最终返回码。
在Windows/MS - DOS环境中,从NCB的地址被传递给NetBIOS函数执行异步命令开始,到该异步命令完成或中止,应用程序不应影响NCB数据结构,并且NCB必须在内存中锁定,直至异步命令完成。
异步命令在完成或被取消之前会一直处于挂起状态。其超时值由会话建立时设置的发送/接收超时决定,与同步命令的超时设置相同。使用异步命令的优势在于应用程序不会因命令执行而阻塞,还可以使用NetBIOS的取消(NCB.CANCEL)命令取消异步命令,这为应用程序提供了极大的灵活性。此外,应用程序可以提交多个异步命令,每个异步命令都必须有自己的NCB和相关缓冲区(如果有),这一特性允许用户实现能够异步处理多个网络操作的应用程序。
2. Windows NT对NetBIOS的支持
Windows NT为MS - DOS、Windows(16位)、OS/2和Win32应用程序提供了NetBIOS编程支持。具体来说,它支持MS - DOS程
超级会员免费看
订阅专栏 解锁全文
5

被折叠的 条评论
为什么被折叠?



