/********************************************************/ /* ntapi: Native API core library */ /* Copyright (C) 2013--2017 Z. Gilboa */ /* Released under GPLv2 and GPLv3; see COPYING.NTAPI. */ /********************************************************/ #ifndef ___NTAPI_FNAPI_H_ #define ___NTAPI_FNAPI_H_ #include #include #include "ntapi_hash_table.h" #ifdef __cplusplus extern "C" { #endif /* internal prototypes */ typedef int32_t __stdcall ntapi_tt_create_remote_runtime_data( __in void * hprocess, __in_out nt_runtime_data_block * runtime_data); typedef void ** __cdecl ntapi_tt_get_csr_port_handle_addr_by_logic(void); /* nt_object.h */ ntapi_tt_open_ipc_object_directory __ntapi_tt_open_ipc_object_directory; ntapi_tt_create_ipc_object_directory_entry __ntapi_tt_create_ipc_object_directory_entry; ntapi_tt_create_keyed_object_directory __ntapi_tt_create_keyed_object_directory; ntapi_tt_open_keyed_object_directory __ntapi_tt_open_keyed_object_directory; ntapi_tt_create_keyed_object_directory_entry __ntapi_tt_create_keyed_object_directory_entry; /* nt_crc32.h */ ntapi_tt_buffer_crc32 __ntapi_tt_buffer_crc32; ntapi_tt_mbstr_crc32 __ntapi_tt_mbstr_crc32; ntapi_tt_crc32_table __ntapi_tt_crc32_table; /* nt_crc64.h */ ntapi_tt_buffer_crc64 __ntapi_tt_buffer_crc64; ntapi_tt_mbstr_crc64 __ntapi_tt_mbstr_crc64; ntapi_tt_crc64_table __ntapi_tt_crc64_table; /* nt_file.h */ ntapi_tt_get_file_handle_type __ntapi_tt_get_file_handle_type; ntapi_tt_open_logical_parent_directory __ntapi_tt_open_logical_parent_directory; ntapi_tt_open_physical_parent_directory __ntapi_tt_open_physical_parent_directory; /* nt_ipc.h */ ntapi_ipc_connect_by_attr __ntapi_ipc_connect_by_attr; ntapi_ipc_connect_by_name __ntapi_ipc_connect_by_name; ntapi_ipc_connect_by_symlink __ntapi_ipc_connect_by_symlink; ntapi_ipc_connect_by_port __ntapi_ipc_connect_by_port; ntapi_ipc_connect_section_by_attr __ntapi_ipc_connect_section_by_attr; ntapi_ipc_connect_section_by_name __ntapi_ipc_connect_section_by_name; ntapi_ipc_connect_section_by_symlink __ntapi_ipc_connect_section_by_symlink; ntapi_ipc_connect_section_by_port __ntapi_ipc_connect_section_by_port; ntapi_ipc_get_port_by_attr __ntapi_ipc_get_port_by_attr; ntapi_ipc_get_port_section_by_attr __ntapi_ipc_get_port_section_by_attr; ntapi_ipc_init_section_by_port __ntapi_ipc_init_section_by_port; ntapi_ipc_disconnect_unmap_section_by_port __ntapi_ipc_disconnect_unmap_section_by_port; ntapi_ipc_create_pipe __ntapi_ipc_create_pipe_v1; ntapi_ipc_create_pipe __ntapi_ipc_create_pipe_v2; /* nt_sem.h */ ntapi_sem_create __ntapi_sem_create; ntapi_sem_open __ntapi_sem_open; ntapi_sem_fcntl __ntapi_sem_fcntl; ntapi_sem_ioctl __ntapi_sem_ioctl; ntapi_sem_query __ntapi_sem_query; ntapi_sem_set __ntapi_sem_set; ntapi_sem_cancel __ntapi_sem_cancel; ntapi_sem_free __ntapi_sem_free; /* nt_msq.h */ ntapi_msq_create __ntapi_msq_create; ntapi_msq_open __ntapi_msq_open; ntapi_msq_send __ntapi_msq_send; ntapi_msq_recv __ntapi_msq_recv; ntapi_msq_fcntl __ntapi_msq_fcntl; ntapi_msq_ioctl __ntapi_msq_ioctl; ntapi_msq_query __ntapi_msq_query; ntapi_msq_set __ntapi_msq_set; ntapi_msq_cancel __ntapi_msq_cancel; ntapi_msq_free __ntapi_msq_free; /* nt_ldr */ ntapi_ldr_load_system_dll __ntapi_ldr_load_system_dll; ntapi_ldr_create_state_snapshot __ntapi_ldr_create_state_snapshot; ntapi_ldr_revert_state_to_snapshot __ntapi_ldr_revert_state_to_snapshot; /* nt_string.h */ ntapi_tt_string_null_offset_multibyte __ntapi_tt_string_null_offset_multibyte; ntapi_tt_string_null_offset_short __ntapi_tt_string_null_offset_short; ntapi_tt_string_null_offset_dword __ntapi_tt_string_null_offset_dword; ntapi_tt_string_null_offset_qword __ntapi_tt_string_null_offset_qword; ntapi_tt_string_null_offset_ptrsize __ntapi_tt_string_null_offset_ptrsize; ntapi_tt_strcmp_multibyte __ntapi_tt_strcmp_multibyte; ntapi_tt_strcmp_utf16 __ntapi_tt_strcmp_utf16; ntapi_tt_strncmp_multibyte __ntapi_tt_strncmp_multibyte; ntapi_tt_strncmp_utf16 __ntapi_tt_strncmp_utf16; ntapi_tt_aligned_block_memset __ntapi_tt_aligned_block_memset; ntapi_tt_aligned_block_memcpy __ntapi_tt_aligned_block_memcpy; ntapi_tt_init_unicode_string_from_utf16 __ntapi_tt_init_unicode_string_from_utf16; ntapi_tt_memcpy_utf16 __ntapi_tt_memcpy_utf16; ntapi_tt_aligned_memcpy_utf16 __ntapi_tt_aligned_memcpy_utf16; ntapi_tt_generic_memset __ntapi_tt_generic_memset; ntapi_tt_generic_memcpy __ntapi_tt_generic_memcpy; ntapi_tt_uint16_to_hex_utf16 __ntapi_tt_uint16_to_hex_utf16; ntapi_tt_uint32_to_hex_utf16 __ntapi_tt_uint32_to_hex_utf16; ntapi_tt_uint64_to_hex_utf16 __ntapi_tt_uint64_to_hex_utf16; ntapi_tt_uintptr_to_hex_utf16 __ntapi_tt_uintptr_to_hex_utf16; ntapi_tt_hex_utf16_to_uint16 __ntapi_tt_hex_utf16_to_uint16; ntapi_tt_hex_utf16_to_uint32 __ntapi_tt_hex_utf16_to_uint32; ntapi_tt_hex_utf16_to_uint64 __ntapi_tt_hex_utf16_to_uint64; ntapi_tt_hex_utf16_to_uintptr __ntapi_tt_hex_utf16_to_uintptr; ntapi_tt_uint16_to_hex_utf8 __ntapi_tt_uint16_to_hex_utf8; ntapi_tt_uint32_to_hex_utf8 __ntapi_tt_uint32_to_hex_utf8; ntapi_tt_uint64_to_hex_utf8 __ntapi_tt_uint64_to_hex_utf8; ntapi_tt_uintptr_to_hex_utf8 __ntapi_tt_uintptr_to_hex_utf8; ntapi_wcslen __ntapi_tt_wcslen; /* nt_guid.h */ ntapi_tt_guid_to_string_utf16 __ntapi_tt_guid_to_string_utf16; ntapi_tt_string_to_guid_utf16 __ntapi_tt_string_to_guid_utf16; /* nt_sysinfo.h */ ntapi_tt_get_system_directory_native_path __ntapi_tt_get_system_directory_native_path; ntapi_tt_get_system_directory_dos_path __ntapi_tt_get_system_directory_dos_path; ntapi_tt_get_system_directory_handle __ntapi_tt_get_system_directory_handle; ntapi_tt_get_system_info_snapshot __ntapi_tt_get_system_info_snapshot; /* nt_thread.h */ ntapi_tt_create_thread __ntapi_tt_create_thread; ntapi_tt_create_local_thread __ntapi_tt_create_local_thread; ntapi_tt_create_remote_thread __ntapi_tt_create_remote_thread; /* nt_process.h */ ntapi_tt_fork __ntapi_tt_fork; ntapi_tt_fork __ntapi_tt_fork_v1; ntapi_tt_fork __ntapi_tt_fork_v2; ntapi_tt_create_remote_process_params __ntapi_tt_create_remote_process_params; ntapi_tt_create_remote_runtime_data __ntapi_tt_create_remote_runtime_data; ntapi_tt_create_native_process __ntapi_tt_create_native_process_v1; ntapi_tt_create_native_process __ntapi_tt_create_native_process_v2; ntapi_tt_spawn_native_process __ntapi_tt_spawn_native_process; ntapi_tt_get_runtime_data __ntapi_tt_get_runtime_data; ntapi_tt_init_runtime_data __ntapi_tt_init_runtime_data; ntapi_tt_update_runtime_data __ntapi_tt_update_runtime_data; ntapi_tt_exec_map_image_as_data __ntapi_tt_exec_map_image_as_data; ntapi_tt_exec_unmap_image __ntapi_tt_exec_unmap_image; /* nt_token.h */ ntapi_tt_enable_token_privilege __ntapi_tt_enable_token_privilege; ntapi_tt_disable_token_privilege __ntapi_tt_disable_token_privilege; /* nt_section.h */ ntapi_tt_get_section_name __ntapi_tt_get_section_name; /* nt_sync.h */ ntapi_tt_create_inheritable_event __ntapi_tt_create_inheritable_event; ntapi_tt_create_private_event __ntapi_tt_create_private_event; ntapi_tt_wait_for_dummy_event __ntapi_tt_wait_for_dummy_event; ntapi_tt_sync_block_init __ntapi_tt_sync_block_init; ntapi_tt_sync_block_discard __ntapi_tt_sync_block_discard; ntapi_tt_sync_block_lock __ntapi_tt_sync_block_lock; ntapi_tt_sync_block_unlock __ntapi_tt_sync_block_unlock; ntapi_tt_sync_block_server_lock __ntapi_tt_sync_block_server_lock; /* nt_port.h */ ntapi_tt_port_guid_from_type __ntapi_tt_port_guid_from_type; ntapi_tt_port_type_from_guid __ntapi_tt_port_type_from_guid; ntapi_tt_port_generate_keys __ntapi_tt_port_generate_keys; ntapi_tt_port_format_keys __ntapi_tt_port_format_keys; ntapi_tt_port_name_from_attr __ntapi_tt_port_name_from_attr; ntapi_tt_port_attr_from_name __ntapi_tt_port_attr_from_name; ntapi_tt_port_attr_from_string __ntapi_tt_port_attr_from_string; ntapi_tt_port_attr_from_symlink __ntapi_tt_port_attr_from_symlink; /* nt_argv.h */ ntapi_tt_get_cmd_line_utf16 __ntapi_tt_get_cmd_line_utf16; ntapi_tt_get_peb_env_block_utf16 __ntapi_tt_get_peb_env_block_utf16; ntapi_tt_parse_cmd_line_args_utf16 __ntapi_tt_parse_cmd_line_args_utf16; ntapi_tt_get_argv_envp_utf8 __ntapi_tt_get_argv_envp_utf8; ntapi_tt_get_argv_envp_utf16 __ntapi_tt_get_argv_envp_utf16; ntapi_tt_get_env_var_meta_utf16 __ntapi_tt_get_env_var_meta_utf16; ntapi_tt_array_copy_utf8 __ntapi_tt_array_copy_utf8; ntapi_tt_array_copy_utf16 __ntapi_tt_array_copy_utf16; ntapi_tt_array_convert_utf8_to_utf16 __ntapi_tt_array_convert_utf8_to_utf16; ntapi_tt_array_convert_utf16_to_utf8 __ntapi_tt_array_convert_utf16_to_utf8; /* nt_blitter.h */ ntapi_blt_alloc __ntapi_blt_alloc; ntapi_blt_free __ntapi_blt_free; ntapi_blt_acquire __ntapi_blt_acquire; ntapi_blt_obtain __ntapi_blt_obtain; ntapi_blt_possess __ntapi_blt_possess; ntapi_blt_release __ntapi_blt_release; ntapi_blt_get __ntapi_blt_get; ntapi_blt_set __ntapi_blt_set; /* nt_unicode.h */ ntapi_uc_validate_unicode_stream_utf8 __ntapi_uc_validate_unicode_stream_utf8; ntapi_uc_validate_unicode_stream_utf16 __ntapi_uc_validate_unicode_stream_utf16; ntapi_uc_get_code_point_byte_count_utf8 __ntapi_uc_get_code_point_byte_count_utf8; ntapi_uc_get_code_point_byte_count_utf16 __ntapi_uc_get_code_point_byte_count_utf16; ntapi_uc_convert_unicode_stream_utf8_to_utf16 __ntapi_uc_convert_unicode_stream_utf8_to_utf16; ntapi_uc_convert_unicode_stream_utf8_to_utf32 __ntapi_uc_convert_unicode_stream_utf8_to_utf32; ntapi_uc_convert_unicode_stream_utf16_to_utf8 __ntapi_uc_convert_unicode_stream_utf16_to_utf8; ntapi_uc_convert_unicode_stream_utf16_to_utf32 __ntapi_uc_convert_unicode_stream_utf16_to_utf32; /* nt_daemon.h */ ntapi_dsr_init __ntapi_dsr_init; ntapi_dsr_start __ntapi_dsr_start; ntapi_dsr_create_port __ntapi_dsr_create_port; ntapi_dsr_connect_internal_client __ntapi_dsr_connect_internal_client; ntapi_dsr_internal_client_connect __ntapi_dsr_internal_client_connect; /* nt_vfd.h */ ntapi_vfd_dev_name_init __ntapi_vfd_dev_name_init; /* nt_tty.h */ ntapi_tty_create_session __ntapi_tty_create_session; ntapi_tty_join_session __ntapi_tty_join_session; ntapi_tty_connect __ntapi_tty_connect; ntapi_tty_client_session_disconnect __ntapi_tty_client_session_disconnect; ntapi_tty_client_session_query __ntapi_tty_client_session_query; ntapi_tty_client_session_set __ntapi_tty_client_session_set; ntapi_tty_client_process_register __ntapi_tty_client_process_register; ntapi_tty_query_information_section __ntapi_tty_query_information_section; ntapi_tty_query_information_server __ntapi_tty_query_information_server; ntapi_tty_query_information_service __ntapi_tty_query_information_service; ntapi_tty_request_peer __ntapi_tty_request_peer; ntapi_tty_vms_query __ntapi_tty_vms_query; ntapi_tty_vms_request __ntapi_tty_vms_request; ntapi_pty_open __ntapi_pty_open; ntapi_pty_open_pair __ntapi_pty_open_pair; ntapi_pty_reopen __ntapi_pty_reopen; ntapi_pty_inherit __ntapi_pty_inherit; ntapi_pty_inherit_runtime_ctty __ntapi_pty_inherit_runtime_ctty; ntapi_pty_close __ntapi_pty_close; ntapi_pty_read __ntapi_pty_read; ntapi_pty_write __ntapi_pty_write; ntapi_pty_ioctl __ntapi_pty_ioctl; ntapi_pty_query __ntapi_pty_query; ntapi_pty_set __ntapi_pty_set; ntapi_pty_cancel __ntapi_pty_cancel; /* nt_socket.h */ ntapi_sc_socket __ntapi_sc_socket_v1; ntapi_sc_socket __ntapi_sc_socket_v2; ntapi_sc_bind __ntapi_sc_bind_v1; ntapi_sc_bind __ntapi_sc_bind_v2; ntapi_sc_connect __ntapi_sc_connect_v1; ntapi_sc_connect __ntapi_sc_connect_v2; ntapi_sc_getsockname __ntapi_sc_getsockname_v1; ntapi_sc_getsockname __ntapi_sc_getsockname_v2; ntapi_sc_getpeername __ntapi_sc_getpeername_v1; ntapi_sc_getpeername __ntapi_sc_getpeername_v2; ntapi_sc_server_accept_connection __ntapi_sc_server_accept_connection_v1; ntapi_sc_server_accept_connection __ntapi_sc_server_accept_connection_v2; ntapi_sc_server_duplicate_socket __ntapi_sc_server_duplicate_socket; ntapi_sc_setsockopt __ntapi_sc_setsockopt; ntapi_sc_getsockopt __ntapi_sc_getsockopt; ntapi_sc_listen __ntapi_sc_listen; ntapi_sc_accept __ntapi_sc_accept; ntapi_sc_send __ntapi_sc_send; ntapi_sc_recv __ntapi_sc_recv; ntapi_sc_shutdown __ntapi_sc_shutdown; ntapi_sc_wait __ntapi_sc_wait; /* nt_mount.h */ ntapi_tt_get_dos_drive_device_handle __ntapi_tt_get_dos_drive_device_handle; ntapi_tt_get_dos_drive_root_handle __ntapi_tt_get_dos_drive_root_handle; ntapi_tt_get_dos_drive_device_name __ntapi_tt_get_dos_drive_device_name; ntapi_tt_get_dos_drive_mount_points __ntapi_tt_get_dos_drive_mount_points; ntapi_tt_dev_mount_points_to_statfs __ntapi_tt_dev_mount_points_to_statfs; ntapi_tt_get_dos_drive_letter_from_device __ntapi_tt_get_dos_drive_letter_from_device; /* nt_istat.h */ ntapi_tt_istat __ntapi_tt_istat; /* nt_stat.h */ ntapi_tt_stat __ntapi_tt_stat; /* nt_statfs.h */ ntapi_tt_statfs __ntapi_tt_statfs; /* nt_hashes.h */ ntapi_tt_populate_hashed_import_table __ntapi_tt_populate_hashed_import_table; /* nt_guid.h */ ntapi_tt_guid_copy __ntapi_tt_guid_copy; ntapi_tt_guid_compare __ntapi_tt_guid_compare; ntapi_tt_guid_to_string_utf16 __ntapi_tt_guid_to_string_utf16; ntapi_tt_string_to_guid_utf16 __ntapi_tt_string_to_guid_utf16; /* debug */ ntapi_dbg_write __dbg_write; ntapi_dbg_fn_call __dbg_fn_call; ntapi_dbg_msg __dbg_msg; /* csrss */ ntapi_tt_get_csr_port_handle_addr_by_logic __GET_CSR_PORT_HANDLE_BY_LOGIC; ntapi_csr_port_handle __ntapi_csr_port_handle; #ifdef __cplusplus } #endif #endif