freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

同步問(wèn)題ppt-資料下載頁(yè)

2025-08-01 16:36本頁(yè)面
  

【正文】 時(shí)器對(duì)象也有兩種形式:通知方式和同步方式。 ? 通知定時(shí)器允許有任意數(shù)量的等待線(xiàn)程。同步定時(shí)器正相反,它只允許有一個(gè)等待線(xiàn)程。一旦有線(xiàn)程在這種定時(shí)器上等待,并且開(kāi)始執(zhí)行,定時(shí)器就自動(dòng)進(jìn)入非信號(hào)態(tài)。 ? 為了創(chuàng)建同步定時(shí)器,必須使用擴(kuò)展形式的初始化函數(shù): KeInitializeTimerEx KeInitializeTimerEx ? KeInitializeTimerEx(timer, SynchronizationTimer)。 ? SynchronizationTimer是枚舉類(lèi)型TIMER_TYPE的一個(gè)枚舉值。另一個(gè)枚舉值是 NotificationTimer。 ? 上面講的 KeInitializeTimer(timer)等價(jià)于 ? KeInitializeTimerEx(timer, NotificationTimer)。 周期性定時(shí)器 ? 前面討論過(guò)的定時(shí)器僅能定時(shí)一次。通過(guò)使用定時(shí)器的擴(kuò)展設(shè)置函數(shù) KeSetTimerEx ,可以請(qǐng)求一個(gè)周期性的超時(shí): LARGE_INTEGER duetime。 BOOLEAN wascounting = KeSetTimerEx(timer, duetime, period, dpc) ? period是周期超時(shí)值,單位為毫秒 (ms), dpc是一個(gè)可選的指向 KDPC對(duì)象的指針。這種定時(shí)器在第一次倒計(jì)時(shí)時(shí)使用 duetime時(shí)間,到期后再使用period值重復(fù)倒計(jì)時(shí)。由于不用重復(fù)等待超時(shí)通知,所以周期性定時(shí)器常常與 DPC對(duì)象聯(lián)用。 取消一個(gè)周期性定時(shí)器 ? 在驅(qū)動(dòng)程序中的某處一定要調(diào)用KeCancelTimer取消任何已創(chuàng)建的周期性定時(shí)器。如果這個(gè)周期性定時(shí)器帶有一個(gè) DPC,則還需要在取消該定時(shí)器之后調(diào)用KeRemoveQueueDpc。 ? 一個(gè)例子 定時(shí)函數(shù) ? KeDelayExecutionThread ,可以在PASSIVE_LEVEL級(jí)上調(diào)用該函數(shù)并給出一個(gè)時(shí)間間隔。該函數(shù)省去了使用定時(shí)器時(shí)的麻煩操作,如創(chuàng)建,初始化,設(shè)置,等待操作。 ? LARGE_INTEGER duetime。 ? NSTATUS status = KeDelayExecutionThread(WaitMode, Alertable, amp。duetime)。 ? 在這里, WaitMode、 Alertable,和函數(shù)返回代碼與 KeWaitXxx中的對(duì)應(yīng)部分有相同的含義。duetime也是內(nèi)核定時(shí)器中使用的同一種時(shí)間表達(dá)類(lèi)型。 KeStallExecutionProcessor ? 如果需要延遲一段非常短的時(shí)間 (少于 50毫秒 ),可以調(diào)用 KeStallExecutionProcessor(nMicroSeconds)。 ? 這個(gè)延遲的目的是允許硬件在程序繼續(xù)執(zhí)行前有時(shí)間為下一次操作做準(zhǔn)備。實(shí)際的延遲時(shí)間可能大大超過(guò)請(qǐng)求的時(shí)間,因?yàn)镵eStallExecutionProcessor可以被其它運(yùn)行在更高 IRQL級(jí)上的活動(dòng)搶先,但不能被同一 IRQL級(jí)上的活動(dòng)搶先。 內(nèi)核線(xiàn)程同步 ? 操作系統(tǒng)的進(jìn)程結(jié)構(gòu)部件 (Process Structure)提供了一些例程, WDM驅(qū)動(dòng)程序可以使用這些例程創(chuàng)建和控制內(nèi)核線(xiàn)程。 ? 如果在 KeWaitXxx調(diào)用中指定一個(gè)內(nèi)核線(xiàn)程對(duì)象,那么線(xiàn)程將被阻塞直到那個(gè)內(nèi)核線(xiàn)程結(jié)束運(yùn)行。那個(gè)內(nèi)核線(xiàn)程通過(guò)調(diào)用PsTerminateSystemThread函數(shù)終止自身。 ? 為了等待某內(nèi)核線(xiàn)程結(jié)束,首先應(yīng)獲得一個(gè) KTHREAD對(duì)象(不透明對(duì)象 )的指針,在內(nèi)部,該對(duì)象用于代表內(nèi)核線(xiàn)程。 ? 當(dāng)運(yùn)行在某線(xiàn)程的上下文中時(shí),可以容易地獲取當(dāng)前線(xiàn)程的 KTHREAD指針: ? ASSERT(KeGetCurrentIrql() = DISPATCH_LEVEL)。 PKTHREAD thread = KeGetCurrentThread()。 ? 不幸的是,當(dāng)調(diào)用 PsCreateSystemThread創(chuàng)建新內(nèi)核線(xiàn)程時(shí),僅能獲取該線(xiàn)程的不透明句柄。為了獲得 KTHREAD對(duì)象指針,必須使用對(duì)象管理器服務(wù)函數(shù): ObReferenceObjectByHandle ? HANDLE hthread。 ? PKTHREAD thread。 ? PsCreateSystemThread(amp。hthread, ...)。 ? ObReferenceObjectByHandle(hthread, THREAD_ALL_ACCESS, NULL, KernelMode, (PVOID*) amp。thread, NULL)。 ZwClose(hthread)。 不要忘記 ? 在某處 ObDereferenceObject函數(shù)釋放對(duì)該線(xiàn)程對(duì)象的引用。 ObDereferenceObject(thread)。 互鎖運(yùn)算 ? 在 WDM驅(qū)動(dòng)程序能調(diào)用的函數(shù)中,有一些函數(shù)可以以線(xiàn)程安全和多處理器安全的方式執(zhí)行算術(shù)運(yùn)算 ? 這些函數(shù)有兩種形式,第一種形式以Interlocked為名字開(kāi)頭,它們可以執(zhí)行原子操作,其它線(xiàn)程或 CPU不能干擾它們的執(zhí)行。另一種形式以 ExInterlocked為名字開(kāi)頭,它們使用自旋鎖。 服務(wù)函數(shù) 描述 InterlockedCompareExchange 比較并有條件地交換兩個(gè)值 InterlockedDecrement 整數(shù)減 1 InterlockedExchange 交換兩個(gè)值 InterlockedExchangeAdd 加兩個(gè)值并返回和 InterlockedIncrement 整數(shù)加 1 ExInterlockedAddLargeInteger 向 64位整數(shù)加 ExInterlockedAddLargeStatistic 向 ULONG加 ExInterlockedAddUlong 向 ULONG加并返回原始值 ExInterlockedCompareExchange64 交換兩個(gè) 64位值 比較 ? InterlockedXxx函數(shù)可以在任意 IRQL上調(diào)用;由于該函數(shù)不需要自旋鎖,所以它們還可以在 PASSIVE_LEVEL級(jí)上處理分頁(yè)數(shù)據(jù)。 ? ExInterlockedXxx函數(shù)也可以在任意 IRQL上調(diào)用,但它們需要在大于或等于 DISPATCH_LEVEL級(jí)上操作目標(biāo)數(shù)據(jù),所以它們的參數(shù)需要在非分頁(yè)內(nèi)存中 ? 使用 ExInterlockedXxx的唯一原因是,如果有一個(gè)數(shù)據(jù)變量,且需要增減該變量的值,并且有時(shí)還需要用其它指令序列直接訪(fǎng)問(wèn)該變量??梢栽趯?duì)該變量的多條訪(fǎng)問(wèn)代碼周?chē)鞔_聲明自旋鎖,然后僅用 ExInterlockedXxx函數(shù)執(zhí)行簡(jiǎn)單的增減操作。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1