_outp _inp __asm can not work in X64 OS

Hello

I used function _outp,_inp,__asm in my driver.
In X86 OS,they are OK.
But in X64,they can not be compiled.Error is:
‘_outp’:identifier not found.
‘__asm’ keyword not supported on this architecture.
How solve this problem?

Thanks.
Any help is appreciated.
Best Regards
Frank

You should use the proper DDK functions - READ_PORT_xxx and
WRITE_PORT_xxx. See the DDK documention. Resorting to inline
assembler for this sort of thing was never recommended, going all the
way back to when NT supports MIPS and Alpha builds.

Mark.

At 10:24 25/08/2010, xxxxx@yahoo.com.cn wrote:

Hello

I used function _outp,_inp,__asm in my driver.
In X86 OS,they are OK.
But in X64,they can not be compiled.Error is:
‘_outp’:identifier not found.
‘__asm’ keyword not supported on this architecture.
How solve this problem?

Thanks.
Any help is appreciated.
Best Regards
Frank

Why are you using assembler in the first place? The WDK, beginning back when
it was called the DDK, has provided the macros required to access IO or
memory mapped registers; READ_PORT_UCHAR or READ_PORT_USHORT or
READ_PORT_ULONG. You really need to use those macros.

Gary G. Little
H (952) 223-1349
C (952) 454-4629
xxxxx@comcast.net

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.com.cn
Sent: Wednesday, August 25, 2010 4:25 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] _outp _inp __asm can not work in X64 OS

Hello

I used function _outp,_inp,__asm in my driver.
In X86 OS,they are OK.
But in X64,they can not be compiled.Error is:
‘_outp’:identifier not found.
‘__asm’ keyword not supported on this architecture.
How solve this problem?

Thanks.
Any help is appreciated.
Best Regards
Frank


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

> I used function _outp,_inp,__asm in my driver.

Forget _outp, use WRITE_PORT_UCHAR, this is the correct function.

__asm is just plain not supported in x64 WDK builds. Rewrite that code in C.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com

OK Thanks all.

The 64-bit compiler does not support embedded assembler, but as Gary points
out, there has never, ever, in the history of writing Windows device
drivers, been any need to use it to write to ports. This was almost
certainly an error of the original programmer, a failure to read the
documentation.

The assembly code should be removed from the source, completely, and
replaced with the correct DDI function calls as indicated in his message.
joe

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Gary G. Little
Sent: Wednesday, August 25, 2010 10:35 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] _outp _inp __asm can not work in X64 OS

Why are you using assembler in the first place? The WDK, beginning back when
it was called the DDK, has provided the macros required to access IO or
memory mapped registers; READ_PORT_UCHAR or READ_PORT_USHORT or
READ_PORT_ULONG. You really need to use those macros.

Gary G. Little
H (952) 223-1349
C (952) 454-4629
xxxxx@comcast.net

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.com.cn
Sent: Wednesday, August 25, 2010 4:25 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] _outp _inp __asm can not work in X64 OS

Hello

I used function _outp,_inp,__asm in my driver.
In X86 OS,they are OK.
But in X64,they can not be compiled.Error is:
‘_outp’:identifier not found.
‘__asm’ keyword not supported on this architecture.
How solve this problem?

Thanks.
Any help is appreciated.
Best Regards
Frank


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.