Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

312 lines
4.1 KiB

  1. /*++
  2. Copyright (c) 1993 Microsoft Corporation
  3. Module Name:
  4. regioreqr.hxx
  5. Abstract:
  6. This module contains the declarations for the IO_REQUIREMENTS_LIST
  7. class. This class models models an IO_RESOURCE_REQUIREMENTS_LIST
  8. structure, used on registry data of type REG_IO_RESOURCE_REQUIREMENTS_LIST.
  9. Author:
  10. Jaime Sasson (jaimes) 01-Dec-1993
  11. Environment:
  12. ULIB, User Mode
  13. --*/
  14. #if !defined( _IO_REQUIREMENTS_LIST_ )
  15. #define _IO_REQUIREMENTS_LIST_
  16. // don't let ntdddisk.h (included in ulib.hxx")
  17. // redefine values
  18. #define _NTDDDISK_H_
  19. #include "ulib.hxx"
  20. #include "array.hxx"
  21. DECLARE_CLASS( IO_REQUIREMENTS_LIST );
  22. class IO_REQUIREMENTS_LIST : OBJECT {
  23. public:
  24. DECLARE_CONSTRUCTOR( IO_REQUIREMENTS_LIST );
  25. VIRTUAL
  26. ~IO_REQUIREMENTS_LIST(
  27. );
  28. NONVIRTUAL
  29. BOOLEAN
  30. Initialize(
  31. IN PCBYTE Data,
  32. IN ULONG DataSize
  33. );
  34. NONVIRTUAL
  35. INTERFACE_TYPE
  36. GetInterfaceType(
  37. ) CONST;
  38. NONVIRTUAL
  39. ULONG
  40. GetBusNumber(
  41. ) CONST;
  42. NONVIRTUAL
  43. ULONG
  44. GetSlotNumber(
  45. ) CONST;
  46. NONVIRTUAL
  47. ULONG
  48. GetReserved1(
  49. ) CONST;
  50. NONVIRTUAL
  51. ULONG
  52. GetReserved2(
  53. ) CONST;
  54. NONVIRTUAL
  55. ULONG
  56. GetReserved3(
  57. ) CONST;
  58. NONVIRTUAL
  59. PARRAY
  60. GetAlternativeLists(
  61. ) CONST;
  62. #if DBG
  63. NONVIRTUAL
  64. VOID
  65. DbgDumpObject(
  66. );
  67. #endif
  68. private:
  69. NONVIRTUAL
  70. VOID
  71. Construct(
  72. );
  73. NONVIRTUAL
  74. VOID
  75. Destroy(
  76. );
  77. INTERFACE_TYPE _InterfaceType;
  78. ULONG _BusNumber;
  79. ULONG _SlotNumber;
  80. ULONG _Reserved1;
  81. ULONG _Reserved2;
  82. ULONG _Reserved3;
  83. PARRAY _AlternativeLists;
  84. };
  85. INLINE
  86. INTERFACE_TYPE
  87. IO_REQUIREMENTS_LIST::GetInterfaceType(
  88. ) CONST
  89. /*++
  90. Routine Description:
  91. Return the interface type of the requirement lists represented
  92. by this object.
  93. Arguments:
  94. None.
  95. Return Value:
  96. Returns the interface type.
  97. --*/
  98. {
  99. return( _InterfaceType );
  100. }
  101. INLINE
  102. ULONG
  103. IO_REQUIREMENTS_LIST::GetBusNumber(
  104. ) CONST
  105. /*++
  106. Routine Description:
  107. Return the bus number of the requirement lists represented
  108. by this object.
  109. Arguments:
  110. None.
  111. Return Value:
  112. ULONG - Returns the bus number.
  113. --*/
  114. {
  115. return( _BusNumber );
  116. }
  117. INLINE
  118. ULONG
  119. IO_REQUIREMENTS_LIST::GetSlotNumber(
  120. ) CONST
  121. /*++
  122. Routine Description:
  123. Return the slot number of the requirement lists represented
  124. by this object.
  125. Arguments:
  126. None.
  127. Return Value:
  128. ULONG - Returns the slot number.
  129. --*/
  130. {
  131. return( _SlotNumber );
  132. }
  133. INLINE
  134. ULONG
  135. IO_REQUIREMENTS_LIST::GetReserved1(
  136. ) CONST
  137. /*++
  138. Routine Description:
  139. Return the first reserved data of the requirement lists represented
  140. by this object.
  141. Arguments:
  142. None.
  143. Return Value:
  144. ULONG - Returns the first reserved data.
  145. --*/
  146. {
  147. return( _Reserved1 );
  148. }
  149. INLINE
  150. ULONG
  151. IO_REQUIREMENTS_LIST::GetReserved2(
  152. ) CONST
  153. /*++
  154. Routine Description:
  155. Return the second reserved data of the requirement lists represented
  156. by this object.
  157. Arguments:
  158. None.
  159. Return Value:
  160. ULONG - Returns the second reserved data.
  161. --*/
  162. {
  163. return( _Reserved2 );
  164. }
  165. INLINE
  166. ULONG
  167. IO_REQUIREMENTS_LIST::GetReserved3(
  168. ) CONST
  169. /*++
  170. Routine Description:
  171. Return the third reserved data of the requirement lists represented
  172. by this object.
  173. Arguments:
  174. None.
  175. Return Value:
  176. ULONG - Returns the third reserved data.
  177. --*/
  178. {
  179. return( _Reserved3 );
  180. }
  181. INLINE
  182. PARRAY
  183. IO_REQUIREMENTS_LIST::GetAlternativeLists(
  184. ) CONST
  185. /*++
  186. Routine Description:
  187. Return a pointer to the array that contains the alternative
  188. lists.
  189. Arguments:
  190. None.
  191. Return Value:
  192. PARRAY - Pointer to the array that contains the full resource descriptors.
  193. --*/
  194. {
  195. return( _AlternativeLists );
  196. }
  197. #endif // _IO_REQUIREMENTS_LIST_