You never address physical hardware with a pointer. You need to look at
the State device code of something like the WDM version of the PCIDRV
sample. Bottom line you do not manipulate either the physical address
or the interrupt directly, you use the mapped resources provided by the
state device request.
Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
-----Original Message-----
From: xxxxx@gmail.com [mailto:xxxxx@gmail.com]
Posted At: Thursday, March 18, 2010 1:06 PM
Posted To: ntdev
Conversation: How to configure a ISA hardware in the “LogConfig”
Subject: How to configure a ISA hardware in the “LogConfig”The question continues.
I have modify my ISA driver like a Pnp dirver according to some good
heart
in this forum.Then , I make a ISA.inf file for my ISA.sys, and installed into the
XP. Then
,there is a new prolbem, The XP does gives the ISA card the memory
resource I
configured in the ISA.inf.The hardware resource I set in the ISA.inf is like these:
ConfigPriority=DESIRED
MemConfig=d800-dB00 ; MK_FP(0xd800,0x0000);
IRQconfig=11 ; 11=0XbThe following source code is a test program for this card runs under
the
Windows 98, and I think the most crucial information isunsigned char far *v1=MK_FP(0xd800,0x0000);
setvect(0x0b,addr);
Both the Windows 98 and XP runs at the same PC .
/*************************************************************/
void interrupt load_image(void);
void interrupt (*old)(void);
void install(void interrupt(*addr)(void));unsigned char far *v1=MK_FP(0xd800,0x0000); static unsigned char
v2[512];
static char flag = 0;int main(void)
{
FILE *fp = fopen(“c:\test.raw”, “wb”);
int count = 1024;
int loop = 0;
flag = 0;old = getvect(0x0b);
install(load_image);while(loop < count)
{if(flag)
{
disable();
/*install(old);*/
fwrite(v2, sizeof(char), 512, fp);
loop++;
/*install(load_image);*/
enable();
/*printf(“Loop = %d\n”, loop);*/
}
}install(old);
fclose(fp);
}
void interrupt load_image(void)
{
int x;
flag = 0;
disable();for(x=0;x<512;x++)
{
v2=*(v1+x);
}outportb(0x20,0x20);
flag = 1;
enable();
}void install(void interrupt (*addr)())
{
disable();
setvect(0x0b,addr);
outportb(0x21,0);
enable();
}/*************************************************************/
__________ Information from ESET Smart Security, version of virus
signature
database 4955 (20100318) __________The message was checked by ESET Smart Security.