Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

The ready-event process consists of modules that expose a ready event and threads that wait for a ready event.

Modules that expose a ready-event

When Filesys.exe starts, events are created as soon as the registry is initialized. If the RAM-based registry is in use, the events are created before any applications or drivers are started. If the hive-based registry is in use, the events from the boot hive are created before any applications or drivers are started. Then, when the system hive is loaded, the events from the system hive are created. When the module that added the event data is run, it calls the OpenEventfunction to open the event. Any waiting thread is released. The event remains active for the life of the OS.

Call the SetEventfunction to set the event.

The module can then use the CloseHandlefunction to close the event. Because Filesys.exe holds the event open for the life of the OS, the event remains active.

Threads that wait for a ready-event

When modules start, they first attempt to call OpenEventfor the API sets to which they are related. If OpenEventfails, the API set was never, and will never be, registered. If OpenEventsucceeds, the module can call the WaitForSingleObjectfunction to wait for the API set to be registered. This eliminates polling and lets a module know whether an API set will be registered.

To block, use OpenEventwith WaitForSingleObject.

See Also