These patches apply/work on top of: [PATCH] qemu-ga: Add schema documentation for types [PATCH] qemu-ga: add guest-set-support-level command [PATCH] main-loop: Fix SetEvent() on uninitialized handle on win32 [PATCH] main-loop: For tools, initialize timers as part of qemu_init_main_loop()
And can also be obtained from: git://github.com/mdroth/qemu.git qga-win32-v1 These patches add support for Windows to the QEMU guest agent. With these patches the following guest agent commands are supported on Windows: guest-ping guest-info guest-sync guest-shutdown The guest-file* commands can essentially be enabled for Windows as-is, but since mingw does not honor the O_NONBLOCK flag, they'll need to be reworked if we're to retain the current non-blocking behavior. The rest of the commands are currently stubbed out for Windows (qemu-ga will return an "unsupported" error), but it should be easy to implement these going forward with basic Windows support/infrastructure in place. The build was tested using Fedora 15 with a MinGW cross-build target via: configure --enable-guest-agent --cross-prefix=i686-pc-mingw32- make qemu-ga.exe The executable was tested using Windows XP SP3, and partially tested using Windows Server 2008 and Windows 7 (no I/O for the latter 2, having issues with virtio-win drivers atm). GLib 2.28+ for Windows is required. You can install qemu-ga as a start-on-boot service by running: ./qemu-ga --service install And start/stop manually via: net start qemu-ga net stop qemu-ga Many thanks to Gal Hammer for contributing the service integration and shutdown code. Makefile.objs | 8 +- configure | 2 +- qemu-ga.c | 413 ++++++++++++++----------------- qga/channel-posix.c | 246 ++++++++++++++++++ qga/channel-win32.c | 337 +++++++++++++++++++++++++ qga/channel.h | 33 +++ qga/commands-posix.c | 528 ++++++++++++++++++++++++++++++++++++++ qga/commands-win32.c | 130 ++++++++++ qga/commands.c | 86 +++++++ qga/guest-agent-commands.c | 598 -------------------------------------------- qga/guest-agent-core.h | 3 +- qga/service-win32.c | 114 +++++++++ qga/service-win32.h | 30 +++ 14 files changed, 1698 insertions(+), 832 deletions(-)