DosPortAccess: Difference between revisions
Appearance
No edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
This call requests or releases access to ports for I/O privilege. | This call requests or releases access to ports for I/O privilege. | ||
Line 11: | Line 7: | ||
;Reserved (USHORT) - input : Must be set to zero. | ;Reserved (USHORT) - input : Must be set to zero. | ||
;TypeOfAccess (USHORT) - input : A request for or release of access to a port. | ;TypeOfAccess (USHORT) - input : A request for or release of access to a port. | ||
::0 - Request access | |||
::1 - Release access. | |||
; FirstPort (USHORT) - input : Starting (low) number in a contiguous range or a single port. | ; FirstPort (USHORT) - input : Starting (low) number in a contiguous range or a single port. | ||
; LastPort (USHORT) - input : Ending (high) number in a contiguous range or a single port. If only one port is being used, FirstPort and LastPort should both be set to this port. | ; LastPort (USHORT) - input : Ending (high) number in a contiguous range or a single port. If only one port is being used, FirstPort and LastPort should both be set to this port. | ||
==Return Code== | ==Return Code== | ||
;rc (USHORT) - return:Return code descriptions are: | |||
Return code descriptions are: | *0 NO_ERROR | ||
* 0 NO_ERROR | *5 ERROR_ACCESS_DENIED | ||
* 5 ERROR_ACCESS_DENIED | |||
==Remarks== | ==Remarks== | ||
Line 28: | Line 22: | ||
Applications that perform I/O to port(s) in IOPL segments must request port access from the operating system. | Applications that perform I/O to port(s) in IOPL segments must request port access from the operating system. | ||
An application with no IOPL segments that accesses a device through a device driver or by an interface package such as VIO, does not need to issue this call. The device driver or interface package is responsible for obtaining the necessary I/O access. | An application with no IOPL segments that accesses a device through a device driver or by an interface package such as VIO, does not need to issue this call. The device driver or interface package is responsible for obtaining the necessary I/O access. | ||
== | ==Bindings== | ||
===C | ===C=== | ||
<PRE> | <PRE> | ||
#define INCL_DOSDEVICES | #define INCL_DOSDEVICES | ||
Line 37: | Line 31: | ||
USHORT rc = DosPortAccess(Reserved, TypeOfAccess, FirstPort, LastPort); | USHORT rc = DosPortAccess(Reserved, TypeOfAccess, FirstPort, LastPort); | ||
USHORT | USHORT 0; /* 0 */ | ||
USHORT | USHORT TypeOfAccess; /* Request or release */ | ||
USHORT | USHORT FirstPort; /* First port number */ | ||
USHORT | USHORT LastPort; /* Last port number */ | ||
USHORT | USHORT rc; /* return code */ | ||
</PRE> | </PRE> | ||
===MASM | ===MASM=== | ||
<PRE> | <PRE> | ||
EXTRN DosPortAccess:FAR | EXTRN DosPortAccess:FAR | ||
Line 58: | Line 52: | ||
Returns WORD | Returns WORD | ||
</PRE> | </PRE> | ||
==Related Functions== | ==Related Functions== | ||
*[[DosCLIAccess]] | *[[DosCLIAccess]] | ||
[[Category:Dos]] | [[Category:Dos]] |
Revision as of 12:14, 24 November 2019
This call requests or releases access to ports for I/O privilege.
Syntax
DosPortAccess (Reserved, TypeOfAccess, FirstPort, LastPort)
Parameters
- Reserved (USHORT) - input
- Must be set to zero.
- TypeOfAccess (USHORT) - input
- A request for or release of access to a port.
- 0 - Request access
- 1 - Release access.
- FirstPort (USHORT) - input
- Starting (low) number in a contiguous range or a single port.
- LastPort (USHORT) - input
- Ending (high) number in a contiguous range or a single port. If only one port is being used, FirstPort and LastPort should both be set to this port.
Return Code
- rc (USHORT) - return
- Return code descriptions are:
- 0 NO_ERROR
- 5 ERROR_ACCESS_DENIED
Remarks
Note that CLI/STI privilege is also granted automatically. There is no need to make an additional call to DosCLIAccess.
Applications that perform I/O to port(s) in IOPL segments must request port access from the operating system.
An application with no IOPL segments that accesses a device through a device driver or by an interface package such as VIO, does not need to issue this call. The device driver or interface package is responsible for obtaining the necessary I/O access.
Bindings
C
#define INCL_DOSDEVICES USHORT rc = DosPortAccess(Reserved, TypeOfAccess, FirstPort, LastPort); USHORT 0; /* 0 */ USHORT TypeOfAccess; /* Request or release */ USHORT FirstPort; /* First port number */ USHORT LastPort; /* Last port number */ USHORT rc; /* return code */
MASM
EXTRN DosPortAccess:FAR INCL_DOSDEVICES EQU 1 PUSH WORD 0 ;Reserved (must be zero) PUSH WORD TypeOfAccess ;Request or release PUSH WORD FirstPort ;First port number PUSH WORD LastPort ;Last port number CALL DosPortAccess Returns WORD