wininet: Don't strip the port from URLs returned by InternetQueryOption(INTERNET_OPTI...
[wine] / include / ddk / ntddk.h
1 /*
2  * Copyright 2008 Francois Gouget for CodeWeavers
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #ifndef _NTDDK_
20 #define _NTDDK_
21
22 /* Note: We will probably have to duplicate everything ultimately :-( */
23 #include <ddk/wdm.h>
24
25 #include <excpt.h>
26 /* FIXME: #include <ntdef.h> */
27 #include <ntstatus.h>
28 /* FIXME: #include <bugcodes.h> */
29 /* FIXME: #include <ntiologc.h> */
30
31
32 typedef enum _BUS_DATA_TYPE
33 {
34     ConfigurationSpaceUndefined = -1,
35     Cmos,
36     EisaConfiguration,
37     Pos,
38     CbusConfiguration,
39     PCIConfiguration,
40     VMEConfiguration,
41     NuBusConfiguration,
42     PCMCIAConfiguration,
43     MPIConfiguration,
44     MPSAConfiguration,
45     PNPISAConfiguration,
46     MaximumBusDataType
47 } BUS_DATA_TYPE, *PBUS_DATA_TYPE;
48
49 typedef struct _CONFIGURATION_INFORMATION
50 {
51     ULONG DiskCount;
52     ULONG FloppyCount;
53     ULONG CdRomCount;
54     ULONG TapeCount;
55     ULONG ScsiPortCount;
56     ULONG SerialCount;
57     ULONG ParallelCount;
58     BOOLEAN AtDiskPrimaryAddressClaimed;
59     BOOLEAN AtDiskSecondaryAddressClaimed;
60     ULONG Version;
61     ULONG MediumChangerCount;
62 } CONFIGURATION_INFORMATION, *PCONFIGURATION_INFORMATION;
63
64 typedef enum _CONFIGURATION_TYPE
65 {
66     ArcSystem = 0,
67     CentralProcessor,
68     FloatingPointProcessor,
69     PrimaryIcache,
70     PrimaryDcache,
71     SecondaryIcache,
72     SecondaryDcache,
73     SecondaryCache,
74     EisaAdapter,
75     TcAdapter,
76     ScsiAdapter,
77     DtiAdapter,
78     MultiFunctionAdapter,
79     DiskController,
80     TapeController,
81     CdromController,
82     WormController,
83     SerialController,
84     NetworkController,
85     DisplayController,
86     ParallelController,
87     PointerController,
88     KeyboardController,
89     AudioController,
90     OtherController,
91     DiskPeripheral,
92     FloppyDiskPeripheral,
93     TapePeripheral,
94     ModemPeripheral,
95     MonitorPeripheral,
96     PrinterPeripheral,
97     PointerPeripheral,
98     KeyboardPeripheral,
99     TerminalPeripheral,
100     OtherPeripheral,
101     LinePeripheral,
102     NetworkPeripheral,
103     SystemMemory,
104     DockingInformation,
105     RealModeIrqRoutingTable,
106     RealModePCIEnumeration,
107     MaximunType
108 } CONFIGURATION_TYPE, *PCONFIGURATION_TYPE;
109
110 typedef struct _IMAGE_INFO
111 {
112     union
113     {
114         ULONG Properties;
115         struct
116         {
117             ULONG ImageAddressingMode  : 8;
118             ULONG SystemModeImage      : 1;
119             ULONG ImageMappedToAllPids : 1;
120             ULONG ExtendedInfoPresent  : 1;
121             ULONG Reserved             : 21;
122         };
123     };
124     PVOID  ImageBase;
125     ULONG  ImageSelector;
126     SIZE_T ImageSize;
127     ULONG  ImageSectionNumber;
128 } IMAGE_INFO, *PIMAGE_INFO;
129
130 typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION
131 {
132   LARGE_INTEGER ValidDataLength;
133 } FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION;
134
135 typedef VOID (WINAPI *PDRIVER_REINITIALIZE)(PDRIVER_OBJECT,PVOID,ULONG);
136 typedef VOID (WINAPI *PLOAD_IMAGE_NOTIFY_ROUTINE)(PUNICODE_STRING,HANDLE,PIMAGE_INFO);
137 typedef NTSTATUS (WINAPI *PIO_QUERY_DEVICE_ROUTINE)(PVOID,PUNICODE_STRING,INTERFACE_TYPE,ULONG,
138             PKEY_VALUE_FULL_INFORMATION*,CONFIGURATION_TYPE,ULONG,PKEY_VALUE_FULL_INFORMATION*);
139
140 NTSTATUS  WINAPI IoQueryDeviceDescription(PINTERFACE_TYPE,PULONG,PCONFIGURATION_TYPE,PULONG,
141                                   PCONFIGURATION_TYPE,PULONG,PIO_QUERY_DEVICE_ROUTINE,PVOID);
142 void      WINAPI IoRegisterDriverReinitialization(PDRIVER_OBJECT,PDRIVER_REINITIALIZE,PVOID);
143 NTSTATUS  WINAPI IoRegisterShutdownNotification(PDEVICE_OBJECT);
144 NTSTATUS  WINAPI PsSetLoadImageNotifyRoutine(PLOAD_IMAGE_NOTIFY_ROUTINE);
145
146 #endif