除了TNCB结构之外TLanaENum结构是另外一个比较重要的结构如下所示:(同样位于NB30.pas)
type
// Structure returned to the NCB command NCBENUM.
// On a system containing lana's 0, 2 and 3, a structure with
// length =3, lana[0]=0, lana[1]=2 and lana[2]=3 will be returned.
PLanaEnum = ^TLanaEnum;
TLanaEnum = packed record
length: Char; // Number of valid entries in lana[]
lana: array[0..MAX_LANA] of Char;
end;
其中,length成员指出本地机器共有多少个LANA编号;LANA成员代表由实际的LANA编号构成的一个数组。而length值指出LANA数组内有多少个元素会被填充LANA编号。
另外,需要说明的是,调用Netbios函数时,可以采用两种不同的方式,即同步方式和异步方式。在默认情况下,所有Netbios命令本身均是同步的。换言之,完成命令以前,会一直调用Netbios块。而对一个NCBLISTEN命令来说,当有一个客户机建立了连接,或发生某种类型的错误时,对Netbios的调用才会返回。要想异步调用一个命令,需要让Netbios命令同ASYNCH标志进行一次逻辑OR(或)运算。如指定了ASYNCH标志,那么必须在ncb_post字段中指定一个回调例程( Past Routine),或必须在ncb_event字段中指定一个事件句柄。执行一个异步命令时,从Netbios返回的值是NRC_ GOODRET(OxOO),但NCB_CMD_CPLT字段会设为NRC_PENDING(OxFF)。除此以外,Netbios函数还会将NCB结构的ncb_cmd_cplt一呐

本文介绍了如何使用Delphi通过TLanaENUM结构获取网卡物理地址,涉及NCBENUM和NCBRESET命令的详细步骤。在Netbios程序中,正确重置LANA编号以避免错误代码52。同时,讨论了ncb_callname字段的用途,包括最大会话数和Netbios名字数量的设置。
最低0.47元/天 解锁文章
795

被折叠的 条评论
为什么被折叠?



