Struct ecb { unsigned long...

Struct ecb { unsigned long...Struct ecb

{

unsigned long far *Link;

unsigned long far *ESRAddress;

unsigned char InUse;

unsigned char CCode;

unsigned int Socket;

unsigned long IPXWorkspace;

unsigned char DriverWorkspace[12];

unsigned char ImmAddress[6];

unsigned int FragmentCnt;

void far *Address;

unsigned int Size;

} ECB;

//проверка загрузки драйвера IPX

int LoadDriverIPX () {

int temp;

asm {

mov ax,7A00h

int 2Fh

and ax,00ffh

mov temp, ax

}

if (temp==0xFF) return 1; else return 0; }

//Открыть временный сокет

int OpenSocket () {

int temp;

asm {

mov dx,5555h

mov bx,0000h

mov al,00h

int 7Ah

and ax,00ffh

mov temp, ax

}

return temp; }

//Закрыть сокет

int CloseSocket () {

int temp;

asm {

mov dx,5555h

mov bx,0001h

int 7Ah

and ax,00ffh

mov temp, ax

}

return temp; }

//Инициализация для отправки

void InitSend () {

ECB. ESRAddress=0;

ECB. Socket=0×5555;

ECB. FragmentCnt=1;

ECB. Address=&IPX;

ECB. Size=sizeof (IPX);

IPX. PacketType=4;

IPX. DestNetwork=0;

IPX. DestSocket=0×5555; }

//Отправка пакета

int SendPack () {

int i;

union REGS inregs, outregs;

struct SREGS segregs;

InitSend ();

for (i=0;i<6;i++)

{ ECB. ImmAddress[i]=0xff;

IPX. DestNode[i]=0xff;

}

inregs. x.bx=0×0003;

segregs. es=_DS;

inregs. x.si=(unsigned)&ECB;

int86x (0x7a,&inregs,&outregs,&segregs);

if ((ECB.

Связанные записи

Оставить комментарий

Это не спам.
сделано dimoning.ru