jwantddpar.pas 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. {******************************************************************************}
  2. { }
  3. { Parallel Port Driver Interface Unit for Object Pascal }
  4. { }
  5. { Portions created by Microsoft are Copyright (C) 1995-2003 Microsoft }
  6. { Corporation. All Rights Reserved. }
  7. { }
  8. { The original file is: ntddpar.h , released June 2000. The original Pascal }
  9. { code is: JwaNtDdPar, released December 2003. The initial developer of the }
  10. { Pascal code is Pasha Sivtsov (ps4me att mail dott ru). }
  11. { }
  12. { The contents of this file are used with permission, subject to the Mozilla }
  13. { Public License Version 1.1 (the "License"); you may not use this file except }
  14. { in compliance with the License. You may obtain a copy of the License at }
  15. { http://www.mozilla.org/MPL/MPL-1.1.html }
  16. { }
  17. { Software distributed under the License is distributed on an "AS IS" basis, }
  18. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  19. { the specific language governing rights and limitations under the License. }
  20. { }
  21. { Alternatively, the contents of this file may be used under the terms of the }
  22. { GNU Lesser General Public License (the "LGPL License"), in which case the }
  23. { provisions of the LGPL License are applicable instead of those above. }
  24. { If you wish to allow use of your version of this file only under the terms }
  25. { of the LGPL License and not to allow others to use your version of this file }
  26. { under the MPL, indicate your decision by deleting the provisions above and }
  27. { replace them with the notice and other provisions required by the LGPL }
  28. { License. If you do not delete the provisions above, a recipient may use }
  29. { your version of this file under either the MPL or the LGPL License. }
  30. { }
  31. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  32. { }
  33. {******************************************************************************}
  34. unit JwaNtDdPar;
  35. {$WEAKPACKAGEUNIT}
  36. {$HPPEMIT ''}
  37. {$HPPEMIT '#include "ntddk.h"'}
  38. {$HPPEMIT ''}
  39. {$I jediapilib.inc}
  40. interface
  41. uses
  42. JwaWinType, JwaWinIoctl;
  43. const
  44. // Parallel port device GUIDs
  45. GUID_DEVINTERFACE_PARALLEL: TGUID = (
  46. D1:$97F76EF0; D2:$F883; D3:$11D0; D4:($AF,$1F,$00,$00,$F8,$00,$84,$5C));
  47. {$EXTERNALSYM GUID_DEVINTERFACE_PARALLEL}
  48. GUID_DEVINTERFACE_PARCLASS: TGUID = (
  49. D1:$811FC6A5; D2:$F728; D3:$11D0; D4:($A5,$37,$00,$00,$F8,$75,$3E,$D1));
  50. {$EXTERNALSYM GUID_DEVINTERFACE_PARCLASS}
  51. GUID_PARALLEL_DEVICE: TGUID = (
  52. D1:$97F76EF0; D2:$F883; D3:$11D0; D4:($AF,$1F,$00,$00,$F8,$00,$84,$5C));
  53. {$EXTERNALSYM GUID_PARALLEL_DEVICE}
  54. GUID_PARCLASS_DEVICE: TGUID = (
  55. D1:$811FC6A5; D2:$F728; D3:$11D0; D4:($A5,$37,$00,$00,$F8,$75,$3E,$D1));
  56. {$EXTERNALSYM GUID_PARCLASS_DEVICE}
  57. IOCTL_IEEE1284_GET_MODE = (
  58. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  59. (5 shl 2) or METHOD_BUFFERED);
  60. {$EXTERNALSYM IOCTL_IEEE1284_GET_MODE}
  61. IOCTL_IEEE1284_NEGOTIATE = (
  62. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  63. (6 shl 2) or METHOD_BUFFERED);
  64. {$EXTERNALSYM IOCTL_IEEE1284_NEGOTIATE}
  65. IOCTL_PAR_GET_DEFAULT_MODES = (
  66. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  67. (10 shl 2) or METHOD_BUFFERED);
  68. {$EXTERNALSYM IOCTL_PAR_GET_DEFAULT_MODES}
  69. IOCTL_PAR_GET_DEVICE_CAPS = (
  70. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  71. (9 shl 2) or METHOD_BUFFERED);
  72. {$EXTERNALSYM IOCTL_PAR_GET_DEVICE_CAPS}
  73. IOCTL_PAR_IS_PORT_FREE = (
  74. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  75. (21 shl 2) or METHOD_BUFFERED);
  76. {$EXTERNALSYM IOCTL_PAR_IS_PORT_FREE}
  77. IOCTL_PAR_QUERY_DEVICE_ID = (
  78. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  79. (3 shl 2) or METHOD_BUFFERED);
  80. {$EXTERNALSYM IOCTL_PAR_QUERY_DEVICE_ID}
  81. IOCTL_PAR_QUERY_DEVICE_ID_SIZE = (
  82. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  83. (4 shl 2) or METHOD_BUFFERED);
  84. {$EXTERNALSYM IOCTL_PAR_QUERY_DEVICE_ID_SIZE}
  85. IOCTL_PAR_QUERY_INFORMATION = (
  86. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  87. (1 shl 2) or METHOD_BUFFERED);
  88. {$EXTERNALSYM IOCTL_PAR_QUERY_INFORMATION}
  89. IOCTL_PAR_QUERY_LOCATION = (
  90. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  91. (22 shl 2) or METHOD_BUFFERED);
  92. {$EXTERNALSYM IOCTL_PAR_QUERY_LOCATION}
  93. IOCTL_PAR_QUERY_RAW_DEVICE_ID = (
  94. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  95. (12 shl 2) or METHOD_BUFFERED);
  96. {$EXTERNALSYM IOCTL_PAR_QUERY_RAW_DEVICE_ID}
  97. IOCTL_PAR_SET_INFORMATION = (
  98. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  99. (2 shl 2) or METHOD_BUFFERED);
  100. {$EXTERNALSYM IOCTL_PAR_SET_INFORMATION}
  101. IOCTL_PAR_SET_READ_ADDRESS = (
  102. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  103. (8 shl 2) or METHOD_BUFFERED);
  104. {$EXTERNALSYM IOCTL_PAR_SET_READ_ADDRESS}
  105. IOCTL_PAR_SET_WRITE_ADDRESS = (
  106. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  107. (7 shl 2) or METHOD_BUFFERED);
  108. {$EXTERNALSYM IOCTL_PAR_SET_WRITE_ADDRESS}
  109. type
  110. PPAR_DEVICE_ID_SIZE_INFORMATION = ^PAR_DEVICE_ID_SIZE_INFORMATION;
  111. {$EXTERNALSYM PPAR_DEVICE_ID_SIZE_INFORMATION}
  112. _PAR_DEVICE_ID_SIZE_INFORMATION = record
  113. DeviceIdSize: ULONG;
  114. end;
  115. {$EXTERNALSYM _PAR_DEVICE_ID_SIZE_INFORMATION}
  116. PAR_DEVICE_ID_SIZE_INFORMATION = _PAR_DEVICE_ID_SIZE_INFORMATION;
  117. {$EXTERNALSYM PAR_DEVICE_ID_SIZE_INFORMATION}
  118. TParDeviceIdSizeInformation = PAR_DEVICE_ID_SIZE_INFORMATION;
  119. PParDeviceIdSizeInformation = PPAR_DEVICE_ID_SIZE_INFORMATION;
  120. const
  121. PARALLEL_INIT = $01;
  122. {$EXTERNALSYM PARALLEL_INIT}
  123. PARALLEL_AUTOFEED = $02;
  124. {$EXTERNALSYM PARALLEL_AUTOFEED}
  125. PARALLEL_PAPER_EMPTY = $04;
  126. {$EXTERNALSYM PARALLEL_PAPER_EMPTY}
  127. PARALLEL_OFF_LINE = $08;
  128. {$EXTERNALSYM PARALLEL_OFF_LINE}
  129. PARALLEL_POWER_OFF = $10;
  130. {$EXTERNALSYM PARALLEL_POWER_OFF}
  131. PARALLEL_NOT_CONNECTED = $20;
  132. {$EXTERNALSYM PARALLEL_NOT_CONNECTED}
  133. PARALLEL_BUSY = $40;
  134. {$EXTERNALSYM PARALLEL_BUSY}
  135. PARALLEL_SELECTED = $80;
  136. {$EXTERNALSYM PARALLEL_SELECTED}
  137. type
  138. PPAR_QUERY_INFORMATION = ^PAR_QUERY_INFORMATION;
  139. {$EXTERNALSYM PPAR_QUERY_INFORMATION}
  140. _PAR_QUERY_INFORMATION = record
  141. Status: UCHAR;
  142. end;
  143. {$EXTERNALSYM _PAR_QUERY_INFORMATION}
  144. PAR_QUERY_INFORMATION = _PAR_QUERY_INFORMATION;
  145. {$EXTERNALSYM PAR_QUERY_INFORMATION}
  146. TParQueryInformation = PAR_QUERY_INFORMATION;
  147. PParQueryInformation = PPAR_QUERY_INFORMATION;
  148. PPAR_SET_INFORMATION = ^PAR_SET_INFORMATION;
  149. {$EXTERNALSYM PPAR_SET_INFORMATION}
  150. _PAR_SET_INFORMATION = record
  151. Init: UCHAR;
  152. end;
  153. {$EXTERNALSYM _PAR_SET_INFORMATION}
  154. PAR_SET_INFORMATION = _PAR_SET_INFORMATION;
  155. {$EXTERNALSYM PAR_SET_INFORMATION}
  156. TParSetInformation = PAR_SET_INFORMATION;
  157. PParSetInformation = PPAR_SET_INFORMATION;
  158. PPARCLASS_NEGOTIATION_MASK = ^PARCLASS_NEGOTIATION_MASK;
  159. {$EXTERNALSYM PPARCLASS_NEGOTIATION_MASK}
  160. _PARCLASS_NEGOTIATION_MASK = record
  161. usReadMask: USHORT;
  162. usWriteMask: USHORT;
  163. end;
  164. {$EXTERNALSYM _PARCLASS_NEGOTIATION_MASK}
  165. PARCLASS_NEGOTIATION_MASK = _PARCLASS_NEGOTIATION_MASK;
  166. {$EXTERNALSYM PARCLASS_NEGOTIATION_MASK}
  167. TParClassNegotiationMask = PARCLASS_NEGOTIATION_MASK;
  168. PParClassNegotiationMask = PPARCLASS_NEGOTIATION_MASK;
  169. const
  170. NONE = $0000;
  171. {$EXTERNALSYM NONE}
  172. CENTRONICS = $0001;
  173. {$EXTERNALSYM CENTRONICS}
  174. IEEE_COMPATIBILITY = $0002;
  175. {$EXTERNALSYM IEEE_COMPATIBILITY}
  176. NIBBLE = $0004;
  177. {$EXTERNALSYM NIBBLE}
  178. CHANNEL_NIBBLE = $0008;
  179. {$EXTERNALSYM CHANNEL_NIBBLE}
  180. BYTE_BIDIR = $0010;
  181. {$EXTERNALSYM BYTE_BIDIR}
  182. EPP_HW = $0020;
  183. {$EXTERNALSYM EPP_HW}
  184. EPP_SW = $0040;
  185. {$EXTERNALSYM EPP_SW}
  186. EPP_ANY = $0060;
  187. {$EXTERNALSYM EPP_ANY}
  188. BOUNDED_ECP = $0080;
  189. {$EXTERNALSYM BOUNDED_ECP}
  190. ECP_HW_NOIRQ = $0100;
  191. {$EXTERNALSYM ECP_HW_NOIRQ}
  192. ECP_HW_IRQ = $0200;
  193. {$EXTERNALSYM ECP_HW_IRQ}
  194. ECP_SW = $0400;
  195. {$EXTERNALSYM ECP_SW}
  196. ECP_ANY = $0780;
  197. {$EXTERNALSYM ECP_ANY}
  198. implementation
  199. end.