Leaked source code of windows server 2003
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.
 
 
 
 
 
 

88 lines
3.3 KiB

//==========================================================================;
//
// WDMXBar.H
// WDM Analog/Video CrossBar MiniDriver.
// CWDMAVXBar Class definition.
// Copyright (c) 1996 - 1997 ATI Technologies Inc. All Rights Reserved.
//
//==========================================================================;
#ifndef _WDMXBAR_H_
#define _WDMXBAR_H_
#include "i2script.h"
#include "aticonfg.h"
#define KSPROPERTIES_AVXBAR_NUMBER_SET 1 // CrossBar with no TVAudio
#define KSPROPERTIES_AVXBAR_NUMBER_CROSSBAR ( KSPROPERTY_CROSSBAR_ROUTE + 1)
typedef struct
{
UINT AudioVideoPinType;
ULONG nRelatedPinNumber; // for all pins
ULONG nConnectedToPin; // for output pins only
PKSPIN_MEDIUM pMedium; // describes hardware connectivity
} XBAR_PIN_INFORMATION, * PXBAR_PIN_INFORMATION;
class CWDMAVXBar
{
public:
CWDMAVXBar ( PPORT_CONFIGURATION_INFORMATION pConfigInfo, CI2CScript * pCScript, PUINT puiError);
~CWDMAVXBar ();
PVOID operator new ( size_t size_t, PVOID pAllocation);
// Attributes
private:
// WDM global topology headers
GUID m_wdmAVXBarTopologyCategory;
KSTOPOLOGY m_wdmAVXBarTopology;
// WDM global property headers
KSPROPERTY_ITEM m_wdmAVXBarPropertiesCrossBar[KSPROPERTIES_AVXBAR_NUMBER_CROSSBAR];
KSPROPERTY_SET m_wdmAVXBarPropertySet[KSPROPERTIES_AVXBAR_NUMBER_SET];
// WDM global stream headers
HW_STREAM_HEADER m_wdmAVXBarStreamHeader;
// configuration properties
CATIHwConfiguration m_CATIConfiguration;
ULONG m_nNumberOfVideoInputs;
ULONG m_nNumberOfVideoOutputs;
ULONG m_nNumberOfAudioInputs;
ULONG m_nNumberOfAudioOutputs;
// power management configuration
DEVICE_POWER_STATE m_ulPowerState;
// pins information
PKSPIN_MEDIUM m_pXBarPinsMediumInfo;
PBOOL m_pXBarPinsDirectionInfo;
PXBAR_PIN_INFORMATION m_pXBarInputPinsInfo;
PXBAR_PIN_INFORMATION m_pXBarOutputPinsInfo;
// I2C provider properties
CI2CScript * m_pI2CScript;
// Implementation
public:
BOOL AdapterUnInitialize ( PHW_STREAM_REQUEST_BLOCK pSrb);
BOOL AdapterGetStreamInfo ( PHW_STREAM_REQUEST_BLOCK pSrb);
BOOL AdapterQueryUnload ( PHW_STREAM_REQUEST_BLOCK pSrb);
BOOL AdapterGetProperty ( PHW_STREAM_REQUEST_BLOCK pSrb);
BOOL AdapterSetProperty ( PHW_STREAM_REQUEST_BLOCK pSrb);
NTSTATUS AdapterCompleteInitialization ( PHW_STREAM_REQUEST_BLOCK pSrb);
NTSTATUS AdapterSetPowerState ( PHW_STREAM_REQUEST_BLOCK pSrb);
// the functions for asynchronous operations completion
void UpdateAudioConnectionAfterChange( void);
private:
void SetWDMAVXBarKSProperties ( void);
void SetWDMAVXBarKSTopology ( void);
};
#endif // _WDMXBAR_H_