158 lines
4.3 KiB
C
158 lines
4.3 KiB
C
|
/*****************************************************************************
|
||
|
* mintopo.h - SB16 topology miniport private definitions
|
||
|
*****************************************************************************
|
||
|
* Copyright (c) 1997-2000 Microsoft Corporation. All Rights Reserved.
|
||
|
*/
|
||
|
|
||
|
#ifndef _SB16TOPO_PRIVATE_H_
|
||
|
#define _SB16TOPO_PRIVATE_H_
|
||
|
|
||
|
#include "common.h"
|
||
|
|
||
|
|
||
|
/*****************************************************************************
|
||
|
* Classes
|
||
|
*/
|
||
|
|
||
|
/*****************************************************************************
|
||
|
* CMiniportTopologySB16
|
||
|
*****************************************************************************
|
||
|
* SB16 topology miniport. This object is associated with the device and is
|
||
|
* created when the device is started. The class inherits IMiniportTopology
|
||
|
* so it can expose this interface and CUnknown so it automatically gets
|
||
|
* reference counting and aggregation support.
|
||
|
*/
|
||
|
class CMiniportTopologySB16
|
||
|
: public IMiniportTopology,
|
||
|
#ifdef EVENT_SUPPORT
|
||
|
public ITopoMiniportSB16,
|
||
|
#endif
|
||
|
public CUnknown
|
||
|
{
|
||
|
private:
|
||
|
PADAPTERCOMMON AdapterCommon; // Adapter common object.
|
||
|
#ifdef EVENT_SUPPORT
|
||
|
PPORTEVENTS PortEvents;
|
||
|
#endif
|
||
|
|
||
|
/*************************************************************************
|
||
|
* CMiniportTopologySB16 methods
|
||
|
*
|
||
|
* These are private member functions used internally by the object. See
|
||
|
* MINIPORT.CPP for specific descriptions.
|
||
|
*/
|
||
|
NTSTATUS ProcessResources
|
||
|
(
|
||
|
IN PRESOURCELIST ResourceList
|
||
|
);
|
||
|
BYTE ReadBitsFromMixer
|
||
|
(
|
||
|
BYTE Reg,
|
||
|
BYTE Bits,
|
||
|
BYTE Shift
|
||
|
);
|
||
|
void WriteBitsToMixer
|
||
|
(
|
||
|
BYTE Reg,
|
||
|
BYTE Bits,
|
||
|
BYTE Shift,
|
||
|
BYTE Value
|
||
|
);
|
||
|
|
||
|
public:
|
||
|
/*************************************************************************
|
||
|
* The following two macros are from STDUNK.H. DECLARE_STD_UNKNOWN()
|
||
|
* defines inline IUnknown implementations that use CUnknown's aggregation
|
||
|
* support. NonDelegatingQueryInterface() is declared, but it cannot be
|
||
|
* implemented generically. Its definition appears in MINIPORT.CPP.
|
||
|
* DEFINE_STD_CONSTRUCTOR() defines inline a constructor which accepts
|
||
|
* only the outer unknown, which is used for aggregation. The standard
|
||
|
* create macro (in MINIPORT.CPP) uses this constructor.
|
||
|
*/
|
||
|
DECLARE_STD_UNKNOWN();
|
||
|
DEFINE_STD_CONSTRUCTOR(CMiniportTopologySB16);
|
||
|
|
||
|
~CMiniportTopologySB16();
|
||
|
|
||
|
/*************************************************************************
|
||
|
* IMiniport methods
|
||
|
*/
|
||
|
STDMETHODIMP
|
||
|
GetDescription
|
||
|
( OUT PPCFILTER_DESCRIPTOR * OutFilterDescriptor
|
||
|
);
|
||
|
STDMETHODIMP
|
||
|
DataRangeIntersection
|
||
|
( IN ULONG PinId
|
||
|
, IN PKSDATARANGE DataRange
|
||
|
, IN PKSDATARANGE MatchingDataRange
|
||
|
, IN ULONG OutputBufferLength
|
||
|
, OUT PVOID ResultantFormat OPTIONAL
|
||
|
, OUT PULONG ResultantFormatLength
|
||
|
)
|
||
|
{
|
||
|
return STATUS_NOT_IMPLEMENTED;
|
||
|
}
|
||
|
|
||
|
/*************************************************************************
|
||
|
* IMiniportTopology methods
|
||
|
*/
|
||
|
STDMETHODIMP Init
|
||
|
(
|
||
|
IN PUNKNOWN UnknownAdapter,
|
||
|
IN PRESOURCELIST ResourceList,
|
||
|
IN PPORTTOPOLOGY Port
|
||
|
);
|
||
|
|
||
|
#ifdef EVENT_SUPPORT
|
||
|
/*************************************************************************
|
||
|
* ITopoMiniportSB16 methods
|
||
|
*/
|
||
|
STDMETHODIMP_(void) ServiceEvent (void);
|
||
|
#endif
|
||
|
|
||
|
/*************************************************************************
|
||
|
* Friends
|
||
|
*/
|
||
|
friend
|
||
|
NTSTATUS
|
||
|
PropertyHandler_OnOff
|
||
|
(
|
||
|
IN PPCPROPERTY_REQUEST PropertyRequest
|
||
|
);
|
||
|
friend
|
||
|
NTSTATUS
|
||
|
PropertyHandler_Level
|
||
|
(
|
||
|
IN PPCPROPERTY_REQUEST PropertyRequest
|
||
|
);
|
||
|
friend
|
||
|
NTSTATUS
|
||
|
PropertyHandler_SuperMixCaps
|
||
|
(
|
||
|
IN PPCPROPERTY_REQUEST PropertyRequest
|
||
|
);
|
||
|
friend
|
||
|
NTSTATUS
|
||
|
PropertyHandler_SuperMixTable
|
||
|
(
|
||
|
IN PPCPROPERTY_REQUEST PropertyRequest
|
||
|
);
|
||
|
friend
|
||
|
NTSTATUS
|
||
|
PropertyHandler_CpuResources
|
||
|
(
|
||
|
IN PPCPROPERTY_REQUEST PropertyRequest
|
||
|
);
|
||
|
static
|
||
|
NTSTATUS
|
||
|
EventHandler
|
||
|
(
|
||
|
IN PPCEVENT_REQUEST EventRequest
|
||
|
);
|
||
|
};
|
||
|
|
||
|
#include "tables.h"
|
||
|
|
||
|
#endif
|