source: pacpusframework/branches/2.0-beta1/include/PacpusCityVIP/Video/sensor/C1394Camera/1394common.h@ 89

Last change on this file since 89 was 89, checked in by morasjul, 11 years ago

PACPUS 2.0 Beta deployed in new branch

Major changes:
-Add communication interface between components
-Add examples for communications interface (TestComponents)
-Move to Qt5 support

  • Property svn:executable set to *
File size: 25.3 KB
Line 
1/*++
2
3Copyright (c) 1999 Microsoft Corporation
4
5Module Name:
6
7 1394common.h
8
9Abstract
10
11 The common header file for 1394camera.dll and 1394cmdr.sys
12 Contains Control Codes and Associated Structures
13
14Dependencies:
15 1394camera.dll: included from 1394camapi.h, do *not* include directly
16 1394cmdr.sys: include after 1394.h
17
18Author:
19
20 Kashif Hasan (khasan) 3/18/01
21
22Revision History:
23Date Who What
24-------- --------- ------------------------------------------------------------
257/13/99 pbinder birth (parts taken from 1394diag.h)
263/18/01 khasan removed 1394vdev/1394diag internal information
278/18/02 cbaker put the structs back in so this can be the only shared header
28
29--*/
30
31
32#ifndef _1394_COMMON_H_
33#define _1394_COMMON_H_
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39// {F390415A-2EAF-4fd4-ACCC-3D17D38F2898}
40DEFINE_GUID(GUID_1394CMDR, 0xf390415a, 0x2eaf, 0x4fd4, 0xac, 0xcc, 0x3d, 0x17, 0xd3, 0x8f, 0x28, 0x98);
41#define GUID_1394CMDR_STR "F390415A-2EAF-4fd4-ACCC-3D17D38F2898"
42
43//
44// these guys are meant to be called from a ring 3 app
45// call through the port device object
46//
47#define IOCTL_1394_TOGGLE_ENUM_TEST_ON CTL_CODE( \
48 FILE_DEVICE_UNKNOWN, \
49 0x88, \
50 METHOD_BUFFERED, \
51 FILE_ANY_ACCESS \
52 )
53
54#define IOCTL_1394_TOGGLE_ENUM_TEST_OFF CTL_CODE( \
55 FILE_DEVICE_UNKNOWN, \
56 0x89, \
57 METHOD_BUFFERED, \
58 FILE_ANY_ACCESS \
59 )
60
61//
62// IOCTL info, needs to be visible for application
63//
64#define DIAG1394_IOCTL_INDEX 0x0800
65#define CMDR1394_IOCTL_INDEX DIAG1394_IOCTL_INDEX
66
67#define IOCTL_ALLOCATE_ADDRESS_RANGE CTL_CODE( FILE_DEVICE_UNKNOWN, \
68 DIAG1394_IOCTL_INDEX + 0, \
69 METHOD_BUFFERED, \
70 FILE_ANY_ACCESS)
71
72#define IOCTL_FREE_ADDRESS_RANGE CTL_CODE( FILE_DEVICE_UNKNOWN, \
73 DIAG1394_IOCTL_INDEX + 1, \
74 METHOD_BUFFERED, \
75 FILE_ANY_ACCESS)
76
77#define IOCTL_ASYNC_READ CTL_CODE( FILE_DEVICE_UNKNOWN, \
78 DIAG1394_IOCTL_INDEX + 2, \
79 METHOD_BUFFERED, \
80 FILE_ANY_ACCESS)
81
82#define IOCTL_ASYNC_WRITE CTL_CODE( FILE_DEVICE_UNKNOWN, \
83 DIAG1394_IOCTL_INDEX + 3, \
84 METHOD_BUFFERED, \
85 FILE_ANY_ACCESS)
86
87#define IOCTL_ASYNC_LOCK CTL_CODE( FILE_DEVICE_UNKNOWN, \
88 DIAG1394_IOCTL_INDEX + 4, \
89 METHOD_BUFFERED, \
90 FILE_ANY_ACCESS)
91
92#define IOCTL_ISOCH_ALLOCATE_BANDWIDTH CTL_CODE( FILE_DEVICE_UNKNOWN, \
93 DIAG1394_IOCTL_INDEX + 5, \
94 METHOD_BUFFERED, \
95 FILE_ANY_ACCESS)
96
97#define IOCTL_ISOCH_ALLOCATE_CHANNEL CTL_CODE( FILE_DEVICE_UNKNOWN, \
98 DIAG1394_IOCTL_INDEX + 6, \
99 METHOD_BUFFERED, \
100 FILE_ANY_ACCESS)
101
102#define IOCTL_ISOCH_ALLOCATE_RESOURCES CTL_CODE( FILE_DEVICE_UNKNOWN, \
103 DIAG1394_IOCTL_INDEX + 7, \
104 METHOD_BUFFERED, \
105 FILE_ANY_ACCESS)
106
107#define IOCTL_ISOCH_ATTACH_BUFFERS CTL_CODE( FILE_DEVICE_UNKNOWN, \
108 DIAG1394_IOCTL_INDEX + 8, \
109 METHOD_BUFFERED, \
110 FILE_ANY_ACCESS)
111
112#define IOCTL_ISOCH_DETACH_BUFFERS CTL_CODE( FILE_DEVICE_UNKNOWN, \
113 DIAG1394_IOCTL_INDEX + 9, \
114 METHOD_BUFFERED, \
115 FILE_ANY_ACCESS)
116
117#define IOCTL_ISOCH_FREE_BANDWIDTH CTL_CODE( FILE_DEVICE_UNKNOWN, \
118 DIAG1394_IOCTL_INDEX + 10, \
119 METHOD_BUFFERED, \
120 FILE_ANY_ACCESS)
121
122#define IOCTL_ISOCH_FREE_CHANNEL CTL_CODE( FILE_DEVICE_UNKNOWN, \
123 DIAG1394_IOCTL_INDEX + 11, \
124 METHOD_BUFFERED, \
125 FILE_ANY_ACCESS)
126
127#define IOCTL_ISOCH_FREE_RESOURCES CTL_CODE( FILE_DEVICE_UNKNOWN, \
128 DIAG1394_IOCTL_INDEX + 12, \
129 METHOD_BUFFERED, \
130 FILE_ANY_ACCESS)
131
132#define IOCTL_ISOCH_LISTEN CTL_CODE( FILE_DEVICE_UNKNOWN, \
133 DIAG1394_IOCTL_INDEX + 13, \
134 METHOD_BUFFERED, \
135 FILE_ANY_ACCESS)
136
137#define IOCTL_ISOCH_QUERY_CURRENT_CYCLE_TIME CTL_CODE( FILE_DEVICE_UNKNOWN, \
138 DIAG1394_IOCTL_INDEX + 14, \
139 METHOD_BUFFERED, \
140 FILE_ANY_ACCESS)
141
142#define IOCTL_ISOCH_QUERY_RESOURCES CTL_CODE( FILE_DEVICE_UNKNOWN, \
143 DIAG1394_IOCTL_INDEX + 15, \
144 METHOD_BUFFERED, \
145 FILE_ANY_ACCESS)
146
147#define IOCTL_ISOCH_SET_CHANNEL_BANDWIDTH CTL_CODE( FILE_DEVICE_UNKNOWN, \
148 DIAG1394_IOCTL_INDEX + 16, \
149 METHOD_BUFFERED, \
150 FILE_ANY_ACCESS)
151
152#define IOCTL_ISOCH_STOP CTL_CODE( FILE_DEVICE_UNKNOWN, \
153 DIAG1394_IOCTL_INDEX + 17, \
154 METHOD_BUFFERED, \
155 FILE_ANY_ACCESS)
156
157#define IOCTL_ISOCH_TALK CTL_CODE( FILE_DEVICE_UNKNOWN, \
158 DIAG1394_IOCTL_INDEX + 18, \
159 METHOD_BUFFERED, \
160 FILE_ANY_ACCESS)
161
162#define IOCTL_GET_LOCAL_HOST_INFORMATION CTL_CODE( FILE_DEVICE_UNKNOWN, \
163 DIAG1394_IOCTL_INDEX + 19, \
164 METHOD_BUFFERED, \
165 FILE_ANY_ACCESS)
166
167#define IOCTL_GET_1394_ADDRESS_FROM_DEVICE_OBJECT CTL_CODE( FILE_DEVICE_UNKNOWN, \
168 DIAG1394_IOCTL_INDEX + 20, \
169 METHOD_BUFFERED, \
170 FILE_ANY_ACCESS)
171
172#define IOCTL_CONTROL CTL_CODE( FILE_DEVICE_UNKNOWN, \
173 DIAG1394_IOCTL_INDEX + 21, \
174 METHOD_BUFFERED, \
175 FILE_ANY_ACCESS)
176
177#define IOCTL_GET_MAX_SPEED_BETWEEN_DEVICES CTL_CODE( FILE_DEVICE_UNKNOWN, \
178 DIAG1394_IOCTL_INDEX + 22, \
179 METHOD_BUFFERED, \
180 FILE_ANY_ACCESS)
181
182#define IOCTL_SET_DEVICE_XMIT_PROPERTIES CTL_CODE( FILE_DEVICE_UNKNOWN, \
183 DIAG1394_IOCTL_INDEX + 23, \
184 METHOD_BUFFERED, \
185 FILE_ANY_ACCESS)
186
187#define IOCTL_GET_CONFIGURATION_INFORMATION CTL_CODE( FILE_DEVICE_UNKNOWN, \
188 DIAG1394_IOCTL_INDEX + 24, \
189 METHOD_BUFFERED, \
190 FILE_ANY_ACCESS)
191
192#define IOCTL_BUS_RESET CTL_CODE( FILE_DEVICE_UNKNOWN, \
193 DIAG1394_IOCTL_INDEX + 25, \
194 METHOD_BUFFERED, \
195 FILE_ANY_ACCESS)
196
197#define IOCTL_GET_GENERATION_COUNT CTL_CODE( FILE_DEVICE_UNKNOWN, \
198 DIAG1394_IOCTL_INDEX + 26, \
199 METHOD_BUFFERED, \
200 FILE_ANY_ACCESS)
201
202#define IOCTL_SEND_PHY_CONFIGURATION_PACKET CTL_CODE( FILE_DEVICE_UNKNOWN, \
203 DIAG1394_IOCTL_INDEX + 27, \
204 METHOD_BUFFERED, \
205 FILE_ANY_ACCESS)
206
207#define IOCTL_BUS_RESET_NOTIFICATION CTL_CODE( FILE_DEVICE_UNKNOWN, \
208 DIAG1394_IOCTL_INDEX + 28, \
209 METHOD_BUFFERED, \
210 FILE_ANY_ACCESS)
211
212#define IOCTL_ASYNC_STREAM CTL_CODE( FILE_DEVICE_UNKNOWN, \
213 DIAG1394_IOCTL_INDEX + 29, \
214 METHOD_BUFFERED, \
215 FILE_ANY_ACCESS)
216
217#define IOCTL_SET_LOCAL_HOST_INFORMATION CTL_CODE( FILE_DEVICE_UNKNOWN, \
218 DIAG1394_IOCTL_INDEX + 30, \
219 METHOD_BUFFERED, \
220 FILE_ANY_ACCESS)
221
222#define IOCTL_SET_ADDRESS_DATA CTL_CODE( FILE_DEVICE_UNKNOWN, \
223 DIAG1394_IOCTL_INDEX + 40, \
224 METHOD_BUFFERED, \
225 FILE_ANY_ACCESS)
226
227#define IOCTL_GET_ADDRESS_DATA CTL_CODE( FILE_DEVICE_UNKNOWN, \
228 DIAG1394_IOCTL_INDEX + 41, \
229 METHOD_BUFFERED, \
230 FILE_ANY_ACCESS)
231
232#define IOCTL_BUS_RESET_NOTIFY CTL_CODE( FILE_DEVICE_UNKNOWN, \
233 DIAG1394_IOCTL_INDEX + 50, \
234 METHOD_BUFFERED, \
235 FILE_ANY_ACCESS)
236
237#define IOCTL_GET_DIAG_VERSION CTL_CODE( FILE_DEVICE_UNKNOWN, \
238 DIAG1394_IOCTL_INDEX + 51, \
239 METHOD_BUFFERED, \
240 FILE_ANY_ACCESS)
241
242#define IOCTL_GET_CMDR_STATE CTL_CODE( FILE_DEVICE_UNKNOWN, \
243 CMDR1394_IOCTL_INDEX + 52, \
244 METHOD_BUFFERED, \
245 FILE_ANY_ACCESS)
246
247#define IOCTL_RESET_CMDR_STATE CTL_CODE( FILE_DEVICE_UNKNOWN, \
248 CMDR1394_IOCTL_INDEX + 53, \
249 METHOD_BUFFERED, \
250 FILE_ANY_ACCESS)
251
252#define IOCTL_SET_CMDR_TRACELEVEL CTL_CODE( FILE_DEVICE_UNKNOWN, \
253 CMDR1394_IOCTL_INDEX + 54, \
254 METHOD_BUFFERED, \
255 FILE_ANY_ACCESS)
256
257#define IOCTL_READ_REGISTER CTL_CODE( FILE_DEVICE_UNKNOWN, \
258 CMDR1394_IOCTL_INDEX + 55, \
259 METHOD_BUFFERED, \
260 FILE_ANY_ACCESS)
261
262#define IOCTL_WRITE_REGISTER CTL_CODE( FILE_DEVICE_UNKNOWN, \
263 CMDR1394_IOCTL_INDEX + 56, \
264 METHOD_BUFFERED, \
265 FILE_ANY_ACCESS)
266
267#define IOCTL_GET_MODEL_NAME CTL_CODE( FILE_DEVICE_UNKNOWN, \
268 CMDR1394_IOCTL_INDEX + 57, \
269 METHOD_BUFFERED, \
270 FILE_ANY_ACCESS)
271
272#define IOCTL_GET_VENDOR_NAME CTL_CODE( FILE_DEVICE_UNKNOWN, \
273 CMDR1394_IOCTL_INDEX + 58, \
274 METHOD_BUFFERED, \
275 FILE_ANY_ACCESS)
276
277#define IOCTL_GET_CAMERA_SPECIFICATION CTL_CODE( FILE_DEVICE_UNKNOWN, \
278 CMDR1394_IOCTL_INDEX + 59, \
279 METHOD_BUFFERED, \
280 FILE_ANY_ACCESS)
281
282#define IOCTL_GET_CAMERA_UNIQUE_ID CTL_CODE( FILE_DEVICE_UNKNOWN, \
283 CMDR1394_IOCTL_INDEX + 60, \
284 METHOD_BUFFERED, \
285 FILE_ANY_ACCESS)
286
287#define IOCTL_ATTACH_BUFFER CTL_CODE( FILE_DEVICE_UNKNOWN, \
288 CMDR1394_IOCTL_INDEX + 61, \
289 METHOD_IN_DIRECT, \
290 FILE_ANY_ACCESS)
291
292// now for the structures that go with the control codes, to make this a truly "common" header file
293//
294// struct used to pass in with IOCTL_ALLOCATE_ADDRESS_RANGE
295//
296typedef struct _ALLOCATE_ADDRESS_RANGE {
297 ULONG fulAllocateFlags;
298 ULONG fulFlags;
299 ULONG nLength;
300 ULONG MaxSegmentSize;
301 ULONG fulAccessType;
302 ULONG fulNotificationOptions;
303 ADDRESS_OFFSET Required1394Offset;
304 HANDLE hAddressRange;
305 UCHAR Data[1];
306} ALLOCATE_ADDRESS_RANGE, *PALLOCATE_ADDRESS_RANGE;
307
308//
309// struct used to pass in with IOCTL_ASYNC_READ
310//
311typedef struct _ASYNC_READ {
312 ULONG bRawMode;
313 ULONG bGetGeneration;
314 IO_ADDRESS DestinationAddress;
315 ULONG nNumberOfBytesToRead;
316 ULONG nBlockSize;
317 ULONG fulFlags;
318 ULONG ulGeneration;
319 UCHAR Data[4];
320} ASYNC_READ, *PASYNC_READ;
321
322//
323// struct used to pass in with IOCTL_SET_ADDRESS_DATA
324//
325typedef struct _SET_ADDRESS_DATA {
326 HANDLE hAddressRange;
327 ULONG nLength;
328 ULONG ulOffset;
329 UCHAR Data[1];
330} SET_ADDRESS_DATA, *PSET_ADDRESS_DATA,GET_ADDRESS_DATA, *PGET_ADDRESS_DATA;
331
332//
333// struct used to pass in with IOCTL_ASYNC_WRITE
334//
335typedef struct _ASYNC_WRITE {
336 ULONG bRawMode;
337 ULONG bGetGeneration;
338 IO_ADDRESS DestinationAddress;
339 ULONG nNumberOfBytesToWrite;
340 ULONG nBlockSize;
341 ULONG fulFlags;
342 ULONG ulGeneration;
343 UCHAR Data[4];
344} ASYNC_WRITE, *PASYNC_WRITE;
345
346//
347// struct used to pass in with IOCTL_ASYNC_LOCK
348//
349typedef struct _ASYNC_LOCK {
350 ULONG bRawMode;
351 ULONG bGetGeneration;
352 IO_ADDRESS DestinationAddress;
353 ULONG nNumberOfArgBytes;
354 ULONG nNumberOfDataBytes;
355 ULONG fulTransactionType;
356 ULONG fulFlags;
357 ULONG Arguments[2];
358 ULONG DataValues[2];
359 ULONG ulGeneration;
360 ULONG Buffer[2];
361} ASYNC_LOCK, *PASYNC_LOCK;
362
363//
364// struct used to pass in with IOCTL_ASYNC_STREAM
365//
366typedef struct _ASYNC_STREAM {
367 ULONG nNumberOfBytesToStream;
368 ULONG fulFlags;
369 ULONG ulTag;
370 ULONG nChannel;
371 ULONG ulSynch;
372 ULONG nSpeed;
373 UCHAR Data[1];
374} ASYNC_STREAM, *PASYNC_STREAM;
375
376//
377// struct used to pass in with IOCTL_ISOCH_ALLOCATE_BANDWIDTH
378//
379typedef struct _ISOCH_ALLOCATE_BANDWIDTH {
380 ULONG nMaxBytesPerFrameRequested;
381 ULONG fulSpeed;
382 HANDLE hBandwidth;
383 ULONG BytesPerFrameAvailable;
384 ULONG SpeedSelected;
385} ISOCH_ALLOCATE_BANDWIDTH, *PISOCH_ALLOCATE_BANDWIDTH;
386
387//
388// struct used to pass in with IOCTL_ISOCH_ALLOCATE_CHANNEL
389//
390typedef struct _ISOCH_ALLOCATE_CHANNEL {
391 ULONG nRequestedChannel;
392 ULONG Channel;
393 LARGE_INTEGER ChannelsAvailable;
394} ISOCH_ALLOCATE_CHANNEL, *PISOCH_ALLOCATE_CHANNEL;
395
396//
397// struct used to pass in with IOCTL_ISOCH_ALLOCATE_RESOURCES
398//
399typedef struct _ISOCH_ALLOCATE_RESOURCES {
400 ULONG fulSpeed;
401 ULONG fulFlags;
402 ULONG nChannel;
403 ULONG nMaxBytesPerFrame;
404 ULONG nNumberOfBuffers;
405 ULONG nMaxBufferSize;
406 ULONG nQuadletsToStrip;
407 HANDLE hResource;
408} ISOCH_ALLOCATE_RESOURCES, *PISOCH_ALLOCATE_RESOURCES;
409
410//
411// struct used to pass in isoch descriptors
412//
413typedef struct _RING3_ISOCH_DESCRIPTOR {
414 ULONG fulFlags;
415 ULONG ulLength;
416 ULONG nMaxBytesPerFrame;
417 ULONG ulSynch;
418 ULONG ulTag;
419 CYCLE_TIME CycleTime;
420 ULONG bUseCallback;
421 ULONG bAutoDetach;
422 UCHAR Data[1];
423} RING3_ISOCH_DESCRIPTOR, *PRING3_ISOCH_DESCRIPTOR;
424
425//
426// struct used to pass in with IOCTL_ISOCH_ATTACH_BUFFERS
427// also used by IOCTL_ATTACH_BUFFER (the new one)
428//
429typedef struct _ISOCH_ATTACH_BUFFERS {
430 HANDLE hResource;
431 ULONG nNumberOfDescriptors;
432 ULONG ulBufferSize;
433 ULONG pIsochDescriptor;
434 RING3_ISOCH_DESCRIPTOR R3_IsochDescriptor[1];
435} ISOCH_ATTACH_BUFFERS, *PISOCH_ATTACH_BUFFERS;
436
437//
438// struct used to pass in with IOCTL_ISOCH_DETACH_BUFFERS
439//
440typedef struct _ISOCH_DETACH_BUFFERS {
441 HANDLE hResource;
442 ULONG nNumberOfDescriptors;
443 ULONG pIsochDescriptor;
444} ISOCH_DETACH_BUFFERS, *PISOCH_DETACH_BUFFERS;
445
446//
447// struct used to pass in with IOCTL_ISOCH_LISTEN
448//
449typedef struct _ISOCH_LISTEN {
450 HANDLE hResource;
451 ULONG fulFlags;
452 CYCLE_TIME StartTime;
453} ISOCH_LISTEN, *PISOCH_LISTEN;
454
455//
456// struct used to pass in with IOCTL_ISOCH_QUERY_RESOURCES
457//
458typedef struct _ISOCH_QUERY_RESOURCES {
459 ULONG fulSpeed;
460 ULONG BytesPerFrameAvailable;
461 LARGE_INTEGER ChannelsAvailable;
462} ISOCH_QUERY_RESOURCES, *PISOCH_QUERY_RESOURCES;
463
464//
465// struct used to pass in with IOCTL_ISOCH_SET_CHANNEL_BANDWIDTH
466//
467typedef struct _ISOCH_SET_CHANNEL_BANDWIDTH {
468 HANDLE hBandwidth;
469 ULONG nMaxBytesPerFrame;
470} ISOCH_SET_CHANNEL_BANDWIDTH, *PISOCH_SET_CHANNEL_BANDWIDTH;
471
472//
473// struct used to pass in with IOCTL_ISOCH_STOP
474//
475typedef struct _ISOCH_STOP {
476 HANDLE hResource;
477 ULONG fulFlags;
478} ISOCH_STOP, *PISOCH_STOP;
479
480//
481// struct used to pass in with IOCTL_ISOCH_TALK
482//
483typedef struct _ISOCH_TALK {
484 HANDLE hResource;
485 ULONG fulFlags;
486 CYCLE_TIME StartTime;
487} ISOCH_TALK, *PISOCH_TALK;
488
489//
490// struct used to pass in with IOCTL_GET_LOCAL_HOST_INFORMATION
491//
492typedef struct _GET_LOCAL_HOST_INFORMATION {
493 ULONG Status;
494 ULONG nLevel;
495 ULONG ulBufferSize;
496 UCHAR Information[1];
497} GET_LOCAL_HOST_INFORMATION, *PGET_LOCAL_HOST_INFORMATION;
498
499//
500// struct used to pass in with IOCTL_GET_1394_ADDRESS_FROM_DEVICE_OBJECT
501//
502typedef struct _GET_1394_ADDRESS {
503 ULONG fulFlags;
504 NODE_ADDRESS NodeAddress;
505} GET_1394_ADDRESS, *PGET_1394_ADDRESS;
506
507//
508// struct used to pass in with IOCTL_GET_MAX_SPEED_BETWEEN_DEVICES
509//
510typedef struct _GET_MAX_SPEED_BETWEEN_DEVICES {
511 ULONG fulFlags;
512 ULONG ulNumberOfDestinations;
513 ULONG hDestinationDeviceObjects[64];
514 ULONG fulSpeed;
515} GET_MAX_SPEED_BETWEEN_DEVICES, *PGET_MAX_SPEED_BETWEEN_DEVICES;
516
517//
518// struct used to pass in with IOCTL_SET_DEVICE_XMIT_PROPERTIES
519//
520typedef struct _DEVICE_XMIT_PROPERTIES {
521 ULONG fulSpeed;
522 ULONG fulPriority;
523} DEVICE_XMIT_PROPERTIES, *PDEVICE_XMIT_PROPERTIES;
524
525//
526// struct used to pass in with IOCTL_SET_LOCAL_HOST_INFORMATION
527//
528typedef struct _SET_LOCAL_HOST_INFORMATION {
529 ULONG nLevel;
530 ULONG ulBufferSize;
531 UCHAR Information[1];
532} SET_LOCAL_HOST_INFORMATION, *PSET_LOCAL_HOST_INFORMATION;
533
534//
535// define's used to make sure the dll/sys driver are in synch
536//
537#define DIAGNOSTIC_VERSION 1
538#define DIAGNOSTIC_SUB_VERSION 1
539
540//
541// struct used to pass in with IOCTL_GET_CMDR_VERSION
542//
543typedef struct _VERSION_DATA {
544 ULONG ulVersion;
545 ULONG ulSubVersion;
546} VERSION_DATA, *PVERSION_DATA;
547
548//
549// struct for use with reading/writing registers
550//
551
552typedef struct _REGISTER_IOBUF
553{
554 ULONG ulOffset;
555 UCHAR data[4];
556} REGISTER_IOBUF, *PREGISTER_IOBUF;
557
558//
559// struct used to get camera specification information
560//
561
562typedef struct _CAMERA_SPECIFICATION
563{
564 ULONG ulSpecification;
565 ULONG ulVersion;
566} CAMERA_SPECIFICATION, *PCAMERA_SPECIFICATION;
567
568
569#ifdef __cplusplus
570}
571#endif
572
573#endif // #ifndef _1394_COMMON_H_
574
575
Note: See TracBrowser for help on using the repository browser.