Techwiki:Ntoskrnl/DISPATCHER HEADER

From ReactOS Wiki
Jump to: navigation, search
  /*
   * NAME:           DISPATCHER_HEADER
   * DESCRIPTION:    Header for Dispatcher Objects
   * PORTABILITY:    Architecture Independent.
   * KERNEL VERSION: 5.2
   * DOCUMENTATION:  http://reactos.com/wiki/Techwiki:ntoskrnl/DISPATCHER_HEADER
   */
   union {
       struct {
           UCHAR         Type;            /* 000 */
           UCHAR         Absolute;        /* 001 */
           UCHAR         Size;            /* 002 */
           union {
               UCHAR     Inserted;        /* 003 */
               BOOLEAN   DebugActive;     /* 003 */
           };
       };
       volatile LONG     Lock;            /* 000 */
   };
   LONG                  SignalState;     /* 004 */
   LIST_ENTRY            WaitListHead;    /* 008 */



Descriptions

Type

One of the predefined KOBJECTS types describing which Dispatcher Object this is.

Absolute

For a Timer, indicates if it is Absolute (that is to say, it expires at a given date and time) or Relative (it expires in a relative amount of time).

Size

Size in DWORDs of the Dispatcher Object.

Inserted

For a Timer, indicates if it has been inserted.

DebugActive

For a Thread, indicates if it's being debugged.

Lock

SignalState

The current Signal State of the Dispatcher Object. Usually 1 for Signaled and 0 for Not Signaled, but can be negative for Recursive Mutex and above 1 for Semaphores.

WaitListHead

Queue of waits outstanding on the current DISPATCHER_HEADER. Doubly-linked list of KWAIT_BLOCK.WaitListEntry