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.

157 lines
4.3 KiB

  1. /*****************************************************************************
  2. * mintopo.h - SB16 topology miniport private definitions
  3. *****************************************************************************
  4. * Copyright (c) 1997-2000 Microsoft Corporation. All Rights Reserved.
  5. */
  6. #ifndef _SB16TOPO_PRIVATE_H_
  7. #define _SB16TOPO_PRIVATE_H_
  8. #include "common.h"
  9. /*****************************************************************************
  10. * Classes
  11. */
  12. /*****************************************************************************
  13. * CMiniportTopologySB16
  14. *****************************************************************************
  15. * SB16 topology miniport. This object is associated with the device and is
  16. * created when the device is started. The class inherits IMiniportTopology
  17. * so it can expose this interface and CUnknown so it automatically gets
  18. * reference counting and aggregation support.
  19. */
  20. class CMiniportTopologySB16
  21. : public IMiniportTopology,
  22. #ifdef EVENT_SUPPORT
  23. public ITopoMiniportSB16,
  24. #endif
  25. public CUnknown
  26. {
  27. private:
  28. PADAPTERCOMMON AdapterCommon; // Adapter common object.
  29. #ifdef EVENT_SUPPORT
  30. PPORTEVENTS PortEvents;
  31. #endif
  32. /*************************************************************************
  33. * CMiniportTopologySB16 methods
  34. *
  35. * These are private member functions used internally by the object. See
  36. * MINIPORT.CPP for specific descriptions.
  37. */
  38. NTSTATUS ProcessResources
  39. (
  40. IN PRESOURCELIST ResourceList
  41. );
  42. BYTE ReadBitsFromMixer
  43. (
  44. BYTE Reg,
  45. BYTE Bits,
  46. BYTE Shift
  47. );
  48. void WriteBitsToMixer
  49. (
  50. BYTE Reg,
  51. BYTE Bits,
  52. BYTE Shift,
  53. BYTE Value
  54. );
  55. public:
  56. /*************************************************************************
  57. * The following two macros are from STDUNK.H. DECLARE_STD_UNKNOWN()
  58. * defines inline IUnknown implementations that use CUnknown's aggregation
  59. * support. NonDelegatingQueryInterface() is declared, but it cannot be
  60. * implemented generically. Its definition appears in MINIPORT.CPP.
  61. * DEFINE_STD_CONSTRUCTOR() defines inline a constructor which accepts
  62. * only the outer unknown, which is used for aggregation. The standard
  63. * create macro (in MINIPORT.CPP) uses this constructor.
  64. */
  65. DECLARE_STD_UNKNOWN();
  66. DEFINE_STD_CONSTRUCTOR(CMiniportTopologySB16);
  67. ~CMiniportTopologySB16();
  68. /*************************************************************************
  69. * IMiniport methods
  70. */
  71. STDMETHODIMP
  72. GetDescription
  73. ( OUT PPCFILTER_DESCRIPTOR * OutFilterDescriptor
  74. );
  75. STDMETHODIMP
  76. DataRangeIntersection
  77. ( IN ULONG PinId
  78. , IN PKSDATARANGE DataRange
  79. , IN PKSDATARANGE MatchingDataRange
  80. , IN ULONG OutputBufferLength
  81. , OUT PVOID ResultantFormat OPTIONAL
  82. , OUT PULONG ResultantFormatLength
  83. )
  84. {
  85. return STATUS_NOT_IMPLEMENTED;
  86. }
  87. /*************************************************************************
  88. * IMiniportTopology methods
  89. */
  90. STDMETHODIMP Init
  91. (
  92. IN PUNKNOWN UnknownAdapter,
  93. IN PRESOURCELIST ResourceList,
  94. IN PPORTTOPOLOGY Port
  95. );
  96. #ifdef EVENT_SUPPORT
  97. /*************************************************************************
  98. * ITopoMiniportSB16 methods
  99. */
  100. STDMETHODIMP_(void) ServiceEvent (void);
  101. #endif
  102. /*************************************************************************
  103. * Friends
  104. */
  105. friend
  106. NTSTATUS
  107. PropertyHandler_OnOff
  108. (
  109. IN PPCPROPERTY_REQUEST PropertyRequest
  110. );
  111. friend
  112. NTSTATUS
  113. PropertyHandler_Level
  114. (
  115. IN PPCPROPERTY_REQUEST PropertyRequest
  116. );
  117. friend
  118. NTSTATUS
  119. PropertyHandler_SuperMixCaps
  120. (
  121. IN PPCPROPERTY_REQUEST PropertyRequest
  122. );
  123. friend
  124. NTSTATUS
  125. PropertyHandler_SuperMixTable
  126. (
  127. IN PPCPROPERTY_REQUEST PropertyRequest
  128. );
  129. friend
  130. NTSTATUS
  131. PropertyHandler_CpuResources
  132. (
  133. IN PPCPROPERTY_REQUEST PropertyRequest
  134. );
  135. static
  136. NTSTATUS
  137. EventHandler
  138. (
  139. IN PPCEVENT_REQUEST EventRequest
  140. );
  141. };
  142. #include "tables.h"
  143. #endif