我们在德尔菲的NetBIOS代码中发现了一个(可复制的)错误,这个bug (似乎)工作了很多年。
使用的系统Windows 7/ 64位。
我们有一个检查NetBIOS是否活动的例程。为此,我们调用NetBIOS()并读取返回代码。
即便如此,我们还是通过Windows (单一启用的)网络连接关闭了NetBIOS,对Netbios(lRec)的调用返回NRC_GOODRET。
这是重要的代码片段:
Getmem(lNCB, SizeOf(TNCB));
try
Fillchar(lNCB^, SizeOf(TNCB), 0);
Getmem(lLenum, SizeOf(TLanaEnum));
try
Fillchar(lLenum^, SizeOf(TLanaEnum), 0);
Getmem(lAdapter, SizeOf(TAdapterStatus));
try
Fillchar(lAdapter^, SizeOf(TAdapterStatus), 0);
lLenum.Length := chr(0);
lNCB.ncb_command := chr(NCBENUM); // List NetBIOS
lNCB.ncb_buffer := Pointer(lLenum);
lNCB.ncb_length := SizeOf(lLenum);
if Netbios(lNCB) = Char(NRC_GOODRET) then
... We get here, even when NetBIOS is deactiated代码没有变化,多年来一直有效。我错过了什么吗?
发布于 2014-11-28 12:41:14
MSDN说,Windows 7不支持Netbios:
Windows Vista、Windows Server 2008和操作系统的后续版本不支持Netbios
https://stackoverflow.com/questions/27187664
复制相似问题