ReactOS 0.4.16-dev-338-g34e76ad
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 */
48class CMiniportWaveICH : public IMiniportWavePci,
49 public CUnknown,
50 public CMiniport
51{
52private:
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.
58
59public:
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
LONG NTSTATUS
Definition: precomp.h:26
DEFINE_STD_CONSTRUCTOR(CMiniportWaveICH)
#define __drv_reportError(why)
Definition: driverspecs.h:320
_In_ PUNKNOWN pUnknown
Definition: drmk.h:76
#define _When_(c, a)
Definition: no_sal2.h:38
INT POOL_TYPE
Definition: typedefs.h:78
#define IN
Definition: typedefs.h:39
#define OUT
Definition: typedefs.h:40
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)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3815
@ NonPagedPoolMustSucceed
Definition: ketypes.h:880