我们在 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:
"Netbios is not supported on Windows Vista, Windows Server 2008, and subsequent versions of the operating system"
关于delphi - 无法读取 NetBIOS 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27187664/