Convert NtQueryKey and NtEnumerateKey to the new request mechanism.
Fixed a few bugs.

diff --git a/include/server.h b/include/server.h
index f9255fe..443c547 100644
--- a/include/server.h
+++ b/include/server.h
@@ -1046,18 +1046,8 @@
 {
     REQUEST_HEADER;                /* request header */
     IN  int          hkey;         /* handle to registry key */
-    IN  int          index;        /* index of subkey */
-    OUT time_t       modif;        /* last modification time */
-    OUT path_t       name;         /* subkey name */
-    OUT WCHAR        class[1];     /* class name */
-};
-
-
-/* Query information about a registry key */
-struct query_key_info_request
-{
-    REQUEST_HEADER;                /* request header */
-    IN  int          hkey;         /* handle to registry key */
+    IN  int          index;        /* index of subkey (or -1 for current key) */
+    IN  int          full;         /* return the full info? */
     OUT int          subkeys;      /* number of subkeys */
     OUT int          max_subkey;   /* longest subkey name */
     OUT int          max_class;    /* longest class name */
@@ -1065,8 +1055,8 @@
     OUT int          max_value;    /* longest value name */
     OUT int          max_data;     /* longest value data */
     OUT time_t       modif;        /* last modification time */
-    OUT path_t       name;         /* key name */
-    OUT WCHAR        class[1];     /* class name */
+    OUT VARARG(name,unicode_len_str);  /* key name */
+    OUT VARARG(class,unicode_str);     /* class name */
 };
 
 
@@ -1429,7 +1419,6 @@
     REQ_OPEN_KEY,
     REQ_DELETE_KEY,
     REQ_ENUM_KEY,
-    REQ_QUERY_KEY_INFO,
     REQ_SET_KEY_VALUE,
     REQ_GET_KEY_VALUE,
     REQ_ENUM_KEY_VALUE,
@@ -1545,7 +1534,6 @@
     struct open_key_request open_key;
     struct delete_key_request delete_key;
     struct enum_key_request enum_key;
-    struct query_key_info_request query_key_info;
     struct set_key_value_request set_key_value;
     struct get_key_value_request get_key_value;
     struct enum_key_value_request enum_key_value;
@@ -1574,7 +1562,7 @@
     struct set_serial_info_request set_serial_info;
 };
 
-#define SERVER_PROTOCOL_VERSION 24
+#define SERVER_PROTOCOL_VERSION 25
 
 /* ### make_requests end ### */
 /* Everything above this line is generated automatically by tools/make_requests */
@@ -1648,13 +1636,13 @@
 }
 
 /* get a pointer to the variable part of the request */
-inline static void *server_data_ptr( void *req )
+inline static void *server_data_ptr( const void *req )
 {
     return (union generic_request *)req + 1;
 }
 
 /* get the size of the variable part of the request */
-inline static size_t server_data_size( void *req )
+inline static size_t server_data_size( const void *req )
 {
     return ((struct request_header *)req)->var_size;
 }