summaryrefslogtreecommitdiffhomepage
path: root/include/ntapi/nt_atom.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ntapi/nt_atom.h')
-rw-r--r--include/ntapi/nt_atom.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/include/ntapi/nt_atom.h b/include/ntapi/nt_atom.h
new file mode 100644
index 0000000..36d660d
--- /dev/null
+++ b/include/ntapi/nt_atom.h
@@ -0,0 +1,52 @@
+#ifndef _NT_ATOM_H_
+#define _NT_ATOM_H_
+
+#include <psxtypes/psxtypes.h>
+
+typedef enum _nt_atom_info_class {
+ NT_ATOM_BASIC_INFORMATION,
+ NT_ATOM_LIST_INFORMATION
+} nt_atom_info_class;
+
+
+typedef uint16_t nt_atom;
+
+
+typedef struct _nt_atom_basic_information {
+ uint16_t reference_count;
+ uint16_t pinned;
+ uint16_t name_length;
+ wchar16_t name[];
+} nt_atom_basic_information;
+
+
+typedef struct _nt_atom_list_information {
+ uint32_t number_of_atoms;
+ nt_atom atoms[2];
+} nt_atom_list_information;
+
+
+typedef int32_t __stdcall ntapi_zw_add_atom(
+ __in wchar16_t str,
+ __in uint16_t str_length,
+ __out uint16_t * atom);
+
+
+typedef int32_t __stdcall ntapi_zw_find_atom(
+ __in wchar16_t str,
+ __in uint16_t str_length,
+ __out uint16_t * atom);
+
+
+typedef int32_t __stdcall ntapi_zw_delete_atom(
+ __in uint16_t * atom);
+
+
+typedef int32_t __stdcall ntapi_zw_query_information_atom(
+ __in uint16_t * atom,
+ __in nt_atom_info_class atom_info_class,
+ __out void * atom_info,
+ __in uint32_t atom_info_length,
+ __out uint32_t * returned_length __optional);
+
+#endif