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)
NTSTATUS NTAPI ClockPropertyTime(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
KSDDKAPI VOID NTAPI KsSetDefaultClockTime(IN PKSDEFAULTCLOCK DefaultClock, IN LONGLONG Time)
struct KSRESOLUTION * PKSRESOLUTION
#define IOCTL_KS_PROPERTY
KSPROPERTY_SET ClockPropertySet[]
KSDDKAPI NTSTATUS NTAPI KsDispatchSetSecurity(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
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)
#define STATUS_INSUFFICIENT_RESOURCES
NTSTATUS NTAPI ClockPropertyState(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
KSDDKAPI NTSTATUS NTAPI KsDispatchQuerySecurity(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
struct KSIDEFAULTCLOCK * PKSIDEFAULTCLOCK
NTSTATUS NTAPI KspCreateObjectType(IN HANDLE ParentHandle, IN LPWSTR ObjectType, PVOID CreateParameters, UINT CreateParametersSize, IN ACCESS_MASK DesiredAccess, OUT PHANDLE NodeHandle)
struct KSICLOCK * PKSICLOCK
NTSTATUS NTAPI IKsClock_DispatchDeviceIoControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define STATUS_INVALID_PARAMETER
PKSIDEFAULTCLOCK DefaultClock
_In_ PKSCLOCK_CREATE _Out_ PHANDLE ClockHandle
struct KSIOBJECT_HEADER * PKSIOBJECT_HEADER
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes)
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)
_In_ ULONG _In_ ULONG State
KSDDKAPI VOID NTAPI KsFreeDefaultClock(IN PKSDEFAULTCLOCK DefaultClock)
PKSIOBJECT_HEADER ObjectHeader
NTSTATUS NTAPI ClockPropertyResolution(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
IN PVOID IN PVOID IN USHORT IN USHORT Size
DEFINE_KSPROPERTY_CLOCKSET(ClockPropertyTable, ClockPropertyTime, ClockPropertyPhysicalTime, ClockPropertyCorrelatedTime, ClockPropertyCorrelatedPhysicalTime, ClockPropertyResolution, ClockPropertyState, ClockPropertyFunctionTable)
LONGLONG FASTCALL ClockGetTime(IN PFILE_OBJECT FileObject)
NTSTATUS KspCopyCreateRequest(IN PIRP Irp, IN LPWSTR ObjectClass, IN OUT PULONG Size, OUT PVOID *Result)
NTSTATUS NTAPI ClockPropertyCorrelatedTime(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
KSDDKAPI NTSTATUS NTAPI KsValidateClockCreateRequest(IN PIRP Irp, OUT PKSCLOCK_CREATE *OutClockCreate)
KSDDKAPI NTSTATUS NTAPI KsPropertyHandler(IN PIRP Irp, IN ULONG PropertySetsCount, IN const KSPROPERTY_SET *PropertySet)
__GNU_EXTENSION typedef __int64 * PLONGLONG
_In_ PDEVICE_OBJECT DeviceObject
VOID FreeItem(IN PVOID Item)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
const GUID KSPROPSETID_Clock
PFNKSCANCELTIMER CancelTimer
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
VOID NTAPI KeInitializeTimer(OUT PKTIMER Timer)
KSDDKAPI NTSTATUS NTAPI KsCreateDefaultClock(IN PIRP Irp, IN PKSDEFAULTCLOCK DefaultClock)
LONGLONG FASTCALL ClockGetCorrelatedTime(IN PFILE_OBJECT FileObject, OUT PLONGLONG SystemTime)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
KSDDKAPI NTSTATUS NTAPI KsDispatchInvalidDeviceRequest(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_Must_inspect_result_ _In_ ULONG Flags
#define NT_SUCCESS(StatCode)
KSDDKAPI VOID NTAPI KsSetDefaultClockState(IN PKSDEFAULTCLOCK DefaultClock, IN KSSTATE State)
KSDDKAPI KSSTATE NTAPI KsGetDefaultClockState(IN PKSDEFAULTCLOCK DefaultClock)
KSDDKAPI LONGLONG NTAPI KsGetDefaultClockTime(IN PKSDEFAULTCLOCK DefaultClock)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
KSDDKAPI NTSTATUS NTAPI KsAllocateDefaultClock(OUT PKSDEFAULTCLOCK *DefaultClock)
NTSTATUS NTAPI CompleteRequest(IN PIRP Irp, IN NTSTATUS Status, IN ULONG_PTR Information)
NTSTATUS NTAPI IKsClock_DispatchClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define InterlockedDecrement
PKSCLOCK_CREATE ClockCreate
#define STATUS_INVALID_PARAMETER_1
KSDDKAPI NTSTATUS NTAPI KsCreateClock(IN HANDLE ConnectionHandle, IN PKSCLOCK_CREATE ClockCreate, OUT PHANDLE ClockHandle)
PFNKSCORRELATEDTIME CorrelatedTime
NTSTATUS NTAPI ClockPropertyPhysicalTime(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
NTSTATUS NTAPI ClockPropertyFunctionTable(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
#define InterlockedIncrement
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)
NTSYSAPI NTSTATUS WINAPI RtlStringFromGUID(REFGUID, PUNICODE_STRING)
struct KSCORRELATED_TIME * PKSCORRELATED_TIME
#define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock)
_In_ PKSCLOCK_CREATE ClockCreate
struct tagContext Context
KSDDKAPI NTSTATUS NTAPI KsAllocateObjectHeader(OUT KSOBJECT_HEADER *Header, IN ULONG ItemsCount, IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL, IN PIRP Irp, IN KSDISPATCH_TABLE *Table)
LONGLONG FASTCALL ClockGetCorrelatedPhysicalTime(IN PFILE_OBJECT FileObject, OUT PLONGLONG SystemTime)
LONGLONG FASTCALL ClockGetPhysicalTime(IN PFILE_OBJECT FileObject)
struct KSIDENTIFIER * PKSPROPERTY
_In_ PKSPIN_CONNECT _In_ ACCESS_MASK _Out_ PHANDLE ConnectionHandle
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
_In_ PWDFDEVICE_INIT _In_ PWDF_PDO_EVENT_CALLBACKS DispatchTable
static PLARGE_INTEGER Time
NTSTATUS NTAPI ClockPropertyCorrelatedPhysicalTime(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
PULONG MinorVersion OPTIONAL