除了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;
(1)申请分配一个TNCB结构。
(2)将该TNCB结构变量初始化成O。
(3)将该TNCB结构变量的ncb_command字段设为NCBENUM。
(4)为ncb_buffer字段分配一个LANA_ENUM结构。
(5)将ncb_lengrh字段设为LANA_ENUM结构的长度。
(6)以该TNCB结构变童为参数调用Netbios函数。
(7)返回常数NRC一GOODRET,表示操作成功。
对一个设计良好的Netbios程序来说,必须重置计划使用的每个LANA编号,否则,对Netbios的其他调用就会返回错误代码52(即NRC_ ENVNOTDEF)。一旦拥有一个LANA_ENUM结构,并有来自LanaEnum的LANA编号,便可针对结构中的每个LANA编号,调用NCBRESET命令来重置它们。具体步骤如下:
(1)申请分配一个TNCB结构。
(2)将该TNCB结构变量初始化成0
(3)将该TNCB给构变量的ncb_command字段设为NCBRESET。
(4)将ncb_lana_num字段设为需要重置的LANA编号。
(5)将nb_callname字符字段设为需要要使用的特定Netbios伪坏境参数。
(6)以该TNCB结构变量为参数调用Netbios函数。
(7)返回常数NRC_GOODRET,表示操作成功。
对于前面所说的ncb_callname字段说明以下几点需要补充:
.ncb_callname字段的字符0用于指定可同时进行的最大会话数。通常,操作系统会强制使用一个此最大值的默认值。例如,Windows NT 4.0的最大狱认值为64个并发会话。
.ncb_callname字段的字符2用于指定可为每个LANA增加的最大Netbios名字数量。
同样,操作系统也会强加一个默认的最大值。
.ncb_callname字段的字符3(用于Netbios客户机)是一个布尔类型的备。通过将此参数设为TRUE,一个客户机便能将机器名作为自己的Netbios进程名使用。因此,那个客户机可与一个服务器建立连接,并在不允许任何其他连接的前提下,向其发送数据。这一选项有效缩短了初始化时间。而假如将一个Netbios名字加入本地名字表,那么必须为此付出相应的代价。