B.1.2 Subsystem-Parallel Stacks

A subsystem-parallel stack requires a non preemptive uniprocessor kernel. It has no internal locking, and assumes that:

  1. Its service or put procedures run to completion without being preempted.

  2. Its routines activated by calls to timeout and bufcall do not run concurrently with its service or put procedures.

  3. Only one instance of the open or close procedure of a driver or module is running at any given moment.

When a subsystem-parallel stack is installed in the Windows NT kernel, STREAMS ensures that the assumptions listed above are maintained.