monodebg.vxd used by some Origin programs implemented.

diff --git a/win32/device.c b/win32/device.c
index 37c986d..43e7432 100644
--- a/win32/device.c
+++ b/win32/device.c
@@ -60,6 +60,11 @@
 			      LPVOID lpvOutBuffer, DWORD cbOutBuffer,
 			      LPDWORD lpcbBytesReturned,
 			      LPOVERLAPPED lpOverlapped);
+static BOOL32 DeviceIo_MONODEBG(DEVICE_OBJECT *dev, DWORD dwIoControlCode, 
+			      LPVOID lpvInBuffer, DWORD cbInBuffer,
+			      LPVOID lpvOutBuffer, DWORD cbOutBuffer,
+			      LPDWORD lpcbBytesReturned,
+			      LPOVERLAPPED lpOverlapped);
 
 static BOOL32 VxDCall_VMM( DWORD *retv, DWORD service, CONTEXT *context );
 
@@ -207,6 +212,8 @@
     { "AFILTER",  0x04A1, NULL, NULL },
     { "IRLAMP",   0x04A2, NULL, NULL },
 
+    { "MONODEBG.VXD", 0x4242, NULL, DeviceIo_MONODEBG },
+
     { NULL,       0,      NULL, NULL }
 };
 
@@ -830,3 +837,30 @@
 
     return retv;
 }
+
+/* this is used by some Origin games */
+static BOOL32 DeviceIo_MONODEBG(DEVICE_OBJECT *dev, DWORD dwIoControlCode, 
+			      LPVOID lpvInBuffer, DWORD cbInBuffer,
+			      LPVOID lpvOutBuffer, DWORD cbOutBuffer,
+			      LPDWORD lpcbBytesReturned,
+			      LPOVERLAPPED lpOverlapped)
+{
+	switch (dwIoControlCode) {
+	case 1:	/* version */
+		*(LPDWORD)lpvOutBuffer = 0x20004; /* WC SecretOps */
+		break;
+	case 9: /* debug output */
+		fprintf(stderr,"MONODEBG: %s\n",debugstr_a(lpvInBuffer));
+		break;
+	default:
+		FIXME(win32,"(%p,%ld,%p,%ld,%p,%ld,%p,%p): stub\n",
+			dev,dwIoControlCode,
+			lpvInBuffer,cbInBuffer,
+			lpvOutBuffer,cbOutBuffer,
+			lpcbBytesReturned,
+			lpOverlapped
+		);
+		break;
+	}
+	return TRUE;
+}