Assembly 无法检索TCPDRV.DOS(Microsoft LAN Manager)的输入向量

Assembly 无法检索TCPDRV.DOS(Microsoft LAN Manager)的输入向量,assembly,network-programming,dos,Assembly,Network Programming,Dos,我正在寻找tcpdrv.dos的API文档。我发现的两个资源在如何检索驱动程序的调用向量方面存在冲突,而且两者似乎都不起作用 这两个参考资料都指出,您应该获取DOS Open命令(int21/ax=3D00h)返回的文件句柄,并将其馈送到以下文件中: mov bx, [file_handle] mov cx, 19 mov dx, offset request_block ; ds=_DATA mov ax, 4402h int 21h 其中,请求块的初始化如下所示: sock_ioctl

我正在寻找tcpdrv.dos的API文档。我发现的两个资源在如何检索驱动程序的调用向量方面存在冲突,而且两者似乎都不起作用

这两个参考资料都指出,您应该获取DOS Open命令(int21/ax=3D00h)返回的文件句柄,并将其馈送到以下文件中:

mov bx, [file_handle]
mov cx, 19
mov dx, offset request_block   ; ds=_DATA
mov ax, 4402h
int 21h
其中,请求块的初始化如下所示:

sock_ioctl_s        STRUCT
   func             byte    ?
   status           byte    ?
   signature        word    ?
   pad              word    ?
   vector           dword   ?
sock_ioctl_s        ENDS

.DATA
request_block       sock_ioctl_s  < 2, 0, 4F53h, 0, 0 >  ; source1
;request_block      sock_ioctl_s  < 0, 0, 4354h, 0, 0 >  ; source2
file_handle         dword   ?
sock\u ioctl\u s结构
func字节?
状态字节?
签名字?
便笺簿?
向量德沃德?
短袜末端
.数据
请求块套接字ioctl s<2,0,4F53h,0,0>;资料来源1
;请求块套接字ioctl s<0,04354H,0,0>;资料来源2
文件处理dword?
CV显示请求块从完全设置为0的DOS-I/O控制命令返回


想法?Microsoft的LAN Manager程序员参考资料中根本没有讨论TCP/IP驱动程序。

我怀疑TCPDRV.DOS没有公开定义的接口,只能在内部作为Microsoft的网络软件。如果你想做TCP/IP编程,我建议你使用像滑铁卢TCP/IP堆栈或mTCP这样的TCP/IP堆栈。我也很怀疑,但希望有第三方的东西。Freesock包是一组用于各种DOS网络栈的Pascal包装,其中包括一个用于LanMan的包,因此信息一定在某个地方。这适用于已经运行LanMan的系统,因此不能选择使用另一个堆栈。我提到的两个堆栈可以与Microsoft的网络客户端同时使用。请记住,MS-DOS是一个单任务操作系统,因此一次只能有一个应用程序使用网络接口,所以问题并不像您想象的那么大。看见