46 DBG_ASSERT(Pdx->ParallelPortIsLocked == FALSE);
53 if (NT_SUCCESS(ntStatus))
60 if (NT_SUCCESS(ntStatus))
74 if (NT_SUCCESS(ntStatus))
76 Pdx->ParallelPortIsLocked = TRUE;
92 if (!NT_SUCCESS(ntStatus))
106 if (NT_SUCCESS(ntStatus) && !Pdx->DoNotReleaseBus)
111 FUNC_LEAVE_NTSTATUS(ntStatus);
133 DBG_ASSERT(Pdx->ParallelPortIsLocked == TRUE);
135 Pdx->ParallelPortIsLocked = FALSE;
139 if (!Pdx->DoNotReleaseBus)
150 FUNC_LEAVE_NTSTATUS_CONST(STATUS_SUCCESS);
184 Pdx->ParallelPortLock = TRUE;
186 FUNC_LEAVE_NTSTATUS_CONST(STATUS_SUCCESS);
213 Pdx->ParallelPortLock = FALSE;
215 FUNC_LEAVE_NTSTATUS_CONST(STATUS_SUCCESS);
BOOLEAN cbm_isr(IN PKINTERRUPT Interrupt, IN PVOID Pdx)
Interrupt Service Routine (ISR)
NTSTATUS cbm_unlock_parport(IN PDEVICE_EXTENSION Pdx)
Unlock the parallel port for the driver.
NTSTATUS cbm_lock(IN PDEVICE_EXTENSION Pdx)
Lock the parallel port for the driver.
NTSTATUS ParPortSetMode(PDEVICE_EXTENSION Pdx)
Set the operational mode of the parallel port.
NTSTATUS cbm_lock_parport(IN PDEVICE_EXTENSION Pdx)
Lock the parallel port for the driver.
NTSTATUS cbmiec_init(IN PDEVICE_EXTENSION Pdx)
Initialize the IEC bus.
Definitions for the libiec library.
NTSTATUS cbm_unlock(IN PDEVICE_EXTENSION Pdx)
Unlock the parallel port for the driver.
VOID cbmiec_release_bus(IN PDEVICE_EXTENSION Pdx)
Release the IEC bus.
NTSTATUS ParPortFree(PDEVICE_EXTENSION Pdx)
Free a parallel port after using it.
NTSTATUS ParPortUnsetMode(PDEVICE_EXTENSION Pdx)
Unset the operational mode of the parallel port.
VOID cbm_init_registry(IN PUNICODE_STRING RegistryPath, IN PDEVICE_EXTENSION Pdx)
Initialize from registry.
Defining OpenCBM version.
Definitions for the opencbm driver.
NTSTATUS ParPortAllocate(PDEVICE_EXTENSION Pdx)
Allocate a parallel port for using it.
NTSTATUS ParPortAllocInterrupt(PDEVICE_EXTENSION Pdx, PKSERVICE_ROUTINE Isr)
Allocate an interrupt routine for a parallel port.
NTSTATUS ParPortFreeInterrupt(PDEVICE_EXTENSION Pdx)
Free an interrupt routine for a parallel port after using it.