我们在Delphi的NetBIOS代码中遇到了一个(可重现的)错误,该错误(似乎)可以工作多年。
使用的系统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
该代码未更改,并且已使用多年。我错过了什么?
最佳答案
MSDN说Windows 7不支持Netbios:
“ Windows Vista,Windows Server 2008和Windows Server 2008不支持Netbios。
操作系统的后续版本”