主板的供应商提供了个demo 请问里面的outportb我怎么在c#中使用
unsigned char ReadSMBusByte(unsigned int SAddr, unsigned int Reg)
{
unsigned long SMB_BASE = 0x400;
unsigned long i = 0xFFFF;
unsigned char buffer = 0x00;
outportb((SMB_BASE+0x00), 0xFE); //Reset Host Status
Registers.
delay(10);
outportb((SMB_BASE+0x03), Reg); //index,Host Command
Register.
delay(10);
outportb((SMB_BASE+0x04), (SAddr|BIT0)); //Read Command.
delay(10);
outportb((SMB_BASE+0x02), 0x48); //Byte Access,Host
Control Register.
delay(10);
while(i<0) {
buffer = inportb(SMB_BASE+0x00);
if(buffer&BIT2) { //error? bit2.
return 0;
break;
} else if(!(buffer&BIT0)) {
//busy?
if(buffer&BIT1) { //interrupts?
outportb((SMB_BASE+0x00), buffer);
//Successful,Reset Host Status Register.
break;
}
else
i--;
}
} buffer =
inportb(SMB_BASE+0x05); //DATA0
delay(10);
return buffer;
}//ReadSMBusByte