# Notification of SRQ and Other GPIB Events

## Synchronous Callbacks

You can use ibInstallCallback to specify functions to invoke when any board-level or device-level condition on which you can wait using ibwait occurs.

Callback functions you install with ibInstallCallback are synchronous callbacks; that is, LabWindows/CVI can invoke them only when it processes events. LabWindows/CVI processes events when you call ProcessSystemEvents or GetUserEvent or when RunUserInterface is active and you are not in a callback function. Consequently, the latency between the occurrence of the GPIB event and the invocation of the callback can be large. However, you are not restricted in what you can do in the callback function.

## Asynchronous Callbacks

You can use ibnotify to install asynchronous callbacks. LabWindows/CVI can call your asynchronous callbacks at any time with respect to the rest of your program. Consequently, the latency between the occurrence of the GPIB event and the invocation of the callback is smaller than with synchronous callbacks, but the callback function must be multithreaded safe. Refer to the ibnotify function description for more details.

## Driver Version Requirements

You must have version 1.2 or later of the NI-488.2M driver to use ibInstallCallback and ibnotify.