54 sizeof(ClockPropertyTable) /
sizeof(KSPROPERTY_ITEM),
55 (
const KSPROPERTY_ITEM*)&ClockPropertyTable,
109 DPRINT(
"ClockPropertyTime\n");
127 DPRINT(
"ClockPropertyPhysicalTime\n");
145 DPRINT(
"ClockPropertyCorrelatedTime\n");
163 DPRINT(
"ClockPropertyCorrelatedPhysicalTime\n");
183 DPRINT(
"ClockPropertyResolution\n");
216 DPRINT(
"ClockPropertyState\n");
243 PKSCLOCK_FUNCTIONTABLE
Table = (PKSCLOCK_FUNCTIONTABLE)
Data;
245 DPRINT(
"ClockPropertyFunctionTable\n");
321 DPRINT(
"IKsClock_DispatchDeviceIoControl\n");
451 IN PFNKSCORRELATEDTIME CorrelatedTime
OPTIONAL,
468 Clock->ReferenceCount = 1;
471 Clock->CancelTimer = CancelTimer;
472 Clock->CorrelatedTime = CorrelatedTime;
505 if (
Clock->ReferenceCount == 0)
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
#define InterlockedIncrement
#define InterlockedDecrement
NTSTATUS NTAPI ClockPropertyFunctionTable(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
KSDDKAPI NTSTATUS NTAPI KsValidateClockCreateRequest(IN PIRP Irp, OUT PKSCLOCK_CREATE *OutClockCreate)
struct KSIDEFAULTCLOCK * PKSIDEFAULTCLOCK
NTSTATUS NTAPI IKsClock_DispatchClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI ClockPropertyState(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
DEFINE_KSPROPERTY_CLOCKSET(ClockPropertyTable, ClockPropertyTime, ClockPropertyPhysicalTime, ClockPropertyCorrelatedTime, ClockPropertyCorrelatedPhysicalTime, ClockPropertyResolution, ClockPropertyState, ClockPropertyFunctionTable)
KSPROPERTY_SET ClockPropertySet[]
KSDDKAPI NTSTATUS NTAPI KsCreateClock(IN HANDLE ConnectionHandle, IN PKSCLOCK_CREATE ClockCreate, OUT PHANDLE ClockHandle)
KSDDKAPI VOID NTAPI KsFreeDefaultClock(IN PKSDEFAULTCLOCK DefaultClock)
LONGLONG FASTCALL ClockGetCorrelatedTime(IN PFILE_OBJECT FileObject, OUT PLONGLONG SystemTime)
KSDDKAPI NTSTATUS NTAPI KsCreateDefaultClock(IN PIRP Irp, IN PKSDEFAULTCLOCK DefaultClock)
KSDDKAPI NTSTATUS NTAPI KsAllocateDefaultClock(OUT PKSDEFAULTCLOCK *DefaultClock)
LONGLONG FASTCALL ClockGetTime(IN PFILE_OBJECT FileObject)
LONGLONG FASTCALL ClockGetCorrelatedPhysicalTime(IN PFILE_OBJECT FileObject, OUT PLONGLONG SystemTime)
NTSTATUS NTAPI ClockPropertyPhysicalTime(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
NTSTATUS NTAPI ClockPropertyCorrelatedPhysicalTime(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
NTSTATUS NTAPI ClockPropertyTime(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
KSDDKAPI KSSTATE NTAPI KsGetDefaultClockState(IN PKSDEFAULTCLOCK DefaultClock)
NTSTATUS NTAPI IKsClock_DispatchDeviceIoControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
KSDDKAPI VOID NTAPI KsSetDefaultClockTime(IN PKSDEFAULTCLOCK DefaultClock, IN LONGLONG Time)
struct KSICLOCK * PKSICLOCK
KSDDKAPI VOID NTAPI KsSetDefaultClockState(IN PKSDEFAULTCLOCK DefaultClock, IN KSSTATE State)
KSDDKAPI LONGLONG NTAPI KsGetDefaultClockTime(IN PKSDEFAULTCLOCK DefaultClock)
KSDDKAPI NTSTATUS NTAPI KsAllocateDefaultClockEx(OUT PKSDEFAULTCLOCK *DefaultClock, IN PVOID Context OPTIONAL, IN PFNKSSETTIMER SetTimer OPTIONAL, IN PFNKSCANCELTIMER CancelTimer OPTIONAL, IN PFNKSCORRELATEDTIME CorrelatedTime OPTIONAL, IN const KSRESOLUTION *Resolution OPTIONAL, IN ULONG Flags)
NTSTATUS NTAPI ClockPropertyResolution(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
LONGLONG FASTCALL ClockGetPhysicalTime(IN PFILE_OBJECT FileObject)
NTSTATUS NTAPI ClockPropertyCorrelatedTime(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI CompleteRequest(IN PIRP Irp, IN NTSTATUS Status, IN ULONG_PTR Information)
KSDDKAPI NTSTATUS NTAPI KsAllocateObjectHeader(OUT KSOBJECT_HEADER *Header, IN ULONG ItemsCount, IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL, IN PIRP Irp, IN KSDISPATCH_TABLE *Table)
KSDDKAPI NTSTATUS NTAPI KsDispatchInvalidDeviceRequest(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
KSDDKAPI BOOLEAN NTAPI KsDispatchFastReadFailure(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
KSDDKAPI NTSTATUS NTAPI KsDispatchSetSecurity(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
KSDDKAPI NTSTATUS NTAPI KsDispatchQuerySecurity(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
KSDDKAPI BOOLEAN NTAPI KsDispatchFastIoDeviceControlFailure(IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferLength, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength, IN ULONG IoControlCode, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
KSDDKAPI NTSTATUS NTAPI KsPropertyHandler(IN PIRP Irp, IN ULONG PropertySetsCount, IN const KSPROPERTY_SET *PropertySet)
struct KSIDENTIFIER * PKSPROPERTY
#define KeInitializeSpinLock(sl)
NTSYSAPI NTSTATUS WINAPI RtlStringFromGUID(REFGUID, PUNICODE_STRING)
_In_ PKSCLOCK_CREATE ClockCreate
#define IOCTL_KS_PROPERTY
struct KSCORRELATED_TIME * PKSCORRELATED_TIME
_In_ PKSCLOCK_CREATE _Out_ PHANDLE ClockHandle
struct KSRESOLUTION * PKSRESOLUTION
_In_ PKSPIN_CONNECT _In_ ACCESS_MASK _Out_ PHANDLE ConnectionHandle
#define KSPROPSETID_Clock
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes)
NTSTATUS NTAPI KspCreateObjectType(IN HANDLE ParentHandle, IN LPWSTR ObjectType, PVOID CreateParameters, UINT CreateParametersSize, IN ACCESS_MASK DesiredAccess, OUT PHANDLE NodeHandle)
NTSTATUS KspCopyCreateRequest(IN PIRP Irp, IN LPWSTR ObjectClass, IN OUT PULONG Size, OUT PVOID *Result)
VOID FreeItem(IN PVOID Item)
struct KSIOBJECT_HEADER * PKSIOBJECT_HEADER
static PLARGE_INTEGER Time
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
__GNU_EXTENSION typedef __int64 * PLONGLONG
#define STATUS_INVALID_PARAMETER_1
PULONG MinorVersion OPTIONAL
PKSIOBJECT_HEADER ObjectHeader
PKSIDEFAULTCLOCK DefaultClock
PKSCLOCK_CREATE ClockCreate
PFNKSCORRELATEDTIME CorrelatedTime
PFNKSCANCELTIMER CancelTimer
struct _IO_STACK_LOCATION::@1579::@1580 DeviceIoControl
union _IO_STACK_LOCATION::@1579 Parameters
VOID NTAPI KeInitializeTimer(OUT PKTIMER Timer)
#define STATUS_INVALID_PARAMETER
#define STATUS_INSUFFICIENT_RESOURCES
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_In_ PWDFDEVICE_INIT _In_ PWDF_PDO_EVENT_CALLBACKS DispatchTable
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
_Must_inspect_result_ _In_ ULONG Flags
#define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock)