Windows and WOSA/XFS are built on an event-driven, asynchronous model. However, the WOSA/XFS design allows an application using its interfaces to behave in either an asynchronous or synchronous manner. Thus the API supports two versions of each of the appropriate functions (e.g., an application can request to lock a service using either the asynchronous WFSAsyncLock function or the synchronous WFSLock function).
Each WOSA/XFS API function operates in one of three synchronization modes: asynchronous, synchronous or immediate. These are described in the following sections.
Note that the SPI is purely an asynchronous interface, so all SPI functions are either asynchronous or immediate; there are no synchronous SPI functions.
See Sections 4 and 5 for a summary of the API and SPI functions and their synchronization modes.