- Clean up well-known privileges.
- Implement checking tokens for privileges in the server.
- Implement NtPrivilegeCheck.

diff --git a/server/trace.c b/server/trace.c
index 898b000..d12c962 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -2689,6 +2689,21 @@
     dump_varargs_LUID_AND_ATTRIBUTES( cur_size );
 }
 
+static void dump_check_token_privileges_request( const struct check_token_privileges_request *req )
+{
+    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " all_required=%d,", req->all_required );
+    fprintf( stderr, " privileges=" );
+    dump_varargs_LUID_AND_ATTRIBUTES( cur_size );
+}
+
+static void dump_check_token_privileges_reply( const struct check_token_privileges_reply *req )
+{
+    fprintf( stderr, " has_privileges=%d,", req->has_privileges );
+    fprintf( stderr, " privileges=" );
+    dump_varargs_LUID_AND_ATTRIBUTES( cur_size );
+}
+
 static void dump_duplicate_token_request( const struct duplicate_token_request *req )
 {
     fprintf( stderr, " handle=%p,", req->handle );
@@ -2931,6 +2946,7 @@
     (dump_func)dump_set_global_windows_request,
     (dump_func)dump_adjust_token_privileges_request,
     (dump_func)dump_get_token_privileges_request,
+    (dump_func)dump_check_token_privileges_request,
     (dump_func)dump_duplicate_token_request,
     (dump_func)dump_create_mailslot_request,
     (dump_func)dump_open_mailslot_request,
@@ -3122,6 +3138,7 @@
     (dump_func)dump_set_global_windows_reply,
     (dump_func)dump_adjust_token_privileges_reply,
     (dump_func)dump_get_token_privileges_reply,
+    (dump_func)dump_check_token_privileges_reply,
     (dump_func)dump_duplicate_token_reply,
     (dump_func)dump_create_mailslot_reply,
     (dump_func)dump_open_mailslot_reply,
@@ -3313,6 +3330,7 @@
     "set_global_windows",
     "adjust_token_privileges",
     "get_token_privileges",
+    "check_token_privileges",
     "duplicate_token",
     "create_mailslot",
     "open_mailslot",