.TH qprocsoff() "" "" "DDI/DKI Kernel Routine"
.PC "Turn off a driver or module"
.B "#include <sys/stream.h>"
\fBvoid qprocsoff(\fIreadqueue\^\fB)\fR
\fBqueue_t *\fIreadqueue\^\fB;\fR
.PP
.B qprocsoff()
``turns off'' the driver or module that owns
.IR readqueue .
It removes
.IR readqueue 's
service routines from the list of service routines to be run;
then it waits until all concurrent
.B put
or
.B service
routines are finished, disables the
.B put
routine, and returns.
.PP
When these routines are disabled in a module,
messages flow around it as if it were not present in the stream.
When they are disabled in a driver, of course, the queue halts.
.PP
To ``turn on'' the driver or module, call function
.BR qprocson() .
.SH "See Also"
.B
DDI/DKI kernel routines,
qprocson()
.R
.SH Notes
.B qprocsoff()
has base level only.
It can sleep.
.PP
A driver cannot hold a driver-defined basic lock or read/write lock
across a call to this function.
However, it can hold a driver-defined sleep lock.
.PP
The caller cannot have the stream frozen when it calls this function.
.PP
The
.B close
routine of a driver must call
.B qprocsoff()
before it deallocates any resources upon which a driver's
.B put
or
.B service
routines depend.
