home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
lan
/
lanstat
/
netbios.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1989-03-08
|
2KB
|
92 lines
unit netbios;
interface
{$I NETBIOS.DEF}
function AddUniqueName(Name : NetName; var NameNum : byte) : byte;
function AddGroupName(Name : NetName; var NameNum : byte) : byte;
function DeleteName(Name : NetName) : byte;
function CancelNcb(var UserNcb : Ncb) : byte;
procedure ClearNcb(var Ncb : Ncb);
procedure CallNetBIOS(var Ncb : Ncb);
implementation
uses dos;
function AddName(Name : NetName; Group : boolean; var NameNum : byte) : byte;
var
AddNameNcb : Ncb;
begin
ClearNcb(AddNameNcb);
if Group then
AddNameNcb.Command := NBAddGroupName
else
AddNameNcb.Command := NBAddName;
AddNameNcb.LocName := Name;
CallNetBios(AddNameNcb);
if AddNameNcb.RetCode = 0 then
NameNum := AddNameNcb.NcbNum
else
NameNum := BadNameNum;
AddName := AddNameNcb.RetCode;
end;
function AddUniqueName(Name : NetName; var NameNum : byte) : byte;
begin
AddUniqueName := AddName(Name, FALSE, NameNum);
end;
function AddGroupName(Name : NetName; var NameNum : byte) : byte;
begin
AddGroupName := AddName(Name, TRUE, NameNum);
end;
function DeleteName(Name : NetName) : byte;
var
DeleteNameNcb : Ncb;
begin
ClearNcb(DeleteNameNcb);
DeleteNameNcb.Command := NBDeleteName;
DeleteNameNcb.LocName := Name;
CallNetBios(DeleteNameNcb);
DeleteName := DeleteNameNcb.RetCode;
end;
function CancelNcb(var UserNcb : Ncb) : byte;
var
CancelNcbNcb : Ncb;
begin
ClearNcb(CancelNcbNcb);
CancelNcbNcb.Command := NBCancel;
CancelNcbNcb.Buffer := @UserNcb;
CallNetBios(CancelNcbNcb);
CancelNcb := CancelNcbNcb.RetCode;
end;
procedure ClearNcb(var Ncb : Ncb);
begin
FillChar(Ncb, sizeof(Ncb), chr(0));
end;
procedure CallNetBIOS(var Ncb : Ncb);
const
NetBIOSInt = $5C;
var
Regs : Registers;
begin
Regs.ES := Seg(Ncb);
Regs.BX := Ofs(Ncb);
Regs.AX := 0;
Regs.CX := 0;
Regs.DX := 0;
Regs.SI := 0;
Regs.DI := 0;
Intr(NetBIOSInt, Regs);
end;
end.