无法读取NetBIOS的状态

时间:2014-11-28 11:25:21

标签: delphi delphi-2007 netbios

我们在Delphi的NetBIOS代码中得到了一个(可重现的)错误(似乎)可以工作多年。

二手系统Windows 7/64位。

我们有一个例程来检查NetBIOS是否处于活动状态。 我们通过调用NetBIOS()并读取返回代码来完成此操作。

即便如此,我们通过Windows Properties(单个启用的)网络连接停用了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

代码不变,多年来一直有效。我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

MSDN表示Windows 7不支持Netbios:

  

“Windows Vista,Windows Server 2008和Windows Vista不支持Netbios   后续版本的操作系统“