问关于netbios的addname的问题(学生,帮帮忙吧)
USGC NetbiosAddName(char *Name)
{
struct Ncb AddNameNcb;
ClearNcb(&AddNameNcb);
AddNameNcb.NcbCommand=NETBIOS_ADD_NAME;
strncpy(AddNameNcb.NcbName,Name,strlen(Name));
AddNameNcb.NcbName[15]=char(SESSION_NAME_TERMINATOR);
AddNameNcb.NcbLanaNum=0;//这里硬性指定好像不太对,但是不知道怎么办
//下面就是NetbiosRequest的内容
//union REGS InRegs;
//segread(&SegRegs);
//SegRegs.es=FP_SEG(&AddNameNcb);
//InRegs.x.bx=FP_OFF(&AddNameNcb);
//int j;
//j=int86x(0x5C,&InRegs,&InRegs,&SegRegs);//这个返回值不知道是什么意思
NetbiosRequest(&AddNameNcb);
//书上说执行了netbios的addname命令以后,他会自动将分配的名字号返回给ncb的
//NcbNum,但是如下面的代码,AddNameNcb.NcbNum这个老是为0
if(AddNameNcb.NcbCmdCplt!=0)
{
printf("ERROR.Could not add name");
return ILLEGAL_NAME_NUM;//这个define为0
//exit(1);
}
else
{
//不明白,程序显示的是下面这个提示,那就说明netbios命令
//成功执行了阿,那 AddNameNcb.NcbNum怎么还是0呢?
printf("successful add name %d",AddNameNcb.NcbNum);
return AddNameNcb.NcbNum;
}
}
想了半天都不明白是怎么回事?书上说直接就能返回的,但是这样好象添加名字没有
成功阿?各位大哥帮帮忙吧:)
这里真的有好多好心人的,上次好心的人们还帮我解决了一个dns的问题:)