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

正文內(nèi)容

wdm驅(qū)動(dòng)程序設(shè)計(jì)-文庫吧資料

2024-07-30 18:52本頁面
  

【正文】 // do something KeSetEvent(amp。 void thread () { KeWaitForSingleObject(amp。 KeInitializeEvent(amp。 利用事件對(duì)象實(shí)現(xiàn)互斥操作 typedef struct _DEVICE_EXTENSION { ... ... ... ... ... ... KEVENT lock。 ? 如果該事件已經(jīng)處于信號(hào)態(tài),則該函數(shù)返回非 0值。 ? boost值用于提升等待線程的優(yōu)先級(jí),使得該線程等待的條件被滿足后可以很快獲得 CPU執(zhí)行權(quán)。 LONG wassignalled = KeSetEvent(event, boost, wait)。 ? initialstate是布爾量,為 TRUE表示事件的初始狀態(tài)為信號(hào)態(tài),為 FALSE表示事件的初始狀態(tài)為非信號(hào)態(tài)。 KeInitializeEvent(event, EventType, initialstate)。 ASSERT(KeGetCurrentIrql() = DISPATCH_LEVEL)。 因此 ,當(dāng)通知事件進(jìn)入信號(hào)態(tài)后,所有在該事件上等待的線程都被釋放。 KeReadStateEvent 取事件的當(dāng)前狀態(tài)。 ... } 內(nèi)核事件 (Event)對(duì)象 ? 用途:把一個(gè)特定的事件通知給一個(gè)等待中的線程。 NTSTATUS status = KeWaitForMultipleObjects(...)。 ? 如果碰巧有多個(gè)對(duì)象進(jìn)入了信號(hào)態(tài),則返回值僅代表其中的一個(gè),可能是第一個(gè)也可能是其它。 KeWaitForMultipleObjects的返回值 ? 如果指定了 WaitAll,則返回 STATUS_SUCCESS表示等待的所有對(duì)象都進(jìn)入了信號(hào)態(tài)。 NTSTATUS status = KeWaitForMultipleObjects(count, objects, WaitType, WaitReason, WaitMode, Alertable, amp。 ASSERT(KeGetCurrentIrql() = DISPATCH_LEVEL)。 ? waitblocks參數(shù)指向一個(gè) KWAIT_BLOCK結(jié)構(gòu)數(shù)組,內(nèi)核用它來記錄每個(gè)對(duì)象在等待中的狀態(tài)。 在多個(gè)同步對(duì)象上等待 ? objects指向一個(gè)指針數(shù)組,每個(gè)數(shù)組元素指向一個(gè)同步對(duì)象, count表示數(shù)組中指針的個(gè)數(shù) 。返回代碼為 STATUS_TIMEOUT,代表對(duì)象處于非信號(hào)態(tài),返回代碼為 STATUS_ SUCCESS,代表對(duì)象處于信號(hào)態(tài)。 ? STATUS_TIMEOUT指出在指定的超時(shí)期限內(nèi)對(duì)象未進(jìn)入信號(hào)態(tài) 。 KeWaitForSingleObject返回值含義 ? STATUS_SUCCESS,表示等待被滿足。 KeWaitForSingleObject(object, WaitReason, WaitMode, Alertable, amp。 指定為 0將使等待函數(shù)立即返回。正數(shù)的超時(shí)表示一個(gè)從 1601年 1月 1日 起的絕對(duì)時(shí)間。 ? Alertable 參數(shù)一般指定為 FALSE。 ? WaitMode 是 MODE枚舉類型,該枚舉類型僅有兩個(gè)值:KernelMode和 UserMode。該對(duì)象必須在非分頁內(nèi)存中 。timeout)。 LARGE_INTEGER timeout。 ? 調(diào)用 KeWaitForSingleObject或 KeWaitForMultipleObjects函數(shù)可以使代碼 (以及背景線程 )在一個(gè)或多個(gè)同步對(duì)象上等待,等待它們進(jìn)入信號(hào)態(tài)。 (PsCreateSystemThread) 4. DriverEntry、 AddDevice、 DriverUnload等函數(shù)執(zhí)行在一個(gè)系統(tǒng)線程 (System Thread)中。 2. PNP類 IRP的處理函數(shù)可以確切地知道它執(zhí)行在一個(gè)系統(tǒng)線程 (System Thread)中。 非任意線程上下文 ? 如果驅(qū)動(dòng)程序的回調(diào)例程能確切知道處于哪個(gè)線程上下文中,則稱處于“非任意線程上下文”;大部分時(shí)間里,驅(qū)動(dòng)程序無法知道這個(gè)事實(shí),即處于“任意線程上下文”中。 ? 在驅(qū)動(dòng)程序中,只能在“ 非任意線程上下文 ”條件下利用內(nèi)核同步對(duì)象阻塞調(diào)用者的線程或產(chǎn)生該請(qǐng)求的線程。 內(nèi)核同步對(duì)象 ? 利用內(nèi)核同步對(duì)象可以暫時(shí)阻塞一個(gè)線程的執(zhí)行,同步不同線程的執(zhí)行動(dòng)作。 ... KeReleaseSpinLockFromDpcLevel(amp。 } 如何使用自旋鎖 ? 如果知道代碼已經(jīng)處在 DISPATCH_LEVEL級(jí)上 ,如 DPC、StartIo,和其它執(zhí)行在 DISPATCH_LEVEL級(jí)上的驅(qū)動(dòng)程序例程,可以調(diào)用兩個(gè)專用函數(shù)來操作自旋鎖 : KeAcquireSpinLockAtDpcLevel(amp。 ... KeReleaseSpinLock(amp。pdxQLock, amp。 PDEVICE_EXTENSION pdx = ...。
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1