本文整理汇总了C++中KeQueryTickCount函数的典型用法代码示例。如果您正苦于以下问题:C++ KeQueryTickCount函数的具体用法?C++ KeQueryTickCount怎么用?C++ KeQueryTickCount使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了KeQueryTickCount函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: DoTheScreenSaver
/*
* DoTheScreenSaver
*
* Check if scrensaver should be started and sends message to SAS window
*/
VOID FASTCALL
DoTheScreenSaver(VOID)
{
LARGE_INTEGER TickCount;
DWORD Test, TO;
if (gspv.iScrSaverTimeout > 0) // Zero means Off.
{
KeQueryTickCount(&TickCount);
Test = MsqCalculateMessageTime(&TickCount);
Test = Test - LastInputTick;
TO = 1000 * gspv.iScrSaverTimeout;
if (Test > TO)
{
TRACE("Screensaver Message Start! Tick %lu Timeout %d \n", Test, gspv.iScrSaverTimeout);
if (ppiScrnSaver) // We are or we are not the screensaver, prevent reentry...
{
if (!(ppiScrnSaver->W32PF_flags & W32PF_IDLESCREENSAVER))
{
ppiScrnSaver->W32PF_flags |= W32PF_IDLESCREENSAVER;
ERR("Screensaver is Idle\n");
}
}
else
{
PUSER_MESSAGE_QUEUE ForegroundQueue = IntGetFocusMessageQueue();
if (ForegroundQueue && ForegroundQueue->spwndActive)
UserPostMessage(hwndSAS, WM_LOGONNOTIFY, LN_START_SCREENSAVE, 1); // lParam 1 == Secure
else
UserPostMessage(hwndSAS, WM_LOGONNOTIFY, LN_START_SCREENSAVE, 0);
}
}
}
}
开发者ID:RPG-7,项目名称:reactos,代码行数:40,代码来源:input.c
示例2: Uptime
//
// How long has the system been up, in seconds.
//
LONGLONG Uptime()
{
LARGE_INTEGER Ticks;
ULONG Increment = KeQueryTimeIncrement();
KeQueryTickCount(&Ticks);
return (Ticks.QuadPart * Increment)/10000000L;
}
开发者ID:OpenXT,项目名称:xc-vusb,代码行数:10,代码来源:Driver.cpp
示例3: target_getTickCount
//------------------------------------------------------------------------------
UINT32 target_getTickCount(void)
{
LARGE_INTEGER tickCount;
KeQueryTickCount(&tickCount);
return (UINT32)tickCount.QuadPart;
}
开发者ID:Questio,项目名称:openPOWERLINK_V2,代码行数:8,代码来源:target-winkernel.c
示例4: MiCreatePebOrTeb
NTSTATUS
NTAPI
MiCreatePebOrTeb(IN PEPROCESS Process,
IN ULONG Size,
OUT PULONG_PTR Base)
{
PETHREAD Thread = PsGetCurrentThread();
PMMVAD_LONG Vad;
NTSTATUS Status;
ULONG RandomCoeff;
ULONG_PTR StartAddress, EndAddress;
LARGE_INTEGER CurrentTime;
TABLE_SEARCH_RESULT Result = TableFoundNode;
PMMADDRESS_NODE Parent;
/* Allocate a VAD */
Vad = ExAllocatePoolWithTag(NonPagedPool, sizeof(MMVAD_LONG), 'ldaV');
if (!Vad) return STATUS_NO_MEMORY;
/* Setup the primary flags with the size, and make it commited, private, RW */
Vad->u.LongFlags = 0;
Vad->u.VadFlags.CommitCharge = BYTES_TO_PAGES(Size);
Vad->u.VadFlags.MemCommit = TRUE;
Vad->u.VadFlags.PrivateMemory = TRUE;
Vad->u.VadFlags.Protection = MM_READWRITE;
Vad->u.VadFlags.NoChange = TRUE;
/* Setup the secondary flags to make it a secured, writable, long VAD */
Vad->u2.LongFlags2 = 0;
Vad->u2.VadFlags2.OneSecured = TRUE;
Vad->u2.VadFlags2.LongVad = TRUE;
Vad->u2.VadFlags2.ReadOnly = FALSE;
/* Lock the process address space */
KeAcquireGuardedMutex(&Process->AddressCreationLock);
/* Check if this is a PEB creation */
if (Size == sizeof(PEB))
{
/* Start at the highest valid address */
StartAddress = (ULONG_PTR)MM_HIGHEST_VAD_ADDRESS + 1;
/* Select the random coefficient */
KeQueryTickCount(&CurrentTime);
CurrentTime.LowPart &= ((64 * _1KB) >> PAGE_SHIFT) - 1;
if (CurrentTime.LowPart <= 1) CurrentTime.LowPart = 2;
RandomCoeff = CurrentTime.LowPart << PAGE_SHIFT;
/* Select the highest valid address minus the random coefficient */
StartAddress -= RandomCoeff;
EndAddress = StartAddress + ROUND_TO_PAGES(Size) - 1;
/* Try to find something below the random upper margin */
Result = MiFindEmptyAddressRangeDownTree(ROUND_TO_PAGES(Size),
EndAddress,
PAGE_SIZE,
&Process->VadRoot,
Base,
&Parent);
}
开发者ID:hackbunny,项目名称:reactos,代码行数:60,代码来源:procsup.c
示例5: PowerContextEndUse
NTSTATUS
PowerContextEndUse(
_In_ PCDROM_DEVICE_EXTENSION DeviceExtension
)
/*++
Routine Description:
inidate that power context using is finished.
Arguments:
DeviceExtension - device context
Return Value:
NTSTATUS
--*/
{
NT_ASSERT(DeviceExtension->PowerContext.InUse);
DeviceExtension->PowerContext.InUse = FALSE;
KeQueryTickCount(&DeviceExtension->PowerContext.CompleteTime);
return STATUS_SUCCESS;
}
开发者ID:uri247,项目名称:wdk80,代码行数:28,代码来源:pnppower.c
示例6: LSCcbInitializeByCcb
VOID
LSCcbInitializeByCcb(
IN PCCB OriCcb,
IN PVOID pLurn,
OUT PCCB Ccb
)
{
ASSERT(Ccb);
RtlCopyMemory(
Ccb,
OriCcb,
sizeof(CCB)
);
// Stack locations
RtlZeroMemory(Ccb->CcbStackLocation, (NR_MAX_CCB_STACKLOCATION) * sizeof(CCB_STACKLOCATION));
Ccb->CcbCurrentStackLocationIndex = NR_MAX_CCB_STACKLOCATION - 1;
Ccb->CcbCurrentStackLocation = Ccb->CcbStackLocation + (NR_MAX_CCB_STACKLOCATION - 1);
Ccb->CcbCurrentStackLocation->Lurn = pLurn;
InitializeListHead(&Ccb->ListEntry);
KeInitializeSpinLock(&Ccb->CcbSpinLock);
KeQueryTickCount(&Ccb->CreateTime);
Ccb->AssociateCount = 0;
Ccb->CompletionEvent = NULL;
Ccb->Flags = 0;
Ccb->CcbStatusFlags = 0;
}
开发者ID:yzx65,项目名称:ndas4windows,代码行数:28,代码来源:LSCcb.c
示例7: KsecGenRandom
NTSTATUS
NTAPI
KsecGenRandom(
PVOID Buffer,
SIZE_T Length)
{
LARGE_INTEGER TickCount;
ULONG i, RandomValue;
PULONG P;
/* Try to generate a more random seed */
KeQueryTickCount(&TickCount);
KsecRandomSeed ^= _rotl(TickCount.LowPart, (KsecRandomSeed % 23));
P = Buffer;
for (i = 0; i < Length / sizeof(ULONG); i++)
{
P[i] = RtlRandomEx(&KsecRandomSeed);
}
Length &= (sizeof(ULONG) - 1);
if (Length > 0)
{
RandomValue = RtlRandomEx(&KsecRandomSeed);
RtlCopyMemory(&P[i], &RandomValue, Length);
}
return STATUS_SUCCESS;
}
开发者ID:ZoloZiak,项目名称:reactos,代码行数:29,代码来源:random.c
示例8: DokanCheckKeepAlive
VOID DokanCheckKeepAlive(__in PDokanDCB Dcb) {
LARGE_INTEGER tickCount;
ULONG mounted;
// DDbgPrint("==> DokanCheckKeepAlive\n");
KeEnterCriticalRegion();
KeQueryTickCount(&tickCount);
ExAcquireResourceSharedLite(&Dcb->Resource, TRUE);
if (Dcb->TickCount.QuadPart < tickCount.QuadPart) {
mounted = Dcb->Mounted;
ExReleaseResourceLite(&Dcb->Resource);
DDbgPrint(" Timeout, umount\n");
if (!mounted) {
// not mounted
KeLeaveCriticalRegion();
return;
}
DokanUnmount(Dcb);
} else {
ExReleaseResourceLite(&Dcb->Resource);
}
KeLeaveCriticalRegion();
// DDbgPrint("<== DokanCheckKeepAlive\n");
}
开发者ID:Driim,项目名称:dokany,代码行数:32,代码来源:timeout.c
示例9: otLwfEventProcessingIndicateNewWaitTime
VOID
otLwfEventProcessingIndicateNewWaitTime(
_In_ PMS_FILTER pFilter,
_In_ ULONG waitTime
)
{
BOOLEAN FireUpdateEvent = TRUE;
// Cancel previous timer
if (ExCancelTimer(pFilter->EventHighPrecisionTimer, NULL))
{
pFilter->EventTimerState = OT_EVENT_TIMER_NOT_RUNNING;
}
if (waitTime == (ULONG)(-1))
{
// Ignore if we are already stopped
if (pFilter->NextAlarmTickCount.QuadPart == 0) return;
pFilter->NextAlarmTickCount.QuadPart = 0;
}
else
{
if (waitTime == 0)
{
#ifdef DEBUG_TIMING
LogInfo(DRIVER_DEFAULT, "Event processing updating to fire timer immediately.");
#endif
pFilter->EventTimerState = OT_EVENT_TIMER_FIRED;
pFilter->NextAlarmTickCount.QuadPart = 0;
}
else if (waitTime * 10000ll < (KeQueryTimeIncrement() - 30000))
{
#ifdef DEBUG_TIMING
LogInfo(DRIVER_DEFAULT, "Event processing starting high precision timer for %u ms.", waitTime);
#endif
pFilter->EventTimerState = OT_EVENT_TIMER_RUNNING;
pFilter->NextAlarmTickCount.QuadPart = 0;
FireUpdateEvent = FALSE;
ExSetTimer(pFilter->EventHighPrecisionTimer, waitTime * -10000ll, 0, NULL);
}
else
{
ULONG TickWaitTime = (waitTime * 10000ll) / KeQueryTimeIncrement();
if (TickWaitTime == 0) TickWaitTime = 1;
#ifdef DEBUG_TIMING
LogInfo(DRIVER_DEFAULT, "Event processing updating wait ticks to %u.", TickWaitTime);
#endif
// Update the time to be 'waitTime' ms from 'now', saved in TickCounts
KeQueryTickCount(&pFilter->NextAlarmTickCount);
pFilter->NextAlarmTickCount.QuadPart += TickWaitTime;
}
}
// Indicate event to worker thread to update the wait time
KeSetEvent(&pFilter->EventWorkerThreadWaitTimeUpdated, 0, FALSE);
}
开发者ID:abtink,项目名称:openthread,代码行数:58,代码来源:eventprocessing.c
示例10: DokanUpdateTimeout
VOID
DokanUpdateTimeout(
__out PLARGE_INTEGER TickCount,
__in ULONG Timeout
)
{
KeQueryTickCount(TickCount);
TickCount->QuadPart += Timeout * 1000 * 10 / KeQueryTimeIncrement();
}
开发者ID:free-luowei,项目名称:dokany,代码行数:9,代码来源:timeout.c
示例11: DokanCheckKeepAlive
VOID
DokanCheckKeepAlive(
PDEVICE_EXTENSION DeviceExtension)
{
LARGE_INTEGER tickCount;
ULONG eventLength;
PEVENT_CONTEXT eventContext;
ULONG mounted;
//DDbgPrint("==> DokanCheckKeepAlive\n");
KeQueryTickCount(&tickCount);
ExAcquireResourceSharedLite(&DeviceExtension->Resource, TRUE);
if ( (tickCount.QuadPart - DeviceExtension->TickCount.QuadPart) * KeQueryTimeIncrement()
> DOKAN_KEEPALIVE_TIMEOUT * 10000 * 1000) {
mounted = DeviceExtension->Mounted;
ExReleaseResourceLite(&DeviceExtension->Resource);
DDbgPrint(" Force to umount\n");
if (!mounted) {
// not mounted
return;
}
eventLength = sizeof(EVENT_CONTEXT);
eventContext = ExAllocatePool(eventLength);
if (eventContext == NULL) {
;//STATUS_INSUFFICIENT_RESOURCES;
DokanEventRelease(DeviceExtension->DeviceObject);
return;
}
RtlZeroMemory(eventContext, eventLength);
eventContext->Length = eventLength;
// set drive letter
eventContext->Flags = mounted;
DokanEventNotification(&DeviceExtension->Global->NotifyService, eventContext);
DokanEventRelease(DeviceExtension->DeviceObject);
} else {
ExReleaseResourceLite(&DeviceExtension->Resource);
}
//DDbgPrint("<== DokanCheckKeepAlive\n");
}
开发者ID:ohierro,项目名称:gDrive,代码行数:55,代码来源:timeout.c
示例12: IntLastInputTick
/*
* IntLastInputTick
*
* Updates or gets last input tick count
*/
static DWORD FASTCALL
IntLastInputTick(BOOL bUpdate)
{
if (bUpdate)
{
LARGE_INTEGER TickCount;
KeQueryTickCount(&TickCount);
LastInputTick = MsqCalculateMessageTime(&TickCount);
if (gpsi) gpsi->dwLastRITEventTickCount = LastInputTick;
}
return LastInputTick;
}
开发者ID:RPG-7,项目名称:reactos,代码行数:17,代码来源:input.c
示例13: LsuCurrentTime
static
__inline
VOID
LsuCurrentTime(
PLARGE_INTEGER CurrentTime
){
ULONG Tick;
KeQueryTickCount(CurrentTime);
Tick = KeQueryTimeIncrement();
CurrentTime->QuadPart = CurrentTime->QuadPart * Tick;
}
开发者ID:tigtigtig,项目名称:ndas4windows,代码行数:12,代码来源:lsutils.c
示例14: vcos_getmicrosecs64_internal
uint64_t vcos_getmicrosecs64_internal(void)
{
#ifdef WIN32_KERN
LARGE_INTEGER time;
KeQueryTickCount(&time);
return time.QuadPart;
#else
// QuerryPerformanceCounter if require beter accuracy
return GetTickCount64();
#endif
}
开发者ID:MHesham,项目名称:bsp,代码行数:12,代码来源:vcos_pthreads.c
示例15: KsecGatherEntropyData
/*!
* \see http://blogs.msdn.com/b/michael_howard/archive/2005/01/14/353379.aspx
*/
NTSTATUS
NTAPI
KsecGatherEntropyData(
PKSEC_ENTROPY_DATA EntropyData)
{
MD4_CTX Md4Context;
PTEB Teb;
PPEB Peb;
PWSTR String;
SIZE_T ReturnLength;
NTSTATUS Status;
/* Query some generic values */
EntropyData->CurrentProcessId = PsGetCurrentProcessId();
EntropyData->CurrentThreadId = PsGetCurrentThreadId();
KeQueryTickCount(&EntropyData->TickCount);
KeQuerySystemTime(&EntropyData->SystemTime);
EntropyData->PerformanceCounter = KeQueryPerformanceCounter(
&EntropyData->PerformanceFrequency);
/* Check if we have a TEB/PEB for the process environment */
Teb = PsGetCurrentThread()->Tcb.Teb;
if (Teb != NULL)
{
Peb = Teb->ProcessEnvironmentBlock;
/* Initialize the MD4 context */
MD4Init(&Md4Context);
_SEH2_TRY
{
/* Get the end of the environment */
String = Peb->ProcessParameters->Environment;
while (*String)
{
String += wcslen(String) + 1;
}
/* Update the MD4 context from the environment data */
MD4Update(&Md4Context,
(PUCHAR)Peb->ProcessParameters->Environment,
(ULONG)((PUCHAR)String - (PUCHAR)Peb->ProcessParameters->Environment));
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
/* Simply ignore the exception */
}
_SEH2_END;
/* Finalize and copy the MD4 hash */
MD4Final(&Md4Context);
RtlCopyMemory(&EntropyData->EnvironmentHash, Md4Context.digest, 16);
}
开发者ID:ZoloZiak,项目名称:reactos,代码行数:55,代码来源:random.c
示例16: EngGetTickCount
ULONGLONG
APIENTRY
EngGetTickCount(VOID)
{
ULONG Multiplier;
LARGE_INTEGER TickCount;
/* Get the multiplier and current tick count */
KeQueryTickCount(&TickCount);
Multiplier = SharedUserData->TickCountMultiplier;
/* Convert to milliseconds and return */
return (Int64ShrlMod32(UInt32x32To64(Multiplier, TickCount.LowPart), 24) +
(Multiplier * (TickCount.HighPart << 8)));
}
开发者ID:mutoso-mirrors,项目名称:reactos,代码行数:15,代码来源:engmisc.c
示例17: RTLogBackdoorPrintf1
int RTLogBackdoorPrintf1(const char *pszFormat, ...)
{
va_list args;
LARGE_INTEGER time;
KeQueryTickCount(&time);
RTLogBackdoorPrintf("T=%RX64 ", time.QuadPart);
va_start(args, pszFormat);
RTLogFormatV(rtLogBackdoorOutput, NULL, pszFormat, args);
va_end(args);
return 0;
}
开发者ID:jbremer,项目名称:virtualbox,代码行数:15,代码来源:vbsfhlp.c
示例18: zrtp_add_system_state
/*----------------------------------------------------------------------------*/
int zrtp_add_system_state(zrtp_global_t* zrtp, MD_CTX *ctx)
{
LARGE_INTEGER li1;
LARGE_INTEGER li2;
ULONG ul1;
ULONG ul2;
ULONGLONG ull;
PKTHREAD thread;
static int tsc_ok = 1;
/*
* WARNING!
* Of course it's not a real size of entropy added to the context. It's very
* difficult to compute the size of real random data and estimate its quality.
* This value means: size of maximum possible random data which this function can provide.
*/
static int entropy_length = sizeof(LARGE_INTEGER)*2 + sizeof(PKTHREAD) +
sizeof(ULONG)*2 + sizeof(LARGE_INTEGER)*2 + sizeof(ULONG)*2;
li2 = KeQueryPerformanceCounter(&li1);
MD_Update(ctx, &li1, sizeof(LARGE_INTEGER));
MD_Update(ctx, &li2, sizeof(LARGE_INTEGER));
ull = KeQueryInterruptTime();
MD_Update(ctx, &ull, sizeof(ULONGLONG));
thread = KeGetCurrentThread();
MD_Update(ctx, &thread, sizeof(PKTHREAD));
ul2 = KeQueryRuntimeThread(thread, &ul1);
MD_Update(ctx, &ul1, sizeof(ULONG));
MD_Update(ctx, &ul2, sizeof(ULONG));
KeQuerySystemTime(&li1);
MD_Update(ctx, &li1, sizeof(LARGE_INTEGER));
KeQueryTickCount(&li1);
MD_Update(ctx, &li1, sizeof(LARGE_INTEGER));
if (tsc_ok) {
__try {
ull = _RDTSC();
MD_Update(ctx, &ull, sizeof(ULONGLONG));
} __except(EXCEPTION_EXECUTE_HANDLER) {
tsc_ok = 0;
}
}
return entropy_length;
}
开发者ID:AbrahamJewowich,项目名称:FreeSWITCH,代码行数:49,代码来源:zrtp_rng.c
示例19: systime
uint32_t systime(void)
{
LARGE_INTEGER time;
uint32_t timeIncrement100ns;
uint32_t time0_1ms;
uint32_t result;
timeIncrement100ns = KeQueryTimeIncrement ();
time0_1ms = timeIncrement100ns / 1000;
KeQueryTickCount(&time);
result = time.LowPart * time0_1ms;
// dbgpl(NULL, "chantara systime = 0x%x \n", result);
return (result); // the unit must be 0.1ms
}
开发者ID:mrtos,项目名称:gk6105s-id,代码行数:16,代码来源:platform_windows_kernel.c
示例20: LMCurrentTime
static
__inline
LARGE_INTEGER
LMCurrentTime (VOID)
{
LARGE_INTEGER currentCount;
ULONG interval;
LARGE_INTEGER time;
KeQueryTickCount(¤tCount);
interval = KeQueryTimeIncrement();
time.QuadPart = currentCount.QuadPart * interval;
return time;
}
开发者ID:tigtigtig,项目名称:ndas4windows,代码行数:17,代码来源:lockmgmt.c
注:本文中的KeQueryTickCount函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论