同步 線程 事件

來源:互聯網
上載者:User
1. VOID KeInitializeEvent(IN PRKEVENT Event, IN EVENT_TYPE Type, IN BOOLEAN State);
Type : 事件類型,可以是 NotificationEvent 和 而SynchronizationEvent.
  NotificationEvent
    等待一個IO操作完成.當一個NotificationEvent事件用KeSetEvent設定成訊號狀態時,
    所有等待在該事件上的線程都會開始執行,這是因為此類型事件不會自動清除訊號,它
    保留訊號狀態直到你手工用KeResetEvent 或 KeClearEvent 清除這個事件的訊號狀態.
  SynchronizationEvent
    等待一個IO操作完成.當一個NotificationEvent事件用KeSetEvent設定成訊號狀態時,
    則只能讓等待在該事件上的單個線程開始執行,其它會繼續等待,這是因為此類型在執
    行 KeWaitForMultipleObjects 或 KeWaitForSingleObject 之後會自動清除這個事件
    的訊號狀態, 而不必手工用 KeResetEvent 或 KeClearEvent 清除這個事件的訊號狀
    態.

State : 指明事件的訊號初始化狀態.
  當是TRUE 時初始化事件是有訊號狀態.
  當是FALSE時初始化事件是沒訊號狀態.

2.
LONG KeSetEvent
(
  IN PRKEVENT Event,
  IN KPRIORITY Increment,
  IN BOOLEAN Wait
  );

  設定事件為有訊號狀態.
 
3.
NTSTATUS KeWaitForMultipleObjects
(
  IN ULONG         Count,
  IN PVOID         Object[],
  IN WAIT_TYPE     WaitType,
  IN KWAIT_REASON   WaitReason,
  IN KPROCESSOR_MODE WaitMode,
  IN BOOLEAN       Alertable,
  IN PLARGE_INTEGER   Timeout OPTIONAL,
  IN PKWAIT_BLOCK   WaitBlockArray OPTIONAL
  );
 

NTSTATUS KeWaitForSingleObject
(
  IN PVOID         Object,
  IN KWAIT_REASON   WaitReason,
  IN KPROCESSOR_MODE WaitMode,
  IN BOOLEAN       Alertable,
  IN PLARGE_INTEGER   Timeout OPTIONAL
  );

  等待事件訊號狀態的發生.
 
4.
LONG KeResetEvent
(
  IN PRKEVENT Event
  );
複位一個指定事件到沒有訊號狀態並返回以前這個事件的訊號狀態.
  返回非零說明以前是有訊號狀態;
  返回 零說明以前是無訊號狀態;
5.
VOID KeClearEvent
(
  IN PRKEVENT Event
  );
設定一個指定事件到沒有訊號狀態.
說明:
  KeResetEvent 和 KeClearEvent 都是設定一個指定事件到沒有訊號狀態,
  如果不想得到以前這個事件的訊號狀態的話用 KeClearEvent 更好.
 
6.
LONG KeReadStateEvent(
  IN PRKEVENT Event
  );
得到一個給定事件當前的訊號狀態.
返回非零說明是有訊號狀態;
返回 零說明是無訊號狀態; 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.