home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / lan / lanstat / netbios.pas < prev    next >
Pascal/Delphi Source File  |  1989-03-08  |  2KB  |  92 lines

  1. unit netbios;
  2.  
  3. interface
  4.  
  5. {$I NETBIOS.DEF}
  6.  
  7. function  AddUniqueName(Name : NetName; var NameNum : byte) : byte;
  8. function  AddGroupName(Name : NetName; var NameNum : byte) : byte;
  9. function  DeleteName(Name : NetName) : byte;
  10.  
  11. function  CancelNcb(var UserNcb : Ncb) : byte;
  12.  
  13. procedure ClearNcb(var Ncb : Ncb);
  14. procedure CallNetBIOS(var Ncb : Ncb);
  15.  
  16. implementation
  17.  
  18. uses dos;
  19.  
  20. function AddName(Name : NetName; Group : boolean; var NameNum : byte) : byte;
  21. var
  22.     AddNameNcb : Ncb;
  23. begin
  24.     ClearNcb(AddNameNcb);
  25.     if Group then
  26.     AddNameNcb.Command := NBAddGroupName
  27.     else
  28.     AddNameNcb.Command := NBAddName;
  29.     AddNameNcb.LocName := Name;
  30.     CallNetBios(AddNameNcb);
  31.     if AddNameNcb.RetCode = 0 then
  32.     NameNum := AddNameNcb.NcbNum
  33.     else
  34.     NameNum := BadNameNum;
  35.     AddName := AddNameNcb.RetCode;
  36. end;
  37.  
  38. function AddUniqueName(Name : NetName; var NameNum : byte) : byte;
  39. begin
  40.     AddUniqueName := AddName(Name, FALSE, NameNum);
  41. end;
  42.  
  43. function AddGroupName(Name : NetName; var NameNum : byte) : byte;
  44. begin
  45.     AddGroupName := AddName(Name, TRUE, NameNum);
  46. end;
  47.  
  48. function DeleteName(Name : NetName) : byte;
  49. var
  50.     DeleteNameNcb : Ncb;
  51. begin
  52.     ClearNcb(DeleteNameNcb);
  53.     DeleteNameNcb.Command := NBDeleteName;
  54.     DeleteNameNcb.LocName := Name;
  55.     CallNetBios(DeleteNameNcb);
  56.     DeleteName := DeleteNameNcb.RetCode;
  57. end;
  58.  
  59. function CancelNcb(var UserNcb : Ncb) : byte;
  60. var
  61.     CancelNcbNcb : Ncb;
  62. begin
  63.     ClearNcb(CancelNcbNcb);
  64.     CancelNcbNcb.Command := NBCancel;
  65.     CancelNcbNcb.Buffer := @UserNcb;
  66.     CallNetBios(CancelNcbNcb);
  67.     CancelNcb := CancelNcbNcb.RetCode;
  68. end;
  69.  
  70. procedure ClearNcb(var Ncb : Ncb);
  71. begin
  72.     FillChar(Ncb, sizeof(Ncb), chr(0));
  73. end;
  74.  
  75. procedure CallNetBIOS(var Ncb : Ncb);
  76. const
  77.     NetBIOSInt    = $5C;
  78. var
  79.     Regs : Registers;
  80. begin
  81.     Regs.ES := Seg(Ncb);
  82.     Regs.BX := Ofs(Ncb);
  83.     Regs.AX := 0;
  84.     Regs.CX := 0;
  85.     Regs.DX := 0;
  86.     Regs.SI := 0;
  87.     Regs.DI := 0;
  88.     Intr(NetBIOSInt, Regs);
  89. end;
  90.  
  91. end.
  92.