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.
|
|
//---------------------------------------------------------------------------
//
// Module: dn.h
//
// Description: Device Node Class
//
//
//@@BEGIN_MSINTERNAL
// Development Team:
// Mike McLaughlin
//
// History: Date Author Comment
//
//@@END_MSINTERNAL
//---------------------------------------------------------------------------
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright (c) 1996-1999 Microsoft Corporation. All Rights Reserved.
//
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Constants and Macros
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Classes
//---------------------------------------------------------------------------
typedef class CDeviceNode: public CListDoubleItem { public: CDeviceNode( );
~CDeviceNode( );
NTSTATUS Create( PFILTER_NODE pFilterNode );
NTSTATUS Update( );
NTSTATUS CreateGraphNodes( );
ENUMFUNC Destroy() { Assert(this); delete this; return(STATUS_CONTINUE); };
NTSTATUS GetIndexByDevice( OUT PULONG pIndex );
PKSCOMPONENTID GetComponentId( ) { if (pFilterNode) { return(pFilterNode->GetComponentId()); } else { return(NULL); } };
PWSTR GetFriendlyName( ) { if (pFilterNode) { return(pFilterNode->GetFriendlyName()); } else { return(NULL); } };
PWSTR GetDeviceInterface( ) { if (pFilterNode) { return(pFilterNode->GetDeviceInterface()); } else { return(NULL); } };
VOID SetPreferredStatus( KSPROPERTY_SYSAUDIO_DEFAULT_TYPE DeviceType, BOOL Enable );
#ifdef DEBUG
PSZ DumpName( ) { return(DbgUnicode2Sz(GetFriendlyName())); }; #endif
private: NTSTATUS AddLogicalFilterNode( PFILTER_NODE pFilterNode ); public: PFILTER_NODE pFilterNode; LIST_GRAPH_NODE lstGraphNode; PSHINGLE_INSTANCE pShingleInstance; LIST_FILTER_INSTANCE lstFilterInstance; LIST_MULTI_LOGICAL_FILTER_NODE lstLogicalFilterNode; PFILTER_NODE pFilterNodeVirtual;
// Index by virtual source index
PVIRTUAL_SOURCE_DATA *papVirtualSourceData; ULONG cVirtualSourceData; DefineSignature(0x20204E4e); // DN
} DEVICE_NODE, *PDEVICE_NODE;
//---------------------------------------------------------------------------
typedef ListDoubleDestroy<DEVICE_NODE> LIST_DEVICE_NODE, *PLIST_DEVICE_NODE;
//---------------------------------------------------------------------------
// Globals
//---------------------------------------------------------------------------
extern ALLOC_PAGEABLE_DATA PLIST_DEVICE_NODE gplstDeviceNode;
//---------------------------------------------------------------------------
// Local prototypes
//---------------------------------------------------------------------------
#if defined(_M_IA64)
extern "C" #endif
NTSTATUS InitializeDeviceNode( );
VOID UninitializeDeviceNode( );
NTSTATUS GetDeviceByIndex( IN UINT Index, OUT PDEVICE_NODE *ppDeviceNode );
VOID DestroyAllGraphs( );
|