mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 13:45:56 +00:00
[FLOPPY]
Formatting only, no code changes. svn path=/trunk/; revision=51410
This commit is contained in:
parent
057f42a554
commit
1e27c057e4
10 changed files with 1936 additions and 1884 deletions
|
@ -56,9 +56,9 @@ KSEMAPHORE QueueSemaphore;
|
||||||
* CSQ Callbacks
|
* CSQ Callbacks
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI CsqRemoveIrp(PIO_CSQ UnusedCsq,
|
VOID NTAPI
|
||||||
PIRP Irp)
|
CsqRemoveIrp(PIO_CSQ UnusedCsq, PIRP Irp)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Remove an IRP from the queue
|
* FUNCTION: Remove an IRP from the queue
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -73,10 +73,9 @@ VOID NTAPI CsqRemoveIrp(PIO_CSQ UnusedCsq,
|
||||||
RemoveEntryList(&Irp->Tail.Overlay.ListEntry);
|
RemoveEntryList(&Irp->Tail.Overlay.ListEntry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PIRP NTAPI CsqPeekNextIrp(PIO_CSQ UnusedCsq,
|
PIRP NTAPI
|
||||||
PIRP Irp,
|
CsqPeekNextIrp(PIO_CSQ UnusedCsq, PIRP Irp, PVOID PeekContext)
|
||||||
PVOID PeekContext)
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Find the next matching IRP in the queue
|
* FUNCTION: Find the next matching IRP in the queue
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -103,9 +102,9 @@ PIRP NTAPI CsqPeekNextIrp(PIO_CSQ UnusedCsq,
|
||||||
return CONTAINING_RECORD(IrpQueue.Flink, IRP, Tail.Overlay.ListEntry);
|
return CONTAINING_RECORD(IrpQueue.Flink, IRP, Tail.Overlay.ListEntry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI CsqAcquireLock(PIO_CSQ UnusedCsq,
|
VOID NTAPI
|
||||||
PKIRQL Irql)
|
CsqAcquireLock(PIO_CSQ UnusedCsq, PKIRQL Irql)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Acquire the queue lock
|
* FUNCTION: Acquire the queue lock
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -118,9 +117,9 @@ VOID NTAPI CsqAcquireLock(PIO_CSQ UnusedCsq,
|
||||||
KeAcquireSpinLock(&IrpQueueLock, Irql);
|
KeAcquireSpinLock(&IrpQueueLock, Irql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI CsqReleaseLock(PIO_CSQ UnusedCsq,
|
VOID NTAPI
|
||||||
KIRQL Irql)
|
CsqReleaseLock(PIO_CSQ UnusedCsq, KIRQL Irql)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Release the queue lock
|
* FUNCTION: Release the queue lock
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -133,9 +132,9 @@ VOID NTAPI CsqReleaseLock(PIO_CSQ UnusedCsq,
|
||||||
KeReleaseSpinLock(&IrpQueueLock, Irql);
|
KeReleaseSpinLock(&IrpQueueLock, Irql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI CsqCompleteCanceledIrp(PIO_CSQ UnusedCsq,
|
VOID NTAPI
|
||||||
PIRP Irp)
|
CsqCompleteCanceledIrp(PIO_CSQ UnusedCsq, PIRP Irp)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Complete a canceled IRP
|
* FUNCTION: Complete a canceled IRP
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -153,9 +152,9 @@ VOID NTAPI CsqCompleteCanceledIrp(PIO_CSQ UnusedCsq,
|
||||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI CsqInsertIrp(PIO_CSQ UnusedCsq,
|
VOID NTAPI
|
||||||
PIRP Irp)
|
CsqInsertIrp(PIO_CSQ UnusedCsq, PIRP Irp)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Queue an IRP
|
* FUNCTION: Queue an IRP
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
|
|
@ -38,22 +38,21 @@ extern LIST_ENTRY IrpQueue;
|
||||||
extern KSPIN_LOCK IrpQueueLock;
|
extern KSPIN_LOCK IrpQueueLock;
|
||||||
extern KSEMAPHORE QueueSemaphore;
|
extern KSEMAPHORE QueueSemaphore;
|
||||||
|
|
||||||
VOID NTAPI CsqInsertIrp(PIO_CSQ Csq,
|
VOID NTAPI
|
||||||
PIRP Irp);
|
CsqInsertIrp(PIO_CSQ Csq, PIRP Irp);
|
||||||
|
|
||||||
VOID NTAPI CsqRemoveIrp(PIO_CSQ Csq,
|
VOID NTAPI
|
||||||
PIRP Irp);
|
CsqRemoveIrp(PIO_CSQ Csq, PIRP Irp);
|
||||||
|
|
||||||
PIRP NTAPI CsqPeekNextIrp(PIO_CSQ Csq,
|
PIRP NTAPI
|
||||||
PIRP Irp,
|
CsqPeekNextIrp(PIO_CSQ Csq, PIRP Irp, PVOID PeekContext);
|
||||||
PVOID PeekContext);
|
|
||||||
|
|
||||||
VOID NTAPI CsqAcquireLock(PIO_CSQ Csq,
|
VOID NTAPI
|
||||||
PKIRQL Irql);
|
CsqAcquireLock(PIO_CSQ Csq, PKIRQL Irql);
|
||||||
|
|
||||||
VOID NTAPI CsqReleaseLock(PIO_CSQ Csq,
|
VOID NTAPI
|
||||||
KIRQL Irql);
|
CsqReleaseLock(PIO_CSQ Csq, KIRQL Irql);
|
||||||
|
|
||||||
VOID NTAPI CsqCompleteCanceledIrp(PIO_CSQ Csq,
|
VOID NTAPI
|
||||||
PIRP Irp);
|
CsqCompleteCanceledIrp(PIO_CSQ Csq, PIRP Irp);
|
||||||
|
|
||||||
|
|
|
@ -61,11 +61,9 @@ static ULONG gNumberOfControllers = 0;
|
||||||
static KEVENT QueueThreadTerminate;
|
static KEVENT QueueThreadTerminate;
|
||||||
static PVOID QueueThreadObject;
|
static PVOID QueueThreadObject;
|
||||||
|
|
||||||
|
|
||||||
static VOID NTAPI MotorStopDpcFunc(PKDPC UnusedDpc,
|
static VOID NTAPI
|
||||||
PVOID DeferredContext,
|
MotorStopDpcFunc(PKDPC UnusedDpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
|
||||||
PVOID SystemArgument1,
|
|
||||||
PVOID SystemArgument2)
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Stop the floppy motor
|
* FUNCTION: Stop the floppy motor
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -94,8 +92,9 @@ static VOID NTAPI MotorStopDpcFunc(PKDPC UnusedDpc,
|
||||||
KeSetEvent(&ControllerInfo->MotorStoppedEvent, EVENT_INCREMENT, FALSE);
|
KeSetEvent(&ControllerInfo->MotorStoppedEvent, EVENT_INCREMENT, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI StartMotor(PDRIVE_INFO DriveInfo)
|
VOID NTAPI
|
||||||
|
StartMotor(PDRIVE_INFO DriveInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Start the motor, taking into account proper handling of the timer race
|
* FUNCTION: Start the motor, taking into account proper handling of the timer race
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -132,8 +131,9 @@ VOID NTAPI StartMotor(PDRIVE_INFO DriveInfo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI StopMotor(PCONTROLLER_INFO ControllerInfo)
|
VOID NTAPI
|
||||||
|
StopMotor(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Stop all motors on the controller
|
* FUNCTION: Stop all motors on the controller
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -159,8 +159,9 @@ VOID NTAPI StopMotor(PCONTROLLER_INFO ControllerInfo)
|
||||||
ControllerInfo->StopDpcQueued = TRUE;
|
ControllerInfo->StopDpcQueued = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI WaitForControllerInterrupt(PCONTROLLER_INFO ControllerInfo)
|
VOID NTAPI
|
||||||
|
WaitForControllerInterrupt(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Wait for the controller to interrupt, and then clear the event
|
* FUNCTION: Wait for the controller to interrupt, and then clear the event
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -211,8 +212,9 @@ static NTSTATUS NTAPI CreateClose(PDEVICE_OBJECT DeviceObject,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static NTSTATUS NTAPI Recalibrate(PDRIVE_INFO DriveInfo)
|
static NTSTATUS NTAPI
|
||||||
|
Recalibrate(PDRIVE_INFO DriveInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Start the recalibration process
|
* FUNCTION: Start the recalibration process
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -280,8 +282,9 @@ static NTSTATUS NTAPI Recalibrate(PDRIVE_INFO DriveInfo)
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI ResetChangeFlag(PDRIVE_INFO DriveInfo)
|
NTSTATUS NTAPI
|
||||||
|
ResetChangeFlag(PDRIVE_INFO DriveInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Reset the drive's change flag (as reflected in the DIR)
|
* FUNCTION: Reset the drive's change flag (as reflected in the DIR)
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -365,8 +368,9 @@ NTSTATUS NTAPI ResetChangeFlag(PDRIVE_INFO DriveInfo)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static VOID NTAPI Unload(PDRIVER_OBJECT DriverObject)
|
static VOID NTAPI
|
||||||
|
Unload(PDRIVER_OBJECT DriverObject)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Unload the driver from memory
|
* FUNCTION: Unload the driver from memory
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -418,8 +422,9 @@ static VOID NTAPI Unload(PDRIVER_OBJECT DriverObject)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static NTSTATUS NTAPI ConfigCallback(PVOID Context,
|
static NTSTATUS NTAPI
|
||||||
|
ConfigCallback(PVOID Context,
|
||||||
PUNICODE_STRING PathName,
|
PUNICODE_STRING PathName,
|
||||||
INTERFACE_TYPE BusType,
|
INTERFACE_TYPE BusType,
|
||||||
ULONG BusNumber,
|
ULONG BusNumber,
|
||||||
|
@ -570,9 +575,9 @@ static NTSTATUS NTAPI ConfigCallback(PVOID Context,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static BOOLEAN NTAPI Isr(PKINTERRUPT Interrupt,
|
static BOOLEAN NTAPI
|
||||||
PVOID ServiceContext)
|
Isr(PKINTERRUPT Interrupt, PVOID ServiceContext)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Interrupt service routine for the controllers
|
* FUNCTION: Interrupt service routine for the controllers
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -619,11 +624,9 @@ static BOOLEAN NTAPI Isr(PKINTERRUPT Interrupt,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI DpcForIsr(PKDPC UnusedDpc,
|
VOID NTAPI
|
||||||
PVOID Context,
|
DpcForIsr(PKDPC UnusedDpc, PVOID Context, PVOID SystemArgument1, PVOID SystemArgument2)
|
||||||
PVOID SystemArgument1,
|
|
||||||
PVOID SystemArgument2)
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION: This DPC gets queued by every ISR. Does the real per-interrupt work.
|
* FUNCTION: This DPC gets queued by every ISR. Does the real per-interrupt work.
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -654,8 +657,9 @@ VOID NTAPI DpcForIsr(PKDPC UnusedDpc,
|
||||||
KeSetEvent(&ControllerInfo->SynchEvent, EVENT_INCREMENT, FALSE);
|
KeSetEvent(&ControllerInfo->SynchEvent, EVENT_INCREMENT, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static NTSTATUS NTAPI InitController(PCONTROLLER_INFO ControllerInfo)
|
static NTSTATUS NTAPI
|
||||||
|
InitController(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Initialize a newly-found controller
|
* FUNCTION: Initialize a newly-found controller
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -810,8 +814,9 @@ static NTSTATUS NTAPI InitController(PCONTROLLER_INFO ControllerInfo)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static BOOLEAN NTAPI AddControllers(PDRIVER_OBJECT DriverObject)
|
static BOOLEAN NTAPI
|
||||||
|
AddControllers(PDRIVER_OBJECT DriverObject)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Called on initialization to find our controllers and build device and controller objects for them
|
* FUNCTION: Called on initialization to find our controllers and build device and controller objects for them
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -999,9 +1004,9 @@ static BOOLEAN NTAPI AddControllers(PDRIVER_OBJECT DriverObject)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI SignalMediaChanged(PDEVICE_OBJECT DeviceObject,
|
VOID NTAPI
|
||||||
PIRP Irp)
|
SignalMediaChanged(PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Process an IRP when the media has changed, and possibly notify the user
|
* FUNCTION: Process an IRP when the media has changed, and possibly notify the user
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -1043,8 +1048,9 @@ VOID NTAPI SignalMediaChanged(PDEVICE_OBJECT DeviceObject,
|
||||||
IoSetHardErrorOrVerifyDevice(Irp, DeviceObject);
|
IoSetHardErrorOrVerifyDevice(Irp, DeviceObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static VOID NTAPI QueueThread(PVOID Context)
|
static VOID NTAPI
|
||||||
|
QueueThread(PVOID Context)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Thread that manages the queue and dispatches any queued requests
|
* FUNCTION: Thread that manages the queue and dispatches any queued requests
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -1110,9 +1116,9 @@ static VOID NTAPI QueueThread(PVOID Context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI DriverEntry(PDRIVER_OBJECT DriverObject,
|
NTSTATUS NTAPI
|
||||||
PUNICODE_STRING RegistryPath)
|
DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Entry-point for the driver
|
* FUNCTION: Entry-point for the driver
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
|
|
@ -84,19 +84,23 @@ typedef struct _CONTROLLER_INFO
|
||||||
BOOLEAN StopDpcQueued;
|
BOOLEAN StopDpcQueued;
|
||||||
} CONTROLLER_INFO, *PCONTROLLER_INFO;
|
} CONTROLLER_INFO, *PCONTROLLER_INFO;
|
||||||
|
|
||||||
NTSTATUS NTAPI DriverEntry(PDRIVER_OBJECT DriverObject,
|
NTSTATUS NTAPI
|
||||||
PUNICODE_STRING RegistryPath);
|
DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath);
|
||||||
|
|
||||||
VOID NTAPI SignalMediaChanged(PDEVICE_OBJECT DeviceObject,
|
VOID NTAPI
|
||||||
PIRP Irp);
|
SignalMediaChanged(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||||
|
|
||||||
VOID NTAPI WaitForControllerInterrupt(PCONTROLLER_INFO ControllerInfo);
|
VOID NTAPI
|
||||||
|
WaitForControllerInterrupt(PCONTROLLER_INFO ControllerInfo);
|
||||||
|
|
||||||
NTSTATUS NTAPI ResetChangeFlag(PDRIVE_INFO DriveInfo);
|
NTSTATUS NTAPI
|
||||||
|
ResetChangeFlag(PDRIVE_INFO DriveInfo);
|
||||||
|
|
||||||
VOID NTAPI StartMotor(PDRIVE_INFO DriveInfo);
|
VOID NTAPI
|
||||||
|
StartMotor(PDRIVE_INFO DriveInfo);
|
||||||
|
|
||||||
VOID NTAPI StopMotor(PCONTROLLER_INFO ControllerInfo);
|
VOID NTAPI
|
||||||
|
StopMotor(PCONTROLLER_INFO ControllerInfo);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* MEDIA TYPES
|
* MEDIA TYPES
|
||||||
|
|
|
@ -57,8 +57,9 @@
|
||||||
* Hardware Support Routines
|
* Hardware Support Routines
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
static BOOLEAN NTAPI ReadyForWrite(PCONTROLLER_INFO ControllerInfo)
|
static BOOLEAN NTAPI
|
||||||
|
ReadyForWrite(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Determine of the controller is ready to accept a byte on the FIFO
|
* FUNCTION: Determine of the controller is ready to accept a byte on the FIFO
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -82,8 +83,9 @@ static BOOLEAN NTAPI ReadyForWrite(PCONTROLLER_INFO ControllerInfo)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static BOOLEAN NTAPI ReadyForRead(PCONTROLLER_INFO ControllerInfo)
|
static BOOLEAN NTAPI
|
||||||
|
ReadyForRead(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Determine of the controller is ready to read a byte on the FIFO
|
* FUNCTION: Determine of the controller is ready to read a byte on the FIFO
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -107,9 +109,9 @@ static BOOLEAN NTAPI ReadyForRead(PCONTROLLER_INFO ControllerInfo)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static NTSTATUS NTAPI Send_Byte(PCONTROLLER_INFO ControllerInfo,
|
static NTSTATUS NTAPI
|
||||||
UCHAR Byte)
|
Send_Byte(PCONTROLLER_INFO ControllerInfo, UCHAR Byte)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Send a byte from the host to the controller's FIFO
|
* FUNCTION: Send a byte from the host to the controller's FIFO
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -154,9 +156,9 @@ static NTSTATUS NTAPI Send_Byte(PCONTROLLER_INFO ControllerInfo,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static NTSTATUS NTAPI Get_Byte(PCONTROLLER_INFO ControllerInfo,
|
static NTSTATUS NTAPI
|
||||||
PUCHAR Byte)
|
Get_Byte(PCONTROLLER_INFO ControllerInfo, PUCHAR Byte)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Read a byte from the controller to the host
|
* FUNCTION: Read a byte from the controller to the host
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -200,9 +202,9 @@ static NTSTATUS NTAPI Get_Byte(PCONTROLLER_INFO ControllerInfo,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSetDataRate(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
UCHAR DataRate)
|
HwSetDataRate(PCONTROLLER_INFO ControllerInfo, UCHAR DataRate)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Set the data rte on a controller
|
* FUNCTION: Set the data rte on a controller
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -219,8 +221,9 @@ NTSTATUS NTAPI HwSetDataRate(PCONTROLLER_INFO ControllerInfo,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwTurnOffMotor(PCONTROLLER_INFO ControllerInfo)
|
NTSTATUS NTAPI
|
||||||
|
HwTurnOffMotor(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Turn off all motors
|
* FUNCTION: Turn off all motors
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -240,8 +243,9 @@ NTSTATUS NTAPI HwTurnOffMotor(PCONTROLLER_INFO ControllerInfo)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwTurnOnMotor(PDRIVE_INFO DriveInfo)
|
NTSTATUS NTAPI
|
||||||
|
HwTurnOnMotor(PDRIVE_INFO DriveInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Turn on the motor on the selected drive
|
* FUNCTION: Turn on the motor on the selected drive
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -281,8 +285,9 @@ NTSTATUS NTAPI HwTurnOnMotor(PDRIVE_INFO DriveInfo)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSenseDriveStatus(PDRIVE_INFO DriveInfo)
|
NTSTATUS NTAPI
|
||||||
|
HwSenseDriveStatus(PDRIVE_INFO DriveInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Start a sense status command
|
* FUNCTION: Start a sense status command
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -315,8 +320,9 @@ NTSTATUS NTAPI HwSenseDriveStatus(PDRIVE_INFO DriveInfo)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwReadWriteData(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwReadWriteData(PCONTROLLER_INFO ControllerInfo,
|
||||||
BOOLEAN Read,
|
BOOLEAN Read,
|
||||||
UCHAR Unit,
|
UCHAR Unit,
|
||||||
UCHAR Cylinder,
|
UCHAR Cylinder,
|
||||||
|
@ -386,8 +392,9 @@ NTSTATUS NTAPI HwReadWriteData(PCONTROLLER_INFO ControllerInfo,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwRecalibrateResult(PCONTROLLER_INFO ControllerInfo)
|
NTSTATUS NTAPI
|
||||||
|
HwRecalibrateResult(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Get the result of a recalibrate command
|
* FUNCTION: Get the result of a recalibrate command
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -450,8 +457,9 @@ NTSTATUS NTAPI HwRecalibrateResult(PCONTROLLER_INFO ControllerInfo)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwReadWriteResult(PCONTROLLER_INFO ControllerInfo)
|
NTSTATUS NTAPI
|
||||||
|
HwReadWriteResult(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Get the result of a read or write from the controller
|
* FUNCTION: Get the result of a read or write from the controller
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -490,8 +498,9 @@ NTSTATUS NTAPI HwReadWriteResult(PCONTROLLER_INFO ControllerInfo)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwRecalibrate(PDRIVE_INFO DriveInfo)
|
NTSTATUS NTAPI
|
||||||
|
HwRecalibrate(PDRIVE_INFO DriveInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Start a recalibration of a drive
|
* FUNCTION: Start a recalibration of a drive
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -525,8 +534,9 @@ NTSTATUS NTAPI HwRecalibrate(PDRIVE_INFO DriveInfo)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSenseInterruptStatus(PCONTROLLER_INFO ControllerInfo)
|
NTSTATUS NTAPI
|
||||||
|
HwSenseInterruptStatus(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Send a sense interrupt status command to a controller
|
* FUNCTION: Send a sense interrupt status command to a controller
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -561,8 +571,9 @@ NTSTATUS NTAPI HwSenseInterruptStatus(PCONTROLLER_INFO ControllerInfo)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwReadId(PDRIVE_INFO DriveInfo, UCHAR Head)
|
NTSTATUS NTAPI
|
||||||
|
HwReadId(PDRIVE_INFO DriveInfo, UCHAR Head)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Issue a read id command to the drive
|
* FUNCTION: Issue a read id command to the drive
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -595,8 +606,9 @@ NTSTATUS NTAPI HwReadId(PDRIVE_INFO DriveInfo, UCHAR Head)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwFormatTrack(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwFormatTrack(PCONTROLLER_INFO ControllerInfo,
|
||||||
UCHAR Unit,
|
UCHAR Unit,
|
||||||
UCHAR Head,
|
UCHAR Head,
|
||||||
UCHAR BytesPerSector,
|
UCHAR BytesPerSector,
|
||||||
|
@ -642,9 +654,9 @@ NTSTATUS NTAPI HwFormatTrack(PCONTROLLER_INFO ControllerInfo,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSeek(PDRIVE_INFO DriveInfo,
|
NTSTATUS NTAPI
|
||||||
UCHAR Cylinder)
|
HwSeek(PDRIVE_INFO DriveInfo, UCHAR Cylinder)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Seek the heads to a particular cylinder
|
* FUNCTION: Seek the heads to a particular cylinder
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -686,8 +698,9 @@ NTSTATUS NTAPI HwSeek(PDRIVE_INFO DriveInfo,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwConfigure(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwConfigure(PCONTROLLER_INFO ControllerInfo,
|
||||||
BOOLEAN EIS,
|
BOOLEAN EIS,
|
||||||
BOOLEAN EFIFO,
|
BOOLEAN EFIFO,
|
||||||
BOOLEAN POLL,
|
BOOLEAN POLL,
|
||||||
|
@ -731,8 +744,9 @@ NTSTATUS NTAPI HwConfigure(PCONTROLLER_INFO ControllerInfo,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwGetVersion(PCONTROLLER_INFO ControllerInfo)
|
NTSTATUS NTAPI
|
||||||
|
HwGetVersion(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Gets the version of the controller
|
* FUNCTION: Gets the version of the controller
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -767,8 +781,8 @@ NTSTATUS NTAPI HwGetVersion(PCONTROLLER_INFO ControllerInfo)
|
||||||
return Buffer;
|
return Buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS NTAPI HwDiskChanged(PDRIVE_INFO DriveInfo,
|
NTSTATUS NTAPI
|
||||||
PBOOLEAN DiskChanged)
|
HwDiskChanged(PDRIVE_INFO DriveInfo, PBOOLEAN DiskChanged)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Detect whether the hardware has sensed a disk change
|
* FUNCTION: Detect whether the hardware has sensed a disk change
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -818,8 +832,8 @@ NTSTATUS NTAPI HwDiskChanged(PDRIVE_INFO DriveInfo,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSenseDriveStatusResult(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
PUCHAR Status)
|
HwSenseDriveStatusResult(PCONTROLLER_INFO ControllerInfo, PUCHAR Status)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Get the result of a sense drive status command
|
* FUNCTION: Get the result of a sense drive status command
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -845,8 +859,9 @@ NTSTATUS NTAPI HwSenseDriveStatusResult(PCONTROLLER_INFO ControllerInfo,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwReadIdResult(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwReadIdResult(PCONTROLLER_INFO ControllerInfo,
|
||||||
PUCHAR CurCylinder,
|
PUCHAR CurCylinder,
|
||||||
PUCHAR CurHead)
|
PUCHAR CurHead)
|
||||||
/*
|
/*
|
||||||
|
@ -905,8 +920,9 @@ NTSTATUS NTAPI HwReadIdResult(PCONTROLLER_INFO ControllerInfo,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSpecify(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwSpecify(PCONTROLLER_INFO ControllerInfo,
|
||||||
UCHAR HeadLoadTime,
|
UCHAR HeadLoadTime,
|
||||||
UCHAR HeadUnloadTime,
|
UCHAR HeadUnloadTime,
|
||||||
UCHAR StepRateTime,
|
UCHAR StepRateTime,
|
||||||
|
@ -952,8 +968,9 @@ NTSTATUS NTAPI HwSpecify(PCONTROLLER_INFO ControllerInfo,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwReset(PCONTROLLER_INFO ControllerInfo)
|
NTSTATUS NTAPI
|
||||||
|
HwReset(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Reset the controller
|
* FUNCTION: Reset the controller
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -988,8 +1005,9 @@ NTSTATUS NTAPI HwReset(PCONTROLLER_INFO ControllerInfo)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI HwPowerOff(PCONTROLLER_INFO ControllerInfo)
|
NTSTATUS NTAPI
|
||||||
|
HwPowerOff(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Power down a controller
|
* FUNCTION: Power down a controller
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -1007,7 +1025,8 @@ NTSTATUS NTAPI HwPowerOff(PCONTROLLER_INFO ControllerInfo)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID NTAPI HwDumpRegisters(PCONTROLLER_INFO ControllerInfo)
|
VOID NTAPI
|
||||||
|
HwDumpRegisters(PCONTROLLER_INFO ControllerInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Dump all readable registers from the floppy controller
|
* FUNCTION: Dump all readable registers from the floppy controller
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
|
|
@ -260,11 +260,14 @@
|
||||||
/*
|
/*
|
||||||
* FUNCTIONS
|
* FUNCTIONS
|
||||||
*/
|
*/
|
||||||
NTSTATUS NTAPI HwTurnOnMotor(PDRIVE_INFO DriveInfo);
|
NTSTATUS NTAPI
|
||||||
|
HwTurnOnMotor(PDRIVE_INFO DriveInfo);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSenseDriveStatus(PDRIVE_INFO DriveInfo);
|
NTSTATUS NTAPI
|
||||||
|
HwSenseDriveStatus(PDRIVE_INFO DriveInfo);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwReadWriteData(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwReadWriteData(PCONTROLLER_INFO ControllerInfo,
|
||||||
BOOLEAN Read,
|
BOOLEAN Read,
|
||||||
UCHAR Unit,
|
UCHAR Unit,
|
||||||
UCHAR Cylinder,
|
UCHAR Cylinder,
|
||||||
|
@ -275,14 +278,17 @@ NTSTATUS NTAPI HwReadWriteData(PCONTROLLER_INFO ControllerInfo,
|
||||||
UCHAR Gap3Length,
|
UCHAR Gap3Length,
|
||||||
UCHAR DataLength);
|
UCHAR DataLength);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwRecalibrate(PDRIVE_INFO DriveInfo);
|
NTSTATUS NTAPI
|
||||||
|
HwRecalibrate(PDRIVE_INFO DriveInfo);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSenseInterruptStatus(PCONTROLLER_INFO ControllerInfo);
|
NTSTATUS NTAPI
|
||||||
|
HwSenseInterruptStatus(PCONTROLLER_INFO ControllerInfo);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwReadId(PDRIVE_INFO DriveInfo,
|
NTSTATUS NTAPI
|
||||||
UCHAR Head);
|
HwReadId(PDRIVE_INFO DriveInfo, UCHAR Head);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwFormatTrack(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwFormatTrack(PCONTROLLER_INFO ControllerInfo,
|
||||||
UCHAR Unit,
|
UCHAR Unit,
|
||||||
UCHAR Head,
|
UCHAR Head,
|
||||||
UCHAR BytesPerSector,
|
UCHAR BytesPerSector,
|
||||||
|
@ -290,46 +296,58 @@ NTSTATUS NTAPI HwFormatTrack(PCONTROLLER_INFO ControllerInfo,
|
||||||
UCHAR Gap3Length,
|
UCHAR Gap3Length,
|
||||||
UCHAR FillerPattern);
|
UCHAR FillerPattern);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSeek(PDRIVE_INFO DriveInfo,
|
NTSTATUS NTAPI
|
||||||
UCHAR Cylinder);
|
HwSeek(PDRIVE_INFO DriveInfo, UCHAR Cylinder);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwReadWriteResult(PCONTROLLER_INFO ControllerInfo);
|
NTSTATUS NTAPI
|
||||||
|
HwReadWriteResult(PCONTROLLER_INFO ControllerInfo);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwGetVersion(PCONTROLLER_INFO ControllerInfo);
|
NTSTATUS NTAPI
|
||||||
|
HwGetVersion(PCONTROLLER_INFO ControllerInfo);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwConfigure(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwConfigure(PCONTROLLER_INFO ControllerInfo,
|
||||||
BOOLEAN EIS,
|
BOOLEAN EIS,
|
||||||
BOOLEAN EFIFO,
|
BOOLEAN EFIFO,
|
||||||
BOOLEAN POLL,
|
BOOLEAN POLL,
|
||||||
UCHAR FIFOTHR,
|
UCHAR FIFOTHR,
|
||||||
UCHAR PRETRK) ;
|
UCHAR PRETRK) ;
|
||||||
|
|
||||||
NTSTATUS NTAPI HwRecalibrateResult(PCONTROLLER_INFO ControllerInfo);
|
NTSTATUS NTAPI
|
||||||
|
HwRecalibrateResult(PCONTROLLER_INFO ControllerInfo);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwDiskChanged(PDRIVE_INFO DriveInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwDiskChanged(PDRIVE_INFO DriveInfo,
|
||||||
PBOOLEAN DiskChanged);
|
PBOOLEAN DiskChanged);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSenseDriveStatusResult(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwSenseDriveStatusResult(PCONTROLLER_INFO ControllerInfo,
|
||||||
PUCHAR Status);
|
PUCHAR Status);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSpecify(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwSpecify(PCONTROLLER_INFO ControllerInfo,
|
||||||
UCHAR HeadLoadTime,
|
UCHAR HeadLoadTime,
|
||||||
UCHAR HeadUnloadTime,
|
UCHAR HeadUnloadTime,
|
||||||
UCHAR StepRateTime,
|
UCHAR StepRateTime,
|
||||||
BOOLEAN NonDma);
|
BOOLEAN NonDma);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwReadIdResult(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
|
HwReadIdResult(PCONTROLLER_INFO ControllerInfo,
|
||||||
PUCHAR CurCylinder,
|
PUCHAR CurCylinder,
|
||||||
PUCHAR CurHead);
|
PUCHAR CurHead);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwSetDataRate(PCONTROLLER_INFO ControllerInfo,
|
NTSTATUS NTAPI
|
||||||
UCHAR DataRate);
|
HwSetDataRate(PCONTROLLER_INFO ControllerInfo, UCHAR DataRate);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwReset(PCONTROLLER_INFO Controller);
|
NTSTATUS NTAPI
|
||||||
|
HwReset(PCONTROLLER_INFO Controller);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwPowerOff(PCONTROLLER_INFO ControllerInfo);
|
NTSTATUS NTAPI
|
||||||
|
HwPowerOff(PCONTROLLER_INFO ControllerInfo);
|
||||||
|
|
||||||
VOID NTAPI HwDumpRegisters(PCONTROLLER_INFO ControllerInfo);
|
VOID NTAPI
|
||||||
|
HwDumpRegisters(PCONTROLLER_INFO ControllerInfo);
|
||||||
|
|
||||||
NTSTATUS NTAPI HwTurnOffMotor(PCONTROLLER_INFO ControllerInfo);
|
NTSTATUS NTAPI
|
||||||
|
HwTurnOffMotor(PCONTROLLER_INFO ControllerInfo);
|
||||||
|
|
||||||
|
|
|
@ -39,9 +39,9 @@
|
||||||
#include "csqrtns.h"
|
#include "csqrtns.h"
|
||||||
#include "ioctl.h"
|
#include "ioctl.h"
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI DeviceIoctl(PDEVICE_OBJECT DeviceObject,
|
NTSTATUS NTAPI
|
||||||
PIRP Irp)
|
DeviceIoctl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Queue IOCTL IRPs
|
* FUNCTION: Queue IOCTL IRPs
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -64,9 +64,9 @@ NTSTATUS NTAPI DeviceIoctl(PDEVICE_OBJECT DeviceObject,
|
||||||
return STATUS_PENDING;
|
return STATUS_PENDING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI DeviceIoctlPassive(PDRIVE_INFO DriveInfo,
|
VOID NTAPI
|
||||||
PIRP Irp)
|
DeviceIoctlPassive(PDRIVE_INFO DriveInfo, PIRP Irp)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Handlees IOCTL requests at PASSIVE_LEVEL
|
* FUNCTION: Handlees IOCTL requests at PASSIVE_LEVEL
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
|
|
@ -25,9 +25,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DRIVER_DISPATCH DeviceIoctl;
|
DRIVER_DISPATCH DeviceIoctl;
|
||||||
NTSTATUS NTAPI DeviceIoctl(PDEVICE_OBJECT DeviceObject,
|
|
||||||
PIRP Irp);
|
|
||||||
|
|
||||||
VOID NTAPI DeviceIoctlPassive(PDRIVE_INFO DriveInfo,
|
NTSTATUS NTAPI
|
||||||
PIRP Irp);
|
DeviceIoctl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||||
|
|
||||||
|
VOID NTAPI
|
||||||
|
DeviceIoctlPassive(PDRIVE_INFO DriveInfo, PIRP Irp);
|
||||||
|
|
||||||
|
|
|
@ -60,8 +60,9 @@
|
||||||
#include "hardware.h"
|
#include "hardware.h"
|
||||||
#include "readwrite.h"
|
#include "readwrite.h"
|
||||||
|
|
||||||
|
|
||||||
static IO_ALLOCATION_ACTION NTAPI MapRegisterCallback(PDEVICE_OBJECT DeviceObject,
|
static IO_ALLOCATION_ACTION NTAPI
|
||||||
|
MapRegisterCallback(PDEVICE_OBJECT DeviceObject,
|
||||||
PIRP Irp,
|
PIRP Irp,
|
||||||
PVOID MapRegisterBase,
|
PVOID MapRegisterBase,
|
||||||
PVOID Context)
|
PVOID Context)
|
||||||
|
@ -89,9 +90,9 @@ static IO_ALLOCATION_ACTION NTAPI MapRegisterCallback(PDEVICE_OBJECT DeviceObjec
|
||||||
return KeepObject;
|
return KeepObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS NTAPI ReadWrite(PDEVICE_OBJECT DeviceObject,
|
NTSTATUS NTAPI
|
||||||
PIRP Irp)
|
ReadWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Dispatch routine called for read or write IRPs
|
* FUNCTION: Dispatch routine called for read or write IRPs
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -131,8 +132,9 @@ NTSTATUS NTAPI ReadWrite(PDEVICE_OBJECT DeviceObject,
|
||||||
return STATUS_PENDING;
|
return STATUS_PENDING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static VOID NTAPI RWFreeAdapterChannel(PADAPTER_OBJECT AdapterObject)
|
static VOID NTAPI
|
||||||
|
RWFreeAdapterChannel(PADAPTER_OBJECT AdapterObject)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Free the adapter DMA channel that we allocated
|
* FUNCTION: Free the adapter DMA channel that we allocated
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -151,8 +153,9 @@ static VOID NTAPI RWFreeAdapterChannel(PADAPTER_OBJECT AdapterObject)
|
||||||
KeLowerIrql(Irql);
|
KeLowerIrql(Irql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static NTSTATUS NTAPI RWDetermineMediaType(PDRIVE_INFO DriveInfo)
|
static NTSTATUS NTAPI
|
||||||
|
RWDetermineMediaType(PDRIVE_INFO DriveInfo)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Determine the media type of the disk in the drive and fill in the geometry
|
* FUNCTION: Determine the media type of the disk in the drive and fill in the geometry
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -271,9 +274,9 @@ static NTSTATUS NTAPI RWDetermineMediaType(PDRIVE_INFO DriveInfo)
|
||||||
return STATUS_UNRECOGNIZED_MEDIA;
|
return STATUS_UNRECOGNIZED_MEDIA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static NTSTATUS NTAPI RWSeekToCylinder(PDRIVE_INFO DriveInfo,
|
static NTSTATUS NTAPI
|
||||||
UCHAR Cylinder)
|
RWSeekToCylinder(PDRIVE_INFO DriveInfo, UCHAR Cylinder)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Seek a particular drive to a particular track
|
* FUNCTION: Seek a particular drive to a particular track
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -336,8 +339,9 @@ static NTSTATUS NTAPI RWSeekToCylinder(PDRIVE_INFO DriveInfo,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static NTSTATUS NTAPI RWComputeCHS(PDRIVE_INFO IN DriveInfo,
|
static NTSTATUS NTAPI
|
||||||
|
RWComputeCHS(PDRIVE_INFO IN DriveInfo,
|
||||||
ULONG IN DiskByteOffset,
|
ULONG IN DiskByteOffset,
|
||||||
PUCHAR OUT Cylinder,
|
PUCHAR OUT Cylinder,
|
||||||
PUCHAR OUT Head,
|
PUCHAR OUT Head,
|
||||||
|
@ -392,9 +396,9 @@ static NTSTATUS NTAPI RWComputeCHS(PDRIVE_INFO IN DriveInfo,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID NTAPI ReadWritePassive(PDRIVE_INFO DriveInfo,
|
VOID NTAPI
|
||||||
PIRP Irp)
|
ReadWritePassive(PDRIVE_INFO DriveInfo, PIRP Irp)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Handle the first phase of a read or write IRP
|
* FUNCTION: Handle the first phase of a read or write IRP
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
|
|
@ -25,8 +25,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DRIVER_DISPATCH ReadWrite;
|
DRIVER_DISPATCH ReadWrite;
|
||||||
NTSTATUS NTAPI ReadWrite(PDEVICE_OBJECT DeviceObject,
|
|
||||||
PIRP Irp);
|
|
||||||
|
|
||||||
VOID NTAPI ReadWritePassive(PDRIVE_INFO DriveInfo, PIRP Irp);
|
NTSTATUS NTAPI
|
||||||
|
ReadWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||||
|
|
||||||
|
VOID NTAPI
|
||||||
|
ReadWritePassive(PDRIVE_INFO DriveInfo, PIRP Irp);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue