ReactOS  r75907
miniport.h
Go to the documentation of this file.
1 /*
2  * miniport.h
3  *
4  * Type definitions for miniport drivers
5  *
6  * This file is part of the w32api package.
7  *
8  * Contributors:
9  * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
10  *
11  * THIS SOFTWARE IS NOT COPYRIGHTED
12  *
13  * This source code is offered for use in the public domain. You may
14  * use, modify or distribute it freely.
15  *
16  * This code is distributed in the hope that it will be useful but
17  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18  * DISCLAIMED. This includes but is not limited to warranties of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20  *
21  */
22 
23 #ifndef _MINIPORT_
24 #define _MINIPORT_
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 #define EMULATOR_READ_ACCESS 0x01
31 #define EMULATOR_WRITE_ACCESS 0x02
32 
38 
39 
40 typedef struct _EMULATOR_ACCESS_ENTRY {
48 
49 typedef VOID
51  IN ULONG ReadBank,
52  IN ULONG WriteBank,
53  IN PVOID Context);
54 
55 #ifndef __BROKEN__
56 
57 typedef enum _INTERFACE_TYPE {
60  Isa,
78 
79 typedef enum _KINTERRUPT_MODE {
83 
86 
87 typedef enum _BUS_DATA_TYPE {
91  Pos,
103 
104 typedef enum _DMA_WIDTH {
110 
111 typedef enum _DMA_SPEED {
119 
120 typedef struct _INTERFACE {
127 
128 typedef enum _IRQ_DEVICE_POLICY {
136 
137 typedef enum _IRQ_PRIORITY {
143 
144 typedef struct _IO_RESOURCE_DESCRIPTOR {
146  UCHAR Type; // use CM_RESOURCE_TYPE
147  UCHAR ShareDisposition; // use CM_SHARE_DISPOSITION
149  USHORT Flags; // use CM resource flag defines
150  USHORT Spare2; // align
151  union {
152  struct {
157  } Port;
158  struct {
159  ULONG Length;
163  } Memory;
164  struct {
170  } Interrupt;
171  struct {
174  } Dma;
175  struct {
176  ULONG Length;
180  } Generic;
181  struct {
183  } DevicePrivate;
184  //
185  // Bus Number information.
186  //
187  struct {
188  ULONG Length;
192  } BusNumber;
193  struct {
194  ULONG Priority; // use LCPRI_Xxx values in cfg.h
197  } ConfigData;
198  //
199  // The following structures provide descriptions
200  // for memory resource requirement greater than MAXULONG
201  //
202  struct {
207  } Memory40;
208  struct {
213  } Memory48;
214  struct {
219  } Memory64;
220  } u;
222 
223 #include <guiddef.h>
224 #endif /* ! __BROKEN__ */
225 
226 #ifdef __cplusplus
227 }
228 #endif
229 
230 #endif /* __MINIPORT_H */
DWORD *typedef PVOID
Definition: winlogon.h:52
enum _EMULATOR_PORT_ACCESS_TYPE EMULATOR_PORT_ACCESS_TYPE
EMULATOR_PORT_ACCESS_TYPE AccessType
Definition: miniport.h:43
PINTERFACE_REFERENCE InterfaceReference
Definition: miniport.h:124
struct _EMULATOR_ACCESS_ENTRY * PEMULATOR_ACCESS_ENTRY
#define IN
Definition: typedefs.h:39
_IRQ_PRIORITY
Definition: miniport.h:137
UCHAR StringSupport
Definition: miniport.h:45
enum _IRQ_DEVICE_POLICY IRQ_DEVICE_POLICY
enum _DMA_WIDTH * PDMA_WIDTH
enum _BUS_DATA_TYPE * PBUS_DATA_TYPE
Definition: miniport.h:91
UCHAR AccessMode
Definition: miniport.h:44
_DMA_WIDTH
Definition: miniport.h:104
USHORT Size
Definition: miniport.h:121
enum _BUS_DATA_TYPE BUS_DATA_TYPE
struct _IO_RESOURCE_DESCRIPTOR::@1840::@1844 Dma
KAFFINITY TargetedProcessors
Definition: miniport.h:169
struct _IO_RESOURCE_DESCRIPTOR::@1840::@1848 ConfigData
union _IO_RESOURCE_DESCRIPTOR::@1840 u
IRQ_DEVICE_POLICY AffinityPolicy
Definition: miniport.h:167
enum _DMA_SPEED * PDMA_SPEED
struct _IO_RESOURCE_DESCRIPTOR::@1840::@1850 Memory48
enum _DMA_WIDTH DMA_WIDTH
PVOID Routine
Definition: miniport.h:46
ULONG NumConsecutivePorts
Definition: miniport.h:42
struct _IO_RESOURCE_DESCRIPTOR::@1840::@1845 Generic
enum _IRQ_PRIORITY IRQ_PRIORITY
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
Definition: miniport.h:75
_DMA_SPEED
Definition: miniport.h:111
struct _IO_RESOURCE_DESCRIPTOR::@1840::@1849 Memory40
enum _KINTERRUPT_MODE KINTERRUPT_MODE
VOID(NTAPI * PBANKED_SECTION_ROUTINE)(IN ULONG ReadBank, IN ULONG WriteBank, IN PVOID Context)
Definition: miniport.h:50
struct _IO_RESOURCE_DESCRIPTOR::@1840::@1851 Memory64
struct _INTERFACE * PINTERFACE
enum _INTERFACE_TYPE INTERFACE_TYPE
enum _IRQ_PRIORITY * PIRQ_PRIORITY
Definition: miniport.h:34
struct _INTERFACE INTERFACE
_KINTERRUPT_MODE
Definition: miniport.h:79
Definition: miniport.h:66
struct _IO_RESOURCE_DESCRIPTOR * PIO_RESOURCE_DESCRIPTOR
Definition: miniport.h:89
_BUS_DATA_TYPE
Definition: miniport.h:87
unsigned char UCHAR
Definition: xmlstorage.h:181
struct _IO_RESOURCE_DESCRIPTOR::@1840::@1847 BusNumber
ULONG BasePort
Definition: miniport.h:41
#define VOID
Definition: acefi.h:82
struct _IO_RESOURCE_DESCRIPTOR::@1840::@1842 Memory
_EMULATOR_PORT_ACCESS_TYPE
Definition: miniport.h:33
Definition: miniport.h:68
enum _DMA_SPEED DMA_SPEED
struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR
Definition: miniport.h:61
PHYSICAL_ADDRESS MaximumAddress
Definition: miniport.h:156
_INTERFACE_TYPE
Definition: hwresource.cpp:135
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: miniport.h:125
unsigned short USHORT
Definition: pedump.c:61
_IRQ_DEVICE_POLICY
Definition: miniport.h:128
ULONG_PTR KAFFINITY
Definition: compat.h:75
IRQ_PRIORITY PriorityPolicy
Definition: miniport.h:168
enum _INTERFACE_TYPE * PINTERFACE_TYPE
struct tagContext Context
Definition: acpixf.h:1014
unsigned int ULONG
Definition: retypes.h:1
VOID(* PINTERFACE_REFERENCE)(PVOID Context)
Definition: miniport.h:84
PVOID Context
Definition: miniport.h:123
VOID(* PINTERFACE_DEREFERENCE)(PVOID Context)
Definition: miniport.h:85
PHYSICAL_ADDRESS MinimumAddress
Definition: miniport.h:155
unsigned long Ulong
Definition: utypes.h:42
USHORT Version
Definition: miniport.h:122
Definition: miniport.h:40
struct _IO_RESOURCE_DESCRIPTOR::@1840::@1843 Interrupt
struct _IO_RESOURCE_DESCRIPTOR::@1840::@1846 DevicePrivate
Definition: miniport.h:60
struct _IO_RESOURCE_DESCRIPTOR::@1840::@1841 Port
enum _EMULATOR_PORT_ACCESS_TYPE * PEMULATOR_PORT_ACCESS_TYPE
enum _IRQ_DEVICE_POLICY * PIRQ_DEVICE_POLICY
struct _EMULATOR_ACCESS_ENTRY EMULATOR_ACCESS_ENTRY