==== KbdSynch ====
**Bindings**: [[synch#C bindings|C]], [[synch#MASM bindings|MASM]]
This call synchronizes access from a keyboard subsystem to the keyboard device driver.
KbdSynch (IOWait)
//IOWait// (**USHORT**) - input
Wait for the bond. Values are:
^Value ^Definition ^
|0 |Indicates the requestor does not wait for access to the device driver. |
|1 |Indicates the requestor waits for access to the device driver. |
//rc// (**USHORT**) - return
Return code descriptions are:
|0 |NO_ERROR |
|121 |ERROR_SEM_TIMEOUT |
**Remarks**
//KbdSynch// blocks all other threads within a session until return from the subsystem to the router. To ensure proper synchronization, //KbdSynch// should be issued by a keyboard subsystem if it intends to issue a //DosDevIOCtl// or access dynamically shared data. //KbdSynch// does not protect globally shared data from threads in other sessions.
=== C bindings ===
#define INCL_KBD
USHORT rc = KbdSynch(IOWait);
USHORT IOWait; /* Indicate if wait */
USHORT rc; /* return code */
=== MASM bindings ===
EXTRN KbdSynch:FAR
INCL_KBD EQU 1
PUSH WORD IOWait ;Indicate if wait
CALL KbdSynch
Returns WORD