ReactOS 0.4.15-dev-7958-gcd0bb1a
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
27extern "C" {
28#endif
29
30#define EMULATOR_READ_ACCESS 0x01
31#define EMULATOR_WRITE_ACCESS 0x02
32
36 Ulong
38
39
40typedef struct _EMULATOR_ACCESS_ENTRY {
48
49typedef VOID
51 IN ULONG ReadBank,
52 IN ULONG WriteBank,
54
55#ifndef __BROKEN__
56
57typedef enum _INTERFACE_TYPE {
78
79typedef enum _KINTERRUPT_MODE {
83
86
87typedef enum _BUS_DATA_TYPE {
103
104typedef enum _DMA_WIDTH {
110
111typedef enum _DMA_SPEED {
119
120typedef struct _INTERFACE {
127
128typedef enum _IRQ_DEVICE_POLICY {
136
137typedef enum _IRQ_PRIORITY {
143
144typedef 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 {
158 struct {
164 struct {
171 struct {
175 struct {
181 struct {
182 ULONG Data[3];
184 //
185 // Bus Number information.
186 //
187 struct {
193 struct {
194 ULONG Priority; // use LCPRI_Xxx values in cfg.h
198 //
199 // The following structures provide descriptions
200 // for memory resource requirement greater than MAXULONG
201 //
202 struct {
208 struct {
214 struct {
220 } u;
222
223#include <guiddef.h>
224#endif /* ! __BROKEN__ */
225
226#ifdef __cplusplus
227}
228#endif
229
230#endif /* __MINIPORT_H */
#define VOID
Definition: acefi.h:82
enum _IRQ_DEVICE_POLICY IRQ_DEVICE_POLICY
enum _IRQ_PRIORITY IRQ_PRIORITY
_IRQ_DEVICE_POLICY
Definition: edit.c:41
_IRQ_PRIORITY
Definition: edit.c:52
ULONG_PTR KAFFINITY
Definition: compat.h:85
_INTERFACE_TYPE
Definition: hwresource.cpp:135
unsigned short USHORT
Definition: pedump.c:61
struct _IO_RESOURCE_DESCRIPTOR * PIO_RESOURCE_DESCRIPTOR
_KINTERRUPT_MODE
Definition: miniport.h:79
@ Latched
Definition: miniport.h:81
@ LevelSensitive
Definition: miniport.h:80
VOID(* PINTERFACE_REFERENCE)(PVOID Context)
Definition: miniport.h:84
_DMA_WIDTH
Definition: miniport.h:104
@ MaximumDmaWidth
Definition: miniport.h:108
@ Width16Bits
Definition: miniport.h:106
@ Width8Bits
Definition: miniport.h:105
@ Width32Bits
Definition: miniport.h:107
enum _INTERFACE_TYPE * PINTERFACE_TYPE
enum _DMA_WIDTH * PDMA_WIDTH
enum _BUS_DATA_TYPE * PBUS_DATA_TYPE
enum _EMULATOR_PORT_ACCESS_TYPE * PEMULATOR_PORT_ACCESS_TYPE
enum _KINTERRUPT_MODE KINTERRUPT_MODE
enum _IRQ_DEVICE_POLICY IRQ_DEVICE_POLICY
enum _IRQ_PRIORITY * PIRQ_PRIORITY
VOID(* PINTERFACE_DEREFERENCE)(PVOID Context)
Definition: miniport.h:85
struct _INTERFACE INTERFACE
_BUS_DATA_TYPE
Definition: miniport.h:87
@ SgiInternalConfiguration
Definition: miniport.h:100
@ EisaConfiguration
Definition: miniport.h:90
@ MaximumBusDataType
Definition: miniport.h:101
@ Pos
Definition: miniport.h:91
@ PNPISAConfiguration
Definition: miniport.h:99
@ MPIConfiguration
Definition: miniport.h:97
@ MPSAConfiguration
Definition: miniport.h:98
@ Cmos
Definition: miniport.h:89
@ ConfigurationSpaceUndefined
Definition: miniport.h:88
@ VMEConfiguration
Definition: miniport.h:94
@ NuBusConfiguration
Definition: miniport.h:95
@ PCMCIAConfiguration
Definition: miniport.h:96
@ CbusConfiguration
Definition: miniport.h:92
@ PCIConfiguration
Definition: miniport.h:93
enum _IRQ_DEVICE_POLICY * PIRQ_DEVICE_POLICY
enum _BUS_DATA_TYPE BUS_DATA_TYPE
enum _DMA_SPEED DMA_SPEED
enum _IRQ_PRIORITY IRQ_PRIORITY
enum _EMULATOR_PORT_ACCESS_TYPE EMULATOR_PORT_ACCESS_TYPE
struct _INTERFACE * PINTERFACE
VOID(NTAPI * PBANKED_SECTION_ROUTINE)(IN ULONG ReadBank, IN ULONG WriteBank, IN PVOID Context)
Definition: miniport.h:50
struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR
enum _DMA_WIDTH DMA_WIDTH
@ Eisa
Definition: miniport.h:61
@ VMEBus
Definition: miniport.h:65
@ MaximumInterfaceType
Definition: miniport.h:76
@ InterfaceTypeUndefined
Definition: miniport.h:58
@ CBus
Definition: miniport.h:68
@ TurboChannel
Definition: miniport.h:63
@ PNPBus
Definition: miniport.h:74
@ PCIBus
Definition: miniport.h:64
@ MPIBus
Definition: miniport.h:69
@ Vmcs
Definition: miniport.h:75
@ InternalPowerBus
Definition: miniport.h:72
@ MPSABus
Definition: miniport.h:70
@ Internal
Definition: miniport.h:59
@ NuBus
Definition: miniport.h:66
@ MicroChannel
Definition: miniport.h:62
@ PNPISABus
Definition: miniport.h:73
@ ProcessorInternal
Definition: miniport.h:71
@ Isa
Definition: miniport.h:60
@ PCMCIABus
Definition: miniport.h:67
enum _INTERFACE_TYPE INTERFACE_TYPE
_DMA_SPEED
Definition: miniport.h:111
@ TypeF
Definition: miniport.h:116
@ TypeA
Definition: miniport.h:113
@ MaximumDmaSpeed
Definition: miniport.h:117
@ TypeB
Definition: miniport.h:114
@ Compatible
Definition: miniport.h:112
@ TypeC
Definition: miniport.h:115
struct _EMULATOR_ACCESS_ENTRY * PEMULATOR_ACCESS_ENTRY
@ IrqPolicyOneCloseProcessor
Definition: miniport.h:131
@ IrqPolicyAllCloseProcessors
Definition: miniport.h:130
@ IrqPolicyAllProcessorsInMachine
Definition: miniport.h:132
@ IrqPolicySpreadMessagesAcrossAllProcessors
Definition: miniport.h:134
@ IrqPolicyMachineDefault
Definition: miniport.h:129
@ IrqPolicySpecifiedProcessors
Definition: miniport.h:133
struct _EMULATOR_ACCESS_ENTRY EMULATOR_ACCESS_ENTRY
_EMULATOR_PORT_ACCESS_TYPE
Definition: miniport.h:33
@ Ushort
Definition: miniport.h:35
@ Uchar
Definition: miniport.h:34
@ IrqPriorityUndefined
Definition: miniport.h:138
@ IrqPriorityHigh
Definition: miniport.h:141
@ IrqPriorityNormal
Definition: miniport.h:140
@ IrqPriorityLow
Definition: miniport.h:139
enum _DMA_SPEED * PDMA_SPEED
Definition: miniport.h:40
PVOID Routine
Definition: miniport.h:46
ULONG BasePort
Definition: miniport.h:41
ULONG NumConsecutivePorts
Definition: miniport.h:42
UCHAR AccessMode
Definition: miniport.h:44
EMULATOR_PORT_ACCESS_TYPE AccessType
Definition: miniport.h:43
UCHAR StringSupport
Definition: miniport.h:45
PVOID Context
Definition: miniport.h:123
USHORT Version
Definition: miniport.h:122
USHORT Size
Definition: miniport.h:121
PINTERFACE_REFERENCE InterfaceReference
Definition: miniport.h:124
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: miniport.h:125
KAFFINITY TargetedProcessors
Definition: edit.c:88
struct _IO_RESOURCE_DESCRIPTOR::@21::@26 Generic
struct _IO_RESOURCE_DESCRIPTOR::@21::@28 BusNumber
union _IO_RESOURCE_DESCRIPTOR::@21 u
struct _IO_RESOURCE_DESCRIPTOR::@21::@29 ConfigData
struct _IO_RESOURCE_DESCRIPTOR::@2047::@2056 Memory40
ULONG MaximumChannel
Definition: edit.c:92
struct _IO_RESOURCE_DESCRIPTOR::@2047::@2058 Memory64
struct _IO_RESOURCE_DESCRIPTOR::@21::@27 DevicePrivate
IRQ_DEVICE_POLICY AffinityPolicy
Definition: edit.c:85
struct _IO_RESOURCE_DESCRIPTOR::@21::@25 Dma
ULONG MinimumChannel
Definition: edit.c:91
struct _IO_RESOURCE_DESCRIPTOR::@2047::@2057 Memory48
PHYSICAL_ADDRESS MaximumAddress
Definition: edit.c:70
struct _IO_RESOURCE_DESCRIPTOR::@21::@22 Port
struct _IO_RESOURCE_DESCRIPTOR::@21::@24 Interrupt
PHYSICAL_ADDRESS MinimumAddress
Definition: edit.c:69
IRQ_PRIORITY PriorityPolicy
Definition: edit.c:87
UCHAR ShareDisposition
Definition: edit.c:61
struct _IO_RESOURCE_DESCRIPTOR::@21::@23 Memory
#define NTAPI
Definition: typedefs.h:36
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
unsigned long Ulong
Definition: utypes.h:42
VOID(NTAPI * PINTERFACE_REFERENCE)(PVOID Context)
Definition: iotypes.h:788
VOID(NTAPI * PINTERFACE_DEREFERENCE)(PVOID Context)
Definition: iotypes.h:792
unsigned char UCHAR
Definition: xmlstorage.h:181