en:docs:fapi:dosportaccess

This is an old revision of the document!


This is part of Family API which allow to create dual-os version of program runs under OS/2 and DOS

Note: This is legacy API call. It is recommended to use 32-bit equivalent

2021/09/17 04:47 · prokushev · 0 Comments
2021/08/20 03:18 · prokushev · 0 Comments

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

<PRE> #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 */ </PRE>

MASM

<PRE> 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 </PRE>