OpenCBM
Macros | Enumerations | Functions
PortAccessNt4.c File Reference

Functions for communicating with the parallel port driver, NT4 version. More...

#include <initguid.h>
#include <wdm.h>
#include "cbm_driver.h"

Go to the source code of this file.

Macros

#define AdvancedEPPTests   1
 search for unusual EPPs More...
 

Enumerations

enum  lptMode {
  lptN_A = 0, lptSPP = 1, lptPS2 = 2, lptEPP = 3,
  lptECP = 4, lptEPPc = 5
}
 
enum  ecpMode {
  ecpNOECR = 0, ecpSTNDRD = 1, ecpBYTE = 2, ecpSTDFIFO = 3,
  ecpECPFIFO = 4, ecpEPP = 5, ecpRESVRD = 6, ecpFIFOTST = 7,
  ecpCONFIG = 8
}
 

Functions

NTSTATUS ParPortSetModeNt4 (PDEVICE_EXTENSION Pdx)
 Set the operational mode of the parallel port, NT4 version. More...
 
NTSTATUS ParPortUnsetModeNt4 (PDEVICE_EXTENSION Pdx)
 Unset the operational mode of the parallel port, NT4 version. More...
 
VOID cbmiec_udelay (IN ULONG howlong)
 Wait for a timeout. More...
 
NTSTATUS ParPortSetMode (PDEVICE_EXTENSION Pdx)
 Set the operational mode of the parallel port. More...
 
NTSTATUS ParPortUnsetMode (PDEVICE_EXTENSION Pdx)
 Unset the operational mode of the parallel port. More...
 

Detailed Description

Functions for communicating with the parallel port driver, NT4 version.



Author
Spiro Trikaliotis

Definition in file PortAccessNt4.c.

Macro Definition Documentation

#define AdvancedEPPTests   1

search for unusual EPPs

Set AdvancedEPPTests to 1 if you want to try searching for unusual EPPs But take notice that the functionality of this test is not guaranteed!

Definition at line 33 of file PortAccessNt4.c.

Enumeration Type Documentation

enum ecpMode

the available ecp modes

Enumerator
ecpNOECR 

no ECP-Port found

ecpSTNDRD 

standard mode

ecpBYTE 

BYTE mode

ecpSTDFIFO 

Standard FIFO mode

ecpECPFIFO 

ECP FIFO mode

ecpEPP 

EPP mode

ecpRESVRD 

reserved mode

ecpFIFOTST 

FIFO test mode

ecpCONFIG 

config mode

Definition at line 47 of file PortAccessNt4.c.

enum lptMode

the mode the parallel port is in

Enumerator
lptN_A 

no parallel port

lptSPP 

SPP parallel port

lptPS2 

PS2 parallel port

lptEPP 

EPP parallel port

lptECP 

ECP parallel port

lptEPPc 

EPP with special control word to enable

Definition at line 36 of file PortAccessNt4.c.

Function Documentation

VOID cbmiec_udelay ( IN ULONG  Howlong)

Wait for a timeout.

This function waits for a timeout. Waiting means that we want to have an exact timing, so don't give away the processor.

Parameters
HowlongHow long to wait (in us)

Definition at line 66 of file libiec/util.c.

References FUNC_ENTER, and FUNC_LEAVE.

Referenced by ParPortSetMode().

NTSTATUS ParPortSetMode ( PDEVICE_EXTENSION  Pdx)

Set the operational mode of the parallel port.

This function sets the operational mode of the parallel port.

Parameters
PdxPointer to a device extension which contains the DEVICE_OBJECT of the parallel port driver.

This function has to be balanced with a corresponding ParPortUnsetMode()

This function must be run at IRQL == PASSIVE_LEVEL.

Definition at line 532 of file PortAccessNt4.c.

References cbmiec_udelay(), FUNC_ENTER, ParPortSetModeNt4(), and ParPortSetModeWdm().

NTSTATUS ParPortSetModeNt4 ( PDEVICE_EXTENSION  Pdx)

Set the operational mode of the parallel port, NT4 version.

This function sets the operational mode of the parallel port.

Parameters
PdxPointer to a device extension which contains the DEVICE_OBJECT of the parallel port driver.

This function has to be balanced with a corresponding ParPortUnsetModeNt4()

This function must be run at IRQL == PASSIVE_LEVEL.

Definition at line 445 of file PortAccessNt4.c.

References DBG_PREFIX, DBG_PRINT, ecpBYTE, ecpNOECR, FUNC_ENTER, lptECP, lptN_A, lptSPP, and WRITE_PORT_UCHAR.

Referenced by ParPortSetMode().

NTSTATUS ParPortUnsetMode ( PDEVICE_EXTENSION  Pdx)

Unset the operational mode of the parallel port.

This function unsets the operational mode of the parallel port.

Parameters
PdxPointer to a device extension which contains the DEVICE_OBJECT of the parallel port driver.

This function mustn't be called without a prior call to ParPortSetMode()

This function must be run at IRQL == PASSIVE_LEVEL.

Definition at line 568 of file PortAccessNt4.c.

References FUNC_ENTER, ParPortUnsetModeNt4(), and ParPortUnsetModeWdm().

NTSTATUS ParPortUnsetModeNt4 ( PDEVICE_EXTENSION  Pdx)

Unset the operational mode of the parallel port, NT4 version.

This function unsets the operational mode of the parallel port.

Parameters
PdxPointer to a device extension which contains the DEVICE_OBJECT of the parallel port driver.

This function mustn't be called without a prior call to ParPortSetModeNt4()

This function must be run at IRQL == PASSIVE_LEVEL.

Definition at line 496 of file PortAccessNt4.c.

References DBG_PREFIX, DBG_PRINT, FUNC_ENTER, and lptECP.

Referenced by ParPortUnsetMode().