Implement NtQueryTimer.
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h
index 17e7827..f775392 100644
--- a/include/wine/server_protocol.h
+++ b/include/wine/server_protocol.h
@@ -1928,6 +1928,19 @@
};
+struct get_timer_info_request
+{
+ struct request_header __header;
+ obj_handle_t handle;
+};
+struct get_timer_info_reply
+{
+ struct reply_header __header;
+ abs_time_t when;
+ int signaled;
+};
+
+
struct get_thread_context_request
{
@@ -3239,6 +3252,7 @@
REQ_open_timer,
REQ_set_timer,
REQ_cancel_timer,
+ REQ_get_timer_info,
REQ_get_thread_context,
REQ_set_thread_context,
REQ_get_selector_entry,
@@ -3424,6 +3438,7 @@
struct open_timer_request open_timer_request;
struct set_timer_request set_timer_request;
struct cancel_timer_request cancel_timer_request;
+ struct get_timer_info_request get_timer_info_request;
struct get_thread_context_request get_thread_context_request;
struct set_thread_context_request set_thread_context_request;
struct get_selector_entry_request get_selector_entry_request;
@@ -3607,6 +3622,7 @@
struct open_timer_reply open_timer_reply;
struct set_timer_reply set_timer_reply;
struct cancel_timer_reply cancel_timer_reply;
+ struct get_timer_info_reply get_timer_info_reply;
struct get_thread_context_reply get_thread_context_reply;
struct set_thread_context_reply set_thread_context_reply;
struct get_selector_entry_reply get_selector_entry_reply;
@@ -3681,6 +3697,6 @@
struct set_global_windows_reply set_global_windows_reply;
};
-#define SERVER_PROTOCOL_VERSION 152
+#define SERVER_PROTOCOL_VERSION 153
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
diff --git a/include/winternl.h b/include/winternl.h
index 8a58bed..5946ec7 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -632,6 +632,16 @@
BOOLEAN AbandonedState;
} MUTANT_BASIC_INFORMATION, *PMUTANT_BASIC_INFORMATION;
+typedef enum _TIMER_INFORMATION_CLASS
+{
+ TimerBasicInformation = 0
+} TIMER_INFORMATION_CLASS;
+
+typedef struct _TIMER_BASIC_INFORMATION
+{
+ LARGE_INTEGER RemainingTime;
+ BOOLEAN TimerState;
+} TIMER_BASIC_INFORMATION, *PTIMER_BASIC_INFORMATION;
/* return type of RtlDetermineDosPathNameType_U (FIXME: not the correct names) */
@@ -1401,6 +1411,7 @@
NTSTATUS WINAPI NtQuerySecurityObject(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,ULONG,PULONG);
NTSTATUS WINAPI NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS,PVOID,ULONG,PULONG);
NTSTATUS WINAPI NtQuerySystemTime(PLARGE_INTEGER);
+NTSTATUS WINAPI NtQueryTimer(HANDLE,TIMER_INFORMATION_CLASS,PVOID,ULONG,PULONG);
NTSTATUS WINAPI NtQueryValueKey(HKEY,const UNICODE_STRING *,KEY_VALUE_INFORMATION_CLASS,void *,DWORD,DWORD *);
NTSTATUS WINAPI NtQueryVirtualMemory(HANDLE,LPCVOID,MEMORY_INFORMATION_CLASS,PVOID,ULONG,ULONG*);
NTSTATUS WINAPI NtQueryVolumeInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FS_INFORMATION_CLASS);