ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
March 2010
----- 2025 -----
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
19 participants
896 discussions
Start a n
N
ew thread
[akhaldi] 46178: [NTIFS] - Group related definitions - Remove redundant PoRegisterPowerSettingCallback and PoUnregisterPowerSettingCallback (they exist in wdm.h)
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Mar 13 19:12:08 2010 New Revision: 46178 URL:
http://svn.reactos.org/svn/reactos?rev=46178&view=rev
Log: [NTIFS] - Group related definitions - Remove redundant PoRegisterPowerSettingCallback and PoUnregisterPowerSettingCallback (they exist in wdm.h) Modified: branches/header-work/include/ddk/ntifs.h Modified: branches/header-work/include/ddk/ntifs.h URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/ntifs.h…
============================================================================== --- branches/header-work/include/ddk/ntifs.h [iso-8859-1] (original) +++ branches/header-work/include/ddk/ntifs.h [iso-8859-1] Sat Mar 13 19:12:08 2010 @@ -6215,25 +6215,6 @@ IN OUT PWORK_QUEUE_ITEM WorkItem); #endif -#if (NTDDI_VERSION >= NTDDI_VISTA) - -NTKERNELAPI -NTSTATUS -NTAPI -PoRegisterPowerSettingCallback( - IN PDEVICE_OBJECT DeviceObject OPTIONAL, - IN LPCGUID SettingGuid, - IN PPOWER_SETTING_CALLBACK Callback, - IN PVOID Context OPTIONAL, - OUT PVOID *Handle); - -NTKERNELAPI -NTSTATUS -PoUnregisterPowerSettingCallback( - IN OUT PVOID Handle); - -#endif - #if (NTDDI_VERSION >= NTDDI_WIN6SP1) NTKERNELAPI VOID @@ -8429,6 +8410,138 @@ ) extern ULONG CcFastMdlReadWait; + +#if (NTDDI_VERSION >= NTDDI_WIN2K) + +NTKERNELAPI +VOID +NTAPI +CcInitializeCacheMap( + IN PFILE_OBJECT FileObject, + IN PCC_FILE_SIZES FileSizes, + IN BOOLEAN PinAccess, + IN PCACHE_MANAGER_CALLBACKS Callbacks, + IN PVOID LazyWriteContext); + +NTKERNELAPI +BOOLEAN +NTAPI +CcUninitializeCacheMap( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER TruncateSize OPTIONAL, + IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL); + +NTKERNELAPI +VOID +NTAPI +CcSetFileSizes( + IN PFILE_OBJECT FileObject, + IN PCC_FILE_SIZES FileSizes); + +NTKERNELAPI +VOID +NTAPI +CcSetDirtyPageThreshold( + IN PFILE_OBJECT FileObject, + IN ULONG DirtyPageThreshold); + +NTKERNELAPI +VOID +NTAPI +CcFlushCache( + IN PSECTION_OBJECT_POINTERS SectionObjectPointer, + IN PLARGE_INTEGER FileOffset OPTIONAL, + IN ULONG Length, + OUT PIO_STATUS_BLOCK IoStatus OPTIONAL); + +NTKERNELAPI +LARGE_INTEGER +NTAPI +CcGetFlushedValidData( + IN PSECTION_OBJECT_POINTERS SectionObjectPointer, + IN BOOLEAN BcbListHeld); + +NTKERNELAPI +BOOLEAN +NTAPI +CcZeroData( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER StartOffset, + IN PLARGE_INTEGER EndOffset, + IN BOOLEAN Wait); + +NTKERNELAPI +PVOID +NTAPI +CcRemapBcb( + IN PVOID Bcb); + +NTKERNELAPI +VOID +NTAPI +CcRepinBcb( + IN PVOID Bcb); + +NTKERNELAPI +VOID +NTAPI +CcUnpinRepinnedBcb( + IN PVOID Bcb, + IN BOOLEAN WriteThrough, + OUT PIO_STATUS_BLOCK IoStatus); + +#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */ + +#if (NTDDI_VERSION >= NTDDI_VISTA) +NTKERNELAPI +NTSTATUS +NTAPI +CcSetFileSizesEx( + IN PFILE_OBJECT FileObject, + IN PCC_FILE_SIZES FileSizes); +#endif + +#if (NTDDI_VERSION >= NTDDI_WIN7) +NTKERNELAPI +VOID +NTAPI +CcCoherencyFlushAndPurgeCache( + IN PSECTION_OBJECT_POINTERS SectionObjectPointer, + IN PLARGE_INTEGER FileOffset OPTIONAL, + IN ULONG Length, + OUT PIO_STATUS_BLOCK IoStatus, + IN ULONG Flags OPTIONAL); +#endif + +#define CcGetFileSizePointer(FO) ( \ + ((PLARGE_INTEGER)((FO)->SectionObjectPointer->SharedCacheMap) + 1) \ +) + +#define UNINITIALIZE_CACHE_MAPS (1) +#define DO_NOT_RETRY_PURGE (2) +#define DO_NOT_PURGE_DIRTY_PAGES (0x4) + +#define CC_FLUSH_AND_PURGE_NO_PURGE (0x1) + +#if (NTDDI_VERSION >= NTDDI_VISTA) +NTKERNELAPI +BOOLEAN +NTAPI +CcPurgeCacheSection( + IN PSECTION_OBJECT_POINTERS SectionObjectPointer, + IN PLARGE_INTEGER FileOffset OPTIONAL, + IN ULONG Length, + IN ULONG Flags); +#elif (NTDDI_VERSION >= NTDDI_WIN2K) +NTKERNELAPI +BOOLEAN +NTAPI +CcPurgeCacheSection( + IN PSECTION_OBJECT_POINTERS SectionObjectPointer, + IN PLARGE_INTEGER FileOffset OPTIONAL, + IN ULONG Length, + IN BOOLEAN UninitializeCacheMaps); +#endif #pragma pack(push,4) @@ -9153,16 +9266,6 @@ ); NTKERNELAPI -VOID -NTAPI -CcFlushCache ( - IN PSECTION_OBJECT_POINTERS SectionObjectPointer, - IN PLARGE_INTEGER FileOffset OPTIONAL, - IN ULONG Length, - OUT PIO_STATUS_BLOCK IoStatus OPTIONAL -); - -NTKERNELAPI LARGE_INTEGER NTAPI CcGetDirtyPages ( @@ -9186,39 +9289,12 @@ IN PSECTION_OBJECT_POINTERS SectionObjectPointer ); -#define CcGetFileSizePointer(FO) ( \ - ((PLARGE_INTEGER)((FO)->SectionObjectPointer->SharedCacheMap) + 1) \ -) - -#if (VER_PRODUCTBUILD >= 2195) - -NTKERNELAPI -LARGE_INTEGER -NTAPI -CcGetFlushedValidData ( - IN PSECTION_OBJECT_POINTERS SectionObjectPointer, - IN BOOLEAN BcbListHeld -); - -#endif /* (VER_PRODUCTBUILD >= 2195) */ - NTKERNELAPI LARGE_INTEGER NTAPI CcGetLsnForFileObject ( IN PFILE_OBJECT FileObject, OUT PLARGE_INTEGER OldestLsn OPTIONAL -); - -NTKERNELAPI -VOID -NTAPI -CcInitializeCacheMap ( - IN PFILE_OBJECT FileObject, - IN PCC_FILE_SIZES FileSizes, - IN BOOLEAN PinAccess, - IN PCACHE_MANAGER_CALLBACKS Callbacks, - IN PVOID LazyWriteContext ); NTKERNELAPI @@ -9317,40 +9393,12 @@ OUT PVOID *Buffer ); -NTKERNELAPI -BOOLEAN -NTAPI -CcPurgeCacheSection ( - IN PSECTION_OBJECT_POINTERS SectionObjectPointer, - IN PLARGE_INTEGER FileOffset OPTIONAL, - IN ULONG Length, - IN BOOLEAN UninitializeCacheMaps -); - #define CcReadAhead(FO, FOFF, LEN) ( \ if ((LEN) >= 256) { \ CcScheduleReadAhead((FO), (FOFF), (LEN)); \ } \ ) -#if (VER_PRODUCTBUILD >= 2195) - -NTKERNELAPI -PVOID -NTAPI -CcRemapBcb ( - IN PVOID Bcb -); - -#endif /* (VER_PRODUCTBUILD >= 2195) */ - -NTKERNELAPI -VOID -NTAPI -CcRepinBcb ( - IN PVOID Bcb -); - NTKERNELAPI VOID NTAPI @@ -9380,25 +9428,9 @@ NTKERNELAPI VOID NTAPI -CcSetDirtyPageThreshold ( - IN PFILE_OBJECT FileObject, - IN ULONG DirtyPageThreshold -); - -NTKERNELAPI -VOID -NTAPI CcSetDirtyPinnedData ( IN PVOID BcbVoid, IN PLARGE_INTEGER Lsn OPTIONAL -); - -NTKERNELAPI -VOID -NTAPI -CcSetFileSizes ( - IN PFILE_OBJECT FileObject, - IN PCC_FILE_SIZES FileSizes ); NTKERNELAPI @@ -9420,15 +9452,6 @@ ); NTKERNELAPI -BOOLEAN -NTAPI -CcUninitializeCacheMap ( - IN PFILE_OBJECT FileObject, - IN PLARGE_INTEGER TruncateSize OPTIONAL, - IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL -); - -NTKERNELAPI VOID NTAPI CcUnpinData ( @@ -9443,15 +9466,6 @@ IN ERESOURCE_THREAD ResourceThreadId ); -NTKERNELAPI -VOID -NTAPI -CcUnpinRepinnedBcb ( - IN PVOID Bcb, - IN BOOLEAN WriteThrough, - OUT PIO_STATUS_BLOCK IoStatus -); - #if (VER_PRODUCTBUILD >= 2195) NTKERNELAPI @@ -9462,16 +9476,6 @@ ); #endif /* (VER_PRODUCTBUILD >= 2195) */ - -NTKERNELAPI -BOOLEAN -NTAPI -CcZeroData ( - IN PFILE_OBJECT FileObject, - IN PLARGE_INTEGER StartOffset, - IN PLARGE_INTEGER EndOffset, - IN BOOLEAN Wait -); #if (VER_PRODUCTBUILD >= 2600)
14 years, 10 months
1
0
0
0
[spetreolle] 46177: [ROSAPPS] Fix green build.
by spetreolle@svn.reactos.org
Author: spetreolle Date: Sat Mar 13 19:07:56 2010 New Revision: 46177 URL:
http://svn.reactos.org/svn/reactos?rev=46177&view=rev
Log: [ROSAPPS] Fix green build. Modified: trunk/rosapps/drivers/green/green.h Modified: trunk/rosapps/drivers/green/green.h URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/drivers/green/green.h?rev=…
============================================================================== --- trunk/rosapps/drivers/green/green.h [iso-8859-1] (original) +++ trunk/rosapps/drivers/green/green.h [iso-8859-1] Sat Mar 13 19:07:56 2010 @@ -1,6 +1,7 @@ #include <stdarg.h> -#include <ntddk.h> +#include <ntifs.h> #include <ndk/iotypes.h> +#include <ndk/obfuncs.h> #include <windef.h> #define WINBASEAPI typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES;
14 years, 10 months
1
0
0
0
[janderwald] 46176: [PSDK] - Fix KSPROPSETID_Stream definition [KSPROXY] - Implement IKsClockPropertySet, IReferenceClock, IMediaSeeking, IKsTopology interface for CKsProxy - Implement more of IBaseFilter::SetSyncSource for CKsProxy - Add missing AddRef to IBaseFilter::QueryFilterInfo for CKsProxy
by janderwald@svn.reactos.org
Author: janderwald Date: Sat Mar 13 18:36:30 2010 New Revision: 46176 URL:
http://svn.reactos.org/svn/reactos?rev=46176&view=rev
Log: [PSDK] - Fix KSPROPSETID_Stream definition [KSPROXY] - Implement IKsClockPropertySet, IReferenceClock, IMediaSeeking, IKsTopology interface for CKsProxy - Implement more of IBaseFilter::SetSyncSource for CKsProxy - Add missing AddRef to IBaseFilter::QueryFilterInfo for CKsProxy Added: trunk/reactos/dll/directx/ksproxy/node.cpp (with props) Modified: trunk/reactos/dll/directx/ksproxy/input_pin.cpp trunk/reactos/dll/directx/ksproxy/ksproxy.rbuild trunk/reactos/dll/directx/ksproxy/output_pin.cpp trunk/reactos/dll/directx/ksproxy/precomp.h trunk/reactos/dll/directx/ksproxy/proxy.cpp trunk/reactos/include/psdk/ks.h Modified: trunk/reactos/dll/directx/ksproxy/input_pin.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ksproxy/input_…
============================================================================== --- trunk/reactos/dll/directx/ksproxy/input_pin.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/directx/ksproxy/input_pin.cpp [iso-8859-1] Sat Mar 13 18:36:30 2010 @@ -140,7 +140,7 @@ HRESULT STDMETHODCALLTYPE CheckFormat(const AM_MEDIA_TYPE *pmt); HRESULT STDMETHODCALLTYPE CreatePin(const AM_MEDIA_TYPE *pmt); HRESULT STDMETHODCALLTYPE CreatePinHandle(PKSPIN_MEDIUM Medium, PKSPIN_INTERFACE Interface, const AM_MEDIA_TYPE *pmt); - CInputPin(IBaseFilter * ParentFilter, LPCWSTR PinName, HANDLE hFilter, ULONG PinId, KSPIN_COMMUNICATION Communication) : m_Ref(0), m_ParentFilter(ParentFilter), m_PinName(PinName), m_hFilter(hFilter), m_hPin(0), m_PinId(PinId), m_MemAllocator(0), m_IoCount(0), m_Communication(Communication), m_Pin(0), m_ReadOnly(0){}; + CInputPin(IBaseFilter * ParentFilter, LPCWSTR PinName, HANDLE hFilter, ULONG PinId, KSPIN_COMMUNICATION Communication) : m_Ref(0), m_ParentFilter(ParentFilter), m_PinName(PinName), m_hFilter(hFilter), m_hPin(INVALID_HANDLE_VALUE), m_PinId(PinId), m_MemAllocator(0), m_IoCount(0), m_Communication(Communication), m_Pin(0), m_ReadOnly(0){}; virtual ~CInputPin(){}; protected: Modified: trunk/reactos/dll/directx/ksproxy/ksproxy.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ksproxy/ksprox…
============================================================================== --- trunk/reactos/dll/directx/ksproxy/ksproxy.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/directx/ksproxy/ksproxy.rbuild [iso-8859-1] Sat Mar 13 18:36:30 2010 @@ -33,6 +33,7 @@ <file>interface.cpp</file> <file>ksproxy.cpp</file> <file>ksproxy.rc</file> + <file>node.cpp</file> <file>output_pin.cpp</file> <file>proxy.cpp</file> <file>qualityforward.cpp</file> Added: trunk/reactos/dll/directx/ksproxy/node.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ksproxy/node.c…
============================================================================== --- trunk/reactos/dll/directx/ksproxy/node.cpp (added) +++ trunk/reactos/dll/directx/ksproxy/node.cpp [iso-8859-1] Sat Mar 13 18:36:30 2010 @@ -1,0 +1,157 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS WDM Streaming ActiveMovie Proxy + * FILE: dll/directx/ksproxy/node.cpp + * PURPOSE: Control Node + * + * PROGRAMMERS: Johannes Anderwald (janderwald(a)reactos.org) + */ +#include "precomp.h" + +class CKsNode : public IKsControl +{ +public: + STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface); + + STDMETHODIMP_(ULONG) AddRef() + { + InterlockedIncrement(&m_Ref); + return m_Ref; + } + STDMETHODIMP_(ULONG) Release() + { + InterlockedDecrement(&m_Ref); + + if (!m_Ref) + { + delete this; + return 0; + } + return m_Ref; + } + + //IKsControl + HRESULT STDMETHODCALLTYPE KsProperty(PKSPROPERTY Property, ULONG PropertyLength, LPVOID PropertyData, ULONG DataLength, ULONG* BytesReturned); + HRESULT STDMETHODCALLTYPE KsMethod(PKSMETHOD Method, ULONG MethodLength, LPVOID MethodData, ULONG DataLength, ULONG* BytesReturned); + HRESULT STDMETHODCALLTYPE KsEvent(PKSEVENT Event, ULONG EventLength, LPVOID EventData, ULONG DataLength, ULONG* BytesReturned); + + CKsNode(IUnknown * pUnkOuter, HANDLE Handle) : m_Ref(0), m_pUnkOuter(pUnkOuter), m_Handle(Handle){}; + virtual ~CKsNode() + { + CloseHandle(m_Handle); + }; + +protected: + LONG m_Ref; + IUnknown * m_pUnkOuter; + HANDLE m_Handle; +}; + +HRESULT +STDMETHODCALLTYPE +CKsNode::QueryInterface( + IN REFIID refiid, + OUT PVOID* Output) +{ + if (IsEqualGUID(refiid, IID_IUnknown) || + IsEqualGUID(refiid, IID_IKsControl)) + { + *Output = PVOID(this); + reinterpret_cast<IUnknown*>(*Output)->AddRef(); + return NOERROR; + } + + return E_NOINTERFACE; +} + +//------------------------------------------------------------------- +// IKsControl +// +HRESULT +STDMETHODCALLTYPE +CKsNode::KsProperty( + PKSPROPERTY Property, + ULONG PropertyLength, + LPVOID PropertyData, + ULONG DataLength, + ULONG* BytesReturned) +{ + assert(m_Handle != 0); + return KsSynchronousDeviceControl(m_Handle, IOCTL_KS_PROPERTY, (PVOID)Property, PropertyLength, (PVOID)PropertyData, DataLength, BytesReturned); +} + +HRESULT +STDMETHODCALLTYPE +CKsNode::KsMethod( + PKSMETHOD Method, + ULONG MethodLength, + LPVOID MethodData, + ULONG DataLength, + ULONG* BytesReturned) +{ + assert(m_Handle != 0); + return KsSynchronousDeviceControl(m_Handle, IOCTL_KS_METHOD, (PVOID)Method, MethodLength, (PVOID)MethodData, DataLength, BytesReturned); +} + +HRESULT +STDMETHODCALLTYPE +CKsNode::KsEvent( + PKSEVENT Event, + ULONG EventLength, + LPVOID EventData, + ULONG DataLength, + ULONG* BytesReturned) +{ + assert(m_Handle != 0); + + if (EventLength) + return KsSynchronousDeviceControl(m_Handle, IOCTL_KS_ENABLE_EVENT, (PVOID)Event, EventLength, (PVOID)EventData, DataLength, BytesReturned); + else + return KsSynchronousDeviceControl(m_Handle, IOCTL_KS_DISABLE_EVENT, (PVOID)Event, EventLength, NULL, 0, BytesReturned); +} + +HRESULT +WINAPI +CKsNode_Constructor( + IUnknown * pUnkOuter, + HANDLE ParentHandle, + ULONG NodeId, + ACCESS_MASK DesiredAccess, + REFIID riid, + LPVOID * ppv) +{ + HRESULT hr; + HANDLE handle; + KSNODE_CREATE NodeCreate; + + OutputDebugStringW(L"CKsNode_Constructor\n"); + + //setup request + NodeCreate.CreateFlags = 0; + NodeCreate.Node = NodeId; + + hr = KsCreateTopologyNode(ParentHandle, &NodeCreate, DesiredAccess, &handle); + if (hr != NOERROR) + { + OutputDebugString("CKsNode_Constructor failed to open device\n"); + return MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, hr); + } + + CKsNode * quality = new CKsNode(pUnkOuter, handle); + + if (!quality) + { + // free clock handle + CloseHandle(handle); + return E_OUTOFMEMORY; + } + + if (FAILED(quality->QueryInterface(riid, ppv))) + { + /* not supported */ + delete quality; + return E_NOINTERFACE; + } + + return NOERROR; +} Propchange: trunk/reactos/dll/directx/ksproxy/node.cpp ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/dll/directx/ksproxy/output_pin.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ksproxy/output…
============================================================================== --- trunk/reactos/dll/directx/ksproxy/output_pin.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/directx/ksproxy/output_pin.cpp [iso-8859-1] Sat Mar 13 18:36:30 2010 @@ -123,7 +123,7 @@ COutputPin::COutputPin( IBaseFilter * ParentFilter, LPCWSTR PinName, - ULONG PinId) : m_Ref(0), m_ParentFilter(ParentFilter), m_PinName(PinName), m_hPin(0), m_PinId(PinId), m_KsObjectParent(0), m_Pin(0) + ULONG PinId) : m_Ref(0), m_ParentFilter(ParentFilter), m_PinName(PinName), m_hPin(INVALID_HANDLE_VALUE), m_PinId(PinId), m_KsObjectParent(0), m_Pin(0) { HRESULT hr; Modified: trunk/reactos/dll/directx/ksproxy/precomp.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ksproxy/precom…
============================================================================== --- trunk/reactos/dll/directx/ksproxy/precomp.h [iso-8859-1] (original) +++ trunk/reactos/dll/directx/ksproxy/precomp.h [iso-8859-1] Sat Mar 13 18:36:30 2010 @@ -20,6 +20,20 @@ #include <vector> #include <assert.h> //#include <debug.h> + + +interface DECLSPEC_UUID("877E4351-6FEA-11D0-B863-00AA00A216A1") IKsClock; + +#undef INTERFACE +#define INTERFACE IKsClock + +DECLARE_INTERFACE_(IKsClock, IUnknown) +{ + STDMETHOD_(HANDLE, KsGetClockHandle)( + THIS + ) PURE; +}; + typedef HRESULT (CALLBACK *LPFNCREATEINSTANCE)(IUnknown* pUnkOuter, REFIID riid, LPVOID* ppvObject); @@ -139,4 +153,15 @@ REFIID riid, LPVOID * ppv); +/* node.cpp */ +HRESULT +WINAPI +CKsNode_Constructor( + IUnknown * pUnkOuter, + HANDLE ParentHandle, + ULONG NodeId, + ACCESS_MASK DesiredAccess, + REFIID riid, + LPVOID * ppv); + extern const GUID IID_IKsObject; Modified: trunk/reactos/dll/directx/ksproxy/proxy.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ksproxy/proxy.…
============================================================================== --- trunk/reactos/dll/directx/ksproxy/proxy.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/directx/ksproxy/proxy.cpp [iso-8859-1] Sat Mar 13 18:36:30 2010 @@ -14,13 +14,16 @@ const GUID IID_ISpecifyPropertyPages = {0xB196B28B, 0xBAB4, 0x101A, {0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07}}; const GUID IID_IPersistStream = {0x00000109, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; const GUID KSPROPSETID_MediaSeeking = {0xEE904F0CL, 0xD09B, 0x11D0, {0xAB, 0xE9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}}; +const GUID KSPROPSETID_Clock = {0xDF12A4C0L, 0xAC17, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}}; +const GUID KSEVENTSETID_Clock = {0x364D8E20L, 0x62C7, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}}; +const GUID KSPROPSETID_Stream = {0x65aaba60L, 0x98ae, 0x11cf, {0xa1, 0x0d, 0x00, 0x20, 0xaf, 0xd1, 0x56, 0xe4}}; #endif const GUID IID_IBDA_DeviceControl = {0xFD0A5AF3, 0xB41D, 0x11d2, {0x9C, 0x95, 0x00, 0xC0, 0x4F, 0x79, 0x71, 0xE0}}; const GUID IID_IKsAggregateControl = {0x7F40EAC0, 0x3947, 0x11D2, {0x87, 0x4E, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}}; const GUID IID_IKsClockPropertySet = {0x5C5CBD84, 0xE755, 0x11D0, {0xAC, 0x18, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}}; const GUID IID_IKsTopology = {0x28F54683, 0x06FD, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}}; - +const GUID IID_IKsClock = {0x877E4351, 0x6FEA, 0x11D0, {0xB8, 0x63, 0x00, 0xAA, 0x00, 0xA2, 0x16, 0xA1}}; /* Needs IKsClock, IKsNotifyEvent */ @@ -35,6 +38,7 @@ public IReferenceClock, public IMediaSeeking, public IKsPropertySet, + public IKsClock, public IKsClockPropertySet, public IAMFilterMiscFlags, public IKsControl, @@ -148,6 +152,9 @@ // IKsObject HANDLE STDMETHODCALLTYPE KsGetObjectHandle(); + // IKsClock + HANDLE STDMETHODCALLTYPE KsGetClockHandle(); + //IAMDeviceRemoval HRESULT STDMETHODCALLTYPE DeviceInfo(CLSID *pclsidInterfaceClass, LPWSTR *pwszSymbolicLink); HRESULT STDMETHODCALLTYPE Reassociate(void); @@ -163,7 +170,7 @@ HRESULT STDMETHODCALLTYPE GetPages(CAUUID *pPages); - CKsProxy() : m_Ref(0), m_pGraph(0), m_ReferenceClock(0), m_FilterState(State_Stopped), m_hDevice(0), m_Plugins(), m_Pins(), m_DevicePath(0) {}; + CKsProxy() : m_Ref(0), m_pGraph(0), m_ReferenceClock(0), m_FilterState(State_Stopped), m_hDevice(0), m_Plugins(), m_Pins(), m_DevicePath(0), m_hClock(0) {}; ~CKsProxy() { if (m_hDevice) @@ -178,6 +185,9 @@ HRESULT STDMETHODCALLTYPE GetPinName(ULONG PinId, KSPIN_DATAFLOW DataFlow, ULONG PinCount, LPWSTR * OutPinName); HRESULT STDMETHODCALLTYPE GetPinCommunication(ULONG PinId, KSPIN_COMMUNICATION * Communication); HRESULT STDMETHODCALLTYPE CreatePins(); + HRESULT STDMETHODCALLTYPE GetMediaSeekingFormats(PKSMULTIPLE_ITEM *FormatList); + HRESULT STDMETHODCALLTYPE CreateClockInstance(); + HRESULT STDMETHODCALLTYPE PerformClockProperty(ULONG PropertyId, ULONG PropertyFlags, PVOID OutputBuffer, ULONG OutputBufferSize); protected: LONG m_Ref; IFilterGraph *m_pGraph; @@ -188,6 +198,7 @@ PinVector m_Pins; LPWSTR m_DevicePath; CLSID m_DeviceInterfaceGUID; + HANDLE m_hClock; }; HRESULT @@ -196,7 +207,7 @@ IN REFIID refiid, OUT PVOID* Output) { - *Output = (PVOID)0xDEADDEAD;//NULL; + *Output = NULL; if (IsEqualGUID(refiid, IID_IUnknown) || IsEqualGUID(refiid, IID_IBaseFilter)) @@ -227,6 +238,12 @@ { *Output = (IKsObject*)(this); reinterpret_cast<IKsObject*>(*Output)->AddRef(); + return NOERROR; + } + else if (IsEqualGUID(refiid, IID_IKsClock)) + { + *Output = (IKsClock*)(this); + reinterpret_cast<IKsClock*>(*Output)->AddRef(); return NOERROR; } else if (IsEqualGUID(refiid, IID_IReferenceClock)) @@ -335,13 +352,110 @@ //------------------------------------------------------------------- // IKsClockPropertySet interface // + +HRESULT +STDMETHODCALLTYPE +CKsProxy::CreateClockInstance() +{ + HRESULT hr; + HANDLE hPin = INVALID_HANDLE_VALUE; + ULONG Index; + PIN_DIRECTION PinDir; + IKsObject *pObject; + KSCLOCK_CREATE ClockCreate; + + // find output pin and handle + for(Index = 0; Index < m_Pins.size(); Index++) + { + //get pin + IPin * pin = m_Pins[Index]; + if (!pin) + continue; + + // get direction + hr = pin->QueryDirection(&PinDir); + if (FAILED(hr)) + continue; + + // query IKsObject interface + hr = pin->QueryInterface(IID_IKsObject, (void**)&pObject); + if (FAILED(hr)) + continue; + + + // get pin handle + hPin = pObject->KsGetObjectHandle(); + + //release IKsObject + pObject->Release(); + + if (hPin != INVALID_HANDLE_VALUE) + break; + } + + if (hPin == INVALID_HANDLE_VALUE) + { + // clock can only be instantiated on a pin handle + return E_NOTIMPL; + } + + if (m_hClock) + { + // release clock handle + CloseHandle(m_hClock); + } + + //setup clock create request + ClockCreate.CreateFlags = 0; + + // setup clock create request + hr = KsCreateClock(hPin, &ClockCreate, &m_hClock); // FIXME KsCreateClock returns NTSTATUS + if (SUCCEEDED(hr)) + { + // failed to create clock + return MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, GetLastError()); + } + + return S_OK; +} + +HRESULT +STDMETHODCALLTYPE +CKsProxy::PerformClockProperty( + ULONG PropertyId, + ULONG PropertyFlags, + PVOID OutputBuffer, + ULONG OutputBufferSize) +{ + KSPROPERTY Property; + HRESULT hr; + ULONG BytesReturned; + + if (!m_hClock) + { + // create clock + hr = CreateClockInstance(); + if (FAILED(hr)) + return hr; + } + + // setup request + Property.Set = KSPROPSETID_Clock; + Property.Id = PropertyId; + Property.Flags = PropertyFlags; + + hr = KsSynchronousDeviceControl(m_hClock, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)OutputBuffer, OutputBufferSize, &BytesReturned); + + return hr; +} + HRESULT STDMETHODCALLTYPE CKsProxy::KsGetTime( LONGLONG* Time) { - OutputDebugStringW(L"CKsProxy::KsGetTime NotImplemented\n"); - return E_NOTIMPL; + OutputDebugStringW(L"CKsProxy::KsGetTime\n"); + return PerformClockProperty(KSPROPERTY_CLOCK_TIME, KSPROPERTY_TYPE_GET, (PVOID)Time, sizeof(LONGLONG)); } HRESULT @@ -349,8 +463,8 @@ CKsProxy::KsSetTime( LONGLONG Time) { - OutputDebugStringW(L"CKsProxy::KsSetTime NotImplemented\n"); - return E_NOTIMPL; + OutputDebugStringW(L"CKsProxy::KsSetTime\n"); + return PerformClockProperty(KSPROPERTY_CLOCK_TIME, KSPROPERTY_TYPE_SET, (PVOID)&Time, sizeof(LONGLONG)); } HRESULT @@ -358,8 +472,8 @@ CKsProxy::KsGetPhysicalTime( LONGLONG* Time) { - OutputDebugStringW(L"CKsProxy::KsGetPhysicalTime NotImplemented\n"); - return E_NOTIMPL; + OutputDebugStringW(L"CKsProxy::KsGetPhysicalTime\n"); + return PerformClockProperty(KSPROPERTY_CLOCK_PHYSICALTIME, KSPROPERTY_TYPE_GET, (PVOID)Time, sizeof(LONGLONG)); } HRESULT @@ -368,7 +482,7 @@ LONGLONG Time) { OutputDebugStringW(L"CKsProxy::KsSetPhysicalTime NotImplemented\n"); - return E_NOTIMPL; + return PerformClockProperty(KSPROPERTY_CLOCK_PHYSICALTIME, KSPROPERTY_TYPE_SET, (PVOID)&Time, sizeof(LONGLONG)); } HRESULT @@ -376,8 +490,8 @@ CKsProxy::KsGetCorrelatedTime( KSCORRELATED_TIME* CorrelatedTime) { - OutputDebugStringW(L"CKsProxy::KsGetCorrelatedTime NotImplemented\n"); - return E_NOTIMPL; + OutputDebugStringW(L"CKsProxy::KsGetCorrelatedTime\n"); + return PerformClockProperty(KSPROPERTY_CLOCK_CORRELATEDTIME, KSPROPERTY_TYPE_GET, (PVOID)CorrelatedTime, sizeof(KSCORRELATED_TIME)); } HRESULT @@ -385,8 +499,8 @@ CKsProxy::KsSetCorrelatedTime( KSCORRELATED_TIME* CorrelatedTime) { - OutputDebugStringW(L"CKsProxy::KsSetCorrelatedTime NotImplemented\n"); - return E_NOTIMPL; + OutputDebugStringW(L"CKsProxy::KsSetCorrelatedTime\n"); + return PerformClockProperty(KSPROPERTY_CLOCK_CORRELATEDTIME, KSPROPERTY_TYPE_SET, (PVOID)CorrelatedTime, sizeof(KSCORRELATED_TIME)); } HRESULT @@ -394,8 +508,8 @@ CKsProxy::KsGetCorrelatedPhysicalTime( KSCORRELATED_TIME* CorrelatedTime) { - OutputDebugStringW(L"CKsProxy::KsGetCorrelatedPhysicalTime NotImplemented\n"); - return E_NOTIMPL; + OutputDebugStringW(L"CKsProxy::KsGetCorrelatedPhysicalTime\n"); + return PerformClockProperty(KSPROPERTY_CLOCK_CORRELATEDPHYSICALTIME, KSPROPERTY_TYPE_GET, (PVOID)CorrelatedTime, sizeof(KSCORRELATED_TIME)); } HRESULT @@ -403,8 +517,8 @@ CKsProxy::KsSetCorrelatedPhysicalTime( KSCORRELATED_TIME* CorrelatedTime) { - OutputDebugStringW(L"CKsProxy::KsSetCorrelatedPhysicalTime NotImplemented\n"); - return E_NOTIMPL; + OutputDebugStringW(L"CKsProxy::KsSetCorrelatedPhysicalTime\n"); + return PerformClockProperty(KSPROPERTY_CLOCK_CORRELATEDPHYSICALTIME, KSPROPERTY_TYPE_SET, (PVOID)CorrelatedTime, sizeof(KSCORRELATED_TIME)); } HRESULT @@ -412,8 +526,8 @@ CKsProxy::KsGetResolution( KSRESOLUTION* Resolution) { - OutputDebugStringW(L"CKsProxy::KsGetResolution NotImplemented\n"); - return E_NOTIMPL; + OutputDebugStringW(L"CKsProxy::KsGetResolution\n"); + return PerformClockProperty(KSPROPERTY_CLOCK_RESOLUTION, KSPROPERTY_TYPE_GET, (PVOID)Resolution, sizeof(KSRESOLUTION)); } HRESULT @@ -421,8 +535,8 @@ CKsProxy::KsGetState( KSSTATE* State) { - OutputDebugStringW(L"CKsProxy::KsGetState NotImplemented\n"); - return E_NOTIMPL; + OutputDebugStringW(L"CKsProxy::KsGetState\n"); + return PerformClockProperty(KSPROPERTY_CLOCK_STATE, KSPROPERTY_TYPE_GET, (PVOID)State, sizeof(KSSTATE)); } //------------------------------------------------------------------- @@ -433,8 +547,40 @@ CKsProxy::GetTime( REFERENCE_TIME *pTime) { - OutputDebugStringW(L"CKsProxy::GetTime NotImplemented\n"); - return E_NOTIMPL; + HRESULT hr; + KSPROPERTY Property; + ULONG BytesReturned; + + OutputDebugStringW(L"CKsProxy::GetTime\n"); + + if (!pTime) + return E_POINTER; + + // + //FIXME locks + // + + if (!m_hClock) + { + // create clock + hr = CreateClockInstance(); + if (FAILED(hr)) + return hr; + } + + // setup request + Property.Set = KSPROPSETID_Clock; + Property.Id = KSPROPERTY_CLOCK_TIME; + Property.Flags = KSPROPERTY_TYPE_GET; + + // perform request + hr = KsSynchronousDeviceControl(m_hClock, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)pTime, sizeof(REFERENCE_TIME), &BytesReturned); + + // TODO + // increment value + // + + return hr; } HRESULT @@ -445,8 +591,62 @@ HEVENT hEvent, DWORD_PTR *pdwAdviseCookie) { - OutputDebugStringW(L"CKsProxy::AdviseTime NotImplemented\n"); - return E_NOTIMPL; + HRESULT hr; + KSEVENT Property; + ULONG BytesReturned; + PKSEVENT_TIME_MARK Event; + + OutputDebugStringW(L"CKsProxy::AdviseTime\n"); + + // + //FIXME locks + // + + if (!pdwAdviseCookie) + return E_POINTER; + + if (!m_hClock) + { + // create clock + hr = CreateClockInstance(); + if (FAILED(hr)) + return hr; + } + + // allocate event entry + Event = (PKSEVENT_TIME_MARK)CoTaskMemAlloc(sizeof(KSEVENT_TIME_MARK)); + if (Event) + { + // setup request + Property.Set = KSEVENTSETID_Clock; + Property.Id = KSEVENT_CLOCK_POSITION_MARK; + Property.Flags = KSEVENT_TYPE_ENABLE; + + Event->EventData.NotificationType = KSEVENTF_EVENT_HANDLE; + Event->EventData.EventHandle.Event = (HANDLE)hEvent; + Event->EventData.Alignment.Alignment[0] = 0; + Event->EventData.Alignment.Alignment[1] = 0; + Event->MarkTime = baseTime + streamTime; + + // perform request + hr = KsSynchronousDeviceControl(m_hClock, IOCTL_KS_ENABLE_EVENT, (PVOID)&Property, sizeof(KSEVENT), (PVOID)Event, sizeof(KSEVENT_TIME_MARK), &BytesReturned); + if (SUCCEEDED(hr)) + { + // store event handle + *pdwAdviseCookie = (DWORD_PTR)Event; + } + else + { + // failed to enable event + CoTaskMemFree(Event); + } + } + else + { + hr = E_OUTOFMEMORY; + } + + return hr; } HRESULT @@ -457,8 +657,63 @@ HSEMAPHORE hSemaphore, DWORD_PTR *pdwAdviseCookie) { - OutputDebugStringW(L"CKsProxy::AdvisePeriodic NotImplemented\n"); - return E_NOTIMPL; + HRESULT hr; + KSEVENT Property; + ULONG BytesReturned; + PKSEVENT_TIME_INTERVAL Event; + + OutputDebugStringW(L"CKsProxy::AdvisePeriodic\n"); + + // + //FIXME locks + // + + if (!pdwAdviseCookie) + return E_POINTER; + + if (!m_hClock) + { + // create clock + hr = CreateClockInstance(); + if (FAILED(hr)) + return hr; + } + + // allocate event entry + Event = (PKSEVENT_TIME_INTERVAL)CoTaskMemAlloc(sizeof(KSEVENT_TIME_INTERVAL)); + if (Event) + { + // setup request + Property.Set = KSEVENTSETID_Clock; + Property.Id = KSEVENT_CLOCK_INTERVAL_MARK; + Property.Flags = KSEVENT_TYPE_ENABLE; + + Event->EventData.NotificationType = KSEVENTF_SEMAPHORE_HANDLE; + Event->EventData.SemaphoreHandle.Semaphore = (HANDLE)hSemaphore; + Event->EventData.SemaphoreHandle.Reserved = 0; + Event->EventData.SemaphoreHandle.Adjustment = 1; + Event->TimeBase = startTime; + Event->Interval = periodTime; + + // perform request + hr = KsSynchronousDeviceControl(m_hClock, IOCTL_KS_ENABLE_EVENT, (PVOID)&Property, sizeof(KSEVENT), (PVOID)Event, sizeof(KSEVENT_TIME_INTERVAL), &BytesReturned); + if (SUCCEEDED(hr)) + { + // store event handle + *pdwAdviseCookie = (DWORD_PTR)Event; + } + else + { + // failed to enable event + CoTaskMemFree(Event); + } + } + else + { + hr = E_OUTOFMEMORY; + } + + return hr; } HRESULT @@ -466,8 +721,28 @@ CKsProxy::Unadvise( DWORD_PTR dwAdviseCookie) { - OutputDebugStringW(L"CKsProxy::Unadvise NotImplemented\n"); - return E_NOTIMPL; + HRESULT hr; + ULONG BytesReturned; + + OutputDebugStringW(L"CKsProxy::Unadvise\n"); + + if (m_hClock) + { + //lets disable the event + hr = KsSynchronousDeviceControl(m_hClock, IOCTL_KS_DISABLE_EVENT, (PVOID)dwAdviseCookie, sizeof(KSEVENTDATA), 0, 0, &BytesReturned); + if (SUCCEEDED(hr)) + { + // lets free event data + CoTaskMemFree((LPVOID)dwAdviseCookie); + } + } + else + { + // no clock available + hr = E_FAIL; + } + + return hr; } //------------------------------------------------------------------- @@ -478,8 +753,55 @@ CKsProxy::GetCapabilities( DWORD *pCapabilities) { - OutputDebugStringW(L"CKsProxy::GetCapabilities NotImplemented\n"); - return E_NOTIMPL; + KSPROPERTY Property; + ULONG BytesReturned, Index; + HRESULT hr = S_OK; + DWORD TempCaps; + + Property.Set = KSPROPSETID_MediaSeeking; + Property.Id = KSPROPERTY_MEDIASEEKING_CAPABILITIES; + Property.Flags = KSPROPERTY_TYPE_GET; + + OutputDebugStringW(L"CKsProxy::GetCapabilities\n"); + + if (!pCapabilities) + return E_POINTER; + + + *pCapabilities = (KS_SEEKING_CanSeekAbsolute | KS_SEEKING_CanSeekForwards | KS_SEEKING_CanSeekBackwards | KS_SEEKING_CanGetCurrentPos | + KS_SEEKING_CanGetStopPos | KS_SEEKING_CanGetDuration | KS_SEEKING_CanPlayBackwards); + + KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)&pCapabilities, sizeof(KS_SEEKING_CAPABILITIES), &BytesReturned); + // check if plugins support it + for(Index = 0; Index < m_Plugins.size(); Index++) + { + // get plugin + IUnknown * Plugin = m_Plugins[Index]; + + if (!Plugin) + continue; + + // query for IMediaSeeking interface + IMediaSeeking *pSeek = NULL; + hr = Plugin->QueryInterface(IID_IMediaSeeking, (void**)&pSeek); + if (FAILED(hr)) + { + *pCapabilities = 0; + return hr; + } + + TempCaps = 0; + // set time format + hr = pSeek->GetCapabilities(&TempCaps); + if (SUCCEEDED(hr)) + { + // and with supported flags + *pCapabilities = (*pCapabilities & TempCaps); + } + // release IMediaSeeking interface + pSeek->Release(); + } + return hr; } HRESULT @@ -487,8 +809,75 @@ CKsProxy::CheckCapabilities( DWORD *pCapabilities) { - OutputDebugStringW(L"CKsProxy::CheckCapabilities NotImplemented\n"); - return E_NOTIMPL; + DWORD Capabilities; + HRESULT hr; + + OutputDebugStringW(L"CKsProxy::CheckCapabilities\n"); + + if (!pCapabilities) + return E_POINTER; + + if (!*pCapabilities) + return E_FAIL; + + hr = GetCapabilities(&Capabilities); + if (SUCCEEDED(hr)) + { + if ((Capabilities | *pCapabilities) == Capabilities) + { + // all present + return S_OK; + } + + Capabilities = (Capabilities & *pCapabilities); + if (Capabilities) + { + // not all present + *pCapabilities = Capabilities; + return S_FALSE; + } + // no capabilities are present + return E_FAIL; + } + + return hr; +} + +HRESULT +STDMETHODCALLTYPE +CKsProxy::GetMediaSeekingFormats( + PKSMULTIPLE_ITEM *FormatList) +{ + KSPROPERTY Property; + HRESULT hr; + ULONG BytesReturned; + + Property.Set = KSPROPSETID_MediaSeeking; + Property.Id = KSPROPERTY_MEDIASEEKING_FORMATS; + Property.Flags = KSPROPERTY_TYPE_GET; + + // query for format size list + hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), NULL, 0, &BytesReturned); + + if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_MORE_DATA)) + { + // allocate format list + *FormatList = (PKSMULTIPLE_ITEM)CoTaskMemAlloc(BytesReturned); + if (!*FormatList) + { + // not enough memory + return E_OUTOFMEMORY; + } + + // get format list + hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)*FormatList, BytesReturned, &BytesReturned); + if (FAILED(hr)) + { + // failed to query format list + CoTaskMemFree(FormatList); + } + } + return hr; } HRESULT @@ -496,58 +885,31 @@ CKsProxy::IsFormatSupported( const GUID *pFormat) { - KSPROPERTY Property; PKSMULTIPLE_ITEM FormatList; LPGUID pGuid; ULONG Index; HRESULT hr = S_FALSE; - ULONG BytesReturned; OutputDebugStringW(L"CKsProxy::IsFormatSupported\n"); if (!pFormat) return E_POINTER; - Property.Set = KSPROPSETID_MediaSeeking; - Property.Id = KSPROPERTY_MEDIASEEKING_FORMATS; - Property.Flags = KSPROPERTY_TYPE_GET; - - // query for format size list - hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), NULL, 0, &BytesReturned); - - if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_MORE_DATA)) - { - // allocate format list - FormatList = (PKSMULTIPLE_ITEM)CoTaskMemAlloc(BytesReturned); - if (!FormatList) - { - // not enough memory - return E_OUTOFMEMORY; - } - - // get format list - hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)FormatList, BytesReturned, &BytesReturned); - if (FAILED(hr)) - { - // failed to query format list - CoTaskMemFree(FormatList); - return hr; - } - + // get media formats + hr = GetMediaSeekingFormats(&FormatList); + if (SUCCEEDED(hr)) + { //iterate through format list pGuid = (LPGUID)(FormatList + 1); for(Index = 0; Index < FormatList->Count; Index++) { if (IsEqualGUID(*pGuid, *pFormat)) { - OutputDebugStringW(L"CKsProxy::IsFormatSupported found format\n"); CoTaskMemFree(FormatList); return S_OK; } pGuid++; } - - OutputDebugStringW(L"CKsProxy::IsFormatSupported FormatNotFound\n"); // free format list CoTaskMemFree(FormatList); } @@ -589,8 +951,55 @@ CKsProxy::QueryPreferredFormat( GUID *pFormat) { - OutputDebugStringW(L"CKsProxy::QueryPreferredFormat NotImplemented\n"); - return E_NOTIMPL; + PKSMULTIPLE_ITEM FormatList; + HRESULT hr; + ULONG Index; + + OutputDebugStringW(L"CKsProxy::QueryPreferredFormat\n"); + + if (!pFormat) + return E_POINTER; + + hr = GetMediaSeekingFormats(&FormatList); + if (SUCCEEDED(hr)) + { + if (FormatList->Count) + { + CopyMemory(pFormat, (FormatList + 1), sizeof(GUID)); + CoTaskMemFree(FormatList); + return S_OK; + } + CoTaskMemFree(FormatList); + } + if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_FOUND) || hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_SET_NOT_FOUND)) + { + // check if plugins support it + for(Index = 0; Index < m_Plugins.size(); Index++) + { + // get plugin + IUnknown * Plugin = m_Plugins[Index]; + + if (!Plugin) + continue; + + // query for IMediaSeeking interface + IMediaSeeking *pSeek = NULL; + hr = Plugin->QueryInterface(IID_IMediaSeeking, (void**)&pSeek); + if (SUCCEEDED(hr)) + { + // get preferred time format + hr = pSeek->QueryPreferredFormat(pFormat); + // release IMediaSeeking interface + pSeek->Release(); + + if (hr != S_FALSE) + return hr; + } + } + hr = S_FALSE; + } + + return hr; } HRESULT @@ -598,8 +1007,45 @@ CKsProxy::GetTimeFormat( GUID *pFormat) { - OutputDebugStringW(L"CKsProxy::GetTimeFormat NotImplemented\n"); - return E_NOTIMPL; + KSPROPERTY Property; + ULONG BytesReturned, Index; + HRESULT hr; + + Property.Set = KSPROPSETID_MediaSeeking; + Property.Id = KSPROPERTY_MEDIASEEKING_TIMEFORMAT; + Property.Flags = KSPROPERTY_TYPE_GET; + + OutputDebugStringW(L"CKsProxy::GetTimeFormat\n"); + + hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)pFormat, sizeof(GUID), &BytesReturned); + if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_FOUND) || hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_SET_NOT_FOUND)) + { + // check if plugins support it + for(Index = 0; Index < m_Plugins.size(); Index++) + { + hr = E_NOTIMPL; + // get plugin + IUnknown * Plugin = m_Plugins[Index]; + + if (!Plugin) + continue; + + // query for IMediaSeeking interface + IMediaSeeking *pSeek = NULL; + hr = Plugin->QueryInterface(IID_IMediaSeeking, (void**)&pSeek); + if (SUCCEEDED(hr)) + { + // set time format + hr = pSeek->GetTimeFormat(pFormat); + // release IMediaSeeking interface + pSeek->Release(); + + if (hr != S_FALSE) + break; + } + } + } + return hr; } HRESULT @@ -607,8 +1053,17 @@ CKsProxy::IsUsingTimeFormat( const GUID *pFormat) { - OutputDebugStringW(L"CKsProxy::IsUsingTimeFormat NotImplemented\n"); - return E_NOTIMPL; + GUID Format; + + OutputDebugStringW(L"CKsProxy::IsUsingTimeFormat\n"); + + if (FAILED(QueryPreferredFormat(&Format))) + return S_FALSE; + + if (IsEqualGUID(Format, *pFormat)) + return S_OK; + else + return S_FALSE; } HRESULT @@ -616,8 +1071,47 @@ CKsProxy::SetTimeFormat( const GUID *pFormat) { - OutputDebugStringW(L"CKsProxy::SetTimeFormat NotImplemented\n"); - return E_NOTIMPL; + KSPROPERTY Property; + ULONG BytesReturned, Index; + HRESULT hr; + + Property.Set = KSPROPSETID_MediaSeeking; + Property.Id = KSPROPERTY_MEDIASEEKING_TIMEFORMAT; + Property.Flags = KSPROPERTY_TYPE_SET; + + OutputDebugStringW(L"CKsProxy::SetTimeFormat\n"); + + hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)pFormat, sizeof(GUID), &BytesReturned); + if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_FOUND) || hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_SET_NOT_FOUND)) + { + // check if plugins support it + for(Index = 0; Index < m_Plugins.size(); Index++) + { + hr = E_NOTIMPL; + // get plugin + IUnknown * Plugin = m_Plugins[Index]; + + if (!Plugin) + continue; + + // query for IMediaSeeking interface + IMediaSeeking *pSeek = NULL; + hr = Plugin->QueryInterface(IID_IMediaSeeking, (void**)&pSeek); + if (FAILED(hr)) + { + //not supported + break; + } + // set time format + hr = pSeek->SetTimeFormat(pFormat); + // release IMediaSeeking interface + pSeek->Release(); + + if (FAILED(hr)) + break; + } + } + return hr; } HRESULT @@ -625,8 +1119,45 @@ CKsProxy::GetDuration( LONGLONG *pDuration) { - OutputDebugStringW(L"CKsProxy::GetDuration NotImplemented\n"); - return E_NOTIMPL; + KSPROPERTY Property; + ULONG BytesReturned, Index; + HRESULT hr; + + Property.Set = KSPROPSETID_MediaSeeking; + Property.Id = KSPROPERTY_MEDIASEEKING_DURATION; + Property.Flags = KSPROPERTY_TYPE_GET; + + OutputDebugStringW(L"CKsProxy::GetDuration\n"); + + hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)pDuration, sizeof(LONGLONG), &BytesReturned); + if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_FOUND) || hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_SET_NOT_FOUND)) + { + // check if plugins support it + for(Index = 0; Index < m_Plugins.size(); Index++) + { + hr = E_NOTIMPL; + // get plugin + IUnknown * Plugin = m_Plugins[Index]; + + if (!Plugin) + continue; + + // query for IMediaSeeking interface + IMediaSeeking *pSeek = NULL; + hr = Plugin->QueryInterface(IID_IMediaSeeking, (void**)&pSeek); + if (SUCCEEDED(hr)) + { + // get duration + hr = pSeek->GetStopPosition(pDuration); + // release IMediaSeeking interface + pSeek->Release(); + + if (hr != S_FALSE) // plugin implements it + break; + } + } + } + return hr; } HRESULT @@ -634,8 +1165,45 @@ CKsProxy::GetStopPosition( LONGLONG *pStop) { - OutputDebugStringW(L"CKsProxy::GetStopPosition NotImplemented\n"); - return E_NOTIMPL; + KSPROPERTY Property; + ULONG BytesReturned, Index; + HRESULT hr; + + Property.Set = KSPROPSETID_MediaSeeking; + Property.Id = KSPROPERTY_MEDIASEEKING_STOPPOSITION; + Property.Flags = KSPROPERTY_TYPE_GET; + + OutputDebugStringW(L"CKsProxy::GetStopPosition\n"); + + hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)pStop, sizeof(LONGLONG), &BytesReturned); + if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_FOUND) || hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_SET_NOT_FOUND)) + { + // check if plugins support it + for(Index = 0; Index < m_Plugins.size(); Index++) + { + hr = E_NOTIMPL; + // get plugin + IUnknown * Plugin = m_Plugins[Index]; + + if (!Plugin) + continue; + + // query for IMediaSeeking interface + IMediaSeeking *pSeek = NULL; + hr = Plugin->QueryInterface(IID_IMediaSeeking, (void**)&pSeek); + if (SUCCEEDED(hr)) + { + // get stop position + hr = pSeek->GetStopPosition(pStop); + // release IMediaSeeking interface + pSeek->Release(); + + if (hr != S_FALSE) // plugin implements it + break; + } + } + } + return hr; } HRESULT @@ -643,8 +1211,45 @@ CKsProxy::GetCurrentPosition( LONGLONG *pCurrent) { - OutputDebugStringW(L"CKsProxy::GetCurrentPosition NotImplemented\n"); - return E_NOTIMPL; + KSPROPERTY Property; + ULONG BytesReturned, Index; + HRESULT hr; + + Property.Set = KSPROPSETID_MediaSeeking; + Property.Id = KSPROPERTY_MEDIASEEKING_POSITION; + Property.Flags = KSPROPERTY_TYPE_GET; + + OutputDebugStringW(L"CKsProxy::GetCurrentPosition\n"); + + hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)pCurrent, sizeof(LONGLONG), &BytesReturned); + if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_FOUND) || hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_SET_NOT_FOUND)) + { + // check if plugins support it + for(Index = 0; Index < m_Plugins.size(); Index++) + { + hr = E_NOTIMPL; + // get plugin + IUnknown * Plugin = m_Plugins[Index]; + + if (!Plugin) + continue; + + // query for IMediaSeeking interface + IMediaSeeking *pSeek = NULL; + hr = Plugin->QueryInterface(IID_IMediaSeeking, (void**)&pSeek); + if (SUCCEEDED(hr)) + { + // get current position + hr = pSeek->GetCurrentPosition(pCurrent); + // release IMediaSeeking interface + pSeek->Release(); + + if (hr != S_FALSE) // plugin implements it + break; + } + } + } + return hr; } HRESULT @@ -655,8 +1260,74 @@ LONGLONG Source, const GUID *pSourceFormat) { - OutputDebugStringW(L"CKsProxy::ConvertTimeFormat NotImplemented\n"); - return E_NOTIMPL; + KSP_TIMEFORMAT Property; + ULONG BytesReturned, Index; + GUID SourceFormat, TargetFormat; + HRESULT hr; + + Property.Property.Set = KSPROPSETID_MediaSeeking; + Property.Property.Id = KSPROPERTY_MEDIASEEKING_CONVERTTIMEFORMAT; + Property.Property.Flags = KSPROPERTY_TYPE_GET; + + OutputDebugStringW(L"CKsProxy::ConvertTimeFormat\n"); + + if (!pTargetFormat) + { + // get current format + hr = GetTimeFormat(&TargetFormat); + if (FAILED(hr)) + return hr; + + pTargetFormat = &TargetFormat; + } + + if (!pSourceFormat) + { + // get current format + hr = GetTimeFormat(&SourceFormat); + if (FAILED(hr)) + return hr; + + pSourceFormat = &SourceFormat; + } + + Property.SourceFormat = *pSourceFormat; + Property.TargetFormat = *pTargetFormat; + Property.Time = Source; + + + hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSP_TIMEFORMAT), (PVOID)pTarget, sizeof(LONGLONG), &BytesReturned); + if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_FOUND) || hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_SET_NOT_FOUND)) + { + //default error + hr = E_NOTIMPL; + + // check if plugins support it + for(Index = 0; Index < m_Plugins.size(); Index++) + { + // get plugin + IUnknown * Plugin = m_Plugins[Index]; + + if (!Plugin) + continue; + + // query for IMediaSeeking interface + IMediaSeeking *pSeek = NULL; + hr = Plugin->QueryInterface(IID_IMediaSeeking, (void**)&pSeek); + if (SUCCEEDED(hr)) + { + // convert time format + hr = pSeek->ConvertTimeFormat(pTarget, pTargetFormat, Source, pSourceFormat); + // release IMediaSeeking interface + pSeek->Release(); + + if (hr != S_FALSE) // plugin implements it + break; + } + } + } + + return hr; } HRESULT @@ -667,8 +1338,71 @@ LONGLONG *pStop, DWORD dwStopFlags) { - OutputDebugStringW(L"CKsProxy::SetPositions NotImplemented\n"); - return E_NOTIMPL; + KSPROPERTY Property; + KSPROPERTY_POSITIONS Positions; + ULONG BytesReturned, Index; + HRESULT hr; + + Property.Set = KSPROPSETID_MediaSeeking; + Property.Id = KSPROPERTY_MEDIASEEKING_POSITIONS; + Property.Flags = KSPROPERTY_TYPE_SET; + + Positions.Current = *pCurrent; + Positions.CurrentFlags = (KS_SEEKING_FLAGS)dwCurrentFlags; + Positions.Stop = *pStop; + Positions.StopFlags = (KS_SEEKING_FLAGS)dwStopFlags; + + OutputDebugStringW(L"CKsProxy::SetPositions\n"); + + hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)&Positions, sizeof(KSPROPERTY_POSITIONS), &BytesReturned); + if (SUCCEEDED(hr)) + { + if (dwCurrentFlags & AM_SEEKING_ReturnTime) + { + // retrieve current position + hr = GetCurrentPosition(pCurrent); + } + + if (SUCCEEDED(hr)) + { + if (dwStopFlags & AM_SEEKING_ReturnTime) + { + // retrieve current position + hr = GetStopPosition(pStop); + } + } + return hr; + } + if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_FOUND) || hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_SET_NOT_FOUND)) + { + hr = E_NOTIMPL; + + // check if plugins support it + for(Index = 0; Index < m_Plugins.size(); Index++) + { + // get plugin + IUnknown * Plugin = m_Plugins[Index]; + + if (!Plugin) + continue; + + // query for IMediaSeeking interface + IMediaSeeking *pSeek = NULL; + hr = Plugin->QueryInterface(IID_IMediaSeeking, (void**)&pSeek); + if (SUCCEEDED(hr)) + { + // set positions + hr = pSeek->SetPositions(pCurrent, dwCurrentFlags, pStop, dwStopFlags); + // release IMediaSeeking interface + pSeek->Release(); + + if (FAILED(hr)) + break; + } + } + } + + return hr; } HRESULT @@ -677,8 +1411,15 @@ LONGLONG *pCurrent, LONGLONG *pStop) { - OutputDebugStringW(L"CKsProxy::GetPositions NotImplemented\n"); - return E_NOTIMPL; + HRESULT hr; + + OutputDebugStringW(L"CKsProxy::GetPositions\n"); + + hr = GetCurrentPosition(pCurrent); + if (SUCCEEDED(hr)) + hr = GetStopPosition(pStop); + + return hr; } HRESULT @@ -687,8 +1428,52 @@ LONGLONG *pEarliest, LONGLONG *pLatest) { - OutputDebugStringW(L"CKsProxy::GetAvailable NotImplemented\n"); - return E_NOTIMPL; + KSPROPERTY Property; + KSPROPERTY_MEDIAAVAILABLE Media; + ULONG BytesReturned, Index; + HRESULT hr; + + Property.Set = KSPROPSETID_MediaSeeking; + Property.Id = KSPROPERTY_MEDIASEEKING_AVAILABLE; + Property.Flags = KSPROPERTY_TYPE_GET; + + OutputDebugStringW(L"CKsProxy::GetAvailable\n"); + + hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)&Media, sizeof(KSPROPERTY_MEDIAAVAILABLE), &BytesReturned); + if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_FOUND) || hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_SET_NOT_FOUND)) + { + // check if plugins support it + for(Index = 0; Index < m_Plugins.size(); Index++) + { + hr = E_NOTIMPL; + // get plugin + IUnknown * Plugin = m_Plugins[Index]; + + if (!Plugin) + continue; + + // query for IMediaSeeking interface + IMediaSeeking *pSeek = NULL; + hr = Plugin->QueryInterface(IID_IMediaSeeking, (void**)&pSeek); + if (SUCCEEDED(hr)) + { + // delegate call + hr = pSeek->GetAvailable(pEarliest, pLatest); + // release IMediaSeeking interface + pSeek->Release(); + + if (hr != S_FALSE) // plugin implements it + break; + } + } + } + else if (SUCCEEDED(hr)) + { + *pEarliest = Media.Earliest; + *pLatest = Media.Latest; + } + + return hr; } HRESULT @@ -696,7 +1481,6 @@ CKsProxy::SetRate( double dRate) { - OutputDebugStringW(L"CKsProxy::SetRate NotImplemented\n"); return E_NOTIMPL; } @@ -705,7 +1489,6 @@ CKsProxy::GetRate( double *pdRate) { - OutputDebugStringW(L"CKsProxy::GetRate NotImplemented\n"); return E_NOTIMPL; } @@ -714,8 +1497,45 @@ CKsProxy::GetPreroll( LONGLONG *pllPreroll) { - OutputDebugStringW(L"CKsProxy::GetPreroll NotImplemented\n"); - return E_NOTIMPL; + KSPROPERTY Property; + ULONG BytesReturned, Index; + HRESULT hr; + + Property.Set = KSPROPSETID_MediaSeeking; + Property.Id = KSPROPERTY_MEDIASEEKING_PREROLL; + Property.Flags = KSPROPERTY_TYPE_GET; + + OutputDebugStringW(L"CKsProxy::GetPreroll\n"); + + hr = KsSynchronousDeviceControl(m_hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)pllPreroll, sizeof(LONGLONG), &BytesReturned); + if (hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_FOUND) || hr == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_SET_NOT_FOUND)) + { + // check if all plugins support it + for(Index = 0; Index < m_Plugins.size(); Index++) + { + // get plugin + IUnknown * Plugin = m_Plugins[Index]; + + if (!Plugin) + continue; + + // query for IMediaSeeking interface + IMediaSeeking *pSeek = NULL; + hr = Plugin->QueryInterface(IID_IMediaSeeking, (void**)&pSeek); + if (SUCCEEDED(hr)) + { + // get preroll + hr = pSeek->GetPreroll(pllPreroll); + // release IMediaSeeking interface + pSeek->Release(); + + if (hr != S_FALSE) // plugin implements it + break; + } + } + hr = E_NOTIMPL; + } + return hr; } //------------------------------------------------------------------- @@ -922,8 +1742,23 @@ REFGUID InterfaceId, LPVOID* Interface) { - OutputDebugStringW(L"CKsProxy::CreateNodeInstance NotImplemented\n"); - return E_NOTIMPL; + HRESULT hr; + + OutputDebugStringW(L"CKsProxy::CreateNodeInstance\n"); + + *Interface = NULL; + + if (IsEqualIID(IID_IUnknown, InterfaceId) || !UnkOuter) + { + hr = CKsNode_Constructor(UnkOuter, m_hDevice, NodeId, DesiredAccess, InterfaceId, Interface); + } + else + { + // interface not supported + hr = E_NOINTERFACE; + } + + return hr; } //------------------------------------------------------------------- @@ -1119,7 +1954,16 @@ return NOERROR; } - +//------------------------------------------------------------------- +// IKsClock interface +// + +HANDLE +STDMETHODCALLTYPE +CKsProxy::KsGetClockHandle() +{ + return m_hClock; +} //------------------------------------------------------------------- @@ -1647,6 +2491,90 @@ CKsProxy::SetSyncSource( IReferenceClock *pClock) { + HRESULT hr; + IKsClock *pKsClock; + HANDLE hClock, hPin; + ULONG Index; + IPin * pin; + IKsObject * pObject; + KSPROPERTY Property; + ULONG BytesReturned; + PIN_DIRECTION PinDir; + +// Plug In Distributor: IKsClock + + + // FIXME + // need locks + + if (!pClock) + return E_POINTER; + + hr = pClock->QueryInterface(IID_IKsClock, (void**)&pKsClock); + if (FAILED(hr)) + return hr; + + // get clock handle + hClock = pKsClock->KsGetClockHandle(); + if (!hClock || hClock == INVALID_HANDLE_VALUE) + { + // failed + pKsClock->Release(); + return E_FAIL; + } + + // distribute clock to all pins + for(Index = 0; Index < m_Pins.size(); Index++) + { + // get current pin + pin = m_Pins[Index]; + if (!pin) + continue; + + // get IKsObject interface + hr = pin->QueryInterface(IID_IKsObject, (void **)&pObject); + if (SUCCEEDED(hr)) + { + // get pin handle + hPin = pObject->KsGetObjectHandle(); + if (hPin != INVALID_HANDLE_VALUE && hPin) + { + // set clock + Property.Set = KSPROPSETID_Stream; + Property.Id = KSPROPERTY_STREAM_MASTERCLOCK; + Property.Flags = KSPROPERTY_TYPE_SET; + + // set master clock + hr = KsSynchronousDeviceControl(hPin, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)hClock, sizeof(HANDLE), &BytesReturned); + + if (FAILED(hr)) + { + if (hr != MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_SET_NOT_FOUND) && + hr != MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_FOUND)) + { + // failed to set master clock + pKsClock->Release(); + pObject->Release(); + return hr; + } + } + } + // release IKsObject + pObject->Release(); + } + + // now get the direction + hr = pin->QueryDirection(&PinDir); + if (SUCCEEDED(hr)) + { + if (PinDir == PINDIR_OUTPUT) + { + // notify pin via + //CBaseStreamControl::SetSyncSource(pClock) + } + } + } + if (pClock) { pClock->AddRef(); @@ -1727,6 +2655,9 @@ pInfo->achName[0] = L'\0'; pInfo->pGraph = m_pGraph; + + if (m_pGraph) + m_pGraph->AddRef(); return S_OK; } Modified: trunk/reactos/include/psdk/ks.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/ks.h?rev=4617…
============================================================================== --- trunk/reactos/include/psdk/ks.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/ks.h [iso-8859-1] Sat Mar 13 18:36:30 2010 @@ -724,8 +724,10 @@ Properties/Methods/Events */ -#define KSPROPSETID_Stream \ +#define STATIC_KSPROPSETID_Stream\ 0x65aaba60L, 0x98ae, 0x11cf, 0xa1, 0x0d, 0x00, 0x20, 0xaf, 0xd1, 0x56, 0xe4 +DEFINE_GUIDSTRUCT("65aaba60-98ae-11cf-a10d-0020afd156e4", KSPROPSETID_Stream); +#define KSPROPSETID_Stream DEFINE_GUIDNAMED(KSPROPSETID_Stream) typedef enum { @@ -2091,7 +2093,7 @@ typedef struct _KSEVENT_ENTRY KSEVENT_ENTRY, *PKSEVENT_ENTRY; #if defined(_NTDDK_) - + typedef NTSTATUS (NTAPI *PFNKSADDEVENT)( IN PIRP Irp, IN PKSEVENTDATA EventData,
14 years, 10 months
1
0
0
0
[akhaldi] 46175: [NTIFS] - Group related definitions - Add several missing FsRtl* and FSRTL_* definitions - Add some missing NETWORK_OPEN_*, PREFETCH_OPEN_ECP_CONTEXT, sockaddr_storage, NFS_OPEN_ECP_CONTEXT and SRV_OPEN_ECP_CONTEXT
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Mar 13 18:29:43 2010 New Revision: 46175 URL:
http://svn.reactos.org/svn/reactos?rev=46175&view=rev
Log: [NTIFS] - Group related definitions - Add several missing FsRtl* and FSRTL_* definitions - Add some missing NETWORK_OPEN_*, PREFETCH_OPEN_ECP_CONTEXT, sockaddr_storage, NFS_OPEN_ECP_CONTEXT and SRV_OPEN_ECP_CONTEXT Modified: branches/header-work/include/ddk/ntifs.h Modified: branches/header-work/include/ddk/ntifs.h URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/ntifs.h…
============================================================================== --- branches/header-work/include/ddk/ntifs.h [iso-8859-1] (original) +++ branches/header-work/include/ddk/ntifs.h [iso-8859-1] Sat Mar 13 18:29:43 2010 @@ -7727,6 +7727,45 @@ FsRtlIsEcpFromUserMode( IN PVOID EcpContext); +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlChangeBackingFileObject( + IN PFILE_OBJECT CurrentFileObject OPTIONAL, + IN PFILE_OBJECT NewFileObject, + IN FSRTL_CHANGE_BACKING_TYPE ChangeBackingType, + IN ULONG Flags); + +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlLogCcFlushError( + IN PUNICODE_STRING FileName, + IN PDEVICE_OBJECT DeviceObject, + IN PSECTION_OBJECT_POINTERS SectionObjectPointer, + IN NTSTATUS FlushError, + IN ULONG Flags); + +NTKERNELAPI +BOOLEAN +NTAPI +FsRtlAreVolumeStartupApplicationsComplete( + VOID); + +NTKERNELAPI +ULONG +NTAPI +FsRtlQueryMaximumVirtualDiskNestingLevel( + VOID); + +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlGetVirtualDiskNestingLevel( + IN PDEVICE_OBJECT DeviceObject, + OUT PULONG NestingLevel, + OUT PULONG NestingFlags OPTIONAL); + #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ #if (NTDDI_VERSION >= NTDDI_VISTASP1) @@ -8068,6 +8107,9 @@ #define FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL 0x00000002 +#define FSRTL_VIRTDISK_FULLY_ALLOCATED 0x00000001 +#define FSRTL_VIRTDISK_NO_DRIVE_LETTER 0x00000002 + typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_1 { ULONG32 ProviderId; } FSRTL_MUP_PROVIDER_INFO_LEVEL_1, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_1; @@ -8087,6 +8129,12 @@ typedef ULONG FSRTL_ALLOCATE_ECPLIST_FLAGS; typedef ULONG FSRTL_ALLOCATE_ECP_FLAGS; typedef ULONG FSRTL_ECP_LOOKASIDE_FLAGS; + +typedef enum _FSRTL_CHANGE_BACKING_TYPE { + ChangeDataControlArea, + ChangeImageControlArea, + ChangeSharedCacheMap +} FSRTL_CHANGE_BACKING_TYPE, *PFSRTL_CHANGE_BACKING_TYPE; #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ @@ -8199,22 +8247,188 @@ #define FsRtlEnterFileSystem KeEnterCriticalRegion #define FsRtlExitFileSystem KeLeaveCriticalRegion +#define FSRTL_CC_FLUSH_ERROR_FLAG_NO_HARD_ERROR 0x1 +#define FSRTL_CC_FLUSH_ERROR_FLAG_NO_LOG_ENTRY 0x2 + #if (NTDDI_VERSION >= NTDDI_WIN7) typedef struct _ECP_HEADER ECP_HEADER, *PECP_HEADER; #endif - - - - - - - - - - - - +#if (NTDDI_VERSION >= NTDDI_VISTA) + +typedef enum _NETWORK_OPEN_LOCATION_QUALIFIER { + NetworkOpenLocationAny, + NetworkOpenLocationRemote, + NetworkOpenLocationLoopback +} NETWORK_OPEN_LOCATION_QUALIFIER; + +typedef enum _NETWORK_OPEN_INTEGRITY_QUALIFIER { + NetworkOpenIntegrityAny, + NetworkOpenIntegrityNone, + NetworkOpenIntegritySigned, + NetworkOpenIntegrityEncrypted, + NetworkOpenIntegrityMaximum +} NETWORK_OPEN_INTEGRITY_QUALIFIER; + +#if (NTDDI_VERSION >= NTDDI_WIN7) + +#define NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_COLLAPSING 0x1 +#define NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_DURABILITY 0x2 +#define NETWORK_OPEN_ECP_IN_FLAG_FORCE_BUFFERED_SYNCHRONOUS_IO_HACK 0x80000000 + +typedef struct _NETWORK_OPEN_ECP_CONTEXT { + USHORT Size; + USHORT Reserved; + struct { + struct { + NETWORK_OPEN_LOCATION_QUALIFIER Location; + NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; + ULONG Flags; + } in; + struct { + NETWORK_OPEN_LOCATION_QUALIFIER Location; + NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; + ULONG Flags; + } out; + } DUMMYSTRUCTNAME; +} NETWORK_OPEN_ECP_CONTEXT, *PNETWORK_OPEN_ECP_CONTEXT; + +typedef struct _NETWORK_OPEN_ECP_CONTEXT_V0 { + USHORT Size; + USHORT Reserved; + struct { + struct { + NETWORK_OPEN_LOCATION_QUALIFIER Location; + NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; + } in; + struct { + NETWORK_OPEN_LOCATION_QUALIFIER Location; + NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; + } out; + } DUMMYSTRUCTNAME; +} NETWORK_OPEN_ECP_CONTEXT_V0, *PNETWORK_OPEN_ECP_CONTEXT_V0; + +#elif (NTDDI_VERSION >= NTDDI_VISTA) +typedef struct _NETWORK_OPEN_ECP_CONTEXT { + USHORT Size; + USHORT Reserved; + struct { + struct { + NETWORK_OPEN_LOCATION_QUALIFIER Location; + NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; + } in; + struct { + NETWORK_OPEN_LOCATION_QUALIFIER Location; + NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity; + } out; + } DUMMYSTRUCTNAME; +} NETWORK_OPEN_ECP_CONTEXT, *PNETWORK_OPEN_ECP_CONTEXT; +#endif + +DEFINE_GUID(GUID_ECP_NETWORK_OPEN_CONTEXT, 0xc584edbf, 0x00df, 0x4d28, 0xb8, 0x84, 0x35, 0xba, 0xca, 0x89, 0x11, 0xe8 ); + +#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ + + +#if (NTDDI_VERSION >= NTDDI_VISTA) + +typedef struct _PREFETCH_OPEN_ECP_CONTEXT { + PVOID Context; +} PREFETCH_OPEN_ECP_CONTEXT, *PPREFETCH_OPEN_ECP_CONTEXT; + +DEFINE_GUID(GUID_ECP_PREFETCH_OPEN, 0xe1777b21, 0x847e, 0x4837, 0xaa, 0x45, 0x64, 0x16, 0x1d, 0x28, 0x6, 0x55 ); + +#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ + +#if (NTDDI_VERSION >= NTDDI_WIN7) + +DEFINE_GUID (GUID_ECP_NFS_OPEN, 0xf326d30c, 0xe5f8, 0x4fe7, 0xab, 0x74, 0xf5, 0xa3, 0x19, 0x6d, 0x92, 0xdb); +DEFINE_GUID(GUID_ECP_SRV_OPEN, 0xbebfaebc, 0xaabf, 0x489d, 0x9d, 0x2c, 0xe9, 0xe3, 0x61, 0x10, 0x28, 0x53 ); + +typedef struct sockaddr_storage *PSOCKADDR_STORAGE_NFS; + +typedef struct _NFS_OPEN_ECP_CONTEXT { + PUNICODE_STRING ExportAlias; + PSOCKADDR_STORAGE_NFS ClientSocketAddress; +} NFS_OPEN_ECP_CONTEXT, *PNFS_OPEN_ECP_CONTEXT, **PPNFS_OPEN_ECP_CONTEXT; + +typedef struct _SRV_OPEN_ECP_CONTEXT { + PUNICODE_STRING ShareName; + PSOCKADDR_STORAGE_NFS SocketAddress; + BOOLEAN OplockBlockState; + BOOLEAN OplockAppState; + BOOLEAN OplockFinalState; +} SRV_OPEN_ECP_CONTEXT, *PSRV_OPEN_ECP_CONTEXT; + +#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */ + +#define VACB_MAPPING_GRANULARITY (0x40000) +#define VACB_OFFSET_SHIFT (18) + +typedef struct _PUBLIC_BCB { + CSHORT NodeTypeCode; + CSHORT NodeByteSize; + ULONG MappedLength; + LARGE_INTEGER MappedFileOffset; +} PUBLIC_BCB, *PPUBLIC_BCB; + +typedef struct _CC_FILE_SIZES { + LARGE_INTEGER AllocationSize; + LARGE_INTEGER FileSize; + LARGE_INTEGER ValidDataLength; +} CC_FILE_SIZES, *PCC_FILE_SIZES; + +typedef BOOLEAN +(NTAPI *PACQUIRE_FOR_LAZY_WRITE) ( + IN PVOID Context, + IN BOOLEAN Wait); + +typedef VOID +(NTAPI *PRELEASE_FROM_LAZY_WRITE) ( + IN PVOID Context); + +typedef BOOLEAN +(NTAPI *PACQUIRE_FOR_READ_AHEAD) ( + IN PVOID Context, + IN BOOLEAN Wait); + +typedef VOID +(NTAPI *PRELEASE_FROM_READ_AHEAD) ( + IN PVOID Context); + +typedef struct _CACHE_MANAGER_CALLBACKS { + PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite; + PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite; + PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead; + PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead; +} CACHE_MANAGER_CALLBACKS, *PCACHE_MANAGER_CALLBACKS; + +typedef struct _CACHE_UNINITIALIZE_EVENT { + struct _CACHE_UNINITIALIZE_EVENT *Next; + KEVENT Event; +} CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT; + +typedef VOID +(NTAPI *PDIRTY_PAGE_ROUTINE) ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER FileOffset, + IN ULONG Length, + IN PLARGE_INTEGER OldestLsn, + IN PLARGE_INTEGER NewestLsn, + IN PVOID Context1, + IN PVOID Context2); + +typedef VOID +(NTAPI *PFLUSH_TO_LSN) ( + IN PVOID LogHandle, + IN LARGE_INTEGER Lsn); + +#define CcIsFileCached(FO) ( \ + ((FO)->SectionObjectPointer != NULL) && \ + (((PSECTION_OBJECT_POINTERS)(FO)->SectionObjectPointer)->SharedCacheMap != NULL) \ +) + +extern ULONG CcFastMdlReadWait; #pragma pack(push,4) @@ -8317,9 +8531,6 @@ #define TOKEN_HAS_ADMIN_GROUP 0x08 -#define VACB_MAPPING_GRANULARITY (0x40000) -#define VACB_OFFSET_SHIFT (18) - #if (VER_PRODUCTBUILD >= 1381) #define FSCTL_GET_HFS_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 31, METHOD_BUFFERED, FILE_ANY_ACCESS) #endif /* (VER_PRODUCTBUILD >= 1381) */ @@ -8388,17 +8599,6 @@ ULONG DirtyPages; PULONG Bitmap; } BITMAP_RANGE, *PBITMAP_RANGE; - -typedef struct _CACHE_UNINITIALIZE_EVENT { - struct _CACHE_UNINITIALIZE_EVENT *Next; - KEVENT Event; -} CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT; - -typedef struct _CC_FILE_SIZES { - LARGE_INTEGER AllocationSize; - LARGE_INTEGER FileSize; - LARGE_INTEGER ValidDataLength; -} CC_FILE_SIZES, *PCC_FILE_SIZES; typedef struct _FILE_COPY_ON_WRITE_INFORMATION { BOOLEAN ReplaceIfExists; @@ -8683,13 +8883,6 @@ struct _RTL_AVL_TABLE *Table, PVOID Buffer ); - -typedef struct _PUBLIC_BCB { - CSHORT NodeTypeCode; - CSHORT NodeByteSize; - ULONG MappedLength; - LARGE_INTEGER MappedFileOffset; -} PUBLIC_BCB, *PPUBLIC_BCB; typedef struct _QUERY_PATH_REQUEST { ULONG PathNameLength; @@ -8969,16 +9162,6 @@ OUT PIO_STATUS_BLOCK IoStatus OPTIONAL ); -typedef VOID (NTAPI *PDIRTY_PAGE_ROUTINE) ( - IN PFILE_OBJECT FileObject, - IN PLARGE_INTEGER FileOffset, - IN ULONG Length, - IN PLARGE_INTEGER OldestLsn, - IN PLARGE_INTEGER NewestLsn, - IN PVOID Context1, - IN PVOID Context2 -); - NTKERNELAPI LARGE_INTEGER NTAPI @@ -9026,31 +9209,6 @@ IN PFILE_OBJECT FileObject, OUT PLARGE_INTEGER OldestLsn OPTIONAL ); - -typedef BOOLEAN (NTAPI *PACQUIRE_FOR_LAZY_WRITE) ( - IN PVOID Context, - IN BOOLEAN Wait -); - -typedef VOID (NTAPI *PRELEASE_FROM_LAZY_WRITE) ( - IN PVOID Context -); - -typedef BOOLEAN (NTAPI *PACQUIRE_FOR_READ_AHEAD) ( - IN PVOID Context, - IN BOOLEAN Wait -); - -typedef VOID (NTAPI *PRELEASE_FROM_READ_AHEAD) ( - IN PVOID Context -); - -typedef struct _CACHE_MANAGER_CALLBACKS { - PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite; - PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite; - PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead; - PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead; -} CACHE_MANAGER_CALLBACKS, *PCACHE_MANAGER_CALLBACKS; NTKERNELAPI VOID @@ -9062,13 +9220,6 @@ IN PCACHE_MANAGER_CALLBACKS Callbacks, IN PVOID LazyWriteContext ); - -#define CcIsFileCached(FO) ( \ - ((FO)->SectionObjectPointer != NULL) && \ - (((PSECTION_OBJECT_POINTERS)(FO)->SectionObjectPointer)->SharedCacheMap != NULL) \ -) - -extern ULONG CcFastMdlReadWait; NTKERNELAPI BOOLEAN @@ -9248,11 +9399,6 @@ CcSetFileSizes ( IN PFILE_OBJECT FileObject, IN PCC_FILE_SIZES FileSizes -); - -typedef VOID (NTAPI *PFLUSH_TO_LSN) ( - IN PVOID LogHandle, - IN LARGE_INTEGER Lsn ); NTKERNELAPI
14 years, 10 months
1
0
0
0
[cgutman] 46174: - Let the ACPI driver handle fixed feature buttons
by cgutman@svn.reactos.org
Author: cgutman Date: Sat Mar 13 18:07:00 2010 New Revision: 46174 URL:
http://svn.reactos.org/svn/reactos?rev=46174&view=rev
Log: - Let the ACPI driver handle fixed feature buttons Modified: trunk/reactos/drivers/bus/acpi/buspdo.c Modified: trunk/reactos/drivers/bus/acpi/buspdo.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bus/acpi/buspdo.c?…
============================================================================== --- trunk/reactos/drivers/bus/acpi/buspdo.c [iso-8859-1] (original) +++ trunk/reactos/drivers/bus/acpi/buspdo.c [iso-8859-1] Sat Mar 13 18:07:00 2010 @@ -325,6 +325,7 @@ deviceCapabilities->UniqueID = device->flags.unique_id; deviceCapabilities->NoDisplayInUI = !device->status.show_in_ui; deviceCapabilities->Address = device->pnp.bus_address; + deviceCapabilities->RawDeviceOK = FALSE; } else { @@ -335,6 +336,9 @@ deviceCapabilities->UniqueID = FALSE; deviceCapabilities->NoDisplayInUI = FALSE; deviceCapabilities->Address = 0; + + /* The ACPI driver will run fixed buttons */ + deviceCapabilities->RawDeviceOK = TRUE; } deviceCapabilities->SilentInstall = FALSE;
14 years, 10 months
1
0
0
0
[spetreolle] 46173: Add missing files
by spetreolle@svn.reactos.org
Author: spetreolle Date: Sat Mar 13 17:48:39 2010 New Revision: 46173 URL:
http://svn.reactos.org/svn/reactos?rev=46173&view=rev
Log: Add missing files Added: branches/arty-newcc/drivers/wdm/audio/legacy/wdmaud/mixer.c (with props) branches/arty-newcc/drivers/wdm/audio/legacy/wdmaud/wave.c (with props) [This mail would be too long, it was shortened to contain the URLs only.] Added: branches/arty-newcc/drivers/wdm/audio/legacy/wdmaud/mixer.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/wdm/audio/le…
Added: branches/arty-newcc/drivers/wdm/audio/legacy/wdmaud/wave.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/wdm/audio/le…
14 years, 10 months
1
0
0
0
[spetreolle] 46172: Merge r45172 from trunk.
by spetreolle@svn.reactos.org
Author: spetreolle Date: Sat Mar 13 17:46:42 2010 New Revision: 46172 URL:
http://svn.reactos.org/svn/reactos?rev=46172&view=rev
Log: Merge r45172 from trunk. Added: branches/arty-newcc/drivers/network/tcpip/include/tags.h (with props) branches/arty-newcc/lib/lsalib/ branches/arty-newcc/lib/lsalib/lsa.c (with props) branches/arty-newcc/lib/lsalib/lsalib.rbuild (with props) branches/arty-newcc/lib/tdilib/ branches/arty-newcc/lib/tdilib/enum.c (with props) branches/arty-newcc/lib/tdilib/handle.c (with props) branches/arty-newcc/lib/tdilib/tdilib.h (with props) branches/arty-newcc/lib/tdilib/tdilib.rbuild (with props) Modified: branches/arty-newcc/base/applications/network/ping/ping.c branches/arty-newcc/base/applications/network/tracert/tracert.c branches/arty-newcc/base/applications/network/tracert/tracert.h branches/arty-newcc/dll/win32/iphlpapi/ifenum_reactos.c branches/arty-newcc/dll/win32/iphlpapi/iphlpapi.rbuild branches/arty-newcc/dll/win32/iphlpapi/iphlpapi_private.h branches/arty-newcc/dll/win32/msafd/misc/dllmain.c branches/arty-newcc/dll/win32/msafd/misc/stubs.c branches/arty-newcc/dll/win32/wshirda/wshirda.c branches/arty-newcc/dll/win32/wshtcpip/wshtcpip.c branches/arty-newcc/dll/win32/wshtcpip/wshtcpip.h branches/arty-newcc/dll/win32/wshtcpip/wshtcpip.rbuild branches/arty-newcc/drivers/network/afd/afd/bind.c branches/arty-newcc/drivers/network/afd/afd/connect.c branches/arty-newcc/drivers/network/afd/afd/listen.c branches/arty-newcc/drivers/network/afd/afd/lock.c branches/arty-newcc/drivers/network/afd/afd/main.c branches/arty-newcc/drivers/network/afd/afd/read.c branches/arty-newcc/drivers/network/afd/afd/tdi.c branches/arty-newcc/drivers/network/afd/afd/write.c branches/arty-newcc/drivers/network/afd/include/afd.h branches/arty-newcc/drivers/network/afd/include/debug.h branches/arty-newcc/drivers/network/afd/include/tdi_proto.h branches/arty-newcc/drivers/network/dd/ne2000/ne2000/main.c branches/arty-newcc/drivers/network/dd/pcnet/pcnet.c branches/arty-newcc/drivers/network/dd/pcnet/requests.c branches/arty-newcc/drivers/network/tcpip/datalink/lan.c branches/arty-newcc/drivers/network/tcpip/include/address.h branches/arty-newcc/drivers/network/tcpip/include/datagram.h branches/arty-newcc/drivers/network/tcpip/include/debug.h branches/arty-newcc/drivers/network/tcpip/include/dispatch.h branches/arty-newcc/drivers/network/tcpip/include/fileobjs.h branches/arty-newcc/drivers/network/tcpip/include/ip.h branches/arty-newcc/drivers/network/tcpip/include/lock.h branches/arty-newcc/drivers/network/tcpip/include/neighbor.h branches/arty-newcc/drivers/network/tcpip/include/ports.h branches/arty-newcc/drivers/network/tcpip/include/precomp.h branches/arty-newcc/drivers/network/tcpip/include/routines.h branches/arty-newcc/drivers/network/tcpip/include/tcp.h branches/arty-newcc/drivers/network/tcpip/include/titypes.h branches/arty-newcc/drivers/network/tcpip/tcpip.rbuild branches/arty-newcc/drivers/network/tcpip/tcpip/ainfo.c branches/arty-newcc/drivers/network/tcpip/tcpip/buffer.c branches/arty-newcc/drivers/network/tcpip/tcpip/dispatch.c branches/arty-newcc/drivers/network/tcpip/tcpip/fileobjs.c branches/arty-newcc/drivers/network/tcpip/tcpip/iinfo.c branches/arty-newcc/drivers/network/tcpip/tcpip/info.c branches/arty-newcc/drivers/network/tcpip/tcpip/lock.c branches/arty-newcc/drivers/network/tcpip/tcpip/main.c branches/arty-newcc/drivers/network/tcpip/tcpip/mocklock.c branches/arty-newcc/drivers/network/tcpip/tcpip/ninfo.c branches/arty-newcc/include/psdk/tcpioctl.h branches/arty-newcc/include/psdk/wsahelp.h branches/arty-newcc/lib/drivers/ip/ip.rbuild branches/arty-newcc/lib/drivers/ip/network/address.c branches/arty-newcc/lib/drivers/ip/network/icmp.c branches/arty-newcc/lib/drivers/ip/network/ip.c branches/arty-newcc/lib/drivers/ip/network/loopback.c branches/arty-newcc/lib/drivers/ip/network/neighbor.c branches/arty-newcc/lib/drivers/ip/network/ports.c branches/arty-newcc/lib/drivers/ip/network/receive.c branches/arty-newcc/lib/drivers/ip/network/router.c branches/arty-newcc/lib/drivers/ip/network/routines.c branches/arty-newcc/lib/drivers/ip/network/transmit.c branches/arty-newcc/lib/drivers/ip/transport/datagram/datagram.c branches/arty-newcc/lib/drivers/ip/transport/rawip/rawip.c branches/arty-newcc/lib/drivers/ip/transport/tcp/accept.c branches/arty-newcc/lib/drivers/ip/transport/tcp/event.c branches/arty-newcc/lib/drivers/ip/transport/tcp/if.c branches/arty-newcc/lib/drivers/ip/transport/tcp/tcp.c branches/arty-newcc/lib/drivers/ip/transport/udp/udp.c branches/arty-newcc/lib/drivers/oskittcp/include/oskittcp.h branches/arty-newcc/lib/drivers/oskittcp/oskittcp/interface.c branches/arty-newcc/lib/drivers/oskittcp/oskittcp/ip_output.c branches/arty-newcc/lib/drivers/oskittcp/oskittcp/sleep.c branches/arty-newcc/lib/drivers/oskittcp/oskittcp/tcp_input.c branches/arty-newcc/lib/lib.rbuild [This mail would be too long, it was shortened to contain the URLs only.] Modified: branches/arty-newcc/base/applications/network/ping/ping.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/base/applications/ne…
Modified: branches/arty-newcc/base/applications/network/tracert/tracert.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/base/applications/ne…
Modified: branches/arty-newcc/base/applications/network/tracert/tracert.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/base/applications/ne…
Modified: branches/arty-newcc/dll/win32/iphlpapi/ifenum_reactos.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/dll/win32/iphlpapi/i…
Modified: branches/arty-newcc/dll/win32/iphlpapi/iphlpapi.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/dll/win32/iphlpapi/i…
Modified: branches/arty-newcc/dll/win32/iphlpapi/iphlpapi_private.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/dll/win32/iphlpapi/i…
Modified: branches/arty-newcc/dll/win32/msafd/misc/dllmain.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/dll/win32/msafd/misc…
Modified: branches/arty-newcc/dll/win32/msafd/misc/stubs.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/dll/win32/msafd/misc…
Modified: branches/arty-newcc/dll/win32/wshirda/wshirda.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/dll/win32/wshirda/ws…
Modified: branches/arty-newcc/dll/win32/wshtcpip/wshtcpip.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/dll/win32/wshtcpip/w…
Modified: branches/arty-newcc/dll/win32/wshtcpip/wshtcpip.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/dll/win32/wshtcpip/w…
Modified: branches/arty-newcc/dll/win32/wshtcpip/wshtcpip.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/dll/win32/wshtcpip/w…
Modified: branches/arty-newcc/drivers/network/afd/afd/bind.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/afd/…
Modified: branches/arty-newcc/drivers/network/afd/afd/connect.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/afd/…
Modified: branches/arty-newcc/drivers/network/afd/afd/listen.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/afd/…
Modified: branches/arty-newcc/drivers/network/afd/afd/lock.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/afd/…
Modified: branches/arty-newcc/drivers/network/afd/afd/main.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/afd/…
Modified: branches/arty-newcc/drivers/network/afd/afd/read.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/afd/…
Modified: branches/arty-newcc/drivers/network/afd/afd/tdi.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/afd/…
Modified: branches/arty-newcc/drivers/network/afd/afd/write.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/afd/…
Modified: branches/arty-newcc/drivers/network/afd/include/afd.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/afd/…
Modified: branches/arty-newcc/drivers/network/afd/include/debug.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/afd/…
Modified: branches/arty-newcc/drivers/network/afd/include/tdi_proto.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/afd/…
Modified: branches/arty-newcc/drivers/network/dd/ne2000/ne2000/main.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/dd/n…
Modified: branches/arty-newcc/drivers/network/dd/pcnet/pcnet.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/dd/p…
Modified: branches/arty-newcc/drivers/network/dd/pcnet/requests.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/dd/p…
Modified: branches/arty-newcc/drivers/network/tcpip/datalink/lan.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/address.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/datagram.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/debug.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/dispatch.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/fileobjs.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/ip.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/lock.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/neighbor.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/ports.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/precomp.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/routines.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Added: branches/arty-newcc/drivers/network/tcpip/include/tags.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/tcp.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/include/titypes.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/tcpip.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/tcpip/ainfo.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/tcpip/buffer.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/tcpip/dispatch.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/tcpip/fileobjs.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/tcpip/iinfo.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/tcpip/info.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/tcpip/lock.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/tcpip/main.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/tcpip/mocklock.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/drivers/network/tcpip/tcpip/ninfo.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/network/tcpi…
Modified: branches/arty-newcc/include/psdk/tcpioctl.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/include/psdk/tcpioct…
Modified: branches/arty-newcc/include/psdk/wsahelp.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/include/psdk/wsahelp…
Modified: branches/arty-newcc/lib/drivers/ip/ip.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/ip.rb…
Modified: branches/arty-newcc/lib/drivers/ip/network/address.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/netwo…
Modified: branches/arty-newcc/lib/drivers/ip/network/icmp.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/netwo…
Modified: branches/arty-newcc/lib/drivers/ip/network/ip.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/netwo…
Modified: branches/arty-newcc/lib/drivers/ip/network/loopback.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/netwo…
Modified: branches/arty-newcc/lib/drivers/ip/network/neighbor.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/netwo…
Modified: branches/arty-newcc/lib/drivers/ip/network/ports.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/netwo…
Modified: branches/arty-newcc/lib/drivers/ip/network/receive.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/netwo…
Modified: branches/arty-newcc/lib/drivers/ip/network/router.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/netwo…
Modified: branches/arty-newcc/lib/drivers/ip/network/routines.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/netwo…
Modified: branches/arty-newcc/lib/drivers/ip/network/transmit.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/netwo…
Modified: branches/arty-newcc/lib/drivers/ip/transport/datagram/datagram.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/trans…
Modified: branches/arty-newcc/lib/drivers/ip/transport/rawip/rawip.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/trans…
Modified: branches/arty-newcc/lib/drivers/ip/transport/tcp/accept.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/trans…
Modified: branches/arty-newcc/lib/drivers/ip/transport/tcp/event.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/trans…
Modified: branches/arty-newcc/lib/drivers/ip/transport/tcp/if.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/trans…
Modified: branches/arty-newcc/lib/drivers/ip/transport/tcp/tcp.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/trans…
Modified: branches/arty-newcc/lib/drivers/ip/transport/udp/udp.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/ip/trans…
Modified: branches/arty-newcc/lib/drivers/oskittcp/include/oskittcp.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/oskittcp…
Modified: branches/arty-newcc/lib/drivers/oskittcp/oskittcp/interface.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/oskittcp…
Modified: branches/arty-newcc/lib/drivers/oskittcp/oskittcp/ip_output.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/oskittcp…
Modified: branches/arty-newcc/lib/drivers/oskittcp/oskittcp/sleep.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/oskittcp…
Modified: branches/arty-newcc/lib/drivers/oskittcp/oskittcp/tcp_input.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/drivers/oskittcp…
Modified: branches/arty-newcc/lib/lib.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/lib.rbuild?rev=4…
Added: branches/arty-newcc/lib/lsalib/lsa.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/lsalib/lsa.c?rev…
Added: branches/arty-newcc/lib/lsalib/lsalib.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/lsalib/lsalib.rb…
Added: branches/arty-newcc/lib/tdilib/enum.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/tdilib/enum.c?re…
Added: branches/arty-newcc/lib/tdilib/handle.c URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/tdilib/handle.c?…
Added: branches/arty-newcc/lib/tdilib/tdilib.h URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/tdilib/tdilib.h?…
Added: branches/arty-newcc/lib/tdilib/tdilib.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/lib/tdilib/tdilib.rb…
14 years, 10 months
1
0
0
0
[cgutman] 46171: - Don't enumerate the ACPI root device
by cgutman@svn.reactos.org
Author: cgutman Date: Sat Mar 13 17:31:53 2010 New Revision: 46171 URL:
http://svn.reactos.org/svn/reactos?rev=46171&view=rev
Log: - Don't enumerate the ACPI root device Modified: trunk/reactos/drivers/bus/acpi/acpienum.c trunk/reactos/drivers/bus/acpi/buspdo.c Modified: trunk/reactos/drivers/bus/acpi/acpienum.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bus/acpi/acpienum.…
============================================================================== --- trunk/reactos/drivers/bus/acpi/acpienum.c [iso-8859-1] (original) +++ trunk/reactos/drivers/bus/acpi/acpienum.c [iso-8859-1] Sat Mar 13 17:31:53 2010 @@ -36,6 +36,10 @@ PLIST_ENTRY entry; PAGED_CODE (); + + //Don't enumerate the root device + if (Device->handle == ACPI_ROOT_OBJECT) + return STATUS_SUCCESS; /* Check we didnt add this already */ for (entry = FdoData->ListOfPDOs.Flink; Modified: trunk/reactos/drivers/bus/acpi/buspdo.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bus/acpi/buspdo.c?…
============================================================================== --- trunk/reactos/drivers/bus/acpi/buspdo.c [iso-8859-1] (original) +++ trunk/reactos/drivers/bus/acpi/buspdo.c [iso-8859-1] Sat Mar 13 17:31:53 2010 @@ -548,8 +548,6 @@ Buffer = L"ACPI Power Resource"; else if (wcsstr(DeviceData->HardwareIDs, L"Processor") != 0) Buffer = L"Processor"; - else if (wcsstr(DeviceData->HardwareIDs, L"ACPI_SYS") != 0) - Buffer = L"ACPI System"; else if (wcsstr(DeviceData->HardwareIDs, L"ThermalZone") != 0) Buffer = L"ACPI Thermal Zone"; else if (wcsstr(DeviceData->HardwareIDs, L"ACPI0002") != 0)
14 years, 10 months
1
0
0
0
[hpoussin] 46170: [csrss] Don't expect ReactOS to always boot from C:\ReactOS (that's not the case for LiveCD)
by hpoussin@svn.reactos.org
Author: hpoussin Date: Sat Mar 13 16:59:12 2010 New Revision: 46170 URL:
http://svn.reactos.org/svn/reactos?rev=46170&view=rev
Log: [csrss] Don't expect ReactOS to always boot from C:\ReactOS (that's not the case for LiveCD) Modified: trunk/reactos/subsystems/win32/csrss/csrsrv/init.c Modified: trunk/reactos/subsystems/win32/csrss/csrsrv/init.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/csr…
============================================================================== --- trunk/reactos/subsystems/win32/csrss/csrsrv/init.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/csrss/csrsrv/init.c [iso-8859-1] Sat Mar 13 16:59:12 2010 @@ -622,7 +622,7 @@ WCHAR ImagePath [MAX_PATH + 1] = {0}; UNICODE_STRING ModuleName; - wcscpy (ImagePath, L"\\??\\c:\\reactos\\system32\\win32k.sys"); + wcscpy (ImagePath, L"\\SYSTEMROOT\\system32\\win32k.sys"); // wcscat (ImagePath, Data); RtlInitUnicodeString (& ModuleName, ImagePath); Status = NtSetSystemInformation(/* FIXME: SystemLoadAndCallImage */
14 years, 10 months
1
0
0
0
[akhaldi] 46169: [NTIFS] - Group related definitions - Add several missing FsRtl* and FSRTL_* definitions
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Mar 13 16:44:53 2010 New Revision: 46169 URL:
http://svn.reactos.org/svn/reactos?rev=46169&view=rev
Log: [NTIFS] - Group related definitions - Add several missing FsRtl* and FSRTL_* definitions Modified: branches/header-work/include/ddk/ntifs.h Modified: branches/header-work/include/ddk/ntifs.h URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/ntifs.h…
============================================================================== --- branches/header-work/include/ddk/ntifs.h [iso-8859-1] (original) +++ branches/header-work/include/ddk/ntifs.h [iso-8859-1] Sat Mar 13 16:44:53 2010 @@ -7604,6 +7604,129 @@ IN USHORT PathLength, OUT USHORT *NewLength); +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlAllocateExtraCreateParameterList( + IN FSRTL_ALLOCATE_ECPLIST_FLAGS Flags, + OUT PECP_LIST *EcpList); + +NTKERNELAPI +VOID +NTAPI +FsRtlFreeExtraCreateParameterList( + IN PECP_LIST EcpList); + +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlAllocateExtraCreateParameter( + IN LPCGUID EcpType, + IN ULONG SizeOfContext, + IN FSRTL_ALLOCATE_ECP_FLAGS Flags, + IN PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback OPTIONAL, + IN ULONG PoolTag, + OUT PVOID *EcpContext); + +NTKERNELAPI +VOID +NTAPI +FsRtlFreeExtraCreateParameter( + IN PVOID EcpContext); + +NTKERNELAPI +VOID +NTAPI +FsRtlInitExtraCreateParameterLookasideList( + IN OUT PVOID Lookaside, + IN FSRTL_ECP_LOOKASIDE_FLAGS Flags, + IN SIZE_T Size, + IN ULONG Tag); + +VOID +NTAPI +FsRtlDeleteExtraCreateParameterLookasideList( + IN OUT PVOID Lookaside, + IN FSRTL_ECP_LOOKASIDE_FLAGS Flags); + +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlAllocateExtraCreateParameterFromLookasideList( + IN LPCGUID EcpType, + IN ULONG SizeOfContext, + IN FSRTL_ALLOCATE_ECP_FLAGS Flags, + IN PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback OPTIONAL, + IN OUT PVOID LookasideList, + OUT PVOID *EcpContext); + +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlInsertExtraCreateParameter( + IN OUT PECP_LIST EcpList, + IN OUT PVOID EcpContext); + +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlFindExtraCreateParameter( + IN PECP_LIST EcpList, + IN LPCGUID EcpType, + OUT PVOID *EcpContext OPTIONAL, + OUT ULONG *EcpContextSize OPTIONAL); + +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlRemoveExtraCreateParameter( + IN OUT PECP_LIST EcpList, + IN LPCGUID EcpType, + OUT PVOID *EcpContext, + OUT ULONG *EcpContextSize OPTIONAL); + +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlGetEcpListFromIrp( + IN PIRP Irp, + OUT PECP_LIST *EcpList OPTIONAL); + +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlSetEcpListIntoIrp( + IN OUT PIRP Irp, + IN PECP_LIST EcpList); + +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlGetNextExtraCreateParameter( + IN PECP_LIST EcpList, + IN PVOID CurrentEcpContext OPTIONAL, + OUT LPGUID NextEcpType OPTIONAL, + OUT PVOID *NextEcpContext OPTIONAL, + OUT ULONG *NextEcpContextSize OPTIONAL); + +NTKERNELAPI +VOID +NTAPI +FsRtlAcknowledgeEcp( + IN PVOID EcpContext); + +NTKERNELAPI +BOOLEAN +NTAPI +FsRtlIsEcpAcknowledged( + IN PVOID EcpContext); + +NTKERNELAPI +BOOLEAN +NTAPI +FsRtlIsEcpFromUserMode( + IN PVOID EcpContext); + #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ #if (NTDDI_VERSION >= NTDDI_VISTASP1) @@ -7677,6 +7800,23 @@ FsRtlOplockKeysEqual( IN PFILE_OBJECT Fo1 OPTIONAL, IN PFILE_OBJECT Fo2 OPTIONAL); + +NTKERNELAPI +NTSTATUS +NTAPI +FsRtlInitializeExtraCreateParameterList( + IN OUT PECP_LIST EcpList); + +NTKERNELAPI +VOID +NTAPI +FsRtlInitializeExtraCreateParameter( + IN PECP_HEADER Ecp, + IN ULONG EcpFlags, + IN PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback OPTIONAL, + IN ULONG TotalSize, + IN LPCGUID EcpType, + IN PVOID ListAllocatedFrom OPTIONAL); #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */ @@ -7921,6 +8061,13 @@ #define FSRTL_UNC_PROVIDER_FLAGS_CSC_ENABLED 0x00000002 #define FSRTL_UNC_PROVIDER_FLAGS_DOMAIN_SVC_AWARE 0x00000004 +#define FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA 0x00000001 + +#define FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA 0x00000001 +#define FSRTL_ALLOCATE_ECP_FLAG_NONPAGED_POOL 0x00000002 + +#define FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL 0x00000002 + typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_1 { ULONG32 ProviderId; } FSRTL_MUP_PROVIDER_INFO_LEVEL_1, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_1; @@ -7935,9 +8082,11 @@ IN OUT PVOID EcpContext, IN LPCGUID EcpType); +typedef struct _ECP_LIST ECP_LIST, *PECP_LIST; + typedef ULONG FSRTL_ALLOCATE_ECPLIST_FLAGS; - -#define FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA 0x00000001 +typedef ULONG FSRTL_ALLOCATE_ECP_FLAGS; +typedef ULONG FSRTL_ECP_LOOKASIDE_FLAGS; #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ @@ -8050,13 +8199,22 @@ #define FsRtlEnterFileSystem KeEnterCriticalRegion #define FsRtlExitFileSystem KeLeaveCriticalRegion -#if (NTDDI_VERSION >= NTDDI_VISTA) -typedef struct _ECP_LIST ECP_LIST, *PECP_LIST; -#endif - #if (NTDDI_VERSION >= NTDDI_WIN7) typedef struct _ECP_HEADER ECP_HEADER, *PECP_HEADER; #endif + + + + + + + + + + + + + #pragma pack(push,4)
14 years, 10 months
1
0
0
0
← Newer
1
...
43
44
45
46
47
48
49
...
90
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Results per page:
10
25
50
100
200