Index: /trunk/include/VBox/hgcmsvc.h
===================================================================
--- /trunk/include/VBox/hgcmsvc.h	(revision 13156)
+++ /trunk/include/VBox/hgcmsvc.h	(revision 13157)
@@ -87,6 +87,28 @@
  * Intended for use on the host side.
  */
-typedef DECLCALLBACK(void) FNVBOXHGCMCALLBACK(void *pvParm);
+typedef struct _VBOXHGCMCALLBACKHDR *PVBOXHGCMCALLBACKHDR;
+typedef DECLCALLBACK(void) FNVBOXHGCMCALLBACK(PVBOXHGCMCALLBACKHDR pvParm);
 typedef FNVBOXHGCMCALLBACK *PFNVBOXHGCMCALLBACK;
+
+/**
+ * Callback parameter structure header for FNVBOXHGCMCALLBACK callback
+ * functions.  The structure passed as a callback parameter should start
+ * with this header.
+ */
+typedef struct _VBOXHGCMCALLBACKHDR
+{
+    /** Magic number for runtime sanity check */
+    uint32_t  u32Magic;
+    /** Size of the embedding structure */
+    uint32_t  cbStruct;
+    /** Callback user data */
+    void     *pvData;
+} VBOXHGCMCALLBACKHDR;
+
+enum
+{
+    /** Magic number for sanity checking the VBOXHGCMCALLBACKHDR structure */
+    VBOXHGCMCALLBACKMAGIC = 0x69c87a78
+};
 
 #define VBOX_HGCM_SVC_PARM_INVALID  (0U)
