home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cset21v5.zip / TOOLKT21 / CPLUS / OS2H / BSEDEV.H < prev    next >
C/C++ Source or Header  |  1993-05-03  |  19KB  |  566 lines

  1. /*static char *SCCSID = "@(#)bsedev.h    6.10 92/03/15";*/
  2. /**************************************************************************\
  3. *                                                                         *
  4. * Module Name: BSEDEV.H                                                   *
  5. *                                                                         *
  6. * OS/2 Structures and constants for use with DosDevIOCtl                  *
  7. *                                                                         *
  8. * Copyright (c) 1987-1992, IBM Corporation                                *
  9. *                                                                         *
  10. \**************************************************************************/
  11.  
  12. #pragma info( none )
  13.    #ifndef __CHKHDR__
  14.       #pragma info( none )
  15.    #endif
  16. #pragma info( restore )
  17. #ifdef __cplusplus
  18.       extern "C" {
  19. #endif
  20.  
  21. #ifndef __BSEDEV__
  22. #define __BSEDEV__
  23.  
  24. #define BSEDEV_INCLUDED
  25.  
  26. /* Input and Output Control Categories */
  27.  
  28. #define IOCTL_ASYNC                        0x0001
  29. #define IOCTL_SCR_AND_PTRDRAW              0x0003
  30. #define IOCTL_KEYBOARD                     0x0004
  31. #define IOCTL_PRINTER                      0x0005
  32. #define IOCTL_LIGHTPEN                     0x0006
  33. #define IOCTL_POINTINGDEVICE               0x0007
  34. #define IOCTL_DISK                         0x0008
  35. #define IOCTL_PHYSICALDISK                 0x0009
  36. #define IOCTL_MONITOR                      0x000A
  37. #define IOCTL_GENERAL                      0x000B
  38.  
  39. /* Serial-Device Control */
  40.  
  41. #define ASYNC_SETBAUDRATE                  0x0041
  42. #define ASYNC_SETLINECTRL                  0x0042
  43. #define ASYNC_TRANSMITIMM                  0x0044
  44. #define ASYNC_SETBREAKOFF                  0x0045
  45. #define ASYNC_SETMODEMCTRL                 0x0046
  46. #define ASYNC_SETBREAKON                   0x004B
  47. #define ASYNC_STOPTRANSMIT                 0x0047
  48. #define ASYNC_STARTTRANSMIT                0x0048
  49. #define ASYNC_SETDCBINFO                   0x0053
  50. #define ASYNC_GETBAUDRATE                  0x0061
  51. #define ASYNC_GETLINECTRL                  0x0062
  52. #define ASYNC_GETCOMMSTATUS                0x0064
  53. #define ASYNC_GETLINESTATUS                0x0065
  54. #define ASYNC_GETMODEMOUTPUT               0x0066
  55. #define ASYNC_GETMODEMINPUT                0x0067
  56. #define ASYNC_GETINQUECOUNT                0x0068
  57. #define ASYNC_GETOUTQUECOUNT               0x0069
  58. #define ASYNC_GETCOMMERROR                 0x006D
  59. #define ASYNC_GETCOMMEVENT                 0x0072
  60. #define ASYNC_GETDCBINFO                   0x0073
  61.  
  62. /* Screen/Pointer-Draw Control */
  63.  
  64. #define SCR_ALLOCLDT                       0x0070
  65. #define SCR_DEALLOCLDT                     0x0071
  66. #define PTR_GETPTRDRAWADDRESS              0x0072
  67. #define SCR_ALLOCLDTOFF                    0x0075
  68.  
  69. /* Keyboard Control */
  70.  
  71. #define KBD_SETTRANSTABLE                  0x0050
  72. #define KBD_SETINPUTMODE                   0x0051
  73. #define KBD_SETINTERIMFLAG                 0x0052
  74. #define KBD_SETSHIFTSTATE                  0x0053
  75. #define KBD_SETTYPAMATICRATE               0x0054
  76. #define KBD_SETFGNDSCREENGRP               0x0055
  77. #define KBD_SETSESMGRHOTKEY                0x0056
  78. #define KBD_SETFOCUS                       0x0057
  79. #define KBD_SETKCB                         0x0058
  80. #define KBD_SETNLS                         0x005C
  81. #define KBD_CREATE                         0x005D
  82. #define KBD_DESTROY                        0x005E
  83. #define KBD_GETINPUTMODE                   0x0071
  84. #define KBD_GETINTERIMFLAG                 0x0072
  85. #define KBD_GETSHIFTSTATE                  0x0073
  86. #define KBD_READCHAR                       0x0074
  87. #define KBD_PEEKCHAR                       0x0075
  88. #define KBD_GETSESMGRHOTKEY                0x0076
  89. #define KBD_GETKEYBDTYPE                   0x0077
  90. #define KBD_GETCODEPAGEID                  0x0078
  91. #define KBD_XLATESCAN                      0x0079
  92.  
  93. /* Printer Control */
  94.  
  95. #define PRT_QUERYJOBHANDLE                 0x0021
  96. #define PRT_SETFRAMECTL                    0x0042
  97. #define PRT_SETINFINITERETRY               0x0044
  98. #define PRT_INITPRINTER                    0x0046
  99. #define PRT_ACTIVATEFONT                   0x0048
  100. #define PRT_GETFRAMECTL                    0x0062
  101. #define PRT_GETINFINITERETRY               0x0064
  102. #define PRT_GETPRINTERSTATUS               0x0066
  103. #define PRT_QUERYACTIVEFONT                0x0069
  104. #define PRT_VERIFYFONT                     0x006A
  105.  
  106. /* Pointing-Device (Mouse) Control */
  107.  
  108. #define MOU_ALLOWPTRDRAW                   0x0050
  109. #define MOU_UPDATEDISPLAYMODE              0x0051
  110. #define MOU_SCREENSWITCH                   0x0052
  111. #define MOU_SETSCALEFACTORS                0x0053
  112. #define MOU_SETEVENTMASK                   0x0054
  113. #define MOU_SETHOTKEYBUTTON                0x0055
  114. #define MOU_SETPTRSHAPE                    0x0056
  115. #define MOU_DRAWPTR                        0x0057
  116. #define MOU_REMOVEPTR                      0x0058
  117. #define MOU_SETPTRPOS                      0x0059
  118. #define MOU_SETPROTDRAWADDRESS             0x005A
  119. #define MOU_SETREALDRAWADDRESS             0x005B
  120. #define MOU_SETMOUSTATUS                   0x005C
  121. #define MOU_DISPLAYMODECHANGE              0x005D
  122. #define MOU_GETBUTTONCOUNT                 0x0060
  123. #define MOU_GETMICKEYCOUNT                 0x0061
  124. #define MOU_GETMOUSTATUS                   0x0062
  125. #define MOU_READEVENTQUE                   0x0063
  126. #define MOU_GETQUESTATUS                   0x0064
  127. #define MOU_GETEVENTMASK                   0x0065
  128. #define MOU_GETSCALEFACTORS                0x0066
  129. #define MOU_GETPTRPOS                      0x0067
  130. #define MOU_GETPTRSHAPE                    0x0068
  131. #define MOU_GETHOTKEYBUTTON                0x0069
  132. #define MOU_VER                            0x006A
  133.  
  134. /* Disk/Diskette Control */
  135.  
  136. #define DSK_LOCKDRIVE                      0x0000
  137. #define DSK_UNLOCKDRIVE                    0x0001
  138. #define DSK_REDETERMINEMEDIA               0x0002
  139. #define DSK_SETLOGICALMAP                  0x0003
  140. #define DSK_BLOCKREMOVABLE                 0x0020
  141. #define DSK_GETLOGICALMAP                  0x0021
  142. #define DSK_SETDEVICEPARAMS                0x0043
  143. #define DSK_WRITETRACK                     0x0044
  144. #define DSK_FORMATVERIFY                   0x0045
  145. #define DSK_GETDEVICEPARAMS                0x0063
  146. #define DSK_READTRACK                      0x0064
  147. #define DSK_VERIFYTRACK                    0x0065
  148.  
  149. /* Physical-Disk Control */
  150.  
  151. #define PDSK_LOCKPHYSDRIVE                 0x0000
  152. #define PDSK_UNLOCKPHYSDRIVE               0x0001
  153. #define PDSK_WRITEPHYSTRACK                0x0044
  154. #define PDSK_GETPHYSDEVICEPARAMS           0x0063
  155. #define PDSK_READPHYSTRACK                 0x0064
  156. #define PDSK_VERIFYPHYSTRACK               0x0065
  157.  
  158. /* Character-Monitor Control */
  159. #define MON_REGISTERMONITOR                0x0040
  160.  
  161. /* General Device Control */
  162. #define DEV_FLUSHINPUT                     0x0001
  163. #define DEV_FLUSHOUTPUT                    0x0002
  164. #define DEV_QUERYMONSUPPORT                0x0060
  165.  
  166.  
  167. /* ASYNC_GETCOMMERROR, ASYNC_SETBREAKOFF, ASYNC_SETBREAKON,
  168.  * ASYNC_SETMODEMCTRL
  169.  */
  170.  
  171. #define RX_QUE_OVERRUN                     0x0001
  172. #define RX_HARDWARE_OVERRUN                0x0002
  173. #define PARITY_ERROR                       0x0004
  174. #define FRAMING_ERROR                      0x0008
  175.  
  176. /* ASYNC_GETCOMMEVENT */
  177. #define CHAR_RECEIVED                      0x0001
  178. #define LAST_CHAR_SENT                     0x0004
  179. #define CTS_CHANGED                        0x0008
  180. #define DSR_CHANGED                        0x0010
  181. #define DCD_CHANGED                        0x0020
  182. #define BREAK_DETECTED                     0x0040
  183. #define ERROR_OCCURRED                     0x0080
  184. #define RI_DETECTED                        0x0100
  185.  
  186. /* ASYNC_GETCOMMSTATUS */
  187. #define TX_WAITING_FOR_CTS                 0x0001
  188. #define TX_WAITING_FOR_DSR                 0x0002
  189. #define TX_WAITING_FOR_DCD                 0x0004
  190. #define TX_WAITING_FOR_XON                 0x0008
  191. #define TX_WAITING_TO_SEND_XON             0x0010
  192. #define TX_WAITING_WHILE_BREAK_ON          0x0020
  193. #define TX_WAITING_TO_SEND_IMM             0x0040
  194. #define RX_WAITING_FOR_DSR                 0x0080
  195.  
  196. /* ASYNC_GETLINESTATUS */
  197. #define WRITE_REQUEST_QUEUED               0x0001
  198. #define DATA_IN_TX_QUE                     0x0002
  199. #define HARDWARE_TRANSMITTING              0x0004
  200. #define CHAR_READY_TO_SEND_IMM             0x0008
  201. #define WAITING_TO_SEND_XON                0x0010
  202. #define WAITING_TO_SEND_XOFF               0x0020
  203.  
  204. /* ASYNC_GETMODEMINPUT */
  205. #define CTS_ON                             0x10
  206. #define DSR_ON                             0x20
  207. #define RI_ON                              0x40
  208. #define DCD_ON                             0x80
  209.  
  210. /* DSK_SETDEVICEPARAMS */
  211. #define BUILD_BPB_FROM_MEDIUM              0x00
  212. #define REPLACE_BPB_FOR_DEVICE             0x01
  213. #define REPLACE_BPB_FOR_MEDIUM             0x02
  214.  
  215. /* KBD_GETINPUTMODE, KBD_PEEKCHAR, KBD_SETINPUTMODE*/
  216. #define ASCII_MODE                         0x00
  217. #define BINARY_MODE                        0x80
  218.  
  219. /* KBD_GETINTERIMFLAG */
  220. #define CONVERSION_REQUEST                 0x20
  221. #define INTERIM_CHAR                       0x80
  222.  
  223. /* KBD_GETSESMGRHOTKEY */
  224. #define HOTKEY_MAX_COUNT                   0x0000
  225. #define HOTKEY_CURRENT_COUNT               0x0001
  226.  
  227. /* KBD_PEEKCHAR */
  228. #define KBD_DATA_RECEIVED                  0x0001
  229. #define KBD_DATA_BINARY                    0x8000
  230.  
  231. /* KBD_READCHAR */
  232. #define KBD_READ_WAIT                      0x0000
  233. #define KBD_READ_NOWAIT                    0x8000
  234.  
  235. /* KBD_SETINPUTMODE */
  236. #define SHIFT_REPORT_MODE                  0x01
  237.  
  238. #ifndef INCL_MOU
  239.  
  240.    #define MOUSE_MOTION                    0x0001
  241.    #define MOUSE_MOTION_WITH_BN1_DOWN      0x0002
  242.    #define MOUSE_BN1_DOWN                  0x0004
  243.    #define MOUSE_MOTION_WITH_BN2_DOWN      0x0008
  244.    #define MOUSE_BN2_DOWN                  0x0010
  245.    #define MOUSE_MOTION_WITH_BN3_DOWN      0x0020
  246.    #define MOUSE_BN3_DOWN                  0x0040
  247.  
  248.    #define MHK_BUTTON1                     0x0001
  249.    #define MHK_BUTTON2                     0x0002
  250.    #define MHK_BUTTON3                     0x0004
  251.  
  252.    #define MOU_NOWAIT                      0x0000
  253.    #define MOU_WAIT                        0x0001
  254.  
  255. #endif /* #ifndef INCL_MOU */
  256.  
  257. /* MOU_GETHOTKEYBUTTON, MOU_SETHOTKEYBUTTON */
  258. #define MHK_NO_HOTKEY                      0x0000
  259.  
  260. /* MOU_GETMOUSTATUS */
  261. #define MOUSE_QUEUEBUSY                    0x0001
  262. #define MOUSE_BLOCKREAD                    0x0002
  263. #define MOUSE_FLUSH                        0x0004
  264. #define MOUSE_UNSUPPORTED_MODE             0x0008
  265. #define MOUSE_DISABLED                     0x0100
  266. #define MOUSE_MICKEYS                      0x0200
  267.  
  268. /* PRT_GETPRINTERSTATUS */
  269. #define PRINTER_TIMEOUT                    0x0001
  270. #define PRINTER_IO_ERROR                   0x0008
  271. #define PRINTER_SELECTED                   0x0010
  272. #define PRINTER_OUT_OF_PAPER               0x0020
  273. #define PRINTER_ACKNOWLEDGED               0x0040
  274. #define PRINTER_NOT_BUSY                   0x0080
  275.  
  276. /* fbCtlHndShake */
  277. #define MODE_DTR_CONTROL                   0x01
  278. #define MODE_DTR_HANDSHAKE                 0x02
  279. #define MODE_CTS_HANDSHAKE                 0x08
  280. #define MODE_DSR_HANDSHAKE                 0x10
  281. #define MODE_DCD_HANDSHAKE                 0x20
  282. #define MODE_DSR_SENSITIVITY               0x40
  283.  
  284. /* fbFlowReplace */
  285. #define MODE_AUTO_TRANSMIT                 0x01
  286. #define MODE_AUTO_RECEIVE                  0x02
  287. #define MODE_ERROR_CHAR                    0x04
  288. #define MODE_NULL_STRIPPING                0x08
  289. #define MODE_BREAK_CHAR                    0x10
  290. #define MODE_RTS_CONTROL                   0x40
  291. #define MODE_RTS_HANDSHAKE                 0x80
  292. #define MODE_TRANSMIT_TOGGLE               0xC0
  293.  
  294. /* fbTimeout */
  295. #define MODE_NO_WRITE_TIMEOUT              0x01
  296. #define MODE_READ_TIMEOUT                  0x02
  297. #define MODE_WAIT_READ_TIMEOUT             0x04
  298. #define MODE_NOWAIT_READ_TIMEOUT           0x06
  299.  
  300. typedef struct _DCBINFO         /* dcbinf */
  301.         {
  302.         USHORT usWriteTimeout;
  303.         USHORT usReadTimeout;
  304.         BYTE   fbCtlHndShake;
  305.         BYTE   fbFlowReplace;
  306.         BYTE   fbTimeout;
  307.         BYTE   bErrorReplacementChar;
  308.         BYTE   bBreakReplacementChar;
  309.         BYTE   bXONChar;
  310.         BYTE   bXOFFChar;
  311.         } DCBINFO, *PDCBINFO;
  312.  
  313. #pragma pack(1)
  314.  
  315. typedef struct _TRACKLAYOUT     /* trckl */
  316.         {
  317.         BYTE   bCommand;
  318.         USHORT usHead;
  319.         USHORT usCylinder;
  320.         USHORT usFirstSector;
  321.         USHORT cSectors;
  322.         struct {
  323.                USHORT usSectorNumber;
  324.                USHORT usSectorSize;
  325.                } TrackTable[1];
  326.         } TRACKLAYOUT, *PTRACKLAYOUT;
  327.  
  328.  
  329. #define DEVTYPE_48TPI                      0x0000
  330. #define DEVTYPE_96TPI                      0x0001
  331. #define DEVTYPE_35                         0x0002
  332. #define DEVTYPE_8SD                        0x0003
  333. #define DEVTYPE_8DD                        0x0004
  334. #define DEVTYPE_FIXED                      0x0005
  335. #define DEVTYPE_TAPE                       0x0006
  336. #define DEVTYPE_UNKNOWN                    0x0007
  337.  
  338.  
  339. #pragma pack(1)
  340.  
  341. typedef struct _BIOSPARAMETERBLOCK      /* bspblk */
  342.         {
  343.         USHORT usBytesPerSector;
  344.         BYTE   bSectorsPerCluster;
  345.         USHORT usReservedSectors;
  346.         BYTE   cFATs;
  347.         USHORT cRootEntries;
  348.         USHORT cSectors;
  349.         BYTE   bMedia;
  350.         USHORT usSectorsPerFAT;
  351.         USHORT usSectorsPerTrack;
  352.         USHORT cHeads;
  353.         ULONG  cHiddenSectors;
  354.         ULONG  cLargeSectors;
  355.         BYTE   abReserved[6];
  356.         USHORT cCylinders;
  357.         BYTE   bDeviceType;
  358.         USHORT fsDeviceAttr;
  359.         } BIOSPARAMETERBLOCK;
  360. typedef BIOSPARAMETERBLOCK *PBIOSPARAMETERBLOCK;
  361.  
  362. typedef struct _SCREENGROUP     /* scrgrp */
  363.         {
  364.         USHORT idScreenGrp;
  365.         USHORT fTerminate;
  366.         } SCREENGROUP;
  367. typedef  SCREENGROUP *PSCREENGROUP;
  368.  
  369. typedef struct _FRAME           /* frm */
  370.         {
  371.         BYTE bCharsPerLine;
  372.         BYTE bLinesPerInch;
  373.         } FRAME;
  374. typedef FRAME *PFRAME;
  375.  
  376. typedef struct _KBDTYPE         /* kbdtyp */
  377.         {
  378.         USHORT usType;
  379.         USHORT reserved1;
  380.         USHORT reserved2;
  381.         } KBDTYPE;
  382. typedef KBDTYPE *PKBDTYPE;
  383.  
  384. typedef struct _LINECONTROL     /* lnctl */
  385.         {
  386.         BYTE bDataBits;
  387.         BYTE bParity;
  388.         BYTE bStopBits;
  389.         BYTE fTransBreak;
  390.         } LINECONTROL;
  391. typedef LINECONTROL *PLINECONTROL;
  392.  
  393. /* MODEMSTATUS.fbModemOn, ASYNC_GETMODEMOUTPUT */
  394. #define DTR_ON                             0x01
  395. #define RTS_ON                             0x02
  396.  
  397. /* MODEMSTATUS.fbModemOff */
  398. #define DTR_OFF                            0xFE
  399. #define RTS_OFF                            0xFD
  400.  
  401. typedef struct _MODEMSTATUS     /* mdmst */
  402.         {
  403.         BYTE fbModemOn;
  404.         BYTE fbModemOff;
  405.         } MODEMSTATUS;
  406. typedef MODEMSTATUS *PMODEMSTATUS;
  407.  
  408. #pragma pack(1)
  409.  
  410. typedef struct _TRACKFORMAT     /* trckfmt */
  411.         {
  412.         BYTE bCommand;
  413.         USHORT usHead;
  414.         USHORT usCylinder;
  415.         USHORT usReserved;
  416.         USHORT cSectors;
  417.         struct {
  418.                BYTE bCylinder;
  419.                BYTE bHead;
  420.                BYTE idSector;
  421.                BYTE bBytesSector;
  422.                } FormatTable[1];
  423.         } TRACKFORMAT;
  424.  
  425. typedef TRACKFORMAT *PTRACKFORMAT;
  426.  
  427. typedef struct _RXQUEUE         /* rxq */
  428.         {
  429.         USHORT cch;
  430.         USHORT cb;
  431.         } RXQUEUE;
  432. typedef RXQUEUE *PRXQUEUE;
  433.  
  434. typedef struct _DEVICEPARAMETERBLOCK    /* dvpblck */
  435.         {
  436.         USHORT reserved1;
  437.         USHORT cCylinders;
  438.         USHORT cHeads;
  439.         USHORT cSectorsPerTrack;
  440.         USHORT reserved2;
  441.         USHORT reserved3;
  442.         USHORT reserved4;
  443.         USHORT reserved5;
  444.         } DEVICEPARAMETERBLOCK;
  445.  
  446. typedef DEVICEPARAMETERBLOCK     *PDEVICEPARAMETERBLOCK;
  447.  
  448. /* The following must be packed on 2 bytes boundary */
  449. #pragma pack(2)
  450.  
  451. typedef struct _PTRDRAWFUNCTION         /* ptrdfnc */
  452.         {
  453.         USHORT usReturnCode;
  454.         PFN pfnDraw;
  455.         PCH pchDataSeg;
  456.         } PTRDRAWFUNCTION;
  457.  
  458. typedef PTRDRAWFUNCTION *PPTRDRAWFUNCTION;
  459.  
  460. typedef struct _PTRDRAWADDRESS          /* ptrdaddr */
  461.         {
  462.         USHORT reserved;
  463.         PTRDRAWFUNCTION ptrdfnc;
  464.         } PTRDRAWADDRESS;
  465.  
  466. typedef PTRDRAWADDRESS  *PPTRDRAWADDRESS;
  467.  
  468. typedef struct _SHIFTSTATE      /* shftst */
  469.         {
  470.         USHORT fsState;
  471.         BYTE   fNLS;
  472.         } SHIFTSTATE;
  473.  
  474. typedef SHIFTSTATE  *PSHIFTSTATE;
  475.  
  476.  
  477.  
  478. /* HOTKEY.fsHotKey/SHIFTSTATE.fsState */
  479. #define RIGHTSHIFT                         0x0001
  480. #define LEFTSHIFT                          0x0002
  481. #define CONTROL                            0x0004
  482. #define ALT                                0x0008
  483. #define SCROLLLOCK_ON                      0x0010
  484. #define NUMLOCK_ON                         0x0020
  485. #define CAPSLOCK_ON                        0x0040
  486. #define INSERT_ON                          0x0080
  487. #define LEFTCONTROL                        0x0100
  488. #define LEFTALT                            0x0200
  489. #define RIGHTCONTROL                       0x0400
  490. #define RIGHTALT                           0x0800
  491. #define SCROLLLOCK                         0x1000
  492. #define NUMLOCK                            0x2000
  493. #define CAPSLOCK                           0x4000
  494. #define SYSREQ                             0x8000
  495.  
  496. typedef struct _HOTKEY          /* htky */
  497.         {
  498.         USHORT fsHotKey;
  499.         UCHAR  uchScancodeMake;
  500.         UCHAR  uchScancodeBreak;
  501.         USHORT idHotKey;
  502.         } HOTKEY;
  503.  
  504. typedef HOTKEY *PHOTKEY;
  505.  
  506. typedef struct _MONITORPOSITION         /* mnpos */
  507.         {
  508.         USHORT fPosition;
  509.         USHORT index;
  510.         ULONG  pbInBuf;
  511.         USHORT offOutBuf;
  512.         } MONITORPOSITION;
  513.  
  514. typedef MONITORPOSITION  *PMONITORPOSITION;
  515.  
  516. typedef struct _RATEDELAY       /* rtdly */
  517.         {
  518.         USHORT usDelay;
  519.         USHORT usRate;
  520.         } RATEDELAY;
  521. typedef RATEDELAY  *PRATEDELAY;
  522.  
  523. typedef struct _CODEPAGEINFO    /* cpi */
  524.         {
  525.         PBYTE pbTransTable;
  526.         USHORT idCodePage;
  527.         USHORT idTable;
  528.         } CODEPAGEINFO;
  529. typedef *PCODEPAGEINFO;
  530.  
  531. typedef struct _CPID    /* cpid */
  532.         {
  533.         USHORT idCodePage;
  534.         USHORT Reserved;
  535.         } CPID;
  536. typedef CPID *PCPID;
  537.  
  538. typedef struct _LDTADDRINFO     /* ldtaddr */
  539.         {
  540.         PULONG pulPhysAddr;
  541.         USHORT cb;
  542.         } LDTADDRINFO;
  543.  
  544. typedef LDTADDRINFO *PLDTADDRINFO;
  545.  
  546. typedef struct _PTRDRAWDATA     /* ptrdd */
  547.         {
  548.         USHORT cb;
  549.         USHORT usConfig;
  550.         USHORT usFlag;
  551.         } PTRDRAWDATA;
  552. #pragma pack()                           /*restore default packing */
  553.  
  554. typedef PTRDRAWDATA *PPTRDRAWDATA;
  555.  
  556. #endif /* __BSEDEV__ */
  557.  
  558. #ifdef __cplusplus
  559.         }
  560. #endif
  561. #pragma info( none )
  562.    #ifndef __CHKHDR__
  563.       #pragma info( restore )
  564.    #endif
  565. #pragma info( restore )
  566.