server: Add a specific data type for ioctl codes so they can be printed as symbols.
diff --git a/server/trace.c b/server/trace.c
index 44cf32e..59cdf1d 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -36,6 +36,7 @@
#include "winbase.h"
#include "wincon.h"
#include "winternl.h"
+#include "winioctl.h"
#include "file.h"
#include "request.h"
#include "unicode.h"
@@ -82,6 +83,18 @@
fprintf( stderr, "',%04x}", info->attr );
}
+static void dump_ioctl_code( const ioctl_code_t *code )
+{
+ switch(*code)
+ {
+#define CASE(c) case c: fputs( #c, stderr ); break
+ CASE(FSCTL_DISMOUNT_VOLUME);
+ CASE(FSCTL_PIPE_DISCONNECT);
+ default: fprintf( stderr, "%08x", *code ); break;
+#undef CASE
+ }
+}
+
static void dump_apc_call( const apc_call_t *call )
{
fputc( '{', stderr );
@@ -2391,7 +2404,9 @@
static void dump_ioctl_request( const struct ioctl_request *req )
{
fprintf( stderr, " handle=%p,", req->handle );
- fprintf( stderr, " code=%08x,", req->code );
+ fprintf( stderr, " code=" );
+ dump_ioctl_code( &req->code );
+ fprintf( stderr, "," );
fprintf( stderr, " async=" );
dump_async_data( &req->async );
fprintf( stderr, "," );