ReactOS 0.4.15-dev-7918-g2a2556c
wavecyclicminiport.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#ifndef _MINWAVE_H_
9#define _MINWAVE_H_
10
11#include "shared.h"
12#define PPORT_ PPORTWAVECYCLIC
13#define PPORTSTREAM_ PUNKNOWN
14#include "miniport.h"
15
16/*****************************************************************************
17 * Forward References
18 *****************************************************************************
19 */
21
23(
24 OUT CMiniportWaveCyclicStream ** pWaveIchStream,
27 __drv_reportError("Must succeed pool allocations are forbidden. "
28 "Allocation failures cause a system crash"))
30);
31
32/*****************************************************************************
33 * Classes
34 *****************************************************************************
35 */
36
37/*****************************************************************************
38 * CMiniportWaveCyclic
39 *****************************************************************************
40 * AC97 wave PCI miniport. This object is associated with the device and is
41 * created when the device is started. The class inherits IMiniportWaveCyclic
42 * so it can expose this interface, CUnknown so it automatically gets
43 * reference counting and aggregation support, and IPowerNotify for ACPI
44 * power management notification.
45 */
46class CMiniportWaveCyclic : public IMiniportWaveCyclic,
47 public CUnknown,
48 public CMiniport
49{
50private:
51 // The stream class accesses a lot of private member variables.
52 // A better way would be to abstract the access through member
53 // functions which on the other hand would produce more overhead
54 // both in CPU time and programming time.
56
57public:
58 /*************************************************************************
59 * The following two macros are from STDUNK.H. DECLARE_STD_UNKNOWN()
60 * defines inline IUnknown implementations that use CUnknown's aggregation
61 * support. NonDelegatingQueryInterface() is declared, but it cannot be
62 * implemented generically. Its definition appears in MINWAVE.CPP.
63 * DEFINE_STD_CONSTRUCTOR() defines inline a constructor which accepts
64 * only the outer unknown, which is used for aggregation. The standard
65 * create macro (in MINWAVE.CPP) uses this constructor.
66 */
69
70 //
71 // Include IMiniportWaveCyclic (public/exported) methods
72 //
74};
75
76#endif // _MINWAVE_H_
77
LONG NTSTATUS
Definition: precomp.h:26
DEFINE_STD_CONSTRUCTOR(CMiniportWaveCyclic)
#define __drv_reportError(why)
Definition: driverspecs.h:320
_In_ PUNKNOWN pUnknown
Definition: drmk.h:76
#define _When_(expr, annos)
Definition: ms_sal.h:254
INT POOL_TYPE
Definition: typedefs.h:78
#define IN
Definition: typedefs.h:39
#define OUT
Definition: typedefs.h:40
NTSTATUS CreateMiniportWaveCyclicStream(OUT CMiniportWaveCyclicStream **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