/*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: ksi.h Abstract: Windows Driver Model/Connection and Streaming Architecture (WDM-CSA) core internal definitions. --*/ #if !defined(_KSI_) #define _KSI_ #if defined(__cplusplus) extern "C" { #endif // defined(__cplusplus) #if defined(_NTDDK_) typedef struct { LONGLONG Frequency; LONGLONG LastDueTime; LONGLONG RunningTimeDelta; LONGLONG LastRunningTime; KSPIN_LOCK TimeAccessLock; LIST_ENTRY EventQueue; KSPIN_LOCK EventQueueLock; KTIMER QueueTimer; KDPC QueueDpc; LONG ReferenceCount; KSSTATE State; LONGLONG SuspendDelta; LONGLONG SuspendTime; PFNKSSETTIMER SetTimer; PFNKSCANCELTIMER CancelTimer; PFNKSCLOCK_CORRELATEDTIME CorrelatedTime; PVOID Context; KSRESOLUTION Resolution; KEVENT FreeEvent; LONG ExternalTimeReferenceCount; BOOLEAN ExternalTimeValid; LONGLONG LastStreamTime; } KSIDEFAULTCLOCK, *PKSIDEFAULTCLOCK; typedef struct { KSOBJECT_HEADER Header; PKSIDEFAULTCLOCK DefaultClock; ULONG Reserved; } KSCLOCKINSTANCE, *PKSCLOCKINSTANCE; KSDDKAPI NTSTATUS NTAPI KsiPropertyDefaultClockGetTime( IN PIRP Irp, IN PKSPROPERTY Property, OUT PLONGLONG Time ); KSDDKAPI NTSTATUS NTAPI KsiPropertyDefaultClockGetPhysicalTime( IN PIRP Irp, IN PKSPROPERTY Property, OUT PLONGLONG Time ); KSDDKAPI NTSTATUS NTAPI KsiPropertyDefaultClockGetCorrelatedTime( IN PIRP Irp, IN PKSPROPERTY Property, OUT PKSCORRELATED_TIME Time ); KSDDKAPI NTSTATUS NTAPI KsiPropertyDefaultClockGetCorrelatedPhysicalTime( IN PIRP Irp, IN PKSPROPERTY Property, OUT PKSCORRELATED_TIME Time ); KSDDKAPI NTSTATUS NTAPI KsiPropertyDefaultClockGetResolution( IN PIRP Irp, IN PKSPROPERTY Property, OUT PKSRESOLUTION Resolution ); KSDDKAPI NTSTATUS NTAPI KsiPropertyDefaultClockGetState( IN PIRP Irp, IN PKSPROPERTY Property, OUT PKSSTATE State ); KSDDKAPI NTSTATUS NTAPI KsiPropertyDefaultClockGetFunctionTable( IN PIRP Irp, IN PKSPROPERTY Property, OUT PKSCLOCK_FUNCTIONTABLE FunctionTable ); KSDDKAPI NTSTATUS NTAPI KsiDefaultClockAddMarkEvent( IN PIRP Irp, IN PKSEVENT_TIME_INTERVAL EventTime, IN PKSEVENT_ENTRY EventEntry ); KSDDKAPI BOOLEAN NTAPI KsiQueryObjectCreateItemsPresent( IN KSDEVICE_HEADER Header ); #endif // !defined(_NTDDK_) #define STATIC_KSNAME_Server\ 0x3C0D501AL, 0x140B, 0x11D1, 0xB4, 0x0F, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 DEFINE_GUIDSTRUCT("3C0D501A-140B-11D1-B40F-00A0C9223196", KSNAME_Server); #define KSNAME_Server DEFINE_GUIDNAMED(KSNAME_Server) #define KSSTRING_Server L"{3C0D501A-140B-11D1-B40F-00A0C9223196}" #define STATIC_KSPROPSETID_Service \ 0x3C0D501BL, 0x140B, 0x11D1, 0xB4, 0x0F, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 DEFINE_GUIDSTRUCT("3C0D501B-140B-11D1-B40F-00A0C9223196", KSPROPSETID_Service); #define KSPROPSETID_Service DEFINE_GUIDNAMED(KSPROPSETID_Service) typedef enum { KSPROPERTY_SERVICE_BUILDCACHE, KSPROPERTY_SERVICE_MERIT } KSPROPERTY_SERVICE; #define DEFINE_KSPROPERTY_ITEM_SERVICE_BUILDCACHE(SetHandler)\ DEFINE_KSPROPERTY_ITEM(\ KSPROPERTY_SERVICE_BUILDCACHE,\ NULL,\ sizeof(KSPROPERTY),\ sizeof(L"\\\\?\\"),\ (SetHandler),\ NULL, 0, NULL, NULL, 0) #define DEFINE_KSPROPERTY_ITEM_SERVICE_MERIT(SetHandler)\ DEFINE_KSPROPERTY_ITEM(\ KSPROPERTY_SERVICE_MERIT,\ NULL,\ sizeof(KSPROPERTY),\ sizeof(ULONG) + sizeof(L"\\\\?\\"),\ (SetHandler),\ NULL, 0, NULL, NULL, 0) #if defined(__cplusplus) } #endif // defined(__cplusplus) #endif // !_KSI_