Я так не думаю. Вместо этого:
- У вас может быть служба, которая отправляет DeviceIoControl на устройство.
- Устройство затем сохраняет (не завершает) связанный IOCTL
- Когда устройство хочет запустить приложение, оно завершает IOCTL
- Когда служба замечает, что ее DeviceIoControl завершена, запускается другое приложение
Служба может запустить приложение, но я не знаю, может ли оно запустить его на рабочем столе пользователя. Если вы хотите, чтобы запущенное приложение взаимодействовало с вошедшим в систему конечным пользователем, то вместо использования службы, как описано выше, было бы лучше поместить функциональность DeviceIoControl в (видимое или невидимое) приложение, которое запускается автоматически на рабочей станции пользователя, когда пользователь входит в систему.
Если вы сделаете это, будьте осторожны, если предположить, что вошел только один вошедший в систему пользователь (их может быть много на сервере Citrix / Terminal).