ReactOS 0.4.17-dev-1190-g4c812f4
fdc.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Floppy Disk Controller Driver
3 * LICENSE: GNU GPLv2 only as published by the Free Software Foundation
4 * FILE: drivers/storage/fdc/fdc/fdc.h
5 * PURPOSE: Common header file
6 * PROGRAMMERS: Eric Kohl
7 */
8
9#ifndef _FDC_PCH_
10#define _FDC_PCH_
11
12#include <ntifs.h>
13
14#define MAX_DEVICE_NAME 255
15#define MAX_ARC_PATH_LEN 255
16#define MAX_DRIVES_PER_CONTROLLER 4
17#define MAX_CONTROLLERS 4
18
19struct _CONTROLLER_INFO;
20
21typedef struct _DRIVE_INFO
22{
24 UCHAR UnitNumber; /* 0,1,2,3 */
28// LARGE_INTEGER MotorStartTime;
29// DISK_GEOMETRY DiskGeometry;
30// UCHAR BytesPerSectorCode;
31// WCHAR SymLinkBuffer[MAX_DEVICE_NAME];
32// WCHAR ArcPathBuffer[MAX_ARC_PATH_LEN];
33// ULONG DiskChangeCount;
34// BOOLEAN Initialized;
36
37typedef struct _CONTROLLER_INFO
38{
40// BOOLEAN Initialized;
41// ULONG ControllerNumber;
42// INTERFACE_TYPE InterfaceType;
43// ULONG BusNumber;
44// ULONG Level;
45// KIRQL MappedLevel;
46// ULONG Vector;
47// ULONG MappedVector;
48// KINTERRUPT_MODE InterruptMode;
51// ULONG Dma;
52// ULONG MapRegisters;
53// PVOID MapRegisterBase;
54// BOOLEAN Master;
55// KEVENT SynchEvent;
56// KDPC Dpc;
57// PKINTERRUPT InterruptObject;
58// PADAPTER_OBJECT AdapterObject;
60// BOOLEAN ImpliedSeeks;
62// PDRIVE_INFO CurrentDrive;
63// BOOLEAN Model30;
64// KEVENT MotorStoppedEvent;
65// KTIMER MotorTimer;
66// KDPC MotorStopDpc;
67// BOOLEAN StopDpcQueued;
69
70
71typedef struct _COMMON_DEVICE_EXTENSION
72{
76
77typedef struct _FDO_DEVICE_EXTENSION
78{
80
83
85
87
88
89typedef struct _PDO_DEVICE_EXTENSION
90{
92
97
99 UNICODE_STRING DeviceId; // REG_SZ
100 UNICODE_STRING InstanceId; // REG_SZ
101 UNICODE_STRING HardwareIds; // REG_MULTI_SZ
102 UNICODE_STRING CompatibleIds; // REG_MULTI_SZ
104
105#define FDC_TAG 'acdF'
106
107/* fdo.c */
108
110NTAPI
113 IN PIRP Irp);
114
115/* misc.c */
116
119 IN ULONG Flags,
122
123/* pdo.c */
124
125VOID
128
130NTAPI
133 IN PIRP Irp);
134
135#endif /* _FDC_PCH_ */
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
Definition: dispmprt.h:245
struct _FDO_DEVICE_EXTENSION FDO_DEVICE_EXTENSION
struct _DRIVE_INFO DRIVE_INFO
struct _FDO_DEVICE_EXTENSION * PFDO_DEVICE_EXTENSION
NTSTATUS NTAPI FdcPdoPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: pdo.c:153
struct _DRIVE_INFO * PDRIVE_INFO
NTSTATUS DuplicateUnicodeString(IN ULONG Flags, IN PCUNICODE_STRING SourceString, OUT PUNICODE_STRING DestinationString)
Definition: misc.c:31
struct _CONTROLLER_INFO * PCONTROLLER_INFO
NTSTATUS NTAPI FdcFdoPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: fdo.c:621
struct _PDO_DEVICE_EXTENSION PDO_DEVICE_EXTENSION
struct _PDO_DEVICE_EXTENSION * PPDO_DEVICE_EXTENSION
struct _CONTROLLER_INFO CONTROLLER_INFO
struct _COMMON_DEVICE_EXTENSION COMMON_DEVICE_EXTENSION
VOID FdcPdoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
Definition: pdo.c:120
struct _COMMON_DEVICE_EXTENSION * PCOMMON_DEVICE_EXTENSION
#define MAX_DRIVES_PER_CONTROLLER
Definition: floppy.h:31
_In_ PIRP Irp
Definition: kse.h:79
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
Definition: rtlfuncs.h:1957
_Out_ _Inout_ POEM_STRING DestinationString
Definition: rtlfuncs.h:1956
PDEVICE_OBJECT DeviceObject
Definition: pci.h:46
UCHAR NumberOfDrives
Definition: fdc.h:59
DRIVE_INFO DriveInfo[MAX_DRIVES_PER_CONTROLLER]
Definition: fdc.h:61
PHYSICAL_ADDRESS PortAddress
Definition: fdc.h:50
BOOLEAN PortAddressValid
Definition: fdc.h:49
BOOLEAN Populated
Definition: fdc.h:39
struct _CONTROLLER_INFO * ControllerInfo
Definition: fdc.h:23
PDEVICE_OBJECT DeviceObject
Definition: fdc.h:26
CM_FLOPPY_DEVICE_DATA FloppyDeviceData
Definition: fdc.h:27
ULONG PeripheralNumber
Definition: fdc.h:25
UCHAR UnitNumber
Definition: fdc.h:24
PDEVICE_OBJECT LowerDevice
Definition: i8042prt.h:130
COMMON_DEVICE_EXTENSION Common
Definition: pci.h:84
CONTROLLER_INFO ControllerInfo
Definition: fdc.h:84
PDEVICE_OBJECT Pdo
Definition: i8042prt.h:128
PDEVICE_OBJECT Fdo
Definition: pci.h:61
UNICODE_STRING InstanceId
Definition: serenum.h:53
UNICODE_STRING DeviceDescription
Definition: pci.h:73
BOOLEAN DeletePending
Definition: fdc.h:96
UNICODE_STRING HardwareIds
Definition: serenum.h:54
BOOLEAN ReportedPresent
Definition: fdc.h:95
COMMON_DEVICE_EXTENSION Common
Definition: pci.h:59
UNICODE_STRING CompatibleIds
Definition: serenum.h:55
PDRIVE_INFO DriveInfo
Definition: fdc.h:94
UNICODE_STRING DeviceId
Definition: serenum.h:52
unsigned char UCHAR
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061