~ubuntu-branches/debian/squeeze/ndiswrapper/squeeze

« back to all changes in this revision

Viewing changes to driver/winnt_types.h

  • Committer: Bazaar Package Importer
  • Author(s): Andres Salomon
  • Date: 2005-04-10 15:32:12 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 hoary)
  • Revision ID: james.westby@ubuntu.com-20050410153212-eelmp2g0ym3t89f8
Tags: 1.1-4
Argh, missed a bit w/ amd64 support; it should build now.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
 
3
 *
 
4
 *  This program is free software; you can redistribute it and/or modify
 
5
 *  it under the terms of the GNU General Public License as published by
 
6
 *  the Free Software Foundation; either version 2 of the License, or
 
7
 *  (at your option) any later version.
 
8
 *
 
9
 *  This program 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
 
12
 *  GNU General Public License for more details.
 
13
 *
 
14
 */
 
15
 
 
16
#ifndef WINNT_TYPES_H
 
17
#define WINNT_TYPES_H
 
18
 
 
19
#define TRUE 1
 
20
#define FALSE 0
 
21
 
 
22
#define PASSIVE_LEVEL 0
 
23
#define DISPATCH_LEVEL 2
 
24
 
 
25
#define STATUS_WAIT_0                   0
 
26
#define STATUS_SUCCESS                  0
 
27
#define STATUS_ALERTED                  0x00000101
 
28
#define STATUS_TIMEOUT                  0x00000102
 
29
#define STATUS_PENDING                  0x00000103
 
30
#define STATUS_FAILURE                  0xC0000001
 
31
#define STATUS_INVALID_PARAMETER        0xC000000D
 
32
#define STATUS_MORE_PROCESSING_REQUIRED 0xC0000016
 
33
#define STATUS_BUFFER_TOO_SMALL         0xC0000023
 
34
#define STATUS_RESOURCES                0xC000009A
 
35
#define STATUS_NOT_SUPPORTED            0xC00000BB
 
36
#define STATUS_INVALID_PARAMETER        0xC000000D
 
37
#define STATUS_INVALID_PARAMETER_2      0xC00000F0
 
38
#define STATUS_CANCELLED                0xC0000120
 
39
 
 
40
#define IS_PENDING                      0x01
 
41
#define CALL_ON_CANCEL                  0x20
 
42
#define CALL_ON_SUCCESS                 0x40
 
43
#define CALL_ON_ERROR                   0x80
 
44
 
 
45
#define IRP_MJ_CREATE                   0x0
 
46
#define IRP_MJ_DEVICE_CONTROL           0x0E
 
47
#define IRP_MJ_INTERNAL_DEVICE_CONTROL  0x0F
 
48
#define IRP_MJ_MAXIMUM_FUNCTION           0x1b
 
49
 
 
50
#define THREAD_WAIT_OBJECTS 3
 
51
#define MAX_WAIT_OBJECTS 64
 
52
 
 
53
#define NOTIFICATION_TIMER 1
 
54
 
 
55
#define LOW_PRIORITY            1
 
56
#define LOW_REALTIME_PRIORITY   16
 
57
#define HIGH_PRIORITY           32
 
58
#define MAXIMUM_PRIORITY        32
 
59
 
 
60
#ifdef CONFIG_X86_64
 
61
#define STDCALL
 
62
#define _FASTCALL
 
63
#define FASTCALL_DECL_1(decl1) decl1
 
64
#define FASTCALL_DECL_2(decl1,decl2) decl1, decl2
 
65
#define FASTCALL_DECL_3(decl1,decl2,decl3) decl1, decl2, decl3
 
66
#define FASTCALL_ARGS_1(arg1) arg1
 
67
#define FASTCALL_ARGS_2(arg1,arg2) arg1, arg2
 
68
#define FASTCALL_ARGS_3(arg1,arg2,arg3) arg1, arg2, arg3
 
69
#else 
 
70
#define STDCALL __attribute__((__stdcall__, regparm(0)))
 
71
#define _FASTCALL __attribute__((__stdcall__)) __attribute__((regparm (3)))
 
72
#define FASTCALL_DECL_1(decl1) int _dummy1_, int _dummy2_, decl1
 
73
#define FASTCALL_DECL_2(decl1,decl2) int _dummy1_, decl2, decl1
 
74
#define FASTCALL_DECL_3(decl1,decl2,decl3) int _dummy1_, decl2, decl1, decl3
 
75
#define FASTCALL_ARGS_1(arg1) 0, 0, arg1
 
76
#define FASTCALL_ARGS_2(arg1,arg2) 0, arg2, arg1
 
77
#define FASTCALL_ARGS_3(arg1,arg2,arg3) 0, arg2, arg1, arg3
 
78
#endif
 
79
 
 
80
#define NOREGPARM __attribute__((regparm(0)))
 
81
#define packed __attribute__((packed))
 
82
 
 
83
typedef u8      BOOLEAN;
 
84
typedef u8      BYTE;
 
85
typedef u8      *LPBYTE;
 
86
typedef s8      CHAR;
 
87
typedef u8      UCHAR;
 
88
typedef s16     SHORT;
 
89
typedef u16     USHORT;
 
90
typedef u16     WORD;
 
91
typedef s32     INT;
 
92
typedef u32     UINT;
 
93
typedef u32     DWORD;
 
94
typedef u32     LONG;
 
95
typedef u32     ULONG;
 
96
typedef u64     ULONGLONG;
 
97
typedef u64     ULONGULONG;
 
98
 
 
99
typedef CHAR CCHAR;
 
100
typedef SHORT wchar_t;
 
101
typedef SHORT CSHORT;
 
102
typedef long long LARGE_INTEGER;
 
103
 
 
104
typedef LONG NTSTATUS;
 
105
 
 
106
typedef LONG KPRIORITY;
 
107
typedef LARGE_INTEGER PHYSICAL_ADDRESS;
 
108
typedef UCHAR KIRQL;
 
109
typedef CHAR KPROCESSOR_MODE;
 
110
 
 
111
/* ULONG_PTR is 32 bits on 32-bit platforms and 64 bits on 64-bit
 
112
 * platform, which is same as 'unsigned long' in Linux */
 
113
typedef unsigned long ULONG_PTR;
 
114
 
 
115
typedef ULONG_PTR SIZE_T;
 
116
typedef ULONG_PTR       KAFFINITY;
 
117
 
 
118
struct ansi_string {
 
119
        USHORT len;
 
120
        USHORT buflen;
 
121
        char *buf;
 
122
};
 
123
 
 
124
struct unicode_string {
 
125
        USHORT len;
 
126
        USHORT buflen;
 
127
        wchar_t *buf;
 
128
};
 
129
 
 
130
struct slist_entry {
 
131
        struct slist_entry *next;
 
132
};
 
133
 
 
134
union slist_head {
 
135
        ULONGLONG align;
 
136
        struct {
 
137
                struct slist_entry  *next;
 
138
                USHORT depth;
 
139
                USHORT sequence;
 
140
        } list;
 
141
};
 
142
 
 
143
struct list_entry {
 
144
        struct list_entry *fwd_link;
 
145
        struct list_entry *bwd_link;
 
146
};
 
147
 
 
148
struct dispatch_header {
 
149
        UCHAR type;
 
150
        UCHAR absolute;
 
151
        UCHAR size;
 
152
        UCHAR inserted;
 
153
        LONG signal_state;
 
154
        struct list_head wait_list_head;
 
155
};
 
156
 
 
157
struct kevent {
 
158
        struct dispatch_header header;
 
159
};
 
160
 
 
161
typedef ULONG_PTR KSPIN_LOCK;
 
162
 
 
163
struct kdpc {
 
164
        SHORT type;
 
165
        UCHAR number;
 
166
        UCHAR importance;
 
167
        struct list_entry dpc_list_entry;
 
168
 
 
169
        void *func;
 
170
        void *ctx;
 
171
        void *arg1;
 
172
        void *arg2;
 
173
        KSPIN_LOCK lock;
 
174
};
 
175
 
 
176
enum pool_type {
 
177
        NonPagedPool,
 
178
        PagedPool,
 
179
        NonPagedPoolMustSucceed,
 
180
        DontUseThisType,
 
181
        NonPagedPoolCacheAligned,
 
182
        PagedPoolCacheAligned,
 
183
        NonPagedPoolCacheAlignedMustS
 
184
};
 
185
 
 
186
enum memory_caching_type_orig {
 
187
        MmFrameBufferCached = 2
 
188
};
 
189
 
 
190
enum memory_caching_type {
 
191
        MmNonCached = FALSE,
 
192
        MmCached = TRUE,
 
193
        MmWriteCombined = MmFrameBufferCached,
 
194
        MmHardwareCoherentCached,
 
195
        MmNonCachedUnordered,
 
196
        MmUSWCCached,
 
197
        MmMaximumCacheType
 
198
};
 
199
 
 
200
enum lock_operation {
 
201
        IoReadAccess,
 
202
        IoWriteAccess,
 
203
        IoModifyAccess
 
204
};
 
205
 
 
206
struct mdl {
 
207
        struct mdl* next;
 
208
        CSHORT size;
 
209
        CSHORT flags;
 
210
        void *process;
 
211
        void *mappedsystemva;
 
212
        void *startva;
 
213
        ULONG bytecount;
 
214
        ULONG byteoffset;
 
215
};
 
216
 
 
217
#define MDL_MAPPED_TO_SYSTEM_VA         0x0001
 
218
#define MDL_PAGES_LOCKED                0x0002
 
219
#define MDL_SOURCE_IS_NONPAGED_POOL     0x0004
 
220
#define MDL_ALLOCATED_FIXED_SIZE        0x0008
 
221
#define MDL_PARTIAL                     0x0010
 
222
#define MDL_PARTIAL_HAS_BEEN_MAPPED     0x0020
 
223
#define MDL_IO_PAGE_READ                0x0040
 
224
#define MDL_WRITE_OPERATION             0x0080
 
225
#define MDL_PARENT_MAPPED_SYSTEM_VA     0x0100
 
226
#define MDL_FREE_EXTRA_PTES             0x0200
 
227
#define MDL_IO_SPACE                    0x0800
 
228
#define MDL_NETWORK_HEADER              0x1000
 
229
#define MDL_MAPPING_CAN_FAIL            0x2000
 
230
#define MDL_ALLOCATED_MUST_SUCCEED      0x4000
 
231
#define MDL_CACHE_ALLOCATED             0x8000
 
232
 
 
233
#define MmGetMdlBaseVa(mdl) ((mdl)->startva)
 
234
#define MmGetMdlByteCount(mdl) ((mdl)->bytecount)
 
235
#define MmGetMdlVirtualAddress(mdl) ((void *)((char *)(mdl)->startva +  \
 
236
                                              (mdl)->byteoffset))
 
237
#define MmGetMdlByteOffset(mdl) ((mdl)->byteoffset)
 
238
#define MmGetSystemAddressForMdl(mdl) ((mdl)->mappedsystemva)
 
239
#define MmInitializeMdl(mdl, baseva, length) {                          \
 
240
                (mdl)->next = NULL;                                     \
 
241
                (mdl)->size = MmSizeOfMdl(baseva, length);              \
 
242
                (mdl)->flags = 0;                                       \
 
243
                (mdl)->startva = (void *)((ULONG_PTR)baseva &           \
 
244
                                          ~(PAGE_SIZE - 1));            \
 
245
                (mdl)->byteoffset = (ULONG)((ULONG_PTR)baseva &         \
 
246
                                            (PAGE_SIZE - 1));           \
 
247
                (mdl)->bytecount = length;                              \
 
248
        }
 
249
 
 
250
struct device_queue_entry {
 
251
        struct list_entry list_entry;
 
252
        ULONG sort_key;
 
253
        BOOLEAN inserted;
 
254
};
 
255
 
 
256
struct wait_ctx_block {
 
257
        struct device_queue_entry wait_queue_entry;
 
258
        void *dev_routine;
 
259
        void *dev_ctx;
 
260
        ULONG map_reg_count;
 
261
        void *current_irp;
 
262
        void *buffer_chaining_dpc;
 
263
};
 
264
 
 
265
struct kdevice_queue {
 
266
        USHORT type;
 
267
        USHORT size;
 
268
        struct list_entry devlist_head;
 
269
        KSPIN_LOCK lock;
 
270
        BOOLEAN busy;
 
271
};
 
272
 
 
273
struct kdpc;
 
274
struct irp;
 
275
 
 
276
struct device_object {
 
277
        SHORT type;
 
278
        USHORT size;
 
279
        LONG ref_count;
 
280
        void *drv_obj;
 
281
        struct device_object *next_dev;
 
282
        void *attached_dev;
 
283
        struct irp *current_irp;
 
284
        void *io_timer;
 
285
        ULONG flags;
 
286
        ULONG characteristics;
 
287
        void *vpb;
 
288
        void *dev_ext;
 
289
        BYTE stack_size;
 
290
        union {
 
291
                struct list_entry list_entry;
 
292
                struct wait_ctx_block wcb;
 
293
        } queue;
 
294
        ULONG align_req;
 
295
        struct kdevice_queue dev_queue;
 
296
        struct kdpc dpc;
 
297
        UINT active_threads;
 
298
        void *security_desc;
 
299
        struct kevent dev_lock;
 
300
        USHORT sector_size;
 
301
        USHORT spare;
 
302
        void *dev_obj_ext;
 
303
        void *reserved;
 
304
 
 
305
        /* ndiswrapper-specific data */
 
306
        union {
 
307
                struct usb_device *usb;
 
308
        } device;
 
309
        void *handle;
 
310
};
 
311
 
 
312
struct io_status_block {
 
313
        NTSTATUS status;
 
314
        ULONG status_info;
 
315
};
 
316
 
 
317
#ifdef CONFIG_X86_64
 
318
#define POINTER_ALIGNMENT
 
319
#else
 
320
#define POINTER_ALIGNMENT __attribute__((aligned(8)))
 
321
#endif
 
322
 
 
323
#ifndef CONFIG_X86_64
 
324
#pragma pack(push,4)
 
325
#endif
 
326
struct io_stack_location {
 
327
        UCHAR major_fn;
 
328
        UCHAR minor_fn;
 
329
        UCHAR flags;
 
330
        UCHAR control;
 
331
        union {
 
332
                struct {
 
333
                        void *security_context;
 
334
                        ULONG options;
 
335
                        USHORT POINTER_ALIGNMENT file_attributes;
 
336
                        USHORT share_access;
 
337
                        ULONG POINTER_ALIGNMENT ea_length;
 
338
                } create;
 
339
                struct {
 
340
                        ULONG length;
 
341
                        ULONG POINTER_ALIGNMENT key;
 
342
                        LARGE_INTEGER byte_offset;
 
343
                } read;
 
344
                /* FIXME: this structure is not complete */
 
345
                struct {
 
346
                        ULONG output_buf_len;
 
347
                        ULONG input_buf_len; /*align to pointer size*/
 
348
                        ULONG code; /*align to pointer size*/
 
349
                        void *type3_input_buf;
 
350
                } ioctl;
 
351
                struct {
 
352
                        void *arg1;
 
353
                        void *arg2;
 
354
                        void *arg3;
 
355
                        void *arg4;
 
356
                } generic;
 
357
        } params;
 
358
        struct device_object *dev_obj;
 
359
        void *file_obj;
 
360
        ULONG (*completion_handler)(struct device_object *,
 
361
                                    struct irp *, void *) STDCALL;
 
362
        void *handler_arg;
 
363
};
 
364
#ifndef CONFIG_X86_64
 
365
#pragma pack(pop)
 
366
#endif
 
367
 
 
368
struct kapc {
 
369
        CSHORT type;
 
370
        CSHORT size;
 
371
        ULONG spare0;
 
372
        struct kthread *thread;
 
373
        struct list_entry apc_list_entry;
 
374
        void *kernele_routine;
 
375
        void *rundown_routine;
 
376
        void *normal_routine;
 
377
        void *normal_context;
 
378
        void *sys_arg1;
 
379
        void *sys_arg2;
 
380
        CCHAR apc_state_index;
 
381
        KPROCESSOR_MODE apc_mode;
 
382
        BOOLEAN inserted;
 
383
};
 
384
 
 
385
struct kdevice_queue_entry {
 
386
        struct list_entry dev_list_entry;
 
387
        ULONG sort_key;
 
388
        BOOLEAN inserted;
 
389
};
 
390
 
 
391
enum irp_work_type {
 
392
        IRP_WORK_NONE,
 
393
        IRP_WORK_COMPLETE,
 
394
        IRP_WORK_CANCEL,
 
395
};
 
396
 
 
397
struct irp {
 
398
        SHORT type;
 
399
        USHORT size;
 
400
        struct mdl *mdl;
 
401
        ULONG flags;
 
402
        union {
 
403
                struct irp *master_irp;
 
404
                void *sys_buf;
 
405
        } associated_irp;
 
406
 
 
407
        struct list_entry thread_list_entry;
 
408
 
 
409
        struct io_status_block io_status;
 
410
        KPROCESSOR_MODE requestor_mode;
 
411
        BOOLEAN pending_returned;
 
412
        CHAR stack_size;
 
413
        CHAR stack_pos;
 
414
        BOOLEAN cancel;
 
415
        KIRQL cancel_irql;
 
416
 
 
417
        CCHAR apc_env;
 
418
        UCHAR alloc_flags;
 
419
 
 
420
        struct io_status_block *user_status;
 
421
        struct kevent *user_event;
 
422
 
 
423
        union {
 
424
                struct {
 
425
                        void *user_apc_routine;
 
426
                        void *user_apc_context;
 
427
                } async_params;
 
428
                LARGE_INTEGER alloc_size;
 
429
        } overlay;
 
430
 
 
431
        void (*cancel_routine)(struct device_object *, struct irp *) STDCALL;
 
432
        void *user_buf;
 
433
 
 
434
        union {
 
435
                struct {
 
436
                        union {
 
437
                                struct kdevice_queue_entry dev_q_entry;
 
438
                                struct {
 
439
                                        void *driver_context[4];
 
440
                                } context;
 
441
                        } dev_q;
 
442
                        void *thread;
 
443
                        char *aux_buf;
 
444
                        struct {
 
445
                                struct list_entry list_entry;
 
446
                                union {
 
447
                                        struct io_stack_location *
 
448
                                        current_stack_location;
 
449
                                        ULONG packet_type;
 
450
                                } packet;
 
451
                        } packet_list;
 
452
                        void *file_object;
 
453
                } overlay;
 
454
                struct kapc apc;
 
455
                void *completion_key;
 
456
        } tail;
 
457
 
 
458
        /* ndiswrapper extension */
 
459
        enum irp_work_type irp_work_type;
 
460
        struct list_head completed_list;
 
461
        struct list_head cancel_list;
 
462
};
 
463
 
 
464
#define IRP_CUR_STACK_LOC(irp)                                          \
 
465
        (irp)->tail.overlay.packet_list.packet.current_stack_location
 
466
#define IRP_DRIVER_CONTEXT(irp)                                 \
 
467
        (irp)->tail.overlay.dev_q.context.driver_context
 
468
 
 
469
enum nt_obj_type {
 
470
        NT_OBJ_EVENT,
 
471
        NT_OBJ_MUTEX,
 
472
        NT_OBJ_THREAD,
 
473
        NT_OBJ_TIMER,
 
474
};
 
475
 
 
476
struct common_body_header {
 
477
        CSHORT type;
 
478
        CSHORT size;
 
479
};
 
480
 
 
481
struct object_header {
 
482
        struct unicode_string name;
 
483
        struct list_entry entry;
 
484
        LONG ref_count;
 
485
        LONG handle_count;
 
486
        BOOLEAN close_in_process;
 
487
        BOOLEAN permanent;
 
488
        BOOLEAN inherit;
 
489
        void *parent;
 
490
        void *object_type;
 
491
        void *security_desc;
 
492
        CSHORT type;
 
493
        CSHORT size;
 
494
};
 
495
 
 
496
struct ktimer {
 
497
        struct dispatch_header dispatch_header;
 
498
        ULONGLONG due_time;
 
499
        struct list_entry timer_list;
 
500
        /* the space for kdpc is used for wrapper timer */
 
501
        /* struct kdpc *kdpc; */
 
502
        struct wrapper_timer *wrapper_timer;
 
503
        LONG period;
 
504
};
 
505
 
 
506
struct kmutex {
 
507
        struct dispatch_header dispatch_header;
 
508
        union {
 
509
                struct list_entry list_entry;
 
510
                UINT count;
 
511
        } u;
 
512
        void *owner_thread;
 
513
        BOOLEAN abandoned;
 
514
        BOOLEAN apc_disable;
 
515
};
 
516
 
 
517
enum work_queue_type {
 
518
        CriticalWorkQueue,
 
519
        DelayedWorkQueue,
 
520
        HyperCriticalWorkQueue,
 
521
        MaximumWorkQueue
 
522
};
 
523
 
 
524
enum wait_type {
 
525
        WaitAll,
 
526
        WaitAny
 
527
};
 
528
 
 
529
struct wait_block {
 
530
        struct list_entry list_entry;
 
531
        void *thread;
 
532
        struct dispatch_header *object;
 
533
        struct wait_block *next;
 
534
        USHORT wait_key;
 
535
        USHORT wait_type;
 
536
};
 
537
 
 
538
enum event_type {
 
539
        NotificationEvent,
 
540
        SynchronizationEvent
 
541
};
 
542
 
 
543
enum mm_page_priority {
 
544
        LowPagePriority,
 
545
        NormalPagePriority = 16,
 
546
        HighPagePriority = 32
 
547
};
 
548
 
 
549
enum kinterrupt_mode {
 
550
        LevelSensitive,
 
551
        Latched
 
552
};
 
553
 
 
554
enum ntos_wait_reason {
 
555
        Executive,
 
556
        FreePage,
 
557
        PageIn,
 
558
        PoolAllocation,
 
559
        DelayExecution,
 
560
        Suspended,
 
561
        UserRequest,
 
562
        WrExecutive,
 
563
        WrFreePage,
 
564
        WrPageIn,
 
565
        WrPoolAllocation,
 
566
        WrDelayExecution,
 
567
        WrSuspended,
 
568
        WrUserRequest,
 
569
        WrEventPair,
 
570
        WrQueue,
 
571
        WrLpcReceive,
 
572
        WrLpcReply,
 
573
        WrVirtualMemory,
 
574
        WrPageOut,
 
575
        WrRendezvous,
 
576
        Spare2,
 
577
        Spare3,
 
578
        Spare4,
 
579
        Spare5,
 
580
        Spare6,
 
581
        WrKernel,
 
582
        MaximumWaitReason
 
583
};
 
584
 
 
585
typedef enum ntos_wait_reason KWAIT_REASON;
 
586
 
 
587
typedef STDCALL void *LOOKASIDE_ALLOC_FUNC(enum pool_type pool_type,
 
588
                                           SIZE_T size, ULONG tag);
 
589
typedef STDCALL void LOOKASIDE_FREE_FUNC(void *);
 
590
 
 
591
struct npaged_lookaside_list {
 
592
        union slist_head head;
 
593
        USHORT depth;
 
594
        USHORT maxdepth;
 
595
        ULONG totalallocs;
 
596
        ULONG allocmisses;
 
597
        ULONG totalfrees;
 
598
        ULONG freemisses;
 
599
        enum pool_type pool_type;
 
600
        ULONG tag;
 
601
        ULONG size;
 
602
        LOOKASIDE_ALLOC_FUNC *alloc_func;
 
603
        LOOKASIDE_FREE_FUNC *free_func;
 
604
        struct list_entry listent;
 
605
        ULONG lasttotallocs;
 
606
        ULONG lastallocmisses;
 
607
        ULONG pad[2];
 
608
        KSPIN_LOCK obsolete;
 
609
};
 
610
 
 
611
enum device_registry_property {
 
612
        DevicePropertyDeviceDescription,
 
613
        DevicePropertyHardwareID,
 
614
        DevicePropertyCompatibleIDs,
 
615
        DevicePropertyBootConfiguration,
 
616
        DevicePropertyBootConfigurationTranslated,
 
617
        DevicePropertyClassName,
 
618
        DevicePropertyClassGuid,
 
619
        DevicePropertyDriverKeyName,
 
620
        DevicePropertyManufacturer,
 
621
        DevicePropertyFriendlyName,
 
622
        DevicePropertyLocationInformation,
 
623
        DevicePropertyPhysicalDeviceObjectName,
 
624
        DevicePropertyBusTypeGuid,
 
625
        DevicePropertyLegacyBusType,
 
626
        DevicePropertyBusNumber,
 
627
        DevicePropertyEnumeratorName,
 
628
        DevicePropertyAddress,
 
629
        DevicePropertyUINumber,
 
630
        DevicePropertyInstallState,
 
631
        DevicePropertyRemovalPolicy
 
632
};
 
633
 
 
634
enum trace_information_class {
 
635
        TraceIdClass,
 
636
        TraceHandleClass,
 
637
        TraceEnableFlagsClass,
 
638
        TraceEnableLevelClass,
 
639
        GlobalLoggerHandleClass,
 
640
        EventLoggerHandleClass,
 
641
        AllLoggerHandlesClass,
 
642
        TraceHandleByNameClass
 
643
};
 
644
 
 
645
#endif /* WINNT_TYPES_H */