Appendix C. WinDriver IPC

C.1. WinDriver IPC Overview

This section describes how to use WinDriver to perform Inter-Process Communication. WinDriver IPC allows several WinDriver-based user applications to send and receive user defined messages.

You should define a group ID that will be used by all your applications, and optionally you can also define several sub-group IDs to differentiate between different types of applications. For example, define one sub-group ID for operational applications, and another sub-group ID for monitoring or debug applications. This will enable you to send messages only to one type of application.

An IPC message can be sent in three ways:

  • Multicast - The message will be sent to all processes that were registered with the same group ID.
  • Sub-group Multicast - The message will be sent to all processes that were registered with the same sub-group ID.
  • Unicast (By WinDriver IPC unique ID) - The message will be sent to one specific process.

In order to start working with WinDriver IPC each user application must first register by calling WDS_IpcRegister() [C.2.2]. It must provide a group ID and a sub-group ID and can optionally provides callback function to receive incoming messages.

WinDriver IPC unique ID is received either in the result of WDS_IpcScanProcs() [C.2.5] or in the message received by the callback function.

Multicast messages may be sent by calling WDS_IpcMulticast() [C.2.6] or WDS_IpcSubGroupMulticast() [C.2.7], while unicast messages may be sent by WinDriver IPC unique ID by calling WDS_IpcUidUnicast() [C.2.8].

Query of current registered processes can be done using WDS_IpcScanProcs() [C.2.5].