home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / ntddpar.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  4KB  |  120 lines

  1. /*
  2.  * ntddpar.h
  3.  *
  4.  * Parallel port driver interface
  5.  *
  6.  * This file is part of the w32api package.
  7.  *
  8.  * Contributors:
  9.  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
  10.  *
  11.  * THIS SOFTWARE IS NOT COPYRIGHTED
  12.  *
  13.  * This source code is offered for use in the public domain. You may
  14.  * use, modify or distribute it freely.
  15.  *
  16.  * This code is distributed in the hope that it will be useful but
  17.  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
  18.  * DISCLAIMED. This includes but is not limited to warranties of
  19.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  20.  *
  21.  */
  22.  
  23. #ifndef __NTDDPAR_H
  24. #define __NTDDPAR_H
  25.  
  26. #if __GNUC__ >=3
  27. #pragma GCC system_header
  28. #endif
  29.  
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33.  
  34. #include "ntddk.h"
  35.  
  36. /* Parallel port device GUIDs */
  37.  
  38. DEFINE_GUID (GUID_DEVINTERFACE_PARALLEL,
  39.   0x97F76EF0, 0xF883, 0x11D0, 0xAF, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x84, 0x5C);
  40. DEFINE_GUID (GUID_DEVINTERFACE_PARCLASS,
  41.   0x811FC6A5, 0xF728, 0x11D0, 0xA5, 0x37, 0x00, 0x00, 0xF8, 0x75, 0x3E, 0xD1);
  42.  
  43. #define GUID_PARALLEL_DEVICE GUID_DEVINTERFACE_PARALLEL
  44. #define GUID_PARCLASS_DEVICE GUID_DEVINTERFACE_PARCLASS
  45.  
  46.  
  47. #define IOCTL_IEEE1284_GET_MODE \
  48.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
  49. #define IOCTL_IEEE1284_NEGOTIATE \
  50.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
  51. #define IOCTL_PAR_GET_DEFAULT_MODES \
  52.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
  53. #define IOCTL_PAR_GET_DEVICE_CAPS \
  54.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
  55. #define IOCTL_PAR_IS_PORT_FREE \
  56.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
  57. #define IOCTL_PAR_QUERY_DEVICE_ID \
  58.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
  59. #define IOCTL_PAR_QUERY_DEVICE_ID_SIZE \
  60.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
  61. #define IOCTL_PAR_QUERY_INFORMATION \
  62.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
  63. #define IOCTL_PAR_QUERY_LOCATION \
  64.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
  65. #define IOCTL_PAR_QUERY_RAW_DEVICE_ID \
  66.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
  67. #define IOCTL_PAR_SET_INFORMATION \
  68.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
  69. #define IOCTL_PAR_SET_READ_ADDRESS \
  70.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
  71. #define IOCTL_PAR_SET_WRITE_ADDRESS \
  72.   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
  73.  
  74. typedef struct _PAR_DEVICE_ID_SIZE_INFORMATION {
  75.   ULONG  DeviceIdSize;
  76. } PAR_DEVICE_ID_SIZE_INFORMATION, *PPAR_DEVICE_ID_SIZE_INFORMATION;
  77.  
  78. #define PARALLEL_INIT                     0x01
  79. #define PARALLEL_AUTOFEED                 0x02
  80. #define PARALLEL_PAPER_EMPTY              0x04
  81. #define PARALLEL_OFF_LINE                 0x08
  82. #define PARALLEL_POWER_OFF                0x10
  83. #define PARALLEL_NOT_CONNECTED            0x20
  84. #define PARALLEL_BUSY                     0x40
  85. #define PARALLEL_SELECTED                 0x80
  86.  
  87. typedef struct _PAR_QUERY_INFORMATION {
  88.   UCHAR  Status;
  89. } PAR_QUERY_INFORMATION, *PPAR_QUERY_INFORMATION;
  90.  
  91. typedef struct _PAR_SET_INFORMATION {
  92.   UCHAR  Init;
  93. } PAR_SET_INFORMATION, *PPAR_SET_INFORMATION;
  94.  
  95. typedef struct _PARCLASS_NEGOTIATION_MASK {
  96.   USHORT  usReadMask;
  97.   USHORT  usWriteMask;
  98. } PARCLASS_NEGOTIATION_MASK, *PPARCLASS_NEGOTIATION_MASK;
  99.  
  100. #define NONE                              0x0000
  101. #define CENTRONICS                        0x0001
  102. #define IEEE_COMPATIBILITY                0x0002
  103. #define NIBBLE                            0x0004
  104. #define CHANNEL_NIBBLE                    0x0008
  105. #define BYTE_BIDIR                        0x0010
  106. #define EPP_HW                            0x0020
  107. #define EPP_SW                            0x0040
  108. #define EPP_ANY                           0x0060
  109. #define BOUNDED_ECP                       0x0080
  110. #define ECP_HW_NOIRQ                      0x0100
  111. #define ECP_HW_IRQ                        0x0200
  112. #define ECP_SW                            0x0400
  113. #define ECP_ANY                           0x0780
  114.  
  115. #ifdef __cplusplus
  116. }
  117. #endif
  118.  
  119. #endif /* __NTDDPAR_H */
  120.