Registers an application with WinDriver IPC.
{
printf("\n\nReceived an IPC message:\n"
"msgID [0x%lx], msgData [0x%llx] from process [0x%lx]\n",
{
case A:
{
}
break;
case B:
{
}
break;
default:
printf("Unknown IPC type. msgID [0x%lx], msgData [0x%llx] from "
}
}
int main(void)
{
DWORD dwSubGroupID = 0;
DWORD dwStatus;
{
ErrLog("Failed to set the driver name for WDC library.\n");
return;
}
{
printf("Failed to initialize the WDC library. Error 0x%lx - %s\n",
return dwStatus;
}
{
printf("Failed registering process to IPC. Error [0x%lx - %s]\n",
goto Exit;
}
printf("Registration completed successfully\n");
printf("Scanning for processes...\n");
{
printf("Failed scanning registered processes. Error [0x%lx - %s]\n",
goto Exit;
}
{
printf("Found %ld processes in current group\n",
{
printf(" %lu) Name: %s, SubGroup ID: 0x%lx, UID: 0x%lx\n", i + 1,
}
}
else
{
printf("No processes found in current group\n");
}
if (dwStatus)
{
printf("Failed unregistering IPC Error [0x%lx - %s]\n",
goto Exit;
}
Exit:
}
const char *DLLCALLCONV Stat2Str(_In_ DWORD dwStatus)
Retrieves the status string that corresponds to a status code.
DWORD dwSenderUID
WinDriver IPC unique ID of the sending process.
DWORD dwMsgID
A 32 bit unique number defined by the user application.
UINT64 qwMsgData
Optional - 64 bit additional data from the sending user-application process.
DWORD dwNumProcs
Number of matching processes.
WD_IPC_PROCESS procInfo[WD_IPC_MAX_PROCS]
Array of processes info.
IPC scan processes results.
DWORD hIpc
Returned from WD_IpcRegister()
CHAR cProcessName[WD_PROCESS_NAME_LENGTH]
DWORD dwSubGroupID
Identifier of the processes type.
#define WDC_DRV_OPEN_DEFAULT
DWORD DLLCALLCONV WDC_DriverClose(void)
Closes the WDC WinDriver handle (acquired and stored by a previous call to WDC_DriverOpen()) and unin...
DWORD DLLCALLCONV WDC_DriverOpen(_In_ WDC_DRV_OPEN_OPTIONS openOptions, _In_ const CHAR *pcLicense)
Opens and stores a handle to WinDriver's kernel module and initializes the WDC library according to t...
DWORD DLLCALLCONV WDS_IpcRegister(_In_ const CHAR *pcProcessName, _In_ DWORD dwGroupID, _In_ DWORD dwSubGroupID, _In_ DWORD dwAction, _In_ IPC_MSG_RX_HANDLER pFunc, _In_ void *pData)
Registers an application with WinDriver IPC.
void DLLCALLCONV WDS_IpcUnRegister(void)
This function enables the user application to unregister with WinDriver IPC.
DWORD DLLCALLCONV WDS_IpcScanProcs(_Outptr_ WDS_IPC_SCAN_RESULT *pIpcScanResult)
Scans and returns information of all registered processes that share the application process groupID ...
@ WD_STATUS_SUCCESS
[0] Operation completed successfully
const char *DLLCALLCONV WD_DriverName(const char *sName)
Sets the name of the WinDriver kernel module, which will be used by the calling application.