jwantddpar.pas 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  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. // $Id: JwaNtDdPar.pas,v 1.8 2007/09/05 11:58:51 dezipaitor Exp $
  35. {$IFNDEF JWA_OMIT_SECTIONS}
  36. unit JwaNtDdPar;
  37. {$WEAKPACKAGEUNIT}
  38. {$ENDIF JWA_OMIT_SECTIONS}
  39. {$HPPEMIT ''}
  40. {$HPPEMIT '#include "ntddk.h"'}
  41. {$HPPEMIT ''}
  42. {$IFNDEF JWA_OMIT_SECTIONS}
  43. {$I jediapilib.inc}
  44. interface
  45. uses
  46. JwaWinType, JwaWinIoctl;
  47. {$ENDIF JWA_OMIT_SECTIONS}
  48. {$IFNDEF JWA_IMPLEMENTATIONSECTION}
  49. const
  50. // Parallel port device GUIDs
  51. GUID_DEVINTERFACE_PARALLEL: TGUID = (
  52. D1:$97F76EF0; D2:$F883; D3:$11D0; D4:($AF,$1F,$00,$00,$F8,$00,$84,$5C));
  53. {$EXTERNALSYM GUID_DEVINTERFACE_PARALLEL}
  54. GUID_DEVINTERFACE_PARCLASS: TGUID = (
  55. D1:$811FC6A5; D2:$F728; D3:$11D0; D4:($A5,$37,$00,$00,$F8,$75,$3E,$D1));
  56. {$EXTERNALSYM GUID_DEVINTERFACE_PARCLASS}
  57. GUID_PARALLEL_DEVICE: TGUID = (
  58. D1:$97F76EF0; D2:$F883; D3:$11D0; D4:($AF,$1F,$00,$00,$F8,$00,$84,$5C));
  59. {$EXTERNALSYM GUID_PARALLEL_DEVICE}
  60. GUID_PARCLASS_DEVICE: TGUID = (
  61. D1:$811FC6A5; D2:$F728; D3:$11D0; D4:($A5,$37,$00,$00,$F8,$75,$3E,$D1));
  62. {$EXTERNALSYM GUID_PARCLASS_DEVICE}
  63. IOCTL_IEEE1284_GET_MODE = (
  64. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  65. (5 shl 2) or METHOD_BUFFERED);
  66. {$EXTERNALSYM IOCTL_IEEE1284_GET_MODE}
  67. IOCTL_IEEE1284_NEGOTIATE = (
  68. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  69. (6 shl 2) or METHOD_BUFFERED);
  70. {$EXTERNALSYM IOCTL_IEEE1284_NEGOTIATE}
  71. IOCTL_PAR_GET_DEFAULT_MODES = (
  72. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  73. (10 shl 2) or METHOD_BUFFERED);
  74. {$EXTERNALSYM IOCTL_PAR_GET_DEFAULT_MODES}
  75. IOCTL_PAR_GET_DEVICE_CAPS = (
  76. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  77. (9 shl 2) or METHOD_BUFFERED);
  78. {$EXTERNALSYM IOCTL_PAR_GET_DEVICE_CAPS}
  79. IOCTL_PAR_IS_PORT_FREE = (
  80. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  81. (21 shl 2) or METHOD_BUFFERED);
  82. {$EXTERNALSYM IOCTL_PAR_IS_PORT_FREE}
  83. IOCTL_PAR_QUERY_DEVICE_ID = (
  84. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  85. (3 shl 2) or METHOD_BUFFERED);
  86. {$EXTERNALSYM IOCTL_PAR_QUERY_DEVICE_ID}
  87. IOCTL_PAR_QUERY_DEVICE_ID_SIZE = (
  88. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  89. (4 shl 2) or METHOD_BUFFERED);
  90. {$EXTERNALSYM IOCTL_PAR_QUERY_DEVICE_ID_SIZE}
  91. IOCTL_PAR_QUERY_INFORMATION = (
  92. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  93. (1 shl 2) or METHOD_BUFFERED);
  94. {$EXTERNALSYM IOCTL_PAR_QUERY_INFORMATION}
  95. IOCTL_PAR_QUERY_LOCATION = (
  96. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  97. (22 shl 2) or METHOD_BUFFERED);
  98. {$EXTERNALSYM IOCTL_PAR_QUERY_LOCATION}
  99. IOCTL_PAR_QUERY_RAW_DEVICE_ID = (
  100. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  101. (12 shl 2) or METHOD_BUFFERED);
  102. {$EXTERNALSYM IOCTL_PAR_QUERY_RAW_DEVICE_ID}
  103. IOCTL_PAR_SET_INFORMATION = (
  104. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  105. (2 shl 2) or METHOD_BUFFERED);
  106. {$EXTERNALSYM IOCTL_PAR_SET_INFORMATION}
  107. IOCTL_PAR_SET_READ_ADDRESS = (
  108. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  109. (8 shl 2) or METHOD_BUFFERED);
  110. {$EXTERNALSYM IOCTL_PAR_SET_READ_ADDRESS}
  111. IOCTL_PAR_SET_WRITE_ADDRESS = (
  112. (FILE_DEVICE_PARALLEL_PORT shl 16) or (FILE_ANY_ACCESS shl 14) or
  113. (7 shl 2) or METHOD_BUFFERED);
  114. {$EXTERNALSYM IOCTL_PAR_SET_WRITE_ADDRESS}
  115. type
  116. PPAR_DEVICE_ID_SIZE_INFORMATION = ^PAR_DEVICE_ID_SIZE_INFORMATION;
  117. {$EXTERNALSYM PPAR_DEVICE_ID_SIZE_INFORMATION}
  118. _PAR_DEVICE_ID_SIZE_INFORMATION = record
  119. DeviceIdSize: ULONG;
  120. end;
  121. {$EXTERNALSYM _PAR_DEVICE_ID_SIZE_INFORMATION}
  122. PAR_DEVICE_ID_SIZE_INFORMATION = _PAR_DEVICE_ID_SIZE_INFORMATION;
  123. {$EXTERNALSYM PAR_DEVICE_ID_SIZE_INFORMATION}
  124. TParDeviceIdSizeInformation = PAR_DEVICE_ID_SIZE_INFORMATION;
  125. PParDeviceIdSizeInformation = PPAR_DEVICE_ID_SIZE_INFORMATION;
  126. const
  127. PARALLEL_INIT = $01;
  128. {$EXTERNALSYM PARALLEL_INIT}
  129. PARALLEL_AUTOFEED = $02;
  130. {$EXTERNALSYM PARALLEL_AUTOFEED}
  131. PARALLEL_PAPER_EMPTY = $04;
  132. {$EXTERNALSYM PARALLEL_PAPER_EMPTY}
  133. PARALLEL_OFF_LINE = $08;
  134. {$EXTERNALSYM PARALLEL_OFF_LINE}
  135. PARALLEL_POWER_OFF = $10;
  136. {$EXTERNALSYM PARALLEL_POWER_OFF}
  137. PARALLEL_NOT_CONNECTED = $20;
  138. {$EXTERNALSYM PARALLEL_NOT_CONNECTED}
  139. PARALLEL_BUSY = $40;
  140. {$EXTERNALSYM PARALLEL_BUSY}
  141. PARALLEL_SELECTED = $80;
  142. {$EXTERNALSYM PARALLEL_SELECTED}
  143. type
  144. PPAR_QUERY_INFORMATION = ^PAR_QUERY_INFORMATION;
  145. {$EXTERNALSYM PPAR_QUERY_INFORMATION}
  146. _PAR_QUERY_INFORMATION = record
  147. Status: UCHAR;
  148. end;
  149. {$EXTERNALSYM _PAR_QUERY_INFORMATION}
  150. PAR_QUERY_INFORMATION = _PAR_QUERY_INFORMATION;
  151. {$EXTERNALSYM PAR_QUERY_INFORMATION}
  152. TParQueryInformation = PAR_QUERY_INFORMATION;
  153. PParQueryInformation = PPAR_QUERY_INFORMATION;
  154. PPAR_SET_INFORMATION = ^PAR_SET_INFORMATION;
  155. {$EXTERNALSYM PPAR_SET_INFORMATION}
  156. _PAR_SET_INFORMATION = record
  157. Init: UCHAR;
  158. end;
  159. {$EXTERNALSYM _PAR_SET_INFORMATION}
  160. PAR_SET_INFORMATION = _PAR_SET_INFORMATION;
  161. {$EXTERNALSYM PAR_SET_INFORMATION}
  162. TParSetInformation = PAR_SET_INFORMATION;
  163. PParSetInformation = PPAR_SET_INFORMATION;
  164. PPARCLASS_NEGOTIATION_MASK = ^PARCLASS_NEGOTIATION_MASK;
  165. {$EXTERNALSYM PPARCLASS_NEGOTIATION_MASK}
  166. _PARCLASS_NEGOTIATION_MASK = record
  167. usReadMask: USHORT;
  168. usWriteMask: USHORT;
  169. end;
  170. {$EXTERNALSYM _PARCLASS_NEGOTIATION_MASK}
  171. PARCLASS_NEGOTIATION_MASK = _PARCLASS_NEGOTIATION_MASK;
  172. {$EXTERNALSYM PARCLASS_NEGOTIATION_MASK}
  173. TParClassNegotiationMask = PARCLASS_NEGOTIATION_MASK;
  174. PParClassNegotiationMask = PPARCLASS_NEGOTIATION_MASK;
  175. const
  176. NONE = $0000;
  177. {$EXTERNALSYM NONE}
  178. CENTRONICS = $0001;
  179. {$EXTERNALSYM CENTRONICS}
  180. IEEE_COMPATIBILITY = $0002;
  181. {$EXTERNALSYM IEEE_COMPATIBILITY}
  182. NIBBLE = $0004;
  183. {$EXTERNALSYM NIBBLE}
  184. CHANNEL_NIBBLE = $0008;
  185. {$EXTERNALSYM CHANNEL_NIBBLE}
  186. BYTE_BIDIR = $0010;
  187. {$EXTERNALSYM BYTE_BIDIR}
  188. EPP_HW = $0020;
  189. {$EXTERNALSYM EPP_HW}
  190. EPP_SW = $0040;
  191. {$EXTERNALSYM EPP_SW}
  192. EPP_ANY = $0060;
  193. {$EXTERNALSYM EPP_ANY}
  194. BOUNDED_ECP = $0080;
  195. {$EXTERNALSYM BOUNDED_ECP}
  196. ECP_HW_NOIRQ = $0100;
  197. {$EXTERNALSYM ECP_HW_NOIRQ}
  198. ECP_HW_IRQ = $0200;
  199. {$EXTERNALSYM ECP_HW_IRQ}
  200. ECP_SW = $0400;
  201. {$EXTERNALSYM ECP_SW}
  202. ECP_ANY = $0780;
  203. {$EXTERNALSYM ECP_ANY}
  204. {$ENDIF JWA_IMPLEMENTATIONSECTION}
  205. {$IFNDEF JWA_OMIT_SECTIONS}
  206. implementation
  207. //uses ...
  208. {$ENDIF JWA_OMIT_SECTIONS}
  209. {$IFNDEF JWA_INTERFACESECTION}
  210. //your implementation here
  211. {$ENDIF JWA_INTERFACESECTION}
  212. {$IFNDEF JWA_OMIT_SECTIONS}
  213. end.
  214. {$ENDIF JWA_OMIT_SECTIONS}