ReactOS  0.4.15-dev-4934-gfd1e799
wavepciminiport.h
Go to the documentation of this file.
1 /********************************************************************************
2 ** Copyright (c) 1998-2000 Microsoft Corporation. All Rights Reserved.
3 **
4 ** Portions Copyright (c) 1998-1999 Intel Corporation
5 **
6 ********************************************************************************/
7 
8 /* The file wavepciminiport.h was reviewed by LCA in June 2011 and is acceptable for use by Microsoft. */
9 
10 #ifndef _MINWAVE_H_
11 #define _MINWAVE_H_
12 
13 #include "shared.h"
14 #define PPORT_ PPORTWAVEPCI
15 #define PPORTSTREAM_ PPORTWAVEPCISTREAM
16 #include "miniport.h"
17 
18 /*****************************************************************************
19  * Forward References
20  *****************************************************************************
21  */
23 
25 (
26  OUT CMiniportWaveICHStream ** pWaveIchStream,
29  __drv_reportError("Must succeed pool allocations are forbidden. "
30  "Allocation failures cause a system crash"))
32 );
33 
34 /*****************************************************************************
35  * Classes
36  *****************************************************************************
37  */
38 
39 /*****************************************************************************
40  * CMiniportWaveICH
41  *****************************************************************************
42  * AC97 wave PCI miniport. This object is associated with the device and is
43  * created when the device is started. The class inherits IMiniportWavePci
44  * so it can expose this interface, CUnknown so it automatically gets
45  * reference counting and aggregation support, and IPowerNotify for ACPI
46  * power management notification.
47  */
48 class CMiniportWaveICH : public IMiniportWavePci,
49  public CUnknown,
50  public CMiniport
51 {
52 private:
53  // The stream class accesses a lot of private member variables.
54  // A better way would be to abstract the access through member
55  // functions which on the other hand would produce more overhead
56  // both in CPU time and programming time.
57  friend class CMiniportWaveICHStream;
58 
59 public:
60  /*************************************************************************
61  * The following two macros are from STDUNK.H. DECLARE_STD_UNKNOWN()
62  * defines inline IUnknown implementations that use CUnknown's aggregation
63  * support. NonDelegatingQueryInterface() is declared, but it cannot be
64  * implemented generically. Its definition appears in MINWAVE.CPP.
65  * DEFINE_STD_CONSTRUCTOR() defines inline a constructor which accepts
66  * only the outer unknown, which is used for aggregation. The standard
67  * create macro (in MINWAVE.CPP) uses this constructor.
68  */
71 
72  //
73  // Include IMiniportWavePci (public/exported) methods
74  //
76 };
77 
78 #endif // _MINWAVE_H_
79 
#define IN
Definition: typedefs.h:39
#define __drv_reportError(why)
Definition: driverspecs.h:319
LONG NTSTATUS
Definition: precomp.h:26
#define _When_(expr, annos)
Definition: ms_sal.h:254
_In_ PUNKNOWN pUnknown
Definition: drmk.h:76
INT POOL_TYPE
Definition: typedefs.h:78
NTSTATUS CreateMiniportWaveICHStream(OUT CMiniportWaveICHStream **pWaveIchStream, IN PUNKNOWN pUnknown, _When_((PoolType &NonPagedPoolMustSucceed) !=0, __drv_reportError("Must succeed pool allocations are forbidden. " "Allocation failures cause a system crash")) IN POOL_TYPE PoolType)
DEFINE_STD_CONSTRUCTOR(CMiniportWaveICH)
#define OUT
Definition: typedefs.h:40
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3810