Copy disabled (too large)
Download .txt
Showing preview only (115,004K chars total). Download the full file to get everything.
Repository: can1357/selene
Branch: master
Commit: 29b1350704b7
Files: 40723
Total size: 100.9 MB
Directory structure:
gitextract__5f7yefv/
├── .gitignore
├── LICENSE
├── README.md
├── apollo-crt/
│ ├── apollo-crt.cpp
│ ├── apollo-crt.sln
│ ├── apollo-crt.vcxproj
│ └── apollo-crt.vcxproj.user
├── apollo-linker/
│ ├── linker.cpp
│ ├── linker.sln
│ ├── linker.vcxproj
│ ├── linker.vcxproj.filters
│ ├── object/
│ │ ├── code_gen.cpp
│ │ ├── collection.cpp
│ │ ├── collection.hpp
│ │ ├── comdat.cpp
│ │ ├── comdat.hpp
│ │ ├── opt_ref.cpp
│ │ ├── primitives.cpp
│ │ ├── primitives.hpp
│ │ └── reference_counting.hpp
│ ├── transform/
│ │ ├── attribute_discovery.cpp
│ │ ├── attribute_discovery.hpp
│ │ ├── attribute_normalization.cpp
│ │ ├── attribute_normalization.hpp
│ │ ├── auto_mode_switch.cpp
│ │ ├── auto_mode_switch.hpp
│ │ ├── cleanup.cpp
│ │ ├── cleanup.hpp
│ │ ├── dyn_relocs.cpp
│ │ ├── dyn_relocs.hpp
│ │ ├── lazy_import.cpp
│ │ ├── lazy_import.hpp
│ │ ├── logo.cpp
│ │ ├── logo.hpp
│ │ ├── lower_xrefs.cpp
│ │ ├── lower_xrefs.hpp
│ │ ├── mixed_bool_arith.cpp
│ │ ├── mixed_bool_arith.hpp
│ │ ├── profiler.cpp
│ │ ├── profiler.hpp
│ │ ├── shadow_return.cpp
│ │ ├── shadow_return.hpp
│ │ ├── split_basic_blocks.cpp
│ │ ├── split_basic_blocks.hpp
│ │ ├── string_conversion.cpp
│ │ ├── string_conversion.hpp
│ │ ├── syscall_lifter.cpp
│ │ ├── syscall_lifter.hpp
│ │ ├── virtualization.cpp
│ │ └── virtualization.hpp
│ └── utility/
│ ├── argparse.hpp
│ ├── liblto.hpp
│ ├── llvm.hpp
│ ├── pdb.hpp
│ └── undname.hpp
├── apollo-toolset/
│ ├── Config.xml
│ ├── Toolset.props
│ ├── Toolset.targets
│ └── install.bat
├── apollo-vm/
│ ├── apollo-vm.cpp
│ ├── apollo-vm.sln
│ ├── apollo-vm.vcxproj
│ ├── apollo-vm.vcxproj.filters
│ └── apollo-vm.vcxproj.user
├── flash/
│ ├── flash.sln
│ ├── flash.vcxproj
│ ├── flash.vcxproj.filters
│ ├── includes/
│ │ └── flash/
│ │ ├── dumper.hpp
│ │ ├── engine.hpp
│ │ ├── format.hpp
│ │ ├── func_builder.hpp
│ │ ├── hex.hpp
│ │ ├── image.hpp
│ │ ├── rule.hpp
│ │ ├── rule_filters.hpp
│ │ ├── rule_instruction.hpp
│ │ ├── rule_pattern.hpp
│ │ ├── section.hpp
│ │ ├── shellcode.hpp
│ │ ├── simd.hpp
│ │ └── vcpu.hpp
│ ├── main.cpp
│ └── src/
│ ├── dumper.cpp
│ ├── func_builder.cpp
│ ├── image.cpp
│ ├── interface.cpp
│ ├── rule_instruction.cpp
│ ├── rule_pattern.cpp
│ ├── section.cpp
│ ├── serializer.cpp
│ ├── shellcode.cpp
│ └── vcpu.cpp
├── ida_symbols.py
├── pdblib/
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── PdbLib.sln
│ ├── PdbLib.vcxproj
│ ├── PdbLib.vcxproj.filters
│ ├── README.md
│ └── includes/
│ └── pdblib/
│ ├── cvconsts.h
│ ├── cvinfo.h
│ ├── dbi.hpp
│ ├── msf.hpp
│ └── pdb.hpp
├── resources/
│ ├── sdk/
│ │ ├── acpi/
│ │ │ ├── api.hpp
│ │ │ ├── cached_table_t.hpp
│ │ │ ├── debugging_device_in_use_t.hpp
│ │ │ ├── device_information_output_buffer_t.hpp
│ │ │ ├── enum_child_t.hpp
│ │ │ ├── enum_children_input_buffer_t.hpp
│ │ │ ├── enum_children_output_buffer_t.hpp
│ │ │ ├── eval_input_buffer_complex_v1_ex_t.hpp
│ │ │ ├── eval_input_buffer_complex_v1_t.hpp
│ │ │ ├── eval_input_buffer_complex_v2_ex_t.hpp
│ │ │ ├── eval_input_buffer_complex_v2_t.hpp
│ │ │ ├── eval_input_buffer_simple_integer_v1_ex_t.hpp
│ │ │ ├── eval_input_buffer_simple_integer_v1_t.hpp
│ │ │ ├── eval_input_buffer_simple_integer_v2_ex_t.hpp
│ │ │ ├── eval_input_buffer_simple_integer_v2_t.hpp
│ │ │ ├── eval_input_buffer_simple_string_v1_ex_t.hpp
│ │ │ ├── eval_input_buffer_simple_string_v1_t.hpp
│ │ │ ├── eval_input_buffer_simple_string_v2_ex_t.hpp
│ │ │ ├── eval_input_buffer_simple_string_v2_t.hpp
│ │ │ ├── eval_input_buffer_v1_ex_t.hpp
│ │ │ ├── eval_input_buffer_v1_t.hpp
│ │ │ ├── eval_input_buffer_v2_ex_t.hpp
│ │ │ ├── eval_input_buffer_v2_t.hpp
│ │ │ ├── eval_output_buffer_v1_t.hpp
│ │ │ ├── eval_output_buffer_v2_t.hpp
│ │ │ ├── get_device_specific_data_t.hpp
│ │ │ ├── interface_standard2_t.hpp
│ │ │ ├── interface_standard_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── cached_table_t.end.hpp
│ │ │ │ ├── cached_table_t.start.hpp
│ │ │ │ ├── debugging_device_in_use_t.end.hpp
│ │ │ │ ├── debugging_device_in_use_t.start.hpp
│ │ │ │ ├── device_information_output_buffer_t.end.hpp
│ │ │ │ ├── device_information_output_buffer_t.start.hpp
│ │ │ │ ├── enum_child_t.end.hpp
│ │ │ │ ├── enum_child_t.start.hpp
│ │ │ │ ├── enum_children_input_buffer_t.end.hpp
│ │ │ │ ├── enum_children_input_buffer_t.start.hpp
│ │ │ │ ├── enum_children_output_buffer_t.end.hpp
│ │ │ │ ├── enum_children_output_buffer_t.start.hpp
│ │ │ │ ├── eval_input_buffer_complex_v1_ex_t.end.hpp
│ │ │ │ ├── eval_input_buffer_complex_v1_ex_t.start.hpp
│ │ │ │ ├── eval_input_buffer_complex_v1_t.end.hpp
│ │ │ │ ├── eval_input_buffer_complex_v1_t.start.hpp
│ │ │ │ ├── eval_input_buffer_complex_v2_ex_t.end.hpp
│ │ │ │ ├── eval_input_buffer_complex_v2_ex_t.start.hpp
│ │ │ │ ├── eval_input_buffer_complex_v2_t.end.hpp
│ │ │ │ ├── eval_input_buffer_complex_v2_t.start.hpp
│ │ │ │ ├── eval_input_buffer_simple_integer_v1_ex_t.end.hpp
│ │ │ │ ├── eval_input_buffer_simple_integer_v1_ex_t.start.hpp
│ │ │ │ ├── eval_input_buffer_simple_integer_v1_t.end.hpp
│ │ │ │ ├── eval_input_buffer_simple_integer_v1_t.start.hpp
│ │ │ │ ├── eval_input_buffer_simple_integer_v2_ex_t.end.hpp
│ │ │ │ ├── eval_input_buffer_simple_integer_v2_ex_t.start.hpp
│ │ │ │ ├── eval_input_buffer_simple_integer_v2_t.end.hpp
│ │ │ │ ├── eval_input_buffer_simple_integer_v2_t.start.hpp
│ │ │ │ ├── eval_input_buffer_simple_string_v1_ex_t.end.hpp
│ │ │ │ ├── eval_input_buffer_simple_string_v1_ex_t.start.hpp
│ │ │ │ ├── eval_input_buffer_simple_string_v1_t.end.hpp
│ │ │ │ ├── eval_input_buffer_simple_string_v1_t.start.hpp
│ │ │ │ ├── eval_input_buffer_simple_string_v2_ex_t.end.hpp
│ │ │ │ ├── eval_input_buffer_simple_string_v2_ex_t.start.hpp
│ │ │ │ ├── eval_input_buffer_simple_string_v2_t.end.hpp
│ │ │ │ ├── eval_input_buffer_simple_string_v2_t.start.hpp
│ │ │ │ ├── eval_input_buffer_v1_ex_t.end.hpp
│ │ │ │ ├── eval_input_buffer_v1_ex_t.start.hpp
│ │ │ │ ├── eval_input_buffer_v1_t.end.hpp
│ │ │ │ ├── eval_input_buffer_v1_t.start.hpp
│ │ │ │ ├── eval_input_buffer_v2_ex_t.end.hpp
│ │ │ │ ├── eval_input_buffer_v2_ex_t.start.hpp
│ │ │ │ ├── eval_input_buffer_v2_t.end.hpp
│ │ │ │ ├── eval_input_buffer_v2_t.start.hpp
│ │ │ │ ├── eval_output_buffer_v1_t.end.hpp
│ │ │ │ ├── eval_output_buffer_v1_t.start.hpp
│ │ │ │ ├── eval_output_buffer_v2_t.end.hpp
│ │ │ │ ├── eval_output_buffer_v2_t.start.hpp
│ │ │ │ ├── get_device_specific_data_t.end.hpp
│ │ │ │ ├── get_device_specific_data_t.start.hpp
│ │ │ │ ├── interface_standard2_t.end.hpp
│ │ │ │ ├── interface_standard2_t.start.hpp
│ │ │ │ ├── interface_standard_t.end.hpp
│ │ │ │ ├── interface_standard_t.start.hpp
│ │ │ │ ├── manipulate_global_lock_buffer_t.end.hpp
│ │ │ │ ├── manipulate_global_lock_buffer_t.start.hpp
│ │ │ │ ├── method_argument_v1_t.end.hpp
│ │ │ │ ├── method_argument_v1_t.start.hpp
│ │ │ │ ├── method_argument_v2_t.end.hpp
│ │ │ │ └── method_argument_v2_t.start.hpp
│ │ │ ├── manipulate_global_lock_buffer_t.hpp
│ │ │ ├── method_argument_v1_t.hpp
│ │ │ └── method_argument_v2_t.hpp
│ │ ├── ae/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── afd/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── ahc/
│ │ │ ├── api.hpp
│ │ │ ├── info_class_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── main_statistics_t.end.hpp
│ │ │ │ ├── main_statistics_t.start.hpp
│ │ │ │ ├── service_clear_t.end.hpp
│ │ │ │ ├── service_clear_t.start.hpp
│ │ │ │ ├── service_data_t.end.hpp
│ │ │ │ ├── service_data_t.start.hpp
│ │ │ │ ├── service_datacache_t.end.hpp
│ │ │ │ ├── service_datacache_t.start.hpp
│ │ │ │ ├── service_dataquery_t.end.hpp
│ │ │ │ ├── service_dataquery_t.start.hpp
│ │ │ │ ├── service_hwid_query_t.end.hpp
│ │ │ │ ├── service_hwid_query_t.start.hpp
│ │ │ │ ├── service_init_process_data_t.end.hpp
│ │ │ │ ├── service_init_process_data_t.start.hpp
│ │ │ │ ├── service_lookup_cdb_t.end.hpp
│ │ │ │ ├── service_lookup_cdb_t.start.hpp
│ │ │ │ ├── service_lookup_t.end.hpp
│ │ │ │ ├── service_lookup_t.start.hpp
│ │ │ │ ├── service_remove_t.end.hpp
│ │ │ │ ├── service_remove_t.start.hpp
│ │ │ │ ├── service_update_t.end.hpp
│ │ │ │ ├── service_update_t.start.hpp
│ │ │ │ ├── statistics_t.end.hpp
│ │ │ │ ├── statistics_t.start.hpp
│ │ │ │ ├── store_statistics_t.end.hpp
│ │ │ │ └── store_statistics_t.start.hpp
│ │ │ ├── main_statistics_t.hpp
│ │ │ ├── service_class_t.hpp
│ │ │ ├── service_clear_t.hpp
│ │ │ ├── service_data_t.hpp
│ │ │ ├── service_datacache_t.hpp
│ │ │ ├── service_dataquery_t.hpp
│ │ │ ├── service_hwid_query_t.hpp
│ │ │ ├── service_init_process_data_t.hpp
│ │ │ ├── service_lookup_cdb_t.hpp
│ │ │ ├── service_lookup_t.hpp
│ │ │ ├── service_remove_t.hpp
│ │ │ ├── service_update_t.hpp
│ │ │ ├── statistics_t.hpp
│ │ │ └── store_statistics_t.hpp
│ │ ├── ahci/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── alpc/
│ │ │ ├── api.hpp
│ │ │ ├── basic_information_t.hpp
│ │ │ ├── communication_info_t.hpp
│ │ │ ├── completion_list_header_t.hpp
│ │ │ ├── completion_list_state_t.hpp
│ │ │ ├── completion_list_t.hpp
│ │ │ ├── completion_packet_lookaside_entry_t.hpp
│ │ │ ├── completion_packet_lookaside_t.hpp
│ │ │ ├── context_attr_t.hpp
│ │ │ ├── data_view_attr_t.hpp
│ │ │ ├── direct_attr_t.hpp
│ │ │ ├── dispatch_context_t.hpp
│ │ │ ├── handle_attr32_t.hpp
│ │ │ ├── handle_attr_t.hpp
│ │ │ ├── handle_entry_t.hpp
│ │ │ ├── handle_table_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── basic_information_t.end.hpp
│ │ │ │ ├── basic_information_t.start.hpp
│ │ │ │ ├── communication_info_t.end.hpp
│ │ │ │ ├── communication_info_t.start.hpp
│ │ │ │ ├── completion_list_header_t.end.hpp
│ │ │ │ ├── completion_list_header_t.start.hpp
│ │ │ │ ├── completion_list_state_t.end.hpp
│ │ │ │ ├── completion_list_state_t.start.hpp
│ │ │ │ ├── completion_list_t.end.hpp
│ │ │ │ ├── completion_list_t.start.hpp
│ │ │ │ ├── completion_packet_lookaside_entry_t.end.hpp
│ │ │ │ ├── completion_packet_lookaside_entry_t.start.hpp
│ │ │ │ ├── completion_packet_lookaside_t.end.hpp
│ │ │ │ ├── completion_packet_lookaside_t.start.hpp
│ │ │ │ ├── context_attr_t.end.hpp
│ │ │ │ ├── context_attr_t.start.hpp
│ │ │ │ ├── data_view_attr_t.end.hpp
│ │ │ │ ├── data_view_attr_t.start.hpp
│ │ │ │ ├── direct_attr_t.end.hpp
│ │ │ │ ├── direct_attr_t.start.hpp
│ │ │ │ ├── dispatch_context_t.end.hpp
│ │ │ │ ├── dispatch_context_t.start.hpp
│ │ │ │ ├── handle_attr32_t.end.hpp
│ │ │ │ ├── handle_attr32_t.start.hpp
│ │ │ │ ├── handle_attr_t.end.hpp
│ │ │ │ ├── handle_attr_t.start.hpp
│ │ │ │ ├── handle_entry_t.end.hpp
│ │ │ │ ├── handle_entry_t.start.hpp
│ │ │ │ ├── handle_table_t.end.hpp
│ │ │ │ ├── handle_table_t.start.hpp
│ │ │ │ ├── message_attributes_t.end.hpp
│ │ │ │ ├── message_attributes_t.start.hpp
│ │ │ │ ├── message_handle_information_t.end.hpp
│ │ │ │ ├── message_handle_information_t.start.hpp
│ │ │ │ ├── port_associate_completion_port_t.end.hpp
│ │ │ │ ├── port_associate_completion_port_t.start.hpp
│ │ │ │ ├── port_attributes_t.end.hpp
│ │ │ │ ├── port_attributes_t.start.hpp
│ │ │ │ ├── port_callback_information_t.end.hpp
│ │ │ │ ├── port_callback_information_t.start.hpp
│ │ │ │ ├── port_completion_list_information_t.end.hpp
│ │ │ │ ├── port_completion_list_information_t.start.hpp
│ │ │ │ ├── port_message_zone_information_t.end.hpp
│ │ │ │ ├── port_message_zone_information_t.start.hpp
│ │ │ │ ├── port_t.end.hpp
│ │ │ │ ├── port_t.start.hpp
│ │ │ │ ├── process_context_t.end.hpp
│ │ │ │ ├── process_context_t.start.hpp
│ │ │ │ ├── security_attr_t.end.hpp
│ │ │ │ ├── security_attr_t.start.hpp
│ │ │ │ ├── server_information_t.end.hpp
│ │ │ │ ├── server_information_t.start.hpp
│ │ │ │ ├── server_session_information_t.end.hpp
│ │ │ │ ├── server_session_information_t.start.hpp
│ │ │ │ ├── token_attr_t.end.hpp
│ │ │ │ ├── token_attr_t.start.hpp
│ │ │ │ ├── work_on_behalf_attr_t.end.hpp
│ │ │ │ ├── work_on_behalf_attr_t.start.hpp
│ │ │ │ ├── work_on_behalf_ticket_t.end.hpp
│ │ │ │ └── work_on_behalf_ticket_t.start.hpp
│ │ │ ├── message_attributes_t.hpp
│ │ │ ├── message_handle_information_t.hpp
│ │ │ ├── message_information_class_t.hpp
│ │ │ ├── port_associate_completion_port_t.hpp
│ │ │ ├── port_attributes_t.hpp
│ │ │ ├── port_callback_information_t.hpp
│ │ │ ├── port_completion_list_information_t.hpp
│ │ │ ├── port_information_class_t.hpp
│ │ │ ├── port_message_zone_information_t.hpp
│ │ │ ├── port_t.hpp
│ │ │ ├── process_context_t.hpp
│ │ │ ├── security_attr_t.hpp
│ │ │ ├── server_information_t.hpp
│ │ │ ├── server_session_information_t.hpp
│ │ │ ├── token_attr_t.hpp
│ │ │ ├── work_on_behalf_attr_t.hpp
│ │ │ └── work_on_behalf_ticket_t.hpp
│ │ ├── alpci/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── alpcp/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── apphelp/
│ │ │ ├── info_t.hpp
│ │ │ └── magic/
│ │ │ ├── info_t.end.hpp
│ │ │ └── info_t.start.hpp
│ │ ├── arb/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── arbiter/
│ │ │ ├── action_t.hpp
│ │ │ ├── add_reserved_parameters_t.hpp
│ │ │ ├── allocation_state_t.hpp
│ │ │ ├── alternative_t.hpp
│ │ │ ├── boot_allocation_parameters_t.hpp
│ │ │ ├── conflict_info_t.hpp
│ │ │ ├── instance_t.hpp
│ │ │ ├── interface_t.hpp
│ │ │ ├── list_entry_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── add_reserved_parameters_t.end.hpp
│ │ │ │ ├── add_reserved_parameters_t.start.hpp
│ │ │ │ ├── allocation_state_t.end.hpp
│ │ │ │ ├── allocation_state_t.start.hpp
│ │ │ │ ├── alternative_t.end.hpp
│ │ │ │ ├── alternative_t.start.hpp
│ │ │ │ ├── boot_allocation_parameters_t.end.hpp
│ │ │ │ ├── boot_allocation_parameters_t.start.hpp
│ │ │ │ ├── conflict_info_t.end.hpp
│ │ │ │ ├── conflict_info_t.start.hpp
│ │ │ │ ├── instance_t.end.hpp
│ │ │ │ ├── instance_t.start.hpp
│ │ │ │ ├── interface_t.end.hpp
│ │ │ │ ├── interface_t.start.hpp
│ │ │ │ ├── list_entry_t.end.hpp
│ │ │ │ ├── list_entry_t.start.hpp
│ │ │ │ ├── ordering_list_t.end.hpp
│ │ │ │ ├── ordering_list_t.start.hpp
│ │ │ │ ├── ordering_t.end.hpp
│ │ │ │ ├── ordering_t.start.hpp
│ │ │ │ ├── parameters_t.end.hpp
│ │ │ │ ├── parameters_t.start.hpp
│ │ │ │ ├── query_allocated_resources_parameters_t.end.hpp
│ │ │ │ ├── query_allocated_resources_parameters_t.start.hpp
│ │ │ │ ├── query_arbitrate_parameters_t.end.hpp
│ │ │ │ ├── query_arbitrate_parameters_t.start.hpp
│ │ │ │ ├── query_conflict_parameters_t.end.hpp
│ │ │ │ ├── query_conflict_parameters_t.start.hpp
│ │ │ │ ├── retest_allocation_parameters_t.end.hpp
│ │ │ │ ├── retest_allocation_parameters_t.start.hpp
│ │ │ │ ├── test_allocation_parameters_t.end.hpp
│ │ │ │ └── test_allocation_parameters_t.start.hpp
│ │ │ ├── ordering_list_t.hpp
│ │ │ ├── ordering_t.hpp
│ │ │ ├── parameters_t.hpp
│ │ │ ├── query_allocated_resources_parameters_t.hpp
│ │ │ ├── query_arbitrate_parameters_t.hpp
│ │ │ ├── query_conflict_parameters_t.hpp
│ │ │ ├── request_source_t.hpp
│ │ │ ├── result_t.hpp
│ │ │ ├── retest_allocation_parameters_t.hpp
│ │ │ └── test_allocation_parameters_t.hpp
│ │ ├── arbp/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── asi/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── asl/
│ │ │ ├── api.hpp
│ │ │ ├── attribute_index_t.hpp
│ │ │ ├── attribute_t.hpp
│ │ │ ├── attribute_type_t.hpp
│ │ │ ├── critical_section_t.hpp
│ │ │ ├── file_kind_detail_t.hpp
│ │ │ ├── file_mapping_t.hpp
│ │ │ ├── log_channel_t.hpp
│ │ │ ├── log_global_logger_t.hpp
│ │ │ ├── log_level_t.hpp
│ │ │ ├── log_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── attribute_t.end.hpp
│ │ │ │ ├── attribute_t.start.hpp
│ │ │ │ ├── critical_section_t.end.hpp
│ │ │ │ ├── critical_section_t.start.hpp
│ │ │ │ ├── file_mapping_t.end.hpp
│ │ │ │ ├── file_mapping_t.start.hpp
│ │ │ │ ├── log_channel_t.end.hpp
│ │ │ │ ├── log_channel_t.start.hpp
│ │ │ │ ├── log_global_logger_t.end.hpp
│ │ │ │ ├── log_global_logger_t.start.hpp
│ │ │ │ ├── log_t.end.hpp
│ │ │ │ ├── log_t.start.hpp
│ │ │ │ ├── string_hash_element_t.end.hpp
│ │ │ │ ├── string_hash_element_t.start.hpp
│ │ │ │ ├── string_hash_t.end.hpp
│ │ │ │ ├── string_hash_t.start.hpp
│ │ │ │ ├── telemetry_t.end.hpp
│ │ │ │ └── telemetry_t.start.hpp
│ │ │ ├── string_hash_element_t.hpp
│ │ │ ├── string_hash_t.hpp
│ │ │ ├── telemetry_level_t.hpp
│ │ │ └── telemetry_t.hpp
│ │ ├── aslp/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── ata/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── atapi/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── authz/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── bapd/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── bapdp/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── bcd/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── bcp/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── bg/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── bgk/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── bgkp/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── bgp/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── bi/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── bip/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── boot/
│ │ │ ├── api.hpp
│ │ │ ├── area_info_t.hpp
│ │ │ ├── entropy_ldr_result_t.hpp
│ │ │ ├── entropy_nt_result_t.hpp
│ │ │ ├── entropy_source_id_t.hpp
│ │ │ ├── entropy_source_ldr_result_t.hpp
│ │ │ ├── entropy_source_nt_result_t.hpp
│ │ │ ├── entropy_source_result_code_t.hpp
│ │ │ ├── entry_list_t.hpp
│ │ │ ├── entry_t.hpp
│ │ │ ├── firmware_ramdisk_info_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── area_info_t.end.hpp
│ │ │ │ ├── area_info_t.start.hpp
│ │ │ │ ├── entropy_ldr_result_t.end.hpp
│ │ │ │ ├── entropy_ldr_result_t.start.hpp
│ │ │ │ ├── entropy_nt_result_t.end.hpp
│ │ │ │ ├── entropy_nt_result_t.start.hpp
│ │ │ │ ├── entropy_source_ldr_result_t.end.hpp
│ │ │ │ ├── entropy_source_ldr_result_t.start.hpp
│ │ │ │ ├── entropy_source_nt_result_t.end.hpp
│ │ │ │ ├── entropy_source_nt_result_t.start.hpp
│ │ │ │ ├── entry_list_t.end.hpp
│ │ │ │ ├── entry_list_t.start.hpp
│ │ │ │ ├── entry_t.end.hpp
│ │ │ │ ├── entry_t.start.hpp
│ │ │ │ ├── firmware_ramdisk_info_t.end.hpp
│ │ │ │ ├── firmware_ramdisk_info_t.start.hpp
│ │ │ │ ├── options_t.end.hpp
│ │ │ │ ├── options_t.start.hpp
│ │ │ │ ├── record_t.end.hpp
│ │ │ │ └── record_t.start.hpp
│ │ │ ├── options_t.hpp
│ │ │ └── record_t.hpp
│ │ ├── cc/
│ │ │ ├── api.hpp
│ │ │ ├── async_read_context_t.hpp
│ │ │ ├── error_callback_context_t.hpp
│ │ │ ├── external_cache_info_t.hpp
│ │ │ ├── file_sizes_t.hpp
│ │ │ ├── flush_packet_t.hpp
│ │ │ ├── lws_packet_t.hpp
│ │ │ ├── lws_packet_type_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── async_read_context_t.end.hpp
│ │ │ │ ├── async_read_context_t.start.hpp
│ │ │ │ ├── error_callback_context_t.end.hpp
│ │ │ │ ├── error_callback_context_t.start.hpp
│ │ │ │ ├── external_cache_info_t.end.hpp
│ │ │ │ ├── external_cache_info_t.start.hpp
│ │ │ │ ├── file_sizes_t.end.hpp
│ │ │ │ ├── file_sizes_t.start.hpp
│ │ │ │ ├── flush_packet_t.end.hpp
│ │ │ │ ├── flush_packet_t.start.hpp
│ │ │ │ ├── lws_packet_t.end.hpp
│ │ │ │ ├── lws_packet_t.start.hpp
│ │ │ │ ├── numa_node_t.end.hpp
│ │ │ │ ├── numa_node_t.start.hpp
│ │ │ │ ├── partition_t.end.hpp
│ │ │ │ ├── partition_t.start.hpp
│ │ │ │ ├── volume_telemetry_t.end.hpp
│ │ │ │ └── volume_telemetry_t.start.hpp
│ │ │ ├── numa_node_t.hpp
│ │ │ ├── numa_type_t.hpp
│ │ │ ├── partition_t.hpp
│ │ │ └── volume_telemetry_t.hpp
│ │ ├── ci/
│ │ │ ├── api.hpp
│ │ │ ├── flip_present_history_token/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── flip_present_history_token_flip_manager/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── flip_present_history_token_redirected_flip/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── log_mmcss_start_t.hpp
│ │ │ ├── log_mmcss_stop_t.hpp
│ │ │ ├── log_scheduler_event_t.hpp
│ │ │ ├── log_scheduler_sleep_response_t.hpp
│ │ │ ├── log_scheduler_sleep_t.hpp
│ │ │ ├── log_scheduler_wakeup_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── log_mmcss_start_t.end.hpp
│ │ │ │ ├── log_mmcss_start_t.start.hpp
│ │ │ │ ├── log_mmcss_stop_t.end.hpp
│ │ │ │ ├── log_mmcss_stop_t.start.hpp
│ │ │ │ ├── log_scheduler_event_t.end.hpp
│ │ │ │ ├── log_scheduler_event_t.start.hpp
│ │ │ │ ├── log_scheduler_sleep_response_t.end.hpp
│ │ │ │ ├── log_scheduler_sleep_response_t.start.hpp
│ │ │ │ ├── log_scheduler_sleep_t.end.hpp
│ │ │ │ ├── log_scheduler_sleep_t.start.hpp
│ │ │ │ ├── log_scheduler_wakeup_t.end.hpp
│ │ │ │ └── log_scheduler_wakeup_t.start.hpp
│ │ │ ├── ngen_paths_t.hpp
│ │ │ ├── windows_lockdown_mode_t.hpp
│ │ │ └── windows_lockdown_restriction_t.hpp
│ │ ├── cip/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── civ/
│ │ │ ├── channel/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── deserializer/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── generic_serializer/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── mouse_serializer/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── pn_p_create_serializer/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── serializer/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ └── touch_serializer/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── clfs/
│ │ │ ├── api.hpp
│ │ │ ├── context_mode_t.hpp
│ │ │ ├── iostats_class_t.hpp
│ │ │ ├── log_archive_mode_t.hpp
│ │ │ ├── log_name_information_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── log_name_information_t.end.hpp
│ │ │ │ ├── log_name_information_t.start.hpp
│ │ │ │ ├── mgmt_client_registration_t.end.hpp
│ │ │ │ ├── mgmt_client_registration_t.start.hpp
│ │ │ │ ├── mgmt_notification_t.end.hpp
│ │ │ │ ├── mgmt_notification_t.start.hpp
│ │ │ │ ├── mgmt_policy_t.end.hpp
│ │ │ │ ├── mgmt_policy_t.start.hpp
│ │ │ │ ├── node_id_t.end.hpp
│ │ │ │ ├── node_id_t.start.hpp
│ │ │ │ ├── physical_lsn_information_t.end.hpp
│ │ │ │ ├── physical_lsn_information_t.start.hpp
│ │ │ │ ├── stream_id_information_t.end.hpp
│ │ │ │ └── stream_id_information_t.start.hpp
│ │ │ ├── mgmt_client_registration_t.hpp
│ │ │ ├── mgmt_notification_t.hpp
│ │ │ ├── mgmt_notification_type_t.hpp
│ │ │ ├── mgmt_policy_t.hpp
│ │ │ ├── mgmt_policy_type_t.hpp
│ │ │ ├── node_id_t.hpp
│ │ │ ├── physical_lsn_information_t.hpp
│ │ │ └── stream_id_information_t.hpp
│ │ ├── clip/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── cls/
│ │ │ ├── archive_descriptor_t.hpp
│ │ │ ├── container_information_t.hpp
│ │ │ ├── context_mode_t.hpp
│ │ │ ├── information_t.hpp
│ │ │ ├── io_statistics_header_t.hpp
│ │ │ ├── io_statistics_t.hpp
│ │ │ ├── iostats_class_t.hpp
│ │ │ ├── log_information_class_t.hpp
│ │ │ ├── lsn_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── archive_descriptor_t.end.hpp
│ │ │ │ ├── archive_descriptor_t.start.hpp
│ │ │ │ ├── container_information_t.end.hpp
│ │ │ │ ├── container_information_t.start.hpp
│ │ │ │ ├── information_t.end.hpp
│ │ │ │ ├── information_t.start.hpp
│ │ │ │ ├── io_statistics_header_t.end.hpp
│ │ │ │ ├── io_statistics_header_t.start.hpp
│ │ │ │ ├── io_statistics_t.end.hpp
│ │ │ │ ├── io_statistics_t.start.hpp
│ │ │ │ ├── lsn_t.end.hpp
│ │ │ │ ├── lsn_t.start.hpp
│ │ │ │ ├── scan_context_t.end.hpp
│ │ │ │ ├── scan_context_t.start.hpp
│ │ │ │ ├── write_entry_t.end.hpp
│ │ │ │ └── write_entry_t.start.hpp
│ │ │ ├── scan_context_t.hpp
│ │ │ └── write_entry_t.hpp
│ │ ├── cm/
│ │ │ ├── api.hpp
│ │ │ ├── big_data_t.hpp
│ │ │ ├── cached_value_index_t.hpp
│ │ │ ├── cell_remap_block_t.hpp
│ │ │ ├── component_hash_t.hpp
│ │ │ ├── component_information_t.hpp
│ │ │ ├── dirty_vector_log_entry_t.hpp
│ │ │ ├── dirty_vector_log_t.hpp
│ │ │ ├── dirty_vector_operation_t.hpp
│ │ │ ├── disk_geometry_device_data_t.hpp
│ │ │ ├── eisa_function_information_t.hpp
│ │ │ ├── eisa_slot_information_t.hpp
│ │ │ ├── error_control_type_t.hpp
│ │ │ ├── extended_parameter_t.hpp
│ │ │ ├── extended_parameter_type_t.hpp
│ │ │ ├── fast_leaf_hint_t.hpp
│ │ │ ├── floppy_device_data_t.hpp
│ │ │ ├── full_resource_descriptor_t.hpp
│ │ │ ├── hive_cache_oplock_event_type_t.hpp
│ │ │ ├── hive_cache_oplock_file_type_t.hpp
│ │ │ ├── index_hint_block_t.hpp
│ │ │ ├── index_t.hpp
│ │ │ ├── int13_drive_parameter_t.hpp
│ │ │ ├── intent_lock_t.hpp
│ │ │ ├── kcb_layer_info_t.hpp
│ │ │ ├── kcb_uow_t.hpp
│ │ │ ├── key_body_t.hpp
│ │ │ ├── key_control_block_t.hpp
│ │ │ ├── key_hash_t.hpp
│ │ │ ├── key_hash_table_entry_t.hpp
│ │ │ ├── key_index_t.hpp
│ │ │ ├── key_node_t.hpp
│ │ │ ├── key_reference_t.hpp
│ │ │ ├── key_security_cache_entry_t.hpp
│ │ │ ├── key_security_cache_t.hpp
│ │ │ ├── key_security_t.hpp
│ │ │ ├── key_value_t.hpp
│ │ │ ├── keyboard_device_data_t.hpp
│ │ │ ├── load_failure_type_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── big_data_t.end.hpp
│ │ │ │ ├── big_data_t.start.hpp
│ │ │ │ ├── cached_value_index_t.end.hpp
│ │ │ │ ├── cached_value_index_t.start.hpp
│ │ │ │ ├── cell_remap_block_t.end.hpp
│ │ │ │ ├── cell_remap_block_t.start.hpp
│ │ │ │ ├── component_hash_t.end.hpp
│ │ │ │ ├── component_hash_t.start.hpp
│ │ │ │ ├── component_information_t.end.hpp
│ │ │ │ ├── component_information_t.start.hpp
│ │ │ │ ├── dirty_vector_log_entry_t.end.hpp
│ │ │ │ ├── dirty_vector_log_entry_t.start.hpp
│ │ │ │ ├── dirty_vector_log_t.end.hpp
│ │ │ │ ├── dirty_vector_log_t.start.hpp
│ │ │ │ ├── disk_geometry_device_data_t.end.hpp
│ │ │ │ ├── disk_geometry_device_data_t.start.hpp
│ │ │ │ ├── eisa_function_information_t.end.hpp
│ │ │ │ ├── eisa_function_information_t.start.hpp
│ │ │ │ ├── eisa_slot_information_t.end.hpp
│ │ │ │ ├── eisa_slot_information_t.start.hpp
│ │ │ │ ├── extended_parameter_t.end.hpp
│ │ │ │ ├── extended_parameter_t.start.hpp
│ │ │ │ ├── fast_leaf_hint_t.end.hpp
│ │ │ │ ├── fast_leaf_hint_t.start.hpp
│ │ │ │ ├── floppy_device_data_t.end.hpp
│ │ │ │ ├── floppy_device_data_t.start.hpp
│ │ │ │ ├── full_resource_descriptor_t.end.hpp
│ │ │ │ ├── full_resource_descriptor_t.start.hpp
│ │ │ │ ├── index_hint_block_t.end.hpp
│ │ │ │ ├── index_hint_block_t.start.hpp
│ │ │ │ ├── index_t.end.hpp
│ │ │ │ ├── index_t.start.hpp
│ │ │ │ ├── int13_drive_parameter_t.end.hpp
│ │ │ │ ├── int13_drive_parameter_t.start.hpp
│ │ │ │ ├── intent_lock_t.end.hpp
│ │ │ │ ├── intent_lock_t.start.hpp
│ │ │ │ ├── kcb_layer_info_t.end.hpp
│ │ │ │ ├── kcb_layer_info_t.start.hpp
│ │ │ │ ├── kcb_uow_t.end.hpp
│ │ │ │ ├── kcb_uow_t.start.hpp
│ │ │ │ ├── key_body_t.end.hpp
│ │ │ │ ├── key_body_t.start.hpp
│ │ │ │ ├── key_control_block_t.end.hpp
│ │ │ │ ├── key_control_block_t.start.hpp
│ │ │ │ ├── key_hash_t.end.hpp
│ │ │ │ ├── key_hash_t.start.hpp
│ │ │ │ ├── key_hash_table_entry_t.end.hpp
│ │ │ │ ├── key_hash_table_entry_t.start.hpp
│ │ │ │ ├── key_index_t.end.hpp
│ │ │ │ ├── key_index_t.start.hpp
│ │ │ │ ├── key_node_t.end.hpp
│ │ │ │ ├── key_node_t.start.hpp
│ │ │ │ ├── key_reference_t.end.hpp
│ │ │ │ ├── key_reference_t.start.hpp
│ │ │ │ ├── key_security_cache_entry_t.end.hpp
│ │ │ │ ├── key_security_cache_entry_t.start.hpp
│ │ │ │ ├── key_security_cache_t.end.hpp
│ │ │ │ ├── key_security_cache_t.start.hpp
│ │ │ │ ├── key_security_t.end.hpp
│ │ │ │ ├── key_security_t.start.hpp
│ │ │ │ ├── key_value_t.end.hpp
│ │ │ │ ├── key_value_t.start.hpp
│ │ │ │ ├── keyboard_device_data_t.end.hpp
│ │ │ │ ├── keyboard_device_data_t.start.hpp
│ │ │ │ ├── mca_pos_data_t.end.hpp
│ │ │ │ ├── mca_pos_data_t.start.hpp
│ │ │ │ ├── monitor_device_data_t.end.hpp
│ │ │ │ ├── monitor_device_data_t.start.hpp
│ │ │ │ ├── name_control_block_t.end.hpp
│ │ │ │ ├── name_control_block_t.start.hpp
│ │ │ │ ├── name_hash_t.end.hpp
│ │ │ │ ├── name_hash_t.start.hpp
│ │ │ │ ├── notify_block_t.end.hpp
│ │ │ │ ├── notify_block_t.start.hpp
│ │ │ │ ├── parse_debug_info_t.end.hpp
│ │ │ │ ├── parse_debug_info_t.start.hpp
│ │ │ │ ├── partial_resource_descriptor_t.end.hpp
│ │ │ │ ├── partial_resource_descriptor_t.start.hpp
│ │ │ │ ├── partial_resource_list_t.end.hpp
│ │ │ │ ├── partial_resource_list_t.start.hpp
│ │ │ │ ├── path_hash_t.end.hpp
│ │ │ │ ├── path_hash_t.start.hpp
│ │ │ │ ├── pccard_device_data_t.end.hpp
│ │ │ │ ├── pccard_device_data_t.start.hpp
│ │ │ │ ├── perf_counters_t.end.hpp
│ │ │ │ ├── perf_counters_t.start.hpp
│ │ │ │ ├── pnp_bios_device_node_t.end.hpp
│ │ │ │ ├── pnp_bios_device_node_t.start.hpp
│ │ │ │ ├── pnp_bios_installation_check_t.end.hpp
│ │ │ │ ├── pnp_bios_installation_check_t.start.hpp
│ │ │ │ ├── power_data_s_t.end.hpp
│ │ │ │ ├── power_data_s_t.start.hpp
│ │ │ │ ├── resource_list_t.end.hpp
│ │ │ │ ├── resource_list_t.start.hpp
│ │ │ │ ├── rm_t.end.hpp
│ │ │ │ ├── rm_t.start.hpp
│ │ │ │ ├── rom_block_t.end.hpp
│ │ │ │ ├── rom_block_t.start.hpp
│ │ │ │ ├── scsi_device_data_t.end.hpp
│ │ │ │ ├── scsi_device_data_t.start.hpp
│ │ │ │ ├── serial_device_data_t.end.hpp
│ │ │ │ ├── serial_device_data_t.start.hpp
│ │ │ │ ├── sonic_device_data_t.end.hpp
│ │ │ │ ├── sonic_device_data_t.start.hpp
│ │ │ │ ├── trans_ptr_t.end.hpp
│ │ │ │ ├── trans_ptr_t.start.hpp
│ │ │ │ ├── trans_t.end.hpp
│ │ │ │ ├── trans_t.start.hpp
│ │ │ │ ├── uow_key_state_modification_t.end.hpp
│ │ │ │ ├── uow_key_state_modification_t.start.hpp
│ │ │ │ ├── uow_set_sd_data_t.end.hpp
│ │ │ │ ├── uow_set_sd_data_t.start.hpp
│ │ │ │ ├── uow_set_value_key_data_t.end.hpp
│ │ │ │ ├── uow_set_value_key_data_t.start.hpp
│ │ │ │ ├── uow_set_value_list_data_t.end.hpp
│ │ │ │ ├── uow_set_value_list_data_t.start.hpp
│ │ │ │ ├── video_device_data_t.end.hpp
│ │ │ │ ├── video_device_data_t.start.hpp
│ │ │ │ ├── workitem_t.end.hpp
│ │ │ │ └── workitem_t.start.hpp
│ │ │ ├── mca_pos_data_t.hpp
│ │ │ ├── monitor_device_data_t.hpp
│ │ │ ├── name_control_block_t.hpp
│ │ │ ├── name_hash_t.hpp
│ │ │ ├── notify_block_t.hpp
│ │ │ ├── parse_debug_info_t.hpp
│ │ │ ├── partial_resource_descriptor_t.hpp
│ │ │ ├── partial_resource_list_t.hpp
│ │ │ ├── path_hash_t.hpp
│ │ │ ├── pccard_device_data_t.hpp
│ │ │ ├── perf_counters_t.hpp
│ │ │ ├── pnp_bios_device_node_t.hpp
│ │ │ ├── pnp_bios_installation_check_t.hpp
│ │ │ ├── power_data_s_t.hpp
│ │ │ ├── resource_list_t.hpp
│ │ │ ├── rm_t.hpp
│ │ │ ├── rom_block_t.hpp
│ │ │ ├── scsi_device_data_t.hpp
│ │ │ ├── serial_device_data_t.hpp
│ │ │ ├── service_load_type_t.hpp
│ │ │ ├── service_node_type_t.hpp
│ │ │ ├── share_disposition_t.hpp
│ │ │ ├── sonic_device_data_t.hpp
│ │ │ ├── trans_ptr_t.hpp
│ │ │ ├── trans_t.hpp
│ │ │ ├── uow_key_state_modification_t.hpp
│ │ │ ├── uow_set_sd_data_t.hpp
│ │ │ ├── uow_set_value_key_data_t.hpp
│ │ │ ├── uow_set_value_list_data_t.hpp
│ │ │ ├── video_device_data_t.hpp
│ │ │ └── workitem_t.hpp
│ │ ├── cmp/
│ │ │ ├── api.hpp
│ │ │ ├── copy_type_t.hpp
│ │ │ ├── discard_and_replace_kcb_context_t.hpp
│ │ │ ├── failure_injection_point_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── discard_and_replace_kcb_context_t.end.hpp
│ │ │ │ ├── discard_and_replace_kcb_context_t.start.hpp
│ │ │ │ ├── offset_array_t.end.hpp
│ │ │ │ ├── offset_array_t.start.hpp
│ │ │ │ ├── volume_context_t.end.hpp
│ │ │ │ ├── volume_context_t.start.hpp
│ │ │ │ ├── volume_manager_t.end.hpp
│ │ │ │ └── volume_manager_t.start.hpp
│ │ │ ├── offset_array_t.hpp
│ │ │ ├── volume_context_t.hpp
│ │ │ └── volume_manager_t.hpp
│ │ ├── csr/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── csrp/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── d3d/
│ │ │ └── ddi/
│ │ │ ├── allocationinfo2_t.hpp
│ │ │ ├── allocationinfo_t.hpp
│ │ │ ├── allocationlist_t.hpp
│ │ │ ├── color_space_type_t.hpp
│ │ │ ├── createcontextflags_t.hpp
│ │ │ ├── createhwcontextflags_t.hpp
│ │ │ ├── createhwqueueflags_t.hpp
│ │ │ ├── destroypagingqueue_t.hpp
│ │ │ ├── driverescape_translateallocationehandle_t.hpp
│ │ │ ├── driverescape_translateresourcehandle_t.hpp
│ │ │ ├── driverescapetype_t.hpp
│ │ │ ├── dxgi_rgb_t.hpp
│ │ │ ├── escapeflags_t.hpp
│ │ │ ├── evict_flags_t.hpp
│ │ │ ├── flipinterval_type_t.hpp
│ │ │ ├── gamma_ramp_dxgi_1_t.hpp
│ │ │ ├── gamma_ramp_rgb256x3x16_t.hpp
│ │ │ ├── gammaramp_type_t.hpp
│ │ │ ├── getresourcepresentprivatedriverdata_t.hpp
│ │ │ ├── hdr_metadata_hdr10_t.hpp
│ │ │ ├── hdr_metadata_hdr10plus_t.hpp
│ │ │ ├── hdr_metadata_type_t.hpp
│ │ │ ├── kerneloverlayinfo_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── allocationinfo2_t.end.hpp
│ │ │ │ ├── allocationinfo2_t.start.hpp
│ │ │ │ ├── allocationinfo_t.end.hpp
│ │ │ │ ├── allocationinfo_t.start.hpp
│ │ │ │ ├── allocationlist_t.end.hpp
│ │ │ │ ├── allocationlist_t.start.hpp
│ │ │ │ ├── createcontextflags_t.end.hpp
│ │ │ │ ├── createcontextflags_t.start.hpp
│ │ │ │ ├── createhwcontextflags_t.end.hpp
│ │ │ │ ├── createhwcontextflags_t.start.hpp
│ │ │ │ ├── createhwqueueflags_t.end.hpp
│ │ │ │ ├── createhwqueueflags_t.start.hpp
│ │ │ │ ├── destroypagingqueue_t.end.hpp
│ │ │ │ ├── destroypagingqueue_t.start.hpp
│ │ │ │ ├── driverescape_translateallocationehandle_t.end.hpp
│ │ │ │ ├── driverescape_translateallocationehandle_t.start.hpp
│ │ │ │ ├── driverescape_translateresourcehandle_t.end.hpp
│ │ │ │ ├── driverescape_translateresourcehandle_t.start.hpp
│ │ │ │ ├── dxgi_rgb_t.end.hpp
│ │ │ │ ├── dxgi_rgb_t.start.hpp
│ │ │ │ ├── escapeflags_t.end.hpp
│ │ │ │ ├── escapeflags_t.start.hpp
│ │ │ │ ├── evict_flags_t.end.hpp
│ │ │ │ ├── evict_flags_t.start.hpp
│ │ │ │ ├── gamma_ramp_dxgi_1_t.end.hpp
│ │ │ │ ├── gamma_ramp_dxgi_1_t.start.hpp
│ │ │ │ ├── gamma_ramp_rgb256x3x16_t.end.hpp
│ │ │ │ ├── gamma_ramp_rgb256x3x16_t.start.hpp
│ │ │ │ ├── getresourcepresentprivatedriverdata_t.end.hpp
│ │ │ │ ├── getresourcepresentprivatedriverdata_t.start.hpp
│ │ │ │ ├── hdr_metadata_hdr10_t.end.hpp
│ │ │ │ ├── hdr_metadata_hdr10_t.start.hpp
│ │ │ │ ├── hdr_metadata_hdr10plus_t.end.hpp
│ │ │ │ ├── hdr_metadata_hdr10plus_t.start.hpp
│ │ │ │ ├── kerneloverlayinfo_t.end.hpp
│ │ │ │ ├── kerneloverlayinfo_t.start.hpp
│ │ │ │ ├── makeresident_flags_t.end.hpp
│ │ │ │ ├── makeresident_flags_t.start.hpp
│ │ │ │ ├── makeresident_t.end.hpp
│ │ │ │ ├── makeresident_t.start.hpp
│ │ │ │ ├── mapgpuvirtualaddress_t.end.hpp
│ │ │ │ ├── mapgpuvirtualaddress_t.start.hpp
│ │ │ │ ├── multisamplingmethod_t.end.hpp
│ │ │ │ ├── multisamplingmethod_t.start.hpp
│ │ │ │ ├── offer_flags_t.end.hpp
│ │ │ │ ├── offer_flags_t.start.hpp
│ │ │ │ ├── openallocationinfo2_t.end.hpp
│ │ │ │ ├── openallocationinfo2_t.start.hpp
│ │ │ │ ├── openallocationinfo_t.end.hpp
│ │ │ │ ├── openallocationinfo_t.start.hpp
│ │ │ │ ├── patchlocationlist_t.end.hpp
│ │ │ │ ├── patchlocationlist_t.start.hpp
│ │ │ │ ├── queryregistry_flags_t.end.hpp
│ │ │ │ ├── queryregistry_flags_t.start.hpp
│ │ │ │ ├── queryregistry_info_t.end.hpp
│ │ │ │ ├── queryregistry_info_t.start.hpp
│ │ │ │ ├── rational_t.end.hpp
│ │ │ │ ├── rational_t.start.hpp
│ │ │ │ ├── reservegpuvirtualaddress_t.end.hpp
│ │ │ │ ├── reservegpuvirtualaddress_t.start.hpp
│ │ │ │ ├── resourceflags2_t.end.hpp
│ │ │ │ ├── resourceflags2_t.start.hpp
│ │ │ │ ├── resourceflags_t.end.hpp
│ │ │ │ ├── resourceflags_t.start.hpp
│ │ │ │ ├── segmentpreference_t.end.hpp
│ │ │ │ ├── segmentpreference_t.start.hpp
│ │ │ │ ├── surfaceinfo_t.end.hpp
│ │ │ │ ├── surfaceinfo_t.start.hpp
│ │ │ │ ├── synchronizationobject_flags_t.end.hpp
│ │ │ │ ├── synchronizationobject_flags_t.start.hpp
│ │ │ │ ├── synchronizationobjectinfo2_t.end.hpp
│ │ │ │ ├── synchronizationobjectinfo2_t.start.hpp
│ │ │ │ ├── synchronizationobjectinfo_t.end.hpp
│ │ │ │ ├── synchronizationobjectinfo_t.start.hpp
│ │ │ │ ├── trimresidencyset_flags_t.end.hpp
│ │ │ │ ├── trimresidencyset_flags_t.start.hpp
│ │ │ │ ├── updateallocproperty_flags_t.end.hpp
│ │ │ │ ├── updateallocproperty_flags_t.start.hpp
│ │ │ │ ├── updateallocproperty_t.end.hpp
│ │ │ │ ├── updateallocproperty_t.start.hpp
│ │ │ │ ├── updategpuvirtualaddress_operation_t.end.hpp
│ │ │ │ ├── updategpuvirtualaddress_operation_t.start.hpp
│ │ │ │ ├── waitforsynchronizationobjectfromcpu_flags_t.end.hpp
│ │ │ │ └── waitforsynchronizationobjectfromcpu_flags_t.start.hpp
│ │ │ ├── makeresident_flags_t.hpp
│ │ │ ├── makeresident_t.hpp
│ │ │ ├── mapgpuvirtualaddress_t.hpp
│ │ │ ├── multisamplingmethod_t.hpp
│ │ │ ├── offer_flags_t.hpp
│ │ │ ├── offer_priority_t.hpp
│ │ │ ├── openallocationinfo2_t.hpp
│ │ │ ├── openallocationinfo_t.hpp
│ │ │ ├── output_wire_color_space_type_t.hpp
│ │ │ ├── pagingqueue_priority_t.hpp
│ │ │ ├── patchlocationlist_t.hpp
│ │ │ ├── pool_t.hpp
│ │ │ ├── queryregistry_flags_t.hpp
│ │ │ ├── queryregistry_info_t.hpp
│ │ │ ├── queryregistry_status_t.hpp
│ │ │ ├── queryregistry_type_t.hpp
│ │ │ ├── rational_t.hpp
│ │ │ ├── reclaim_result_t.hpp
│ │ │ ├── reservegpuvirtualaddress_t.hpp
│ │ │ ├── resourceflags2_t.hpp
│ │ │ ├── resourceflags_t.hpp
│ │ │ ├── rotation_t.hpp
│ │ │ ├── scanlineordering_t.hpp
│ │ │ ├── segmentpreference_t.hpp
│ │ │ ├── surfaceinfo_t.hpp
│ │ │ ├── synchronizationobject_flags_t.hpp
│ │ │ ├── synchronizationobject_type_t.hpp
│ │ │ ├── synchronizationobjectinfo2_t.hpp
│ │ │ ├── synchronizationobjectinfo_t.hpp
│ │ │ ├── trimresidencyset_flags_t.hpp
│ │ │ ├── updateallocproperty_flags_t.hpp
│ │ │ ├── updateallocproperty_t.hpp
│ │ │ ├── updategpuvirtualaddress_operation_t.hpp
│ │ │ ├── updategpuvirtualaddress_operation_type_t.hpp
│ │ │ ├── video_signal_scanline_ordering_t.hpp
│ │ │ └── waitforsynchronizationobjectfromcpu_flags_t.hpp
│ │ ├── d3dk/
│ │ │ ├── mdt/
│ │ │ │ ├── _2dregion_t.hpp
│ │ │ │ ├── _3x4_colorspace_transform_t.hpp
│ │ │ │ ├── api.hpp
│ │ │ │ ├── color_basis_t.hpp
│ │ │ │ ├── color_coeff_dynamic_ranges_t.hpp
│ │ │ │ ├── colorspace_transform_matrix_v2_t.hpp
│ │ │ │ ├── colorspace_transform_stage_control_t.hpp
│ │ │ │ ├── compute_preemption_granularity_t.hpp
│ │ │ │ ├── displaymode_flags_t.hpp
│ │ │ │ ├── enumcofuncmodality_pivot_type_t.hpp
│ │ │ │ ├── frequency_range_t.hpp
│ │ │ │ ├── gamma_ramp_t.hpp
│ │ │ │ ├── gdisurfacedata_t.hpp
│ │ │ │ ├── gdisurfaceflags_t.hpp
│ │ │ │ ├── gdisurfacetype_t.hpp
│ │ │ │ ├── graphics_preemption_granularity_t.hpp
│ │ │ │ ├── graphics_rendering_format_t.hpp
│ │ │ │ ├── gtfcompliance_t.hpp
│ │ │ │ ├── hmonitordescriptorset_t.hpp
│ │ │ │ ├── hmonitorfrequencyrangeset_t.hpp
│ │ │ │ ├── hmonitorsourcemodeset_t.hpp
│ │ │ │ ├── hvideopresentsourceset_t.hpp
│ │ │ │ ├── hvideopresenttargetset_t.hpp
│ │ │ │ ├── hvidpn_t.hpp
│ │ │ │ ├── hvidpnsourcemodeset_t.hpp
│ │ │ │ ├── hvidpntargetmodeset_t.hpp
│ │ │ │ ├── hvidpntopology_t.hpp
│ │ │ │ ├── magic/
│ │ │ │ │ ├── _2dregion_t.end.hpp
│ │ │ │ │ ├── _2dregion_t.start.hpp
│ │ │ │ │ ├── _3x4_colorspace_transform_t.end.hpp
│ │ │ │ │ ├── _3x4_colorspace_transform_t.start.hpp
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ ├── api.start.hpp
│ │ │ │ │ ├── color_coeff_dynamic_ranges_t.end.hpp
│ │ │ │ │ ├── color_coeff_dynamic_ranges_t.start.hpp
│ │ │ │ │ ├── colorspace_transform_matrix_v2_t.end.hpp
│ │ │ │ │ ├── colorspace_transform_matrix_v2_t.start.hpp
│ │ │ │ │ ├── displaymode_flags_t.end.hpp
│ │ │ │ │ ├── displaymode_flags_t.start.hpp
│ │ │ │ │ ├── frequency_range_t.end.hpp
│ │ │ │ │ ├── frequency_range_t.start.hpp
│ │ │ │ │ ├── gamma_ramp_t.end.hpp
│ │ │ │ │ ├── gamma_ramp_t.start.hpp
│ │ │ │ │ ├── gdisurfacedata_t.end.hpp
│ │ │ │ │ ├── gdisurfacedata_t.start.hpp
│ │ │ │ │ ├── gdisurfaceflags_t.end.hpp
│ │ │ │ │ ├── gdisurfaceflags_t.start.hpp
│ │ │ │ │ ├── graphics_rendering_format_t.end.hpp
│ │ │ │ │ ├── graphics_rendering_format_t.start.hpp
│ │ │ │ │ ├── monitor_descriptor_t.end.hpp
│ │ │ │ │ ├── monitor_descriptor_t.start.hpp
│ │ │ │ │ ├── monitor_frequency_range_t.end.hpp
│ │ │ │ │ ├── monitor_frequency_range_t.start.hpp
│ │ │ │ │ ├── monitor_source_mode_t.end.hpp
│ │ │ │ │ ├── monitor_source_mode_t.start.hpp
│ │ │ │ │ ├── palettedata_t.end.hpp
│ │ │ │ │ ├── palettedata_t.start.hpp
│ │ │ │ │ ├── preemption_caps_t.end.hpp
│ │ │ │ │ ├── preemption_caps_t.start.hpp
│ │ │ │ │ ├── shadowsurfacedata_t.end.hpp
│ │ │ │ │ ├── shadowsurfacedata_t.start.hpp
│ │ │ │ │ ├── sharedprimarysurfacedata_t.end.hpp
│ │ │ │ │ ├── sharedprimarysurfacedata_t.start.hpp
│ │ │ │ │ ├── stagingsurfacedata_t.end.hpp
│ │ │ │ │ ├── stagingsurfacedata_t.start.hpp
│ │ │ │ │ ├── video_present_source_t.end.hpp
│ │ │ │ │ ├── video_present_source_t.start.hpp
│ │ │ │ │ ├── video_present_target_t.end.hpp
│ │ │ │ │ ├── video_present_target_t.start.hpp
│ │ │ │ │ ├── video_signal_info_t.end.hpp
│ │ │ │ │ ├── video_signal_info_t.start.hpp
│ │ │ │ │ ├── vidpn_hw_capability_t.end.hpp
│ │ │ │ │ ├── vidpn_hw_capability_t.start.hpp
│ │ │ │ │ ├── vidpn_present_path_copyprotection_support_t.end.hpp
│ │ │ │ │ ├── vidpn_present_path_copyprotection_support_t.start.hpp
│ │ │ │ │ ├── vidpn_present_path_copyprotection_t.end.hpp
│ │ │ │ │ ├── vidpn_present_path_copyprotection_t.start.hpp
│ │ │ │ │ ├── vidpn_present_path_rotation_support_t.end.hpp
│ │ │ │ │ ├── vidpn_present_path_rotation_support_t.start.hpp
│ │ │ │ │ ├── vidpn_present_path_scaling_support_t.end.hpp
│ │ │ │ │ ├── vidpn_present_path_scaling_support_t.start.hpp
│ │ │ │ │ ├── vidpn_present_path_t.end.hpp
│ │ │ │ │ ├── vidpn_present_path_t.start.hpp
│ │ │ │ │ ├── vidpn_present_path_transformation_t.end.hpp
│ │ │ │ │ ├── vidpn_present_path_transformation_t.start.hpp
│ │ │ │ │ ├── vidpn_source_mode_t.end.hpp
│ │ │ │ │ ├── vidpn_source_mode_t.start.hpp
│ │ │ │ │ ├── vidpn_target_mode_t.end.hpp
│ │ │ │ │ ├── vidpn_target_mode_t.start.hpp
│ │ │ │ │ ├── virtualgpusurfacedata_t.end.hpp
│ │ │ │ │ ├── virtualgpusurfacedata_t.start.hpp
│ │ │ │ │ ├── wire_format_and_preference_t.end.hpp
│ │ │ │ │ └── wire_format_and_preference_t.start.hpp
│ │ │ │ ├── mode_preference_t.hpp
│ │ │ │ ├── mode_pruning_reason_t.hpp
│ │ │ │ ├── monitor_capabilities_origin_t.hpp
│ │ │ │ ├── monitor_connectivity_checks_t.hpp
│ │ │ │ ├── monitor_descriptor_t.hpp
│ │ │ │ ├── monitor_descriptor_type_t.hpp
│ │ │ │ ├── monitor_frequency_range_constraint_t.hpp
│ │ │ │ ├── monitor_frequency_range_t.hpp
│ │ │ │ ├── monitor_orientation_awareness_t.hpp
│ │ │ │ ├── monitor_orientation_t.hpp
│ │ │ │ ├── monitor_source_mode_t.hpp
│ │ │ │ ├── monitor_timing_type_t.hpp
│ │ │ │ ├── palettedata_t.hpp
│ │ │ │ ├── pixel_value_access_mode_t.hpp
│ │ │ │ ├── preemption_caps_t.hpp
│ │ │ │ ├── shadowsurfacedata_t.hpp
│ │ │ │ ├── sharedprimarysurfacedata_t.hpp
│ │ │ │ ├── stagingsurfacedata_t.hpp
│ │ │ │ ├── standardallocation_type_t.hpp
│ │ │ │ ├── text_rendering_format_t.hpp
│ │ │ │ ├── video_output_technology_t.hpp
│ │ │ │ ├── video_present_source_t.hpp
│ │ │ │ ├── video_present_target_t.hpp
│ │ │ │ ├── video_signal_info_t.hpp
│ │ │ │ ├── video_signal_standard_t.hpp
│ │ │ │ ├── vidpn_hw_capability_t.hpp
│ │ │ │ ├── vidpn_present_path_content_t.hpp
│ │ │ │ ├── vidpn_present_path_copyprotection_support_t.hpp
│ │ │ │ ├── vidpn_present_path_copyprotection_t.hpp
│ │ │ │ ├── vidpn_present_path_copyprotection_type_t.hpp
│ │ │ │ ├── vidpn_present_path_importance_t.hpp
│ │ │ │ ├── vidpn_present_path_rotation_support_t.hpp
│ │ │ │ ├── vidpn_present_path_rotation_t.hpp
│ │ │ │ ├── vidpn_present_path_scaling_support_t.hpp
│ │ │ │ ├── vidpn_present_path_scaling_t.hpp
│ │ │ │ ├── vidpn_present_path_t.hpp
│ │ │ │ ├── vidpn_present_path_transformation_t.hpp
│ │ │ │ ├── vidpn_source_mode_t.hpp
│ │ │ │ ├── vidpn_source_mode_type_t.hpp
│ │ │ │ ├── vidpn_target_mode_t.hpp
│ │ │ │ ├── virtualgpusurfacedata_t.hpp
│ │ │ │ └── wire_format_and_preference_t.hpp
│ │ │ └── mt/
│ │ │ ├── acquirekeyedmutex2_t.hpp
│ │ │ ├── acquirekeyedmutex_t.hpp
│ │ │ ├── activate_specific_diag_escape_t.hpp
│ │ │ ├── activate_specific_diag_type_t.hpp
│ │ │ ├── adapter_perfdata_t.hpp
│ │ │ ├── adapter_perfdatacaps_t.hpp
│ │ │ ├── adapter_verifier_option_data_t.hpp
│ │ │ ├── adapter_verifier_option_t.hpp
│ │ │ ├── adapter_verifier_option_type_t.hpp
│ │ │ ├── adapter_verifier_vidmm_flags_t.hpp
│ │ │ ├── adapter_verifier_vidmm_trim_interval_t.hpp
│ │ │ ├── adapteraddress_t.hpp
│ │ │ ├── adapterinfo_t.hpp
│ │ │ ├── adapterregistryinfo_t.hpp
│ │ │ ├── adaptertype_t.hpp
│ │ │ ├── adjustfullscreengamma_t.hpp
│ │ │ ├── allocationresidencystatus_t.hpp
│ │ │ ├── bddfallback_ctl_t.hpp
│ │ │ ├── blocklist_info_t.hpp
│ │ │ ├── bltmodel_presenthistorytoken_t.hpp
│ │ │ ├── brightness_info_t.hpp
│ │ │ ├── brightness_info_type_t.hpp
│ │ │ ├── brightness_possible_levels_t.hpp
│ │ │ ├── budgetchangenotification_t.hpp
│ │ │ ├── changesurfacepointer_t.hpp
│ │ │ ├── changevideommemoryreservation_t.hpp
│ │ │ ├── check_multiplane_overlay_plane2_t.hpp
│ │ │ ├── check_multiplane_overlay_plane3_t.hpp
│ │ │ ├── check_multiplane_overlay_plane_t.hpp
│ │ │ ├── check_multiplane_overlay_support_return_info_t.hpp
│ │ │ ├── checkmonitorpowerstate_t.hpp
│ │ │ ├── checkmultiplaneoverlaysupport2_t.hpp
│ │ │ ├── checkmultiplaneoverlaysupport3_t.hpp
│ │ │ ├── checkmultiplaneoverlaysupport_t.hpp
│ │ │ ├── checkocclusion_t.hpp
│ │ │ ├── checksharedresourceaccess_t.hpp
│ │ │ ├── checkvidpnexclusiveownership_t.hpp
│ │ │ ├── clienthint_t.hpp
│ │ │ ├── closeadapter_t.hpp
│ │ │ ├── composition_presenthistorytoken_t.hpp
│ │ │ ├── configuresharedresource_t.hpp
│ │ │ ├── cpdrivername_t.hpp
│ │ │ ├── create_outputdupl_t.hpp
│ │ │ ├── createallocation_t.hpp
│ │ │ ├── createallocationflags_t.hpp
│ │ │ ├── createcontext_t.hpp
│ │ │ ├── createcontextvirtual_t.hpp
│ │ │ ├── createdcfrommemory_t.hpp
│ │ │ ├── createdevice_t.hpp
│ │ │ ├── createdeviceflags_t.hpp
│ │ │ ├── createhwcontext_t.hpp
│ │ │ ├── createhwqueue_t.hpp
│ │ │ ├── createkeyedmutex2_flags_t.hpp
│ │ │ ├── createkeyedmutex2_t.hpp
│ │ │ ├── createkeyedmutex_t.hpp
│ │ │ ├── createoverlay_t.hpp
│ │ │ ├── createpagingqueue_t.hpp
│ │ │ ├── createprotectedsession_t.hpp
│ │ │ ├── createstandardallocation_t.hpp
│ │ │ ├── createstandardallocationflags_t.hpp
│ │ │ ├── createsynchronizationobject2_t.hpp
│ │ │ ├── createsynchronizationobject_t.hpp
│ │ │ ├── currentdisplaymode_t.hpp
│ │ │ ├── debug_snapshot_escape_t.hpp
│ │ │ ├── defrag_escape_operation_t.hpp
│ │ │ ├── destroy_outputdupl_t.hpp
│ │ │ ├── destroyallocation2_t.hpp
│ │ │ ├── destroyallocation_t.hpp
│ │ │ ├── destroycontext_t.hpp
│ │ │ ├── destroydcfrommemory_t.hpp
│ │ │ ├── destroydevice_t.hpp
│ │ │ ├── destroyhwcontext_t.hpp
│ │ │ ├── destroyhwqueue_t.hpp
│ │ │ ├── destroykeyedmutex_t.hpp
│ │ │ ├── destroyoverlay_t.hpp
│ │ │ ├── destroyprotectedsession_t.hpp
│ │ │ ├── destroysynchronizationobject_t.hpp
│ │ │ ├── device_error_reason_t.hpp
│ │ │ ├── device_escape_t.hpp
│ │ │ ├── device_ids_t.hpp
│ │ │ ├── deviceescape_type_t.hpp
│ │ │ ├── deviceexecution_state_t.hpp
│ │ │ ├── devicepagefault_state_t.hpp
│ │ │ ├── devicepresent_queue_state_t.hpp
│ │ │ ├── devicepresent_state_dwm_t.hpp
│ │ │ ├── devicepresent_state_t.hpp
│ │ │ ├── devicereset_state_t.hpp
│ │ │ ├── devicestate_type_t.hpp
│ │ │ ├── directflip_support_t.hpp
│ │ │ ├── dirtyregions_t.hpp
│ │ │ ├── display_umd_filenameinfo_t.hpp
│ │ │ ├── displaymode_t.hpp
│ │ │ ├── displaymodelist_t.hpp
│ │ │ ├── dlist_driver_name_t.hpp
│ │ │ ├── dmm_escape_t.hpp
│ │ │ ├── dmmescapetype_t.hpp
│ │ │ ├── dod_set_dirtyrect_mode_t.hpp
│ │ │ ├── driver_description_t.hpp
│ │ │ ├── drivercaps_ext_t.hpp
│ │ │ ├── enumadapters2_t.hpp
│ │ │ ├── enumadapters3_t.hpp
│ │ │ ├── enumadapters_filter_t.hpp
│ │ │ ├── enumadapters_t.hpp
│ │ │ ├── escape_pfn_control_command_t.hpp
│ │ │ ├── escape_t.hpp
│ │ │ ├── escapetype_t.hpp
│ │ │ ├── evict_t.hpp
│ │ │ ├── eviction_criteria_t.hpp
│ │ │ ├── fence_presenthistorytoken_t.hpp
│ │ │ ├── flipinfoflags_t.hpp
│ │ │ ├── flipmanager_presenthistorytoken_t.hpp
│ │ │ ├── flipmodel_independent_flip_stage_t.hpp
│ │ │ ├── flipmodel_presenthistorytoken_t.hpp
│ │ │ ├── flipmodel_presenthistorytokenflags_t.hpp
│ │ │ ├── flipoverlay_t.hpp
│ │ │ ├── flipqueueinfo_t.hpp
│ │ │ ├── flushheaptransitions_t.hpp
│ │ │ ├── freegpuvirtualaddress_t.hpp
│ │ │ ├── gdimodel_presenthistorytoken_t.hpp
│ │ │ ├── gdimodel_sysmem_presenthistorytoken_t.hpp
│ │ │ ├── get_device_vidpn_ownership_info_t.hpp
│ │ │ ├── get_gpummu_caps_t.hpp
│ │ │ ├── get_multiplane_overlay_caps_t.hpp
│ │ │ ├── get_post_composition_caps_t.hpp
│ │ │ ├── get_pte_t.hpp
│ │ │ ├── get_segment_caps_t.hpp
│ │ │ ├── getallocationpriority_t.hpp
│ │ │ ├── getcontextinprocessschedulingpriority_t.hpp
│ │ │ ├── getcontextschedulingpriority_t.hpp
│ │ │ ├── getdevicestate_t.hpp
│ │ │ ├── getdisplaymodelist_t.hpp
│ │ │ ├── getmultisamplemethodlist_t.hpp
│ │ │ ├── getoverlaystate_t.hpp
│ │ │ ├── getpresenthistory_t.hpp
│ │ │ ├── getprocessdeviceremovalsupport_t.hpp
│ │ │ ├── getruntimedata_t.hpp
│ │ │ ├── getscanline_t.hpp
│ │ │ ├── getsharedprimaryhandle_t.hpp
│ │ │ ├── getsharedresourceadapterluid_t.hpp
│ │ │ ├── getverticalblankevent_t.hpp
│ │ │ ├── gpu_preference_query_state_t.hpp
│ │ │ ├── gpu_preference_query_type_t.hpp
│ │ │ ├── gpummu_caps_t.hpp
│ │ │ ├── gpuversion_t.hpp
│ │ │ ├── history_buffer_status_t.hpp
│ │ │ ├── hwdrm_support_t.hpp
│ │ │ ├── hybrid_list_t.hpp
│ │ │ ├── independentflip_secondary_support_t.hpp
│ │ │ ├── independentflip_support_t.hpp
│ │ │ ├── invalidateactivevidpn_t.hpp
│ │ │ ├── invalidatecache_t.hpp
│ │ │ ├── isbaddriverforhwprotectiondisabled_t.hpp
│ │ │ ├── kmd_driver_version_t.hpp
│ │ │ ├── lock2_t.hpp
│ │ │ ├── lock_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── acquirekeyedmutex2_t.end.hpp
│ │ │ │ ├── acquirekeyedmutex2_t.start.hpp
│ │ │ │ ├── acquirekeyedmutex_t.end.hpp
│ │ │ │ ├── acquirekeyedmutex_t.start.hpp
│ │ │ │ ├── activate_specific_diag_escape_t.end.hpp
│ │ │ │ ├── activate_specific_diag_escape_t.start.hpp
│ │ │ │ ├── adapter_perfdata_t.end.hpp
│ │ │ │ ├── adapter_perfdata_t.start.hpp
│ │ │ │ ├── adapter_perfdatacaps_t.end.hpp
│ │ │ │ ├── adapter_perfdatacaps_t.start.hpp
│ │ │ │ ├── adapter_verifier_option_data_t.end.hpp
│ │ │ │ ├── adapter_verifier_option_data_t.start.hpp
│ │ │ │ ├── adapter_verifier_option_t.end.hpp
│ │ │ │ ├── adapter_verifier_option_t.start.hpp
│ │ │ │ ├── adapter_verifier_vidmm_flags_t.end.hpp
│ │ │ │ ├── adapter_verifier_vidmm_flags_t.start.hpp
│ │ │ │ ├── adapter_verifier_vidmm_trim_interval_t.end.hpp
│ │ │ │ ├── adapter_verifier_vidmm_trim_interval_t.start.hpp
│ │ │ │ ├── adapteraddress_t.end.hpp
│ │ │ │ ├── adapteraddress_t.start.hpp
│ │ │ │ ├── adapterinfo_t.end.hpp
│ │ │ │ ├── adapterinfo_t.start.hpp
│ │ │ │ ├── adapterregistryinfo_t.end.hpp
│ │ │ │ ├── adapterregistryinfo_t.start.hpp
│ │ │ │ ├── adaptertype_t.end.hpp
│ │ │ │ ├── adaptertype_t.start.hpp
│ │ │ │ ├── adjustfullscreengamma_t.end.hpp
│ │ │ │ ├── adjustfullscreengamma_t.start.hpp
│ │ │ │ ├── bddfallback_ctl_t.end.hpp
│ │ │ │ ├── bddfallback_ctl_t.start.hpp
│ │ │ │ ├── blocklist_info_t.end.hpp
│ │ │ │ ├── blocklist_info_t.start.hpp
│ │ │ │ ├── bltmodel_presenthistorytoken_t.end.hpp
│ │ │ │ ├── bltmodel_presenthistorytoken_t.start.hpp
│ │ │ │ ├── brightness_info_t.end.hpp
│ │ │ │ ├── brightness_info_t.start.hpp
│ │ │ │ ├── brightness_possible_levels_t.end.hpp
│ │ │ │ ├── brightness_possible_levels_t.start.hpp
│ │ │ │ ├── budgetchangenotification_t.end.hpp
│ │ │ │ ├── budgetchangenotification_t.start.hpp
│ │ │ │ ├── changesurfacepointer_t.end.hpp
│ │ │ │ ├── changesurfacepointer_t.start.hpp
│ │ │ │ ├── changevideommemoryreservation_t.end.hpp
│ │ │ │ ├── changevideommemoryreservation_t.start.hpp
│ │ │ │ ├── check_multiplane_overlay_plane2_t.end.hpp
│ │ │ │ ├── check_multiplane_overlay_plane2_t.start.hpp
│ │ │ │ ├── check_multiplane_overlay_plane3_t.end.hpp
│ │ │ │ ├── check_multiplane_overlay_plane3_t.start.hpp
│ │ │ │ ├── check_multiplane_overlay_plane_t.end.hpp
│ │ │ │ ├── check_multiplane_overlay_plane_t.start.hpp
│ │ │ │ ├── check_multiplane_overlay_support_return_info_t.end.hpp
│ │ │ │ ├── check_multiplane_overlay_support_return_info_t.start.hpp
│ │ │ │ ├── checkmonitorpowerstate_t.end.hpp
│ │ │ │ ├── checkmonitorpowerstate_t.start.hpp
│ │ │ │ ├── checkmultiplaneoverlaysupport2_t.end.hpp
│ │ │ │ ├── checkmultiplaneoverlaysupport2_t.start.hpp
│ │ │ │ ├── checkmultiplaneoverlaysupport3_t.end.hpp
│ │ │ │ ├── checkmultiplaneoverlaysupport3_t.start.hpp
│ │ │ │ ├── checkmultiplaneoverlaysupport_t.end.hpp
│ │ │ │ ├── checkmultiplaneoverlaysupport_t.start.hpp
│ │ │ │ ├── checkocclusion_t.end.hpp
│ │ │ │ ├── checkocclusion_t.start.hpp
│ │ │ │ ├── checksharedresourceaccess_t.end.hpp
│ │ │ │ ├── checksharedresourceaccess_t.start.hpp
│ │ │ │ ├── checkvidpnexclusiveownership_t.end.hpp
│ │ │ │ ├── checkvidpnexclusiveownership_t.start.hpp
│ │ │ │ ├── closeadapter_t.end.hpp
│ │ │ │ ├── closeadapter_t.start.hpp
│ │ │ │ ├── composition_presenthistorytoken_t.end.hpp
│ │ │ │ ├── composition_presenthistorytoken_t.start.hpp
│ │ │ │ ├── configuresharedresource_t.end.hpp
│ │ │ │ ├── configuresharedresource_t.start.hpp
│ │ │ │ ├── cpdrivername_t.end.hpp
│ │ │ │ ├── cpdrivername_t.start.hpp
│ │ │ │ ├── create_outputdupl_t.end.hpp
│ │ │ │ ├── create_outputdupl_t.start.hpp
│ │ │ │ ├── createallocation_t.end.hpp
│ │ │ │ ├── createallocation_t.start.hpp
│ │ │ │ ├── createallocationflags_t.end.hpp
│ │ │ │ ├── createallocationflags_t.start.hpp
│ │ │ │ ├── createcontext_t.end.hpp
│ │ │ │ ├── createcontext_t.start.hpp
│ │ │ │ ├── createcontextvirtual_t.end.hpp
│ │ │ │ ├── createcontextvirtual_t.start.hpp
│ │ │ │ ├── createdcfrommemory_t.end.hpp
│ │ │ │ ├── createdcfrommemory_t.start.hpp
│ │ │ │ ├── createdevice_t.end.hpp
│ │ │ │ ├── createdevice_t.start.hpp
│ │ │ │ ├── createdeviceflags_t.end.hpp
│ │ │ │ ├── createdeviceflags_t.start.hpp
│ │ │ │ ├── createhwcontext_t.end.hpp
│ │ │ │ ├── createhwcontext_t.start.hpp
│ │ │ │ ├── createhwqueue_t.end.hpp
│ │ │ │ ├── createhwqueue_t.start.hpp
│ │ │ │ ├── createkeyedmutex2_flags_t.end.hpp
│ │ │ │ ├── createkeyedmutex2_flags_t.start.hpp
│ │ │ │ ├── createkeyedmutex2_t.end.hpp
│ │ │ │ ├── createkeyedmutex2_t.start.hpp
│ │ │ │ ├── createkeyedmutex_t.end.hpp
│ │ │ │ ├── createkeyedmutex_t.start.hpp
│ │ │ │ ├── createoverlay_t.end.hpp
│ │ │ │ ├── createoverlay_t.start.hpp
│ │ │ │ ├── createpagingqueue_t.end.hpp
│ │ │ │ ├── createpagingqueue_t.start.hpp
│ │ │ │ ├── createprotectedsession_t.end.hpp
│ │ │ │ ├── createprotectedsession_t.start.hpp
│ │ │ │ ├── createstandardallocation_t.end.hpp
│ │ │ │ ├── createstandardallocation_t.start.hpp
│ │ │ │ ├── createstandardallocationflags_t.end.hpp
│ │ │ │ ├── createstandardallocationflags_t.start.hpp
│ │ │ │ ├── createsynchronizationobject2_t.end.hpp
│ │ │ │ ├── createsynchronizationobject2_t.start.hpp
│ │ │ │ ├── createsynchronizationobject_t.end.hpp
│ │ │ │ ├── createsynchronizationobject_t.start.hpp
│ │ │ │ ├── currentdisplaymode_t.end.hpp
│ │ │ │ ├── currentdisplaymode_t.start.hpp
│ │ │ │ ├── debug_snapshot_escape_t.end.hpp
│ │ │ │ ├── debug_snapshot_escape_t.start.hpp
│ │ │ │ ├── destroy_outputdupl_t.end.hpp
│ │ │ │ ├── destroy_outputdupl_t.start.hpp
│ │ │ │ ├── destroyallocation2_t.end.hpp
│ │ │ │ ├── destroyallocation2_t.start.hpp
│ │ │ │ ├── destroyallocation_t.end.hpp
│ │ │ │ ├── destroyallocation_t.start.hpp
│ │ │ │ ├── destroycontext_t.end.hpp
│ │ │ │ ├── destroycontext_t.start.hpp
│ │ │ │ ├── destroydcfrommemory_t.end.hpp
│ │ │ │ ├── destroydcfrommemory_t.start.hpp
│ │ │ │ ├── destroydevice_t.end.hpp
│ │ │ │ ├── destroydevice_t.start.hpp
│ │ │ │ ├── destroyhwcontext_t.end.hpp
│ │ │ │ ├── destroyhwcontext_t.start.hpp
│ │ │ │ ├── destroyhwqueue_t.end.hpp
│ │ │ │ ├── destroyhwqueue_t.start.hpp
│ │ │ │ ├── destroykeyedmutex_t.end.hpp
│ │ │ │ ├── destroykeyedmutex_t.start.hpp
│ │ │ │ ├── destroyoverlay_t.end.hpp
│ │ │ │ ├── destroyoverlay_t.start.hpp
│ │ │ │ ├── destroyprotectedsession_t.end.hpp
│ │ │ │ ├── destroyprotectedsession_t.start.hpp
│ │ │ │ ├── destroysynchronizationobject_t.end.hpp
│ │ │ │ ├── destroysynchronizationobject_t.start.hpp
│ │ │ │ ├── device_escape_t.end.hpp
│ │ │ │ ├── device_escape_t.start.hpp
│ │ │ │ ├── device_ids_t.end.hpp
│ │ │ │ ├── device_ids_t.start.hpp
│ │ │ │ ├── devicepagefault_state_t.end.hpp
│ │ │ │ ├── devicepagefault_state_t.start.hpp
│ │ │ │ ├── devicepresent_queue_state_t.end.hpp
│ │ │ │ ├── devicepresent_queue_state_t.start.hpp
│ │ │ │ ├── devicepresent_state_dwm_t.end.hpp
│ │ │ │ ├── devicepresent_state_dwm_t.start.hpp
│ │ │ │ ├── devicepresent_state_t.end.hpp
│ │ │ │ ├── devicepresent_state_t.start.hpp
│ │ │ │ ├── devicereset_state_t.end.hpp
│ │ │ │ ├── devicereset_state_t.start.hpp
│ │ │ │ ├── directflip_support_t.end.hpp
│ │ │ │ ├── directflip_support_t.start.hpp
│ │ │ │ ├── dirtyregions_t.end.hpp
│ │ │ │ ├── dirtyregions_t.start.hpp
│ │ │ │ ├── display_umd_filenameinfo_t.end.hpp
│ │ │ │ ├── display_umd_filenameinfo_t.start.hpp
│ │ │ │ ├── displaymode_t.end.hpp
│ │ │ │ ├── displaymode_t.start.hpp
│ │ │ │ ├── displaymodelist_t.end.hpp
│ │ │ │ ├── displaymodelist_t.start.hpp
│ │ │ │ ├── dlist_driver_name_t.end.hpp
│ │ │ │ ├── dlist_driver_name_t.start.hpp
│ │ │ │ ├── dmm_escape_t.end.hpp
│ │ │ │ ├── dmm_escape_t.start.hpp
│ │ │ │ ├── dod_set_dirtyrect_mode_t.end.hpp
│ │ │ │ ├── dod_set_dirtyrect_mode_t.start.hpp
│ │ │ │ ├── driver_description_t.end.hpp
│ │ │ │ ├── driver_description_t.start.hpp
│ │ │ │ ├── drivercaps_ext_t.end.hpp
│ │ │ │ ├── drivercaps_ext_t.start.hpp
│ │ │ │ ├── enumadapters2_t.end.hpp
│ │ │ │ ├── enumadapters2_t.start.hpp
│ │ │ │ ├── enumadapters3_t.end.hpp
│ │ │ │ ├── enumadapters3_t.start.hpp
│ │ │ │ ├── enumadapters_filter_t.end.hpp
│ │ │ │ ├── enumadapters_filter_t.start.hpp
│ │ │ │ ├── enumadapters_t.end.hpp
│ │ │ │ ├── enumadapters_t.start.hpp
│ │ │ │ ├── escape_t.end.hpp
│ │ │ │ ├── escape_t.start.hpp
│ │ │ │ ├── evict_t.end.hpp
│ │ │ │ ├── evict_t.start.hpp
│ │ │ │ ├── eviction_criteria_t.end.hpp
│ │ │ │ ├── eviction_criteria_t.start.hpp
│ │ │ │ ├── fence_presenthistorytoken_t.end.hpp
│ │ │ │ ├── fence_presenthistorytoken_t.start.hpp
│ │ │ │ ├── flipinfoflags_t.end.hpp
│ │ │ │ ├── flipinfoflags_t.start.hpp
│ │ │ │ ├── flipmanager_presenthistorytoken_t.end.hpp
│ │ │ │ ├── flipmanager_presenthistorytoken_t.start.hpp
│ │ │ │ ├── flipmodel_presenthistorytoken_t.end.hpp
│ │ │ │ ├── flipmodel_presenthistorytoken_t.start.hpp
│ │ │ │ ├── flipmodel_presenthistorytokenflags_t.end.hpp
│ │ │ │ ├── flipmodel_presenthistorytokenflags_t.start.hpp
│ │ │ │ ├── flipoverlay_t.end.hpp
│ │ │ │ ├── flipoverlay_t.start.hpp
│ │ │ │ ├── flipqueueinfo_t.end.hpp
│ │ │ │ ├── flipqueueinfo_t.start.hpp
│ │ │ │ ├── flushheaptransitions_t.end.hpp
│ │ │ │ ├── flushheaptransitions_t.start.hpp
│ │ │ │ ├── freegpuvirtualaddress_t.end.hpp
│ │ │ │ ├── freegpuvirtualaddress_t.start.hpp
│ │ │ │ ├── gdimodel_presenthistorytoken_t.end.hpp
│ │ │ │ ├── gdimodel_presenthistorytoken_t.start.hpp
│ │ │ │ ├── gdimodel_sysmem_presenthistorytoken_t.end.hpp
│ │ │ │ ├── gdimodel_sysmem_presenthistorytoken_t.start.hpp
│ │ │ │ ├── get_device_vidpn_ownership_info_t.end.hpp
│ │ │ │ ├── get_device_vidpn_ownership_info_t.start.hpp
│ │ │ │ ├── get_gpummu_caps_t.end.hpp
│ │ │ │ ├── get_gpummu_caps_t.start.hpp
│ │ │ │ ├── get_multiplane_overlay_caps_t.end.hpp
│ │ │ │ ├── get_multiplane_overlay_caps_t.start.hpp
│ │ │ │ ├── get_post_composition_caps_t.end.hpp
│ │ │ │ ├── get_post_composition_caps_t.start.hpp
│ │ │ │ ├── get_pte_t.end.hpp
│ │ │ │ ├── get_pte_t.start.hpp
│ │ │ │ ├── get_segment_caps_t.end.hpp
│ │ │ │ ├── get_segment_caps_t.start.hpp
│ │ │ │ ├── getallocationpriority_t.end.hpp
│ │ │ │ ├── getallocationpriority_t.start.hpp
│ │ │ │ ├── getcontextinprocessschedulingpriority_t.end.hpp
│ │ │ │ ├── getcontextinprocessschedulingpriority_t.start.hpp
│ │ │ │ ├── getcontextschedulingpriority_t.end.hpp
│ │ │ │ ├── getcontextschedulingpriority_t.start.hpp
│ │ │ │ ├── getdevicestate_t.end.hpp
│ │ │ │ ├── getdevicestate_t.start.hpp
│ │ │ │ ├── getdisplaymodelist_t.end.hpp
│ │ │ │ ├── getdisplaymodelist_t.start.hpp
│ │ │ │ ├── getmultisamplemethodlist_t.end.hpp
│ │ │ │ ├── getmultisamplemethodlist_t.start.hpp
│ │ │ │ ├── getoverlaystate_t.end.hpp
│ │ │ │ ├── getoverlaystate_t.start.hpp
│ │ │ │ ├── getpresenthistory_t.end.hpp
│ │ │ │ ├── getpresenthistory_t.start.hpp
│ │ │ │ ├── getprocessdeviceremovalsupport_t.end.hpp
│ │ │ │ ├── getprocessdeviceremovalsupport_t.start.hpp
│ │ │ │ ├── getruntimedata_t.end.hpp
│ │ │ │ ├── getruntimedata_t.start.hpp
│ │ │ │ ├── getscanline_t.end.hpp
│ │ │ │ ├── getscanline_t.start.hpp
│ │ │ │ ├── getsharedprimaryhandle_t.end.hpp
│ │ │ │ ├── getsharedprimaryhandle_t.start.hpp
│ │ │ │ ├── getsharedresourceadapterluid_t.end.hpp
│ │ │ │ ├── getsharedresourceadapterluid_t.start.hpp
│ │ │ │ ├── getverticalblankevent_t.end.hpp
│ │ │ │ ├── getverticalblankevent_t.start.hpp
│ │ │ │ ├── gpummu_caps_t.end.hpp
│ │ │ │ ├── gpummu_caps_t.start.hpp
│ │ │ │ ├── gpuversion_t.end.hpp
│ │ │ │ ├── gpuversion_t.start.hpp
│ │ │ │ ├── history_buffer_status_t.end.hpp
│ │ │ │ ├── history_buffer_status_t.start.hpp
│ │ │ │ ├── hwdrm_support_t.end.hpp
│ │ │ │ ├── hwdrm_support_t.start.hpp
│ │ │ │ ├── hybrid_list_t.end.hpp
│ │ │ │ ├── hybrid_list_t.start.hpp
│ │ │ │ ├── independentflip_secondary_support_t.end.hpp
│ │ │ │ ├── independentflip_secondary_support_t.start.hpp
│ │ │ │ ├── independentflip_support_t.end.hpp
│ │ │ │ ├── independentflip_support_t.start.hpp
│ │ │ │ ├── invalidateactivevidpn_t.end.hpp
│ │ │ │ ├── invalidateactivevidpn_t.start.hpp
│ │ │ │ ├── invalidatecache_t.end.hpp
│ │ │ │ ├── invalidatecache_t.start.hpp
│ │ │ │ ├── isbaddriverforhwprotectiondisabled_t.end.hpp
│ │ │ │ ├── isbaddriverforhwprotectiondisabled_t.start.hpp
│ │ │ │ ├── kmd_driver_version_t.end.hpp
│ │ │ │ ├── kmd_driver_version_t.start.hpp
│ │ │ │ ├── lock2_t.end.hpp
│ │ │ │ ├── lock2_t.start.hpp
│ │ │ │ ├── lock_t.end.hpp
│ │ │ │ ├── lock_t.start.hpp
│ │ │ │ ├── markdeviceaserror_t.end.hpp
│ │ │ │ ├── markdeviceaserror_t.start.hpp
│ │ │ │ ├── miracast_display_device_caps_t.end.hpp
│ │ │ │ ├── miracast_display_device_caps_t.start.hpp
│ │ │ │ ├── miracast_display_device_status_t.end.hpp
│ │ │ │ ├── miracast_display_device_status_t.start.hpp
│ │ │ │ ├── miracast_display_stop_sessions_t.end.hpp
│ │ │ │ ├── miracast_display_stop_sessions_t.start.hpp
│ │ │ │ ├── miracastcompaniondrivername_t.end.hpp
│ │ │ │ ├── miracastcompaniondrivername_t.start.hpp
│ │ │ │ ├── move_rect_t.end.hpp
│ │ │ │ ├── move_rect_t.start.hpp
│ │ │ │ ├── mpo3ddi_support_t.end.hpp
│ │ │ │ ├── mpo3ddi_support_t.start.hpp
│ │ │ │ ├── mpokernelcaps_support_t.end.hpp
│ │ │ │ ├── mpokernelcaps_support_t.start.hpp
│ │ │ │ ├── multiplane_overlay2_t.end.hpp
│ │ │ │ ├── multiplane_overlay2_t.start.hpp
│ │ │ │ ├── multiplane_overlay3_t.end.hpp
│ │ │ │ ├── multiplane_overlay3_t.start.hpp
│ │ │ │ ├── multiplane_overlay_attributes2_t.end.hpp
│ │ │ │ ├── multiplane_overlay_attributes2_t.start.hpp
│ │ │ │ ├── multiplane_overlay_attributes3_t.end.hpp
│ │ │ │ ├── multiplane_overlay_attributes3_t.start.hpp
│ │ │ │ ├── multiplane_overlay_attributes_t.end.hpp
│ │ │ │ ├── multiplane_overlay_attributes_t.start.hpp
│ │ │ │ ├── multiplane_overlay_caps_t.end.hpp
│ │ │ │ ├── multiplane_overlay_caps_t.start.hpp
│ │ │ │ ├── multiplane_overlay_post_composition_flags_t.end.hpp
│ │ │ │ ├── multiplane_overlay_post_composition_flags_t.start.hpp
│ │ │ │ ├── multiplane_overlay_post_composition_t.end.hpp
│ │ │ │ ├── multiplane_overlay_post_composition_t.start.hpp
│ │ │ │ ├── multiplane_overlay_post_composition_with_source_t.end.hpp
│ │ │ │ ├── multiplane_overlay_post_composition_with_source_t.start.hpp
│ │ │ │ ├── multiplane_overlay_t.end.hpp
│ │ │ │ ├── multiplane_overlay_t.start.hpp
│ │ │ │ ├── multiplaneoverlay_decode_support_t.end.hpp
│ │ │ │ ├── multiplaneoverlay_decode_support_t.start.hpp
│ │ │ │ ├── multiplaneoverlay_hud_support_t.end.hpp
│ │ │ │ ├── multiplaneoverlay_hud_support_t.start.hpp
│ │ │ │ ├── multiplaneoverlay_secondary_support_t.end.hpp
│ │ │ │ ├── multiplaneoverlay_secondary_support_t.start.hpp
│ │ │ │ ├── multiplaneoverlay_stretch_support_t.end.hpp
│ │ │ │ ├── multiplaneoverlay_stretch_support_t.start.hpp
│ │ │ │ ├── multiplaneoverlay_support_t.end.hpp
│ │ │ │ ├── multiplaneoverlay_support_t.start.hpp
│ │ │ │ ├── multisamplemethod_t.end.hpp
│ │ │ │ ├── multisamplemethod_t.start.hpp
│ │ │ │ ├── node_perfdata_t.end.hpp
│ │ │ │ ├── node_perfdata_t.start.hpp
│ │ │ │ ├── nodemetadata_t.end.hpp
│ │ │ │ ├── nodemetadata_t.start.hpp
│ │ │ │ ├── offer_flags_t.end.hpp
│ │ │ │ ├── offer_flags_t.start.hpp
│ │ │ │ ├── offerallocations_t.end.hpp
│ │ │ │ ├── offerallocations_t.start.hpp
│ │ │ │ ├── openadapterfromdevicename_t.end.hpp
│ │ │ │ ├── openadapterfromdevicename_t.start.hpp
│ │ │ │ ├── openadapterfromgdidisplayname_t.end.hpp
│ │ │ │ ├── openadapterfromgdidisplayname_t.start.hpp
│ │ │ │ ├── openadapterfromhdc_t.end.hpp
│ │ │ │ ├── openadapterfromhdc_t.start.hpp
│ │ │ │ ├── openadapterfromluid_t.end.hpp
│ │ │ │ ├── openadapterfromluid_t.start.hpp
│ │ │ │ ├── openglinfo_t.end.hpp
│ │ │ │ ├── openglinfo_t.start.hpp
│ │ │ │ ├── openkeyedmutex2_t.end.hpp
│ │ │ │ ├── openkeyedmutex2_t.start.hpp
│ │ │ │ ├── openkeyedmutex_t.end.hpp
│ │ │ │ ├── openkeyedmutex_t.start.hpp
│ │ │ │ ├── openkeyedmutexfromnthandle_t.end.hpp
│ │ │ │ ├── openkeyedmutexfromnthandle_t.start.hpp
│ │ │ │ ├── opennthandlefromname_t.end.hpp
│ │ │ │ ├── opennthandlefromname_t.start.hpp
│ │ │ │ ├── openprotectedsessionfromnthandle_t.end.hpp
│ │ │ │ ├── openprotectedsessionfromnthandle_t.start.hpp
│ │ │ │ ├── openresource_t.end.hpp
│ │ │ │ ├── openresource_t.start.hpp
│ │ │ │ ├── openresourcefromnthandle_t.end.hpp
│ │ │ │ ├── openresourcefromnthandle_t.start.hpp
│ │ │ │ ├── opensynchronizationobject_t.end.hpp
│ │ │ │ ├── opensynchronizationobject_t.start.hpp
│ │ │ │ ├── opensyncobjectfromnthandle2_t.end.hpp
│ │ │ │ ├── opensyncobjectfromnthandle2_t.start.hpp
│ │ │ │ ├── opensyncobjectfromnthandle_t.end.hpp
│ │ │ │ ├── opensyncobjectfromnthandle_t.start.hpp
│ │ │ │ ├── opensyncobjectnthandlefromname_t.end.hpp
│ │ │ │ ├── opensyncobjectnthandlefromname_t.start.hpp
│ │ │ │ ├── outdupl_pointer_shape_info_t.end.hpp
│ │ │ │ ├── outdupl_pointer_shape_info_t.start.hpp
│ │ │ │ ├── outputdupl_frameinfo_t.end.hpp
│ │ │ │ ├── outputdupl_frameinfo_t.start.hpp
│ │ │ │ ├── outputdupl_get_frameinfo_t.end.hpp
│ │ │ │ ├── outputdupl_get_frameinfo_t.start.hpp
│ │ │ │ ├── outputdupl_get_pointer_shape_data_t.end.hpp
│ │ │ │ ├── outputdupl_get_pointer_shape_data_t.start.hpp
│ │ │ │ ├── outputdupl_keyedmutex_t.end.hpp
│ │ │ │ ├── outputdupl_keyedmutex_t.start.hpp
│ │ │ │ ├── outputdupl_metadata_t.end.hpp
│ │ │ │ ├── outputdupl_metadata_t.start.hpp
│ │ │ │ ├── outputdupl_pointer_position_t.end.hpp
│ │ │ │ ├── outputdupl_pointer_position_t.start.hpp
│ │ │ │ ├── outputdupl_release_frame_t.end.hpp
│ │ │ │ ├── outputdupl_release_frame_t.start.hpp
│ │ │ │ ├── outputdupl_snapshot_t.end.hpp
│ │ │ │ ├── outputdupl_snapshot_t.start.hpp
│ │ │ │ ├── outputduplcontextscount_t.end.hpp
│ │ │ │ ├── outputduplcontextscount_t.start.hpp
│ │ │ │ ├── outputduplcreationflags_t.end.hpp
│ │ │ │ ├── outputduplcreationflags_t.start.hpp
│ │ │ │ ├── outputduplpresent_t.end.hpp
│ │ │ │ ├── outputduplpresent_t.start.hpp
│ │ │ │ ├── outputduplpresentflags_t.end.hpp
│ │ │ │ ├── outputduplpresentflags_t.start.hpp
│ │ │ │ ├── outputduplpresenttohwqueue_t.end.hpp
│ │ │ │ ├── outputduplpresenttohwqueue_t.start.hpp
│ │ │ │ ├── page_table_level_desc_t.end.hpp
│ │ │ │ ├── page_table_level_desc_t.start.hpp
│ │ │ │ ├── panelfitter_support_t.end.hpp
│ │ │ │ ├── panelfitter_support_t.start.hpp
│ │ │ │ ├── paravirtualization_t.end.hpp
│ │ │ │ ├── paravirtualization_t.start.hpp
│ │ │ │ ├── physical_adapter_count_t.end.hpp
│ │ │ │ ├── physical_adapter_count_t.start.hpp
│ │ │ │ ├── pindirectflipresources_t.end.hpp
│ │ │ │ ├── pindirectflipresources_t.start.hpp
│ │ │ │ ├── plane_specific_input_flags_t.end.hpp
│ │ │ │ ├── plane_specific_input_flags_t.start.hpp
│ │ │ │ ├── plane_specific_output_flags_t.end.hpp
│ │ │ │ ├── plane_specific_output_flags_t.start.hpp
│ │ │ │ ├── polldisplaychildren_t.end.hpp
│ │ │ │ ├── polldisplaychildren_t.start.hpp
│ │ │ │ ├── present_display_only_flags_t.end.hpp
│ │ │ │ ├── present_display_only_flags_t.start.hpp
│ │ │ │ ├── present_multiplane_overlay2_t.end.hpp
│ │ │ │ ├── present_multiplane_overlay2_t.start.hpp
│ │ │ │ ├── present_multiplane_overlay3_t.end.hpp
│ │ │ │ ├── present_multiplane_overlay3_t.start.hpp
│ │ │ │ ├── present_multiplane_overlay_flags_t.end.hpp
│ │ │ │ ├── present_multiplane_overlay_flags_t.start.hpp
│ │ │ │ ├── present_multiplane_overlay_t.end.hpp
│ │ │ │ ├── present_multiplane_overlay_t.start.hpp
│ │ │ │ ├── present_redirected_t.end.hpp
│ │ │ │ ├── present_redirected_t.start.hpp
│ │ │ │ ├── present_redirecteds_flags_t.end.hpp
│ │ │ │ ├── present_redirecteds_flags_t.start.hpp
│ │ │ │ ├── present_rgns_t.end.hpp
│ │ │ │ ├── present_rgns_t.start.hpp
│ │ │ │ ├── present_stats_dwm_t.end.hpp
│ │ │ │ ├── present_stats_dwm_t.start.hpp
│ │ │ │ ├── present_stats_t.end.hpp
│ │ │ │ ├── present_stats_t.start.hpp
│ │ │ │ ├── present_t.end.hpp
│ │ │ │ ├── present_t.start.hpp
│ │ │ │ ├── presentflags_t.end.hpp
│ │ │ │ ├── presentflags_t.start.hpp
│ │ │ │ ├── presenthistorytoken_t.end.hpp
│ │ │ │ ├── presenthistorytoken_t.start.hpp
│ │ │ │ ├── process_verifier_option_data_t.end.hpp
│ │ │ │ ├── process_verifier_option_data_t.start.hpp
│ │ │ │ ├── process_verifier_option_t.end.hpp
│ │ │ │ ├── process_verifier_option_t.start.hpp
│ │ │ │ ├── process_verifier_vidmm_flags_t.end.hpp
│ │ │ │ ├── process_verifier_vidmm_flags_t.start.hpp
│ │ │ │ ├── process_verifier_vidmm_restrict_budget_t.end.hpp
│ │ │ │ ├── process_verifier_vidmm_restrict_budget_t.start.hpp
│ │ │ │ ├── query_adapter_unique_guid_t.end.hpp
│ │ │ │ ├── query_adapter_unique_guid_t.start.hpp
│ │ │ │ ├── query_device_ids_t.end.hpp
│ │ │ │ ├── query_device_ids_t.start.hpp
│ │ │ │ ├── query_gpummu_caps_t.end.hpp
│ │ │ │ ├── query_gpummu_caps_t.start.hpp
│ │ │ │ ├── query_miracast_driver_type_t.end.hpp
│ │ │ │ ├── query_miracast_driver_type_t.start.hpp
│ │ │ │ ├── query_physical_adapter_pnp_key_t.end.hpp
│ │ │ │ ├── query_physical_adapter_pnp_key_t.start.hpp
│ │ │ │ ├── query_scanout_caps_t.end.hpp
│ │ │ │ ├── query_scanout_caps_t.start.hpp
│ │ │ │ ├── queryadapterinfo_t.end.hpp
│ │ │ │ ├── queryadapterinfo_t.start.hpp
│ │ │ │ ├── queryallocationresidency_t.end.hpp
│ │ │ │ ├── queryallocationresidency_t.start.hpp
│ │ │ │ ├── queryclockcalibration_t.end.hpp
│ │ │ │ ├── queryclockcalibration_t.start.hpp
│ │ │ │ ├── queryfseblock_t.end.hpp
│ │ │ │ ├── queryfseblock_t.start.hpp
│ │ │ │ ├── queryfseflags_t.end.hpp
│ │ │ │ ├── queryfseflags_t.start.hpp
│ │ │ │ ├── queryprocessofferinfo_t.end.hpp
│ │ │ │ ├── queryprocessofferinfo_t.start.hpp
│ │ │ │ ├── queryprotectedsessioninfofromnthandle_t.end.hpp
│ │ │ │ ├── queryprotectedsessioninfofromnthandle_t.start.hpp
│ │ │ │ ├── queryprotectedsessionstatus_t.end.hpp
│ │ │ │ ├── queryprotectedsessionstatus_t.start.hpp
│ │ │ │ ├── queryremotevidpnsourcefromgdidisplayname_t.end.hpp
│ │ │ │ ├── queryremotevidpnsourcefromgdidisplayname_t.start.hpp
│ │ │ │ ├── queryresourceinfo_t.end.hpp
│ │ │ │ ├── queryresourceinfo_t.start.hpp
│ │ │ │ ├── queryresourceinfofromnthandle_t.end.hpp
│ │ │ │ ├── queryresourceinfofromnthandle_t.start.hpp
│ │ │ │ ├── querystatistics_t.end.hpp
│ │ │ │ ├── querystatistics_t.start.hpp
│ │ │ │ ├── queryvideomemoryinfo_t.end.hpp
│ │ │ │ ├── queryvideomemoryinfo_t.start.hpp
│ │ │ │ ├── queryvidpnexclusiveownership_t.end.hpp
│ │ │ │ ├── queryvidpnexclusiveownership_t.start.hpp
│ │ │ │ ├── reclaimallocations2_t.end.hpp
│ │ │ │ ├── reclaimallocations2_t.start.hpp
│ │ │ │ ├── reclaimallocations_t.end.hpp
│ │ │ │ ├── reclaimallocations_t.start.hpp
│ │ │ │ ├── registerbudgetchangenotification_t.end.hpp
│ │ │ │ ├── registerbudgetchangenotification_t.start.hpp
│ │ │ │ ├── registertrimnotification_t.end.hpp
│ │ │ │ ├── registertrimnotification_t.start.hpp
│ │ │ │ ├── releasekeyedmutex2_t.end.hpp
│ │ │ │ ├── releasekeyedmutex2_t.start.hpp
│ │ │ │ ├── releasekeyedmutex_t.end.hpp
│ │ │ │ ├── releasekeyedmutex_t.start.hpp
│ │ │ │ ├── render_t.end.hpp
│ │ │ │ ├── render_t.start.hpp
│ │ │ │ ├── renderflags_t.end.hpp
│ │ │ │ ├── renderflags_t.start.hpp
│ │ │ │ ├── request_machine_crash_escape_t.end.hpp
│ │ │ │ ├── request_machine_crash_escape_t.start.hpp
│ │ │ │ ├── scatterblt_t.end.hpp
│ │ │ │ ├── scatterblt_t.start.hpp
│ │ │ │ ├── scatterblts_t.end.hpp
│ │ │ │ ├── scatterblts_t.start.hpp
│ │ │ │ ├── segment_caps_t.end.hpp
│ │ │ │ ├── segment_caps_t.start.hpp
│ │ │ │ ├── segmentgroupsizeinfo_t.end.hpp
│ │ │ │ ├── segmentgroupsizeinfo_t.start.hpp
│ │ │ │ ├── segmentsizeinfo_t.end.hpp
│ │ │ │ ├── segmentsizeinfo_t.start.hpp
│ │ │ │ ├── set_colorspace_transform_t.end.hpp
│ │ │ │ ├── set_colorspace_transform_t.start.hpp
│ │ │ │ ├── setallocationpriority_t.end.hpp
│ │ │ │ ├── setallocationpriority_t.start.hpp
│ │ │ │ ├── setcontextinprocessschedulingpriority_t.end.hpp
│ │ │ │ ├── setcontextinprocessschedulingpriority_t.start.hpp
│ │ │ │ ├── setcontextschedulingpriority_t.end.hpp
│ │ │ │ ├── setcontextschedulingpriority_t.start.hpp
│ │ │ │ ├── setdisplaymode_flags_t.end.hpp
│ │ │ │ ├── setdisplaymode_flags_t.start.hpp
│ │ │ │ ├── setdisplaymode_t.end.hpp
│ │ │ │ ├── setdisplaymode_t.start.hpp
│ │ │ │ ├── setdisplayprivatedriverformat_t.end.hpp
│ │ │ │ ├── setdisplayprivatedriverformat_t.start.hpp
│ │ │ │ ├── setfseblock_t.end.hpp
│ │ │ │ ├── setfseblock_t.start.hpp
│ │ │ │ ├── setfseblockflags_t.end.hpp
│ │ │ │ ├── setfseblockflags_t.start.hpp
│ │ │ │ ├── setgammaramp_t.end.hpp
│ │ │ │ ├── setgammaramp_t.start.hpp
│ │ │ │ ├── sethwprotectionteardownrecovery_t.end.hpp
│ │ │ │ ├── sethwprotectionteardownrecovery_t.start.hpp
│ │ │ │ ├── setqueuedlimit_t.end.hpp
│ │ │ │ ├── setqueuedlimit_t.start.hpp
│ │ │ │ ├── setstablepowerstate_t.end.hpp
│ │ │ │ ├── setstablepowerstate_t.start.hpp
│ │ │ │ ├── setsyncrefreshcountwaittarget_t.end.hpp
│ │ │ │ ├── setsyncrefreshcountwaittarget_t.start.hpp
│ │ │ │ ├── setvidpnsourcehwprotection_t.end.hpp
│ │ │ │ ├── setvidpnsourcehwprotection_t.start.hpp
│ │ │ │ ├── setvidpnsourceowner1_t.end.hpp
│ │ │ │ ├── setvidpnsourceowner1_t.start.hpp
│ │ │ │ ├── setvidpnsourceowner2_t.end.hpp
│ │ │ │ ├── setvidpnsourceowner2_t.start.hpp
│ │ │ │ ├── setvidpnsourceowner_t.end.hpp
│ │ │ │ ├── setvidpnsourceowner_t.start.hpp
│ │ │ │ ├── sharedprimarylocknotification_t.end.hpp
│ │ │ │ ├── sharedprimarylocknotification_t.start.hpp
│ │ │ │ ├── sharedprimaryunlocknotification_t.end.hpp
│ │ │ │ ├── sharedprimaryunlocknotification_t.start.hpp
│ │ │ │ ├── signalsynchronizationobject2_t.end.hpp
│ │ │ │ ├── signalsynchronizationobject2_t.start.hpp
│ │ │ │ ├── signalsynchronizationobject_t.end.hpp
│ │ │ │ ├── signalsynchronizationobject_t.start.hpp
│ │ │ │ ├── signalsynchronizationobjectfromcpu_t.end.hpp
│ │ │ │ ├── signalsynchronizationobjectfromcpu_t.start.hpp
│ │ │ │ ├── signalsynchronizationobjectfromgpu2_t.end.hpp
│ │ │ │ ├── signalsynchronizationobjectfromgpu2_t.start.hpp
│ │ │ │ ├── signalsynchronizationobjectfromgpu_t.end.hpp
│ │ │ │ ├── signalsynchronizationobjectfromgpu_t.start.hpp
│ │ │ │ ├── standardallocation_existingheap_t.end.hpp
│ │ │ │ ├── standardallocation_existingheap_t.start.hpp
│ │ │ │ ├── submitcommand_t.end.hpp
│ │ │ │ ├── submitcommand_t.start.hpp
│ │ │ │ ├── submitcommandflags_t.end.hpp
│ │ │ │ ├── submitcommandflags_t.start.hpp
│ │ │ │ ├── submitcommandtohwqueue_t.end.hpp
│ │ │ │ ├── submitcommandtohwqueue_t.start.hpp
│ │ │ │ ├── submitpresentblttohwqueue_t.end.hpp
│ │ │ │ ├── submitpresentblttohwqueue_t.start.hpp
│ │ │ │ ├── submitpresenttohwqueue_t.end.hpp
│ │ │ │ ├── submitpresenttohwqueue_t.start.hpp
│ │ │ │ ├── submitsignalsyncobjectstohwqueue_t.end.hpp
│ │ │ │ ├── submitsignalsyncobjectstohwqueue_t.start.hpp
│ │ │ │ ├── submitwaitforsyncobjectstohwqueue_t.end.hpp
│ │ │ │ ├── submitwaitforsyncobjectstohwqueue_t.start.hpp
│ │ │ │ ├── surfacecomplete_presenthistorytoken_t.end.hpp
│ │ │ │ ├── surfacecomplete_presenthistorytoken_t.start.hpp
│ │ │ │ ├── tdrdbgctrl_escape_t.end.hpp
│ │ │ │ ├── tdrdbgctrl_escape_t.start.hpp
│ │ │ │ ├── trackedworkload_support_t.end.hpp
│ │ │ │ ├── trackedworkload_support_t.start.hpp
│ │ │ │ ├── trimnotification_t.end.hpp
│ │ │ │ ├── trimnotification_t.start.hpp
│ │ │ │ ├── trimprocesscommitment_flags_t.end.hpp
│ │ │ │ ├── trimprocesscommitment_flags_t.start.hpp
│ │ │ │ ├── trimprocesscommitment_t.end.hpp
│ │ │ │ ├── trimprocesscommitment_t.start.hpp
│ │ │ │ ├── umd_driver_version_t.end.hpp
│ │ │ │ ├── umd_driver_version_t.start.hpp
│ │ │ │ ├── umdfilenameinfo_t.end.hpp
│ │ │ │ ├── umdfilenameinfo_t.start.hpp
│ │ │ │ ├── unlock2_t.end.hpp
│ │ │ │ ├── unlock2_t.start.hpp
│ │ │ │ ├── unlock_t.end.hpp
│ │ │ │ ├── unlock_t.start.hpp
│ │ │ │ ├── unpindirectflipresources_t.end.hpp
│ │ │ │ ├── unpindirectflipresources_t.start.hpp
│ │ │ │ ├── unregisterbudgetchangenotification_t.end.hpp
│ │ │ │ ├── unregisterbudgetchangenotification_t.start.hpp
│ │ │ │ ├── unregistertrimnotification_t.end.hpp
│ │ │ │ ├── unregistertrimnotification_t.start.hpp
│ │ │ │ ├── updategpuvirtualaddress_t.end.hpp
│ │ │ │ ├── updategpuvirtualaddress_t.start.hpp
│ │ │ │ ├── updateoverlay_t.end.hpp
│ │ │ │ ├── updateoverlay_t.start.hpp
│ │ │ │ ├── va_range_desc_t.end.hpp
│ │ │ │ ├── va_range_desc_t.start.hpp
│ │ │ │ ├── vad_desc_t.end.hpp
│ │ │ │ ├── vad_desc_t.start.hpp
│ │ │ │ ├── vidmm_escape_t.end.hpp
│ │ │ │ ├── vidmm_escape_t.start.hpp
│ │ │ │ ├── vidpnsourceowner_flags_t.end.hpp
│ │ │ │ ├── vidpnsourceowner_flags_t.start.hpp
│ │ │ │ ├── vidsch_escape_t.end.hpp
│ │ │ │ ├── vidsch_escape_t.start.hpp
│ │ │ │ ├── virtualaddressflags_t.end.hpp
│ │ │ │ ├── virtualaddressflags_t.start.hpp
│ │ │ │ ├── virtualaddressinfo_t.end.hpp
│ │ │ │ ├── virtualaddressinfo_t.start.hpp
│ │ │ │ ├── waitforidle_t.end.hpp
│ │ │ │ ├── waitforidle_t.start.hpp
│ │ │ │ ├── waitforsynchronizationobject2_t.end.hpp
│ │ │ │ ├── waitforsynchronizationobject2_t.start.hpp
│ │ │ │ ├── waitforsynchronizationobject_t.end.hpp
│ │ │ │ ├── waitforsynchronizationobject_t.start.hpp
│ │ │ │ ├── waitforsynchronizationobjectfromcpu_t.end.hpp
│ │ │ │ ├── waitforsynchronizationobjectfromcpu_t.start.hpp
│ │ │ │ ├── waitforsynchronizationobjectfromgpu_t.end.hpp
│ │ │ │ ├── waitforsynchronizationobjectfromgpu_t.start.hpp
│ │ │ │ ├── waitforverticalblankevent2_t.end.hpp
│ │ │ │ ├── waitforverticalblankevent2_t.start.hpp
│ │ │ │ ├── waitforverticalblankevent_t.end.hpp
│ │ │ │ ├── waitforverticalblankevent_t.start.hpp
│ │ │ │ ├── wddm_1_2_caps_t.end.hpp
│ │ │ │ ├── wddm_1_2_caps_t.start.hpp
│ │ │ │ ├── wddm_1_3_caps_t.end.hpp
│ │ │ │ ├── wddm_1_3_caps_t.start.hpp
│ │ │ │ ├── wddm_2_0_caps_t.end.hpp
│ │ │ │ ├── wddm_2_0_caps_t.start.hpp
│ │ │ │ ├── wddm_2_7_caps_t.end.hpp
│ │ │ │ ├── wddm_2_7_caps_t.start.hpp
│ │ │ │ ├── workingsetflags_t.end.hpp
│ │ │ │ ├── workingsetflags_t.start.hpp
│ │ │ │ ├── workingsetinfo_t.end.hpp
│ │ │ │ ├── workingsetinfo_t.start.hpp
│ │ │ │ ├── xbox_t.end.hpp
│ │ │ │ └── xbox_t.start.hpp
│ │ │ ├── markdeviceaserror_t.hpp
│ │ │ ├── memory_segment_group_t.hpp
│ │ │ ├── miracast_display_device_caps_t.hpp
│ │ │ ├── miracast_display_device_status_t.hpp
│ │ │ ├── miracast_display_stop_sessions_t.hpp
│ │ │ ├── miracast_driver_type_t.hpp
│ │ │ ├── miracastcompaniondrivername_t.hpp
│ │ │ ├── move_rect_t.hpp
│ │ │ ├── mpo3ddi_support_t.hpp
│ │ │ ├── mpokernelcaps_support_t.hpp
│ │ │ ├── multiplane_overlay2_t.hpp
│ │ │ ├── multiplane_overlay3_t.hpp
│ │ │ ├── multiplane_overlay_attributes2_t.hpp
│ │ │ ├── multiplane_overlay_attributes3_t.hpp
│ │ │ ├── multiplane_overlay_attributes_t.hpp
│ │ │ ├── multiplane_overlay_blend_t.hpp
│ │ │ ├── multiplane_overlay_caps_t.hpp
│ │ │ ├── multiplane_overlay_flags_t.hpp
│ │ │ ├── multiplane_overlay_post_composition_flags_t.hpp
│ │ │ ├── multiplane_overlay_post_composition_t.hpp
│ │ │ ├── multiplane_overlay_post_composition_with_source_t.hpp
│ │ │ ├── multiplane_overlay_stereo_format_t.hpp
│ │ │ ├── multiplane_overlay_t.hpp
│ │ │ ├── multiplane_overlay_video_frame_format_t.hpp
│ │ │ ├── multiplane_overlay_y_cb_cr_flags_t.hpp
│ │ │ ├── multiplaneoverlay_decode_support_t.hpp
│ │ │ ├── multiplaneoverlay_hud_support_t.hpp
│ │ │ ├── multiplaneoverlay_secondary_support_t.hpp
│ │ │ ├── multiplaneoverlay_stretch_support_t.hpp
│ │ │ ├── multiplaneoverlay_support_t.hpp
│ │ │ ├── multisamplemethod_t.hpp
│ │ │ ├── node_perfdata_t.hpp
│ │ │ ├── nodemetadata_t.hpp
│ │ │ ├── offer_flags_t.hpp
│ │ │ ├── offer_priority_t.hpp
│ │ │ ├── offerallocations_t.hpp
│ │ │ ├── openadapterfromdevicename_t.hpp
│ │ │ ├── openadapterfromgdidisplayname_t.hpp
│ │ │ ├── openadapterfromhdc_t.hpp
│ │ │ ├── openadapterfromluid_t.hpp
│ │ │ ├── openglinfo_t.hpp
│ │ │ ├── openkeyedmutex2_t.hpp
│ │ │ ├── openkeyedmutex_t.hpp
│ │ │ ├── openkeyedmutexfromnthandle_t.hpp
│ │ │ ├── opennthandlefromname_t.hpp
│ │ │ ├── openprotectedsessionfromnthandle_t.hpp
│ │ │ ├── openresource_t.hpp
│ │ │ ├── openresourcefromnthandle_t.hpp
│ │ │ ├── opensynchronizationobject_t.hpp
│ │ │ ├── opensyncobjectfromnthandle2_t.hpp
│ │ │ ├── opensyncobjectfromnthandle_t.hpp
│ │ │ ├── opensyncobjectnthandlefromname_t.hpp
│ │ │ ├── outdupl_pointer_shape_info_t.hpp
│ │ │ ├── outdupl_pointer_shape_type_t.hpp
│ │ │ ├── outputdupl_frameinfo_t.hpp
│ │ │ ├── outputdupl_get_frameinfo_t.hpp
│ │ │ ├── outputdupl_get_pointer_shape_data_t.hpp
│ │ │ ├── outputdupl_keyedmutex_t.hpp
│ │ │ ├── outputdupl_metadata_t.hpp
│ │ │ ├── outputdupl_metadatatype_t.hpp
│ │ │ ├── outputdupl_pointer_position_t.hpp
│ │ │ ├── outputdupl_release_frame_t.hpp
│ │ │ ├── outputdupl_snapshot_t.hpp
│ │ │ ├── outputduplcontextscount_t.hpp
│ │ │ ├── outputduplcreationflags_t.hpp
│ │ │ ├── outputduplpresent_t.hpp
│ │ │ ├── outputduplpresentflags_t.hpp
│ │ │ ├── outputduplpresenttohwqueue_t.hpp
│ │ │ ├── page_table_level_desc_t.hpp
│ │ │ ├── panelfitter_support_t.hpp
│ │ │ ├── paravirtualization_t.hpp
│ │ │ ├── physical_adapter_count_t.hpp
│ │ │ ├── pindirectflipresources_t.hpp
│ │ │ ├── plane_specific_input_flags_t.hpp
│ │ │ ├── plane_specific_output_flags_t.hpp
│ │ │ ├── pnp_key_type_t.hpp
│ │ │ ├── polldisplaychildren_t.hpp
│ │ │ ├── present_display_only_flags_t.hpp
│ │ │ ├── present_model_t.hpp
│ │ │ ├── present_multiplane_overlay2_t.hpp
│ │ │ ├── present_multiplane_overlay3_t.hpp
│ │ │ ├── present_multiplane_overlay_flags_t.hpp
│ │ │ ├── present_multiplane_overlay_t.hpp
│ │ │ ├── present_redirected_t.hpp
│ │ │ ├── present_redirecteds_flags_t.hpp
│ │ │ ├── present_rgns_t.hpp
│ │ │ ├── present_stats_dwm_t.hpp
│ │ │ ├── present_stats_t.hpp
│ │ │ ├── present_t.hpp
│ │ │ ├── presentflags_t.hpp
│ │ │ ├── presenthistorytoken_t.hpp
│ │ │ ├── process_verifier_option_data_t.hpp
│ │ │ ├── process_verifier_option_t.hpp
│ │ │ ├── process_verifier_option_type_t.hpp
│ │ │ ├── process_verifier_vidmm_flags_t.hpp
│ │ │ ├── process_verifier_vidmm_restrict_budget_t.hpp
│ │ │ ├── protected_session_status_t.hpp
│ │ │ ├── query_adapter_unique_guid_t.hpp
│ │ │ ├── query_device_ids_t.hpp
│ │ │ ├── query_gpummu_caps_t.hpp
│ │ │ ├── query_miracast_driver_type_t.hpp
│ │ │ ├── query_physical_adapter_pnp_key_t.hpp
│ │ │ ├── query_scanout_caps_t.hpp
│ │ │ ├── queryadapterinfo_t.hpp
│ │ │ ├── queryallocationresidency_t.hpp
│ │ │ ├── queryclockcalibration_t.hpp
│ │ │ ├── queryfseblock_t.hpp
│ │ │ ├── queryfseflags_t.hpp
│ │ │ ├── queryprocessofferinfo_t.hpp
│ │ │ ├── queryprotectedsessioninfofromnthandle_t.hpp
│ │ │ ├── queryprotectedsessionstatus_t.hpp
│ │ │ ├── queryremotevidpnsourcefromgdidisplayname_t.hpp
│ │ │ ├── queryresourceinfo_t.hpp
│ │ │ ├── queryresourceinfofromnthandle_t.hpp
│ │ │ ├── queryresult_preemption_attempt_result_t.hpp
│ │ │ ├── querystatistics_allocation_priority_class_t.hpp
│ │ │ ├── querystatistics_dma_packet_type_t.hpp
│ │ │ ├── querystatistics_query_node_t.hpp
│ │ │ ├── querystatistics_query_segment_t.hpp
│ │ │ ├── querystatistics_query_vidpnsource_t.hpp
│ │ │ ├── querystatistics_queue_packet_type_t.hpp
│ │ │ ├── querystatistics_result_t.hpp
│ │ │ ├── querystatistics_t.hpp
│ │ │ ├── querystatistics_type_t.hpp
│ │ │ ├── queryvideomemoryinfo_t.hpp
│ │ │ ├── queryvidpnexclusiveownership_t.hpp
│ │ │ ├── queuedlimit_type_t.hpp
│ │ │ ├── reclaimallocations2_t.hpp
│ │ │ ├── reclaimallocations_t.hpp
│ │ │ ├── registerbudgetchangenotification_t.hpp
│ │ │ ├── registertrimnotification_t.hpp
│ │ │ ├── releasekeyedmutex2_t.hpp
│ │ │ ├── releasekeyedmutex_t.hpp
│ │ │ ├── render_t.hpp
│ │ │ ├── renderflags_t.hpp
│ │ │ ├── request_machine_crash_escape_t.hpp
│ │ │ ├── scatterblt_t.hpp
│ │ │ ├── scatterblts_t.hpp
│ │ │ ├── schedulingpriorityclass_t.hpp
│ │ │ ├── segment_caps_t.hpp
│ │ │ ├── segmentgroupsizeinfo_t.hpp
│ │ │ ├── segmentsizeinfo_t.hpp
│ │ │ ├── set_colorspace_transform_t.hpp
│ │ │ ├── setallocationpriority_t.hpp
│ │ │ ├── setcontextinprocessschedulingpriority_t.hpp
│ │ │ ├── setcontextschedulingpriority_t.hpp
│ │ │ ├── setdisplaymode_flags_t.hpp
│ │ │ ├── setdisplaymode_t.hpp
│ │ │ ├── setdisplayprivatedriverformat_t.hpp
│ │ │ ├── setfseblock_t.hpp
│ │ │ ├── setfseblockflags_t.hpp
│ │ │ ├── setgammaramp_t.hpp
│ │ │ ├── sethwprotectionteardownrecovery_t.hpp
│ │ │ ├── setqueuedlimit_t.hpp
│ │ │ ├── setstablepowerstate_t.hpp
│ │ │ ├── setsyncrefreshcountwaittarget_t.hpp
│ │ │ ├── setvidpnsourcehwprotection_t.hpp
│ │ │ ├── setvidpnsourceowner1_t.hpp
│ │ │ ├── setvidpnsourceowner2_t.hpp
│ │ │ ├── setvidpnsourceowner_t.hpp
│ │ │ ├── sharedprimarylocknotification_t.hpp
│ │ │ ├── sharedprimaryunlocknotification_t.hpp
│ │ │ ├── signalsynchronizationobject2_t.hpp
│ │ │ ├── signalsynchronizationobject_t.hpp
│ │ │ ├── signalsynchronizationobjectfromcpu_t.hpp
│ │ │ ├── signalsynchronizationobjectfromgpu2_t.hpp
│ │ │ ├── signalsynchronizationobjectfromgpu_t.hpp
│ │ │ ├── standardallocation_existingheap_t.hpp
│ │ │ ├── standardallocationtype_t.hpp
│ │ │ ├── submitcommand_t.hpp
│ │ │ ├── submitcommandflags_t.hpp
│ │ │ ├── submitcommandtohwqueue_t.hpp
│ │ │ ├── submitpresentblttohwqueue_t.hpp
│ │ │ ├── submitpresenttohwqueue_t.hpp
│ │ │ ├── submitsignalsyncobjectstohwqueue_t.hpp
│ │ │ ├── submitwaitforsyncobjectstohwqueue_t.hpp
│ │ │ ├── surfacecomplete_presenthistorytoken_t.hpp
│ │ │ ├── tdrdbgctrl_escape_t.hpp
│ │ │ ├── tdrdbgctrltype_t.hpp
│ │ │ ├── trackedworkload_support_t.hpp
│ │ │ ├── trimnotification_t.hpp
│ │ │ ├── trimprocesscommitment_flags_t.hpp
│ │ │ ├── trimprocesscommitment_t.hpp
│ │ │ ├── umd_driver_version_t.hpp
│ │ │ ├── umdfilenameinfo_t.hpp
│ │ │ ├── unlock2_t.hpp
│ │ │ ├── unlock_t.hpp
│ │ │ ├── unpindirectflipresources_t.hpp
│ │ │ ├── unregisterbudgetchangenotification_t.hpp
│ │ │ ├── unregistertrimnotification_t.hpp
│ │ │ ├── updategpuvirtualaddress_t.hpp
│ │ │ ├── updateoverlay_t.hpp
│ │ │ ├── va_range_desc_t.hpp
│ │ │ ├── vad_desc_t.hpp
│ │ │ ├── vad_escape_command_t.hpp
│ │ │ ├── verifier_option_mode_t.hpp
│ │ │ ├── vidmm_escape_t.hpp
│ │ │ ├── vidmmescapetype_t.hpp
│ │ │ ├── vidpnsourceowner_flags_t.hpp
│ │ │ ├── vidpnsourceowner_type_t.hpp
│ │ │ ├── vidsch_escape_t.hpp
│ │ │ ├── vidschescapetype_t.hpp
│ │ │ ├── virtualaddressflags_t.hpp
│ │ │ ├── virtualaddressinfo_t.hpp
│ │ │ ├── waitforidle_t.hpp
│ │ │ ├── waitforsynchronizationobject2_t.hpp
│ │ │ ├── waitforsynchronizationobject_t.hpp
│ │ │ ├── waitforsynchronizationobjectfromcpu_t.hpp
│ │ │ ├── waitforsynchronizationobjectfromgpu_t.hpp
│ │ │ ├── waitforverticalblankevent2_t.hpp
│ │ │ ├── waitforverticalblankevent_t.hpp
│ │ │ ├── wddm_1_2_caps_t.hpp
│ │ │ ├── wddm_1_3_caps_t.hpp
│ │ │ ├── wddm_2_0_caps_t.hpp
│ │ │ ├── wddm_2_7_caps_t.hpp
│ │ │ ├── workingsetflags_t.hpp
│ │ │ ├── workingsetinfo_t.hpp
│ │ │ └── xbox_t.hpp
│ │ ├── dbg/
│ │ │ ├── api.hpp
│ │ │ ├── log_reason_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ └── state_t.hpp
│ │ ├── dbgk/
│ │ │ ├── api.hpp
│ │ │ ├── livedump_callback_routine_t.hpp
│ │ │ ├── livedump_flags_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── livedump_flags_t.end.hpp
│ │ │ │ ├── livedump_flags_t.start.hpp
│ │ │ │ ├── silostate_t.end.hpp
│ │ │ │ └── silostate_t.start.hpp
│ │ │ └── silostate_t.hpp
│ │ ├── dbgkd/
│ │ │ ├── any_control_set_t.hpp
│ │ │ ├── breakpointex_t.hpp
│ │ │ ├── context_ex_t.hpp
│ │ │ ├── continue2_t.hpp
│ │ │ ├── continue_t.hpp
│ │ │ ├── debug_data_header64_t.hpp
│ │ │ ├── fill_memory_t.hpp
│ │ │ ├── get_context_t.hpp
│ │ │ ├── get_internal_breakpoint32_t.hpp
│ │ │ ├── get_internal_breakpoint64_t.hpp
│ │ │ ├── get_set_bus_data_t.hpp
│ │ │ ├── get_version32_t.hpp
│ │ │ ├── get_version64_t.hpp
│ │ │ ├── load_symbols32_t.hpp
│ │ │ ├── load_symbols64_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── any_control_set_t.end.hpp
│ │ │ │ ├── any_control_set_t.start.hpp
│ │ │ │ ├── breakpointex_t.end.hpp
│ │ │ │ ├── breakpointex_t.start.hpp
│ │ │ │ ├── context_ex_t.end.hpp
│ │ │ │ ├── context_ex_t.start.hpp
│ │ │ │ ├── continue2_t.end.hpp
│ │ │ │ ├── continue2_t.start.hpp
│ │ │ │ ├── continue_t.end.hpp
│ │ │ │ ├── continue_t.start.hpp
│ │ │ │ ├── debug_data_header64_t.end.hpp
│ │ │ │ ├── debug_data_header64_t.start.hpp
│ │ │ │ ├── fill_memory_t.end.hpp
│ │ │ │ ├── fill_memory_t.start.hpp
│ │ │ │ ├── get_internal_breakpoint32_t.end.hpp
│ │ │ │ ├── get_internal_breakpoint32_t.start.hpp
│ │ │ │ ├── get_internal_breakpoint64_t.end.hpp
│ │ │ │ ├── get_internal_breakpoint64_t.start.hpp
│ │ │ │ ├── get_set_bus_data_t.end.hpp
│ │ │ │ ├── get_set_bus_data_t.start.hpp
│ │ │ │ ├── get_version32_t.end.hpp
│ │ │ │ ├── get_version32_t.start.hpp
│ │ │ │ ├── get_version64_t.end.hpp
│ │ │ │ ├── get_version64_t.start.hpp
│ │ │ │ ├── load_symbols32_t.end.hpp
│ │ │ │ ├── load_symbols32_t.start.hpp
│ │ │ │ ├── load_symbols64_t.end.hpp
│ │ │ │ ├── load_symbols64_t.start.hpp
│ │ │ │ ├── manipulate_state32_t.end.hpp
│ │ │ │ ├── manipulate_state32_t.start.hpp
│ │ │ │ ├── manipulate_state64_t.end.hpp
│ │ │ │ ├── manipulate_state64_t.start.hpp
│ │ │ │ ├── query_memory_t.end.hpp
│ │ │ │ ├── query_memory_t.start.hpp
│ │ │ │ ├── query_special_calls_t.end.hpp
│ │ │ │ ├── query_special_calls_t.start.hpp
│ │ │ │ ├── read_memory32_t.end.hpp
│ │ │ │ ├── read_memory32_t.start.hpp
│ │ │ │ ├── read_memory64_t.end.hpp
│ │ │ │ ├── read_memory64_t.start.hpp
│ │ │ │ ├── read_write_io32_t.end.hpp
│ │ │ │ ├── read_write_io32_t.start.hpp
│ │ │ │ ├── read_write_io64_t.end.hpp
│ │ │ │ ├── read_write_io64_t.start.hpp
│ │ │ │ ├── read_write_io_extended32_t.end.hpp
│ │ │ │ ├── read_write_io_extended32_t.start.hpp
│ │ │ │ ├── read_write_io_extended64_t.end.hpp
│ │ │ │ ├── read_write_io_extended64_t.start.hpp
│ │ │ │ ├── read_write_msr_t.end.hpp
│ │ │ │ ├── read_write_msr_t.start.hpp
│ │ │ │ ├── restore_breakpoint_t.end.hpp
│ │ │ │ ├── restore_breakpoint_t.start.hpp
│ │ │ │ ├── search_memory_t.end.hpp
│ │ │ │ ├── search_memory_t.start.hpp
│ │ │ │ ├── set_context_t.end.hpp
│ │ │ │ ├── set_context_t.start.hpp
│ │ │ │ ├── set_internal_breakpoint32_t.end.hpp
│ │ │ │ ├── set_internal_breakpoint32_t.start.hpp
│ │ │ │ ├── set_internal_breakpoint64_t.end.hpp
│ │ │ │ ├── set_internal_breakpoint64_t.start.hpp
│ │ │ │ ├── set_special_call32_t.end.hpp
│ │ │ │ ├── set_special_call32_t.start.hpp
│ │ │ │ ├── set_special_call64_t.end.hpp
│ │ │ │ ├── set_special_call64_t.start.hpp
│ │ │ │ ├── switch_partition_t.end.hpp
│ │ │ │ ├── switch_partition_t.start.hpp
│ │ │ │ ├── write_breakpoint32_t.end.hpp
│ │ │ │ ├── write_breakpoint32_t.start.hpp
│ │ │ │ ├── write_breakpoint64_t.end.hpp
│ │ │ │ ├── write_breakpoint64_t.start.hpp
│ │ │ │ ├── write_custom_breakpoint_t.end.hpp
│ │ │ │ ├── write_custom_breakpoint_t.start.hpp
│ │ │ │ ├── write_memory32_t.end.hpp
│ │ │ │ ├── write_memory32_t.start.hpp
│ │ │ │ ├── write_memory64_t.end.hpp
│ │ │ │ └── write_memory64_t.start.hpp
│ │ │ ├── manipulate_state32_t.hpp
│ │ │ ├── manipulate_state64_t.hpp
│ │ │ ├── query_memory_t.hpp
│ │ │ ├── query_special_calls_t.hpp
│ │ │ ├── read_memory32_t.hpp
│ │ │ ├── read_memory64_t.hpp
│ │ │ ├── read_write_io32_t.hpp
│ │ │ ├── read_write_io64_t.hpp
│ │ │ ├── read_write_io_extended32_t.hpp
│ │ │ ├── read_write_io_extended64_t.hpp
│ │ │ ├── read_write_msr_t.hpp
│ │ │ ├── restore_breakpoint_t.hpp
│ │ │ ├── search_memory_t.hpp
│ │ │ ├── set_context_t.hpp
│ │ │ ├── set_internal_breakpoint32_t.hpp
│ │ │ ├── set_internal_breakpoint64_t.hpp
│ │ │ ├── set_special_call32_t.hpp
│ │ │ ├── set_special_call64_t.hpp
│ │ │ ├── switch_partition_t.hpp
│ │ │ ├── write_breakpoint32_t.hpp
│ │ │ ├── write_breakpoint64_t.hpp
│ │ │ ├── write_custom_breakpoint_t.hpp
│ │ │ ├── write_memory32_t.hpp
│ │ │ └── write_memory64_t.hpp
│ │ ├── dbgkm/
│ │ │ ├── create_process_t.hpp
│ │ │ ├── create_thread_t.hpp
│ │ │ ├── exception32_t.hpp
│ │ │ ├── exception64_t.hpp
│ │ │ ├── exception_t.hpp
│ │ │ ├── exit_process_t.hpp
│ │ │ ├── exit_thread_t.hpp
│ │ │ ├── load_dll_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── create_process_t.end.hpp
│ │ │ │ ├── create_process_t.start.hpp
│ │ │ │ ├── create_thread_t.end.hpp
│ │ │ │ ├── create_thread_t.start.hpp
│ │ │ │ ├── exception32_t.end.hpp
│ │ │ │ ├── exception32_t.start.hpp
│ │ │ │ ├── exception64_t.end.hpp
│ │ │ │ ├── exception64_t.start.hpp
│ │ │ │ ├── exception_t.end.hpp
│ │ │ │ ├── exception_t.start.hpp
│ │ │ │ ├── exit_process_t.end.hpp
│ │ │ │ ├── exit_process_t.start.hpp
│ │ │ │ ├── exit_thread_t.end.hpp
│ │ │ │ ├── exit_thread_t.start.hpp
│ │ │ │ ├── load_dll_t.end.hpp
│ │ │ │ ├── load_dll_t.start.hpp
│ │ │ │ ├── unload_dll_t.end.hpp
│ │ │ │ └── unload_dll_t.start.hpp
│ │ │ └── unload_dll_t.hpp
│ │ ├── dbgkp/
│ │ │ ├── api.hpp
│ │ │ ├── error_port_t.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── dbgp/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── devpkey/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── disk/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── dma/
│ │ │ ├── adapter_info_crashdump_t.hpp
│ │ │ ├── adapter_info_t.hpp
│ │ │ ├── adapter_info_v1_t.hpp
│ │ │ ├── adapter_t.hpp
│ │ │ ├── api.hpp
│ │ │ ├── common_buffer_entry_t.hpp
│ │ │ ├── common_buffer_extended_configuration_access_type_t.hpp
│ │ │ ├── common_buffer_extended_configuration_t.hpp
│ │ │ ├── common_buffer_extended_configuration_type_t.hpp
│ │ │ ├── common_buffer_vector_t.hpp
│ │ │ ├── completion_status_t.hpp
│ │ │ ├── configuration_byte0_t.hpp
│ │ │ ├── configuration_byte1_t.hpp
│ │ │ ├── function_table_t.hpp
│ │ │ ├── interrupt_type_t.hpp
│ │ │ ├── iommu_interface_ex_t.hpp
│ │ │ ├── iommu_interface_t.hpp
│ │ │ ├── iommu_interface_v1_t.hpp
│ │ │ ├── iommu_interface_v2_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── adapter_info_crashdump_t.end.hpp
│ │ │ │ ├── adapter_info_crashdump_t.start.hpp
│ │ │ │ ├── adapter_info_t.end.hpp
│ │ │ │ ├── adapter_info_t.start.hpp
│ │ │ │ ├── adapter_info_v1_t.end.hpp
│ │ │ │ ├── adapter_info_v1_t.start.hpp
│ │ │ │ ├── adapter_t.end.hpp
│ │ │ │ ├── adapter_t.start.hpp
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── common_buffer_entry_t.end.hpp
│ │ │ │ ├── common_buffer_entry_t.start.hpp
│ │ │ │ ├── common_buffer_extended_configuration_t.end.hpp
│ │ │ │ ├── common_buffer_extended_configuration_t.start.hpp
│ │ │ │ ├── common_buffer_vector_t.end.hpp
│ │ │ │ ├── common_buffer_vector_t.start.hpp
│ │ │ │ ├── configuration_byte0_t.end.hpp
│ │ │ │ ├── configuration_byte0_t.start.hpp
│ │ │ │ ├── configuration_byte1_t.end.hpp
│ │ │ │ ├── configuration_byte1_t.start.hpp
│ │ │ │ ├── function_table_t.end.hpp
│ │ │ │ ├── function_table_t.start.hpp
│ │ │ │ ├── iommu_interface_ex_t.end.hpp
│ │ │ │ ├── iommu_interface_ex_t.start.hpp
│ │ │ │ ├── iommu_interface_t.end.hpp
│ │ │ │ ├── iommu_interface_t.start.hpp
│ │ │ │ ├── iommu_interface_v1_t.end.hpp
│ │ │ │ ├── iommu_interface_v1_t.start.hpp
│ │ │ │ ├── iommu_interface_v2_t.end.hpp
│ │ │ │ ├── iommu_interface_v2_t.start.hpp
│ │ │ │ ├── operations_t.end.hpp
│ │ │ │ ├── operations_t.start.hpp
│ │ │ │ ├── request_line_binding_description_t.end.hpp
│ │ │ │ ├── request_line_binding_description_t.start.hpp
│ │ │ │ ├── scatter_gather_list_t.end.hpp
│ │ │ │ ├── scatter_gather_list_t.start.hpp
│ │ │ │ ├── transfer_context_t.end.hpp
│ │ │ │ ├── transfer_context_t.start.hpp
│ │ │ │ ├── transfer_context_v1_t.end.hpp
│ │ │ │ ├── transfer_context_v1_t.start.hpp
│ │ │ │ ├── transfer_info_t.end.hpp
│ │ │ │ ├── transfer_info_t.start.hpp
│ │ │ │ ├── transfer_info_v1_t.end.hpp
│ │ │ │ ├── transfer_info_v1_t.start.hpp
│ │ │ │ ├── transfer_info_v2_t.end.hpp
│ │ │ │ └── transfer_info_v2_t.start.hpp
│ │ │ ├── operations_t.hpp
│ │ │ ├── parameters_t.hpp
│ │ │ ├── request_line_binding_description_t.hpp
│ │ │ ├── scatter_gather_list_t.hpp
│ │ │ ├── speed_t.hpp
│ │ │ ├── transfer_context_t.hpp
│ │ │ ├── transfer_context_v1_t.hpp
│ │ │ ├── transfer_info_t.hpp
│ │ │ ├── transfer_info_v1_t.hpp
│ │ │ ├── transfer_info_v2_t.hpp
│ │ │ └── width_t.hpp
│ │ ├── dmar/
│ │ │ ├── api.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ └── page_table_state_t.hpp
│ │ ├── dmm/
│ │ │ ├── api.hpp
│ │ │ ├── client_type_t.hpp
│ │ │ ├── cofuncpathsmodality_serialization_t.hpp
│ │ │ ├── commitvidpnrequest_diaginfo_t.hpp
│ │ │ ├── commitvidpnrequest_serialization_t.hpp
│ │ │ ├── commitvidpnrequestset_serialization_t.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── cofuncpathsmodality_serialization_t.end.hpp
│ │ │ │ ├── cofuncpathsmodality_serialization_t.start.hpp
│ │ │ │ ├── commitvidpnrequest_diaginfo_t.end.hpp
│ │ │ │ ├── commitvidpnrequest_diaginfo_t.start.hpp
│ │ │ │ ├── commitvidpnrequest_serialization_t.end.hpp
│ │ │ │ ├── commitvidpnrequest_serialization_t.start.hpp
│ │ │ │ ├── commitvidpnrequestset_serialization_t.end.hpp
│ │ │ │ ├── commitvidpnrequestset_serialization_t.start.hpp
│ │ │ │ ├── monitor_serialization_t.end.hpp
│ │ │ │ ├── monitor_serialization_t.start.hpp
│ │ │ │ ├── monitor_source_mode_serialization_t.end.hpp
│ │ │ │ ├── monitor_source_mode_serialization_t.start.hpp
│ │ │ │ ├── monitordescriptor_serialization_t.end.hpp
│ │ │ │ ├── monitordescriptor_serialization_t.start.hpp
│ │ │ │ ├── monitordescriptorset_serialization_t.end.hpp
│ │ │ │ ├── monitordescriptorset_serialization_t.start.hpp
│ │ │ │ ├── monitorfrequencyrangeset_serialization_t.end.hpp
│ │ │ │ ├── monitorfrequencyrangeset_serialization_t.start.hpp
│ │ │ │ ├── monitorsourcemodeset_serialization_t.end.hpp
│ │ │ │ ├── monitorsourcemodeset_serialization_t.start.hpp
│ │ │ │ ├── vidpn_serialization_t.end.hpp
│ │ │ │ ├── vidpn_serialization_t.start.hpp
│ │ │ │ ├── vidpnpathandtargetmode_serialization_t.end.hpp
│ │ │ │ ├── vidpnpathandtargetmode_serialization_t.start.hpp
│ │ │ │ ├── vidpnpathandtargetmodeset_serialization_t.end.hpp
│ │ │ │ ├── vidpnpathandtargetmodeset_serialization_t.start.hpp
│ │ │ │ ├── vidpnpathsfromsource_serialization_t.end.hpp
│ │ │ │ ├── vidpnpathsfromsource_serialization_t.start.hpp
│ │ │ │ ├── vidpnset_serialization_t.end.hpp
│ │ │ │ ├── vidpnset_serialization_t.start.hpp
│ │ │ │ ├── vidpntargetmodeset_serialization_t.end.hpp
│ │ │ │ └── vidpntargetmodeset_serialization_t.start.hpp
│ │ │ ├── mode_pruning_algorithm_t.hpp
│ │ │ ├── monitor_presence_event_type_t.hpp
│ │ │ ├── monitor_serialization_t.hpp
│ │ │ ├── monitor_source_mode_serialization_t.hpp
│ │ │ ├── monitordescriptor_serialization_t.hpp
│ │ │ ├── monitordescriptorset_serialization_t.hpp
│ │ │ ├── monitorfrequencyrangeset_serialization_t.hpp
│ │ │ ├── monitorsourcemodeset_serialization_t.hpp
│ │ │ ├── vidpn_monitor_type_t.hpp
│ │ │ ├── vidpn_serialization_t.hpp
│ │ │ ├── vidpnchange_type_t.hpp
│ │ │ ├── vidpnpathandtargetmode_serialization_t.hpp
│ │ │ ├── vidpnpathandtargetmodeset_serialization_t.hpp
│ │ │ ├── vidpnpathsfromsource_serialization_t.hpp
│ │ │ ├── vidpnset_serialization_t.hpp
│ │ │ └── vidpntargetmodeset_serialization_t.hpp
│ │ ├── dmr/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── dmrp/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── drv/
│ │ │ ├── api.hpp
│ │ │ ├── extension_t.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ ├── api.start.hpp
│ │ │ ├── extension_t.end.hpp
│ │ │ └── extension_t.start.hpp
│ │ ├── drvp/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── dwm/
│ │ │ ├── api.hpp
│ │ │ ├── hit_test_leave_enter_crit/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── dxgi/
│ │ │ ├── adapter_enum_module_data/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── api.hpp
│ │ │ ├── atl/
│ │ │ │ ├── api.hpp
│ │ │ │ ├── c_atl_base_module/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── c_atl_com_module/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── c_atl_module/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── c_com_critical_section/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── c_com_multi_thread_model_no_cs/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── c_com_object_root_base/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── auto_hrgn/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── auto_hsdb/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── auto_unbind_from_dwm/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_closest_mm_helper/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_critical_section/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_destruction_notifier/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_driver_block_list/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_dxgi_etw_profile_pair/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_lazy_module/
│ │ │ │ ├── api.hpp
│ │ │ │ ├── d_composition_info/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_lock_owner/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_locked_dll_globals/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_locked_factory_child/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_module/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_paper_white_brightness_listener/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_private_data/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_public_use_count_watcher/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_registry_watcher/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_source_bits/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_source_bits_dib_section/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_source_bits_existing_dxgi_surface/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_telemetry_helper/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_thread_lock/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cd3d11_format_helper/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cd3d12_device/
│ │ │ │ ├── api.hpp
│ │ │ │ ├── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ └── s_per_queue_type_data/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cd3d12_fence/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cd3d12_resource/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cd3dx12_blend_desc/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cddi_primary_desc/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxg_kernel_enumeration/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_adapter/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_base_adapter/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_color_space_helper/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_enumerated_mode/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_factory/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_format/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_indirect_swap_chain/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_lightweight_device/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_mode_desc/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_mutex_in_separate_thread/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_output/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_output_duplication/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_surface_dib_section/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_swap_chain/
│ │ │ │ ├── api.hpp
│ │ │ │ ├── c_prep_win32_sentinel/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── cross_adapter_fence/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ └── proxy_flip_info/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_swap_chain_application_class/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_swap_chain_dwm_legacy/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_swap_chain_wrapper/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgi_telemetry_helper/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cdxgihmd_emulated_output/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_create_dxgi_factory/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_adapter_check_interface_support/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_factory_create_software_adapter/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_factory_create_swap_chain/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_factory_enum_adapters/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_factory_get_window_association/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_factory_make_window_association/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_output_find_closest_matching_mode/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_output_get_display_mode_list/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_output_get_display_surface_data/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_output_get_frame_statistics/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_output_get_gamma_control/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_output_get_gamma_control_capabilities/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_output_release_ownership/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_output_set_display_surface/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_output_set_gamma_control/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_output_take_ownership/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_swap_chain_get_containing_output/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_swap_chain_get_desc/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_swap_chain_get_frame_statistics/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_swap_chain_get_fullscreen_state/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_swap_chain_resize_buffers/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_swap_chain_resize_target/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── cetw_event_idxgi_swap_chain_set_fullscreen_state/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── chdr_converter/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── chdr_converter_dx11/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── chdr_converter_dx12/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── color_space_type_t.hpp
│ │ │ ├── com_error/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── ddi/
│ │ │ │ └── cb/
│ │ │ │ ├── magic/
│ │ │ │ │ ├── present_multiplane_overlay1_t.end.hpp
│ │ │ │ │ ├── present_multiplane_overlay1_t.start.hpp
│ │ │ │ │ ├── present_multiplane_overlay_t.end.hpp
│ │ │ │ │ ├── present_multiplane_overlay_t.start.hpp
│ │ │ │ │ ├── present_t.end.hpp
│ │ │ │ │ ├── present_t.start.hpp
│ │ │ │ │ ├── submitpresentblttohwqueue_t.end.hpp
│ │ │ │ │ ├── submitpresentblttohwqueue_t.start.hpp
│ │ │ │ │ ├── submitpresenttohwqueue_t.end.hpp
│ │ │ │ │ └── submitpresenttohwqueue_t.start.hpp
│ │ │ │ ├── present_multiplane_overlay1_t.hpp
│ │ │ │ ├── present_multiplane_overlay_t.hpp
│ │ │ │ ├── present_t.hpp
│ │ │ │ ├── submitpresentblttohwqueue_t.hpp
│ │ │ │ └── submitpresenttohwqueue_t.hpp
│ │ │ ├── ddi_arg_blt1_t.hpp
│ │ │ ├── ddi_arg_blt_flags_t.hpp
│ │ │ ├── ddi_arg_blt_t.hpp
│ │ │ ├── ddi_arg_checkmultiplaneoverlaycolorspacesupport_t.hpp
│ │ │ ├── ddi_arg_checkmultiplaneoverlaysupport_t.hpp
│ │ │ ├── ddi_arg_checkpresentdurationsupport_t.hpp
│ │ │ ├── ddi_arg_get_gamma_control_caps_t.hpp
│ │ │ ├── ddi_arg_getmultiplaneoverlaycaps_t.hpp
│ │ │ ├── ddi_arg_getmultiplaneoverlaygroupcaps_t.hpp
│ │ │ ├── ddi_arg_offerresources1_t.hpp
│ │ │ ├── ddi_arg_offerresources_t.hpp
│ │ │ ├── ddi_arg_present1_t.hpp
│ │ │ ├── ddi_arg_present_t.hpp
│ │ │ ├── ddi_arg_presentmultiplaneoverlay1_t.hpp
│ │ │ ├── ddi_arg_presentmultiplaneoverlay_t.hpp
│ │ │ ├── ddi_arg_presentsurface_t.hpp
│ │ │ ├── ddi_arg_queryresourceresidency_t.hpp
│ │ │ ├── ddi_arg_reclaimresources1_t.hpp
│ │ │ ├── ddi_arg_reclaimresources_t.hpp
│ │ │ ├── ddi_arg_resolvesharedresource_t.hpp
│ │ │ ├── ddi_arg_rotate_resource_identities_t.hpp
│ │ │ ├── ddi_arg_set_gamma_control_t.hpp
│ │ │ ├── ddi_arg_setdisplaymode_t.hpp
│ │ │ ├── ddi_arg_setresourcepriority_t.hpp
│ │ │ ├── ddi_arg_trimresidencyset_t.hpp
│ │ │ ├── ddi_base_args_t.hpp
│ │ │ ├── ddi_base_callbacks_t.hpp
│ │ │ ├── ddi_base_functions_t.hpp
│ │ │ ├── ddi_check_multiplaneoverlaysupport_plane_info_t.hpp
│ │ │ ├── ddi_flip_interval_type_t.hpp
│ │ │ ├── ddi_mode_desc_t.hpp
│ │ │ ├── ddi_mode_rotation_t.hpp
│ │ │ ├── ddi_mode_scaling_t.hpp
│ │ │ ├── ddi_mode_scanline_order_t.hpp
│ │ │ ├── ddi_multiplane_overlay_attributes1_t.hpp
│ │ │ ├── ddi_multiplane_overlay_attributes_t.hpp
│ │ │ ├── ddi_multiplane_overlay_blend_t.hpp
│ │ │ ├── ddi_multiplane_overlay_caps_t.hpp
│ │ │ ├── ddi_multiplane_overlay_feature_caps_t.hpp
│ │ │ ├── ddi_multiplane_overlay_flags_t.hpp
│ │ │ ├── ddi_multiplane_overlay_group_caps_t.hpp
│ │ │ ├── ddi_multiplane_overlay_stereo_caps_t.hpp
│ │ │ ├── ddi_multiplane_overlay_stereo_flip_mode_t.hpp
│ │ │ ├── ddi_multiplane_overlay_stereo_format_t.hpp
│ │ │ ├── ddi_multiplane_overlay_stretch_quality_t.hpp
│ │ │ ├── ddi_multiplane_overlay_video_frame_format_t.hpp
│ │ │ ├── ddi_multiplane_overlay_y_cb_cr_flags_t.hpp
│ │ │ ├── ddi_present_flags_t.hpp
│ │ │ ├── ddi_present_multiplane_overlay1_t.hpp
│ │ │ ├── ddi_present_multiplane_overlay_t.hpp
│ │ │ ├── ddi_primary_desc_t.hpp
│ │ │ ├── ddi_rational_t.hpp
│ │ │ ├── ddi_residency_t.hpp
│ │ │ ├── direct_x_database_helper_telemetry/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── enum_adapter_by_gpu_preference_info/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── exception/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── float16/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── format_t.hpp
│ │ │ ├── fullscreen_present_info/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── game_config_store/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── gamma_control_capabilities_t.hpp
│ │ │ ├── gamma_control_t.hpp
│ │ │ ├── gdi_thunks/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── gpm_helper/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── jpeg_ac_huffman_table_t.hpp
│ │ │ ├── jpeg_dc_huffman_table_t.hpp
│ │ │ ├── jpeg_quantization_table_t.hpp
│ │ │ ├── lock_owner_lock/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── log_marker_helper/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ ├── api.start.hpp
│ │ │ │ ├── ddi_arg_blt1_t.end.hpp
│ │ │ │ ├── ddi_arg_blt1_t.start.hpp
│ │ │ │ ├── ddi_arg_blt_flags_t.end.hpp
│ │ │ │ ├── ddi_arg_blt_flags_t.start.hpp
│ │ │ │ ├── ddi_arg_blt_t.end.hpp
│ │ │ │ ├── ddi_arg_blt_t.start.hpp
│ │ │ │ ├── ddi_arg_checkmultiplaneoverlaycolorspacesupport_t.end.hpp
│ │ │ │ ├── ddi_arg_checkmultiplaneoverlaycolorspacesupport_t.start.hpp
│ │ │ │ ├── ddi_arg_checkmultiplaneoverlaysupport_t.end.hpp
│ │ │ │ ├── ddi_arg_checkmultiplaneoverlaysupport_t.start.hpp
│ │ │ │ ├── ddi_arg_checkpresentdurationsupport_t.end.hpp
│ │ │ │ ├── ddi_arg_checkpresentdurationsupport_t.start.hpp
│ │ │ │ ├── ddi_arg_get_gamma_control_caps_t.end.hpp
│ │ │ │ ├── ddi_arg_get_gamma_control_caps_t.start.hpp
│ │ │ │ ├── ddi_arg_getmultiplaneoverlaycaps_t.end.hpp
│ │ │ │ ├── ddi_arg_getmultiplaneoverlaycaps_t.start.hpp
│ │ │ │ ├── ddi_arg_getmultiplaneoverlaygroupcaps_t.end.hpp
│ │ │ │ ├── ddi_arg_getmultiplaneoverlaygroupcaps_t.start.hpp
│ │ │ │ ├── ddi_arg_offerresources1_t.end.hpp
│ │ │ │ ├── ddi_arg_offerresources1_t.start.hpp
│ │ │ │ ├── ddi_arg_offerresources_t.end.hpp
│ │ │ │ ├── ddi_arg_offerresources_t.start.hpp
│ │ │ │ ├── ddi_arg_present1_t.end.hpp
│ │ │ │ ├── ddi_arg_present1_t.start.hpp
│ │ │ │ ├── ddi_arg_present_t.end.hpp
│ │ │ │ ├── ddi_arg_present_t.start.hpp
│ │ │ │ ├── ddi_arg_presentmultiplaneoverlay1_t.end.hpp
│ │ │ │ ├── ddi_arg_presentmultiplaneoverlay1_t.start.hpp
│ │ │ │ ├── ddi_arg_presentmultiplaneoverlay_t.end.hpp
│ │ │ │ ├── ddi_arg_presentmultiplaneoverlay_t.start.hpp
│ │ │ │ ├── ddi_arg_presentsurface_t.end.hpp
│ │ │ │ ├── ddi_arg_presentsurface_t.start.hpp
│ │ │ │ ├── ddi_arg_queryresourceresidency_t.end.hpp
│ │ │ │ ├── ddi_arg_queryresourceresidency_t.start.hpp
│ │ │ │ ├── ddi_arg_reclaimresources1_t.end.hpp
│ │ │ │ ├── ddi_arg_reclaimresources1_t.start.hpp
│ │ │ │ ├── ddi_arg_reclaimresources_t.end.hpp
│ │ │ │ ├── ddi_arg_reclaimresources_t.start.hpp
│ │ │ │ ├── ddi_arg_resolvesharedresource_t.end.hpp
│ │ │ │ ├── ddi_arg_resolvesharedresource_t.start.hpp
│ │ │ │ ├── ddi_arg_rotate_resource_identities_t.end.hpp
│ │ │ │ ├── ddi_arg_rotate_resource_identities_t.start.hpp
│ │ │ │ ├── ddi_arg_set_gamma_control_t.end.hpp
│ │ │ │ ├── ddi_arg_set_gamma_control_t.start.hpp
│ │ │ │ ├── ddi_arg_setdisplaymode_t.end.hpp
│ │ │ │ ├── ddi_arg_setdisplaymode_t.start.hpp
│ │ │ │ ├── ddi_arg_setresourcepriority_t.end.hpp
│ │ │ │ ├── ddi_arg_setresourcepriority_t.start.hpp
│ │ │ │ ├── ddi_arg_trimresidencyset_t.end.hpp
│ │ │ │ ├── ddi_arg_trimresidencyset_t.start.hpp
│ │ │ │ ├── ddi_base_args_t.end.hpp
│ │ │ │ ├── ddi_base_args_t.start.hpp
│ │ │ │ ├── ddi_base_callbacks_t.end.hpp
│ │ │ │ ├── ddi_base_callbacks_t.start.hpp
│ │ │ │ ├── ddi_base_functions_t.end.hpp
│ │ │ │ ├── ddi_base_functions_t.start.hpp
│ │ │ │ ├── ddi_check_multiplaneoverlaysupport_plane_info_t.end.hpp
│ │ │ │ ├── ddi_check_multiplaneoverlaysupport_plane_info_t.start.hpp
│ │ │ │ ├── ddi_mode_desc_t.end.hpp
│ │ │ │ ├── ddi_mode_desc_t.start.hpp
│ │ │ │ ├── ddi_multiplane_overlay_attributes1_t.end.hpp
│ │ │ │ ├── ddi_multiplane_overlay_attributes1_t.start.hpp
│ │ │ │ ├── ddi_multiplane_overlay_attributes_t.end.hpp
│ │ │ │ ├── ddi_multiplane_overlay_attributes_t.start.hpp
│ │ │ │ ├── ddi_multiplane_overlay_caps_t.end.hpp
│ │ │ │ ├── ddi_multiplane_overlay_caps_t.start.hpp
│ │ │ │ ├── ddi_multiplane_overlay_group_caps_t.end.hpp
│ │ │ │ ├── ddi_multiplane_overlay_group_caps_t.start.hpp
│ │ │ │ ├── ddi_present_flags_t.end.hpp
│ │ │ │ ├── ddi_present_flags_t.start.hpp
│ │ │ │ ├── ddi_present_multiplane_overlay1_t.end.hpp
│ │ │ │ ├── ddi_present_multiplane_overlay1_t.start.hpp
│ │ │ │ ├── ddi_present_multiplane_overlay_t.end.hpp
│ │ │ │ ├── ddi_present_multiplane_overlay_t.start.hpp
│ │ │ │ ├── ddi_primary_desc_t.end.hpp
│ │ │ │ ├── ddi_primary_desc_t.start.hpp
│ │ │ │ ├── ddi_rational_t.end.hpp
│ │ │ │ ├── ddi_rational_t.start.hpp
│ │ │ │ ├── gamma_control_capabilities_t.end.hpp
│ │ │ │ ├── gamma_control_capabilities_t.start.hpp
│ │ │ │ ├── gamma_control_t.end.hpp
│ │ │ │ ├── gamma_control_t.start.hpp
│ │ │ │ ├── jpeg_ac_huffman_table_t.end.hpp
│ │ │ │ ├── jpeg_ac_huffman_table_t.start.hpp
│ │ │ │ ├── jpeg_dc_huffman_table_t.end.hpp
│ │ │ │ ├── jpeg_dc_huffman_table_t.start.hpp
│ │ │ │ ├── jpeg_quantization_table_t.end.hpp
│ │ │ │ ├── jpeg_quantization_table_t.start.hpp
│ │ │ │ ├── mode_desc_t.end.hpp
│ │ │ │ ├── mode_desc_t.start.hpp
│ │ │ │ ├── rational_t.end.hpp
│ │ │ │ ├── rational_t.start.hpp
│ │ │ │ ├── rgb_t.end.hpp
│ │ │ │ ├── rgb_t.start.hpp
│ │ │ │ ├── sample_desc_t.end.hpp
│ │ │ │ └── sample_desc_t.start.hpp
│ │ │ ├── microsoft/
│ │ │ │ └── wrl/
│ │ │ │ ├── details/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ ├── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ └── module_base/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── ftm_base/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ └── wrappers/
│ │ │ │ └── h_string_reference/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── mode_desc_t.hpp
│ │ │ ├── mode_rotation_t.hpp
│ │ │ ├── mode_scaling_t.hpp
│ │ │ ├── mode_scanline_order_t.hpp
│ │ │ ├── notification_registry/
│ │ │ │ ├── api.hpp
│ │ │ │ ├── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ └── notification_record/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── occlusion_factory_data/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── occlusion_module_data/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── output_enumerator/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── per_app_user_settings_helper/
│ │ │ │ ├── api.hpp
│ │ │ │ ├── auto_string/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── proxy_window/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── rational_t.hpp
│ │ │ ├── render_pass_dx11/
│ │ │ │ └── c_render_pass_quad/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── render_pass_dx12/
│ │ │ │ ├── c3d_lut_builder_dx12/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── c_grfx_pipeline_state/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── c_render_pass_quad/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ └── waitable_fence/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── rgb_t.hpp
│ │ │ ├── s_adapter_desc/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── s_guid/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── s_output_desc/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── safe_handle/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── sample_desc_t.hpp
│ │ │ ├── scoped_d3d12_internal_device_child_creation/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── std/
│ │ │ │ ├── api.hpp
│ │ │ │ ├── bad_function_call/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── error_category/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── generic_error_category/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── iostream_error_category/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ └── system_error_category/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── stereo_factory_data/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── stereo_module_data/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── unique_hmodule/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── wil/
│ │ │ │ ├── api.hpp
│ │ │ │ ├── details/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ ├── enabled_state_manager/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── feature_logging/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── feature_state_manager/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── in1diag3/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── shared_buffer/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ └── thread_failure_callback_holder/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── details_abi/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ ├── feature_state_data/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── heap_buffer/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── raw_usage_index/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── semaphore_value/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── subscription_list/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── thread_local_data/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── thread_local_failure_info/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ ├── usage_index_property/
│ │ │ │ │ │ ├── api.hpp
│ │ │ │ │ │ └── magic/
│ │ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ │ └── api.start.hpp
│ │ │ │ │ └── usage_indexes/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── result_exception/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── stored_failure_info/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ └── trace_logging_provider/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ └── window_class/
│ │ │ ├── api.hpp
│ │ │ └── magic/
│ │ │ ├── api.end.hpp
│ │ │ └── api.start.hpp
│ │ ├── dxgk/
│ │ │ ├── active_vidpn_invalidation_reason_t.hpp
│ │ │ ├── adapter_display/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── adapter_perfdata_t.hpp
│ │ │ ├── adapter_perfdatacaps_t.hpp
│ │ │ ├── adapter_render/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── adapterownertracker/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── agp_interface_t.hpp
│ │ │ ├── allocationinfo_t.hpp
│ │ │ ├── allocationinfoflags_t.hpp
│ │ │ ├── allocationinfoflags_wddm2_0_t.hpp
│ │ │ ├── allocationlist_t.hpp
│ │ │ ├── allocationusagehint_t.hpp
│ │ │ ├── allocationusageinfo1_t.hpp
│ │ │ ├── api.hpp
│ │ │ ├── apply_permission_within_this_scope/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── arg/
│ │ │ │ ├── acquireswizzlingrange_t.hpp
│ │ │ │ ├── beginexclusiveaccess_t.hpp
│ │ │ │ ├── buildpagingbuffer_t.hpp
│ │ │ │ ├── cancelcommand_t.hpp
│ │ │ │ ├── cb/
│ │ │ │ │ ├── allocatecontiguousmemory_t.hpp
│ │ │ │ │ ├── allocatepagesformdl_t.hpp
│ │ │ │ │ ├── createcontextallocation_t.hpp
│ │ │ │ │ ├── enumhandlechildren_t.hpp
│ │ │ │ │ ├── freecontiguousmemory_t.hpp
│ │ │ │ │ ├── freepagesfrommdl_t.hpp
│ │ │ │ │ ├── getcaptureaddress_t.hpp
│ │ │ │ │ ├── gethandledata_t.hpp
│ │ │ │ │ ├── invalidatehwcontext_t.hpp
│ │ │ │ │ ├── isfeatureenabled_t.hpp
│ │ │ │ │ ├── magic/
│ │ │ │ │ │ ├── allocatecontiguousmemory_t.end.hpp
│ │ │ │ │ │ ├── allocatecontiguousmemory_t.start.hpp
│ │ │ │ │ │ ├── allocatepagesformdl_t.end.hpp
│ │ │ │ │ │ ├── allocatepagesformdl_t.start.hpp
│ │ │ │ │ │ ├── createcontextallocation_t.end.hpp
│ │ │ │ │ │ ├── createcontextallocation_t.start.hpp
│ │ │ │ │ │ ├── enumhandlechildren_t.end.hpp
│ │ │ │ │ │ ├── enumhandlechildren_t.start.hpp
│ │ │ │ │ │ ├── freecontiguousmemory_t.end.hpp
│ │ │ │ │ │ ├── freecontiguousmemory_t.start.hpp
│ │ │ │ │ │ ├── freepagesfrommdl_t.end.hpp
│ │ │ │ │ │ ├── freepagesfrommdl_t.start.hpp
│ │ │ │ │ │ ├── getcaptureaddress_t.end.hpp
│ │ │ │ │ │ ├── getcaptureaddress_t.start.hpp
│ │ │ │ │ │ ├── gethandledata_t.end.hpp
│ │ │ │ │ │ ├── gethandledata_t.start.hpp
│ │ │ │ │ │ ├── invalidatehwcontext_t.end.hpp
│ │ │ │ │ │ ├── invalidatehwcontext_t.start.hpp
│ │ │ │ │ │ ├── isfeatureenabled_t.end.hpp
│ │ │ │ │ │ ├── isfeatureenabled_t.start.hpp
│ │ │ │ │ │ ├── mapcontextallocation_t.end.hpp
│ │ │ │ │ │ ├── mapcontextallocation_t.start.hpp
│ │ │ │ │ │ ├── mapframebufferpointer_t.end.hpp
│ │ │ │ │ │ ├── mapframebufferpointer_t.start.hpp
│ │ │ │ │ │ ├── mapmdltoiommu_t.end.hpp
│ │ │ │ │ │ ├── mapmdltoiommu_t.start.hpp
│ │ │ │ │ │ ├── notify_interrupt_data_t.end.hpp
│ │ │ │ │ │ ├── notify_interrupt_data_t.start.hpp
│ │ │ │ │ │ ├── pinframebufferforsave_t.end.hpp
│ │ │ │ │ │ ├── pinframebufferforsave_t.start.hpp
│ │ │ │ │ │ ├── present_displayonly_progress_t.end.hpp
│ │ │ │ │ │ ├── present_displayonly_progress_t.start.hpp
│ │ │ │ │ │ ├── protectedsessionstatus_t.end.hpp
│ │ │ │ │ │ ├── protectedsessionstatus_t.start.hpp
│ │ │ │ │ │ ├── releasehandledata_t.end.hpp
│ │ │ │ │ │ ├── releasehandledata_t.start.hpp
│ │ │ │ │ │ ├── reservegpuvirtualaddressrange_t.end.hpp
│ │ │ │ │ │ ├── reservegpuvirtualaddressrange_t.start.hpp
│ │ │ │ │ │ ├── savememoryforhotupdate_t.end.hpp
│ │ │ │ │ │ ├── savememoryforhotupdate_t.start.hpp
│ │ │ │ │ │ ├── signalevent_t.end.hpp
│ │ │ │ │ │ ├── signalevent_t.start.hpp
│ │ │ │ │ │ ├── unmapframebufferpointer_t.end.hpp
│ │ │ │ │ │ ├── unmapframebufferpointer_t.start.hpp
│ │ │ │ │ │ ├── unmapmdlfromiommu_t.end.hpp
│ │ │ │ │ │ ├── unmapmdlfromiommu_t.start.hpp
│ │ │ │ │ │ ├── unpinframebufferforsave_t.end.hpp
│ │ │ │ │ │ ├── unpinframebufferforsave_t.start.hpp
│ │ │ │ │ │ ├── updatecontextallocation_t.end.hpp
│ │ │ │ │ │ └── updatecontextallocation_t.start.hpp
│ │ │ │ │ ├── mapcontextallocation_t.hpp
│ │ │ │ │ ├── mapframebufferpointer_t.hpp
│ │ │ │ │ ├── mapmdltoiommu_t.hpp
│ │ │ │ │ ├── notify_interrupt_data_t.hpp
│ │ │ │ │ ├── pinframebufferforsave_t.hpp
│ │ │ │ │ ├── present_displayonly_progress_t.hpp
│ │ │ │ │ ├── protectedsessionstatus_t.hpp
│ │ │ │ │ ├── releasehandledata_t.hpp
│ │ │ │ │ ├── reservegpuvirtualaddressrange_t.hpp
│ │ │ │ │ ├── savememoryforhotupdate_t.hpp
│ │ │ │ │ ├── signalevent_t.hpp
│ │ │ │ │ ├── unmapframebufferpointer_t.hpp
│ │ │ │ │ ├── unmapmdlfromiommu_t.hpp
│ │ │ │ │ ├── unpinframebufferforsave_t.hpp
│ │ │ │ │ └── updatecontextallocation_t.hpp
│ │ │ │ ├── checkmultiplaneoverlaysupport2_t.hpp
│ │ │ │ ├── checkmultiplaneoverlaysupport3_t.hpp
│ │ │ │ ├── checkmultiplaneoverlaysupport_t.hpp
│ │ │ │ ├── closeallocation_t.hpp
│ │ │ │ ├── collectdbginfo_ext_t.hpp
│ │ │ │ ├── collectdbginfo_t.hpp
│ │ │ │ ├── collectdiagnosticinfo_t.hpp
│ │ │ │ ├── commitvidpn_flags_t.hpp
│ │ │ │ ├── commitvidpn_t.hpp
│ │ │ │ ├── controldiagnosticreporting_t.hpp
│ │ │ │ ├── controlinterrupt2_t.hpp
│ │ │ │ ├── controlinterrupt3_t.hpp
│ │ │ │ ├── controlmodebehavior_t.hpp
│ │ │ │ ├── createallocation_t.hpp
│ │ │ │ ├── createcontext_t.hpp
│ │ │ │ ├── createdevice_t.hpp
│ │ │ │ ├── createhwcontext_t.hpp
│ │ │ │ ├── createhwqueue_t.hpp
│ │ │ │ ├── createoverlay_t.hpp
│ │ │ │ ├── createperiodicframenotification_t.hpp
│ │ │ │ ├── createprocess_t.hpp
│ │ │ │ ├── createprotectedsession_t.hpp
│ │ │ │ ├── createvirtualgpu_t.hpp
│ │ │ │ ├── describeallocation_t.hpp
│ │ │ │ ├── destroyallocation_t.hpp
│ │ │ │ ├── destroyperiodicframenotification_t.hpp
│ │ │ │ ├── destroyvirtualgpu_t.hpp
│ │ │ │ ├── displaydetectcontrol_t.hpp
│ │ │ │ ├── displaystate_intrusive_t.hpp
│ │ │ │ ├── dpauxiotransmission_t.hpp
│ │ │ │ ├── dpi2ciotransmission_t.hpp
│ │ │ │ ├── dpsbmtransmission_t.hpp
│ │ │ │ ├── endexclusiveaccess_t.hpp
│ │ │ │ ├── enumvidpncofuncmodality_t.hpp
│ │ │ │ ├── escape_t.hpp
│ │ │ │ ├── flipoverlay_t.hpp
│ │ │ │ ├── formathistorybuffer_t.hpp
│ │ │ │ ├── getbackingresource_t.hpp
│ │ │ │ ├── getdevicelocation_t.hpp
│ │ │ │ ├── getdisplaystate_intrusive_t.hpp
│ │ │ │ ├── getdisplaystate_nonintrusive_t.hpp
│ │ │ │ ├── getdpaddress_t.hpp
│ │ │ │ ├── getgpuengines_t.hpp
│ │ │ │ ├── getgpupartitioninfo_t.hpp
│ │ │ │ ├── getmmiorangecount_t.hpp
│ │ │ │ ├── getmmioranges_t.hpp
│ │ │ │ ├── getmultiplaneoverlaycaps_t.hpp
│ │ │ │ ├── getpostcompositioncaps_t.hpp
│ │ │ │ ├── getresourceforbar_t.hpp
│ │ │ │ ├── getrootpagetablesize_t.hpp
│ │ │ │ ├── getscanline_t.hpp
│ │ │ │ ├── getstandardallocationdriverdata_t.hpp
│ │ │ │ ├── getvendoranddevice_t.hpp
│ │ │ │ ├── getvirtualgpuinfo_t.hpp
│ │ │ │ ├── getvirtualgpuprofile_t.hpp
│ │ │ │ ├── historybufferprecision_t.hpp
│ │ │ │ ├── issupportedvidpn_t.hpp
│ │ │ │ ├── magic/
│ │ │ │ │ ├── acquireswizzlingrange_t.end.hpp
│ │ │ │ │ ├── acquireswizzlingrange_t.start.hpp
│ │ │ │ │ ├── buildpagingbuffer_t.end.hpp
│ │ │ │ │ ├── buildpagingbuffer_t.start.hpp
│ │ │ │ │ ├── cancelcommand_t.end.hpp
│ │ │ │ │ ├── cancelcommand_t.start.hpp
│ │ │ │ │ ├── checkmultiplaneoverlaysupport2_t.end.hpp
│ │ │ │ │ ├── checkmultiplaneoverlaysupport2_t.start.hpp
│ │ │ │ │ ├── checkmultiplaneoverlaysupport3_t.end.hpp
│ │ │ │ │ ├── checkmultiplaneoverlaysupport3_t.start.hpp
│ │ │ │ │ ├── checkmultiplaneoverlaysupport_t.end.hpp
│ │ │ │ │ ├── checkmultiplaneoverlaysupport_t.start.hpp
│ │ │ │ │ ├── closeallocation_t.end.hpp
│ │ │ │ │ ├── closeallocation_t.start.hpp
│ │ │ │ │ ├── collectdbginfo_ext_t.end.hpp
│ │ │ │ │ ├── collectdbginfo_ext_t.start.hpp
│ │ │ │ │ ├── collectdbginfo_t.end.hpp
│ │ │ │ │ ├── collectdbginfo_t.start.hpp
│ │ │ │ │ ├── collectdiagnosticinfo_t.end.hpp
│ │ │ │ │ ├── collectdiagnosticinfo_t.start.hpp
│ │ │ │ │ ├── commitvidpn_flags_t.end.hpp
│ │ │ │ │ ├── commitvidpn_flags_t.start.hpp
│ │ │ │ │ ├── commitvidpn_t.end.hpp
│ │ │ │ │ ├── commitvidpn_t.start.hpp
│ │ │ │ │ ├── controldiagnosticreporting_t.end.hpp
│ │ │ │ │ ├── controldiagnosticreporting_t.start.hpp
│ │ │ │ │ ├── controlinterrupt2_t.end.hpp
│ │ │ │ │ ├── controlinterrupt2_t.start.hpp
│ │ │ │ │ ├── controlinterrupt3_t.end.hpp
│ │ │ │ │ ├── controlinterrupt3_t.start.hpp
│ │ │ │ │ ├── controlmodebehavior_t.end.hpp
│ │ │ │ │ ├── controlmodebehavior_t.start.hpp
│ │ │ │ │ ├── createallocation_t.end.hpp
│ │ │ │ │ ├── createallocation_t.start.hpp
│ │ │ │ │ ├── createcontext_t.end.hpp
│ │ │ │ │ ├── createcontext_t.start.hpp
│ │ │ │ │ ├── createdevice_t.end.hpp
│ │ │ │ │ ├── createdevice_t.start.hpp
│ │ │ │ │ ├── createhwcontext_t.end.hpp
│ │ │ │ │ ├── createhwcontext_t.start.hpp
│ │ │ │ │ ├── createhwqueue_t.end.hpp
│ │ │ │ │ ├── createhwqueue_t.start.hpp
│ │ │ │ │ ├── createoverlay_t.end.hpp
│ │ │ │ │ ├── createoverlay_t.start.hpp
│ │ │ │ │ ├── createperiodicframenotification_t.end.hpp
│ │ │ │ │ ├── createperiodicframenotification_t.start.hpp
│ │ │ │ │ ├── createprocess_t.end.hpp
│ │ │ │ │ ├── createprocess_t.start.hpp
│ │ │ │ │ ├── createprotectedsession_t.end.hpp
│ │ │ │ │ ├── createprotectedsession_t.start.hpp
│ │ │ │ │ ├── createvirtualgpu_t.end.hpp
│ │ │ │ │ ├── createvirtualgpu_t.start.hpp
│ │ │ │ │ ├── describeallocation_t.end.hpp
│ │ │ │ │ ├── describeallocation_t.start.hpp
│ │ │ │ │ ├── destroyallocation_t.end.hpp
│ │ │ │ │ ├── destroyallocation_t.start.hpp
│ │ │ │ │ ├── destroyperiodicframenotification_t.end.hpp
│ │ │ │ │ ├── destroyperiodicframenotification_t.start.hpp
│ │ │ │ │ ├── destroyvirtualgpu_t.end.hpp
│ │ │ │ │ ├── destroyvirtualgpu_t.start.hpp
│ │ │ │ │ ├── displaydetectcontrol_t.end.hpp
│ │ │ │ │ ├── displaydetectcontrol_t.start.hpp
│ │ │ │ │ ├── displaystate_intrusive_t.end.hpp
│ │ │ │ │ ├── displaystate_intrusive_t.start.hpp
│ │ │ │ │ ├── dpauxiotransmission_t.end.hpp
│ │ │ │ │ ├── dpauxiotransmission_t.start.hpp
│ │ │ │ │ ├── dpi2ciotransmission_t.end.hpp
│ │ │ │ │ ├── dpi2ciotransmission_t.start.hpp
│ │ │ │ │ ├── dpsbmtransmission_t.end.hpp
│ │ │ │ │ ├── dpsbmtransmission_t.start.hpp
│ │ │ │ │ ├── enumvidpncofuncmodality_t.end.hpp
│ │ │ │ │ ├── enumvidpncofuncmodality_t.start.hpp
│ │ │ │ │ ├── escape_t.end.hpp
│ │ │ │ │ ├── escape_t.start.hpp
│ │ │ │ │ ├── flipoverlay_t.end.hpp
│ │ │ │ │ ├── flipoverlay_t.start.hpp
│ │ │ │ │ ├── formathistorybuffer_t.end.hpp
│ │ │ │ │ ├── formathistorybuffer_t.start.hpp
│ │ │ │ │ ├── getbackingresource_t.end.hpp
│ │ │ │ │ ├── getbackingresource_t.start.hpp
│ │ │ │ │ ├── getdevicelocation_t.end.hpp
│ │ │ │ │ ├── getdevicelocation_t.start.hpp
│ │ │ │ │ ├── getdisplaystate_intrusive_t.end.hpp
│ │ │ │ │ ├── getdisplaystate_intrusive_t.start.hpp
│ │ │ │ │ ├── getdisplaystate_nonintrusive_t.end.hpp
│ │ │ │ │ ├── getdisplaystate_nonintrusive_t.start.hpp
│ │ │ │ │ ├── getdpaddress_t.end.hpp
│ │ │ │ │ ├── getdpaddress_t.start.hpp
│ │ │ │ │ ├── getgpuengines_t.end.hpp
│ │ │ │ │ ├── getgpuengines_t.start.hpp
│ │ │ │ │ ├── getgpupartitioninfo_t.end.hpp
│ │ │ │ │ ├── getgpupartitioninfo_t.start.hpp
│ │ │ │ │ ├── getmmiorangecount_t.end.hpp
│ │ │ │ │ ├── getmmiorangecount_t.start.hpp
│ │ │ │ │ ├── getmmioranges_t.end.hpp
│ │ │ │ │ ├── getmmioranges_t.start.hpp
│ │ │ │ │ ├── getmultiplaneoverlaycaps_t.end.hpp
│ │ │ │ │ ├── getmultiplaneoverlaycaps_t.start.hpp
│ │ │ │ │ ├── getpostcompositioncaps_t.end.hpp
│ │ │ │ │ ├── getpostcompositioncaps_t.start.hpp
│ │ │ │ │ ├── getresourceforbar_t.end.hpp
│ │ │ │ │ ├── getresourceforbar_t.start.hpp
│ │ │ │ │ ├── getrootpagetablesize_t.end.hpp
│ │ │ │ │ ├── getrootpagetablesize_t.start.hpp
│ │ │ │ │ ├── getscanline_t.end.hpp
│ │ │ │ │ ├── getscanline_t.start.hpp
│ │ │ │ │ ├── getstandardallocationdriverdata_t.end.hpp
│ │ │ │ │ ├── getstandardallocationdriverdata_t.start.hpp
│ │ │ │ │ ├── getvendoranddevice_t.end.hpp
│ │ │ │ │ ├── getvendoranddevice_t.start.hpp
│ │ │ │ │ ├── getvirtualgpuinfo_t.end.hpp
│ │ │ │ │ ├── getvirtualgpuinfo_t.start.hpp
│ │ │ │ │ ├── getvirtualgpuprofile_t.end.hpp
│ │ │ │ │ ├── getvirtualgpuprofile_t.start.hpp
│ │ │ │ │ ├── historybufferprecision_t.end.hpp
│ │ │ │ │ ├── historybufferprecision_t.start.hpp
│ │ │ │ │ ├── issupportedvidpn_t.end.hpp
│ │ │ │ │ ├── issupportedvidpn_t.start.hpp
│ │ │ │ │ ├── mapcpuhostaperture_t.end.hpp
│ │ │ │ │ ├── mapcpuhostaperture_t.start.hpp
│ │ │ │ │ ├── openallocation_t.end.hpp
│ │ │ │ │ ├── openallocation_t.start.hpp
│ │ │ │ │ ├── patch_t.end.hpp
│ │ │ │ │ ├── patch_t.start.hpp
│ │ │ │ │ ├── postmultiplaneoverlaypresent_t.end.hpp
│ │ │ │ │ ├── postmultiplaneoverlaypresent_t.start.hpp
│ │ │ │ │ ├── preemptcommand_t.end.hpp
│ │ │ │ │ ├── preemptcommand_t.start.hpp
│ │ │ │ │ ├── present_displayonly_t.end.hpp
│ │ │ │ │ ├── present_displayonly_t.start.hpp
│ │ │ │ │ ├── present_t.end.hpp
│ │ │ │ │ ├── present_t.start.hpp
│ │ │ │ │ ├── queryadapterinfo_t.end.hpp
│ │ │ │ │ ├── queryadapterinfo_t.start.hpp
│ │ │ │ │ ├── queryconnectionchange_t.end.hpp
│ │ │ │ │ ├── queryconnectionchange_t.start.hpp
│ │ │ │ │ ├── querycurrentfence_t.end.hpp
│ │ │ │ │ ├── querycurrentfence_t.start.hpp
│ │ │ │ │ ├── querydependentenginegroup_t.end.hpp
│ │ │ │ │ ├── querydependentenginegroup_t.start.hpp
│ │ │ │ │ ├── querydiagnostictypessupport_t.end.hpp
│ │ │ │ │ ├── querydiagnostictypessupport_t.start.hpp
│ │ │ │ │ ├── querydpcaps_t.end.hpp
│ │ │ │ │ ├── querydpcaps_t.start.hpp
│ │ │ │ │ ├── queryenginestatus_t.end.hpp
│ │ │ │ │ ├── queryenginestatus_t.start.hpp
│ │ │ │ │ ├── querymitigatedrangecount_t.end.hpp
│ │ │ │ │ ├── querymitigatedrangecount_t.start.hpp
│ │ │ │ │ ├── querymitigatedranges_t.end.hpp
│ │ │ │ │ ├── querymitigatedranges_t.start.hpp
│ │ │ │ │ ├── queryprobedbars_t.end.hpp
│ │ │ │ │ ├── queryprobedbars_t.start.hpp
│ │ │ │ │ ├── queryvidpnhwcapability_t.end.hpp
│ │ │ │ │ ├── queryvidpnhwcapability_t.start.hpp
│ │ │ │ │ ├── queryvirtualfunctionluid_t.end.hpp
│ │ │ │ │ ├── queryvirtualfunctionluid_t.start.hpp
│ │ │ │ │ ├── readvirtualfunctionconfig_t.end.hpp
│ │ │ │ │ ├── readvirtualfunctionconfig_t.start.hpp
│ │ │ │ │ ├── readvirtualfunctionconfigblock_t.end.hpp
│ │ │ │ │ ├── readvirtualfunctionconfigblock_t.start.hpp
│ │ │ │ │ ├── recommendfunctionalvidpn_t.end.hpp
│ │ │ │ │ ├── recommendfunctionalvidpn_t.start.hpp
│ │ │ │ │ ├── recommendmonitormodes_t.end.hpp
│ │ │ │ │ ├── recommendmonitormodes_t.start.hpp
│ │ │ │ │ ├── recommendvidpntopology_t.end.hpp
│ │ │ │ │ ├── recommendvidpntopology_t.start.hpp
│ │ │ │ │ ├── releaseswizzlingrange_t.end.hpp
│ │ │ │ │ ├── releaseswizzlingrange_t.start.hpp
│ │ │ │ │ ├── render_t.end.hpp
│ │ │ │ │ ├── render_t.start.hpp
│ │ │ │ │ ├── rendergdi_t.end.hpp
│ │ │ │ │ ├── rendergdi_t.start.hpp
│ │ │ │ │ ├── resetengine_t.end.hpp
│ │ │ │ │ ├── resetengine_t.start.hpp
│ │ │ │ │ ├── resethwengine_t.end.hpp
│ │ │ │ │ ├── resethwengine_t.start.hpp
│ │ │ │ │ ├── resetvirtualfunction_t.end.hpp
│ │ │ │ │ ├── resetvirtualfunction_t.start.hpp
│ │ │ │ │ ├── restorememoryforhotupdate_t.end.hpp
│ │ │ │ │ ├── restorememoryforhotupdate_t.start.hpp
│ │ │ │ │ ├── resumecontext_t.end.hpp
│ │ │ │ │ ├── resumecontext_t.start.hpp
│ │ │ │ │ ├── resumehwengine_t.end.hpp
│ │ │ │ │ ├── resumehwengine_t.start.hpp
│ │ │ │ │ ├── resumevirtualgpu_t.end.hpp
│ │ │ │ │ ├── resumevirtualgpu_t.start.hpp
│ │ │ │ │ ├── savememoryforhotupdate_t.end.hpp
│ │ │ │ │ ├── savememoryforhotupdate_t.start.hpp
│ │ │ │ │ ├── setcontextschedulingproperties_t.end.hpp
│ │ │ │ │ ├── setcontextschedulingproperties_t.start.hpp
│ │ │ │ │ ├── setdisplayprivatedriverformat_t.end.hpp
│ │ │ │ │ ├── setdisplayprivatedriverformat_t.start.hpp
│ │ │ │ │ ├── setgpupartitioncount_t.end.hpp
│ │ │ │ │ ├── setgpupartitioncount_t.start.hpp
│ │ │ │ │ ├── setpalette_t.end.hpp
│ │ │ │ │ ├── setpalette_t.start.hpp
│ │ │ │ │ ├── setpointerposition_t.end.hpp
│ │ │ │ │ ├── setpointerposition_t.start.hpp
│ │ │ │ │ ├── setpointershape_t.end.hpp
│ │ │ │ │ ├── setpointershape_t.start.hpp
│ │ │ │ │ ├── setrootpagetable_t.end.hpp
│ │ │ │ │ ├── setrootpagetable_t.start.hpp
│ │ │ │ │ ├── setschedulinglogbuffer_t.end.hpp
│ │ │ │ │ ├── setschedulinglogbuffer_t.start.hpp
│ │ │ │ │ ├── setstablepowerstate_t.end.hpp
│ │ │ │ │ ├── setstablepowerstate_t.start.hpp
│ │ │ │ │ ├── settargetadjustedcolorimetry2_t.end.hpp
│ │ │ │ │ ├── settargetadjustedcolorimetry2_t.start.hpp
│ │ │ │ │ ├── settargetanalogcopyprotection_t.end.hpp
│ │ │ │ │ ├── settargetanalogcopyprotection_t.start.hpp
│ │ │ │ │ ├── settargetcontenttype_t.end.hpp
│ │ │ │ │ ├── settargetcontenttype_t.start.hpp
│ │ │ │ │ ├── settargetgamma_t.end.hpp
│ │ │ │ │ ├── settargetgamma_t.start.hpp
│ │ │ │ │ ├── settimingsfromvidpn_t.end.hpp
│ │ │ │ │ ├── settimingsfromvidpn_t.start.hpp
│ │ │ │ │ ├── settrackedworkloadpowerlevel_t.end.hpp
│ │ │ │ │ ├── settrackedworkloadpowerlevel_t.start.hpp
│ │ │ │ │ ├── setupprioritybands_t.end.hpp
│ │ │ │ │ ├── setupprioritybands_t.start.hpp
│ │ │ │ │ ├── setvideoprotectedregion_t.end.hpp
│ │ │ │ │ ├── setvideoprotectedregion_t.start.hpp
│ │ │ │ │ ├── setvidpnsourceaddress_t.end.hpp
│ │ │ │ │ ├── setvidpnsourceaddress_t.start.hpp
│ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay2_t.end.hpp
│ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay2_t.start.hpp
│ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay3_t.end.hpp
│ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay3_t.start.hpp
│ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay_t.end.hpp
│ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay_t.start.hpp
│ │ │ │ │ ├── setvidpnsourcevisibility_t.end.hpp
│ │ │ │ │ ├── setvidpnsourcevisibility_t.start.hpp
│ │ │ │ │ ├── setvirtualfunctionpowerstate_t.end.hpp
│ │ │ │ │ ├── setvirtualfunctionpowerstate_t.start.hpp
│ │ │ │ │ ├── setvirtualgpuresources_t.end.hpp
│ │ │ │ │ ├── setvirtualgpuresources_t.start.hpp
│ │ │ │ │ ├── setvirtualgpuvmbus_t.end.hpp
│ │ │ │ │ ├── setvirtualgpuvmbus_t.start.hpp
│ │ │ │ │ ├── setvirtualmachinedata_t.end.hpp
│ │ │ │ │ ├── setvirtualmachinedata_t.start.hpp
│ │ │ │ │ ├── signalmonitoredfence_t.end.hpp
│ │ │ │ │ ├── signalmonitoredfence_t.start.hpp
│ │ │ │ │ ├── stopcapture_t.end.hpp
│ │ │ │ │ ├── stopcapture_t.start.hpp
│ │ │ │ │ ├── submitcommand_t.end.hpp
│ │ │ │ │ ├── submitcommand_t.start.hpp
│ │ │ │ │ ├── submitcommandtohwqueue_t.end.hpp
│ │ │ │ │ ├── submitcommandtohwqueue_t.start.hpp
│ │ │ │ │ ├── submitcommandvirtual_t.end.hpp
│ │ │ │ │ ├── submitcommandvirtual_t.start.hpp
│ │ │ │ │ ├── suspendcontext_t.end.hpp
│ │ │ │ │ ├── suspendcontext_t.start.hpp
│ │ │ │ │ ├── suspendvirtualgpu_t.end.hpp
│ │ │ │ │ ├── suspendvirtualgpu_t.start.hpp
│ │ │ │ │ ├── switchtohwcontextlist_t.end.hpp
│ │ │ │ │ ├── switchtohwcontextlist_t.start.hpp
│ │ │ │ │ ├── system_display_enable_flags_t.end.hpp
│ │ │ │ │ ├── system_display_enable_flags_t.start.hpp
│ │ │ │ │ ├── unmapcpuhostaperture_t.end.hpp
│ │ │ │ │ ├── unmapcpuhostaperture_t.start.hpp
│ │ │ │ │ ├── updateactivevidpnpresentpath_t.end.hpp
│ │ │ │ │ ├── updateactivevidpnpresentpath_t.start.hpp
│ │ │ │ │ ├── updatehwcontextstate_t.end.hpp
│ │ │ │ │ ├── updatehwcontextstate_t.start.hpp
│ │ │ │ │ ├── updatemonitorlinkinfo_t.end.hpp
│ │ │ │ │ ├── updatemonitorlinkinfo_t.start.hpp
│ │ │ │ │ ├── updateoverlay_t.end.hpp
│ │ │ │ │ ├── updateoverlay_t.start.hpp
│ │ │ │ │ ├── validatesubmitcommand_t.end.hpp
│ │ │ │ │ ├── validatesubmitcommand_t.start.hpp
│ │ │ │ │ ├── validateupdateallocproperty_t.end.hpp
│ │ │ │ │ ├── validateupdateallocproperty_t.start.hpp
│ │ │ │ │ ├── writevirtualfunctionconfig_t.end.hpp
│ │ │ │ │ ├── writevirtualfunctionconfig_t.start.hpp
│ │ │ │ │ ├── writevirtualfunctionconfigblock_t.end.hpp
│ │ │ │ │ └── writevirtualfunctionconfigblock_t.start.hpp
│ │ │ │ ├── mapcpuhostaperture_t.hpp
│ │ │ │ ├── openallocation_t.hpp
│ │ │ │ ├── patch_t.hpp
│ │ │ │ ├── postmultiplaneoverlaypresent_t.hpp
│ │ │ │ ├── preemptcommand_t.hpp
│ │ │ │ ├── present_displayonly_t.hpp
│ │ │ │ ├── present_t.hpp
│ │ │ │ ├── queryadapterinfo_t.hpp
│ │ │ │ ├── queryconnectionchange_t.hpp
│ │ │ │ ├── querycurrentfence_t.hpp
│ │ │ │ ├── querydependentenginegroup_t.hpp
│ │ │ │ ├── querydiagnostictypessupport_t.hpp
│ │ │ │ ├── querydpcaps_t.hpp
│ │ │ │ ├── queryenginestatus_t.hpp
│ │ │ │ ├── querymitigatedrangecount_t.hpp
│ │ │ │ ├── querymitigatedranges_t.hpp
│ │ │ │ ├── queryprobedbars_t.hpp
│ │ │ │ ├── queryvidpnhwcapability_t.hpp
│ │ │ │ ├── queryvirtualfunctionluid_t.hpp
│ │ │ │ ├── readvirtualfunctionconfig_t.hpp
│ │ │ │ ├── readvirtualfunctionconfigblock_t.hpp
│ │ │ │ ├── recommendfunctionalvidpn_t.hpp
│ │ │ │ ├── recommendmonitormodes_t.hpp
│ │ │ │ ├── recommendvidpntopology_t.hpp
│ │ │ │ ├── releaseswizzlingrange_t.hpp
│ │ │ │ ├── render_t.hpp
│ │ │ │ ├── rendergdi_t.hpp
│ │ │ │ ├── resetengine_t.hpp
│ │ │ │ ├── resethwengine_t.hpp
│ │ │ │ ├── resetvirtualfunction_t.hpp
│ │ │ │ ├── restorememoryforhotupdate_t.hpp
│ │ │ │ ├── resumecontext_t.hpp
│ │ │ │ ├── resumehwengine_t.hpp
│ │ │ │ ├── resumevirtualgpu_t.hpp
│ │ │ │ ├── savememoryforhotupdate_t.hpp
│ │ │ │ ├── setcontextschedulingproperties_t.hpp
│ │ │ │ ├── setdisplayprivatedriverformat_t.hpp
│ │ │ │ ├── setgpupartitioncount_t.hpp
│ │ │ │ ├── setpalette_t.hpp
│ │ │ │ ├── setpointerposition_t.hpp
│ │ │ │ ├── setpointershape_t.hpp
│ │ │ │ ├── setrootpagetable_t.hpp
│ │ │ │ ├── setschedulinglogbuffer_t.hpp
│ │ │ │ ├── setstablepowerstate_t.hpp
│ │ │ │ ├── settargetadjustedcolorimetry2_t.hpp
│ │ │ │ ├── settargetanalogcopyprotection_t.hpp
│ │ │ │ ├── settargetcontenttype_t.hpp
│ │ │ │ ├── settargetgamma_t.hpp
│ │ │ │ ├── settimingsfromvidpn_t.hpp
│ │ │ │ ├── settrackedworkloadpowerlevel_t.hpp
│ │ │ │ ├── setupprioritybands_t.hpp
│ │ │ │ ├── setvideoprotectedregion_t.hpp
│ │ │ │ ├── setvidpnsourceaddress_t.hpp
│ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay2_t.hpp
│ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay3_t.hpp
│ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay_t.hpp
│ │ │ │ ├── setvidpnsourcevisibility_t.hpp
│ │ │ │ ├── setvirtualfunctionpowerstate_t.hpp
│ │ │ │ ├── setvirtualgpuresources_t.hpp
│ │ │ │ ├── setvirtualgpuvmbus_t.hpp
│ │ │ │ ├── setvirtualmachinedata_t.hpp
│ │ │ │ ├── signalmonitoredfence_t.hpp
│ │ │ │ ├── stopcapture_t.hpp
│ │ │ │ ├── submitcommand_t.hpp
│ │ │ │ ├── submitcommandtohwqueue_t.hpp
│ │ │ │ ├── submitcommandvirtual_t.hpp
│ │ │ │ ├── suspendcontext_t.hpp
│ │ │ │ ├── suspendvirtualgpu_t.hpp
│ │ │ │ ├── switchtohwcontextlist_t.hpp
│ │ │ │ ├── system_display_enable_flags_t.hpp
│ │ │ │ ├── unmapcpuhostaperture_t.hpp
│ │ │ │ ├── updateactivevidpnpresentpath_t.hpp
│ │ │ │ ├── updatehwcontextstate_t.hpp
│ │ │ │ ├── updatemonitorlinkinfo_t.hpp
│ │ │ │ ├── updateoverlay_t.hpp
│ │ │ │ ├── validatesubmitcommand_t.hpp
│ │ │ │ ├── validateupdateallocproperty_t.hpp
│ │ │ │ ├── writevirtualfunctionconfig_t.hpp
│ │ │ │ └── writevirtualfunctionconfigblock_t.hpp
│ │ │ ├── attach_to_object_session/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── auto_ccd_topology_clear_reserved/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── auto_pnppower_lock/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── auto_remove_lock/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── auto_resource_lock/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── autoexpandallocation/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── backlight_info_t.hpp
│ │ │ ├── bltentry/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── bltqueue/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── bltqueue_emulated_vsync_source/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── bltqueue_hw_vsync_source/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── bltqueue_remote_vsync_source/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── brightness_caps_t.hpp
│ │ │ ├── brightness_get_nit_ranges_out_t.hpp
│ │ │ ├── brightness_get_out_t.hpp
│ │ │ ├── brightness_nit_range_t.hpp
│ │ │ ├── brightness_sensor_data_chromaticity_t.hpp
│ │ │ ├── brightness_sensor_data_t.hpp
│ │ │ ├── brightness_set_in_t.hpp
│ │ │ ├── brightness_state_t.hpp
│ │ │ ├── btl_cds_journal_topology_constructor/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── btl_topology_constructor/
│ │ │ │ ├── anchor_info/
│ │ │ │ │ ├── api.hpp
│ │ │ │ │ └── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── buildpagingbuffer_copy_range_t.hpp
│ │ │ ├── buildpagingbuffer_copypagetableentries_t.hpp
│ │ │ ├── buildpagingbuffer_fillvirtual_t.hpp
│ │ │ ├── buildpagingbuffer_flushtlb_t.hpp
│ │ │ ├── buildpagingbuffer_notifyresidency_t.hpp
│ │ │ ├── buildpagingbuffer_operation_t.hpp
│ │ │ ├── buildpagingbuffer_signalmonitoredfence_t.hpp
│ │ │ ├── buildpagingbuffer_transfervirtual_t.hpp
│ │ │ ├── buildpagingbuffer_updatecontextallocation_t.hpp
│ │ │ ├── buildpagingbuffer_updatepagetable_t.hpp
│ │ │ ├── c_adapter/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_adapter_collection/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_auto_ref_counted_buffer/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_backchannel_manager/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_buffer_realization/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_composition_buffer/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_composition_frame/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_composition_frame_collection/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_composition_surface/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_composition_swapchain_buffer/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_composition_token/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_content_resource/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_content_resource_state/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_disable_scanout_token/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_driver_store_copy/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_endpoint_resource_state_manager/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_ensure_current_dxg_process/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_consumer_message/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_content_token/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_ex_buffer/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_manager/
│ │ │ │ ├── api.hpp
│ │ │ │ ├── magic/
│ │ │ │ │ ├── api.end.hpp
│ │ │ │ │ └── api.start.hpp
│ │ │ │ └── present_history/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_manager_signal/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_manager_token/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_present_update/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_property_set/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_property_set_base/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_queued_object/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_resource/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_resource_state/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_token/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_token_operation/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_flip_waited_consumer_return/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_interface_call_context/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_legacy_token_buffer/
│ │ │ │ └── token_block/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_pool_buffer_resource/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_present_rate/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_push_lock_critical_section/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_ref_counted_buffer/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_resource_state_update_serializer/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_token/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_token_manager/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_token_queue/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_vid_sch_submit_data/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_vid_sch_suspend_resume/
│ │ │ │ ├── api.hpp
│ │ │ │ └── magic/
│ │ │ │ ├── api.end.hpp
│ │ │ │ └── api.start.hpp
│ │ │ ├── c_win32k_locks/
│ │ │ │ ├── api.hpp
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.tlog
*.obj
*.log
*.map
.vs/
*.recipe
*.vcxproj.FileListAbsolute.txt
*.pdb
Builds/
*.tmp
DvlErrLog.txt
*.pch
*raw_store.inl
*.yaml
*.suo
x64/
enc_temp_folder/
build/
*.id0
*.id1
*.nam
*.til
*.lib
*.exe
*.dll
*.sys
!resources/drivers/**/*.sys
*.dmp
*.id2
wasm_tmp/
llvm_tmp/
*/node_modules/
*.cpuprofile
*.i64
diana-native/linux/zstd
apollo-test-app/test.cpp
apollo-test-app/apollo-test-app.sln
apollo-test-app/apollo-test-app.vcxproj
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2024 Can Bölük
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
# selene
[Hypervisor detection methods](https://github.com/can1357/hvdetecc/) I released yesterday were dependent on a bunch of parts of this project, as well as my recent Patchguard bypass post, so I just decided to go for the whole thing.
This is a very interesting repository including:
- Runtime patchguard bypass working for all Windows versions `/selene/misc/nopg`
- A fully featured GDB and Cheat Engine server, intended to be used in a baremetal OS `/selene/gdb`
- A paravirtualization engine that can sandbox arbitrary kernel-mode drivers in the **magical Ring 2** as well as processes under Windows `/selene/su`
- A microkernel with APIC scheduling, memory management mirroring a guest OS, raw TCP/IP hooking into NDIS `/selene`
- An execution tracing engine that can generate a full call graph containing privileged instructions during the runtime with a < 100ns overhead `/selene/su/xt` & `/xt`
- A Lua scriptable pattern scanning engine that can JIT codegen from snippets of assembly, as well as emulate basic x86 `/flash`
- PDB parsing library that can generate C++ headers which can be magically updated during runtime or build time without recompilation `/pdblib` and `/sdkgen`
- C++ wrapper around the NT kernel APIs (syscalls in User-Mode, reimplementation in Kernel-Mode), with many helpers including an Authenticode implementation `/shared/ntpp`
- A linker written from scratch that accepts LLVM bitcode and generates PE images w/ full-LTO support, implementing: (`/apollo`)
- MBA obfuscation
- WASM based virtualization
- Basic block splitting
- Custom line-information tables
- Automatic string encryption
- Automatic lifting of imports into lazy-imports
- Automatic lifting of Syscall imports into syscall stubs
- Profiler instrumentations with Chrome-Flamegraph compatible profile writer that can be used anywhere including baremetal kernel-mode
- VS2022 integration!
- Mitigations against TSX side-channels using a novel method involving PMCs `/selene/su/mitigations`
- Kernel-mode Sentry-compatible crashdumps as well as networked submission on BSOD `/shared/trace_snapshot` & `/selene/misc/crashdump`
- And some other stuff I'm completely forgetting about
## Notes
Most of this will probably not work out of the box, but I'm working on it as I have free time.
Kernel-Mode parts will require you to provide a C runtime implementation, which I unfortunately cannot share due to not being the sole legal license holder.
You will need to set the SeleneRoot environment variable to the root of the project, as well as CxxLibraries to where it can find the dependencies:
- LLVM 18 or greater
- [xstd](https://github.com/can1357/xstd)
- [linux-pe](https://github.com/can1357/linux-pe)
- [xed++](https://github.com/can1357/xedpp)
- [ulua](https://github.com/can1357/ulua) for flash scripting
- [rpmalloc](https://github.com/mjansson/rpmalloc) to be used as the kernel-mode allocator (A fork of it for kernel-mode can be found [here](https://github.com/can1357/rpmalloc), but you can also fix up the original repo)
- [XED](https://github.com/intelxed/xed) for disassembly
- [LWIP](https://savannah.nongnu.org/projects/lwip) for NDIS-less networking ([Forked version](https://github.com/can1357/lwip-fork))
- [zstd](https://github.com/facebook/zstd) if you want the custom `zcompressed` attribute
================================================
FILE: apollo-crt/apollo-crt.cpp
================================================
// Disable CRT version broadcasting.
//
#ifndef MUST_MATCH
#define MUST_MATCH(x)
#endif
#include <stdint.h>
#include <xstd/intrinsics.hpp>
#include <xstd/random.hpp>
static constexpr uint64_t __crt_build_key = 0x79509e971613c549;
extern "C"
{
#ifdef _IN_LINKER_
#define __crt_linkage__ static
#else
#define __crt_linkage__
#endif
// Pointer and string encryption logic.
//
NO_DEBUG FORCE_INLINE __crt_linkage__ void __cdecl __crt_assert( bool b, uint64_t str )
{
if ( !b ) [[unlikely]]
__trap();
}
NO_DEBUG RINLINE __crt_linkage__ uint64_t __cdecl __crt_decrypt_single( uint64_t value, uint64_t key )
{
const uint64_t options_key = __crt_build_key * key;
if ( options_key & 8 )
value = rotrq( value, ( ( 16 | options_key ) >> 3 ) % 41 );
if ( options_key & 1 ) value += ( __crt_build_key * key );
else value ^= ( __crt_build_key * key );
if ( options_key & 16 )
{
if ( ( options_key & 32 ) || ( options_key & 64 ) )
value &= ~3;
else
value ^= 1;
}
else if ( !( options_key & 8 ) && ( options_key & 4 ) )
value = int64_t( value ) >> ( ( ( 8 | options_key ) >> 3 ) % 7 );
return value;
}
NO_DEBUG RINLINE __crt_linkage__ uint64_t __cdecl __crt_encrypt_single( uint64_t value, uint64_t key )
{
const uint64_t options_key = __crt_build_key * key;
if ( options_key & 16 )
value |= ( options_key & 32 ) ? 3 : 1;
else if ( !( options_key & 8 ) && ( options_key & 4 ) )
value = value << ( ( ( 8 | options_key ) >> 3 ) % 7 );
if ( options_key & 1 ) value -= ( __crt_build_key * key );
else value ^= ( __crt_build_key * key );
if ( options_key & 8 )
value = rotlq( value, ( ( 16 | options_key ) >> 3 ) % 41 );
return value;
}
NO_DEBUG RINLINE __crt_linkage__ uint64_t __cdecl __crt_decrypt( const uint64_t* _ptr, size_t n, uint64_t key )
{
const uint64_t* volatile __ptr = _ptr;
const uint64_t* ptr = __ptr;
uint64_t* result = new uint64_t[ n ];
for ( size_t i = 0; i != n; i++ )
{
result[ i ] = ptr[ i ];
switch ( n % 3 )
{
case 0: result[ i ] ^= xstd::lce_64( key ); break;
case 1: result[ i ] -= xstd::lce_64( key ); break;
case 2: result[ i ] += xstd::lce_64( key ); break;
}
if ( n % 2 ) result[ i ] = rotrq( result[ i ], n % 64 );
}
return ( uint64_t ) result;
}
NO_DEBUG RINLINE __crt_linkage__ uint64_t __cdecl __crt_encrypt( const uint64_t* _ptr, size_t n, uint64_t key )
{
const uint64_t* volatile __ptr = _ptr;
const uint64_t* ptr = __ptr;
uint64_t* result = new uint64_t[ n ];
for ( size_t i = 0; i != n; i++ )
{
result[ i ] = ptr[ i ];
if ( n % 2 ) result[ i ] = rotlq( result[ i ], n % 64 );
switch ( n % 3 )
{
case 0: result[ i ] ^= xstd::lce_64( key ); break;
case 1: result[ i ] += xstd::lce_64( key ); break;
case 2: result[ i ] -= xstd::lce_64( key ); break;
}
}
return ( uint64_t ) result;
}
#ifdef __clang__
NO_DEBUG RINLINE __crt_linkage__ uint64_t __cdecl __crt_translate_gs( uint64_t ptr )
{
uint64_t base;
asm( "rdgsbase %0" : "=r" ( base ) );
return base + ptr;
}
NO_DEBUG RINLINE __crt_linkage__ uint64_t __cdecl __crt_translate_fs( uint64_t ptr )
{
uint64_t base;
asm( "rdfsbase %0" : "=r" ( base ) );
return base + ptr;
}
#endif
};
================================================
FILE: apollo-crt/apollo-crt.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30717.126
MinimumVisualStudioVersion = 10.0.40219.1
Project("{0D289551-2DF2-417F-9F2E-6B17473F945E}") = "apollo-crt", "apollo-crt.vcxproj", "{C0D3D10E-C5AD-4FDC-97F9-A32459289E60}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C0D3D10E-C5AD-4FDC-97F9-A32459289E60}.Release|x64.ActiveCfg = Release|x64
{C0D3D10E-C5AD-4FDC-97F9-A32459289E60}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {9599AC87-F66E-4CA1-98AE-3E727AFCF74E}
EndGlobalSection
EndGlobal
================================================
FILE: apollo-crt/apollo-crt.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{C0D3D10E-C5AD-4FDC-97F9-A32459289E60}</ProjectGuid>
<RootNamespace>apollovm</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>ClangCL</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
<Import Project="..\shared\shared.vcxitems" Label="Shared" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(CxxLibraries)wasm-parser\includes;$(CxxLibraries)xstd\includes;$(LLVM_PATH)\lib\clang\12.0.0\include;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(CxxLibraries)linux-pe\includes</IncludePath>
<ExecutablePath>$(LLVM_PATH)\bin;$(ExecutablePath)</ExecutablePath>
<OutDir>$(SeleneRoot)resources\libs\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NO_NTPP;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<LanguageStandard>stdcpplatest</LanguageStandard>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<ControlFlowGuard>false</ControlFlowGuard>
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
<ForcedIncludeFiles>$(SolutionDir)..\shared\xstd_options.hpp</ForcedIncludeFiles>
<OmitDefaultLibName>true</OmitDefaultLibName>
<AdditionalOptions>-flto /Zc:threadSafeInit- /Gw /Gy -Xclang -fno-rtti-data -fwhole-program-vtables -gline-tables-only -mbmi2 %(AdditionalOptions)</AdditionalOptions>
<FloatingPointModel>Fast</FloatingPointModel>
<BuildStlModules>false</BuildStlModules>
</ClCompile>
<Link>
<SubSystem>
</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="apollo-crt.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: apollo-crt/apollo-crt.vcxproj.user
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>
================================================
FILE: apollo-linker/linker.cpp
================================================
#define _CRT_SECURE_NO_WARNINGS
#define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
#define NOMINMAX
#include <xstd/intrinsics.hpp>
#if GNU_COMPILER
#pragma clang diagnostic ignored "-Wbraced-scalar-init"
#endif
#include <iostream>
#include <string>
#include <vector>
#include <filesystem>
#include <llvm-c/DebugInfo.h>
#include <xstd/file.hpp>
#include <xstd/random.hpp>
#include <xstd/algorithm.hpp>
#include <xstd/formatting.hpp>
#include <xstd/serialization.hpp>
#include <xstd/bitwise.hpp>
#include <xstd/leb128.hpp>
#include <xstd/environment.hpp>
#include <xstd/text.hpp>
#include <pdblib/cvconsts.h>
#include <pdblib/cvinfo.h>
#include <pdblib/dbi.hpp>
#include <xstd/zstd.hpp>
#include <xstd/utf.hpp>
#include <nt/image.hpp>
#include <xedpp.hpp>
#include <apollo/satella.hpp>
#include <apollo/details/satella_pe.hpp>
#include "object/collection.hpp"
#include "utility/liblto.hpp"
#include "utility/argparse.hpp"
#include "utility/undname.hpp"
#include "transform/lazy_import.hpp"
#include "transform/string_conversion.hpp"
#include "transform/mixed_bool_arith.hpp"
#include "transform/attribute_discovery.hpp"
#include "transform/attribute_normalization.hpp"
#include "transform/split_basic_blocks.hpp"
#include "transform/virtualization.hpp"
#include "transform/syscall_lifter.hpp"
#include "transform/lower_xrefs.hpp"
#include "transform/logo.hpp"
#include "transform/profiler.hpp"
#include "transform/shadow_return.hpp"
#include "transform/cleanup.hpp"
#include "transform/auto_mode_switch.hpp"
#include "transform/dyn_relocs.hpp"
#include <llvm-c/ErrorHandling.h>
#include <d3dcompiler.h>
#include <Windows.h>
#pragma comment(lib, "dbghelp.lib")
#pragma comment(lib, "d3dcompiler.lib")
namespace satella
{
// Converts the given collection into a satella image.
//
std::unique_ptr<image> convert( const linker::collection& col,
const ref::strong_ptr<linker::symbol>& entry_point,
const std::vector<std::string>& intrinsic_symbols )
{
// Allocate the image.
//
auto img = std::make_unique<image>();
img->type_build = col.build_type;
img->type_module = col.module_type;
// Collect all sections into a single set.
//
std::unordered_map<ref::strong_ptr<linker::section>, std::shared_ptr<section>> sections = {};
for ( auto& obj : col.working_set )
for ( auto& scn : obj->sections )
sections.emplace( scn, nullptr );
// Map every non-empty section and their symbols.
//
std::unordered_map<ref::strong_ptr<linker::symbol>, std::shared_ptr<symbol>> symbol_mappings = {};
for ( auto& [scn, nscn] : sections )
{
if ( scn->raw_data.empty() )
continue;
nscn = img->sections.emplace_back( std::make_shared<section>() );
nscn->name = scn->name;
nscn->raw_data = scn->raw_data;
nscn->alignment = scn->characteristics.get_alignment();
if ( scn->characteristics.mem_preload )
nscn->type = section_type::mixed; // no_stub
else if ( scn->characteristics.cnt_code )
nscn->type = section_type::code;
else if ( scn->characteristics.mem_write )
nscn->type = section_type::data;
else
nscn->type = section_type::rdata;
for ( auto& sym : scn->symbols )
{
auto& nsym = nscn->symbols.emplace( sym->value, std::make_shared<symbol>() )->second;
symbol_mappings.emplace( sym, nsym );
nsym->name = sym->name;
nsym->section = nscn.get();
nsym->section_offset = sym->value;
}
}
// Map intrinsic symbols.
//
for ( auto& name : intrinsic_symbols )
{
auto& sym = img->intrinsic_symbols.emplace( name, std::make_shared<symbol>() ).first->second;
sym->name = name;
for ( auto& obj : col.working_set )
for ( auto& ext : obj->external_symbols )
if ( ext->name == name )
symbol_mappings.emplace( ext, sym );
}
// Map the attributes.
//
for ( auto& [attribute, target_set] : col.attributes )
for ( auto& target_name : target_set )
for ( auto& [so, snew] : symbol_mappings )
if ( snew && snew->name == target_name )
img->attributes.add( snew, attribute );
// Map the exports.
//
for ( auto& obj : col.working_set )
{
for ( auto& exp : obj->dllexported_symbols )
{
auto sym = col.public_symbols.find( exp );
if ( sym == col.public_symbols.end() )
xstd::error( "Dllexported symbol '%s' has no public definition.", exp );
auto map = symbol_mappings.find( sym->second.lock() );
if ( map == symbol_mappings.end() )
xstd::error( "Dllexported symbol '%s' has no mapping.", exp );
img->exported_symbols.emplace( exp, map->second );
}
}
// Map the imports.
//
for ( auto& obj : col.working_set )
{
for ( auto& scn : obj->sections )
{
if ( scn->name == ".dyn" )
{
for ( auto& sym : scn->symbols )
{
if ( sym->dyn_import )
{
auto& nsym = img->dynamic_symbols.emplace( sym->name, std::make_shared<symbol>() ).first->second;
nsym->name = sym->name;
nsym->is_dynamic = true;
symbol_mappings.emplace( sym, nsym );
}
}
}
}
}
// Map the relocations.
//
for ( auto& [scn, nscn] : sections )
{
if ( !nscn ) continue;
for ( auto& reloc : scn->relocs )
{
if ( reloc.type == coff::rel_amd64_absolute )
continue;
auto& nsym = symbol_mappings[ reloc.ref_symbol ];
if ( !nsym )
xstd::error( "Symbol has no mapping: %s.", reloc.ref_symbol->name );
relocation nreloc{ .symbol = nsym.get() };
switch ( reloc.type )
{
case coff::rel_amd64_addr64:
nreloc.type = relocation_type::va;
break;
case coff::rel_amd64_addr32nb:
nreloc.type = relocation_type::rva;
break;
case coff::rel_amd64_secrel7:
nreloc.type = relocation_type::rel8;
break;
case coff::rel_amd64_rel32:
case coff::rel_amd64_rel32_1:
case coff::rel_amd64_rel32_2:
case coff::rel_amd64_rel32_3:
case coff::rel_amd64_rel32_4:
case coff::rel_amd64_rel32_5:
nreloc.type = relocation_type::rel32;
nreloc.type_data = reloc.type - coff::rel_amd64_rel32;
break;
default:
xstd::error( "Unknown relocation type: %d [Referencing: %s]\n", reloc.type, nsym->name.c_str() );
break;
}
if ( !nscn->relocations.emplace( reloc.offset, std::move( nreloc ) ).second )
xstd::error( "Duplicate relocations at the same offset." );
}
}
// Map the special symbols.
//
if ( entry_point )
{
auto& nsym = symbol_mappings[ entry_point ];
if ( !nsym )
xstd::error( "Entry point symbol has no mapping: %s.", entry_point->name );
img->entry_point = nsym;
}
// Map the symbol and routine information, iterating sections this time allowing null ones.
//
for ( auto& [scn, nscn] : sections )
{
// For each routine entry:
//
for ( auto& [off, rtn] : scn->meta.routines )
{
// Copy basic information.
//
auto& fn = img->functions.emplace_back( std::make_shared<function>() );
fn->frame_offset = rtn.frame_offset;
fn->frame_register = rtn.frame_register;
fn->unwind_codes = rtn.unwind_codes;
fn->length_prolog = rtn.size_prologue;
fassert( !rtn.chained_unwind.alive() );
for ( auto& [off, lines] : rtn.lines )
{
for ( auto& line : lines )
{
line_info inf =
{
.file_name = scn->owner->meta.file_map.at( line.file_id ).file_name,
.inlinee_name = line.inlinee_name,
.line = line.line,
.length = line.length,
.depth = line.depth
};
fn->lines[ off ].emplace_back( std::move( inf ) );
}
}
// If the original symbol is still there, use as is.
//
if ( !rtn.is_split )
{
auto sym = xstd::find_if( scn->symbols, [ &, off = off ] ( auto& sym ) { return sym->value == off; } );
fassert( sym );
auto nsym = symbol_mappings[ *sym ];
fassert( nsym );
fn->start_point = nsym;
if ( scn->meta.routines.size() == 1 )
nscn->function = fn.get();
}
// Otherwise basic blocks must be set.
//
else
{
fassert( !rtn.basic_blocks.empty() );
for ( auto& [off, bb] : rtn.basic_blocks )
{
basic_block nbb = {};
nbb.length = bb.end_off - off;
auto nscn = sections[ bb.scn.lock() ];
nscn->function = fn.get();
fassert( nscn );
auto it = nscn->symbols.find( 0 );
if ( it == nscn->symbols.end() )
it = nscn->symbols.emplace( 0, std::make_shared<satella::symbol>( satella::symbol{ nscn->name, nscn.get(), 0 } ) );
nbb.symbol = it->second.get();
fassert( fn->basic_blocks.emplace( off, std::move( nbb ) ).second );
}
}
}
// For each symbol request entry that is alive:
//
for ( auto& isym : scn->meta.symbols )
{
if ( isym.target.alive() )
{
auto nsym = symbol_mappings[ isym.target.lock() ].get();
fassert( nsym );
imported_symbol nisym = {
.id = isym.id,
.encryption_key = isym.encryption_key,
.target = nsym,
.offset = isym.offset
};
switch ( isym.type )
{
case linker::section_metadata::symbol_request::symbol_information:
nisym.type = imported_symbol_type::global;
break;
case linker::section_metadata::symbol_request::field_information:
nisym.type = imported_symbol_type::field;
break;
case linker::section_metadata::symbol_request::type_information:
nisym.type = imported_symbol_type::type;
break;
}
img->imported_symbols.emplace_back( std::move( nisym ) );
}
}
}
return img;
}
};
static std::string read_file_bom( const std::filesystem::path& path )
{
auto res = xstd::file::read_raw( path );
if ( res ) return xstd::utf_convert<char>( *res );
else return {};
}
int main( int argc, const char** argv )
{
// Lazily load the DLLs needed.
//
#if WINDOWS_TARGET
auto bin_fs = xstd::getenvf( "LLVM_PATH" ) / "bin";
LoadLibraryW( ( bin_fs / "llvm-c.dll" ).c_str() );
LoadLibraryW( ( bin_fs / "lto.dll" ).c_str() );
#endif
// Enable stack trace and display the logo.
//
LLVMEnablePrettyStackTrace();
xstd::log( R"(
_____ .__ .__
/ _ \ ______ ____ | | | | ____
/ /_\ \\____ \ / _ \| | | | / _ \
/ | \ |_> > <_> ) |_| |_( <_> )
\____|__ / __/ \____/|____/____/\____/
\/|__|
=============================================
)" );
// Begin the context.
//
linker::collection ctx = {};
// Gather all arguments into one large string.
//
std::string arguments = {};
for ( size_t n = 1; n != argc; n++ )
{
arguments += " ";
if ( argv[ n ][ 0 ] == '@' )
arguments += read_file_bom( argv[ n ] + 1 );
else if ( argv[ n ][ 0 ] == '!' )
std::filesystem::current_path( argv[ n ] + 1 );
else
arguments += argv[ n ];
}
for ( auto cc : { "LINK", "_LINK_" } )
{
if ( auto env = xstd::getenv( cc ); !env.empty() )
arguments += " ", arguments += env;
}
if ( auto lib = xstd::getenv( "LIB" ); !lib.empty() )
for ( auto& s : xstd::split_string<char>( lib, ';' ) )
( ( arguments += " /libpath:\"" ) += s ) += "\"";
// Save the arguments to the temp directory for reproduction.
//
auto repro = std::filesystem::temp_directory_path() / ( xstd::fmt::as_string( xstd::time::now().time_since_epoch().count() ) += ".rsp" );
xstd::file::write_string( repro, arguments );
xstd::log( "Reproduction arguments: !\"%s\" @\"%s\"\n", std::filesystem::current_path(), repro );
// Parse the arguments.
//
auto args = linker::split_arguments( std::string_view{ arguments } );
// Declare base LLVM options.
//
std::vector<const char*> llvm_arguments = {
// Split all used data and code into sections.
//
{ "--data-sections" },
{ "--function-sections" },
{ "--relocation-model=static" },
{ "--code-model=large" },
// Optimization / Codegen options.
//
{ "--whole-program-visibility" },
{ "--x86-align-branch-boundary=0" },
{ "--enable-partial-inlining" },
//{ "--tailcallopt" },
//{ "--optimize-regalloc" },
//{ "--cold-callsite-rel-freq=0" },
};
// Parse all flags.
//
std::filesystem::path output_path;
std::string entry_point = "";
bool mode_guard = true;
bool is_component_host = false;
bool forceinit = false;
int obf_level = -1;
std::string uploader_product;
std::string uploader_group;
std::string uploader_target;
std::unordered_set<std::string> strip_list = {};
for ( auto& [k, v] : args.flags )
{
// Skipped flags.
//
if ( k == "incremental" ) continue;
else if ( k == "manifest" ) continue;
else if ( k == "manifestuac" ) continue;
else if ( k == "debug" ) continue;
else if ( k == "pdb" ) continue;
else if ( k == "dynamicbase" ) continue;
else if ( k == "nxcompat" ) continue;
else if ( k == "implib" ) continue;
else if ( k == "nodefaultlib" ) continue;
else if ( k == "subsystem" ) continue;
else if ( k == "opt" ) continue;
else if ( k == "dll" ) continue;
// Replicating link.exe interface:
//
if ( k == "out" )
{
output_path = v;
}
else if ( k == "entry" )
{
entry_point = v;
}
else if ( k == "libpath" )
{
ctx.library_search_paths.emplace_back( v );
}
// Replicating lld-link.exe interface:
//
else if ( k == "mllvm" )
{
llvm_arguments.emplace_back( v.c_str() );
}
// Custom arguments:
//
else if ( k == "obf" )
{
obf_level = std::atoi( v.c_str() );
}
else if ( k == "strip" )
{
strip_list.emplace( v );
}
else if ( k == "type" )
{
for ( auto& c : v ) c = tolower( c );
if ( v == "loader" ) ctx.module_type = satella::module_type::loader;
else if ( v == "kernel" ) ctx.module_type = satella::module_type::kernel;
else if ( v == "dynamic" ) ctx.module_type = satella::module_type::dynamic;
else if ( v == "host" ) is_component_host = true, ctx.is_library = true, ctx.module_type = satella::module_type::dynamic;
else xstd::error( "Unrecognized module type '%s'.", v );
}
else if ( k == "modeguard" )
{
mode_guard = xstd::iequals( v, "yes" );
}
else if ( k == "forceinit" )
{
forceinit = xstd::iequals( v, "yes" );
}
else if ( k == "build" )
{
for ( auto& c : v ) c = tolower( c );
if ( v == "dev" ) ctx.build_type = satella::build_type::development;
else if ( v == "prod" ) ctx.build_type = satella::build_type::production;
else xstd::error( "Unrecognized build type '%s'.", v );
}
else if ( k == "llvmvf" )
{
ctx.llvm_verify = xstd::iequals( v, "yes" );
}
else if ( k == "llvmsv" )
{
ctx.llvm_save = xstd::iequals( v, "yes" );
}
else if ( k == "instr" )
{
ctx.instrument = xstd::iequals( v, "yes" );
}
else if ( k == "ltotmp" )
{
ctx.lto_save = xstd::iequals( v, "yes" );
}
else if ( k == "uproduct" )
{
uploader_product = v;
}
else if ( k == "utarget" )
{
uploader_target = v;
}
else if ( k == "ugroup" )
{
uploader_group = v;
}
else
{
xstd::warning( "Unrecognized switch '%s' => '%s'.", k, v );
}
}
// Set to default obfuscation level if not set:
//
if ( obf_level == -1 )
{
if ( ctx.module_type == satella::module_type::dynamic )
obf_level = 1;
else
obf_level = 2;
}
else
{
fassert( 0 <= obf_level && obf_level <= 2 );
}
// Append the search path for Apollo VM and CRT supplement.
//
if ( auto intrin_path = xstd::getenvf( "SeleneRoot", "X:\\" ); std::filesystem::exists(intrin_path) )
ctx.library_search_paths.insert( ctx.library_search_paths.begin(), intrin_path / "resources/libs" );
args.free_standing.emplace_back( "apollo-vm.lib" );
args.free_standing.emplace_back( "apollo-crt.lib" );
// Set the LTO options and initialize everything.
//
if ( ctx.build_type == satella::build_type::production )
{
llvm_arguments.insert( llvm_arguments.begin(), {
{ "-inline-threshold=750" }, // printf = ~1k
{ "-inlinedefault-threshold=750" }, // ntoa_format = ~500
{ "-inlinehint-threshold=1500" },
{ "-hot-callsite-threshold=1500" },
{ "-locally-hot-callsite-threshold=1500" },
{ "-inlinecold-threshold=750" },
{ "-inline-cold-callsite-threshold=750" },
} );
}
if ( std::find_if( llvm_arguments.begin(), llvm_arguments.end(), [ ] ( std::string_view s ) { return s.starts_with( "--O=" ); } ) == llvm_arguments.end() )
llvm_arguments.push_back( "--O=3" );
lto::set_options( llvm_arguments );
// Make sure the required options are set.
//
if ( output_path.empty() )
xstd::error( "Output path not set!" );
if ( ctx.module_type == satella::module_type::invalid )
xstd::error( "Module type not set!" );
if ( ctx.build_type == satella::build_type::invalid )
xstd::error( "Build type not set!" );
// Pick an object identifier.
//
uint64_t object_id = ( xstd::make_random<uint64_t>() - xstd::time::now().time_since_epoch().count() ) ^ __rdtsc();
if ( object_id == 0 ) object_id = xstd::make_random<uint64_t>( 1 );
xstd::log( "Object identifier: %p\n", object_id );
// Load all files.
//
std::vector<ref::strong_ptr<linker::object>> objects;
for ( std::string_view target : xstd::unique( args.free_standing | std::views::reverse ) )
{
if ( target.starts_with( '"' ) )
target = target.substr( 1, target.size() - 2 );
// Locate the file.
//
auto it = std::find_if( ctx.library_search_paths.begin(), ctx.library_search_paths.end(), [ & ] ( auto& path )
{
return std::filesystem::exists( path / target );
} );
if ( it == ctx.library_search_paths.end() ) xstd::error( "File not found '%s'\n", target );
// Load it into the collection.
//
std::filesystem::path path = *it / target;
auto r = xstd::file::read_raw<uint64_t>( path, 1 );
if ( r && r.value().front() == satella::import_library_magic )
objects.emplace_back( linker::load_slib( path ) );
else if ( r && r.value().front() == ar::format_magic )
ctx.libraries.emplace_back( linker::load_library( path ) );
else
objects.emplace_back( linker::load_object( path ) );
}
for ( auto& obj : objects )
ctx.include( std::move( obj ) );
// Include all builtin providers and mark them as so.
//
for ( auto& lib : ctx.libraries )
{
auto fname = lib.backing_file.path().filename().string();
if ( xstd::iequals( fname, "minicrt.lib" ) ||
xstd::iequals( fname, "fp.lib" ) ||
xstd::iequals( fname, "apollo-vm.lib" ) ||
xstd::iequals( fname, "apollo-crt.lib" ) )
{
for ( auto& obj : lib.objects )
{
ctx.include( obj.get() );
obj.get()->is_builtin_provider = true;
}
}
}
// If we're building the component host, include every dependency to re-export.
//
if ( ctx.is_library )
{
for ( auto& lib : ctx.libraries )
{
// Skip if import library.
//
size_t imp_stubs = 0;
for ( auto& [k, v] : lib.public_symbols )
imp_stubs += k.starts_with( "__imp_" );
if ( imp_stubs > 2 )
continue;
for ( auto& obj : lib.objects )
ctx.include( obj.get() );
}
}
// Referenece the entry point.
//
if ( !ctx.require( entry_point ) )
xstd::error( "Entry point '%s' not found.", entry_point );
// Transform all LTO objects.
//
xstd::log( "Transforming bitcode...\n" );
auto bc_transform_time = xstd::profile( [ & ] ()
{
// Unpack every LTO object into an LLVM one.
//
for ( auto& obj : ctx.working_set )
{
if ( !obj->lto )
continue;
LLVMMemoryBufferRef module_buffer = LLVMCreateMemoryBufferWithMemoryRange( ( char* ) obj->lto.raw_data.data(), obj->lto.raw_data.size(), obj->lto.path.c_str(), false );
fassert( !LLVMParseBitcode2( module_buffer, &obj->llvm ) );
LLVMDisposeMemoryBuffer( module_buffer );
}
// Strip symbols for the specified objects.
//
for ( auto& obj : ctx.working_set )
{
if ( obj->llvm )
{
std::string file_name = obj->file_name.filename().string();
if ( strip_list.contains( file_name ) )
LLVMStripModuleDebugInfo( obj->llvm );
}
}
// Cleanup.
//
xstd::log( "Cleaning up...\n" );
linker::transform::cleanup( ctx );
// Lift dynamic relocations.
//
xstd::log( "Lifting dynamic relocations...\n" );
linker::transform::lift_dynrelocs( ctx );
// Discover and normalize attributes.
//
xstd::log( "Discovering attributes...\n" );
linker::transform::discover_attributes( ctx );
linker::transform::normalize_attributes( ctx );
// If usermode, lift syscalls.
//
if ( ctx.module_type == satella::module_type::loader )
{
xstd::log( "Lifting syscalls...\n" );
linker::transform::lift_syscalls( ctx );
}
// Insert instrumentation.
//
if ( ctx.instrument )
{
xstd::log( "Inserting instrumentation...\n" );
linker::transform::insert_instrumentation( ctx );
}
// Transform strings.
//
xstd::log( "Transforming strings...\n" );
linker::transform::string_conversion( ctx, obf_level >= 1 );
// Insert lazy imports.
//
xstd::log( "Inserting lazy imports...\n" );
linker::transform::lazy_import( ctx );
// Insert mode-switch stubs.
//
if ( mode_guard && ctx.module_type == satella::module_type::dynamic )
{
xstd::log( "Inserting mode-switch stubs...\n" );
linker::transform::auto_mode_switch( ctx );
}
// obf2: Extreme MBA obfuscation, virtualization, all xrefs lowered.
//
if ( obf_level == 2 )
{
xstd::log( "Virtualizing targets...\n" );
linker::transform::convert_virtual_routines( ctx );
xstd::log( "Applying MBA obfuscation...\n" );
linker::transform::apply_mba( ctx, true );
xstd::log( "Lowering xrefs...\n" );
linker::transform::lower_xrefs( ctx );
}
// obf1: Normal MBA obfuscation, virtualization, all xrefs lowered.
//
else if ( obf_level == 1 )
{
xstd::log( "Virtualizing targets...\n" );
linker::transform::convert_virtual_routines( ctx );
xstd::log( "Applying MBA obfuscation...\n" );
linker::transform::apply_mba( ctx, false );
xstd::log( "Lowering xrefs...\n" );
linker::transform::lower_xrefs( ctx );
}
// obf0: No MBA obfuscation and no virtualization if development mode.
//
else if ( ctx.build_type != satella::build_type::development )
{
xstd::log( "Virtualizing targets...\n" );
linker::transform::convert_virtual_routines( ctx );
}
// Repack them into LTO objects.
//
xstd::log( "Repacking LTO objects...\n" );
int bc_obj_cntr = 0;
for ( auto& obj : ctx.working_set )
{
if ( !obj->llvm )
continue;
// If flag to save LLVM temporaries is set, print each object file into a temporary.
//
if ( ctx.llvm_save )
{
std::filesystem::path temp = "llvm_tmp";
std::filesystem::create_directory( temp );
std::string path = ( temp / std::filesystem::path{ obj->lto.path }.filename() ).string() + xstd::fmt::str("%d.ll", bc_obj_cntr++);
char* err_msg = nullptr;
LLVMPrintModuleToFile(
obj->llvm,
path.c_str(),
&err_msg
);
xstd::log( "Written LLVM output at %s\n", path );
if ( err_msg ) LLVMDisposeMessage( err_msg );
}
LLVMMemoryBufferRef mem_buff = LLVMWriteBitcodeToMemoryBuffer( obj->llvm );
obj->lto = lto::object{ LLVMGetBufferStart( mem_buff ), LLVMGetBufferSize( mem_buff ), obj->file_name };
LLVMDisposeMemoryBuffer( mem_buff );
LLVMDisposeModule( std::exchange( obj->llvm, nullptr ) );
}
} );
xstd::log( "Bitcode transformation complete, took: %s\n", bc_transform_time );
// Determine the required symbols.
//
std::vector<std::string> req_symbols = { entry_point, "atexit" };
if ( ctx.instrument )
req_symbols.push_back( "__crt_instrument_begin" ), req_symbols.push_back( "__crt_instrument_end" );
// If library, export every public symbol.
//
if ( ctx.is_library )
{
for ( auto& obj : ctx.working_set )
{
constexpr std::string_view discard_list[] = {
"xed_encode_",
"xed_lookup_",
"xed_enc_",
"xed_dec_",
"xed3_",
"lj_",
"srbi_",
"srbir_",
"_",
};
constexpr std::string_view exclusion_list[] = {
"__lj_mcode_alloc",
"__lj_mcode_free",
"__lj_fopen_usr",
"lj_err_unwind_win",
"lj_state_growstack1",
"lj_mem_newgco",
"lj_debug_getinfo",
"lj_debug_frame",
"lj_str_new",
"lj_ctype",
"_crt",
"__acrt",
"_handle",
"_errno",
"__report",
"_guard",
"__security",
"__GS",
"_callnewh",
"_aligned_",
"_Throw",
"_X",
"_Raise",
"_Syserror",
"_invalid",
"_Xtime",
"_popen",
"_pclose",
"_ftell",
"_fseek",
"__crt",
"__std",
"_Query_perf",
"_purecall",
"_Thrd",
"_Mtx",
"_Smtx",
"_beginthreadex",
"_Cnd",
"_Random"
};
if ( xstd::ifind( obj->file_name.native(), "apollo-vm" ) != std::string::npos || xstd::ifind( obj->file_name.native(), "apollo-crt" ) != std::string::npos )
continue;
for ( auto& scn : obj->sections )
{
for ( auto& sym : scn->symbols )
{
if ( !sym->dyn_import && sym->is_public() && sym->scn->comdat_select != coff::comdat_select_id::select_any && sym->name != entry_point )
{
bool should_export = true;
for ( auto& e : discard_list )
{
if ( sym->name.starts_with( e ) )
{
should_export = false;
for ( auto& e2 : exclusion_list )
{
if ( sym->name.starts_with( e2 ) )
{
should_export = true;
break;
}
}
break;
}
}
if ( should_export )
obj->dllexported_symbols.emplace( sym->name );
}
}
}
}
}
for ( auto& obj : ctx.working_set )
{
for ( auto& exp : obj->dllexported_symbols )
{
xstd::log( "Exported symbol: %s\n", exp );
req_symbols.emplace_back( exp );
}
}
// Lift the metadata sections, apply primary /OPT:REF and prevent new files from being loaded.
//
ctx.lift_metadata();
ctx.opt_ref( req_symbols, false );
ctx.loader_lock = true;
// Generate code, lift metadata again.
//
ctx.code_gen( req_symbols );
ctx.lift_metadata();
// Re-evaluate the need for atexit and apply secondary /OPT:REF.
//
if ( !is_component_host )
{
req_symbols.erase( std::find( req_symbols.begin(), req_symbols.end(), "atexit" ) );
for ( auto& obj : ctx.working_set )
{
if ( !obj->meta.pre_terminators.empty() || !obj->meta.terminators.empty() )
{
req_symbols.emplace_back( "atexit" );
break;
}
}
}
ctx.opt_ref( req_symbols, true );
// Transform native code.
//
xstd::log( "Transforming native code...\n" );
auto nat_transform_time = xstd::profile( [ & ] ()
{
// Split basic blocks and create self-relocating sections.
//
xstd::log( "Splitting basic blocks...\n" );
if ( obf_level > 1 )
linker::transform::split_basic_blocks( ctx, 1 );
// Finalize dynamic relocations.
//
xstd::log( "Finalizing dynamic relocations...\n" );
linker::transform::finalize_dynrelocs( ctx );
// If kernel binary, clear retptr on return.
//
//if ( ctx.module_type == satella::module_type::kernel )
//{
// xstd::log( "Shadowing returns...\n" );
// linker::transform::shadow_return( ctx );
//}
// Make entry point discardable.
//
ctx.attributes.add( entry_point, "init_discardable" );
// Emulate CRT initialization and termination, create an object, symbol and a section.
//
auto& ep_obj = ctx.working_set.emplace_back( ref::allocate<linker::object>() );
ep_obj->force_includes = { "$linker_injected_entry_point$" };
ep_obj->file_name = "$linker_injected_entry_point$";
auto& ep_scn = ep_obj->sections.emplace_back( ref::allocate<linker::section>() );
ep_scn->owner = ep_obj;
ep_scn->name = ".text";
ep_scn->characteristics.cnt_code = true;
ep_scn->characteristics.mem_read = true;
ep_scn->characteristics.mem_execute = true;
auto ep_sym = ref::allocate<linker::symbol>();
ep_sym->scn = ep_scn;
ep_sym->name = "linker_injected_entry_point";
ep_sym->storage_class = coff::storage_class_id::public_symbol;
ep_sym->derived_type = coff::derived_type_id::function;
ep_scn->symbols = { ep_sym };
ctx.attributes.add( ep_sym->name, "init_discardable" );
fassert( ctx.public_symbols.emplace( ep_sym->name, ep_sym ).second );
// Create a list of <function, argument> containing initializers, atexit entries and finally the entry point.
//
std::vector<std::pair<ref::strong_ptr<linker::symbol>, ref::strong_ptr<linker::symbol>>> invocations;
for ( auto list : { &linker::object_metadata::pre_initializers,
&linker::object_metadata::initializers } )
{
for ( auto& obj : ctx.working_set )
{
for ( auto& x : obj->meta.*list )
{
auto it = std::find_if( invocations.begin(), invocations.end(), [ & ] ( auto& pair ) { return pair.first == x; } );
if ( it != invocations.end() )
continue;
invocations.emplace_back( x, nullptr );
// Add the discardable attribute for every initializer.
ctx.attributes.add( x->name, "init_discardable" );
}
}
}
for ( auto list : { &linker::object_metadata::pre_terminators,
&linker::object_metadata::terminators } )
{
for ( auto& obj : ctx.working_set )
{
for ( auto& x : obj->meta.*list )
{
auto it = std::find_if( invocations.begin(), invocations.end(), [ & ] ( auto& pair ) { return pair.second == x; } );
if ( it != invocations.end() )
continue;
invocations.emplace_back( ctx.require( "atexit" ), x );
}
}
}
auto ep_fn = ctx.require( entry_point );
invocations.emplace_back( ep_fn, nullptr );
// If dynamic component, build the initialization array but do not invoke it.
//
if ( !is_component_host && !forceinit && ctx.module_type == satella::module_type::dynamic )
{
// Place entry point at the beginning as a jump.
//
ep_scn->raw_data = {
0xE9, 0x00, 0x00, 0x00, 0x00, // jmp framework entrypoint
};
ep_scn->relocs.push_back( { 1, invocations.back().first, coff::rel_amd64_rel32 } );
// Place the null-terminated invocation array as is afterwards.
//
invocations.back() = { nullptr, nullptr };
for ( auto& [fn, arg] : invocations )
{
ep_scn->raw_data.insert( ep_scn->raw_data.end(), 16, 0 );
if ( fn )
ep_scn->relocs.push_back( { ( uint32_t ) ( ep_scn->raw_data.size() - 16 ), fn, coff::rel_amd64_addr64 } );
if ( arg )
ep_scn->relocs.push_back( { ( uint32_t ) ( ep_scn->raw_data.size() - 8 ), arg, coff::rel_amd64_addr64 } );
}
}
// If debug module, make a simple array of calls.
//
else if ( ctx.build_type == satella::build_type::development )
{
ep_scn->raw_data = { 0x48, 0x83, 0xEC, 0x28 }; // sub rsp, 0x28
for ( auto& [fn, arg] : invocations )
{
if ( arg ) {
ep_scn->raw_data.insert( ep_scn->raw_data.end(), { 0x48, 0x8D, 0x0D, 0x00, 0x00, 0x00, 0x00 } ); // lea rcx, [arg]
ep_scn->relocs.push_back( { ( uint32_t ) ( ep_scn->raw_data.size() - 4 ), arg, coff::rel_amd64_rel32 } );
}
if ( fn == ep_fn ) {
ep_scn->raw_data.insert( ep_scn->raw_data.end(), { 0x48, 0x8D, 0x54, 0x24, 0x28 } ); // lea rdx, [rsp+0x28]
}
ep_scn->raw_data.insert( ep_scn->raw_data.end(), { 0xE8, 0x00, 0x00, 0x00, 0x00 } ); // call fn
ep_scn->relocs.push_back( { ( uint32_t ) ( ep_scn->raw_data.size() - 4 ), fn, coff::rel_amd64_rel32 } );
}
ep_scn->raw_data.insert( ep_scn->raw_data.end(), { 0x48, 0x83, 0xC4, 0x28, 0xC3 } ); // add rsp, 0x28; ret
}
// Otherwise create the obfuscated entry point.
//
else
{
// Create the loop.
//
/*
mov ecx, <NUM ENTRIES>*2
// Get three registers on the frame
push rsi
push rdi
push rbx
sub rsp, 0x20
// Rbx should hold the beginning of the list, start the loop
lea rbx, [rip+list]
invoke_loop:
// Invoke the helper
call invoke_one
// Counter = (counter - 1)
mov ecx, esi
loop invoke_loop
// Pop the registers off and return
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
// <Helper>
invoke_one:
// Duplicate the retptr
push [rsp]
// Rsi = counter - 1
lea esi, [ecx-1]
// Rax = list[counter]
movsx rax, dword ptr [rbx+rcx*4]
// [rsp] = (retptr + list[counter]), Rax = retptr
xadd [rsp], rax
// Rcx = list[counter - 1]
movsx rcx, dword ptr [rbx+rsi*4]
// Rcx = (retptr + list[counter - 1])
add rcx, rax
// Rdx = sp0
lea rdx, [rsp+0x48|58]
// Dispatch
ret
list:
// the whole list, padded by 4 bytes
*/
bool add_logo = ctx.module_type == satella::module_type::loader;
ep_scn->raw_data =
{
0xB9, 0xEF, 0xBE, 0xAD, 0x0E, 0x56, 0x57, 0x53, 0x48, 0x83, 0xEC, 0x20, 0x48, 0x8D, 0x1D, 0x2E,
0x00, 0x00, 0x00, 0xE8, 0x0C, 0x00, 0x00, 0x00, 0x89, 0xF1, 0xE2, 0xF7, 0x48, 0x83, 0xC4, 0x20,
0x5B, 0x5F, 0x5E, 0xC3, 0xFF, 0x34, 0x24, 0x67, 0x8D, 0x71, 0xFF, 0x48, 0x63, 0x04, 0x8B, 0x48,
0x0F, 0xC1, 0x04, 0x24, 0x48, 0x63, 0x0C, 0xB3, 0x48, 0x01, 0xC1, 0x48, 0x8D, 0x54, 0x24, 0x00,
0xC3
};
ep_scn->raw_data[ ep_scn->raw_data.size() - 2 ] = uint8_t( add_logo ? 0x58 : 0x48 );
// Prefix the initialization list with ~24 nop calls and write the table length.
//
auto nop_sym = ref::allocate<linker::symbol>();
nop_sym->scn = ep_scn;
nop_sym->value = ep_scn->raw_data.size() - 1;
nop_sym->name = "";
nop_sym->storage_class = coff::storage_class_id::label;
ep_scn->symbols.emplace_back( nop_sym );
size_t nopcnt = xstd::make_random( 16, 32 );
for ( size_t n = 0; n != nopcnt; n++ )
invocations.insert( invocations.begin(), std::pair{ nop_sym, nullptr } );
*( uint32_t* ) ( ep_scn->raw_data.data() + 1 ) = invocations.size() * 2;
// Write the list.
//
std::reverse( invocations.begin(), invocations.end() );
ep_scn->raw_data.resize( ep_scn->raw_data.size() + 4 ); // Pad one.
for ( auto& [func, arg] : invocations )
{
for ( auto& sym : { arg, func } )
{
if ( sym )
{
int32_t p = ( int32_t ) ( ep_scn->raw_data.size() - 0x18 + 4 );
ep_scn->raw_data.insert( ep_scn->raw_data.end(), ( uint8_t* ) &p, ( uint8_t* ) std::next( &p ) );
ep_scn->relocs.push_back( { ( uint32_t ) ( ep_scn->raw_data.size() - 4 ), sym, coff::rel_amd64_rel32 } );
}
else
{
for ( size_t n = 0; n != 4; n++ )
ep_scn->raw_data.emplace_back( xstd::make_random<uint8_t>() );
}
}
}
// If this is the loader, swap again with the logo symbol.
//
if ( add_logo )
linker::transform::add_logo( ctx, ep_sym );
}
// Replace the entry point.
//
entry_point = ep_sym->name;
} );
xstd::log( "Native transformation complete, took: %s\n", nat_transform_time );
// Handle certain attributes.
//
for ( auto& sym_name : ctx.attributes.move( "link_object_id" ) )
{
ctx.enum_symbols( [ &, name = sym_name ] ( const ref::strong_ptr<linker::symbol>& isym )
{
if ( isym->name == name )
{
if ( isym->scn->symbols.size() != 1 )
xstd::error( "Object identifier is not in a COMDAT segment." );
if ( isym->scn->raw_data.size() != 8 )
xstd::error( "Object identifier has unexpected size." );
isym->scn->raw_data.resize( 8 );
*( uint64_t* ) isym->scn->raw_data.data() = object_id;
isym->scn->characteristics.cnt_init_data = true;
isym->scn->characteristics.mem_read = true;
}
} );
}
for ( auto& [sym_name, salign] : ctx.attributes.move_prefixed( "enforce_alignment" ) )
{
size_t align = xstd::parse_number( salign );
ctx.enum_symbols( [ &, name = sym_name ] ( const ref::strong_ptr<linker::symbol>& isym )
{
if ( isym->name == name )
{
fassert( isym->value == 0 );
auto& scn = isym->scn;
scn->characteristics.set_alignment(
std::max( std::max( align, 32ull ), scn->characteristics.get_alignment() )
);
}
} );
}
for ( auto& sym_name : ctx.attributes.move( "no_stub" ) )
{
ctx.enum_symbols( [ &, name = sym_name ] ( const ref::strong_ptr<linker::symbol>& isym )
{
if ( isym->name == name )
isym->scn->characteristics.mem_preload = true;
} );
}
auto zstd_list = ctx.attributes.move( "zcompressed" );
for ( auto& [sym_name, attr] : ctx.attributes.move_prefixed( "external_file:" ) )
{
xstd::log( "Linking file '%s'...\n", attr );
// Try to find the file.
//
static const std::filesystem::path search_directories[] = {
xstd::getenvf( "SeleneRoot", "X:\\" ), // Project base
"", // Current directory
};
xstd::io_result<std::vector<uint8_t>> file;
for ( auto& directory : search_directories )
if ( ( file = xstd::file::read_raw( directory / attr ) ) )
break;
if ( !file ) xstd::error( "Failed to read the file '%s'.", attr );
// If symbol has the attribute 'zcompressed', compress the contents.
//
if ( zstd_list.contains( sym_name ) )
*file = *xstd::zstd::compress<std::vector<uint8_t>>( *file, xstd::zstd::max_level );
// Prefix with size.
//
uint64_t size = file->size();
file->insert( file->begin(), ( uint8_t* ) &size, ( uint8_t* ) std::next( &size ) );
// Replace with the file contents.
//
ctx.enum_symbols( [ &, name = sym_name ] ( const ref::strong_ptr<linker::symbol>& isym )
{
if ( isym->name == name )
{
if ( isym->scn->symbols.size() != 1 )
xstd::error( "File linked symbol is not in a COMDAT segment." );
if ( isym->scn->raw_data.empty() )
xstd::error( "File linked symbol contains data." );
isym->scn->raw_data = *file;
isym->scn->characteristics.cnt_init_data = true;
isym->scn->characteristics.mem_read = true;
}
} );
}
for ( auto& [sym_name, attr] : ctx.attributes.move_prefixed( "compile_shader:" ) )
{
auto sep = attr.find( ',' );
if ( sep == std::string::npos )
xstd::error( "Invalid shader target '%s'\n", attr );
std::string entry_point{ attr.substr( 0, sep ) };
std::string target{ attr.substr( sep + 1 ) };
std::string source_name = util::undecorate_name( sym_name.c_str() );
if ( source_name.empty() ) source_name = sym_name;
xstd::log( "Compiling shader '%s@%s' for '%s'...\n", entry_point.c_str(), source_name.c_str(), target.c_str() );
// Enumerate symbols.
//
ctx.enum_symbols( [ &, name = sym_name ] ( const ref::strong_ptr<linker::symbol>& isym )
{
if ( isym->name != name )
return;
if ( isym->scn->symbols.size() != 1 )
xstd::error( "File linked symbol is not in a COMDAT segment." );
ID3DBlob* result = nullptr;
ID3DBlob* error = nullptr;
HRESULT status = D3DCompile(
isym->scn->raw_data.data(),
isym->scn->raw_data.size(),
source_name.c_str(),
nullptr, // No defines.
nullptr, // No includes
entry_point.c_str(), // Fixed entry point.
target.c_str(),
D3DCOMPILE_OPTIMIZATION_LEVEL3,
0,
&result,
&error
);
if ( error ) xstd::error( "Shader compiler error: %.*s\n", error->GetBufferSize(), error->GetBufferPointer() );
if ( !result ) xstd::error( "Shader compiler error: %08x\n", status );
ID3DBlob* stripped_result = nullptr;
status = D3DStripShader(
result->GetBufferPointer(),
result->GetBufferSize(),
D3DCOMPILER_STRIP_REFLECTION_DATA |
D3DCOMPILER_STRIP_DEBUG_INFO |
D3DCOMPILER_STRIP_TEST_BLOBS |
D3DCOMPILER_STRIP_PRIVATE_DATA |
D3DCOMPILER_STRIP_ROOT_SIGNATURE,
&stripped_result
);
if ( !stripped_result ) xstd::error( "Shader stripping error: %08x\n", status );
uint32_t shader_size = ( uint32_t ) stripped_result->GetBufferSize();
isym->scn->raw_data.resize( shader_size + 4 );
*(uint32_t*) isym->scn->raw_data.data() = shader_size;
memcpy( isym->scn->raw_data.data() + 4, stripped_result->GetBufferPointer(), shader_size );
result->Release();
stripped_result->Release();
isym->scn->characteristics.cnt_init_data = true;
isym->scn->characteristics.mem_read = true;
} );
}
// Resolve external symbols, if there are any left unresolved, print warnings for them and then throw an error.
//
std::unordered_set unresolved = ctx.resolve_all();
std::erase_if( unresolved, [ & ] ( const std::string& entry )
{
// Skip if intrinsic.
//
if ( entry == "__ImageBase" )
return true;
// Search every section for any relocation referencing it.
//
for ( auto& obj : ctx.working_set )
{
for ( auto& scn : obj->sections )
{
for ( auto& reloc : scn->relocs )
{
if ( reloc.ref_symbol->is_undefined() && reloc.ref_symbol->name == entry )
{
linker::symbol* sym = scn->symbols.size() ? scn->symbols.front().get() : nullptr;
for ( auto& x : scn->symbols )
{
if ( reloc.offset > x->value && !x->name.empty() )
{
if ( !sym || reloc.offset - x->value < reloc.offset - sym->value )
sym = x.get();
}
}
xstd::warning( "Undefined symbol: %s.", entry );
xstd::warning( "Referenced by: %s:%s+%x", obj->file_name.filename(), sym ? sym->name : "", sym ? reloc.offset - sym->value : reloc.offset );
break;
}
}
}
}
return false;
} );
if ( !unresolved.empty() ) xstd::error( "Undefined symbols found: %s", unresolved );
// Make sure every relocation referencing a dynamic symbol is of type abs64.
//
{
std::unordered_map<std::string, ref::strong_ptr<linker::symbol>> proxy_map;
std::vector<ref::strong_ptr<linker::object>> proxy_objects;
for ( auto& obj : ctx.working_set )
{
for ( auto& scn : obj->sections )
{
for ( auto& reloc : scn->relocs )
{
if ( reloc.ref_symbol.alive() && reloc.ref_symbol->dyn_import )
{
if ( reloc.type != coff::rel_amd64_addr64 )
{
auto& alt = proxy_map[ reloc.ref_symbol->name ];
if ( !alt )
{
xstd::warning( "Referencing %s with relocation type = %s",
reloc.ref_symbol->name,
xstd::name_enum( reloc.type )
);
auto& proxy_obj = proxy_objects.emplace_back( ref::allocate<linker::object>() );
proxy_obj->file_name = ".proxy." + reloc.ref_symbol->name;
auto& proxy_scn = obj->sections.emplace_back( ref::allocate<linker::section>() );
proxy_scn->owner = proxy_obj;
proxy_scn->name = ".textproxy";
proxy_scn->characteristics.cnt_code = true;
proxy_scn->characteristics.mem_read = true;
proxy_scn->characteristics.mem_execute = true;
proxy_scn->raw_data = {
/*0: jmp [rip] */ 0xFF, 0x25, 0x00, 0x00, 0x00, 0x00,
/*6: dq <import> */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
auto proxy_sym = ref::allocate<linker::symbol>();
proxy_sym->scn = proxy_scn;
proxy_sym->name = "__proxy_" + reloc.ref_symbol->name;
proxy_sym->storage_class = coff::storage_class_id::public_symbol;
proxy_sym->derived_type = coff::derived_type_id::function;
proxy_scn->symbols = { proxy_sym };
proxy_scn->relocs.push_back( { 6, reloc.ref_symbol, coff::rel_amd64_addr64 } );
alt = proxy_sym;
}
reloc.ref_symbol = alt;
}
}
}
}
}
for ( auto& obj : proxy_objects )
ctx.working_set.emplace_back( std::move( obj ) );
}
// Generate the satella image.
//
auto img = satella::convert(
ctx,
ctx.require( entry_point ),
{ "__ImageBase" }
);
img->object_identifier = object_id;
// Demangle symbol names.
//
std::unordered_map<satella::symbol*, std::string> old_names;
for ( auto& scn : img->sections )
{
for ( auto& [off, sym] : scn->symbols )
{
if ( sym->name.starts_with( '?' ) && !sym->is_dynamic && !img->exported_symbols.contains( sym->name ) )
{
if ( auto out = util::undecorate_name( sym->name.c_str() ); !out.empty() )
{
old_names.emplace( sym.get(), std::move( sym->name ) );
sym->name = out;
}
}
}
}
// If final type won't be PE, hint the groups.
//
if ( ctx.module_type != satella::module_type::loader )
{
xstd::log( "Assigning group indices...\n" );
img->hint_groups();
}
// Write the import library if relevant.
//
if ( img->exported_symbols.size() )
satella::write_import_library( xstd::make_copy( output_path ).replace_extension( "lib" ), img->generate_slib() );
// Write the image.
//
auto serialized_img = satella::serialize_image( *img );
xstd::file::write_raw( output_path.string() + ".satella", serialized_img );
// Revert the demangling.
//
for ( auto& [sym, name] : old_names )
sym->name = std::move( name );
// Create the PE image.
//
xstd::log( "Generating the sample PE file...\n" );
auto pe_gen_time = xstd::profile( [ & ] ()
{
std::ofstream pefs( output_path, std::ios::binary );
if ( !pefs.good() )
xstd::error( "Failed writing to file '%s'\n", output_path );
xstd::seed_rng( 0 );
auto [pe_image, _] = *satella::pe::write_image( img.get(), satella::pe::pick_image_base( true ), true, true );
pefs.write( ( const char* ) pe_image.data(), pe_image.size() );
} );
xstd::log( "PE generation complete, took: %s\n", pe_gen_time );
return 0;
}
================================================
FILE: apollo-linker/linker.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.6.33829.357
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "linker", "linker.vcxproj", "{6B4A920D-C01C-4B7B-8AE9-75CEC1AA2947}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Shared", "..\shared\shared.vcxitems", "{B4B0D0D7-9ED5-4253-868B-327DE77639ED}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "apollo-vm", "..\apollo-vm\apollo-vm.vcxproj", "{069A7C1E-2460-4449-9E33-DAF5F37EDC2F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "apollo-crt", "..\apollo-crt\apollo-crt.vcxproj", "{C0D3D10E-C5AD-4FDC-97F9-A32459289E60}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xstd", "..\..\Libraries\xstd\xstd.vcxitems", "{022E6794-287F-4800-9932-7BFBBBEED679}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6B4A920D-C01C-4B7B-8AE9-75CEC1AA2947}.Debug|x64.ActiveCfg = Debug|x64
{6B4A920D-C01C-4B7B-8AE9-75CEC1AA2947}.Debug|x64.Build.0 = Debug|x64
{6B4A920D-C01C-4B7B-8AE9-75CEC1AA2947}.Release|x64.ActiveCfg = Release|x64
{6B4A920D-C01C-4B7B-8AE9-75CEC1AA2947}.Release|x64.Build.0 = Release|x64
{069A7C1E-2460-4449-9E33-DAF5F37EDC2F}.Debug|x64.ActiveCfg = Release|x64
{069A7C1E-2460-4449-9E33-DAF5F37EDC2F}.Debug|x64.Build.0 = Release|x64
{069A7C1E-2460-4449-9E33-DAF5F37EDC2F}.Release|x64.ActiveCfg = Release|x64
{069A7C1E-2460-4449-9E33-DAF5F37EDC2F}.Release|x64.Build.0 = Release|x64
{C0D3D10E-C5AD-4FDC-97F9-A32459289E60}.Debug|x64.ActiveCfg = Release|x64
{C0D3D10E-C5AD-4FDC-97F9-A32459289E60}.Debug|x64.Build.0 = Release|x64
{C0D3D10E-C5AD-4FDC-97F9-A32459289E60}.Release|x64.ActiveCfg = Release|x64
{C0D3D10E-C5AD-4FDC-97F9-A32459289E60}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3C32453D-6A40-4697-9DEA-D11EBA5F65C2}
EndGlobalSection
GlobalSection(SharedMSBuildProjectFiles) = preSolution
..\..\Libraries\xstd\xstd.vcxitems*{022e6794-287f-4800-9932-7bfbbbeed679}*SharedItemsImports = 9
..\shared\shared.vcxitems*{069a7c1e-2460-4449-9e33-daf5f37edc2f}*SharedItemsImports = 4
..\shared\shared.vcxitems*{6b4a920d-c01c-4b7b-8ae9-75cec1aa2947}*SharedItemsImports = 4
..\..\Libraries\xstd\xstd.vcxitems*{6b4a920d-c01c-4b7b-8ae9-75cec1aa2947}*SharedItemsImports = 4
..\shared\shared.vcxitems*{b4b0d0d7-9ed5-4253-868b-327de77639ed}*SharedItemsImports = 9
..\shared\shared.vcxitems*{c0d3d10e-c5ad-4fdc-97f9-a32459289e60}*SharedItemsImports = 4
EndGlobalSection
EndGlobal
================================================
FILE: apollo-linker/linker.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="linker.cpp" />
<ClCompile Include="object\primitives.cpp" />
<ClCompile Include="object\collection.cpp" />
<ClCompile Include="object\comdat.cpp" />
<ClCompile Include="object\opt_ref.cpp" />
<ClCompile Include="transform\attribute_discovery.cpp" />
<ClCompile Include="transform\attribute_normalization.cpp" />
<ClCompile Include="transform\auto_mode_switch.cpp" />
<ClCompile Include="transform\cleanup.cpp" />
<ClCompile Include="transform\dyn_relocs.cpp" />
<ClCompile Include="transform\lazy_import.cpp" />
<ClCompile Include="transform\logo.cpp" />
<ClCompile Include="transform\lower_xrefs.cpp" />
<ClCompile Include="transform\profiler.cpp" />
<ClCompile Include="transform\shadow_return.cpp" />
<ClCompile Include="transform\string_conversion.cpp" />
<ClCompile Include="transform\mixed_bool_arith.cpp" />
<ClCompile Include="transform\split_basic_blocks.cpp" />
<ClCompile Include="transform\syscall_lifter.cpp" />
<ClCompile Include="transform\virtualization.cpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="object\code_gen.cpp" />
<ClInclude Include="object\primitives.hpp" />
<ClInclude Include="object\collection.hpp" />
<ClInclude Include="object\comdat.hpp" />
<ClInclude Include="object\reference_counting.hpp" />
<ClInclude Include="transform\attribute_discovery.hpp" />
<ClInclude Include="transform\attribute_normalization.hpp" />
<ClInclude Include="transform\auto_mode_switch.hpp" />
<ClInclude Include="transform\cleanup.hpp" />
<ClInclude Include="transform\dyn_relocs.hpp" />
<ClInclude Include="transform\lazy_import.hpp" />
<ClInclude Include="transform\logo.hpp" />
<ClInclude Include="transform\lower_xrefs.hpp" />
<ClInclude Include="transform\profiler.hpp" />
<ClInclude Include="transform\shadow_return.hpp" />
<ClInclude Include="transform\string_conversion.hpp" />
<ClInclude Include="transform\mixed_bool_arith.hpp" />
<ClInclude Include="transform\split_basic_blocks.hpp" />
<ClInclude Include="transform\syscall_lifter.hpp" />
<ClInclude Include="transform\virtualization.hpp" />
<ClInclude Include="utility\argparse.hpp" />
<ClInclude Include="utility\liblto.hpp" />
<ClInclude Include="utility\llvm.hpp" />
<ClInclude Include="utility\pdb.hpp" />
<ClInclude Include="utility\undname.hpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{6b4a920d-c01c-4b7b-8ae9-75cec1aa2947}</ProjectGuid>
<RootNamespace>linker</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>ClangCL</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<SpectreMitigation>false</SpectreMitigation>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>ClangCL</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
<Import Project="..\shared\shared.vcxitems" Label="Shared" />
<Import Project="..\..\Libraries\xstd\xstd.vcxitems" Label="Shared" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(SeleneRoot)Shared;$(CxxLibraries)Json;$(CxxLibraries)zstd\lib;$(CxxLibraries)pdblib\includes;$(CxxLibraries)linux-pe\includes;$(CxxLibraries)XED\Original\XED\build\kit\include;$(CxxLibraries)Xed++\include;$(LLVM_PATH)\include;$(LLVMInstallDir)\lib\clang\$(LLVMToolsVersion)\include;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath>
<LibraryPath>$(CxxLibraries)XED\Original\XED\build\kit\lib;$(LLVM_PATH)\lib;$(LibraryPath)</LibraryPath>
<ExecutablePath>$(LLVMInstallDir)\bin;$(ExecutablePath)</ExecutablePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(SeleneRoot)Shared;$(CxxLibraries)Json;$(CxxLibraries)zstd\lib;$(CxxLibraries)pdblib\includes;$(CxxLibraries)linux-pe\includes;$(CxxLibraries)XED\Original\XED\build\kit\include;$(CxxLibraries)Xed++\include;$(LLVM_PATH)\include;$(IncludePath)</IncludePath>
<LibraryPath>$(CxxLibraries)XED\Original\XED\build\kit\lib;$(LLVM_PATH)\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>
</SDLCheck>
<PreprocessorDefinitions>NO_NTPP;_HAS_CXX23=1;__private_binary__;XSTD_CON_NO_COLORS=1;XSTD_CON_ERR_DST=stdout;XSTD_CON_IFLUSH=1;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpplatest</LanguageStandard>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
<OmitFramePointers>false</OmitFramePointers>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<DisableSpecificWarnings>4267;4244;5030;4068;</DisableSpecificWarnings>
<BuildStlModules>false</BuildStlModules>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>LLVM-C.lib;lto.lib;$(CxxLibraries)zstd\build\VS2010\bin\ReleaseNoLTO\libzstd_static.lib;xed.lib;xed-ild.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>LLVM-C.dll;LTO.dll</DelayLoadDLLs>
<StackReserveSize>0x2000000</StackReserveSize>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>false</SDLCheck>
<PreprocessorDefinitions>NO_NTPP;__private_binary__;XSTD_CON_ERR_DST=stdout;XSTD_CON_IFLUSH=1;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpplatest</LanguageStandard>
<Optimization>Disabled</Optimization>
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<DisableSpecificWarnings>4267;4244;5030;4068;</DisableSpecificWarnings>
<BuildStlModules>false</BuildStlModules>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>LLVM-C.lib;lto.lib;$(CxxLibraries)zstd\build\VS2010\bin\ReleaseNoLTO\libzstd_static.lib;xed.lib;xed-ild.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>LLVM-C.dll;LTO.dll</DelayLoadDLLs>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: apollo-linker/linker.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Transformations">
<UniqueIdentifier>{b42bb804-f22c-45f3-a029-9e60e8914fdc}</UniqueIdentifier>
</Filter>
<Filter Include="Utility">
<UniqueIdentifier>{e36ff0c7-0b35-4b85-9f1b-5de46a6839e4}</UniqueIdentifier>
</Filter>
<Filter Include="Object Format">
<UniqueIdentifier>{6b0d7317-f158-45e4-88f6-473c9a8ccfa5}</UniqueIdentifier>
</Filter>
<Filter Include="Transformations\Bitcode">
<UniqueIdentifier>{5a070728-00cd-4de4-9bc6-2057d857f90b}</UniqueIdentifier>
</Filter>
<Filter Include="Transformations\Native">
<UniqueIdentifier>{33acc90c-3d50-4d10-88d9-36d24b601a9a}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="linker.cpp" />
<ClCompile Include="object\collection.cpp">
<Filter>Object Format</Filter>
</ClCompile>
<ClCompile Include="object\comdat.cpp">
<Filter>Object Format</Filter>
</ClCompile>
<ClCompile Include="object\opt_ref.cpp">
<Filter>Object Format</Filter>
</ClCompile>
<ClCompile Include="object\primitives.cpp">
<Filter>Object Format</Filter>
</ClCompile>
<ClCompile Include="object\code_gen.cpp">
<Filter>Object Format</Filter>
</ClCompile>
<ClCompile Include="transform\lazy_import.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
<ClCompile Include="transform\mixed_bool_arith.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
<ClCompile Include="transform\attribute_discovery.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
<ClCompile Include="transform\attribute_normalization.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
<ClCompile Include="transform\split_basic_blocks.cpp">
<Filter>Transformations\Native</Filter>
</ClCompile>
<ClCompile Include="transform\virtualization.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
<ClCompile Include="transform\syscall_lifter.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
<ClCompile Include="transform\string_conversion.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
<ClCompile Include="transform\logo.cpp">
<Filter>Transformations\Native</Filter>
</ClCompile>
<ClCompile Include="transform\lower_xrefs.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
<ClCompile Include="transform\profiler.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
<ClCompile Include="transform\shadow_return.cpp">
<Filter>Transformations\Native</Filter>
</ClCompile>
<ClCompile Include="transform\cleanup.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
<ClCompile Include="transform\auto_mode_switch.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
<ClCompile Include="transform\dyn_relocs.cpp">
<Filter>Transformations\Bitcode</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="utility\pdb.hpp">
<Filter>Utility</Filter>
</ClInclude>
<ClInclude Include="utility\liblto.hpp">
<Filter>Utility</Filter>
</ClInclude>
<ClInclude Include="object\collection.hpp">
<Filter>Object Format</Filter>
</ClInclude>
<ClInclude Include="object\comdat.hpp">
<Filter>Object Format</Filter>
</ClInclude>
<ClInclude Include="object\reference_counting.hpp">
<Filter>Object Format</Filter>
</ClInclude>
<ClInclude Include="object\primitives.hpp">
<Filter>Object Format</Filter>
</ClInclude>
<ClInclude Include="utility\argparse.hpp">
<Filter>Utility</Filter>
</ClInclude>
<ClInclude Include="transform\lazy_import.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
<ClInclude Include="transform\mixed_bool_arith.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
<ClInclude Include="transform\attribute_discovery.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
<ClInclude Include="transform\attribute_normalization.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
<ClInclude Include="transform\split_basic_blocks.hpp">
<Filter>Transformations\Native</Filter>
</ClInclude>
<ClInclude Include="transform\virtualization.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
<ClInclude Include="transform\syscall_lifter.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
<ClInclude Include="utility\llvm.hpp">
<Filter>Utility</Filter>
</ClInclude>
<ClInclude Include="transform\string_conversion.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
<ClInclude Include="transform\logo.hpp">
<Filter>Transformations\Native</Filter>
</ClInclude>
<ClInclude Include="transform\lower_xrefs.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
<ClInclude Include="transform\profiler.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
<ClInclude Include="transform\shadow_return.hpp">
<Filter>Transformations\Native</Filter>
</ClInclude>
<ClInclude Include="transform\cleanup.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
<ClInclude Include="utility\undname.hpp">
<Filter>Utility</Filter>
</ClInclude>
<ClInclude Include="transform\auto_mode_switch.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
<ClInclude Include="transform\dyn_relocs.hpp">
<Filter>Transformations\Bitcode</Filter>
</ClInclude>
</ItemGroup>
</Project>
================================================
FILE: apollo-linker/object/code_gen.cpp
================================================
#include <algorithm>
#include <llvm-c/Core.h>
#include <llvm-c/BitWriter.h>
#include <llvm-c/BitReader.h>
#include "collection.hpp"
namespace linker
{
// Generates code for the LTO sections.
//
void collection::code_gen( const std::vector<std::string>& required )
{
// Make a list of all LTO symbols referenced from an outside context.
//
std::unordered_set<ref::strong_ptr<symbol>> lto_symbols;
std::unordered_set<ref::strong_ptr<object>> lto_objects;
std::unordered_set<std::string> lto_exports;
auto ltcg_include = [ & ] ( const ref::strong_ptr<symbol>& sym )
{
if ( sym->is_undefined() )
{
if ( auto it = public_symbols.find( sym->name ); it != public_symbols.end() && it->second.alive() )
{
if ( it->second->scn.alive() && it->second->scn->owner->lto )
lto_symbols.emplace( it->second.lock() );
}
}
else
{
lto_symbols.emplace( sym );
}
};
for ( auto& sym : required )
ltcg_include( require( sym ) );
for ( auto& object : working_set )
{
for ( auto& f : object->force_includes )
{
if ( auto it = public_symbols.find( f ); it != public_symbols.end() && it->second.alive() )
ltcg_include( it->second.lock() );
}
if ( object->lto )
{
if ( lto_objects.emplace( object ).second )
lto_exports.insert( object->dllexported_symbols.begin(), object->dllexported_symbols.end() );
continue;
}
for ( auto& scn : object->sections )
{
for ( auto& reloc : scn->relocs )
{
if ( reloc.ref_symbol->is_undefined() )
ltcg_include( reloc.ref_symbol );
}
}
}
// If there are any:
//
if ( !lto_symbols.empty() )
{
// Create the code generator, append LTO objects to the code generator, set the symbols and compile.
//
lto::code_generator ltcg = {};
for ( auto& obj : lto_objects ) ltcg.add_object( obj->lto );
for ( auto& sym : required ) ltcg.preserve_symbol( sym.c_str() );
for ( auto& sym : lto_symbols ) ltcg.mark_xref( sym->name.c_str() );
lto_codegen_set_pic_model( ltcg, LTO_CODEGEN_PIC_MODEL_DYNAMIC );
xstd::log( "Generating code...\n" );
auto [raw_obj, ltcg_time] = xstd::profile( [ & ] () { return ltcg.compile(); } );
fassert( !raw_obj.empty() );
xstd::log( "Code generation complete, took: %s\n", ltcg_time );
// Remove leftover fake objects.
//
std::erase_if( public_symbols, [ & ] ( auto& pair )
{
return pair.second.alive() && pair.second->is_defined() && pair.second->scn->owner->lto;
} );
std::erase_if( working_set, [ ] ( const ref::strong_ptr<object>& obj )
{
if ( !obj->lto ) return false;
obj->discard_section_if( [ & ] ( auto&& ) { return true; } );
return true;
} );
// Include the new object.
//
auto obj = load_object( raw_obj.data(), raw_obj.size(), "ld-temp.obj" );
obj->dllexported_symbols.insert( std::make_move_iterator( lto_exports.begin() ), std::make_move_iterator( lto_exports.end() ) );
lto_symbols.clear();
lto_objects.clear();
include( std::move( obj ) );
// If flag to save LTO temporary is set, save the resulting object file.
//
if ( lto_save )
xstd::file::write_raw( "ld-temp.obj", raw_obj );
}
}
}
================================================
FILE: apollo-linker/object/collection.cpp
================================================
#include <xstd/narrow_cast.hpp>
#include "collection.hpp"
#include "comdat.hpp"
#include <pdblib/dbi.hpp>
#include <nt/directories/dir_exceptions.hpp>
#define IN_GENERATOR 1
#include <sdkgen/support_library.hpp>
#include <xstd/algorithm.hpp>
namespace linker
{
// Attempts to resolve a symbol.
//
uint64_t collection::resolve( const ref::strong_ptr<symbol>& sym ) const
{
// If defined, return as is.
//
if ( sym->is_defined() )
return sym->get_virtual_address();
// If public or weak:
//
if ( sym->is_public() || sym->is_weak() )
{
// Try public directory:
//
if ( auto it = public_symbols.find( sym->name ); it != public_symbols.end() )
if ( it->second.alive() && it->second->is_defined() )
if ( auto va = it->second->get_virtual_address() )
return va;
// If weak, try alias:
//
if ( sym->is_weak() )
if ( auto va = sym->alias->get_virtual_address() )
return va;
}
return 0;
}
// Imports a public symbol by its name.
//
ref::strong_ptr<symbol> collection::require( const std::string& name )
{
// Skip if there is already an entry.
//
if ( auto it = public_symbols.find( name ); it != public_symbols.end() && it->second.alive() )
return it->second.lock();
if ( loader_lock ) return nullptr;
// For each library:
//
for ( auto& lib : libraries )
{
// If public symbol directory contains the name:
//
if ( auto it = lib.public_symbols.find( name ); it != lib.public_symbols.end() )
{
// If we found a valid object:
//
std::pair<std::string, std::string> imported = {};
auto oit = std::find_if( it->second.begin(), it->second.end(), [ & ] ( auto& dobj )
{
auto&& obj = dobj.get();
if ( !obj || xstd::contains( working_set, obj ) )
return false;
if ( !obj->export_symbol.empty() )
{
imported = { obj->export_symbol, obj->export_library };
return false;
}
for ( auto& scn : obj->sections )
for ( auto& sym : scn->symbols )
if ( sym->name == name )
return true;
return false;
} );
// If we found a native object, include it and return.
//
if ( oit != it->second.end() )
{
include( oit->get() );
return public_symbols.at( name ).lock(); // Should pass.
}
// Otherwise if we've found an import, add it to the list and return nullptr.
//
else if( !imported.first.empty() )
{
imports.emplace( name, imported );
imports.emplace( imported.first, imported );
return nullptr;
}
}
}
return nullptr;
}
// Includes a single object file, skips if already included, if the context
// has any unresolved public symbols, tries to import them from the library cache.
//
void collection::include( const ref::strong_ptr<object>& obj )
{
// Skip if already loaded.
//
if ( xstd::contains( working_set, obj ) )
return;
working_set.emplace_back( obj );
// If import library, add to import list and skip.
//
if ( !obj->export_symbol.empty() )
{
imports.emplace( obj->export_symbol, std::pair{ obj->export_symbol, obj->export_library } );
return;
}
// Handle consistent macros.
//
if ( enforce_macro_consistency )
{
for ( auto& [name, value] : obj->consistent_macros )
{
auto [it, inserted] = consistent_macros.emplace( name, std::pair{ value, obj->file_name } );
if ( !inserted && it->second.first != value )
xstd::error( "'%s' has mismatching values '%s' vs '%s' (%s, %s).", name.c_str(), it->second.first.c_str(), value.c_str(), it->second.second, obj->file_name.filename() );
}
}
// Handle public symbols:
//
std::vector<ref::weak_ptr<symbol>> deferred_resolve;
std::vector<ref::strong_ptr<section>> deferred_discard;
for ( auto& section : obj->sections )
{
for ( auto& sym_new : section->symbols )
{
if ( sym_new->storage_class != coff::storage_class_id::public_symbol )
continue;
// If symbol does not exist/is dead, replace with ours.
//
auto& sym = public_symbols[ sym_new->name ];
if ( !sym.alive() )
{
sym = sym_new;
continue;
}
// Handle duplicate symbols.
// If COMDAT is merged into the new entry, erase the section of the other one,
// symbols can be left as is, publics will become undefined, privates will be dangling
// and should not be referenced anyway.
//
if ( sym_new == pick_comdat( sym.lock(), sym_new ) )
{
xstd::assert_that( sym->scn->owner != obj );
sym->scn->owner->discard_section( sym->scn.lock() );
sym = sym_new;
}
else
{
deferred_discard.emplace_back( sym_new->scn.lock() );
}
}
}
for ( auto& scn : deferred_discard )
obj->discard_section( scn );
deferred_discard = {};
// Handle undefined symbols.
//
for ( auto& sym : obj->external_symbols )
{
if ( sym->storage_class != coff::storage_class_id::public_symbol )
continue;
require( sym->name );
}
}
// Lifts metadata sections into the proper structures.
//
void collection::lift_metadata()
{
// For each section in the working set:
//
for ( auto& object : working_set )
{
// Remove the fltused flag.
//
std::erase_if( object->external_symbols, [ & ] ( auto& sym )
{
if ( sym->name == "_fltused" )
{
fassert( sym.ref_count() == 1 );
object->meta.uses_fp = true;
return true;
}
return false;
} );
// Index the CodeView information.
//
struct file_checksum_tmp
{
uint32_t file_name_offset;
uint8_t size;
CV_SourceChksum_t type;
const uint8_t* raw_data;
};
std::vector<dbi::tpi_record*> type_records;
std::vector<std::pair<dbi::sym_record*, section*>> symbol_records;
std::unordered_map<size_t, file_checksum_tmp> file_checksums;
std::unordered_map<uint32_t, CodeViewInfo::InlineeSourceLine> inlinee_lines;
for ( auto& section : object->sections )
{
auto bg = ( const uint8_t* ) section->raw_data.data();
auto en = bg + section->raw_data.size();
if ( section->is_cv_sym_stream() )
{
// Read the magic.
//
if ( *( uint32_t* ) bg != 0x4 )
continue;
// Read subsections.
//
for ( auto it = bg + 4; it < en; it = bg + ( ( ( it - bg ) + 3 ) & ~3 ) )
{
auto* subsection = ( const CV_DebugSSubsectionHeader_t* ) it;
it = ( const uint8_t* ) ( subsection + 1 );
auto subsection_end = it + subsection->cbLen;
if ( subsection->type == DEBUG_S_FILECHKSMS )
{
fassert( file_checksums.empty() );
for ( auto chk = it; chk < subsection_end; chk = bg + ( ( ( chk - bg ) + 3 ) & ~3 ) )
{
auto& entry = file_checksums[ chk - it ];
entry.file_name_offset = *( uint32_t* ) chk; chk += 4;
entry.size = *chk++;
entry.type = ( CV_SourceChksum_t ) *chk++;;
entry.raw_data = chk;
chk += entry.size;
}
}
else if ( subsection->type == DEBUG_S_STRINGTABLE )
{
fassert( object->meta.str_table.empty() );
object->meta.str_table = {
( char* ) it,
( char* ) subsection_end,
};
}
else if ( subsection->type == DEBUG_S_INLINEELINES )
{
fassert( inlinee_lines.empty() );
fassert( *( uint32_t* ) it == CV_INLINEE_SOURCE_LINE_SIGNATURE );
size_t length = subsection->cbLen - 4;
fassert( ( length % sizeof( CodeViewInfo::InlineeSourceLine ) ) == 0 );
length /= sizeof( CodeViewInfo::InlineeSourceLine );
auto arr = ( CodeViewInfo::InlineeSourceLine* ) ( it + 4 );
for ( size_t n = 0; n != length; n++ )
inlinee_lines.insert_or_assign( arr[ n ].inlinee, arr[ n ] );
}
else if ( subsection->type == DEBUG_S_SYMBOLS )
{
for ( auto sym_it = it; sym_it != subsection_end; )
{
dbi::sym_record* sym = ( dbi::sym_record* ) sym_it;
symbol_records.emplace_back( sym, section.get() );
sym_it = sym->data() + sym->length();
}
}
else if ( subsection->type == DEBUG_S_LINES )
{
auto hdr = ( const CV_DebugSLinesHeader_t* ) it;
auto* reloc = section->find_reloc( &hdr->offCon );
if ( reloc && reloc->ref_symbol->is_defined() )
{
// Create or get the routine entry.
//
auto& routine = reloc->ref_symbol->scn->meta.routines[ reloc->ref_symbol->value ];
routine.code_length_li = hdr->cbCon;
// Read each block.
//
size_t cf_last = 0;
section_metadata::line_information* li_last = nullptr;
for ( auto blk_it = ( const uint8_t* ) ( hdr + 1 ); blk_it != subsection_end; )
{
auto blk = ( const CV_DebugSLinesFileBlockHeader_t* ) blk_it;
auto lines = ( const CV_Line_t* ) ( blk + 1 );
for ( size_t j = 0; j != blk->nLines; j++ )
{
size_t cf_new = lines[ j ].offset + hdr->offCon;
if ( li_last ) li_last->length = cf_new - cf_last;
auto& li_new = routine.lines[ cf_new ].emplace_back();
li_new.file_id = blk->offFile;
li_new.line = lines[ j ].linenumStart;
cf_last = cf_new;
li_last = &li_new;
}
blk_it = blk_it + blk->cbBlock;
}
if ( li_last ) li_last->length = hdr->cbCon - cf_last;
}
}
it = subsection_end;
}
}
else if ( section->is_cv_type_stream() )
{
// Read the magic.
//
fassert( *( uint32_t* ) bg == 0x4 );
for ( auto j = bg + 4; j != en; )
{
dbi::tpi_record* data = ( dbi::tpi_record* ) j;
type_records.emplace_back( data );
j += data->length();
}
}
}
// Process the file checksums table.
//
if ( !file_checksums.empty() )
{
fassert( !object->meta.str_table.empty() );
auto& map = object->meta.file_map;
map.reserve( file_checksums.size() );
for ( auto& [i, chk] : file_checksums )
{
auto& entry = map[ i ];
entry.raw_data = { chk.raw_data, chk.raw_data + chk.size };
entry.type = chk.type;
entry.file_name = &object->meta.str_table.at( chk.file_name_offset );
}
}
// Process build information.
//
for ( auto& [sym, _] : symbol_records )
{
if ( sym->kind == S_COMPILE3 )
{
auto v = ( const COMPILESYM3* ) sym->data();
object->meta.compiler_version = v->verSz;
}
else if ( sym->kind == S_COMPILE2 )
{
auto v = ( const COMPILESYM* ) sym->data();
object->meta.compiler_version = ( char* ) v->verSt;
}
else if ( sym->kind == S_COMPILE )
{
auto v = ( const CFLAGSYM* ) sym->data();
object->meta.compiler_version = ( char* ) v->ver;
}
}
// Process inlinee information.
//
for ( auto it = symbol_records.begin(); it != symbol_records.end(); )
{
const auto get_end = [ & ] ()
{
int n = 0;
for( auto r = it; r != symbol_records.end(); ++r )
{
switch ( r->first->kind )
{
case S_GPROC32:
case S_LPROC32:
case S_LPROC32_ID:
case S_GPROC32_ID:
case S_BLOCK32:
case S_SEPCODE:
case S_THUNK32:
case S_INLINESITE:
case S_INLINESITE2:
n++;
break;
case S_END:
case S_PROC_ID_END:
case S_INLINESITE_END:
n--;
break;
default:
break;
}
if ( !n ) return ++r;
}
xstd::error( "CodeView is unbalanced." );
};
// If function type:
//
switch ( it->first->kind )
{
case S_GPROC32:
case S_LPROC32:
case S_LPROC32_ID:
case S_GPROC32_ID:
{
// Find the function.
//
auto rec = ( const PROCSYM32* ) it->first->data();
auto rel = it->second->find_reloc( &rec->off );
if ( !rel || !rel->ref_symbol->is_defined() ) break;
// Create or get the routine entry.
//
auto& routine = rel->ref_symbol->scn->meta.routines[ rel->ref_symbol->value ];
fassert( !routine.code_length_sy );
routine.code_length_sy = rec->len;
// Iterate the range for inlinee sites.
//
auto end= get_end();
size_t inlinee_depth = 0;
for ( auto& [sym, dsec] : std::span( it + 1, end + 0 ) )
{
if ( sym->kind == S_INLINESITE ||
sym->kind == S_INLINESITE2 )
inlinee_depth++;
if ( sym->kind == S_INLINESITE_END )
inlinee_depth--;
if ( sym->kind == S_INLINESITE )
{
INLINESITESYM* is = ( INLINESITESYM* ) sym;
// Get the name of the inlined function.
//
dbi::tpi_record* inlinee_rec = nullptr;
if ( type_records.size() > ( is->inlinee - CV_FIRST_NONPRIM ) )
inlinee_rec = type_records[ is->inlinee - CV_FIRST_NONPRIM ];
std::string inlinee_name = {};
switch ( inlinee_rec ? inlinee_rec->kind : 0 )
{
case LF_FUNC_ID:
inlinee_name = ( char* ) ( ( lfFuncId* ) inlinee_rec->data() )->name;
break;
case LF_MFUNC_ID:
{
lfMFuncId* fn = ( ( lfMFuncId* ) inlinee_rec->data() );
inlinee_name = ( char* ) fn->name;
if ( fn->parentType > CV_FIRST_NONPRIM )
{
lfStructure* cl = ( ( lfStructure* ) type_records[ fn->parentType - CV_FIRST_NONPRIM ]->data() );
auto* p = ( char* ) cl->data;
dbi::read_numeric( p );
inlinee_name = p + std::string{ "::" } + inlinee_name;
}
break;
}
default:
xstd::warning( "Unknown function leaf %x in inlinesite symbol.", inlinee_rec ? inlinee_rec->kind : 0 );
goto __fail;
}
// Decompress binary annotations.
//
uint8_t* beg = is->binaryAnnotations;
uint8_t* end = is->binaryAnnotations + sym->length() - offsetof( INLINESITESYM, binaryAnnotations );
std::vector<uint32_t> annotations;
for ( auto it = beg; it != end; )
annotations.emplace_back( CodeViewInfo::CVUncompressData( it ) );
// Get inlinee information and start iterating the binary annotation.
//
auto& ilinfo = inlinee_lines[ is->inlinee ];
size_t code_offset = 0;
size_t line_offset = ilinfo.sourceLineNum;
uint32_t file_id = ilinfo.fileId;
struct tmp_line
{
size_t code_offset;
size_t code_length;
};
std::map<size_t, tmp_line> info;
auto flush_queue = [ &, first = true ] () mutable
{
// Remove the first line entry from the inlinee, its the fake prolougue scope.
//
if ( first && !info.empty() )
{
info.erase( info.begin() );
first = false;
}
// Append the information to the routine.
//
for ( auto& [line, code] : info )
{
auto& entry = routine.lines[ code.code_offset ].emplace_back();
entry.file_id = file_id;
entry.line = line;
entry.length = code.code_length;
entry.depth = inlinee_depth;
entry.inlinee_name = inlinee_name;
}
};
for ( size_t n = 0; n != annotations.size(); n++ )
{
auto op = ( CodeViewInfo::BinaryAnnotationOpcode ) annotations[ n ];
if ( op == CodeViewInfo::BA_OP_Invalid )
continue;
switch ( op )
{
case CodeViewInfo::BA_OP_ChangeFile:
{
flush_queue();
file_id = annotations[ n + 1 ];
break;
}
case CodeViewInfo::BA_OP_ChangeCodeLength:
{
info[ line_offset ].code_length = annotations[ n + 1 ];
//xstd::log( "{s} code +0x%x, line +%d | len = 0x%x\n", code_offset, line_offset, annotations[ n + 1 ] );
break;
}
case CodeViewInfo::BA_OP_ChangeCodeOffset:
{
code_offset += annotations[ n + 1 ];
info[ line_offset ].code_offset = code_offset;
//xstd::log( "{o} code +0x%x, line +%d\n", code_offset, line_offset );
break;
}
case CodeViewInfo::BA_OP_ChangeCodeLengthAndCodeOffset:
{
info[ line_offset ].code_length = annotations[ n + 1 ];
code_offset += annotations[ n + 1 ];
info[ line_offset ].code_offset = code_offset;
//xstd::log( "{c} code +0x%x, line +%d\n", code_offset, line_offset );
break;
}
case CodeViewInfo::BA_OP_ChangeCodeOffsetAndLineOffset:
{
int32_t line_delta = CodeViewInfo::DecodeSignedInt32( annotations[ n + 1 ] >> 4 );
uint32_t code_delta = ( uint32_t ) ( annotations[ n + 1 ] & 0xF );
info[ line_offset ].code_length = code_delta;
line_offset += line_delta;
code_offset += code_delta;
info[ line_offset ].code_offset = code_offset;
//xstd::log( "{b} code +0x%x, line +%d\n", code_offset, line_offset );
break;
}
case CodeViewInfo::BA_OP_ChangeLineOffset:
{
line_offset += CodeViewInfo::DecodeSignedInt32( annotations[ n + 1 ] );
//xstd::log( "{l} code +0x%x, line +%d\n", code_offset, line_offset );
break;
}
default:
xstd::warning( "Unknown line info opcode: %d", op );
flush_queue();
goto __fail;
}
n += CodeViewInfo::BinaryAnnotationInstructionOperandCount( op );
}
// Append the information to the routine.
//
flush_queue();
}
}
__fail:
it = end;
continue;
}
case S_BLOCK32: // TODO:
case S_SEPCODE:
case S_THUNK32:
default:
break;
}
it = get_end();
}
// Start discarding sections.
//
object->discard_section_if( [ & ] ( const ref::strong_ptr<section>& scn )
{
// Discard without reading if dummy section.
//
if ( scn->is_symbol_table_dummy() ) return true;
// If symbol table:
//
if ( scn->is_symbol_table() )
{
// Save the records into section metadata, and then discard it.
//
for ( auto it = scn->raw_data.data(); it < ( scn->raw_data.data() + scn->raw_data.size() - sizeof( sdk::symbol_table_header ) ); it++ )
{
// If magic is found:
//
auto* hdr = ( const sdk::symbol_table_header* ) it;
if ( hdr->magic == SYM_TBL_MAGIC )
{
// Find the relocation, skip if invalid.
//
auto reloc = scn->find_reloc( &hdr->address );
fassert( reloc && reloc->ref_symbol->is_defined() );
// Create the symbol request.
//
section_metadata::symbol_request req = {};
req.target = reloc->ref_symbol;
req.offset = xstd::narrow_cast<uint32_t>( ( uint64_t ) ( hdr->address ) );
std::string_view identifier = hdr->identifier;
it += sizeof( sdk::symbol_table_header ) + identifier.size(); // +1 will skip the \x0
if ( identifier[ 0 ] == '$' )
{
identifier.remove_prefix( 1 );
size_t n = identifier.find( '$' );
std::string_view hint = identifier.substr( n + 1 );
identifier.remove_suffix( identifier.size() - n );
req.type = section_metadata::symbol_request::symbol_information;
req.encryption_key = hdr->encryption_key;
req.id = { std::string( identifier ), std::string( hint ) };
}
else
{
size_t n = identifier.find( '.' );
std::string_view field = identifier.substr( n + 1 );
identifier.remove_suffix( identifier.size() - n );
if ( field == "$" )
{
req.type = section_metadata::symbol_request::type_information;
req.id[ 0 ] = std::string{ identifier };
}
else
{
req.type = section_metadata::symbol_request::field_information;
req.id = { std::string( identifier ), std::string( field ) };
}
req.encryption_key = hdr->encryption_key;
}
// Save it in the related section.
//
reloc->ref_symbol->scn->meta.symbols.emplace_back( std::move( req ) );
}
}
return true;
}
// If section type that is not accepted by this linker:
//
if ( scn->is_import_dir() || scn->is_export_dir() || scn->is_resource_dir() )
{
xstd::error( "Object has unexpected section: '%s'.", scn->name.c_str() );
return true;
}
// If CRT section:
//
if ( scn->is_crt() )
{
fassert( scn->raw_data.size() == scn->relocs.size() * 8 );
fassert( std::find_if( scn->raw_data.begin(), scn->raw_data.end(), [ ] ( uint8_t c ) { return c != 0; } ) == scn->raw_data.end() );
if ( scn->is_cpp_init() || scn->is_c_init() )
{
for ( auto& reloc : scn->relocs )
scn->owner->meta.initializers.emplace_back( reloc.ref_symbol );
}
else if ( scn->is_c_term() )
{
for ( auto& reloc : scn->relocs )
scn->owner->meta.terminators.emplace_back( reloc.ref_symbol );
}
else if ( scn->is_c_pre_term() )
{
for ( auto& reloc : scn->relocs )
scn->owner->meta.pre_terminators.emplace_back( reloc.ref_symbol );
}
else
{
xstd::warning( "Discarding likely critical section: '%s'.", scn->name.c_str() );
}
return true;
}
// If exception directory:
//
if ( scn->is_exception_info() )
{
fassert( ( scn->raw_data.size() % sizeof( win::runtime_function_t ) ) == 0 );
size_t cnt = scn->raw_data.size() / sizeof( win::runtime_function_t );
auto* entries = ( const win::runtime_function_t* ) scn->raw_data.data();
for ( size_t n = 0; n != cnt; n++ )
{
// Get the function boundaries.
//
auto r1 = scn->find_reloc( &entries[ n ].rva_begin );
fassert( r1 );
auto r2 = scn->find_reloc( &entries[ n ].rva_end );
fassert( r2 );
if ( !r1->ref_symbol.alive() || !r2->ref_symbol.alive() )
continue;
// Skip if function sections are not enabled.
//
if ( r1->ref_symbol != r2->ref_symbol || entries[ n ].rva_begin )
continue;
// Resolve the function.
//
auto& routine = r1->ref_symbol->scn->meta.routines[ r1->ref_symbol->value ];
fassert( !routine.code_length_uw );
routine.code_length_uw = entries[ n ].rva_end;
// Get the unwind opcodes.
//
auto ru = scn->find_reloc( &entries[ n ].rva_unwind_info );
fassert( ru && ru->ref_symbol.alive() );
auto* uw_info = ( const win::unwind_info_t* ) ( ru->ref_symbol->scn->raw_data.data() + ru->ref_symbol->value );
// Process the unwind information slightly.
//
if ( uw_info->chained )
{
auto rtn_reloc = ru->ref_symbol->scn->find_reloc( &uw_info->chained_function_entry().rva_begin );
fassert( rtn_reloc );
// TODO: Remove me, if this hits after making sure logic is correct.
xstd::error( "%s is chained to %s\n",
r1->ref_symbol->name,
rtn_reloc->ref_symbol->scn->relocs.front().ref_symbol->name );
routine.chained_unwind = rtn_reloc->ref_symbol;
}
routine.unwind_codes = { uw_info->unwind_code, uw_info->unwind_code + uw_info->num_uw_codes };
routine.size_prologue = uw_info->size_prologue;
routine.frame_offset = uw_info->frame_offset;
routine.frame_register = uw_info->frame_register;
// TODO: Ex handler information!
}
return true;
}
return false;
} );
// CodeView information and CXX state tables go right to the garbage bin after this.
//
object->discard_section_if( [ & ] ( const ref::strong_ptr<section>& scn )
{
return scn->is_exception_data() || scn->is_debug_info();
} );
}
}
// Attempts to resolve every external symbol, returns a list of undefined names.
//
std::unordered_set<std::string> collection::resolve_all()
{
// For each relocation:
//
std::unordered_set<std::string> list_undef;
for ( auto& obj : working_set )
{
for ( auto& scn : obj->sections )
{
for ( auto& reloc : scn->relocs )
{
auto& e = reloc.ref_symbol;
// Skip if not undefined.
//
if ( !e->is_undefined() )
continue;
// If it is defined externally, swap it.
//
if ( auto i = require( e->name ) )
reloc.ref_symbol = i;
// Otherwise insert into undefined list.
//
else
list_undef.emplace( e->name );
}
}
}
return list_undef;
}
};
================================================
FILE: apollo-linker/object/collection.hpp
================================================
#pragma once
#include <list>
#include <unordered_set>
#include <unordered_map>
#include <functional>
#include <filesystem>
#include <vector>
#include <apollo/satella.hpp>
#include "primitives.hpp"
#include "reference_counting.hpp"
#include "../utility/liblto.hpp"
namespace linker
{
// Collection of object files from various sources representing the current linker context.
//
struct collection
{
// Type of the module and the build.
//
satella::build_type build_type = {};
satella::module_type module_type = {};
// Set of libraries that we can import from and the search paths.
//
std::list<library> libraries;
std::vector<std::filesystem::path> library_search_paths = { "" };
// Set of object files that are loaded.
//
std::vector<ref::strong_ptr<object>> working_set;
// A weakly maintained list of all public symbols.
//
std::unordered_map<std::string, ref::weak_ptr<symbol>> public_symbols;
// Import lists mapping imported symbol to the dynamic library.
//
std::unordered_map<std::string, std::pair<std::string, std::string>> imports;
// A list of all linker directive specified values that should not mismatch.
//
std::unordered_map<std::string, std::pair<std::string, std::filesystem::path>> consistent_macros;
// List of attributes for each global declared in an LLVM object.
//
satella::attribute_list<std::string> attributes;
// If set new objects will not be automatically added from libaries.
//
bool loader_lock = false;
// Enables macro value mismatch checks.
//
bool enforce_macro_consistency = true;
// Linker/LLVM options:
//
bool is_library = false;
bool instrument = false;
bool lto_save = false;
bool llvm_save = false;
bool llvm_verify = true;
// Simple properties.
//
bool is_debug() const { return build_type == satella::build_type::development; }
// Enumerates each symbol/section.
//
template<typename T>
void enum_sections( T&& fn ) const
{
for ( auto& obj : working_set )
for ( auto& scn : obj->sections )
fn( scn );
}
template<typename T>
void enum_symbols( T&& fn ) const
{
for ( auto& obj : working_set )
{
for ( auto& scn : obj->sections )
for ( auto& sym : scn->symbols )
fn( sym );
for ( auto& sym : obj->external_symbols )
fn( sym );
}
}
// Attempts to resolve a symbol.
//
uint64_t resolve( const ref::strong_ptr<symbol>& sym ) const;
// Imports a public symbol by its name.
//
ref::strong_ptr<symbol> require( const std::string& name );
// Includes a single object file, skips if already included, if the context
// has any unresolved public symbols, tries to import them from the library cache.
//
void include( const ref::strong_ptr<object>& obj );
// Lifts metadata sections into the proper structures.
//
void lift_metadata();
// Eliminates contents of the objects that are not referenced.
//
void opt_ref( const std::vector<std::string>& required, bool builtin_use_known, bool ignore_forced_includes = false );
// Generates code for the LTO sections.
//
void code_gen( const std::vector<std::string>& required );
// Attempts to resolve every external symbol, returns a list of undefined names.
//
std::unordered_set<std::string> resolve_all();
};
};
================================================
FILE: apollo-linker/object/comdat.cpp
================================================
#include "comdat.hpp"
namespace linker
{
// Makes sure the duplicated public symbols are both valid COMDATs that and are legal
// to compare against each other and then picks the best option.
// - Pick any will always pick the first symbol.
//
ref::strong_ptr<symbol> pick_comdat( const ref::strong_ptr<symbol>& a, const ref::strong_ptr<symbol>& b )
{
// If one is dynamic import, skip it.
//
if ( a->dyn_import && !b->dyn_import && !b->is_undefined() ) return b;
if ( b->dyn_import && !a->dyn_import && !a->is_undefined() ) return a;
// Make sure the comparison is valid.
//
xstd::assert_that( a->name == b->name, "Invalid COMDAT comparison." );
if ( !a->is_comdat() || !b->is_comdat() )
xstd::error( "Multiply defined symbol '%s' (%s and %s).", a->name.c_str(), a->scn->owner->file_name, b->scn->owner->file_name );
section* a_scn = a->scn.get();
section* b_scn = b->scn.get();
xstd::assert_that( a_scn->comdat_select == b_scn->comdat_select, "Invalid COMDAT comparison." );
// If not leader symbol, picked based on leader.
//
if ( a_scn->symbols.front() != a )
return pick_comdat( a_scn->symbols.front(), b_scn->symbols.front() )->scn == a_scn ? a : b;
// Switch based on COMDAT type.
//
switch ( a_scn->comdat_select )
{
// If associative COMDAT, pick based on root.
//
case coff::comdat_select_id::select_associative:
return pick_comdat( a_scn->comdat_associative_root->symbols.front(), b_scn->comdat_associative_root->symbols.front() )->scn == a_scn ? a : b;
// Fail if no duplicates is specified.
//
case coff::comdat_select_id::select_no_duplicates:
xstd::error( "Multiply defined symbol '%s' [select_no_duplicates]", a->name.c_str() );
// Fail if required property is not met.
//
case coff::comdat_select_id::select_exact_match:
if ( a->value != b->value || a_scn->comdat_checksum != b_scn->comdat_checksum )
xstd::error( "Multiply defined symbol '%s' [select_exact_match]", a->name.c_str() );
return a;
case coff::comdat_select_id::select_same_size:
if ( a_scn->raw_data.size() != b_scn->raw_data.size() )
xstd::error( "Multiply defined symbol '%s' [select_same_size]", a->name.c_str() );
return a;
// Pick any et al.
//
case coff::comdat_select_id::select_any:
return a;
case coff::comdat_select_id::select_largest:
return b_scn->raw_data.size() > a_scn->raw_data.size() ? b : a;
// Invalid type.
//
default:xstd::error( "Invalid COMDAT selection type." );
}
}
};
================================================
FILE: apollo-linker/object/comdat.hpp
================================================
#pragma once
#include "primitives.hpp"
#include "reference_counting.hpp"
namespace linker
{
// Makes sure the duplicated public symbols are both valid COMDATs that and are legal
// to compare against each other and then picks the best option.
// - Pick any will always pick the first symbol.
//
ref::strong_ptr<symbol> pick_comdat( const ref::strong_ptr<symbol>& a, const ref::strong_ptr<symbol>& b );
}
================================================
FILE: apollo-linker/object/opt_ref.cpp
================================================
#include <algorithm>
#include "collection.hpp"
namespace linker
{
// Eliminates contents of the objects that are not referenced.
//
void collection::opt_ref( const std::vector<std::string>& required, bool builtin_use_known, bool ignore_forced_includes )
{
// Declare a referenced section set and a recursive helper.
//
std::unordered_set<ref::weak_ptr<object>> included_objects;
std::unordered_set<ref::weak_ptr<section>> included_sections;
auto reference = [ & ] ( const ref::weak_ptr<section>& scn, auto&& self ) -> void
{
if ( !included_sections.emplace( scn ).second )
return;
auto require = [ & ] ( const ref::strong_ptr<symbol>& sym )
{
if ( sym->scn.alive() )
{
self( sym->scn, self );
}
else if ( sym->is_undefined() && ( sym->is_public() || sym->is_weak() ) )
{
bool found = false;
if ( auto it = public_symbols.find( sym->name ); it != public_symbols.end() )
if ( it->second.alive() && it->second->scn.alive() )
self( it->second->scn, self ), found = true;
if ( !found )
{
if ( sym->is_weak() )
self( sym->alias->scn, self );
}
}
};
// If LTO object, require every external symbol.
//
if ( scn->owner->lto )
{
for ( auto& sym : scn->owner->external_symbols )
require( sym );
}
// Recurse into relocs.
//
for ( auto& reloc : scn->relocs )
require( reloc.ref_symbol );
// Continue if we've already included this object.
//
if ( !included_objects.emplace( scn->owner ).second )
return;
// If object file has any force includes, include.
//
if ( !ignore_forced_includes )
{
for ( auto* list : { &scn->owner->meta.initializers,
&scn->owner->meta.pre_initializers,
&scn->owner->meta.terminators,
&scn->owner->meta.pre_terminators, } )
{
for ( auto& sym : *list )
self( sym->scn, self );
}
for ( auto& name : scn->owner->force_includes )
{
if ( auto it = public_symbols.find( name ); it != public_symbols.end() )
{
if ( it->second.alive() && it->second->scn.alive() )
self( it->second->scn, self );
}
else
{
xstd::error( "Force included '%s' not found.", name );
}
}
}
};
// Reference every symbol we require.
//
for ( auto& name : required )
{
auto sym = require( name );
if ( !sym || !sym->is_defined() )
xstd::error( "Image required '%s' not found.", name );
reference( sym->scn, reference );
}
// Enumerate each object, remove every section that is not within our list,
// if no sections left remove the object file.
//
std::erase_if( working_set, [ & ] ( const ref::strong_ptr<object>& obj )
{
// If builtin provider with builtin use state not known yet, skip.
//
if ( obj->is_builtin_provider && !builtin_use_known )
return false;
obj->discard_section_if( [ & ] ( const ref::strong_ptr<section>& scn )
{
return !included_sections.contains( scn ) || (
scn->comdat_select == coff::comdat_select_id::select_associative &&
scn->comdat_associative_root.dangling()
);
} );
return obj->sections.empty();
} );
}
}
================================================
FILE: apollo-linker/object/primitives.cpp
================================================
#include "primitives.hpp"
#include "../utility/argparse.hpp"
#include <coff/import_library.hpp>
#include <xstd/narrow_cast.hpp>
namespace linker
{
// Parses the linker directives.
//
static void parse_directives( object* obj, std::string_view directives )
{
auto args = split_arguments( directives );
for( auto& x : args.free_standing )
xstd::error( "Unexpected linker directive: '%s'.", x );
for ( auto& [k, v] : args.flags )
{
// Argument specific parsing.
//
if ( k == "failifmismatch" )
{
size_t n = v.find( '=' );
if ( n == std::string::npos )
xstd::error( "Malformed linker directive: '%s' => '%s'.", k, v );
std::string item = v.substr( 0, n );
std::string value = v.substr( n + 1 );
obj->consistent_macros.emplace( std::move( item ), std::move( value ) );
}
else if ( k == "include" )
{
obj->force_includes.emplace( v );
}
else if ( k == "export" )
{
obj->dllexported_symbols.emplace( v );
}
else if ( k != "defaultlib" )
{
xstd::warning( "Skipping unrecognized linker directive: '%s'.", k );
}
}
}
// Loads an object file.
//
bool load_native_object( ref::strong_ptr<object>& obj, const uint8_t* data, size_t size )
{
auto hdr = ( const coff::image_t* ) data;
// Short name helper for errors and warnings.
//
auto short_name = [ & ] () -> const wchar_t*
{
std::wstring_view view{ obj->file_name.c_str() };
size_t n = view.find_last_of( L"/\\" );
if ( n != std::string::npos ) view.remove_prefix( n + 1 );
return view.data(); // Suffix left as is, will be terminated.
};
// If import library, parse as is.
//
if ( hdr->file_header.machine == win::machine_id::unknown &&
hdr->file_header.num_sections == 0xFFFF )
{
auto* imp = ( coff::import_header_t* ) hdr;
if ( imp->magic != coff::import_lib_magic )
xstd::error( "[%ls] Invalid import library.", short_name() );
if ( imp->machine != win::machine_id::amd64 )
xstd::error( "[%ls] Import header has invalid machine type.", short_name() );
obj->export_symbol = imp->get_symbol_name();
obj->export_library = imp->get_library_name();
return true;
}
// Validate machine type.
//
if ( hdr->file_header.machine != win::machine_id::amd64 )
xstd::error( "[%ls] Object file has invalid machine type.", short_name() );
if ( hdr->file_header.size_optional_header )
xstd::error( "[%ls] Unexpected optional header in object file.", short_name() );
// Resolve the descriptors we care about.
//
auto scn_table = hdr->get_sections();
auto str_table = hdr->get_strings();
auto sym_table = hdr->get_symbols();
// Map sections.
//
std::vector<ref::strong_ptr<section>> sections( hdr->file_header.num_sections );
for ( size_t n = 0; n != hdr->file_header.num_sections; n++ )
{
auto* raw = &scn_table[ n ];
auto& scn = sections[ n ];
scn = ref::allocate<section>();
scn->owner = obj;
scn->characteristics = raw->characteristics;
scn->name = raw->name.to_string( str_table );
if ( raw->ptr_raw_data )
scn->raw_data = { data + raw->ptr_raw_data, data + raw->ptr_raw_data + raw->size_raw_data };
else
scn->raw_data = std::vector<uint8_t>( raw->size_raw_data, 0 );
xstd::assert_that( !raw->virtual_address && !raw->virtual_size );
}
// Map all symbols.
//
std::vector<ref::strong_ptr<symbol>> symbols( hdr->file_header.num_symbols );
std::vector<std::pair<ref::strong_ptr<symbol>, size_t>> weak_exts;
for ( size_t n = 0; n != hdr->file_header.num_symbols; n++ )
{
// Copy basic details.
//
auto* raw = &sym_table[ n ];
auto& sym = symbols[ n ];
sym = ref::allocate<symbol>();
sym->base_type = raw->base_type;
sym->derived_type = raw->derived_type;
sym->name = raw->name.to_string( str_table );
sym->value = xstd::narrow_cast<uint64_t>( raw->value );
sym->storage_class = raw->storage_class;
switch ( raw->section_index )
{
case coff::special_section_id::symbol_debug: sym->debug = true; break;
case coff::special_section_id::symbol_absolute: sym->absolute = true; break;
case coff::special_section_id::symbol_undefined: break;
default: sym->scn = sections[ raw->section_index - 1 ]; break;
}
// Handle auxiliary information:
//
bool no_symbol = false;
bool auxiliary_handled = false;
// If section symbol:
//
if ( raw->valid_aux<coff::aux_section_t>() &&
raw->has_section() &&
sections[ raw->section_index - 1 ]->name == sym->name )
{
auxiliary_handled = true;
auto& scn = sections[ raw->section_index - 1 ];
// If it has auxiliary information (COMDAT):
//
if ( raw->num_auxiliary )
{
xstd::assert_that( raw->num_auxiliary == 1 );
// Write the COMDAT information.
//
auto aux_scn = ( coff::aux_section_t* ) & sym_table[ n + 1 ];
scn->comdat_select = aux_scn->comdat_select;
scn->comdat_checksum = aux_scn->checksum;
// If associative, link it.
//
if ( scn->comdat_select == coff::comdat_select_id::select_associative )
{
// Resolve the associated parent.
//
xstd::assert_that( aux_scn->associative_section > 0 );
scn->comdat_associative_root = sections[ aux_scn->associative_section - 1 ];
// Insert self into the association list of parent.
//
auto it = scn->comdat_associative_root;
it->comdat_associatives.push_back( scn );
// Until we reach a non-associative entry:
//
while ( it->comdat_select == coff::comdat_select_id::select_associative )
{
// Move the links over, skip to next entry.
//
auto next = it->comdat_associative_root;
next->comdat_associatives.insert(
next->comdat_associatives.end(),
std::make_move_iterator( it->comdat_associatives.begin() ),
std::make_move_iterator( it->comdat_associatives.end() )
);
it->comdat_associatives.clear();
it = next;
}
}
}
// Do not create a symbol entry.
//
no_symbol = true;
}
// If file name symbol:
//
else if ( raw->valid_aux<coff::aux_file_name_t>() && raw->num_auxiliary )
{
auxiliary_handled = true;
// Copy the name.
//
auto aux_fn = ( coff::aux_file_name_t* ) & sym_table[ n + 1 ];
if ( obj->file_name.has_filename() ) obj->file_name.remove_filename();
obj->file_name /= aux_fn->to_string();
// Do not create a symbol entry.
//
no_symbol = true;
}
// If weak external:
//
else if ( raw->valid_aux<coff::aux_weak_external_t>() && raw->num_auxiliary )
{
auxiliary_handled = true;
// Copy type, schedule the reference.
//
auto aux_ext = ( coff::aux_weak_external_t* ) & sym_table[ n + 1 ];
weak_exts.emplace_back( sym, aux_ext->sym_alias_idx );
// Warn if unhandled type.
//
if ( aux_ext->type == coff::weak_external_type::alias )
xstd::warning( "[%ls] Weak external alias '%s' is not supported.", short_name(), sym->name.c_str() );
}
// Warn if auxiliary information is not handled.
//
if ( raw->num_auxiliary && !auxiliary_handled )
xstd::warning( "[%ls] Unhandled auxiliary for '%s'.", short_name(), sym->name.c_str() );
n += raw->num_auxiliary;
// Insert the symbol into its appropriate list.
//
if ( !no_symbol )
{
// Handle non-COMDAT BSS:
//
if ( sym->value > 0 && sym->scn == nullptr && sym->is_public() &&
!sym->absolute && !sym->debug && !sym->alias )
{
auto& scn = sections.emplace_back( ref::allocate<section>() );
scn->owner = obj;
scn->name = ".bss";
scn->raw_data = std::vector<uint8_t>( sym->value, 0 );
scn->characteristics.flags = 0;
scn->characteristics.cnt_uninit_data = true;
scn->characteristics.mem_read = true;
scn->characteristics.mem_write = true;
sym->scn = scn;
sym->value = 0;
}
if ( sym->scn == nullptr )
obj->external_symbols.emplace_back( sym );
else
sym->scn->symbols.emplace_back( sym );
}
// Warn if unrecognized storage class.
//
switch ( raw->storage_class )
{
case coff::storage_class_id::label:
case coff::storage_class_id::file_name:
case coff::storage_class_id::weak_external:
case coff::storage_class_id::public_symbol:
case coff::storage_class_id::private_symbol: break;
default:xstd::warning( "[%ls] Unexpected symbol storage class for '%s', %d.", short_name(), sym->name.c_str(), raw->storage_class );
}
}
// Map weak externals.
//
for ( auto& [sym, idx] : weak_exts )
{
auto& ref = symbols[ idx ];
xstd::assert_that( ref.alive(), "Weak external references invalid symbol." );
sym->alias = ref;
}
// Map all relocations.
//
for ( size_t n = 0; n != hdr->file_header.num_sections; n++ )
{
auto* raw = &scn_table[ n ];
if ( raw->num_relocs )
{
auto& scn = sections[ n ];
auto relocs = ( coff::reloc_t* )( ( char* ) hdr + raw->ptr_relocs );
for ( size_t j = 0; j != raw->num_relocs; j++ )
{
auto& sym = symbols[ relocs[ j ].symbol_index ];
// Throw an error if this is a linker-exclusive section.
//
if ( sym->scn.alive() && ( sym->scn->characteristics.lnk_remove || sym->scn->characteristics.lnk_info ) )
xstd::error( "Relocation references linker symbol %s.", *sym );
// Silently fix the error if it was a valid but skipped-by-default symbol.
//
if ( sym->scn.alive() && sym.ref_count() == 1 )
sym->scn->symbols.emplace_back( sym );
// Validate the relocatio nand push it back to the list.
//
xstd::assert_that( sym.ref_count() > 1, "Relocation references invalid symbol %s.", *sym );
scn->relocs.push_back( { relocs[ j ].virtual_address, sym, relocs[ j ].type } );
}
}
}
// Insert sections into the object after processing custom attributes.
//
for ( auto& scn : sections )
{
// Do not insert meta sections, parse immediately instead.
//
if ( scn->characteristics.lnk_remove || scn->characteristics.lnk_info )
{
// If section contains linker directives:
//
if ( scn->name == ".drectve" )
{
parse_directives( obj.get(), { ( const char* ) scn->raw_data.data(), scn->raw_data.size() } );
}
// If section contains address signifiance table:
//
else if ( scn->name == ".llvm_addrsig" )
{
std::vector<uint64_t> adr_sig_sym = coff::decode_uleb128s( scn->raw_data.begin(), scn->raw_data.end() );
if ( adr_sig_sym.empty() && !scn->raw_data.empty() )
xstd::error( "[%ls] Malformed address signifiance table.", short_name() );
// Flip the default significance value to false and set the significant entries.
//
for ( auto& sym : symbols )
if ( sym ) sym->address_significant = false;
for ( auto& index : adr_sig_sym )
{
if ( symbols.size() <= index || !symbols[ index ] )
xstd::error( "[%ls] Malformed address signifiance table.", short_name() );
symbols[ index ]->address_significant = true;
}
}
// Skip MSVC specific sections.
//
else if ( scn->name == ".chks64" )
{
}
// Otherwise, emit warning and discard.
//
else
{
xstd::warning( "[%ls] Discarding unknown linker information section '%s'.", short_name(), scn->name.c_str() );
}
continue;
}
// Insert into sections list.
//
obj->sections.emplace_back( std::move( scn ) );
}
return true;
}
bool load_lto_object( ref::strong_ptr<object>& obj, const uint8_t* data, size_t size )
{
// Load the LTO object.
//
obj->lto = { data, size, obj->file_name };
if ( !obj->lto ) return false;
// Parse the directives.
//
parse_directives( obj.get(), obj->lto.get_directives() );
// Create fake sections and symbols.
//
auto lto_scn = ref::allocate<section>();
lto_scn->owner = obj;
lto_scn->name = ".lto";
obj->sections.emplace_back( lto_scn );
for ( auto&& [name, attrb] : obj->lto.symbols() )
{
// If undefined, add to externals.
//
if ( ( attrb & LTO_SYMBOL_DEFINITION_MASK ) == LTO_SYMBOL_DEFINITION_UNDEFINED )
{
auto& sym = obj->external_symbols.emplace_back( ref::allocate<symbol>() );
sym->storage_class = coff::storage_class_id::public_symbol;
sym->name = name;
continue;
}
// If public:
//
if ( ( attrb & LTO_SYMBOL_SCOPE_MASK ) == LTO_SYMBOL_SCOPE_DEFAULT ||
( attrb & LTO_SYMBOL_SCOPE_MASK ) == LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN )
{
// Allocate the symbol.
//
auto sym = ref::allocate<symbol>();
sym->storage_class = coff::storage_class_id::public_symbol;
sym->name = name;
// If COMDAT or weak create a new section.
//
auto scn = lto_scn;
if ( ( attrb & LTO_SYMBOL_COMDAT ) || ( ( attrb & LTO_SYMBOL_DEFINITION_MASK ) == LTO_SYMBOL_DEFINITION_WEAK ) )
{
auto& comdat_scn = obj->sections.emplace_back( ref::allocate<section>() );
comdat_scn->owner = obj;
comdat_scn->name = ".comdat_lto";
comdat_scn->comdat_select = coff::comdat_select_id::select_any;
scn = comdat_scn;
}
// Append the symbol.
//
sym->scn = scn;
scn->symbols.emplace_back( std::move( sym ) );
}
}
return true;
}
ref::strong_ptr<object> load_object( const uint8_t* data, size_t size, std::filesystem::path file_name )
{
auto obj = ref::allocate<object>();
obj->file_name = std::move( file_name );
if ( lto::object::is( data, size ) )
{
if ( load_lto_object( obj, data, size ) )
return obj;
}
else
{
if ( load_native_object( obj, data, size ) )
return obj;
}
return nullptr;
}
// Loads a satella import library.
//
ref::strong_ptr<object> load_slib( const uint8_t* data, size_t size, std::filesystem::path file_name )
{
// Allocate the object.
//
auto obj = ref::allocate<object>();
obj->file_name = std::move( file_name );
obj->is_builtin_provider = true;
// Create fake sections and symbols.
//
for ( auto& name : satella::deserialize_import_library( { data, data + size } ).symbols )
{
auto& dyn_scn = obj->sections.emplace_back( ref::allocate<section>() );
dyn_scn->owner = obj;
dyn_scn->name = ".dyn";
auto sym = ref::allocate<symbol>();
sym->storage_class = coff::storage_class_id::public_symbol;
sym->name = name;
sym->scn = dyn_scn;
sym->dyn_import = true;
dyn_scn->symbols.emplace_back( sym );
auto& idata_scn = obj->sections.emplace_back( ref::allocate<section>() );
idata_scn->owner = obj;
idata_scn->name = ".sidata";
idata_scn->comdat_select = coff::comdat_select_id::select_any;
auto isym = ref::allocate<symbol>();
isym->storage_class = coff::storage_class_id::public_symbol;
isym->name = "__imp_" + name;
isym->scn = idata_scn;
idata_scn->raw_data.resize( 8 );
idata_scn->relocs.push_back( { 0, sym, coff::rel_amd64_addr64 } );
idata_scn->symbols.emplace_back( std::move( isym ) );
}
return obj;
}
// Loads a library file.
//
library load_library( xstd::file::view<> mapping )
{
library lib = { std::move( mapping ) };
ar::view<> view = { lib.backing_file.data(), lib.backing_file.size() };
// Map the objects.
//
std::unordered_map<uintptr_t, size_t> index;
for ( auto&& [name, file] : view )
{
auto new_path = lib.backing_file.path();
new_path.remove_filename();
new_path /= std::filesystem::path{ name }.filename();
index[ ( uintptr_t ) file.data() ] = lib.objects.size();
lib.objects.emplace_back( std::async( std::launch::deferred, [ d = file.data(), s = file.length, p = new_path ]()
{
return load_object( d, s, p );
} ) );
}
// Create the public symbol table.
//
auto sym_list = view.read_symbols();
for ( auto&& [symbol, file] : sym_list )
{
auto& obj = lib.objects[ index.at( (uintptr_t) file->data() ) ];
lib.public_symbols[ std::string{ symbol } ].emplace_back( obj );
}
return lib;
}
};
================================================
FILE: apollo-linker/object/primitives.hpp
================================================
#pragma once
#include <memory>
#include <string_view>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <string>
#include <future>
#include <vector>
#include <list>
#include <optional>
#include <array>
#include <map>
#include <filesystem>
#include <coff/image.hpp>
#include <coff/archive.hpp>
#include <coff/uleb128.hpp>
#include <nt/directories/dir_exceptions.hpp>
#include <xstd/assert.hpp>
#include <xstd/file_view.hpp>
#include <xstd/text.hpp>
#include <pdblib/cvconsts.h>
#include <apollo/satella.hpp>
#include "../utility/liblto.hpp"
#include "reference_counting.hpp"
namespace linker
{
struct symbol;
struct object;
struct section;
// Owned by: Section, object.
// Owns: Symbol.
// Alloc: Default
//
struct relocation
{
// Relocated offset.
//
size_t offset = 0;
// Symbol we're relocating based on.
//
ref::strong_ptr<symbol> ref_symbol;
// Type of the relocation.
//
coff::reloc_type type = coff::rel_amd64_absolute;
// String conversion.
//
std::string to_string() const
{
return xstd::fmt::str( "+0x%x <= %s(%d)", offset, *ref_symbol, ( int ) type );
}
};
// Object metadata.
//
struct object_metadata
{
// Initializers and terminators.
// - _PIFV return value is ignored.
//
std::vector<ref::strong_ptr<symbol>> initializers;
std::vector<ref::strong_ptr<symbol>> pre_initializers;
std::vector<ref::strong_ptr<symbol>> terminators;
std::vector<ref::strong_ptr<symbol>> pre_terminators;
// CodeView string table.
//
std::vector<char> str_table;
// File checksums.
//
struct file_checksum
{
std::string file_name;
CV_SourceChksum_t type;
std::vector<uint8_t> raw_data;
};
std::unordered_map<size_t, file_checksum> file_map;
// Whether or not floating point is used.
//
bool uses_fp = false;
// Compiler version.
//
std::string compiler_version;
};
// Section metdata.
//
struct section_metadata
{
// Symbol tables.
//
struct symbol_request
{
enum
{
symbol_information, // [name, hint]
field_information, // [name, field]
type_information, // [name, <>]
} type;
std::array<std::string, 2> id = {};
uint64_t encryption_key = 0;
ref::weak_ptr<symbol> target = {};
uint32_t offset = 0;
};
std::vector<symbol_request> symbols = {};
// Routine information.
//
struct line_information
{
size_t file_id = 0;
size_t line = 0;
size_t length = 0;
size_t depth = 0;
std::string inlinee_name = {};
};
struct basic_block_entry
{
size_t end_off; // Offset pointing to the end of the basic block.
ref::weak_ptr<section> scn; // If splitted, section pointing to the beginning of the basic block.
};
struct routine_entry
{
// Length of the code as reported by symbol information,
// line information and by the unwind data itself.
//
size_t code_length_li = 0;
size_t code_length_sy = 0;
size_t code_length_uw = 0;
size_t get_length() const
{
if ( code_length_sy ) return code_length_sy;
if ( code_length_li ) return code_length_li;
if ( code_length_uw ) return code_length_uw;
return 0;
}
// Line information.
// - Maps Code offset => [File:Line].
//
std::map<size_t, std::vector<line_information>> lines;
// Unwind information.
//
uint8_t size_prologue = 0;
uint8_t frame_offset = 0;
win::unwind_register_id frame_register = {};
ref::weak_ptr<symbol> chained_unwind = {};
std::vector<win::unwind_code_t> unwind_codes;
// Basic block information.
//
bool is_split = false;
std::map<size_t, basic_block_entry> basic_blocks;
};
std::unordered_map<size_t, routine_entry> routines;
};
// Owned by: Object
// Owns: Relocs and symbols
// Alloc: ref::allocate
//
struct section
{
ref::weak_ptr<object> owner;
// Name, characteristics.
//
std::string name;
coff::section_characteristics_t characteristics = { 0 };
// Raw data.
//
std::vector<uint8_t> raw_data;
// COMDAT selection details.
//
uint32_t comdat_checksum = 0;
coff::comdat_select_id comdat_select = coff::comdat_select_id::invalid;
std::vector<ref::weak_ptr<section>> comdat_associatives;
ref::weak_ptr<section> comdat_associative_root;
// Relocations.
//
std::vector<relocation> relocs;
// Symbols.
//
std::vector<ref::strong_ptr<symbol>> symbols;
// Virtual address assigned at the final stage.
//
uint64_t virtual_address = 0;
// Metadata associated with this section.
//
section_metadata meta = {};
// Helper to find relocations/symbols.
//
const relocation* find_reloc( size_t offset ) const
{
for ( auto& reloc : relocs )
if ( reloc.offset == offset )
return &reloc;
return nullptr;
}
const relocation* find_reloc( const void* ptr ) const
{
for ( auto& reloc : relocs )
if ( ptr == ( raw_data.data() + reloc.offset ) )
return &reloc;
return nullptr;
}
// String conversion.
//
std::string to_string() const
{
return name;
}
// Properties.
//
bool is_comdat() const
{
if ( comdat_select == coff::comdat_select_id::invalid )
return false;
if ( comdat_select == coff::comdat_select_id::select_associative )
{
xstd::assert_that( comdat_associative_root != nullptr, "Invalid COMDAT section." );
xstd::assert_that( comdat_associative_root.alive(), "Dangling COMDAT section." );
}
else
{
xstd::assert_that( !symbols.empty(), "Empty COMDAT section." );
}
return true;
}
// Global data management.
//
bool is_crt() const { return xstd::istarts_with( name, ".crt" ); }
bool is_c_init() const { return xstd::istarts_with( name, ".crt$xi" ); }
bool is_cpp_init() const { return xstd::istarts_with( name, ".crt$xc" ); }
bool is_c_pre_term() const { return xstd::istarts_with( name, ".crt$xp" ); }
bool is_c_term() const { return xstd::istarts_with( name, ".crt$xt" ); }
bool is_tls() const { return xstd::istarts_with( name, ".tls" ); }
bool is_tls_init() const { return xstd::istarts_with( name, ".crt$xu" ); }
bool is_tls_callback() const { return xstd::istarts_with( name, ".crt$xl" ); }
// C and C++ exceptions.
//
bool is_exception_info() const { return xstd::istarts_with( name, ".pdata" ); }
bool is_exception_data() const { return xstd::istarts_with( name, ".xdata" ); }
// Symbol tables.
//
bool is_symbol_table() const { return xstd::istarts_with( name, ".symtbl" ); }
bool is_symbol_table_dummy() const { return xstd::istarts_with( name, ".symdsc" ); }
// Debug information.
//
bool is_debug_info() const { return xstd::istarts_with( name, ".debug" ); }
bool is_cv_type_stream() const { return xstd::iequals( name, ".debug$t" ); }
bool is_cv_sym_stream() const { return xstd::iequals( name, ".debug$s" ); }
// PE directories.
//
bool is_import_dir() const { return xstd::istarts_with( name, ".idata" ); }
bool is_export_dir() const { return xstd::istarts_with( name, ".edata" ); }
bool is_resource_dir() const { return xstd::istarts_with( name, ".rsrc" ); }
};
// Owned by: Section, object, relocation.
// Owns: None
// Alloc: ref::allocate
//
struct symbol
{
// Name of the symbol.
//
std::string name;
// Storage class and the address signifiance state.
//
coff::storage_class_id storage_class = coff::storage_class_id::none;
bool address_significant = true;
// Section and the value.
//
uint64_t value = 0;
bool debug = false;
bool absolute = false;
bool dyn_import = false;
ref::weak_ptr<section> scn;
// If weak external, aliasing entry and search type.
//
ref::strong_ptr<symbol> alias = nullptr;
// Type of the value.
//
coff::base_type_id base_type = coff::base_type_id::none;
coff::derived_type_id derived_type = coff::derived_type_id::none;
// String conversion.
//
std::string to_string() const
{
return xstd::fmt::str( "%s=>%s:+0x%x", name, scn.alive() ? scn->name : "?", value );
}
// Properties.
//
bool is_weak() const { return storage_class == coff::storage_class_id::weak_external; }
bool is_public() const { return storage_class == coff::storage_class_id::public_symbol; }
bool is_private() const { return storage_class == coff::storage_class_id::private_symbol; }
bool is_undefined() const { return !debug && !absolute && !scn.alive(); }
bool is_defined() const { return !debug && !absolute && scn.alive(); }
bool is_comdat() const { return !debug && !absolute && scn.alive() && scn->is_comdat(); }
bool is_comdat_leader() const { return is_comdat() && scn->symbols.front() == this; }
uint64_t get_virtual_address() const
{
if ( is_undefined() ) return 0;
if ( absolute ) return value;
xstd::assert_that( !debug, "Debug symbol being resolved." );
uint64_t va = scn->virtual_address;
if ( !va ) return 0;
return va + value;
}
};
// Describes a single object file.
//
struct object
{
// Name of the file, optional.
//
std::filesystem::path file_name = {};
// If LTO object, a reference to the LTO module and the regular LLVM mod if relevant.
//
lto::object lto = {};
LLVMModuleRef llvm = nullptr;
// If LLVM object in memory, list of attributes for each reference.
//
satella::attribute_list<LLVMValueRef> attributes;
// List of all sections.
//
std::vector<ref::strong_ptr<section>> sections = {};
// List of symbols that do not belong to a section.
//
std::vector<ref::strong_ptr<symbol>> external_symbols = {};
// Metadata associated with this section.
//
object_metadata meta = {};
// Linker directives.
//
bool is_builtin_provider = false;
std::unordered_set<std::string> force_includes = {}; // /INCLUDE:
std::unordered_set<std::string> dllexported_symbols = {}; // /EXPORT:
std::unordered_multimap<std::string, std::string> consistent_macros = {}; // /FAILIFMISMATCH:
// Export details if import library.
//
std::string export_symbol = {};
std::string export_library = {};
// String conversion.
//
std::string to_string() const
{
return lto ? "<LTO>" : file_name.filename().string().c_str();
}
// Discards a section in the object file.
//
void discard_section( const ref::strong_ptr<section>& scn )
{
auto it = std::find( sections.begin(), sections.end(), scn );
if ( it == sections.end() )
return;
std::exchange( *it, sections.back() );
sections.pop_back();
scn->relocs.clear();
scn->raw_data = {};
for ( auto& sym : scn->symbols )
sym->scn = nullptr;
if ( auto root = scn->comdat_associative_root.lock() )
std::erase( root->comdat_associatives, scn );
for ( auto& subscn : scn->comdat_associatives )
if ( subscn.alive() )
discard_section( subscn.lock() );
}
// Same wrapper above in erase if format.
//
template<typename Pr>
void discard_section_if( Pr&& predicate )
{
std::vector<ref::strong_ptr<section>> list;
list.reserve( sections.size() );
for ( auto& scn : sections )
if ( predicate( scn ) )
list.emplace_back( scn );
for ( auto& scn : list )
discard_section( std::move( scn ) );
}
};
// Describes a collection of object files.
//
struct library
{
xstd::file::view<> backing_file = {};
// Public symbols mapped to object files.
//
std::vector<std::shared_future<ref::strong_ptr<object>>> objects;
std::unordered_map<std::string, std::list<std::shared_future<ref::strong_ptr<object>>>> public_symbols;
};
// Loaders.
//
ref::strong_ptr<object> load_object( const uint8_t* data, size_t size, std::filesystem::path file_name = {} );
ref::strong_ptr<object> load_slib( const uint8_t* data, size_t size, std::filesystem::path file_name = {} );
library load_library( xstd::file::view<> mapping );
// std::filesystem::path wrappers for the loaders.
//
static ref::strong_ptr<object> load_object( const xstd::file::view<>& mapping )
{
return load_object( mapping.data(), mapping.size(), mapping.path() );
}
static ref::strong_ptr<object> load_object( const std::filesystem::path& path )
{
auto file = xstd::file::map_view( path );
if ( !file ) xstd::error( "File '%ls' not found.", path.c_str() );
return load_object( *file );
}
static ref::strong_ptr<object> load_slib( const xstd::file::view<>& mapping )
{
return load_slib( mapping.data(), mapping.size(), mapping.path() );
}
static ref::strong_ptr<object> load_slib( const std::filesystem::path& path )
{
auto file = xstd::file::map_view( path );
if ( !file ) xstd::error( "File '%ls' not found.", path.c_str() );
return load_slib( *file );
}
static library load_library( const std::filesystem::path& path )
{
auto file = xstd::file::map_view( path );
if ( !file ) xstd::error( "File '%ls' not found.", path.c_str() );
return load_library( std::move( *file ) );
}
};
================================================
FILE: apollo-linker/object/reference_counting.hpp
================================================
#pragma once
#include <atomic>
#include <memory>
#include <type_traits>
#include <utility>
#include <xstd/assert.hpp>
#define _REF_SAFE 1
// Implement custom pointers.
//
namespace ref
{
struct managed_pointer_tag_t {};
// Control block.
//
struct control_block
{
union
{
mutable std::atomic<uint64_t> _refs = 0;
struct
{
mutable std::atomic<int32_t> strong_refs;
mutable std::atomic<int32_t> weak_refs;
};
};
mutable void( *destructor )( const void* ) = nullptr;
bool alive() const { return destructor; }
void inc_weak_ref() const
{
++weak_refs;
}
void inc_strong_ref() const
{
++strong_refs;
}
void dec_weak_ref() const
{
if ( !( _refs -= 1ull << 32 ) )
{
delete this;
}
}
void dec_strong_ref() const
{
if ( !--strong_refs )
{
weak_refs++;
std::exchange( destructor, nullptr )( this );
if ( !--weak_refs )
delete this;
}
}
size_t num_strong_refs() const { return strong_refs.load(); }
size_t num_weak_refs() const { return weak_refs.load(); }
size_t num_refs() const
{
auto value = _refs.load();
return value + ( value >> 32 );
}
control_block() {}
~control_block() {}
};
template<typename T>
struct managed_object : control_block
{
static constexpr uint64_t key = 0x64f358259746d1f5;
union
{
T value;
char raw[ sizeof( T ) ];
};
template<typename... Tx>
managed_object( Tx&&... args ) : value( std::forward<Tx>( args ) ... )
{
destructor = [ ] ( const void* p )
{
std::destroy_at( &( ( managed_object<T>* )p )->value );
};
}
~managed_object() { xstd::assert_that( !alive() ); }
};
template<typename T>
struct managed_pointer : managed_pointer_tag_t
{
// Pointer traits.
//
using element_type = T;
// Internal storage.
//
managed_object<T>* object = nullptr;
managed_pointer() noexcept {}
explicit managed_pointer( managed_object<T>* object ) noexcept : object( object ) {}
// Pointer interface.
//
T* get() const noexcept { return alive() ? &object->value : nullptr; }
T* operator->() const noexcept { return get(); }
T& operator*() const noexcept { return *get(); }
// State is checked explicitly, no conversion to bool given.
//
bool null() const noexcept { return !object; }
bool alive() const noexcept { return object && object->alive(); }
bool dangling() const noexcept { return object && !object->alive(); }
// Use counters.
//
size_t weak_ref_count() const noexcept { return object ? object->num_weak_refs() : 0; };
size_t strong_ref_count() const noexcept { return object ? object->num_strong_refs() : 0; };
size_t ref_count() const noexcept { return object ? object->num_refs() : 0; };
// Implement comparison traits.
//
bool operator<( const managed_pointer<T>& o ) const noexcept { return object < o.object; }
bool operator<( const T* o ) const noexcept { return ( object ? &object->value : nullptr ) < o; }
bool operator<( std::nullptr_t ) const noexcept { return false; }
bool operator==( const managed_pointer<T>& o ) const noexcept { return object == o.object; }
bool operator==( const T* o ) const noexcept { return ( object ? &object->value : nullptr ) == o; }
bool operator==( std::nullptr_t ) const noexcept { return object == nullptr; }
bool operator!=( const managed_pointer<T>& o ) const noexcept { return object != o.object; }
bool operator!=( const T* o ) const noexcept { return ( object ? &object->value : nullptr ) != o; }
bool operator!=( std::nullptr_t ) const noexcept { return object != nullptr; }
};
// Pointer types.
//
template<typename T>
struct strong_ptr : managed_pointer<T>
{
// Internal and default constructors.
//
constexpr strong_ptr() noexcept {}
constexpr strong_ptr( std::nullptr_t ) noexcept {}
explicit strong_ptr( managed_object<T>* object ) noexcept : managed_pointer<T>( object ) {}
// Implement ownership traits.
//
strong_ptr( strong_ptr&& o ) noexcept : managed_pointer<T>( std::exchange( o.object, nullptr ) ) {}
strong_ptr( const strong_ptr& o ) : managed_pointer<T>( o.object )
{
if ( this->object )
this->object->inc_strong_ref();
}
strong_ptr& operator=( strong_ptr&& o ) noexcept
{
std::swap( o.object, this->object );
return *this;
}
strong_ptr& operator=( const strong_ptr& o )
{
if ( this->object )
this->object->dec_strong_ref();
this->object = o.object;
if ( this->object )
this->object->inc_strong_ref();
return *this;
}
~strong_ptr()
{
if ( this->object )
this->object->dec_strong_ref();
}
// Inherit pointer traits.
//
using managed_pointer<T>::operator*;
using managed_pointer<T>::operator->;
//using managed_pointer<T>::operator<;
//using managed_pointer<T>::operator==;
//using managed_pointer<T>::operator!=;
// Implement conversion to bool.
//
explicit operator bool() const noexcept { return !this->null(); }
};
template<typename T>
struct weak_ptr : managed_pointer<T>
{
// Internal and default constructors.
//
constexpr weak_ptr() noexcept {}
constexpr weak_ptr( std::nullptr_t ) noexcept {}
explicit weak_ptr( managed_object<T>* object ) noexcept : managed_pointer<T>( object ) {}
// Construct from strong.
//
weak_ptr( const strong_ptr<T>& p ) noexcept : managed_pointer<T>( p.object )
{
if ( this->object )
this->object->inc_weak_ref();
}
// Convert into strong.
//
strong_ptr<T> lock() const
{
if ( !this->alive() ) return nullptr;
this->object->inc_strong_ref();
return strong_ptr<T>{ this->object };
}
// Implement ownership traits.
//
weak_ptr( weak_ptr&& o ) noexcept : managed_pointer<T>( std::exchange( o.object, nullptr ) ) {}
weak_ptr( const weak_ptr& o ) : managed_pointer<T>( o.object )
{
if ( this->object )
this->object->inc_weak_ref();
}
weak_ptr& operator=( weak_ptr&& o ) noexcept
{
std::swap( o.object, this->object );
return *this;
}
weak_ptr& operator=( const weak_ptr& o )
{
if ( this->object )
this->object->dec_weak_ref();
this->object = o.object;
if ( this->object )
this->object->inc_weak_ref();
return *this;
}
~weak_ptr()
{
if ( this->object )
this->object->dec_weak_ref();
}
// Inherit pointer traits.
//
using managed_pointer<T>::operator*;
using managed_pointer<T>::operator->;
//using managed_pointer<T>::operator<;
//using managed_pointer<T>::operator==;
//using managed_pointer<T>::operator!=;
};
// Helpful concepts.
//
template<typename T>
concept ManagedPointer = std::is_base_of_v<managed_pointer_tag_t, T>;
// Basic allocator.
//
template<typename T, typename... Tx>
static strong_ptr<T> allocate( Tx&&... args )
{
auto* obj = new managed_object<T>( std::forward<Tx>( args )... );
obj->strong_refs = 1;
return strong_ptr<T>{ obj };
}
};
// Implement hasher.
//
namespace std
{
template<ref::ManagedPointer T>
struct hash<T>
{
size_t operator()( const T& value ) const noexcept
{
size_t identifier = ( ( size_t ) value.object ) & ( ( 1ull << 48 ) - 1 );
return ( identifier << 16 ) ^ ( identifier );
}
};
};
================================================
FILE: apollo-linker/transform/attribute_discovery.cpp
================================================
#include "attribute_discovery.hpp"
#include "../utility/llvm.hpp"
#include <xstd/random.hpp>
#include <llvm-c/Analysis.h>
#include <llvm-c/Core.h>
#include <llvm-c/Target.h>
#include <llvm-c/TargetMachine.h>
#include <xstd/algorithm.hpp>
#include <xstd/formatting.hpp>
#include <apollo/attributes.hpp>
void linker::transform::discover_attributes( collection& col )
{
// Enumerate every LLVM object:
//
for ( auto& obj : col.working_set )
{
auto& mod = obj->llvm;
if ( !mod ) continue;
// Get the annotation information.
//
LLVMValueRef annotation_array = LLVMGetNamedGlobal( mod, "llvm.global.annotations" );
if ( !annotation_array ) continue;
// Get its elements.
//
annotation_array = LLVMGetInitializer( annotation_array );
for ( size_t n = 0; n != LLVMGetArrayLength( LLVMTypeOf( annotation_array ) ); n++ )
{
if ( LLVMValueRef entry = LLVMGetOperand( annotation_array, n ) )
{
// Skip if entry is shorter than two.
//
size_t operand_cnt = LLVMGetNumOperands( entry );
if ( operand_cnt < 2 ) continue;
// #0 = &function / &global, #1 = &str
//
LLVMValueRef str = LLVMGetOperand( LLVMGetOperand( entry, 1 ), 0 );
if (str && !LLVMIsConstantString(str)) {
if (LLVMIsAGlobalVariable(str)) {
str = LLVMGetInitializer(str);
}
}
if (!str) continue;
// Skip if it does not start with the prefix.
//
size_t len;
std::string_view attr_name{ LLVMGetAsString( str, &len ) , len - 1 };
if ( xstd::istarts_with( attr_name, APOLLO_ANNOTATION_PREFIX ) )
{
attr_name.remove_prefix( xstd::strlen( APOLLO_ANNOTATION_PREFIX ) );
// Add it onto the list.
//
LLVMValueRef annotated = LLVMGetOperand(entry, 0);
if (!LLVMIsAGlobalValue(annotated)) {
annotated = LLVMGetOperand(annotated, 0);
}
std::string nattr_name = /*xstd::to_lower*/std::string(attr_name);
obj->attributes.add( annotated, nattr_name );
// Append into collection attributes as well.
//
std::string linked_name = LLVMGetValueName( annotated );
switch ( LLVMGetLinkage( annotated ) )
{
// static:
//
case LLVMInternalLinkage:
case LLVMPrivateLinkage:
{
if ( linked_name.find( "@ifn@" ) == std::string::npos )
{
std::string old_name = linked_name;
linked_name += "@ifn@" + std::to_string( xstd::time::monotonic() );
LLVMSetValueName( annotated, linked_name.c_str() );
for ( auto& scn : obj->sections )
for ( auto& sym : scn->symbols )
if ( sym->name == old_name )
sym->name = linked_name;
}
[[fallthrough]];
}
// extern:
//
case LLVMExternalLinkage:
case LLVMAvailableExternallyLinkage:
case LLVMLinkOnceAnyLinkage:
case LLVMLinkOnceODRLinkage:
case LLVMWeakAnyLinkage:
case LLVMWeakODRLinkage:
case LLVMCommonLinkage:
{
col.attributes.add( linked_name, nattr_name );
break;
}
default: break;
}
}
}
}
}
}
================================================
FILE: apollo-linker/transform/attribute_discovery.hpp
================================================
#pragma once
#include "../object/collection.hpp"
namespace linker::transform
{
// Discovers custom-linker attributes via annotations and places them in a table.
//
void discover_attributes( collection& col );
};
================================================
FILE: apollo-linker/transform/attribute_normalization.cpp
================================================
#include "attribute_normalization.hpp"
#include <xstd/random.hpp>
#include <llvm-c/Analysis.h>
#include <llvm-c/Core.h>
#include <llvm-c/Target.h>
#include <llvm-c/TargetMachine.h>
#include <xstd/algorithm.hpp>
#include <xstd/formatting.hpp>
#include <apollo/attributes.hpp>
#include "../utility/llvm.hpp"
static const char* target_cpu = "haswell";
constexpr std::string_view target_features_user = "+avx,+avx2,+aes,+bmi,+bmi2,+cx16,+cx8,+f16c,+fma,+fsgsbase,+fxsr,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+rdrnd,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt";
constexpr std::string_view target_features_kernel = target_features_user;
std::string_view linker::transform::get_feature_set( collection& col )
{
return col.module_type == satella::module_type::kernel ? target_features_kernel : target_features_user;
}
void linker::transform::set_default_attributes( collection& col, LLVMValueRef fn )
{
// Set the target features / CPU we require.
//
llvm::set_string_attribute( fn, "target-cpu", target_cpu );
llvm::set_string_attribute( fn, "target-features", get_feature_set( col ) );
// If kernel mode, disable redzone and stack probe.
//
if ( col.module_type != satella::module_type::loader )
{
llvm::set_enum_attribute( fn, "noredzone" );
llvm::set_string_attribute( fn, "no-stack-arg-probe", "" );
}
// Disable stack-smashing protection.
//
llvm::remove_enum_attribute( fn, "ssp" );
llvm::remove_enum_attribute( fn, "sspreq" );
llvm::remove_enum_attribute( fn, "sspstrong" );
}
void linker::transform::normalize_attributes( collection& col )
{
// Enumerate every LLVM object:
//
for ( auto& obj : col.working_set )
{
auto& mod = obj->llvm;
if ( !mod ) continue;
// For each external symbol, set DLLIMPORT if dynamically imported:
//
for ( auto& sym : obj->external_symbols )
{
auto xsym = col.public_symbols.find( sym->name );
if ( xsym == col.public_symbols.end() ) continue;
if ( !xsym->second.alive() ) continue;
if ( xsym->second->dyn_import )
{
auto g = LLVMGetNamedFunction( mod, sym->name.c_str() );
if ( !g ) g = LLVMGetNamedGlobal( mod, sym->name.c_str() );
if ( g )
LLVMSetDLLStorageClass( g, LLVMDLLImportStorageClass ), LLVMSetDSOLocal( g, false );
}
}
// For each defined function:
//
auto set_feature = obj->attributes.move_prefixed( "set_feature:" );
for ( auto func = LLVMGetFirstFunction( mod ); func; func = LLVMGetNextFunction( func ) )
{
// Skip if intrinsic.
//
if ( !memcmp( LLVMGetValueName( func ), "llvm.", 5 ) )
continue;
// Set the default attributes.
//
set_default_attributes( col, func );
// If non-MS ABI / naked, set preserve_ret.
//
if ( LLVMGetFunctionCallConv( func ) == LLVMPreserveAllCallConv ||
LLVMGetFunctionCallConv( func ) == LLVMPreserveMostCallConv ||
LLVMGetFunctionCallConv( func ) == LLVMColdCallConv ||
llvm::has_enum_attribute( func, "naked" ) )
col.attributes.add( LLVMGetValueName( func ), "preserve_ret" );
// Handle enforced feature sets.
//
std::string custom_feature_set = {};
for ( auto [obj, str] : set_feature )
{
if ( obj == func )
{
if ( custom_feature_set.empty() )
custom_feature_set = get_feature_set( col );
if ( !str.empty() && str[ 0 ] == '+' )
{
str.remove_prefix( 1 );
if ( size_t n = custom_feature_set.find( str ); n != std::string::npos )
custom_feature_set[ n - 1 ] = '+';
else
( custom_feature_set += ",+" ) += str;
}
else if ( !str.empty() && str[ 0 ] == '-' )
{
str.remove_prefix( 1 );
if ( size_t n = custom_feature_set.find( str ); n != std::string::npos )
custom_feature_set[ n - 1 ] = '-';
else
( custom_feature_set += ",-" ) += str;
}
else
{
xstd::error( "Invalid feature setting." );
}
}
}
if ( !custom_feature_set.empty() )
llvm::set_string_attribute( func, "target-features", custom_feature_set );
}
// For each function marked with must_tail:
//
for ( LLVMValueRef fn : obj->attributes.move( "must_tail" ) )
{
// Enumerate each basic block.
//
auto list_blocks = llvm::get_basic_blocks( fn );
for ( LLVMBasicBlockRef block : list_blocks )
{
// If terminating block:
//
if ( auto end = LLVMGetLastInstruction( block ); LLVMGetInstructionOpcode( end ) == LLVMRet )
{
auto force_tail = [ &fn ] ( auto end, LLVMTailCallKind k = LLVMTailCallKindMustTail ) -> LLVMValueRef
{
// Iterate backwards until we find a call.
//
for ( auto it = LLVMGetPreviousInstruction( end ); it; it = LLVMGetPreviousInstruction( it ) )
{
if ( LLVMGetInstructionOpcode( it ) == LLVMCall )
{
if ( ( LLVMGetNumOperands( it ) - 1 ) == LLVMCountParams( fn ) )
{
// Set tail call and return.
//
LLVMSetTailCall( it, true );
LLVMSetTailCallKind( it, k );
return it;
}
else
{
return nullptr;
}
}
}
return nullptr;
};
// If not the only instruction:
//
if ( LLVMGetFirstInstruction( block ) != end && LLVMGetInstructionOpcode( LLVMGetPreviousInstruction( end ) ) != LLVMPHI )
{
force_tail( end );
}
// Recurse into all blocks targetting this.
//
else
{
for ( auto& pblock : list_blocks )
{
auto ins = LLVMGetLastInstruction( pblock );
if ( LLVMGetInstructionOpcode( ins ) == LLVMBr )
{
for ( size_t n = 0; n != LLVMGetNumOperands( ins ); n++ )
{
auto op = LLVMGetOperand( ins, n );
if ( LLVMIsABasicBlock( op ) && LLVMValueAsBasicBlock( op ) == block )
force_tail( LLVMGetLastInstruction( pblock ), LLVMTailCallKindTail );
}
}
}
}
}
}
}
// Verify.
//
if ( col.llvm_verify )
LLVMVerifyModule( mod, LLVMVerifierFailureAction::LLVMAbortProcessAction, nullptr );
}
}
================================================
FILE: apollo-linker/transform/attribute_normalization.hpp
================================================
#pragma once
#include "../object/collection.hpp"
namespace linker::transform
{
// Gets active feature set for the collection.
//
std::string_view get_feature_set( collection& col );
// Sets the default attributes we use for every function.
//
void set_default_attributes( collection& col, LLVMValueRef fn );
// Normalizes LLVM attributes for every function.
//
void normalize_attributes( collection& col );
};
================================================
FILE: apollo-linker/transform/auto_mode_switch.cpp
================================================
#include "auto_mode_switch.hpp"
#include "../utility/llvm.hpp"
#include <xstd/random.hpp>
#include <llvm-c/Analysis.h>
#include <llvm-c/Core.h>
#include <llvm-c/Target.h>
#include <llvm-c/TargetMachine.h>
// Automatically inserts checks for mode-switch in indirect branches.
//
void linker::transform::auto_mode_switch( collection& col )
{
// Enumerate every LLVM object:
//
for ( auto& obj : col.working_set )
{
auto& mod = obj->llvm;
if ( !mod ) continue;
if ( obj->is_builtin_provider ) continue;
auto& excluded = obj->attributes.find( "no_mode_switch" );
for ( auto& fn : llvm::get_functions( mod ) )
{
std::string_view name{ LLVMGetValueName( fn ) };
if ( name.starts_with( "__wasm" ) )
continue;
if ( name.starts_with( "?_Delete_this" ) )
continue;
if ( excluded.contains( fn ) )
continue;
for ( auto& bb : llvm::get_basic_blocks( fn ) )
{
for ( auto ins = LLVMGetFirstInstruction( bb ); ins; ins = LLVMGetNextInstruction( ins ) )
{
if ( !LLVMIsACallInst( ins ) )
continue;
LLVMValueRef target = LLVMGetCalledValue( ins );
if ( LLVMIsConstant( target ) || LLVMIsAFunction( target ) || LLVMIsAInlineAsm( target ) )
continue;
// Vectorcall functions are for flash callbacks, skip.
//
LLVMCallConv cconv = ( LLVMCallConv ) LLVMGetInstructionCallConv( ins );
if ( cconv == LLVMX86VectorCallCallConv )
continue;
LLVMTypeRef type = LLVMGetCalledFunctionType( ins );
auto bb = LLVMCreateBuilder();
LLVMPositionBuilderBefore( bb, ins );
// Get the operands of the call.
//
std::vector<LLVMValueRef> target_operands( LLVMGetNumOperands( ins ) - 1 );
for ( size_t n = 0; n != target_operands.size(); n++ )
target_operands[ n ] = LLVMGetOperand( ins, n );
// Cast the guard to the call type.
//
auto [guard, _] = llvm::get_function( mod, "__crt_mode_switch_guard", LLVMInt64Type(), {}, obj.get(), true /*must be vararg*/ );
LLVMSetDLLStorageClass( guard, LLVMDLLImportStorageClass );
// Get the call point and put it in a bundle.
//
auto bundle = LLVMCreateOperandBundleDef( "cfguardtarget", &target, 1 );
LLVMValueRef new_ins = LLVMBuildCallWithOpBundle(
bb,
type,
guard,
target_operands.data(),
target_operands.size(),
&bundle,
1,
""
);
LLVMSetInstructionCallConv( new_ins, cconv );
LLVMSetTailCallKind( new_ins, LLVMGetTailCallKind( ins ) );
llvm::replace_all_and_erase( ins, new_ins );
LLVMDisposeBuilder( bb );
if ( col.llvm_verify )
LLVMVerifyFunction( fn, LLVMVerifierFailureAction::LLVMAbortProcessAction );
}
}
}
}
}
================================================
FILE: apollo-linker/transform/auto_mode_switch.hpp
================================================
#pragma once
#include "../object/collection.hpp"
namespace linker::transform
{
// Automatically inserts checks for mode-switch in indirect branches.
//
void auto_mode_switch( collection& col );
};
================================================
FILE: apollo-linker/transform/cleanup.cpp
================================================
#include "cleanup.hpp"
#include "../utility/llvm.hpp"
#include <xstd/random.hpp>
#include <llvm-c/Analysis.h>
#include <llvm-c/Core.h>
#include <llvm-c/Target.h>
#include <llvm-c/TargetMachine.h>
#define IN_GENERATOR 1
#include <sdkgen/support_library.hpp>
template<typename T>
static void transform_builtin_symbol_read( LLVMModuleRef mod, const char* name )
{
// Resolve the function.
//
LLVMValueRef fn = llvm::get_function( mod, name );
if ( !fn ) return;
// Function traits:
//
LLVMTypeRef value_type =
sizeof( T ) == 8 ? LLVMInt64Type() :
sizeof( T ) == 4 ? LLVMInt32Type() :
sizeof( T ) == 2 ? LLVMInt16Type() :
sizeof( T ) == 1 ? LLVMInt8Type() : nullptr;
// Resolve each call:
//
for ( auto [user, _] : llvm::get_primary_users( fn, { LLVMInstructionValueKind } ) )
{
if ( LLVMGetInstructionOpcode( user ) == LLVMCall )
{
// Fetch the operands.
//
LLVMValueRef src = LLVMGetOperand( user, 0 );
LLVMValueRef off = LLVMGetOperand( user, 1 );
LLVMValueRef key = LLVMGetOperand( user, 2 );
// Validate constant arguments and make the temporary type.
//
if ( !LLVMIsConstant( off ) ) xstd::error( "Offset operand to %s must be a constant integer.", name );
if ( !LLVMIsConstant( key ) ) xstd::error( "Key operand to %s must be a constant integer.", name );
size_t ioff = LLVMConstIntGetZExtValue( off );
size_t ikey = LLVMConstIntGetZExtValue( key );
// Roll the key if necessary.
//
for ( size_t i = ioff; i != 0; )
{
if ( i >= 8 )
{
ikey = sdk::magic_lcg_next( ikey );
i -= 8;
}
else
{
ikey = shrd( ikey, sdk::magic_lcg_next( ikey ), i * 8 );
break;
}
}
// Create the builder.
//
LLVMBuilderRef bb = LLVMCreateBuilder();
LLVMPositionBuilderBefore( bb, user );
// Cast the pointer and load the value.
//
LLVMValueRef value = llvm::load( bb, value_type, src );
// XOR with the key.
//
value = LLVMBuildXor( bb, value, LLVMConstInt( value_type, T( ikey ), false ), "" );
// Dispose the builder, replace every user with the value.
//
LLVMDisposeBuilder( bb );
llvm::replace_all_and_erase( user, value );
}
}
}
// Cleans up codegen.
//
void linker::transform::cleanup( collection& col )
{
// Enumerate every LLVM object:
//
for ( auto& obj : col.working_set )
{
auto& mod = obj->llvm;
if ( !mod ) continue;
// __builtin_symbol_readN:
//
transform_builtin_symbol_read<uint8_t>( mod, "__builtin_symbol_read1" );
transform_builtin_symbol_read<uint16_t>( mod, "__builtin_symbol_read2" );
transform_builtin_symbol_read<uint32_t>( mod, "__builtin_symbol_read4" );
transform_builtin_symbol_read<uint64_t>( mod, "__builtin_symbol_read8" );
// __builtin_pure_load:
//
if ( LLVMValueRef fn = LLVMGetNamedFunction( mod, "__builtin_pure_load" ) )
{
for ( auto [user, _] : llvm::get_primary_users( fn, { LLVMInstructionValueKind } ) )
{
if ( LLVMGetInstructionOpcode( user ) == LLVMCall )
{
// Fetch the operands.
//
LLVMValueRef dst = LLVMGetOperand( user, 0 );
LLVMValueRef src = LLVMGetOperand( user, 1 );
LLVMValueRef len = LLVMGetOperand( user, 2 );
LLVMValueRef algn = LLVMGetOperand( user, 3 );
// Validate constant arguments and make the temporary type.
//
size_t ilen = LLVMIsConstant( len ) ? LLVMConstIntGetZExtValue( len ) : 0;
size_t ialgn = LLVMIsConstant( algn ) ? LLVMConstIntGetZExtValue( algn ) : 0;
if ( !ilen ) xstd::error( "Length operand to __builtin_pure_load must be a constant non-zero integer." );
if ( !ialgn ) xstd::error( "Alignment operand to __builtin_pure_load must be a constant non-zero integer." );
LLVMTypeRef value_type = LLVMArrayType( LLVMIntType( ialgn * 8 ), xstd::align_up( ilen, ialgn ) / ialgn );
// Create the builder.
//
LLVMBuilderRef bb = LLVMCreateBuilder();
LLVMPositionBuilderBefore( bb, user );
// Cast the pointers and copy the value.
//
LLVMBuildStore( bb, llvm::load( bb, value_type, src ), dst );
// Dispose the builder, replace every user with the destination operand.
//
LLVMDisposeBuilder( bb );
LLVMReplaceAllUsesWith( user, dst );
}
}
}
// __builtin_halt_consteval:
//
if ( LLVMValueRef fn = LLVMGetNamedFunction( mod, "__builtin_halt_consteval" ) )
for ( auto [user, _] : llvm::get_primary_users( fn, { LLVMInstructionValueKind } ) )
if ( LLVMGetInstructionOpcode( user ) == LLVMCall )
LLVMInstructionEraseFromParent( user );
// MS STL garbage:
//
for ( const char* name : {
"_invoke_watson",
"_invalid_parameter_noinfo",
"_invalid_parameter_noinfo_noreturn",
"?_Xlength_error@std@@YAXPEBD@Z",
"?_Throw_bad_array_new_length@std@@YAXXZ"} )
{
LLVMValueRef fn = LLVMGetNamedFunction( mod, name );
if ( !fn ) continue;
for ( auto [user, _] : llvm::get_primary_users( fn, { LLVMInstructionValueKind } ) )
{
if ( LLVMGetInstructionOpcode( user ) == LLVMCall )
{
LLVMBuilderRef bb = LLVMCreateBuilder();
LLVMPositionBuilderBefore( bb, user );
//if ( col.build_type == satella::build_type::development )
// LLVMBuildCall( bb, llvm::get_intrinsic( mod, "llvm.trap" ), nullptr, 0, "" );
LLVMBuildUnreachable( bb );
LLVMDisposeBuilder( bb );
while ( user )
LLVMInstructionEraseFromParent( std::exchange( user, LLVMGetNextInstruction( user ) ) );
}
}
}
// MS CRT garbage:
//
if ( LLVMValueRef iob_fn = LLVMGetNamedFunction( mod, "__acrt_iob_func" ) )
{
auto ret_type = LLVMGetReturnType( LLVMGlobalGetValueType( iob_fn ) );
auto new_value = llvm::const_bit_cast( mod, LLVMConstInt( LLVMInt64Type(), 1 /*crt::stdout_hnd*/, false ), ret_type );
for ( auto [user, _] : llvm::get_primary_users( iob_fn, { LLVMInstructionValueKind } ) )
if ( LLVMGetInstructionOpcode( user ) == LLVMCall )
llvm::replace_all_and_erase( user, new_value );
}
if ( LLVMValueRef iob_fn = LLVMGetNamedFunction( mod, "_Query_perf_frequency" ) )
{
auto new_value = LLVMConstInt( LLVMInt64Type(), 1s / 1ns /*as in MiniCRT/time.cpp*/, false );
for ( auto [user, _] : llvm::get_primary_users( iob_fn, { LLVMInstructionValueKind } ) )
if ( LLVMGetInstructionOpcode( user ) == LLVMCall )
llvm::replace_all_and_erase( user, new_value );
}
if ( col.llvm_verify )
LLVMVerifyModule( mod, LLVMVerifierFailureAction::LLVMAbortProcessAction, nullptr );
}
}
================================================
FILE: apollo-linker/transform/cleanup.hpp
================================================
#pragma once
#include "../object/collection.hpp"
namespace linker::transform
{
// Cleans up codegen.
//
void cleanup( collection& col );
};
================================================
FILE: apollo-linker/transform/dyn_relocs.cpp
================================================
#include <unordered_set>
#include "dyn_relocs.hpp"
#include "../utility/llvm.hpp"
template<typename F>
static void for_each_call( LLVMModuleRef mod, const char* name, F&& enumerator )
{
// Resolve the function.
//
LLVMValueRef fn = llvm::get_function( mod, name );
if ( !fn ) return;
// Resolve each call:
//
for ( auto [user, _] : llvm::get_primary_users( fn, { LLVMInstructionValueKind } ) )
{
if ( LLVMGetInstructionOpcode( user ) == LLVMCall )
{
// Get the first argument.
//
LLVMValueRef name_value = LLVMGetOperand( user, 0 );
while ( LLVMGetValueKind( name_value ) == LLVMConstantExprValueKind )
{
switch ( LLVMGetConstOpcode( name_value ) )
{
case LLVMPtrToInt:
case LLVMIntToPtr:
case LLVMBitCast:
case LLVMAddrSpaceCast:
case LLVMGetElementPtr:
name_value = LLVMGetOperand( name_value, 0 );
continue;
default: break;
}
break;
}
if ( !LLVMIsGlobalConstant( name_value ) )
xstd::error( "Name operand to %s must be a constant C string.", name );
name_value = LLVMGetInitializer( name_value );
if ( !LLVMIsConstantString( name_value ) )
xstd::error( "Name operand to %s must be a constant C string.", name );
std::string_view reloc_name = llvm::get_as_string( name_value );
if ( reloc_name.starts_with( "@." ) )
reloc_name.remove_prefix( 2 );
if ( reloc_name.back() == '\x0' )
reloc_name.remove_suffix( 1 );
enumerator( user, reloc_name );
}
}
}
// Handles invocations of builtins for fetching and resolving of dynamic relocations.
//
void linker::transform::lift_dynrelocs( collection& col )
{
// Enumerate every LLVM object:
//
for ( auto& obj : col.working_set )
{
auto& mod = obj->llvm;
if ( !mod ) continue;
for_each_call( mod, "__builtin_fetch_dynamic", [ & ] ( LLVMValueRef user, std::string_view name )
{
// Create a dummy global representing it, reference it using movabs.
//
LLVMValueRef value = llvm::get_global<true>( mod, ( ".dynreloc.value." + std::string{ name } ).data(), LLVMInt8Type(), nullptr, obj.get() ).first;
LLVMTypeRef resolver_ty = llvm::make_func_type(LLVMTypeOf(value), { LLVMTypeOf(value) });
LLVMValueRef resolver = llvm::inline_asm( resolver_ty, "movabs $1, $0", "=r,i" );
// Create the builder.
//
LLVMBuilderRef bb = LLVMCreateBuilder();
LLVMPositionBuilderBefore( bb, user );
// Call the resolver.
//
value = LLVMBuildCall2( bb, resolver_ty, resolver, &value, 1, "" );
// Dispose the builder, replace every user with the value.
//
LLVMDisposeBuilder( bb );
llvm::replace_all_and_erase( user, value );
} );
for_each_call( mod, "__builtin_dynamic_users", [ & ] ( LLVMValueRef user, std::string_view name )
{
// Create a dummy global representing it, cast its pointer to match the return value.
//
LLVMValueRef value = llvm::get_global<true>( mod, ( ".dynreloc.users." + std::string{ name } ).data(), LLVMInt8Type(), nullptr, obj.get() ).first;
value = LLVMConstPointerCast( value, LLVMTypeOf( user ) );
// Replace every user with the value.
//
llvm::replace_all_and_erase( user, value );
} );
}
}
// Handles linkage against dynamic relocations after codegen is complete.
//
void linker::transform::finalize_dynrelocs( collection& col )
{
struct dynreloc_state
{
// Whether or not the table was directly referenced yet.
//
bool referenced = false;
// Section for the dynreloc.users holding a table of pointers terminating with a null entry.
//
ref::strong_ptr<section> table = {};
// Symbol for the table.
//
ref::strong_ptr<symbol> table_begin = {};
// Sentinel for dynrelocs in invalid state for debug builds.
//
ref::strong_ptr<symbol> inv_sentinel = {};
};
std::unordered_map<std::string, dynreloc_state, xstd::ahash<>> dynreloc_use_list;
// Create a unique object:
//
auto dr_object = col.working_set.emplace_back( ref::allocate<linker::object>() );
dr_object->file_name = "dynreloc.tmp";
auto reference_dynamic_reloc = [ & ] ( std::string name, bool for_resolution )
{
// If a section was not created yet:
//
auto& state = dynreloc_use_list[ name ];
if ( !state.table )
{
bool is_debug_tbl = col.is_debug();
// Create an empty section.
//
auto& dr_section = dr_object->sections.emplace_back( ref::allocate<section>() );
dr_section->owner = dr_object;
dr_section->name = ".dyn";
dr_section->characteristics.cnt_init_data = true;
dr_section->characteristics.mem_read = true;
dr_section->raw_data.resize( is_debug_tbl ? 32 + 8 : 8, 0 ); // null terminator + sentinel.
state.table = dr_section;
// Add a symbol for the sentinel if relevant.
//
uint32_t offset = 0;
if ( is_debug_tbl )
{
// "?" + name + "@dyn@@3QB_KB"
auto& snt_symbol = dr_section->symbols.emplace_back( ref::allocate<symbol>() );
snt_symbol->scn = dr_section;
snt_symbol->storage_class = coff::storage_class_id::public_symbol;
snt_symbol->name = "?" + name + "@dyn@@3_OB_KB";
snt_symbol->derived_type = coff::derived_type_id::none;
snt_symbol->value = 0;
state.inv_sentinel = snt_symbol;
offset = 32;
fassert( col.public_symbols.emplace( snt_symbol->name, snt_symbol ).second );
}
// Add a symbol for the beginning of the table.
//
auto& tbl_symbol = dr_section->symbols.emplace_back( ref::allocate<symbol>() );
tbl_symbol->scn = dr_section;
tbl_symbol->storage_class = coff::storage_class_id::public_symbol;
tbl_symbol->name = "?" + name + "@users@dyn@@3_OB_KB";
tbl_symbol->derived_type = coff::derived_type_id::none;
tbl_symbol->value = offset;
state.table_begin = tbl_symbol;
}
// Update resolution flags, return a pointer.
//
state.referenced |= for_resolution;
return &state;
};
// Enumerate each object skipping dynamic-relocations object:
//
for ( auto& obj : col.working_set )
{
if ( obj == dr_object )
continue;
// For each relocation:
//
for ( auto& scn : obj->sections )
{
for ( auto reloc = scn->relocs.begin(); reloc != scn->relocs.end(); )
{
if ( reloc->ref_symbol->is_undefined() )
{
if ( reloc->ref_symbol->name.starts_with( ".dynreloc.value." ) )
{
// Validate address.
//
fassert( reloc->type == coff::rel_amd64_addr64 );
// Resolve the table.
//
auto* dr = reference_dynamic_reloc( reloc->ref_symbol->name.substr( xstd::strlen( ".dynreloc.value." ) ), false );
// Create a symbol at the relocation point.
//
auto& reloc_sym = scn->symbols.emplace_back( ref::allocate<symbol>() );
reloc_sym->scn = scn;
reloc_sym->storage_class = coff::storage_class_id::label;
reloc_sym->derived_type = coff::derived_type_id::none;
reloc_sym->value = reloc->offset;
// Append to the table.
//
auto& tbl_sec = dr->table;
size_t pos = tbl_sec->raw_data.size();
tbl_sec->raw_data.resize( pos + 8 );
tbl_sec->relocs.emplace_back( relocation{ pos - 8, reloc_sym, coff::rel_amd64_addr64 } );
// Remove the original relocation or replace it if debug.
//
if ( !dr->inv_sentinel )
{
reloc = scn->relocs.erase( reloc );
continue;
}
reloc->ref_symbol = dr->inv_sentinel;
}
else if ( reloc->ref_symbol->name.starts_with( ".dynreloc.users." ) )
{
// Resolve the table.
//
auto* dr = reference_dynamic_reloc( reloc->ref_symbol->name.substr( xstd::strlen( ".dynreloc.value." ) ), true );
// Replace the referenced symbol with the actual table.
//
reloc->ref_symbol = dr->table_begin;
}
}
++reloc;
}
}
}
// Make sure every dynamic relocation has a resolver.
//
for ( auto& [name, dyn_reloc] : dynreloc_use_list )
{
if ( !dyn_reloc.referenced )
xstd::warning( "Dynamic relocation '%s' is never resolved!\n", name );
}
}
================================================
FILE: apollo-linker/transform/dyn_relocs.hpp
================================================
#pragma once
#include "../object/collection.hpp"
namespace linker::transform
{
// Handles invocations of builtins for fetching and resolving of dynamic relocations.
//
void lift_dynrelocs( collection& col );
// Handles linkage against dynamic relocations after codegen is complete.
//
void finalize_dynrelocs( collection& col );
};
================================================
FILE: apollo-linker/transform/lazy_import.cpp
================================================
#include "lazy_import.hpp"
#include "../utility/llvm.hpp"
#include <xstd/random.hpp>
#include <llvm-c/Analysis.h>
#include <llvm-c/Core.h>
#include <llvm-c/Target.h>
#include <llvm-c/TargetMachine.h>
// Converts invocations of DLL imported calls into lazy import stubs.
//
void linker::transform::lazy_import( collection& col )
{
// Skip if the collection does not need imports.
//
if ( col.imports.empty() )
return;
// Enumerate every LLVM object:
//
for ( auto& obj : col.working_set )
{
auto& mod = obj->llvm;
if ( !mod ) continue;
// Skip if it has no imports.
//
bool has_import = false;
for ( auto&& [name, attr] : obj->lto.symbols() )
if ( ( attr & LTO_SYMBOL_DEFINITION_MASK ) == LTO_SYMBOL_DEFINITION_UNDEFINED && ( has_import = col.imports.contains( name ) ) )
break;
if ( !has_import ) continue;
// Add a reference to the decryption helper.
// - uint64_t __crt_*_single( uint64_t intptr, uint64_t key)
//
LLVMTypeRef enc_fn_p[] = { LLVMInt64Type(), LLVMInt64Type() };
LLVMTypeRef enc_fn_t = LLVMFunctionType(LLVMInt64Type(), enc_fn_p, 2, 0);
auto ref_p_dec_enc = [ & ]( const char* name )
{
LLVMValueRef fn = LLVMGetNamedFunction( mod, name );
if ( fn ) return fn;
fn = LLVMAddFunction( mod, name, enc_fn_t );
LLVMSetVisibility( fn, LLVMVisibility::LLVMDefaultVisibility );
LLVMSetLinkage( fn, LLVMExternalLinkage );
return fn;
};
LLVMValueRef dec_single_ptr = ref_p_dec_enc( "__crt_decrypt_single" );
LLVMValueRef enc_single_ptr = ref_p_dec_enc( "__crt_encrypt_single" );
// Add a reference to the resolver.
//
LLVMValueRef resolver = LLVMGetNamedFunction( mod, "__crt_resolve_import" );
LLVMTypeRef resolver_params[] = { LLVMInt32Type(), LLVMInt32Type() };
LLVMTypeRef resolver_type = LLVMFunctionType( LLVMInt64Type(), resolver_params, 2, 0 );
if ( !resolver )
{
resolver = LLVMAddFunction( mod, "__crt_resolve_import", resolver_type );
LLVMSetVisibility( resolver, LLVMVisibility::LLVMDefaultVisibility );
LLVMSetLinkage( resolver, LLVMExternalLinkage );
}
// Enumerate DLLImports:
//
for ( auto func = LLVMGetFirstFunction( mod ); func; func = LLVMGetNextFunction( func ) )
{
const char* func_name = LLVMGetValueName( func );
if ( LLVMGetDLLStorageClass( func ) != LLVMDLLStorageClass::LLVMDLLImportStorageClass )
if ( LLVMGetFirstBasicBlock( func ) || col.public_symbols.contains( func_name ) )
continue;
if ( auto iit = col.imports.find( func_name ); iit != col.imports.end() )
{
// Mark the resolver referenced.
//
obj->external_symbols.emplace_back(
ref::allocate<symbol>( symbol{ .name = "__crt_resolve_import", .storage_class = coff::storage_class_id::public_symbol } )
);
// Get the function type.
//
LLVMTypeRef func_type = LLVMGlobalGetValueType( func );
LLVMTypeRef func_ptr_type = LLVMPointerType( func_type, 0 );
// Remove DLL import attributes and reset linkage/visibility.
//
LLVMSetDLLStorageClass( func, LLVMDLLStorageClass::LLVMDefaultStorageClass );
LLVMSetUnnamedAddr( func, LLVMUnnamedAddr::LLVMNoUnnamedAddr );
LLVMSetVisibility( func, LLVMVisibility::LLVMDefaultVisibility );
LLVMSetLinkage( func, LLVMLinkage::LLVMLinkOnceAnyLinkage );
// Pick the key encrypting the pointer.
//
auto seed = xstd::lce_64_n( xstd::make_crandom<uint64_t>( 0 ) ^ xstd::make_hash( iit->second.first ) );
LLVMValueRef cache_key = LLVMConstInt( LLVMInt64Type(), xstd::lce_64( seed ), false );
LLVMValueRef cache_null = LLVMConstInt( LLVMInt64Type(), xstd::lce_64( seed ), false );
// Create or reference the global caching for the imported pointer.
//
std::string name = "___imported_" + iit->second.first;
LLVMValueRef cache_enc = LLVMGetNamedGlobal( mod, name.c_str() );
if ( !cache_enc )
{
cache_enc = LLVMAddGlobal( mod, LLVMInt64Type(), name.c_str() );
LLVMSetVisibility( cache_enc, LLVMVisibility::LLVMDefaultVisibility );
LLVMSetLinkage( cache_enc, LLVMLinkage::LLVMLinkOnceAnyLinkage );
LLVMSetInitializer( cache_enc, cache_null );
}
// Create all three basic blocks we need.
//
LLVMBuilderRef bb = LLVMCreateBuilder();
LLVMBasicBlockRef entry_block = LLVMAppendBasicBlock( func, "entry" );
LLVMBasicBlockRef forward_block = LLVMAppendBasicBlock( func, "fwd" );
LLVMBasicBlockRef resolver_block = LLVMAppendBasicBlock( func, "resolve" );
// Jump to resolving logic if cache is not set.
//
LLVMPositionBuilderAtEnd( bb, entry_block );
LLVMValueRef first_time = LLVMBuildICmp( bb, LLVMIntEQ, llvm::load( bb, LLVMInt64Type(), cache_enc, "tmp0" ), cache_null, "" );
llvm::set_unlikely( LLVMBuildCondBr( bb, first_time, resolver_block, forward_block ) );
// Decrypt the pointer, invoke the function and return the result.
//
LLVMPositionBuilderAtEnd( bb, forward_block );
LLVMValueRef dec_args[] = { llvm::loadi64( bb, cache_enc ), cache_key };
LLVMValueRef fn_ptr = LLVMBuildCall2( bb, enc_fn_t, dec_single_ptr, dec_args, 2, "" );
fn_ptr = LLVMBuildIntToPtr( bb, fn_ptr, func_ptr_type, "" );
std::vector<LLVMValueRef> params( LLVMCountParams( func ) );
LLVMGetParams( func, params.data() );
if ( LLVMGetTypeKind( LLVMGetReturnType( func_type ) ) == LLVMTypeKind::LLVMVoidTypeKind )
{
LLVMBuildCall2( bb, func_type, fn_ptr, params.data(), params.size(), "" );
if (col.module_type == satella::module_type::loader) {
auto cty = llvm::make_func_type(LLVMVoidType(), {});
LLVMBuildCall2( bb, cty, llvm::inline_asm( cty, "", "~{ymm6},~{ymm7},~{ymm8},~{ymm9},~{ymm10},~{ymm11},~{ymm12},~{ymm13},~{ymm14},~{ymm15}" ), nullptr, 0, "" );
}
LLVMBuildRetVoid( bb );
}
else
{
LLVMValueRef result = LLVMBuildCall2( bb, func_type, fn_ptr, params.data(), params.size(), "" );
if (col.module_type == satella::module_type::loader) {
auto cty = llvm::make_func_type(LLVMVoidType(), {});
LLVMBuildCall2(bb, cty, llvm::inline_asm(cty, "", "~{ymm6},~{ymm7},~{ymm8},~{ymm9},~{ymm10},~{ymm11},~{ymm12},~{ymm13},~{ymm14},~{ymm15}"), nullptr, 0, "");
}
LLVMBuildRet( bb, result );
}
// Resolve the function pointer and update cache.
//
LLVMPositionBuilderAtEnd( bb, resolver_block );
LLVMValueRef resolver_args[] = {
LLVMConstInt( LLVMInt32Type(), xstd::basic_ihash<xstd::xcrc, const char*>{}( iit->second.second.c_str() ), false ),
LLVMConstInt( LLVMInt32Type(), xstd::basic_xhash<xstd::xcrc, const char*>{}( iit->second.first.c_str() ), false )
};
LLVMValueRef resolved_ptr = LLVMBuildCall2( bb, resolver_type, resolver, resolver_args, 2, "" );
LLVMValueRef enc_args[] = { resolved_ptr, cache_key };
LLVMValueRef efn_ptr = LLVMBuildCall2( bb, enc_fn_t, enc_single_ptr, enc_args, 2, "" );
LLVMBuildStore( bb, efn_ptr, cache_enc );
LLVMBuildBr( bb, forward_block );
// Add attributes and verify.
//
LLVMDisposeBuilder( bb );
llvm::set_enum_attribute( func, col.is_debug() ? "noinline" : "alwaysinline" );
if ( col.llvm_verify )
LLVMVerifyFunction( func, LLVMVerifierFailureAction::LLVMAbortProcessAction );
}
}
}
}
================================================
FILE: apollo-linker/transform/lazy_import.hpp
================================================
#pragma once
#include "../object/collection.hpp"
namespace linker::transform
{
// Converts invocations of DLL imported calls into lazy import stubs.
//
void lazy_import( collection& col );
};
================================================
FILE: apollo-linker/transform/logo.cpp
================================================
#include "logo.hpp"
#include <xstd/text.hpp>
#pragma GCC diagnostic ignored "-Wbraced-scalar-init"
namespace linker::transform
{
static constexpr const char* text_image[] = {
// Your ascii art here.
{ R"( ##### )" },
{ R"( ############# )" },
{ R"( ##################### )" },
};
// Appends the logo to the entry point.
//
void add_logo( collection& col, ref::strong_ptr<symbol>& ep )
{
// Allocate a new section and a symobl.
//
auto& ep_scn = ep->scn->owner->sections.emplace_back( ref::allocate<linker::section>() );
ep_scn->owner = ep->scn->owner;
ep_scn->name = ".text";
ep_scn->characteristics.cnt_code = true;
ep_scn->characteristics.mem_read = true;
ep_scn->characteristics.mem_execute = true;
auto ep_sym = ref::allocate<linker::symbol>();
ep_sym->scn = ep_scn;
ep_sym->name = "logo_entry_point";
ep_sym->storage_class = coff::storage_class_id::public_symbol;
ep_sym->derived_type = coff::derived_type_id::function;
ep_scn->symbols = { ep_sym };
col.attributes.add( ep_sym->name, "init_discardable" );
fassert( col.public_symbols.emplace( ep_sym->name, ep_sym ).second );
// random pushes.
//
if ( xstd::make_random<bool>() )
ep_scn->raw_data.emplace_back( 0x41 );
ep_scn->raw_data.emplace_back( xstd::make_random( 0x50, 0x57 ) );
// Call into real entry point via an opaque.
//
/*
cmp rcx, 0x00c0ffe00
jz x
call <>
int 3
x:
*/
ep_scn->raw_data.insert( ep_scn->raw_data.end(), { 0x48, 0x81, 0xF9, 0x00, 0xFE, 0x0F, 0x0C, 0x74, 0x06, 0xE8, 0x00, 0x00, 0x00, 0x00, 0xCC } );
ep_scn->relocs.push_back( { ep_scn->raw_data.size() - 5, ep, coff::rel_amd64_rel32 } );
// Add a jump table.
//
/*
lea rax, [rip+x]
mov ecx, [rax+rcx*4]
add rax, rcx
jmp rax
x:
*/
ep_scn->raw_data.insert( ep_scn->raw_data.end(), { 0x48, 0x8D, 0x05, 0x08, 0x00, 0x00, 0x00, 0x8B, 0x0C, 0x88, 0x48, 0x01, 0xC8, 0xFF, 0xE0 } );
// Write the cases to form an image.
//
constexpr size_t ins_count = 46;
size_t width = xstd::strlen( text_image[ 0 ] );
size_t heigth = std::size( text_image );
size_t table_begin = ep_scn->raw_data.size();
ep_scn->raw_data.resize( table_begin + width * 4 );
std::vector<uint32_t> table;
for ( size_t n = 0; n != width; n++ )
{
table.emplace_back( xstd::narrow_cast< uint32_t >( ep_scn->raw_data.size() - table_begin ) );
ep_scn->raw_data.insert( ep_scn->raw_data.end(), { 0xEB, 0x00 } );
for ( size_t k = 0; k != heigth; k++ )
{
if ( !isspace( text_image[ k ][ n ] ) )
{
for ( size_t i = 0; i != ins_count; i++ )
ep_scn->raw_data.insert( ep_scn->raw_data.end(), { 0xC4, 0xE2, 0x69, 0x04, 0x0D, 0xEE, 0xEE, 0xFF, 0xC0 } );
}
else
{
for ( size_t i = 0; i != ins_count; i++ )
ep_scn->raw_data.insert( ep_scn->raw_data.end(), { 0x90 } );
}
if ( k == ( heigth - 1 ) )
ep_scn->raw_data.insert( ep_scn->raw_data.end(), { 0x90, 0xC3 } );
else
ep_scn->raw_data.insert( ep_scn->raw_data.end(), { 0xEB, 0x00 } );
}
}
memcpy( ep_scn->raw_data.data() + table_begin, table.data(), table.size() * 4 );
Showing preview only (2,681K chars total). Download the full file or copy to clipboard to get everything.
gitextract__5f7yefv/ ├── .gitignore ├── LICENSE ├── README.md ├── apollo-crt/ │ ├── apollo-crt.cpp │ ├── apollo-crt.sln │ ├── apollo-crt.vcxproj │ └── apollo-crt.vcxproj.user ├── apollo-linker/ │ ├── linker.cpp │ ├── linker.sln │ ├── linker.vcxproj │ ├── linker.vcxproj.filters │ ├── object/ │ │ ├── code_gen.cpp │ │ ├── collection.cpp │ │ ├── collection.hpp │ │ ├── comdat.cpp │ │ ├── comdat.hpp │ │ ├── opt_ref.cpp │ │ ├── primitives.cpp │ │ ├── primitives.hpp │ │ └── reference_counting.hpp │ ├── transform/ │ │ ├── attribute_discovery.cpp │ │ ├── attribute_discovery.hpp │ │ ├── attribute_normalization.cpp │ │ ├── attribute_normalization.hpp │ │ ├── auto_mode_switch.cpp │ │ ├── auto_mode_switch.hpp │ │ ├── cleanup.cpp │ │ ├── cleanup.hpp │ │ ├── dyn_relocs.cpp │ │ ├── dyn_relocs.hpp │ │ ├── lazy_import.cpp │ │ ├── lazy_import.hpp │ │ ├── logo.cpp │ │ ├── logo.hpp │ │ ├── lower_xrefs.cpp │ │ ├── lower_xrefs.hpp │ │ ├── mixed_bool_arith.cpp │ │ ├── mixed_bool_arith.hpp │ │ ├── profiler.cpp │ │ ├── profiler.hpp │ │ ├── shadow_return.cpp │ │ ├── shadow_return.hpp │ │ ├── split_basic_blocks.cpp │ │ ├── split_basic_blocks.hpp │ │ ├── string_conversion.cpp │ │ ├── string_conversion.hpp │ │ ├── syscall_lifter.cpp │ │ ├── syscall_lifter.hpp │ │ ├── virtualization.cpp │ │ └── virtualization.hpp │ └── utility/ │ ├── argparse.hpp │ ├── liblto.hpp │ ├── llvm.hpp │ ├── pdb.hpp │ └── undname.hpp ├── apollo-toolset/ │ ├── Config.xml │ ├── Toolset.props │ ├── Toolset.targets │ └── install.bat ├── apollo-vm/ │ ├── apollo-vm.cpp │ ├── apollo-vm.sln │ ├── apollo-vm.vcxproj │ ├── apollo-vm.vcxproj.filters │ └── apollo-vm.vcxproj.user ├── flash/ │ ├── flash.sln │ ├── flash.vcxproj │ ├── flash.vcxproj.filters │ ├── includes/ │ │ └── flash/ │ │ ├── dumper.hpp │ │ ├── engine.hpp │ │ ├── format.hpp │ │ ├── func_builder.hpp │ │ ├── hex.hpp │ │ ├── image.hpp │ │ ├── rule.hpp │ │ ├── rule_filters.hpp │ │ ├── rule_instruction.hpp │ │ ├── rule_pattern.hpp │ │ ├── section.hpp │ │ ├── shellcode.hpp │ │ ├── simd.hpp │ │ └── vcpu.hpp │ ├── main.cpp │ └── src/ │ ├── dumper.cpp │ ├── func_builder.cpp │ ├── image.cpp │ ├── interface.cpp │ ├── rule_instruction.cpp │ ├── rule_pattern.cpp │ ├── section.cpp │ ├── serializer.cpp │ ├── shellcode.cpp │ └── vcpu.cpp ├── ida_symbols.py ├── pdblib/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── PdbLib.sln │ ├── PdbLib.vcxproj │ ├── PdbLib.vcxproj.filters │ ├── README.md │ └── includes/ │ └── pdblib/ │ ├── cvconsts.h │ ├── cvinfo.h │ ├── dbi.hpp │ ├── msf.hpp │ └── pdb.hpp ├── resources/ │ ├── sdk/ │ │ ├── acpi/ │ │ │ ├── api.hpp │ │ │ ├── cached_table_t.hpp │ │ │ ├── debugging_device_in_use_t.hpp │ │ │ ├── device_information_output_buffer_t.hpp │ │ │ ├── enum_child_t.hpp │ │ │ ├── enum_children_input_buffer_t.hpp │ │ │ ├── enum_children_output_buffer_t.hpp │ │ │ ├── eval_input_buffer_complex_v1_ex_t.hpp │ │ │ ├── eval_input_buffer_complex_v1_t.hpp │ │ │ ├── eval_input_buffer_complex_v2_ex_t.hpp │ │ │ ├── eval_input_buffer_complex_v2_t.hpp │ │ │ ├── eval_input_buffer_simple_integer_v1_ex_t.hpp │ │ │ ├── eval_input_buffer_simple_integer_v1_t.hpp │ │ │ ├── eval_input_buffer_simple_integer_v2_ex_t.hpp │ │ │ ├── eval_input_buffer_simple_integer_v2_t.hpp │ │ │ ├── eval_input_buffer_simple_string_v1_ex_t.hpp │ │ │ ├── eval_input_buffer_simple_string_v1_t.hpp │ │ │ ├── eval_input_buffer_simple_string_v2_ex_t.hpp │ │ │ ├── eval_input_buffer_simple_string_v2_t.hpp │ │ │ ├── eval_input_buffer_v1_ex_t.hpp │ │ │ ├── eval_input_buffer_v1_t.hpp │ │ │ ├── eval_input_buffer_v2_ex_t.hpp │ │ │ ├── eval_input_buffer_v2_t.hpp │ │ │ ├── eval_output_buffer_v1_t.hpp │ │ │ ├── eval_output_buffer_v2_t.hpp │ │ │ ├── get_device_specific_data_t.hpp │ │ │ ├── interface_standard2_t.hpp │ │ │ ├── interface_standard_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── cached_table_t.end.hpp │ │ │ │ ├── cached_table_t.start.hpp │ │ │ │ ├── debugging_device_in_use_t.end.hpp │ │ │ │ ├── debugging_device_in_use_t.start.hpp │ │ │ │ ├── device_information_output_buffer_t.end.hpp │ │ │ │ ├── device_information_output_buffer_t.start.hpp │ │ │ │ ├── enum_child_t.end.hpp │ │ │ │ ├── enum_child_t.start.hpp │ │ │ │ ├── enum_children_input_buffer_t.end.hpp │ │ │ │ ├── enum_children_input_buffer_t.start.hpp │ │ │ │ ├── enum_children_output_buffer_t.end.hpp │ │ │ │ ├── enum_children_output_buffer_t.start.hpp │ │ │ │ ├── eval_input_buffer_complex_v1_ex_t.end.hpp │ │ │ │ ├── eval_input_buffer_complex_v1_ex_t.start.hpp │ │ │ │ ├── eval_input_buffer_complex_v1_t.end.hpp │ │ │ │ ├── eval_input_buffer_complex_v1_t.start.hpp │ │ │ │ ├── eval_input_buffer_complex_v2_ex_t.end.hpp │ │ │ │ ├── eval_input_buffer_complex_v2_ex_t.start.hpp │ │ │ │ ├── eval_input_buffer_complex_v2_t.end.hpp │ │ │ │ ├── eval_input_buffer_complex_v2_t.start.hpp │ │ │ │ ├── eval_input_buffer_simple_integer_v1_ex_t.end.hpp │ │ │ │ ├── eval_input_buffer_simple_integer_v1_ex_t.start.hpp │ │ │ │ ├── eval_input_buffer_simple_integer_v1_t.end.hpp │ │ │ │ ├── eval_input_buffer_simple_integer_v1_t.start.hpp │ │ │ │ ├── eval_input_buffer_simple_integer_v2_ex_t.end.hpp │ │ │ │ ├── eval_input_buffer_simple_integer_v2_ex_t.start.hpp │ │ │ │ ├── eval_input_buffer_simple_integer_v2_t.end.hpp │ │ │ │ ├── eval_input_buffer_simple_integer_v2_t.start.hpp │ │ │ │ ├── eval_input_buffer_simple_string_v1_ex_t.end.hpp │ │ │ │ ├── eval_input_buffer_simple_string_v1_ex_t.start.hpp │ │ │ │ ├── eval_input_buffer_simple_string_v1_t.end.hpp │ │ │ │ ├── eval_input_buffer_simple_string_v1_t.start.hpp │ │ │ │ ├── eval_input_buffer_simple_string_v2_ex_t.end.hpp │ │ │ │ ├── eval_input_buffer_simple_string_v2_ex_t.start.hpp │ │ │ │ ├── eval_input_buffer_simple_string_v2_t.end.hpp │ │ │ │ ├── eval_input_buffer_simple_string_v2_t.start.hpp │ │ │ │ ├── eval_input_buffer_v1_ex_t.end.hpp │ │ │ │ ├── eval_input_buffer_v1_ex_t.start.hpp │ │ │ │ ├── eval_input_buffer_v1_t.end.hpp │ │ │ │ ├── eval_input_buffer_v1_t.start.hpp │ │ │ │ ├── eval_input_buffer_v2_ex_t.end.hpp │ │ │ │ ├── eval_input_buffer_v2_ex_t.start.hpp │ │ │ │ ├── eval_input_buffer_v2_t.end.hpp │ │ │ │ ├── eval_input_buffer_v2_t.start.hpp │ │ │ │ ├── eval_output_buffer_v1_t.end.hpp │ │ │ │ ├── eval_output_buffer_v1_t.start.hpp │ │ │ │ ├── eval_output_buffer_v2_t.end.hpp │ │ │ │ ├── eval_output_buffer_v2_t.start.hpp │ │ │ │ ├── get_device_specific_data_t.end.hpp │ │ │ │ ├── get_device_specific_data_t.start.hpp │ │ │ │ ├── interface_standard2_t.end.hpp │ │ │ │ ├── interface_standard2_t.start.hpp │ │ │ │ ├── interface_standard_t.end.hpp │ │ │ │ ├── interface_standard_t.start.hpp │ │ │ │ ├── manipulate_global_lock_buffer_t.end.hpp │ │ │ │ ├── manipulate_global_lock_buffer_t.start.hpp │ │ │ │ ├── method_argument_v1_t.end.hpp │ │ │ │ ├── method_argument_v1_t.start.hpp │ │ │ │ ├── method_argument_v2_t.end.hpp │ │ │ │ └── method_argument_v2_t.start.hpp │ │ │ ├── manipulate_global_lock_buffer_t.hpp │ │ │ ├── method_argument_v1_t.hpp │ │ │ └── method_argument_v2_t.hpp │ │ ├── ae/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── afd/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── ahc/ │ │ │ ├── api.hpp │ │ │ ├── info_class_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── main_statistics_t.end.hpp │ │ │ │ ├── main_statistics_t.start.hpp │ │ │ │ ├── service_clear_t.end.hpp │ │ │ │ ├── service_clear_t.start.hpp │ │ │ │ ├── service_data_t.end.hpp │ │ │ │ ├── service_data_t.start.hpp │ │ │ │ ├── service_datacache_t.end.hpp │ │ │ │ ├── service_datacache_t.start.hpp │ │ │ │ ├── service_dataquery_t.end.hpp │ │ │ │ ├── service_dataquery_t.start.hpp │ │ │ │ ├── service_hwid_query_t.end.hpp │ │ │ │ ├── service_hwid_query_t.start.hpp │ │ │ │ ├── service_init_process_data_t.end.hpp │ │ │ │ ├── service_init_process_data_t.start.hpp │ │ │ │ ├── service_lookup_cdb_t.end.hpp │ │ │ │ ├── service_lookup_cdb_t.start.hpp │ │ │ │ ├── service_lookup_t.end.hpp │ │ │ │ ├── service_lookup_t.start.hpp │ │ │ │ ├── service_remove_t.end.hpp │ │ │ │ ├── service_remove_t.start.hpp │ │ │ │ ├── service_update_t.end.hpp │ │ │ │ ├── service_update_t.start.hpp │ │ │ │ ├── statistics_t.end.hpp │ │ │ │ ├── statistics_t.start.hpp │ │ │ │ ├── store_statistics_t.end.hpp │ │ │ │ └── store_statistics_t.start.hpp │ │ │ ├── main_statistics_t.hpp │ │ │ ├── service_class_t.hpp │ │ │ ├── service_clear_t.hpp │ │ │ ├── service_data_t.hpp │ │ │ ├── service_datacache_t.hpp │ │ │ ├── service_dataquery_t.hpp │ │ │ ├── service_hwid_query_t.hpp │ │ │ ├── service_init_process_data_t.hpp │ │ │ ├── service_lookup_cdb_t.hpp │ │ │ ├── service_lookup_t.hpp │ │ │ ├── service_remove_t.hpp │ │ │ ├── service_update_t.hpp │ │ │ ├── statistics_t.hpp │ │ │ └── store_statistics_t.hpp │ │ ├── ahci/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── alpc/ │ │ │ ├── api.hpp │ │ │ ├── basic_information_t.hpp │ │ │ ├── communication_info_t.hpp │ │ │ ├── completion_list_header_t.hpp │ │ │ ├── completion_list_state_t.hpp │ │ │ ├── completion_list_t.hpp │ │ │ ├── completion_packet_lookaside_entry_t.hpp │ │ │ ├── completion_packet_lookaside_t.hpp │ │ │ ├── context_attr_t.hpp │ │ │ ├── data_view_attr_t.hpp │ │ │ ├── direct_attr_t.hpp │ │ │ ├── dispatch_context_t.hpp │ │ │ ├── handle_attr32_t.hpp │ │ │ ├── handle_attr_t.hpp │ │ │ ├── handle_entry_t.hpp │ │ │ ├── handle_table_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── basic_information_t.end.hpp │ │ │ │ ├── basic_information_t.start.hpp │ │ │ │ ├── communication_info_t.end.hpp │ │ │ │ ├── communication_info_t.start.hpp │ │ │ │ ├── completion_list_header_t.end.hpp │ │ │ │ ├── completion_list_header_t.start.hpp │ │ │ │ ├── completion_list_state_t.end.hpp │ │ │ │ ├── completion_list_state_t.start.hpp │ │ │ │ ├── completion_list_t.end.hpp │ │ │ │ ├── completion_list_t.start.hpp │ │ │ │ ├── completion_packet_lookaside_entry_t.end.hpp │ │ │ │ ├── completion_packet_lookaside_entry_t.start.hpp │ │ │ │ ├── completion_packet_lookaside_t.end.hpp │ │ │ │ ├── completion_packet_lookaside_t.start.hpp │ │ │ │ ├── context_attr_t.end.hpp │ │ │ │ ├── context_attr_t.start.hpp │ │ │ │ ├── data_view_attr_t.end.hpp │ │ │ │ ├── data_view_attr_t.start.hpp │ │ │ │ ├── direct_attr_t.end.hpp │ │ │ │ ├── direct_attr_t.start.hpp │ │ │ │ ├── dispatch_context_t.end.hpp │ │ │ │ ├── dispatch_context_t.start.hpp │ │ │ │ ├── handle_attr32_t.end.hpp │ │ │ │ ├── handle_attr32_t.start.hpp │ │ │ │ ├── handle_attr_t.end.hpp │ │ │ │ ├── handle_attr_t.start.hpp │ │ │ │ ├── handle_entry_t.end.hpp │ │ │ │ ├── handle_entry_t.start.hpp │ │ │ │ ├── handle_table_t.end.hpp │ │ │ │ ├── handle_table_t.start.hpp │ │ │ │ ├── message_attributes_t.end.hpp │ │ │ │ ├── message_attributes_t.start.hpp │ │ │ │ ├── message_handle_information_t.end.hpp │ │ │ │ ├── message_handle_information_t.start.hpp │ │ │ │ ├── port_associate_completion_port_t.end.hpp │ │ │ │ ├── port_associate_completion_port_t.start.hpp │ │ │ │ ├── port_attributes_t.end.hpp │ │ │ │ ├── port_attributes_t.start.hpp │ │ │ │ ├── port_callback_information_t.end.hpp │ │ │ │ ├── port_callback_information_t.start.hpp │ │ │ │ ├── port_completion_list_information_t.end.hpp │ │ │ │ ├── port_completion_list_information_t.start.hpp │ │ │ │ ├── port_message_zone_information_t.end.hpp │ │ │ │ ├── port_message_zone_information_t.start.hpp │ │ │ │ ├── port_t.end.hpp │ │ │ │ ├── port_t.start.hpp │ │ │ │ ├── process_context_t.end.hpp │ │ │ │ ├── process_context_t.start.hpp │ │ │ │ ├── security_attr_t.end.hpp │ │ │ │ ├── security_attr_t.start.hpp │ │ │ │ ├── server_information_t.end.hpp │ │ │ │ ├── server_information_t.start.hpp │ │ │ │ ├── server_session_information_t.end.hpp │ │ │ │ ├── server_session_information_t.start.hpp │ │ │ │ ├── token_attr_t.end.hpp │ │ │ │ ├── token_attr_t.start.hpp │ │ │ │ ├── work_on_behalf_attr_t.end.hpp │ │ │ │ ├── work_on_behalf_attr_t.start.hpp │ │ │ │ ├── work_on_behalf_ticket_t.end.hpp │ │ │ │ └── work_on_behalf_ticket_t.start.hpp │ │ │ ├── message_attributes_t.hpp │ │ │ ├── message_handle_information_t.hpp │ │ │ ├── message_information_class_t.hpp │ │ │ ├── port_associate_completion_port_t.hpp │ │ │ ├── port_attributes_t.hpp │ │ │ ├── port_callback_information_t.hpp │ │ │ ├── port_completion_list_information_t.hpp │ │ │ ├── port_information_class_t.hpp │ │ │ ├── port_message_zone_information_t.hpp │ │ │ ├── port_t.hpp │ │ │ ├── process_context_t.hpp │ │ │ ├── security_attr_t.hpp │ │ │ ├── server_information_t.hpp │ │ │ ├── server_session_information_t.hpp │ │ │ ├── token_attr_t.hpp │ │ │ ├── work_on_behalf_attr_t.hpp │ │ │ └── work_on_behalf_ticket_t.hpp │ │ ├── alpci/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── alpcp/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── apphelp/ │ │ │ ├── info_t.hpp │ │ │ └── magic/ │ │ │ ├── info_t.end.hpp │ │ │ └── info_t.start.hpp │ │ ├── arb/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── arbiter/ │ │ │ ├── action_t.hpp │ │ │ ├── add_reserved_parameters_t.hpp │ │ │ ├── allocation_state_t.hpp │ │ │ ├── alternative_t.hpp │ │ │ ├── boot_allocation_parameters_t.hpp │ │ │ ├── conflict_info_t.hpp │ │ │ ├── instance_t.hpp │ │ │ ├── interface_t.hpp │ │ │ ├── list_entry_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── add_reserved_parameters_t.end.hpp │ │ │ │ ├── add_reserved_parameters_t.start.hpp │ │ │ │ ├── allocation_state_t.end.hpp │ │ │ │ ├── allocation_state_t.start.hpp │ │ │ │ ├── alternative_t.end.hpp │ │ │ │ ├── alternative_t.start.hpp │ │ │ │ ├── boot_allocation_parameters_t.end.hpp │ │ │ │ ├── boot_allocation_parameters_t.start.hpp │ │ │ │ ├── conflict_info_t.end.hpp │ │ │ │ ├── conflict_info_t.start.hpp │ │ │ │ ├── instance_t.end.hpp │ │ │ │ ├── instance_t.start.hpp │ │ │ │ ├── interface_t.end.hpp │ │ │ │ ├── interface_t.start.hpp │ │ │ │ ├── list_entry_t.end.hpp │ │ │ │ ├── list_entry_t.start.hpp │ │ │ │ ├── ordering_list_t.end.hpp │ │ │ │ ├── ordering_list_t.start.hpp │ │ │ │ ├── ordering_t.end.hpp │ │ │ │ ├── ordering_t.start.hpp │ │ │ │ ├── parameters_t.end.hpp │ │ │ │ ├── parameters_t.start.hpp │ │ │ │ ├── query_allocated_resources_parameters_t.end.hpp │ │ │ │ ├── query_allocated_resources_parameters_t.start.hpp │ │ │ │ ├── query_arbitrate_parameters_t.end.hpp │ │ │ │ ├── query_arbitrate_parameters_t.start.hpp │ │ │ │ ├── query_conflict_parameters_t.end.hpp │ │ │ │ ├── query_conflict_parameters_t.start.hpp │ │ │ │ ├── retest_allocation_parameters_t.end.hpp │ │ │ │ ├── retest_allocation_parameters_t.start.hpp │ │ │ │ ├── test_allocation_parameters_t.end.hpp │ │ │ │ └── test_allocation_parameters_t.start.hpp │ │ │ ├── ordering_list_t.hpp │ │ │ ├── ordering_t.hpp │ │ │ ├── parameters_t.hpp │ │ │ ├── query_allocated_resources_parameters_t.hpp │ │ │ ├── query_arbitrate_parameters_t.hpp │ │ │ ├── query_conflict_parameters_t.hpp │ │ │ ├── request_source_t.hpp │ │ │ ├── result_t.hpp │ │ │ ├── retest_allocation_parameters_t.hpp │ │ │ └── test_allocation_parameters_t.hpp │ │ ├── arbp/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── asi/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── asl/ │ │ │ ├── api.hpp │ │ │ ├── attribute_index_t.hpp │ │ │ ├── attribute_t.hpp │ │ │ ├── attribute_type_t.hpp │ │ │ ├── critical_section_t.hpp │ │ │ ├── file_kind_detail_t.hpp │ │ │ ├── file_mapping_t.hpp │ │ │ ├── log_channel_t.hpp │ │ │ ├── log_global_logger_t.hpp │ │ │ ├── log_level_t.hpp │ │ │ ├── log_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── attribute_t.end.hpp │ │ │ │ ├── attribute_t.start.hpp │ │ │ │ ├── critical_section_t.end.hpp │ │ │ │ ├── critical_section_t.start.hpp │ │ │ │ ├── file_mapping_t.end.hpp │ │ │ │ ├── file_mapping_t.start.hpp │ │ │ │ ├── log_channel_t.end.hpp │ │ │ │ ├── log_channel_t.start.hpp │ │ │ │ ├── log_global_logger_t.end.hpp │ │ │ │ ├── log_global_logger_t.start.hpp │ │ │ │ ├── log_t.end.hpp │ │ │ │ ├── log_t.start.hpp │ │ │ │ ├── string_hash_element_t.end.hpp │ │ │ │ ├── string_hash_element_t.start.hpp │ │ │ │ ├── string_hash_t.end.hpp │ │ │ │ ├── string_hash_t.start.hpp │ │ │ │ ├── telemetry_t.end.hpp │ │ │ │ └── telemetry_t.start.hpp │ │ │ ├── string_hash_element_t.hpp │ │ │ ├── string_hash_t.hpp │ │ │ ├── telemetry_level_t.hpp │ │ │ └── telemetry_t.hpp │ │ ├── aslp/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── ata/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── atapi/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── authz/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── bapd/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── bapdp/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── bcd/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── bcp/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── bg/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── bgk/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── bgkp/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── bgp/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── bi/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── bip/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── boot/ │ │ │ ├── api.hpp │ │ │ ├── area_info_t.hpp │ │ │ ├── entropy_ldr_result_t.hpp │ │ │ ├── entropy_nt_result_t.hpp │ │ │ ├── entropy_source_id_t.hpp │ │ │ ├── entropy_source_ldr_result_t.hpp │ │ │ ├── entropy_source_nt_result_t.hpp │ │ │ ├── entropy_source_result_code_t.hpp │ │ │ ├── entry_list_t.hpp │ │ │ ├── entry_t.hpp │ │ │ ├── firmware_ramdisk_info_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── area_info_t.end.hpp │ │ │ │ ├── area_info_t.start.hpp │ │ │ │ ├── entropy_ldr_result_t.end.hpp │ │ │ │ ├── entropy_ldr_result_t.start.hpp │ │ │ │ ├── entropy_nt_result_t.end.hpp │ │ │ │ ├── entropy_nt_result_t.start.hpp │ │ │ │ ├── entropy_source_ldr_result_t.end.hpp │ │ │ │ ├── entropy_source_ldr_result_t.start.hpp │ │ │ │ ├── entropy_source_nt_result_t.end.hpp │ │ │ │ ├── entropy_source_nt_result_t.start.hpp │ │ │ │ ├── entry_list_t.end.hpp │ │ │ │ ├── entry_list_t.start.hpp │ │ │ │ ├── entry_t.end.hpp │ │ │ │ ├── entry_t.start.hpp │ │ │ │ ├── firmware_ramdisk_info_t.end.hpp │ │ │ │ ├── firmware_ramdisk_info_t.start.hpp │ │ │ │ ├── options_t.end.hpp │ │ │ │ ├── options_t.start.hpp │ │ │ │ ├── record_t.end.hpp │ │ │ │ └── record_t.start.hpp │ │ │ ├── options_t.hpp │ │ │ └── record_t.hpp │ │ ├── cc/ │ │ │ ├── api.hpp │ │ │ ├── async_read_context_t.hpp │ │ │ ├── error_callback_context_t.hpp │ │ │ ├── external_cache_info_t.hpp │ │ │ ├── file_sizes_t.hpp │ │ │ ├── flush_packet_t.hpp │ │ │ ├── lws_packet_t.hpp │ │ │ ├── lws_packet_type_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── async_read_context_t.end.hpp │ │ │ │ ├── async_read_context_t.start.hpp │ │ │ │ ├── error_callback_context_t.end.hpp │ │ │ │ ├── error_callback_context_t.start.hpp │ │ │ │ ├── external_cache_info_t.end.hpp │ │ │ │ ├── external_cache_info_t.start.hpp │ │ │ │ ├── file_sizes_t.end.hpp │ │ │ │ ├── file_sizes_t.start.hpp │ │ │ │ ├── flush_packet_t.end.hpp │ │ │ │ ├── flush_packet_t.start.hpp │ │ │ │ ├── lws_packet_t.end.hpp │ │ │ │ ├── lws_packet_t.start.hpp │ │ │ │ ├── numa_node_t.end.hpp │ │ │ │ ├── numa_node_t.start.hpp │ │ │ │ ├── partition_t.end.hpp │ │ │ │ ├── partition_t.start.hpp │ │ │ │ ├── volume_telemetry_t.end.hpp │ │ │ │ └── volume_telemetry_t.start.hpp │ │ │ ├── numa_node_t.hpp │ │ │ ├── numa_type_t.hpp │ │ │ ├── partition_t.hpp │ │ │ └── volume_telemetry_t.hpp │ │ ├── ci/ │ │ │ ├── api.hpp │ │ │ ├── flip_present_history_token/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── flip_present_history_token_flip_manager/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── flip_present_history_token_redirected_flip/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── log_mmcss_start_t.hpp │ │ │ ├── log_mmcss_stop_t.hpp │ │ │ ├── log_scheduler_event_t.hpp │ │ │ ├── log_scheduler_sleep_response_t.hpp │ │ │ ├── log_scheduler_sleep_t.hpp │ │ │ ├── log_scheduler_wakeup_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── log_mmcss_start_t.end.hpp │ │ │ │ ├── log_mmcss_start_t.start.hpp │ │ │ │ ├── log_mmcss_stop_t.end.hpp │ │ │ │ ├── log_mmcss_stop_t.start.hpp │ │ │ │ ├── log_scheduler_event_t.end.hpp │ │ │ │ ├── log_scheduler_event_t.start.hpp │ │ │ │ ├── log_scheduler_sleep_response_t.end.hpp │ │ │ │ ├── log_scheduler_sleep_response_t.start.hpp │ │ │ │ ├── log_scheduler_sleep_t.end.hpp │ │ │ │ ├── log_scheduler_sleep_t.start.hpp │ │ │ │ ├── log_scheduler_wakeup_t.end.hpp │ │ │ │ └── log_scheduler_wakeup_t.start.hpp │ │ │ ├── ngen_paths_t.hpp │ │ │ ├── windows_lockdown_mode_t.hpp │ │ │ └── windows_lockdown_restriction_t.hpp │ │ ├── cip/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── civ/ │ │ │ ├── channel/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── deserializer/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── generic_serializer/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── mouse_serializer/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── pn_p_create_serializer/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── serializer/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ └── touch_serializer/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── clfs/ │ │ │ ├── api.hpp │ │ │ ├── context_mode_t.hpp │ │ │ ├── iostats_class_t.hpp │ │ │ ├── log_archive_mode_t.hpp │ │ │ ├── log_name_information_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── log_name_information_t.end.hpp │ │ │ │ ├── log_name_information_t.start.hpp │ │ │ │ ├── mgmt_client_registration_t.end.hpp │ │ │ │ ├── mgmt_client_registration_t.start.hpp │ │ │ │ ├── mgmt_notification_t.end.hpp │ │ │ │ ├── mgmt_notification_t.start.hpp │ │ │ │ ├── mgmt_policy_t.end.hpp │ │ │ │ ├── mgmt_policy_t.start.hpp │ │ │ │ ├── node_id_t.end.hpp │ │ │ │ ├── node_id_t.start.hpp │ │ │ │ ├── physical_lsn_information_t.end.hpp │ │ │ │ ├── physical_lsn_information_t.start.hpp │ │ │ │ ├── stream_id_information_t.end.hpp │ │ │ │ └── stream_id_information_t.start.hpp │ │ │ ├── mgmt_client_registration_t.hpp │ │ │ ├── mgmt_notification_t.hpp │ │ │ ├── mgmt_notification_type_t.hpp │ │ │ ├── mgmt_policy_t.hpp │ │ │ ├── mgmt_policy_type_t.hpp │ │ │ ├── node_id_t.hpp │ │ │ ├── physical_lsn_information_t.hpp │ │ │ └── stream_id_information_t.hpp │ │ ├── clip/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── cls/ │ │ │ ├── archive_descriptor_t.hpp │ │ │ ├── container_information_t.hpp │ │ │ ├── context_mode_t.hpp │ │ │ ├── information_t.hpp │ │ │ ├── io_statistics_header_t.hpp │ │ │ ├── io_statistics_t.hpp │ │ │ ├── iostats_class_t.hpp │ │ │ ├── log_information_class_t.hpp │ │ │ ├── lsn_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── archive_descriptor_t.end.hpp │ │ │ │ ├── archive_descriptor_t.start.hpp │ │ │ │ ├── container_information_t.end.hpp │ │ │ │ ├── container_information_t.start.hpp │ │ │ │ ├── information_t.end.hpp │ │ │ │ ├── information_t.start.hpp │ │ │ │ ├── io_statistics_header_t.end.hpp │ │ │ │ ├── io_statistics_header_t.start.hpp │ │ │ │ ├── io_statistics_t.end.hpp │ │ │ │ ├── io_statistics_t.start.hpp │ │ │ │ ├── lsn_t.end.hpp │ │ │ │ ├── lsn_t.start.hpp │ │ │ │ ├── scan_context_t.end.hpp │ │ │ │ ├── scan_context_t.start.hpp │ │ │ │ ├── write_entry_t.end.hpp │ │ │ │ └── write_entry_t.start.hpp │ │ │ ├── scan_context_t.hpp │ │ │ └── write_entry_t.hpp │ │ ├── cm/ │ │ │ ├── api.hpp │ │ │ ├── big_data_t.hpp │ │ │ ├── cached_value_index_t.hpp │ │ │ ├── cell_remap_block_t.hpp │ │ │ ├── component_hash_t.hpp │ │ │ ├── component_information_t.hpp │ │ │ ├── dirty_vector_log_entry_t.hpp │ │ │ ├── dirty_vector_log_t.hpp │ │ │ ├── dirty_vector_operation_t.hpp │ │ │ ├── disk_geometry_device_data_t.hpp │ │ │ ├── eisa_function_information_t.hpp │ │ │ ├── eisa_slot_information_t.hpp │ │ │ ├── error_control_type_t.hpp │ │ │ ├── extended_parameter_t.hpp │ │ │ ├── extended_parameter_type_t.hpp │ │ │ ├── fast_leaf_hint_t.hpp │ │ │ ├── floppy_device_data_t.hpp │ │ │ ├── full_resource_descriptor_t.hpp │ │ │ ├── hive_cache_oplock_event_type_t.hpp │ │ │ ├── hive_cache_oplock_file_type_t.hpp │ │ │ ├── index_hint_block_t.hpp │ │ │ ├── index_t.hpp │ │ │ ├── int13_drive_parameter_t.hpp │ │ │ ├── intent_lock_t.hpp │ │ │ ├── kcb_layer_info_t.hpp │ │ │ ├── kcb_uow_t.hpp │ │ │ ├── key_body_t.hpp │ │ │ ├── key_control_block_t.hpp │ │ │ ├── key_hash_t.hpp │ │ │ ├── key_hash_table_entry_t.hpp │ │ │ ├── key_index_t.hpp │ │ │ ├── key_node_t.hpp │ │ │ ├── key_reference_t.hpp │ │ │ ├── key_security_cache_entry_t.hpp │ │ │ ├── key_security_cache_t.hpp │ │ │ ├── key_security_t.hpp │ │ │ ├── key_value_t.hpp │ │ │ ├── keyboard_device_data_t.hpp │ │ │ ├── load_failure_type_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── big_data_t.end.hpp │ │ │ │ ├── big_data_t.start.hpp │ │ │ │ ├── cached_value_index_t.end.hpp │ │ │ │ ├── cached_value_index_t.start.hpp │ │ │ │ ├── cell_remap_block_t.end.hpp │ │ │ │ ├── cell_remap_block_t.start.hpp │ │ │ │ ├── component_hash_t.end.hpp │ │ │ │ ├── component_hash_t.start.hpp │ │ │ │ ├── component_information_t.end.hpp │ │ │ │ ├── component_information_t.start.hpp │ │ │ │ ├── dirty_vector_log_entry_t.end.hpp │ │ │ │ ├── dirty_vector_log_entry_t.start.hpp │ │ │ │ ├── dirty_vector_log_t.end.hpp │ │ │ │ ├── dirty_vector_log_t.start.hpp │ │ │ │ ├── disk_geometry_device_data_t.end.hpp │ │ │ │ ├── disk_geometry_device_data_t.start.hpp │ │ │ │ ├── eisa_function_information_t.end.hpp │ │ │ │ ├── eisa_function_information_t.start.hpp │ │ │ │ ├── eisa_slot_information_t.end.hpp │ │ │ │ ├── eisa_slot_information_t.start.hpp │ │ │ │ ├── extended_parameter_t.end.hpp │ │ │ │ ├── extended_parameter_t.start.hpp │ │ │ │ ├── fast_leaf_hint_t.end.hpp │ │ │ │ ├── fast_leaf_hint_t.start.hpp │ │ │ │ ├── floppy_device_data_t.end.hpp │ │ │ │ ├── floppy_device_data_t.start.hpp │ │ │ │ ├── full_resource_descriptor_t.end.hpp │ │ │ │ ├── full_resource_descriptor_t.start.hpp │ │ │ │ ├── index_hint_block_t.end.hpp │ │ │ │ ├── index_hint_block_t.start.hpp │ │ │ │ ├── index_t.end.hpp │ │ │ │ ├── index_t.start.hpp │ │ │ │ ├── int13_drive_parameter_t.end.hpp │ │ │ │ ├── int13_drive_parameter_t.start.hpp │ │ │ │ ├── intent_lock_t.end.hpp │ │ │ │ ├── intent_lock_t.start.hpp │ │ │ │ ├── kcb_layer_info_t.end.hpp │ │ │ │ ├── kcb_layer_info_t.start.hpp │ │ │ │ ├── kcb_uow_t.end.hpp │ │ │ │ ├── kcb_uow_t.start.hpp │ │ │ │ ├── key_body_t.end.hpp │ │ │ │ ├── key_body_t.start.hpp │ │ │ │ ├── key_control_block_t.end.hpp │ │ │ │ ├── key_control_block_t.start.hpp │ │ │ │ ├── key_hash_t.end.hpp │ │ │ │ ├── key_hash_t.start.hpp │ │ │ │ ├── key_hash_table_entry_t.end.hpp │ │ │ │ ├── key_hash_table_entry_t.start.hpp │ │ │ │ ├── key_index_t.end.hpp │ │ │ │ ├── key_index_t.start.hpp │ │ │ │ ├── key_node_t.end.hpp │ │ │ │ ├── key_node_t.start.hpp │ │ │ │ ├── key_reference_t.end.hpp │ │ │ │ ├── key_reference_t.start.hpp │ │ │ │ ├── key_security_cache_entry_t.end.hpp │ │ │ │ ├── key_security_cache_entry_t.start.hpp │ │ │ │ ├── key_security_cache_t.end.hpp │ │ │ │ ├── key_security_cache_t.start.hpp │ │ │ │ ├── key_security_t.end.hpp │ │ │ │ ├── key_security_t.start.hpp │ │ │ │ ├── key_value_t.end.hpp │ │ │ │ ├── key_value_t.start.hpp │ │ │ │ ├── keyboard_device_data_t.end.hpp │ │ │ │ ├── keyboard_device_data_t.start.hpp │ │ │ │ ├── mca_pos_data_t.end.hpp │ │ │ │ ├── mca_pos_data_t.start.hpp │ │ │ │ ├── monitor_device_data_t.end.hpp │ │ │ │ ├── monitor_device_data_t.start.hpp │ │ │ │ ├── name_control_block_t.end.hpp │ │ │ │ ├── name_control_block_t.start.hpp │ │ │ │ ├── name_hash_t.end.hpp │ │ │ │ ├── name_hash_t.start.hpp │ │ │ │ ├── notify_block_t.end.hpp │ │ │ │ ├── notify_block_t.start.hpp │ │ │ │ ├── parse_debug_info_t.end.hpp │ │ │ │ ├── parse_debug_info_t.start.hpp │ │ │ │ ├── partial_resource_descriptor_t.end.hpp │ │ │ │ ├── partial_resource_descriptor_t.start.hpp │ │ │ │ ├── partial_resource_list_t.end.hpp │ │ │ │ ├── partial_resource_list_t.start.hpp │ │ │ │ ├── path_hash_t.end.hpp │ │ │ │ ├── path_hash_t.start.hpp │ │ │ │ ├── pccard_device_data_t.end.hpp │ │ │ │ ├── pccard_device_data_t.start.hpp │ │ │ │ ├── perf_counters_t.end.hpp │ │ │ │ ├── perf_counters_t.start.hpp │ │ │ │ ├── pnp_bios_device_node_t.end.hpp │ │ │ │ ├── pnp_bios_device_node_t.start.hpp │ │ │ │ ├── pnp_bios_installation_check_t.end.hpp │ │ │ │ ├── pnp_bios_installation_check_t.start.hpp │ │ │ │ ├── power_data_s_t.end.hpp │ │ │ │ ├── power_data_s_t.start.hpp │ │ │ │ ├── resource_list_t.end.hpp │ │ │ │ ├── resource_list_t.start.hpp │ │ │ │ ├── rm_t.end.hpp │ │ │ │ ├── rm_t.start.hpp │ │ │ │ ├── rom_block_t.end.hpp │ │ │ │ ├── rom_block_t.start.hpp │ │ │ │ ├── scsi_device_data_t.end.hpp │ │ │ │ ├── scsi_device_data_t.start.hpp │ │ │ │ ├── serial_device_data_t.end.hpp │ │ │ │ ├── serial_device_data_t.start.hpp │ │ │ │ ├── sonic_device_data_t.end.hpp │ │ │ │ ├── sonic_device_data_t.start.hpp │ │ │ │ ├── trans_ptr_t.end.hpp │ │ │ │ ├── trans_ptr_t.start.hpp │ │ │ │ ├── trans_t.end.hpp │ │ │ │ ├── trans_t.start.hpp │ │ │ │ ├── uow_key_state_modification_t.end.hpp │ │ │ │ ├── uow_key_state_modification_t.start.hpp │ │ │ │ ├── uow_set_sd_data_t.end.hpp │ │ │ │ ├── uow_set_sd_data_t.start.hpp │ │ │ │ ├── uow_set_value_key_data_t.end.hpp │ │ │ │ ├── uow_set_value_key_data_t.start.hpp │ │ │ │ ├── uow_set_value_list_data_t.end.hpp │ │ │ │ ├── uow_set_value_list_data_t.start.hpp │ │ │ │ ├── video_device_data_t.end.hpp │ │ │ │ ├── video_device_data_t.start.hpp │ │ │ │ ├── workitem_t.end.hpp │ │ │ │ └── workitem_t.start.hpp │ │ │ ├── mca_pos_data_t.hpp │ │ │ ├── monitor_device_data_t.hpp │ │ │ ├── name_control_block_t.hpp │ │ │ ├── name_hash_t.hpp │ │ │ ├── notify_block_t.hpp │ │ │ ├── parse_debug_info_t.hpp │ │ │ ├── partial_resource_descriptor_t.hpp │ │ │ ├── partial_resource_list_t.hpp │ │ │ ├── path_hash_t.hpp │ │ │ ├── pccard_device_data_t.hpp │ │ │ ├── perf_counters_t.hpp │ │ │ ├── pnp_bios_device_node_t.hpp │ │ │ ├── pnp_bios_installation_check_t.hpp │ │ │ ├── power_data_s_t.hpp │ │ │ ├── resource_list_t.hpp │ │ │ ├── rm_t.hpp │ │ │ ├── rom_block_t.hpp │ │ │ ├── scsi_device_data_t.hpp │ │ │ ├── serial_device_data_t.hpp │ │ │ ├── service_load_type_t.hpp │ │ │ ├── service_node_type_t.hpp │ │ │ ├── share_disposition_t.hpp │ │ │ ├── sonic_device_data_t.hpp │ │ │ ├── trans_ptr_t.hpp │ │ │ ├── trans_t.hpp │ │ │ ├── uow_key_state_modification_t.hpp │ │ │ ├── uow_set_sd_data_t.hpp │ │ │ ├── uow_set_value_key_data_t.hpp │ │ │ ├── uow_set_value_list_data_t.hpp │ │ │ ├── video_device_data_t.hpp │ │ │ └── workitem_t.hpp │ │ ├── cmp/ │ │ │ ├── api.hpp │ │ │ ├── copy_type_t.hpp │ │ │ ├── discard_and_replace_kcb_context_t.hpp │ │ │ ├── failure_injection_point_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── discard_and_replace_kcb_context_t.end.hpp │ │ │ │ ├── discard_and_replace_kcb_context_t.start.hpp │ │ │ │ ├── offset_array_t.end.hpp │ │ │ │ ├── offset_array_t.start.hpp │ │ │ │ ├── volume_context_t.end.hpp │ │ │ │ ├── volume_context_t.start.hpp │ │ │ │ ├── volume_manager_t.end.hpp │ │ │ │ └── volume_manager_t.start.hpp │ │ │ ├── offset_array_t.hpp │ │ │ ├── volume_context_t.hpp │ │ │ └── volume_manager_t.hpp │ │ ├── csr/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── csrp/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── d3d/ │ │ │ └── ddi/ │ │ │ ├── allocationinfo2_t.hpp │ │ │ ├── allocationinfo_t.hpp │ │ │ ├── allocationlist_t.hpp │ │ │ ├── color_space_type_t.hpp │ │ │ ├── createcontextflags_t.hpp │ │ │ ├── createhwcontextflags_t.hpp │ │ │ ├── createhwqueueflags_t.hpp │ │ │ ├── destroypagingqueue_t.hpp │ │ │ ├── driverescape_translateallocationehandle_t.hpp │ │ │ ├── driverescape_translateresourcehandle_t.hpp │ │ │ ├── driverescapetype_t.hpp │ │ │ ├── dxgi_rgb_t.hpp │ │ │ ├── escapeflags_t.hpp │ │ │ ├── evict_flags_t.hpp │ │ │ ├── flipinterval_type_t.hpp │ │ │ ├── gamma_ramp_dxgi_1_t.hpp │ │ │ ├── gamma_ramp_rgb256x3x16_t.hpp │ │ │ ├── gammaramp_type_t.hpp │ │ │ ├── getresourcepresentprivatedriverdata_t.hpp │ │ │ ├── hdr_metadata_hdr10_t.hpp │ │ │ ├── hdr_metadata_hdr10plus_t.hpp │ │ │ ├── hdr_metadata_type_t.hpp │ │ │ ├── kerneloverlayinfo_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── allocationinfo2_t.end.hpp │ │ │ │ ├── allocationinfo2_t.start.hpp │ │ │ │ ├── allocationinfo_t.end.hpp │ │ │ │ ├── allocationinfo_t.start.hpp │ │ │ │ ├── allocationlist_t.end.hpp │ │ │ │ ├── allocationlist_t.start.hpp │ │ │ │ ├── createcontextflags_t.end.hpp │ │ │ │ ├── createcontextflags_t.start.hpp │ │ │ │ ├── createhwcontextflags_t.end.hpp │ │ │ │ ├── createhwcontextflags_t.start.hpp │ │ │ │ ├── createhwqueueflags_t.end.hpp │ │ │ │ ├── createhwqueueflags_t.start.hpp │ │ │ │ ├── destroypagingqueue_t.end.hpp │ │ │ │ ├── destroypagingqueue_t.start.hpp │ │ │ │ ├── driverescape_translateallocationehandle_t.end.hpp │ │ │ │ ├── driverescape_translateallocationehandle_t.start.hpp │ │ │ │ ├── driverescape_translateresourcehandle_t.end.hpp │ │ │ │ ├── driverescape_translateresourcehandle_t.start.hpp │ │ │ │ ├── dxgi_rgb_t.end.hpp │ │ │ │ ├── dxgi_rgb_t.start.hpp │ │ │ │ ├── escapeflags_t.end.hpp │ │ │ │ ├── escapeflags_t.start.hpp │ │ │ │ ├── evict_flags_t.end.hpp │ │ │ │ ├── evict_flags_t.start.hpp │ │ │ │ ├── gamma_ramp_dxgi_1_t.end.hpp │ │ │ │ ├── gamma_ramp_dxgi_1_t.start.hpp │ │ │ │ ├── gamma_ramp_rgb256x3x16_t.end.hpp │ │ │ │ ├── gamma_ramp_rgb256x3x16_t.start.hpp │ │ │ │ ├── getresourcepresentprivatedriverdata_t.end.hpp │ │ │ │ ├── getresourcepresentprivatedriverdata_t.start.hpp │ │ │ │ ├── hdr_metadata_hdr10_t.end.hpp │ │ │ │ ├── hdr_metadata_hdr10_t.start.hpp │ │ │ │ ├── hdr_metadata_hdr10plus_t.end.hpp │ │ │ │ ├── hdr_metadata_hdr10plus_t.start.hpp │ │ │ │ ├── kerneloverlayinfo_t.end.hpp │ │ │ │ ├── kerneloverlayinfo_t.start.hpp │ │ │ │ ├── makeresident_flags_t.end.hpp │ │ │ │ ├── makeresident_flags_t.start.hpp │ │ │ │ ├── makeresident_t.end.hpp │ │ │ │ ├── makeresident_t.start.hpp │ │ │ │ ├── mapgpuvirtualaddress_t.end.hpp │ │ │ │ ├── mapgpuvirtualaddress_t.start.hpp │ │ │ │ ├── multisamplingmethod_t.end.hpp │ │ │ │ ├── multisamplingmethod_t.start.hpp │ │ │ │ ├── offer_flags_t.end.hpp │ │ │ │ ├── offer_flags_t.start.hpp │ │ │ │ ├── openallocationinfo2_t.end.hpp │ │ │ │ ├── openallocationinfo2_t.start.hpp │ │ │ │ ├── openallocationinfo_t.end.hpp │ │ │ │ ├── openallocationinfo_t.start.hpp │ │ │ │ ├── patchlocationlist_t.end.hpp │ │ │ │ ├── patchlocationlist_t.start.hpp │ │ │ │ ├── queryregistry_flags_t.end.hpp │ │ │ │ ├── queryregistry_flags_t.start.hpp │ │ │ │ ├── queryregistry_info_t.end.hpp │ │ │ │ ├── queryregistry_info_t.start.hpp │ │ │ │ ├── rational_t.end.hpp │ │ │ │ ├── rational_t.start.hpp │ │ │ │ ├── reservegpuvirtualaddress_t.end.hpp │ │ │ │ ├── reservegpuvirtualaddress_t.start.hpp │ │ │ │ ├── resourceflags2_t.end.hpp │ │ │ │ ├── resourceflags2_t.start.hpp │ │ │ │ ├── resourceflags_t.end.hpp │ │ │ │ ├── resourceflags_t.start.hpp │ │ │ │ ├── segmentpreference_t.end.hpp │ │ │ │ ├── segmentpreference_t.start.hpp │ │ │ │ ├── surfaceinfo_t.end.hpp │ │ │ │ ├── surfaceinfo_t.start.hpp │ │ │ │ ├── synchronizationobject_flags_t.end.hpp │ │ │ │ ├── synchronizationobject_flags_t.start.hpp │ │ │ │ ├── synchronizationobjectinfo2_t.end.hpp │ │ │ │ ├── synchronizationobjectinfo2_t.start.hpp │ │ │ │ ├── synchronizationobjectinfo_t.end.hpp │ │ │ │ ├── synchronizationobjectinfo_t.start.hpp │ │ │ │ ├── trimresidencyset_flags_t.end.hpp │ │ │ │ ├── trimresidencyset_flags_t.start.hpp │ │ │ │ ├── updateallocproperty_flags_t.end.hpp │ │ │ │ ├── updateallocproperty_flags_t.start.hpp │ │ │ │ ├── updateallocproperty_t.end.hpp │ │ │ │ ├── updateallocproperty_t.start.hpp │ │ │ │ ├── updategpuvirtualaddress_operation_t.end.hpp │ │ │ │ ├── updategpuvirtualaddress_operation_t.start.hpp │ │ │ │ ├── waitforsynchronizationobjectfromcpu_flags_t.end.hpp │ │ │ │ └── waitforsynchronizationobjectfromcpu_flags_t.start.hpp │ │ │ ├── makeresident_flags_t.hpp │ │ │ ├── makeresident_t.hpp │ │ │ ├── mapgpuvirtualaddress_t.hpp │ │ │ ├── multisamplingmethod_t.hpp │ │ │ ├── offer_flags_t.hpp │ │ │ ├── offer_priority_t.hpp │ │ │ ├── openallocationinfo2_t.hpp │ │ │ ├── openallocationinfo_t.hpp │ │ │ ├── output_wire_color_space_type_t.hpp │ │ │ ├── pagingqueue_priority_t.hpp │ │ │ ├── patchlocationlist_t.hpp │ │ │ ├── pool_t.hpp │ │ │ ├── queryregistry_flags_t.hpp │ │ │ ├── queryregistry_info_t.hpp │ │ │ ├── queryregistry_status_t.hpp │ │ │ ├── queryregistry_type_t.hpp │ │ │ ├── rational_t.hpp │ │ │ ├── reclaim_result_t.hpp │ │ │ ├── reservegpuvirtualaddress_t.hpp │ │ │ ├── resourceflags2_t.hpp │ │ │ ├── resourceflags_t.hpp │ │ │ ├── rotation_t.hpp │ │ │ ├── scanlineordering_t.hpp │ │ │ ├── segmentpreference_t.hpp │ │ │ ├── surfaceinfo_t.hpp │ │ │ ├── synchronizationobject_flags_t.hpp │ │ │ ├── synchronizationobject_type_t.hpp │ │ │ ├── synchronizationobjectinfo2_t.hpp │ │ │ ├── synchronizationobjectinfo_t.hpp │ │ │ ├── trimresidencyset_flags_t.hpp │ │ │ ├── updateallocproperty_flags_t.hpp │ │ │ ├── updateallocproperty_t.hpp │ │ │ ├── updategpuvirtualaddress_operation_t.hpp │ │ │ ├── updategpuvirtualaddress_operation_type_t.hpp │ │ │ ├── video_signal_scanline_ordering_t.hpp │ │ │ └── waitforsynchronizationobjectfromcpu_flags_t.hpp │ │ ├── d3dk/ │ │ │ ├── mdt/ │ │ │ │ ├── _2dregion_t.hpp │ │ │ │ ├── _3x4_colorspace_transform_t.hpp │ │ │ │ ├── api.hpp │ │ │ │ ├── color_basis_t.hpp │ │ │ │ ├── color_coeff_dynamic_ranges_t.hpp │ │ │ │ ├── colorspace_transform_matrix_v2_t.hpp │ │ │ │ ├── colorspace_transform_stage_control_t.hpp │ │ │ │ ├── compute_preemption_granularity_t.hpp │ │ │ │ ├── displaymode_flags_t.hpp │ │ │ │ ├── enumcofuncmodality_pivot_type_t.hpp │ │ │ │ ├── frequency_range_t.hpp │ │ │ │ ├── gamma_ramp_t.hpp │ │ │ │ ├── gdisurfacedata_t.hpp │ │ │ │ ├── gdisurfaceflags_t.hpp │ │ │ │ ├── gdisurfacetype_t.hpp │ │ │ │ ├── graphics_preemption_granularity_t.hpp │ │ │ │ ├── graphics_rendering_format_t.hpp │ │ │ │ ├── gtfcompliance_t.hpp │ │ │ │ ├── hmonitordescriptorset_t.hpp │ │ │ │ ├── hmonitorfrequencyrangeset_t.hpp │ │ │ │ ├── hmonitorsourcemodeset_t.hpp │ │ │ │ ├── hvideopresentsourceset_t.hpp │ │ │ │ ├── hvideopresenttargetset_t.hpp │ │ │ │ ├── hvidpn_t.hpp │ │ │ │ ├── hvidpnsourcemodeset_t.hpp │ │ │ │ ├── hvidpntargetmodeset_t.hpp │ │ │ │ ├── hvidpntopology_t.hpp │ │ │ │ ├── magic/ │ │ │ │ │ ├── _2dregion_t.end.hpp │ │ │ │ │ ├── _2dregion_t.start.hpp │ │ │ │ │ ├── _3x4_colorspace_transform_t.end.hpp │ │ │ │ │ ├── _3x4_colorspace_transform_t.start.hpp │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ ├── api.start.hpp │ │ │ │ │ ├── color_coeff_dynamic_ranges_t.end.hpp │ │ │ │ │ ├── color_coeff_dynamic_ranges_t.start.hpp │ │ │ │ │ ├── colorspace_transform_matrix_v2_t.end.hpp │ │ │ │ │ ├── colorspace_transform_matrix_v2_t.start.hpp │ │ │ │ │ ├── displaymode_flags_t.end.hpp │ │ │ │ │ ├── displaymode_flags_t.start.hpp │ │ │ │ │ ├── frequency_range_t.end.hpp │ │ │ │ │ ├── frequency_range_t.start.hpp │ │ │ │ │ ├── gamma_ramp_t.end.hpp │ │ │ │ │ ├── gamma_ramp_t.start.hpp │ │ │ │ │ ├── gdisurfacedata_t.end.hpp │ │ │ │ │ ├── gdisurfacedata_t.start.hpp │ │ │ │ │ ├── gdisurfaceflags_t.end.hpp │ │ │ │ │ ├── gdisurfaceflags_t.start.hpp │ │ │ │ │ ├── graphics_rendering_format_t.end.hpp │ │ │ │ │ ├── graphics_rendering_format_t.start.hpp │ │ │ │ │ ├── monitor_descriptor_t.end.hpp │ │ │ │ │ ├── monitor_descriptor_t.start.hpp │ │ │ │ │ ├── monitor_frequency_range_t.end.hpp │ │ │ │ │ ├── monitor_frequency_range_t.start.hpp │ │ │ │ │ ├── monitor_source_mode_t.end.hpp │ │ │ │ │ ├── monitor_source_mode_t.start.hpp │ │ │ │ │ ├── palettedata_t.end.hpp │ │ │ │ │ ├── palettedata_t.start.hpp │ │ │ │ │ ├── preemption_caps_t.end.hpp │ │ │ │ │ ├── preemption_caps_t.start.hpp │ │ │ │ │ ├── shadowsurfacedata_t.end.hpp │ │ │ │ │ ├── shadowsurfacedata_t.start.hpp │ │ │ │ │ ├── sharedprimarysurfacedata_t.end.hpp │ │ │ │ │ ├── sharedprimarysurfacedata_t.start.hpp │ │ │ │ │ ├── stagingsurfacedata_t.end.hpp │ │ │ │ │ ├── stagingsurfacedata_t.start.hpp │ │ │ │ │ ├── video_present_source_t.end.hpp │ │ │ │ │ ├── video_present_source_t.start.hpp │ │ │ │ │ ├── video_present_target_t.end.hpp │ │ │ │ │ ├── video_present_target_t.start.hpp │ │ │ │ │ ├── video_signal_info_t.end.hpp │ │ │ │ │ ├── video_signal_info_t.start.hpp │ │ │ │ │ ├── vidpn_hw_capability_t.end.hpp │ │ │ │ │ ├── vidpn_hw_capability_t.start.hpp │ │ │ │ │ ├── vidpn_present_path_copyprotection_support_t.end.hpp │ │ │ │ │ ├── vidpn_present_path_copyprotection_support_t.start.hpp │ │ │ │ │ ├── vidpn_present_path_copyprotection_t.end.hpp │ │ │ │ │ ├── vidpn_present_path_copyprotection_t.start.hpp │ │ │ │ │ ├── vidpn_present_path_rotation_support_t.end.hpp │ │ │ │ │ ├── vidpn_present_path_rotation_support_t.start.hpp │ │ │ │ │ ├── vidpn_present_path_scaling_support_t.end.hpp │ │ │ │ │ ├── vidpn_present_path_scaling_support_t.start.hpp │ │ │ │ │ ├── vidpn_present_path_t.end.hpp │ │ │ │ │ ├── vidpn_present_path_t.start.hpp │ │ │ │ │ ├── vidpn_present_path_transformation_t.end.hpp │ │ │ │ │ ├── vidpn_present_path_transformation_t.start.hpp │ │ │ │ │ ├── vidpn_source_mode_t.end.hpp │ │ │ │ │ ├── vidpn_source_mode_t.start.hpp │ │ │ │ │ ├── vidpn_target_mode_t.end.hpp │ │ │ │ │ ├── vidpn_target_mode_t.start.hpp │ │ │ │ │ ├── virtualgpusurfacedata_t.end.hpp │ │ │ │ │ ├── virtualgpusurfacedata_t.start.hpp │ │ │ │ │ ├── wire_format_and_preference_t.end.hpp │ │ │ │ │ └── wire_format_and_preference_t.start.hpp │ │ │ │ ├── mode_preference_t.hpp │ │ │ │ ├── mode_pruning_reason_t.hpp │ │ │ │ ├── monitor_capabilities_origin_t.hpp │ │ │ │ ├── monitor_connectivity_checks_t.hpp │ │ │ │ ├── monitor_descriptor_t.hpp │ │ │ │ ├── monitor_descriptor_type_t.hpp │ │ │ │ ├── monitor_frequency_range_constraint_t.hpp │ │ │ │ ├── monitor_frequency_range_t.hpp │ │ │ │ ├── monitor_orientation_awareness_t.hpp │ │ │ │ ├── monitor_orientation_t.hpp │ │ │ │ ├── monitor_source_mode_t.hpp │ │ │ │ ├── monitor_timing_type_t.hpp │ │ │ │ ├── palettedata_t.hpp │ │ │ │ ├── pixel_value_access_mode_t.hpp │ │ │ │ ├── preemption_caps_t.hpp │ │ │ │ ├── shadowsurfacedata_t.hpp │ │ │ │ ├── sharedprimarysurfacedata_t.hpp │ │ │ │ ├── stagingsurfacedata_t.hpp │ │ │ │ ├── standardallocation_type_t.hpp │ │ │ │ ├── text_rendering_format_t.hpp │ │ │ │ ├── video_output_technology_t.hpp │ │ │ │ ├── video_present_source_t.hpp │ │ │ │ ├── video_present_target_t.hpp │ │ │ │ ├── video_signal_info_t.hpp │ │ │ │ ├── video_signal_standard_t.hpp │ │ │ │ ├── vidpn_hw_capability_t.hpp │ │ │ │ ├── vidpn_present_path_content_t.hpp │ │ │ │ ├── vidpn_present_path_copyprotection_support_t.hpp │ │ │ │ ├── vidpn_present_path_copyprotection_t.hpp │ │ │ │ ├── vidpn_present_path_copyprotection_type_t.hpp │ │ │ │ ├── vidpn_present_path_importance_t.hpp │ │ │ │ ├── vidpn_present_path_rotation_support_t.hpp │ │ │ │ ├── vidpn_present_path_rotation_t.hpp │ │ │ │ ├── vidpn_present_path_scaling_support_t.hpp │ │ │ │ ├── vidpn_present_path_scaling_t.hpp │ │ │ │ ├── vidpn_present_path_t.hpp │ │ │ │ ├── vidpn_present_path_transformation_t.hpp │ │ │ │ ├── vidpn_source_mode_t.hpp │ │ │ │ ├── vidpn_source_mode_type_t.hpp │ │ │ │ ├── vidpn_target_mode_t.hpp │ │ │ │ ├── virtualgpusurfacedata_t.hpp │ │ │ │ └── wire_format_and_preference_t.hpp │ │ │ └── mt/ │ │ │ ├── acquirekeyedmutex2_t.hpp │ │ │ ├── acquirekeyedmutex_t.hpp │ │ │ ├── activate_specific_diag_escape_t.hpp │ │ │ ├── activate_specific_diag_type_t.hpp │ │ │ ├── adapter_perfdata_t.hpp │ │ │ ├── adapter_perfdatacaps_t.hpp │ │ │ ├── adapter_verifier_option_data_t.hpp │ │ │ ├── adapter_verifier_option_t.hpp │ │ │ ├── adapter_verifier_option_type_t.hpp │ │ │ ├── adapter_verifier_vidmm_flags_t.hpp │ │ │ ├── adapter_verifier_vidmm_trim_interval_t.hpp │ │ │ ├── adapteraddress_t.hpp │ │ │ ├── adapterinfo_t.hpp │ │ │ ├── adapterregistryinfo_t.hpp │ │ │ ├── adaptertype_t.hpp │ │ │ ├── adjustfullscreengamma_t.hpp │ │ │ ├── allocationresidencystatus_t.hpp │ │ │ ├── bddfallback_ctl_t.hpp │ │ │ ├── blocklist_info_t.hpp │ │ │ ├── bltmodel_presenthistorytoken_t.hpp │ │ │ ├── brightness_info_t.hpp │ │ │ ├── brightness_info_type_t.hpp │ │ │ ├── brightness_possible_levels_t.hpp │ │ │ ├── budgetchangenotification_t.hpp │ │ │ ├── changesurfacepointer_t.hpp │ │ │ ├── changevideommemoryreservation_t.hpp │ │ │ ├── check_multiplane_overlay_plane2_t.hpp │ │ │ ├── check_multiplane_overlay_plane3_t.hpp │ │ │ ├── check_multiplane_overlay_plane_t.hpp │ │ │ ├── check_multiplane_overlay_support_return_info_t.hpp │ │ │ ├── checkmonitorpowerstate_t.hpp │ │ │ ├── checkmultiplaneoverlaysupport2_t.hpp │ │ │ ├── checkmultiplaneoverlaysupport3_t.hpp │ │ │ ├── checkmultiplaneoverlaysupport_t.hpp │ │ │ ├── checkocclusion_t.hpp │ │ │ ├── checksharedresourceaccess_t.hpp │ │ │ ├── checkvidpnexclusiveownership_t.hpp │ │ │ ├── clienthint_t.hpp │ │ │ ├── closeadapter_t.hpp │ │ │ ├── composition_presenthistorytoken_t.hpp │ │ │ ├── configuresharedresource_t.hpp │ │ │ ├── cpdrivername_t.hpp │ │ │ ├── create_outputdupl_t.hpp │ │ │ ├── createallocation_t.hpp │ │ │ ├── createallocationflags_t.hpp │ │ │ ├── createcontext_t.hpp │ │ │ ├── createcontextvirtual_t.hpp │ │ │ ├── createdcfrommemory_t.hpp │ │ │ ├── createdevice_t.hpp │ │ │ ├── createdeviceflags_t.hpp │ │ │ ├── createhwcontext_t.hpp │ │ │ ├── createhwqueue_t.hpp │ │ │ ├── createkeyedmutex2_flags_t.hpp │ │ │ ├── createkeyedmutex2_t.hpp │ │ │ ├── createkeyedmutex_t.hpp │ │ │ ├── createoverlay_t.hpp │ │ │ ├── createpagingqueue_t.hpp │ │ │ ├── createprotectedsession_t.hpp │ │ │ ├── createstandardallocation_t.hpp │ │ │ ├── createstandardallocationflags_t.hpp │ │ │ ├── createsynchronizationobject2_t.hpp │ │ │ ├── createsynchronizationobject_t.hpp │ │ │ ├── currentdisplaymode_t.hpp │ │ │ ├── debug_snapshot_escape_t.hpp │ │ │ ├── defrag_escape_operation_t.hpp │ │ │ ├── destroy_outputdupl_t.hpp │ │ │ ├── destroyallocation2_t.hpp │ │ │ ├── destroyallocation_t.hpp │ │ │ ├── destroycontext_t.hpp │ │ │ ├── destroydcfrommemory_t.hpp │ │ │ ├── destroydevice_t.hpp │ │ │ ├── destroyhwcontext_t.hpp │ │ │ ├── destroyhwqueue_t.hpp │ │ │ ├── destroykeyedmutex_t.hpp │ │ │ ├── destroyoverlay_t.hpp │ │ │ ├── destroyprotectedsession_t.hpp │ │ │ ├── destroysynchronizationobject_t.hpp │ │ │ ├── device_error_reason_t.hpp │ │ │ ├── device_escape_t.hpp │ │ │ ├── device_ids_t.hpp │ │ │ ├── deviceescape_type_t.hpp │ │ │ ├── deviceexecution_state_t.hpp │ │ │ ├── devicepagefault_state_t.hpp │ │ │ ├── devicepresent_queue_state_t.hpp │ │ │ ├── devicepresent_state_dwm_t.hpp │ │ │ ├── devicepresent_state_t.hpp │ │ │ ├── devicereset_state_t.hpp │ │ │ ├── devicestate_type_t.hpp │ │ │ ├── directflip_support_t.hpp │ │ │ ├── dirtyregions_t.hpp │ │ │ ├── display_umd_filenameinfo_t.hpp │ │ │ ├── displaymode_t.hpp │ │ │ ├── displaymodelist_t.hpp │ │ │ ├── dlist_driver_name_t.hpp │ │ │ ├── dmm_escape_t.hpp │ │ │ ├── dmmescapetype_t.hpp │ │ │ ├── dod_set_dirtyrect_mode_t.hpp │ │ │ ├── driver_description_t.hpp │ │ │ ├── drivercaps_ext_t.hpp │ │ │ ├── enumadapters2_t.hpp │ │ │ ├── enumadapters3_t.hpp │ │ │ ├── enumadapters_filter_t.hpp │ │ │ ├── enumadapters_t.hpp │ │ │ ├── escape_pfn_control_command_t.hpp │ │ │ ├── escape_t.hpp │ │ │ ├── escapetype_t.hpp │ │ │ ├── evict_t.hpp │ │ │ ├── eviction_criteria_t.hpp │ │ │ ├── fence_presenthistorytoken_t.hpp │ │ │ ├── flipinfoflags_t.hpp │ │ │ ├── flipmanager_presenthistorytoken_t.hpp │ │ │ ├── flipmodel_independent_flip_stage_t.hpp │ │ │ ├── flipmodel_presenthistorytoken_t.hpp │ │ │ ├── flipmodel_presenthistorytokenflags_t.hpp │ │ │ ├── flipoverlay_t.hpp │ │ │ ├── flipqueueinfo_t.hpp │ │ │ ├── flushheaptransitions_t.hpp │ │ │ ├── freegpuvirtualaddress_t.hpp │ │ │ ├── gdimodel_presenthistorytoken_t.hpp │ │ │ ├── gdimodel_sysmem_presenthistorytoken_t.hpp │ │ │ ├── get_device_vidpn_ownership_info_t.hpp │ │ │ ├── get_gpummu_caps_t.hpp │ │ │ ├── get_multiplane_overlay_caps_t.hpp │ │ │ ├── get_post_composition_caps_t.hpp │ │ │ ├── get_pte_t.hpp │ │ │ ├── get_segment_caps_t.hpp │ │ │ ├── getallocationpriority_t.hpp │ │ │ ├── getcontextinprocessschedulingpriority_t.hpp │ │ │ ├── getcontextschedulingpriority_t.hpp │ │ │ ├── getdevicestate_t.hpp │ │ │ ├── getdisplaymodelist_t.hpp │ │ │ ├── getmultisamplemethodlist_t.hpp │ │ │ ├── getoverlaystate_t.hpp │ │ │ ├── getpresenthistory_t.hpp │ │ │ ├── getprocessdeviceremovalsupport_t.hpp │ │ │ ├── getruntimedata_t.hpp │ │ │ ├── getscanline_t.hpp │ │ │ ├── getsharedprimaryhandle_t.hpp │ │ │ ├── getsharedresourceadapterluid_t.hpp │ │ │ ├── getverticalblankevent_t.hpp │ │ │ ├── gpu_preference_query_state_t.hpp │ │ │ ├── gpu_preference_query_type_t.hpp │ │ │ ├── gpummu_caps_t.hpp │ │ │ ├── gpuversion_t.hpp │ │ │ ├── history_buffer_status_t.hpp │ │ │ ├── hwdrm_support_t.hpp │ │ │ ├── hybrid_list_t.hpp │ │ │ ├── independentflip_secondary_support_t.hpp │ │ │ ├── independentflip_support_t.hpp │ │ │ ├── invalidateactivevidpn_t.hpp │ │ │ ├── invalidatecache_t.hpp │ │ │ ├── isbaddriverforhwprotectiondisabled_t.hpp │ │ │ ├── kmd_driver_version_t.hpp │ │ │ ├── lock2_t.hpp │ │ │ ├── lock_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── acquirekeyedmutex2_t.end.hpp │ │ │ │ ├── acquirekeyedmutex2_t.start.hpp │ │ │ │ ├── acquirekeyedmutex_t.end.hpp │ │ │ │ ├── acquirekeyedmutex_t.start.hpp │ │ │ │ ├── activate_specific_diag_escape_t.end.hpp │ │ │ │ ├── activate_specific_diag_escape_t.start.hpp │ │ │ │ ├── adapter_perfdata_t.end.hpp │ │ │ │ ├── adapter_perfdata_t.start.hpp │ │ │ │ ├── adapter_perfdatacaps_t.end.hpp │ │ │ │ ├── adapter_perfdatacaps_t.start.hpp │ │ │ │ ├── adapter_verifier_option_data_t.end.hpp │ │ │ │ ├── adapter_verifier_option_data_t.start.hpp │ │ │ │ ├── adapter_verifier_option_t.end.hpp │ │ │ │ ├── adapter_verifier_option_t.start.hpp │ │ │ │ ├── adapter_verifier_vidmm_flags_t.end.hpp │ │ │ │ ├── adapter_verifier_vidmm_flags_t.start.hpp │ │ │ │ ├── adapter_verifier_vidmm_trim_interval_t.end.hpp │ │ │ │ ├── adapter_verifier_vidmm_trim_interval_t.start.hpp │ │ │ │ ├── adapteraddress_t.end.hpp │ │ │ │ ├── adapteraddress_t.start.hpp │ │ │ │ ├── adapterinfo_t.end.hpp │ │ │ │ ├── adapterinfo_t.start.hpp │ │ │ │ ├── adapterregistryinfo_t.end.hpp │ │ │ │ ├── adapterregistryinfo_t.start.hpp │ │ │ │ ├── adaptertype_t.end.hpp │ │ │ │ ├── adaptertype_t.start.hpp │ │ │ │ ├── adjustfullscreengamma_t.end.hpp │ │ │ │ ├── adjustfullscreengamma_t.start.hpp │ │ │ │ ├── bddfallback_ctl_t.end.hpp │ │ │ │ ├── bddfallback_ctl_t.start.hpp │ │ │ │ ├── blocklist_info_t.end.hpp │ │ │ │ ├── blocklist_info_t.start.hpp │ │ │ │ ├── bltmodel_presenthistorytoken_t.end.hpp │ │ │ │ ├── bltmodel_presenthistorytoken_t.start.hpp │ │ │ │ ├── brightness_info_t.end.hpp │ │ │ │ ├── brightness_info_t.start.hpp │ │ │ │ ├── brightness_possible_levels_t.end.hpp │ │ │ │ ├── brightness_possible_levels_t.start.hpp │ │ │ │ ├── budgetchangenotification_t.end.hpp │ │ │ │ ├── budgetchangenotification_t.start.hpp │ │ │ │ ├── changesurfacepointer_t.end.hpp │ │ │ │ ├── changesurfacepointer_t.start.hpp │ │ │ │ ├── changevideommemoryreservation_t.end.hpp │ │ │ │ ├── changevideommemoryreservation_t.start.hpp │ │ │ │ ├── check_multiplane_overlay_plane2_t.end.hpp │ │ │ │ ├── check_multiplane_overlay_plane2_t.start.hpp │ │ │ │ ├── check_multiplane_overlay_plane3_t.end.hpp │ │ │ │ ├── check_multiplane_overlay_plane3_t.start.hpp │ │ │ │ ├── check_multiplane_overlay_plane_t.end.hpp │ │ │ │ ├── check_multiplane_overlay_plane_t.start.hpp │ │ │ │ ├── check_multiplane_overlay_support_return_info_t.end.hpp │ │ │ │ ├── check_multiplane_overlay_support_return_info_t.start.hpp │ │ │ │ ├── checkmonitorpowerstate_t.end.hpp │ │ │ │ ├── checkmonitorpowerstate_t.start.hpp │ │ │ │ ├── checkmultiplaneoverlaysupport2_t.end.hpp │ │ │ │ ├── checkmultiplaneoverlaysupport2_t.start.hpp │ │ │ │ ├── checkmultiplaneoverlaysupport3_t.end.hpp │ │ │ │ ├── checkmultiplaneoverlaysupport3_t.start.hpp │ │ │ │ ├── checkmultiplaneoverlaysupport_t.end.hpp │ │ │ │ ├── checkmultiplaneoverlaysupport_t.start.hpp │ │ │ │ ├── checkocclusion_t.end.hpp │ │ │ │ ├── checkocclusion_t.start.hpp │ │ │ │ ├── checksharedresourceaccess_t.end.hpp │ │ │ │ ├── checksharedresourceaccess_t.start.hpp │ │ │ │ ├── checkvidpnexclusiveownership_t.end.hpp │ │ │ │ ├── checkvidpnexclusiveownership_t.start.hpp │ │ │ │ ├── closeadapter_t.end.hpp │ │ │ │ ├── closeadapter_t.start.hpp │ │ │ │ ├── composition_presenthistorytoken_t.end.hpp │ │ │ │ ├── composition_presenthistorytoken_t.start.hpp │ │ │ │ ├── configuresharedresource_t.end.hpp │ │ │ │ ├── configuresharedresource_t.start.hpp │ │ │ │ ├── cpdrivername_t.end.hpp │ │ │ │ ├── cpdrivername_t.start.hpp │ │ │ │ ├── create_outputdupl_t.end.hpp │ │ │ │ ├── create_outputdupl_t.start.hpp │ │ │ │ ├── createallocation_t.end.hpp │ │ │ │ ├── createallocation_t.start.hpp │ │ │ │ ├── createallocationflags_t.end.hpp │ │ │ │ ├── createallocationflags_t.start.hpp │ │ │ │ ├── createcontext_t.end.hpp │ │ │ │ ├── createcontext_t.start.hpp │ │ │ │ ├── createcontextvirtual_t.end.hpp │ │ │ │ ├── createcontextvirtual_t.start.hpp │ │ │ │ ├── createdcfrommemory_t.end.hpp │ │ │ │ ├── createdcfrommemory_t.start.hpp │ │ │ │ ├── createdevice_t.end.hpp │ │ │ │ ├── createdevice_t.start.hpp │ │ │ │ ├── createdeviceflags_t.end.hpp │ │ │ │ ├── createdeviceflags_t.start.hpp │ │ │ │ ├── createhwcontext_t.end.hpp │ │ │ │ ├── createhwcontext_t.start.hpp │ │ │ │ ├── createhwqueue_t.end.hpp │ │ │ │ ├── createhwqueue_t.start.hpp │ │ │ │ ├── createkeyedmutex2_flags_t.end.hpp │ │ │ │ ├── createkeyedmutex2_flags_t.start.hpp │ │ │ │ ├── createkeyedmutex2_t.end.hpp │ │ │ │ ├── createkeyedmutex2_t.start.hpp │ │ │ │ ├── createkeyedmutex_t.end.hpp │ │ │ │ ├── createkeyedmutex_t.start.hpp │ │ │ │ ├── createoverlay_t.end.hpp │ │ │ │ ├── createoverlay_t.start.hpp │ │ │ │ ├── createpagingqueue_t.end.hpp │ │ │ │ ├── createpagingqueue_t.start.hpp │ │ │ │ ├── createprotectedsession_t.end.hpp │ │ │ │ ├── createprotectedsession_t.start.hpp │ │ │ │ ├── createstandardallocation_t.end.hpp │ │ │ │ ├── createstandardallocation_t.start.hpp │ │ │ │ ├── createstandardallocationflags_t.end.hpp │ │ │ │ ├── createstandardallocationflags_t.start.hpp │ │ │ │ ├── createsynchronizationobject2_t.end.hpp │ │ │ │ ├── createsynchronizationobject2_t.start.hpp │ │ │ │ ├── createsynchronizationobject_t.end.hpp │ │ │ │ ├── createsynchronizationobject_t.start.hpp │ │ │ │ ├── currentdisplaymode_t.end.hpp │ │ │ │ ├── currentdisplaymode_t.start.hpp │ │ │ │ ├── debug_snapshot_escape_t.end.hpp │ │ │ │ ├── debug_snapshot_escape_t.start.hpp │ │ │ │ ├── destroy_outputdupl_t.end.hpp │ │ │ │ ├── destroy_outputdupl_t.start.hpp │ │ │ │ ├── destroyallocation2_t.end.hpp │ │ │ │ ├── destroyallocation2_t.start.hpp │ │ │ │ ├── destroyallocation_t.end.hpp │ │ │ │ ├── destroyallocation_t.start.hpp │ │ │ │ ├── destroycontext_t.end.hpp │ │ │ │ ├── destroycontext_t.start.hpp │ │ │ │ ├── destroydcfrommemory_t.end.hpp │ │ │ │ ├── destroydcfrommemory_t.start.hpp │ │ │ │ ├── destroydevice_t.end.hpp │ │ │ │ ├── destroydevice_t.start.hpp │ │ │ │ ├── destroyhwcontext_t.end.hpp │ │ │ │ ├── destroyhwcontext_t.start.hpp │ │ │ │ ├── destroyhwqueue_t.end.hpp │ │ │ │ ├── destroyhwqueue_t.start.hpp │ │ │ │ ├── destroykeyedmutex_t.end.hpp │ │ │ │ ├── destroykeyedmutex_t.start.hpp │ │ │ │ ├── destroyoverlay_t.end.hpp │ │ │ │ ├── destroyoverlay_t.start.hpp │ │ │ │ ├── destroyprotectedsession_t.end.hpp │ │ │ │ ├── destroyprotectedsession_t.start.hpp │ │ │ │ ├── destroysynchronizationobject_t.end.hpp │ │ │ │ ├── destroysynchronizationobject_t.start.hpp │ │ │ │ ├── device_escape_t.end.hpp │ │ │ │ ├── device_escape_t.start.hpp │ │ │ │ ├── device_ids_t.end.hpp │ │ │ │ ├── device_ids_t.start.hpp │ │ │ │ ├── devicepagefault_state_t.end.hpp │ │ │ │ ├── devicepagefault_state_t.start.hpp │ │ │ │ ├── devicepresent_queue_state_t.end.hpp │ │ │ │ ├── devicepresent_queue_state_t.start.hpp │ │ │ │ ├── devicepresent_state_dwm_t.end.hpp │ │ │ │ ├── devicepresent_state_dwm_t.start.hpp │ │ │ │ ├── devicepresent_state_t.end.hpp │ │ │ │ ├── devicepresent_state_t.start.hpp │ │ │ │ ├── devicereset_state_t.end.hpp │ │ │ │ ├── devicereset_state_t.start.hpp │ │ │ │ ├── directflip_support_t.end.hpp │ │ │ │ ├── directflip_support_t.start.hpp │ │ │ │ ├── dirtyregions_t.end.hpp │ │ │ │ ├── dirtyregions_t.start.hpp │ │ │ │ ├── display_umd_filenameinfo_t.end.hpp │ │ │ │ ├── display_umd_filenameinfo_t.start.hpp │ │ │ │ ├── displaymode_t.end.hpp │ │ │ │ ├── displaymode_t.start.hpp │ │ │ │ ├── displaymodelist_t.end.hpp │ │ │ │ ├── displaymodelist_t.start.hpp │ │ │ │ ├── dlist_driver_name_t.end.hpp │ │ │ │ ├── dlist_driver_name_t.start.hpp │ │ │ │ ├── dmm_escape_t.end.hpp │ │ │ │ ├── dmm_escape_t.start.hpp │ │ │ │ ├── dod_set_dirtyrect_mode_t.end.hpp │ │ │ │ ├── dod_set_dirtyrect_mode_t.start.hpp │ │ │ │ ├── driver_description_t.end.hpp │ │ │ │ ├── driver_description_t.start.hpp │ │ │ │ ├── drivercaps_ext_t.end.hpp │ │ │ │ ├── drivercaps_ext_t.start.hpp │ │ │ │ ├── enumadapters2_t.end.hpp │ │ │ │ ├── enumadapters2_t.start.hpp │ │ │ │ ├── enumadapters3_t.end.hpp │ │ │ │ ├── enumadapters3_t.start.hpp │ │ │ │ ├── enumadapters_filter_t.end.hpp │ │ │ │ ├── enumadapters_filter_t.start.hpp │ │ │ │ ├── enumadapters_t.end.hpp │ │ │ │ ├── enumadapters_t.start.hpp │ │ │ │ ├── escape_t.end.hpp │ │ │ │ ├── escape_t.start.hpp │ │ │ │ ├── evict_t.end.hpp │ │ │ │ ├── evict_t.start.hpp │ │ │ │ ├── eviction_criteria_t.end.hpp │ │ │ │ ├── eviction_criteria_t.start.hpp │ │ │ │ ├── fence_presenthistorytoken_t.end.hpp │ │ │ │ ├── fence_presenthistorytoken_t.start.hpp │ │ │ │ ├── flipinfoflags_t.end.hpp │ │ │ │ ├── flipinfoflags_t.start.hpp │ │ │ │ ├── flipmanager_presenthistorytoken_t.end.hpp │ │ │ │ ├── flipmanager_presenthistorytoken_t.start.hpp │ │ │ │ ├── flipmodel_presenthistorytoken_t.end.hpp │ │ │ │ ├── flipmodel_presenthistorytoken_t.start.hpp │ │ │ │ ├── flipmodel_presenthistorytokenflags_t.end.hpp │ │ │ │ ├── flipmodel_presenthistorytokenflags_t.start.hpp │ │ │ │ ├── flipoverlay_t.end.hpp │ │ │ │ ├── flipoverlay_t.start.hpp │ │ │ │ ├── flipqueueinfo_t.end.hpp │ │ │ │ ├── flipqueueinfo_t.start.hpp │ │ │ │ ├── flushheaptransitions_t.end.hpp │ │ │ │ ├── flushheaptransitions_t.start.hpp │ │ │ │ ├── freegpuvirtualaddress_t.end.hpp │ │ │ │ ├── freegpuvirtualaddress_t.start.hpp │ │ │ │ ├── gdimodel_presenthistorytoken_t.end.hpp │ │ │ │ ├── gdimodel_presenthistorytoken_t.start.hpp │ │ │ │ ├── gdimodel_sysmem_presenthistorytoken_t.end.hpp │ │ │ │ ├── gdimodel_sysmem_presenthistorytoken_t.start.hpp │ │ │ │ ├── get_device_vidpn_ownership_info_t.end.hpp │ │ │ │ ├── get_device_vidpn_ownership_info_t.start.hpp │ │ │ │ ├── get_gpummu_caps_t.end.hpp │ │ │ │ ├── get_gpummu_caps_t.start.hpp │ │ │ │ ├── get_multiplane_overlay_caps_t.end.hpp │ │ │ │ ├── get_multiplane_overlay_caps_t.start.hpp │ │ │ │ ├── get_post_composition_caps_t.end.hpp │ │ │ │ ├── get_post_composition_caps_t.start.hpp │ │ │ │ ├── get_pte_t.end.hpp │ │ │ │ ├── get_pte_t.start.hpp │ │ │ │ ├── get_segment_caps_t.end.hpp │ │ │ │ ├── get_segment_caps_t.start.hpp │ │ │ │ ├── getallocationpriority_t.end.hpp │ │ │ │ ├── getallocationpriority_t.start.hpp │ │ │ │ ├── getcontextinprocessschedulingpriority_t.end.hpp │ │ │ │ ├── getcontextinprocessschedulingpriority_t.start.hpp │ │ │ │ ├── getcontextschedulingpriority_t.end.hpp │ │ │ │ ├── getcontextschedulingpriority_t.start.hpp │ │ │ │ ├── getdevicestate_t.end.hpp │ │ │ │ ├── getdevicestate_t.start.hpp │ │ │ │ ├── getdisplaymodelist_t.end.hpp │ │ │ │ ├── getdisplaymodelist_t.start.hpp │ │ │ │ ├── getmultisamplemethodlist_t.end.hpp │ │ │ │ ├── getmultisamplemethodlist_t.start.hpp │ │ │ │ ├── getoverlaystate_t.end.hpp │ │ │ │ ├── getoverlaystate_t.start.hpp │ │ │ │ ├── getpresenthistory_t.end.hpp │ │ │ │ ├── getpresenthistory_t.start.hpp │ │ │ │ ├── getprocessdeviceremovalsupport_t.end.hpp │ │ │ │ ├── getprocessdeviceremovalsupport_t.start.hpp │ │ │ │ ├── getruntimedata_t.end.hpp │ │ │ │ ├── getruntimedata_t.start.hpp │ │ │ │ ├── getscanline_t.end.hpp │ │ │ │ ├── getscanline_t.start.hpp │ │ │ │ ├── getsharedprimaryhandle_t.end.hpp │ │ │ │ ├── getsharedprimaryhandle_t.start.hpp │ │ │ │ ├── getsharedresourceadapterluid_t.end.hpp │ │ │ │ ├── getsharedresourceadapterluid_t.start.hpp │ │ │ │ ├── getverticalblankevent_t.end.hpp │ │ │ │ ├── getverticalblankevent_t.start.hpp │ │ │ │ ├── gpummu_caps_t.end.hpp │ │ │ │ ├── gpummu_caps_t.start.hpp │ │ │ │ ├── gpuversion_t.end.hpp │ │ │ │ ├── gpuversion_t.start.hpp │ │ │ │ ├── history_buffer_status_t.end.hpp │ │ │ │ ├── history_buffer_status_t.start.hpp │ │ │ │ ├── hwdrm_support_t.end.hpp │ │ │ │ ├── hwdrm_support_t.start.hpp │ │ │ │ ├── hybrid_list_t.end.hpp │ │ │ │ ├── hybrid_list_t.start.hpp │ │ │ │ ├── independentflip_secondary_support_t.end.hpp │ │ │ │ ├── independentflip_secondary_support_t.start.hpp │ │ │ │ ├── independentflip_support_t.end.hpp │ │ │ │ ├── independentflip_support_t.start.hpp │ │ │ │ ├── invalidateactivevidpn_t.end.hpp │ │ │ │ ├── invalidateactivevidpn_t.start.hpp │ │ │ │ ├── invalidatecache_t.end.hpp │ │ │ │ ├── invalidatecache_t.start.hpp │ │ │ │ ├── isbaddriverforhwprotectiondisabled_t.end.hpp │ │ │ │ ├── isbaddriverforhwprotectiondisabled_t.start.hpp │ │ │ │ ├── kmd_driver_version_t.end.hpp │ │ │ │ ├── kmd_driver_version_t.start.hpp │ │ │ │ ├── lock2_t.end.hpp │ │ │ │ ├── lock2_t.start.hpp │ │ │ │ ├── lock_t.end.hpp │ │ │ │ ├── lock_t.start.hpp │ │ │ │ ├── markdeviceaserror_t.end.hpp │ │ │ │ ├── markdeviceaserror_t.start.hpp │ │ │ │ ├── miracast_display_device_caps_t.end.hpp │ │ │ │ ├── miracast_display_device_caps_t.start.hpp │ │ │ │ ├── miracast_display_device_status_t.end.hpp │ │ │ │ ├── miracast_display_device_status_t.start.hpp │ │ │ │ ├── miracast_display_stop_sessions_t.end.hpp │ │ │ │ ├── miracast_display_stop_sessions_t.start.hpp │ │ │ │ ├── miracastcompaniondrivername_t.end.hpp │ │ │ │ ├── miracastcompaniondrivername_t.start.hpp │ │ │ │ ├── move_rect_t.end.hpp │ │ │ │ ├── move_rect_t.start.hpp │ │ │ │ ├── mpo3ddi_support_t.end.hpp │ │ │ │ ├── mpo3ddi_support_t.start.hpp │ │ │ │ ├── mpokernelcaps_support_t.end.hpp │ │ │ │ ├── mpokernelcaps_support_t.start.hpp │ │ │ │ ├── multiplane_overlay2_t.end.hpp │ │ │ │ ├── multiplane_overlay2_t.start.hpp │ │ │ │ ├── multiplane_overlay3_t.end.hpp │ │ │ │ ├── multiplane_overlay3_t.start.hpp │ │ │ │ ├── multiplane_overlay_attributes2_t.end.hpp │ │ │ │ ├── multiplane_overlay_attributes2_t.start.hpp │ │ │ │ ├── multiplane_overlay_attributes3_t.end.hpp │ │ │ │ ├── multiplane_overlay_attributes3_t.start.hpp │ │ │ │ ├── multiplane_overlay_attributes_t.end.hpp │ │ │ │ ├── multiplane_overlay_attributes_t.start.hpp │ │ │ │ ├── multiplane_overlay_caps_t.end.hpp │ │ │ │ ├── multiplane_overlay_caps_t.start.hpp │ │ │ │ ├── multiplane_overlay_post_composition_flags_t.end.hpp │ │ │ │ ├── multiplane_overlay_post_composition_flags_t.start.hpp │ │ │ │ ├── multiplane_overlay_post_composition_t.end.hpp │ │ │ │ ├── multiplane_overlay_post_composition_t.start.hpp │ │ │ │ ├── multiplane_overlay_post_composition_with_source_t.end.hpp │ │ │ │ ├── multiplane_overlay_post_composition_with_source_t.start.hpp │ │ │ │ ├── multiplane_overlay_t.end.hpp │ │ │ │ ├── multiplane_overlay_t.start.hpp │ │ │ │ ├── multiplaneoverlay_decode_support_t.end.hpp │ │ │ │ ├── multiplaneoverlay_decode_support_t.start.hpp │ │ │ │ ├── multiplaneoverlay_hud_support_t.end.hpp │ │ │ │ ├── multiplaneoverlay_hud_support_t.start.hpp │ │ │ │ ├── multiplaneoverlay_secondary_support_t.end.hpp │ │ │ │ ├── multiplaneoverlay_secondary_support_t.start.hpp │ │ │ │ ├── multiplaneoverlay_stretch_support_t.end.hpp │ │ │ │ ├── multiplaneoverlay_stretch_support_t.start.hpp │ │ │ │ ├── multiplaneoverlay_support_t.end.hpp │ │ │ │ ├── multiplaneoverlay_support_t.start.hpp │ │ │ │ ├── multisamplemethod_t.end.hpp │ │ │ │ ├── multisamplemethod_t.start.hpp │ │ │ │ ├── node_perfdata_t.end.hpp │ │ │ │ ├── node_perfdata_t.start.hpp │ │ │ │ ├── nodemetadata_t.end.hpp │ │ │ │ ├── nodemetadata_t.start.hpp │ │ │ │ ├── offer_flags_t.end.hpp │ │ │ │ ├── offer_flags_t.start.hpp │ │ │ │ ├── offerallocations_t.end.hpp │ │ │ │ ├── offerallocations_t.start.hpp │ │ │ │ ├── openadapterfromdevicename_t.end.hpp │ │ │ │ ├── openadapterfromdevicename_t.start.hpp │ │ │ │ ├── openadapterfromgdidisplayname_t.end.hpp │ │ │ │ ├── openadapterfromgdidisplayname_t.start.hpp │ │ │ │ ├── openadapterfromhdc_t.end.hpp │ │ │ │ ├── openadapterfromhdc_t.start.hpp │ │ │ │ ├── openadapterfromluid_t.end.hpp │ │ │ │ ├── openadapterfromluid_t.start.hpp │ │ │ │ ├── openglinfo_t.end.hpp │ │ │ │ ├── openglinfo_t.start.hpp │ │ │ │ ├── openkeyedmutex2_t.end.hpp │ │ │ │ ├── openkeyedmutex2_t.start.hpp │ │ │ │ ├── openkeyedmutex_t.end.hpp │ │ │ │ ├── openkeyedmutex_t.start.hpp │ │ │ │ ├── openkeyedmutexfromnthandle_t.end.hpp │ │ │ │ ├── openkeyedmutexfromnthandle_t.start.hpp │ │ │ │ ├── opennthandlefromname_t.end.hpp │ │ │ │ ├── opennthandlefromname_t.start.hpp │ │ │ │ ├── openprotectedsessionfromnthandle_t.end.hpp │ │ │ │ ├── openprotectedsessionfromnthandle_t.start.hpp │ │ │ │ ├── openresource_t.end.hpp │ │ │ │ ├── openresource_t.start.hpp │ │ │ │ ├── openresourcefromnthandle_t.end.hpp │ │ │ │ ├── openresourcefromnthandle_t.start.hpp │ │ │ │ ├── opensynchronizationobject_t.end.hpp │ │ │ │ ├── opensynchronizationobject_t.start.hpp │ │ │ │ ├── opensyncobjectfromnthandle2_t.end.hpp │ │ │ │ ├── opensyncobjectfromnthandle2_t.start.hpp │ │ │ │ ├── opensyncobjectfromnthandle_t.end.hpp │ │ │ │ ├── opensyncobjectfromnthandle_t.start.hpp │ │ │ │ ├── opensyncobjectnthandlefromname_t.end.hpp │ │ │ │ ├── opensyncobjectnthandlefromname_t.start.hpp │ │ │ │ ├── outdupl_pointer_shape_info_t.end.hpp │ │ │ │ ├── outdupl_pointer_shape_info_t.start.hpp │ │ │ │ ├── outputdupl_frameinfo_t.end.hpp │ │ │ │ ├── outputdupl_frameinfo_t.start.hpp │ │ │ │ ├── outputdupl_get_frameinfo_t.end.hpp │ │ │ │ ├── outputdupl_get_frameinfo_t.start.hpp │ │ │ │ ├── outputdupl_get_pointer_shape_data_t.end.hpp │ │ │ │ ├── outputdupl_get_pointer_shape_data_t.start.hpp │ │ │ │ ├── outputdupl_keyedmutex_t.end.hpp │ │ │ │ ├── outputdupl_keyedmutex_t.start.hpp │ │ │ │ ├── outputdupl_metadata_t.end.hpp │ │ │ │ ├── outputdupl_metadata_t.start.hpp │ │ │ │ ├── outputdupl_pointer_position_t.end.hpp │ │ │ │ ├── outputdupl_pointer_position_t.start.hpp │ │ │ │ ├── outputdupl_release_frame_t.end.hpp │ │ │ │ ├── outputdupl_release_frame_t.start.hpp │ │ │ │ ├── outputdupl_snapshot_t.end.hpp │ │ │ │ ├── outputdupl_snapshot_t.start.hpp │ │ │ │ ├── outputduplcontextscount_t.end.hpp │ │ │ │ ├── outputduplcontextscount_t.start.hpp │ │ │ │ ├── outputduplcreationflags_t.end.hpp │ │ │ │ ├── outputduplcreationflags_t.start.hpp │ │ │ │ ├── outputduplpresent_t.end.hpp │ │ │ │ ├── outputduplpresent_t.start.hpp │ │ │ │ ├── outputduplpresentflags_t.end.hpp │ │ │ │ ├── outputduplpresentflags_t.start.hpp │ │ │ │ ├── outputduplpresenttohwqueue_t.end.hpp │ │ │ │ ├── outputduplpresenttohwqueue_t.start.hpp │ │ │ │ ├── page_table_level_desc_t.end.hpp │ │ │ │ ├── page_table_level_desc_t.start.hpp │ │ │ │ ├── panelfitter_support_t.end.hpp │ │ │ │ ├── panelfitter_support_t.start.hpp │ │ │ │ ├── paravirtualization_t.end.hpp │ │ │ │ ├── paravirtualization_t.start.hpp │ │ │ │ ├── physical_adapter_count_t.end.hpp │ │ │ │ ├── physical_adapter_count_t.start.hpp │ │ │ │ ├── pindirectflipresources_t.end.hpp │ │ │ │ ├── pindirectflipresources_t.start.hpp │ │ │ │ ├── plane_specific_input_flags_t.end.hpp │ │ │ │ ├── plane_specific_input_flags_t.start.hpp │ │ │ │ ├── plane_specific_output_flags_t.end.hpp │ │ │ │ ├── plane_specific_output_flags_t.start.hpp │ │ │ │ ├── polldisplaychildren_t.end.hpp │ │ │ │ ├── polldisplaychildren_t.start.hpp │ │ │ │ ├── present_display_only_flags_t.end.hpp │ │ │ │ ├── present_display_only_flags_t.start.hpp │ │ │ │ ├── present_multiplane_overlay2_t.end.hpp │ │ │ │ ├── present_multiplane_overlay2_t.start.hpp │ │ │ │ ├── present_multiplane_overlay3_t.end.hpp │ │ │ │ ├── present_multiplane_overlay3_t.start.hpp │ │ │ │ ├── present_multiplane_overlay_flags_t.end.hpp │ │ │ │ ├── present_multiplane_overlay_flags_t.start.hpp │ │ │ │ ├── present_multiplane_overlay_t.end.hpp │ │ │ │ ├── present_multiplane_overlay_t.start.hpp │ │ │ │ ├── present_redirected_t.end.hpp │ │ │ │ ├── present_redirected_t.start.hpp │ │ │ │ ├── present_redirecteds_flags_t.end.hpp │ │ │ │ ├── present_redirecteds_flags_t.start.hpp │ │ │ │ ├── present_rgns_t.end.hpp │ │ │ │ ├── present_rgns_t.start.hpp │ │ │ │ ├── present_stats_dwm_t.end.hpp │ │ │ │ ├── present_stats_dwm_t.start.hpp │ │ │ │ ├── present_stats_t.end.hpp │ │ │ │ ├── present_stats_t.start.hpp │ │ │ │ ├── present_t.end.hpp │ │ │ │ ├── present_t.start.hpp │ │ │ │ ├── presentflags_t.end.hpp │ │ │ │ ├── presentflags_t.start.hpp │ │ │ │ ├── presenthistorytoken_t.end.hpp │ │ │ │ ├── presenthistorytoken_t.start.hpp │ │ │ │ ├── process_verifier_option_data_t.end.hpp │ │ │ │ ├── process_verifier_option_data_t.start.hpp │ │ │ │ ├── process_verifier_option_t.end.hpp │ │ │ │ ├── process_verifier_option_t.start.hpp │ │ │ │ ├── process_verifier_vidmm_flags_t.end.hpp │ │ │ │ ├── process_verifier_vidmm_flags_t.start.hpp │ │ │ │ ├── process_verifier_vidmm_restrict_budget_t.end.hpp │ │ │ │ ├── process_verifier_vidmm_restrict_budget_t.start.hpp │ │ │ │ ├── query_adapter_unique_guid_t.end.hpp │ │ │ │ ├── query_adapter_unique_guid_t.start.hpp │ │ │ │ ├── query_device_ids_t.end.hpp │ │ │ │ ├── query_device_ids_t.start.hpp │ │ │ │ ├── query_gpummu_caps_t.end.hpp │ │ │ │ ├── query_gpummu_caps_t.start.hpp │ │ │ │ ├── query_miracast_driver_type_t.end.hpp │ │ │ │ ├── query_miracast_driver_type_t.start.hpp │ │ │ │ ├── query_physical_adapter_pnp_key_t.end.hpp │ │ │ │ ├── query_physical_adapter_pnp_key_t.start.hpp │ │ │ │ ├── query_scanout_caps_t.end.hpp │ │ │ │ ├── query_scanout_caps_t.start.hpp │ │ │ │ ├── queryadapterinfo_t.end.hpp │ │ │ │ ├── queryadapterinfo_t.start.hpp │ │ │ │ ├── queryallocationresidency_t.end.hpp │ │ │ │ ├── queryallocationresidency_t.start.hpp │ │ │ │ ├── queryclockcalibration_t.end.hpp │ │ │ │ ├── queryclockcalibration_t.start.hpp │ │ │ │ ├── queryfseblock_t.end.hpp │ │ │ │ ├── queryfseblock_t.start.hpp │ │ │ │ ├── queryfseflags_t.end.hpp │ │ │ │ ├── queryfseflags_t.start.hpp │ │ │ │ ├── queryprocessofferinfo_t.end.hpp │ │ │ │ ├── queryprocessofferinfo_t.start.hpp │ │ │ │ ├── queryprotectedsessioninfofromnthandle_t.end.hpp │ │ │ │ ├── queryprotectedsessioninfofromnthandle_t.start.hpp │ │ │ │ ├── queryprotectedsessionstatus_t.end.hpp │ │ │ │ ├── queryprotectedsessionstatus_t.start.hpp │ │ │ │ ├── queryremotevidpnsourcefromgdidisplayname_t.end.hpp │ │ │ │ ├── queryremotevidpnsourcefromgdidisplayname_t.start.hpp │ │ │ │ ├── queryresourceinfo_t.end.hpp │ │ │ │ ├── queryresourceinfo_t.start.hpp │ │ │ │ ├── queryresourceinfofromnthandle_t.end.hpp │ │ │ │ ├── queryresourceinfofromnthandle_t.start.hpp │ │ │ │ ├── querystatistics_t.end.hpp │ │ │ │ ├── querystatistics_t.start.hpp │ │ │ │ ├── queryvideomemoryinfo_t.end.hpp │ │ │ │ ├── queryvideomemoryinfo_t.start.hpp │ │ │ │ ├── queryvidpnexclusiveownership_t.end.hpp │ │ │ │ ├── queryvidpnexclusiveownership_t.start.hpp │ │ │ │ ├── reclaimallocations2_t.end.hpp │ │ │ │ ├── reclaimallocations2_t.start.hpp │ │ │ │ ├── reclaimallocations_t.end.hpp │ │ │ │ ├── reclaimallocations_t.start.hpp │ │ │ │ ├── registerbudgetchangenotification_t.end.hpp │ │ │ │ ├── registerbudgetchangenotification_t.start.hpp │ │ │ │ ├── registertrimnotification_t.end.hpp │ │ │ │ ├── registertrimnotification_t.start.hpp │ │ │ │ ├── releasekeyedmutex2_t.end.hpp │ │ │ │ ├── releasekeyedmutex2_t.start.hpp │ │ │ │ ├── releasekeyedmutex_t.end.hpp │ │ │ │ ├── releasekeyedmutex_t.start.hpp │ │ │ │ ├── render_t.end.hpp │ │ │ │ ├── render_t.start.hpp │ │ │ │ ├── renderflags_t.end.hpp │ │ │ │ ├── renderflags_t.start.hpp │ │ │ │ ├── request_machine_crash_escape_t.end.hpp │ │ │ │ ├── request_machine_crash_escape_t.start.hpp │ │ │ │ ├── scatterblt_t.end.hpp │ │ │ │ ├── scatterblt_t.start.hpp │ │ │ │ ├── scatterblts_t.end.hpp │ │ │ │ ├── scatterblts_t.start.hpp │ │ │ │ ├── segment_caps_t.end.hpp │ │ │ │ ├── segment_caps_t.start.hpp │ │ │ │ ├── segmentgroupsizeinfo_t.end.hpp │ │ │ │ ├── segmentgroupsizeinfo_t.start.hpp │ │ │ │ ├── segmentsizeinfo_t.end.hpp │ │ │ │ ├── segmentsizeinfo_t.start.hpp │ │ │ │ ├── set_colorspace_transform_t.end.hpp │ │ │ │ ├── set_colorspace_transform_t.start.hpp │ │ │ │ ├── setallocationpriority_t.end.hpp │ │ │ │ ├── setallocationpriority_t.start.hpp │ │ │ │ ├── setcontextinprocessschedulingpriority_t.end.hpp │ │ │ │ ├── setcontextinprocessschedulingpriority_t.start.hpp │ │ │ │ ├── setcontextschedulingpriority_t.end.hpp │ │ │ │ ├── setcontextschedulingpriority_t.start.hpp │ │ │ │ ├── setdisplaymode_flags_t.end.hpp │ │ │ │ ├── setdisplaymode_flags_t.start.hpp │ │ │ │ ├── setdisplaymode_t.end.hpp │ │ │ │ ├── setdisplaymode_t.start.hpp │ │ │ │ ├── setdisplayprivatedriverformat_t.end.hpp │ │ │ │ ├── setdisplayprivatedriverformat_t.start.hpp │ │ │ │ ├── setfseblock_t.end.hpp │ │ │ │ ├── setfseblock_t.start.hpp │ │ │ │ ├── setfseblockflags_t.end.hpp │ │ │ │ ├── setfseblockflags_t.start.hpp │ │ │ │ ├── setgammaramp_t.end.hpp │ │ │ │ ├── setgammaramp_t.start.hpp │ │ │ │ ├── sethwprotectionteardownrecovery_t.end.hpp │ │ │ │ ├── sethwprotectionteardownrecovery_t.start.hpp │ │ │ │ ├── setqueuedlimit_t.end.hpp │ │ │ │ ├── setqueuedlimit_t.start.hpp │ │ │ │ ├── setstablepowerstate_t.end.hpp │ │ │ │ ├── setstablepowerstate_t.start.hpp │ │ │ │ ├── setsyncrefreshcountwaittarget_t.end.hpp │ │ │ │ ├── setsyncrefreshcountwaittarget_t.start.hpp │ │ │ │ ├── setvidpnsourcehwprotection_t.end.hpp │ │ │ │ ├── setvidpnsourcehwprotection_t.start.hpp │ │ │ │ ├── setvidpnsourceowner1_t.end.hpp │ │ │ │ ├── setvidpnsourceowner1_t.start.hpp │ │ │ │ ├── setvidpnsourceowner2_t.end.hpp │ │ │ │ ├── setvidpnsourceowner2_t.start.hpp │ │ │ │ ├── setvidpnsourceowner_t.end.hpp │ │ │ │ ├── setvidpnsourceowner_t.start.hpp │ │ │ │ ├── sharedprimarylocknotification_t.end.hpp │ │ │ │ ├── sharedprimarylocknotification_t.start.hpp │ │ │ │ ├── sharedprimaryunlocknotification_t.end.hpp │ │ │ │ ├── sharedprimaryunlocknotification_t.start.hpp │ │ │ │ ├── signalsynchronizationobject2_t.end.hpp │ │ │ │ ├── signalsynchronizationobject2_t.start.hpp │ │ │ │ ├── signalsynchronizationobject_t.end.hpp │ │ │ │ ├── signalsynchronizationobject_t.start.hpp │ │ │ │ ├── signalsynchronizationobjectfromcpu_t.end.hpp │ │ │ │ ├── signalsynchronizationobjectfromcpu_t.start.hpp │ │ │ │ ├── signalsynchronizationobjectfromgpu2_t.end.hpp │ │ │ │ ├── signalsynchronizationobjectfromgpu2_t.start.hpp │ │ │ │ ├── signalsynchronizationobjectfromgpu_t.end.hpp │ │ │ │ ├── signalsynchronizationobjectfromgpu_t.start.hpp │ │ │ │ ├── standardallocation_existingheap_t.end.hpp │ │ │ │ ├── standardallocation_existingheap_t.start.hpp │ │ │ │ ├── submitcommand_t.end.hpp │ │ │ │ ├── submitcommand_t.start.hpp │ │ │ │ ├── submitcommandflags_t.end.hpp │ │ │ │ ├── submitcommandflags_t.start.hpp │ │ │ │ ├── submitcommandtohwqueue_t.end.hpp │ │ │ │ ├── submitcommandtohwqueue_t.start.hpp │ │ │ │ ├── submitpresentblttohwqueue_t.end.hpp │ │ │ │ ├── submitpresentblttohwqueue_t.start.hpp │ │ │ │ ├── submitpresenttohwqueue_t.end.hpp │ │ │ │ ├── submitpresenttohwqueue_t.start.hpp │ │ │ │ ├── submitsignalsyncobjectstohwqueue_t.end.hpp │ │ │ │ ├── submitsignalsyncobjectstohwqueue_t.start.hpp │ │ │ │ ├── submitwaitforsyncobjectstohwqueue_t.end.hpp │ │ │ │ ├── submitwaitforsyncobjectstohwqueue_t.start.hpp │ │ │ │ ├── surfacecomplete_presenthistorytoken_t.end.hpp │ │ │ │ ├── surfacecomplete_presenthistorytoken_t.start.hpp │ │ │ │ ├── tdrdbgctrl_escape_t.end.hpp │ │ │ │ ├── tdrdbgctrl_escape_t.start.hpp │ │ │ │ ├── trackedworkload_support_t.end.hpp │ │ │ │ ├── trackedworkload_support_t.start.hpp │ │ │ │ ├── trimnotification_t.end.hpp │ │ │ │ ├── trimnotification_t.start.hpp │ │ │ │ ├── trimprocesscommitment_flags_t.end.hpp │ │ │ │ ├── trimprocesscommitment_flags_t.start.hpp │ │ │ │ ├── trimprocesscommitment_t.end.hpp │ │ │ │ ├── trimprocesscommitment_t.start.hpp │ │ │ │ ├── umd_driver_version_t.end.hpp │ │ │ │ ├── umd_driver_version_t.start.hpp │ │ │ │ ├── umdfilenameinfo_t.end.hpp │ │ │ │ ├── umdfilenameinfo_t.start.hpp │ │ │ │ ├── unlock2_t.end.hpp │ │ │ │ ├── unlock2_t.start.hpp │ │ │ │ ├── unlock_t.end.hpp │ │ │ │ ├── unlock_t.start.hpp │ │ │ │ ├── unpindirectflipresources_t.end.hpp │ │ │ │ ├── unpindirectflipresources_t.start.hpp │ │ │ │ ├── unregisterbudgetchangenotification_t.end.hpp │ │ │ │ ├── unregisterbudgetchangenotification_t.start.hpp │ │ │ │ ├── unregistertrimnotification_t.end.hpp │ │ │ │ ├── unregistertrimnotification_t.start.hpp │ │ │ │ ├── updategpuvirtualaddress_t.end.hpp │ │ │ │ ├── updategpuvirtualaddress_t.start.hpp │ │ │ │ ├── updateoverlay_t.end.hpp │ │ │ │ ├── updateoverlay_t.start.hpp │ │ │ │ ├── va_range_desc_t.end.hpp │ │ │ │ ├── va_range_desc_t.start.hpp │ │ │ │ ├── vad_desc_t.end.hpp │ │ │ │ ├── vad_desc_t.start.hpp │ │ │ │ ├── vidmm_escape_t.end.hpp │ │ │ │ ├── vidmm_escape_t.start.hpp │ │ │ │ ├── vidpnsourceowner_flags_t.end.hpp │ │ │ │ ├── vidpnsourceowner_flags_t.start.hpp │ │ │ │ ├── vidsch_escape_t.end.hpp │ │ │ │ ├── vidsch_escape_t.start.hpp │ │ │ │ ├── virtualaddressflags_t.end.hpp │ │ │ │ ├── virtualaddressflags_t.start.hpp │ │ │ │ ├── virtualaddressinfo_t.end.hpp │ │ │ │ ├── virtualaddressinfo_t.start.hpp │ │ │ │ ├── waitforidle_t.end.hpp │ │ │ │ ├── waitforidle_t.start.hpp │ │ │ │ ├── waitforsynchronizationobject2_t.end.hpp │ │ │ │ ├── waitforsynchronizationobject2_t.start.hpp │ │ │ │ ├── waitforsynchronizationobject_t.end.hpp │ │ │ │ ├── waitforsynchronizationobject_t.start.hpp │ │ │ │ ├── waitforsynchronizationobjectfromcpu_t.end.hpp │ │ │ │ ├── waitforsynchronizationobjectfromcpu_t.start.hpp │ │ │ │ ├── waitforsynchronizationobjectfromgpu_t.end.hpp │ │ │ │ ├── waitforsynchronizationobjectfromgpu_t.start.hpp │ │ │ │ ├── waitforverticalblankevent2_t.end.hpp │ │ │ │ ├── waitforverticalblankevent2_t.start.hpp │ │ │ │ ├── waitforverticalblankevent_t.end.hpp │ │ │ │ ├── waitforverticalblankevent_t.start.hpp │ │ │ │ ├── wddm_1_2_caps_t.end.hpp │ │ │ │ ├── wddm_1_2_caps_t.start.hpp │ │ │ │ ├── wddm_1_3_caps_t.end.hpp │ │ │ │ ├── wddm_1_3_caps_t.start.hpp │ │ │ │ ├── wddm_2_0_caps_t.end.hpp │ │ │ │ ├── wddm_2_0_caps_t.start.hpp │ │ │ │ ├── wddm_2_7_caps_t.end.hpp │ │ │ │ ├── wddm_2_7_caps_t.start.hpp │ │ │ │ ├── workingsetflags_t.end.hpp │ │ │ │ ├── workingsetflags_t.start.hpp │ │ │ │ ├── workingsetinfo_t.end.hpp │ │ │ │ ├── workingsetinfo_t.start.hpp │ │ │ │ ├── xbox_t.end.hpp │ │ │ │ └── xbox_t.start.hpp │ │ │ ├── markdeviceaserror_t.hpp │ │ │ ├── memory_segment_group_t.hpp │ │ │ ├── miracast_display_device_caps_t.hpp │ │ │ ├── miracast_display_device_status_t.hpp │ │ │ ├── miracast_display_stop_sessions_t.hpp │ │ │ ├── miracast_driver_type_t.hpp │ │ │ ├── miracastcompaniondrivername_t.hpp │ │ │ ├── move_rect_t.hpp │ │ │ ├── mpo3ddi_support_t.hpp │ │ │ ├── mpokernelcaps_support_t.hpp │ │ │ ├── multiplane_overlay2_t.hpp │ │ │ ├── multiplane_overlay3_t.hpp │ │ │ ├── multiplane_overlay_attributes2_t.hpp │ │ │ ├── multiplane_overlay_attributes3_t.hpp │ │ │ ├── multiplane_overlay_attributes_t.hpp │ │ │ ├── multiplane_overlay_blend_t.hpp │ │ │ ├── multiplane_overlay_caps_t.hpp │ │ │ ├── multiplane_overlay_flags_t.hpp │ │ │ ├── multiplane_overlay_post_composition_flags_t.hpp │ │ │ ├── multiplane_overlay_post_composition_t.hpp │ │ │ ├── multiplane_overlay_post_composition_with_source_t.hpp │ │ │ ├── multiplane_overlay_stereo_format_t.hpp │ │ │ ├── multiplane_overlay_t.hpp │ │ │ ├── multiplane_overlay_video_frame_format_t.hpp │ │ │ ├── multiplane_overlay_y_cb_cr_flags_t.hpp │ │ │ ├── multiplaneoverlay_decode_support_t.hpp │ │ │ ├── multiplaneoverlay_hud_support_t.hpp │ │ │ ├── multiplaneoverlay_secondary_support_t.hpp │ │ │ ├── multiplaneoverlay_stretch_support_t.hpp │ │ │ ├── multiplaneoverlay_support_t.hpp │ │ │ ├── multisamplemethod_t.hpp │ │ │ ├── node_perfdata_t.hpp │ │ │ ├── nodemetadata_t.hpp │ │ │ ├── offer_flags_t.hpp │ │ │ ├── offer_priority_t.hpp │ │ │ ├── offerallocations_t.hpp │ │ │ ├── openadapterfromdevicename_t.hpp │ │ │ ├── openadapterfromgdidisplayname_t.hpp │ │ │ ├── openadapterfromhdc_t.hpp │ │ │ ├── openadapterfromluid_t.hpp │ │ │ ├── openglinfo_t.hpp │ │ │ ├── openkeyedmutex2_t.hpp │ │ │ ├── openkeyedmutex_t.hpp │ │ │ ├── openkeyedmutexfromnthandle_t.hpp │ │ │ ├── opennthandlefromname_t.hpp │ │ │ ├── openprotectedsessionfromnthandle_t.hpp │ │ │ ├── openresource_t.hpp │ │ │ ├── openresourcefromnthandle_t.hpp │ │ │ ├── opensynchronizationobject_t.hpp │ │ │ ├── opensyncobjectfromnthandle2_t.hpp │ │ │ ├── opensyncobjectfromnthandle_t.hpp │ │ │ ├── opensyncobjectnthandlefromname_t.hpp │ │ │ ├── outdupl_pointer_shape_info_t.hpp │ │ │ ├── outdupl_pointer_shape_type_t.hpp │ │ │ ├── outputdupl_frameinfo_t.hpp │ │ │ ├── outputdupl_get_frameinfo_t.hpp │ │ │ ├── outputdupl_get_pointer_shape_data_t.hpp │ │ │ ├── outputdupl_keyedmutex_t.hpp │ │ │ ├── outputdupl_metadata_t.hpp │ │ │ ├── outputdupl_metadatatype_t.hpp │ │ │ ├── outputdupl_pointer_position_t.hpp │ │ │ ├── outputdupl_release_frame_t.hpp │ │ │ ├── outputdupl_snapshot_t.hpp │ │ │ ├── outputduplcontextscount_t.hpp │ │ │ ├── outputduplcreationflags_t.hpp │ │ │ ├── outputduplpresent_t.hpp │ │ │ ├── outputduplpresentflags_t.hpp │ │ │ ├── outputduplpresenttohwqueue_t.hpp │ │ │ ├── page_table_level_desc_t.hpp │ │ │ ├── panelfitter_support_t.hpp │ │ │ ├── paravirtualization_t.hpp │ │ │ ├── physical_adapter_count_t.hpp │ │ │ ├── pindirectflipresources_t.hpp │ │ │ ├── plane_specific_input_flags_t.hpp │ │ │ ├── plane_specific_output_flags_t.hpp │ │ │ ├── pnp_key_type_t.hpp │ │ │ ├── polldisplaychildren_t.hpp │ │ │ ├── present_display_only_flags_t.hpp │ │ │ ├── present_model_t.hpp │ │ │ ├── present_multiplane_overlay2_t.hpp │ │ │ ├── present_multiplane_overlay3_t.hpp │ │ │ ├── present_multiplane_overlay_flags_t.hpp │ │ │ ├── present_multiplane_overlay_t.hpp │ │ │ ├── present_redirected_t.hpp │ │ │ ├── present_redirecteds_flags_t.hpp │ │ │ ├── present_rgns_t.hpp │ │ │ ├── present_stats_dwm_t.hpp │ │ │ ├── present_stats_t.hpp │ │ │ ├── present_t.hpp │ │ │ ├── presentflags_t.hpp │ │ │ ├── presenthistorytoken_t.hpp │ │ │ ├── process_verifier_option_data_t.hpp │ │ │ ├── process_verifier_option_t.hpp │ │ │ ├── process_verifier_option_type_t.hpp │ │ │ ├── process_verifier_vidmm_flags_t.hpp │ │ │ ├── process_verifier_vidmm_restrict_budget_t.hpp │ │ │ ├── protected_session_status_t.hpp │ │ │ ├── query_adapter_unique_guid_t.hpp │ │ │ ├── query_device_ids_t.hpp │ │ │ ├── query_gpummu_caps_t.hpp │ │ │ ├── query_miracast_driver_type_t.hpp │ │ │ ├── query_physical_adapter_pnp_key_t.hpp │ │ │ ├── query_scanout_caps_t.hpp │ │ │ ├── queryadapterinfo_t.hpp │ │ │ ├── queryallocationresidency_t.hpp │ │ │ ├── queryclockcalibration_t.hpp │ │ │ ├── queryfseblock_t.hpp │ │ │ ├── queryfseflags_t.hpp │ │ │ ├── queryprocessofferinfo_t.hpp │ │ │ ├── queryprotectedsessioninfofromnthandle_t.hpp │ │ │ ├── queryprotectedsessionstatus_t.hpp │ │ │ ├── queryremotevidpnsourcefromgdidisplayname_t.hpp │ │ │ ├── queryresourceinfo_t.hpp │ │ │ ├── queryresourceinfofromnthandle_t.hpp │ │ │ ├── queryresult_preemption_attempt_result_t.hpp │ │ │ ├── querystatistics_allocation_priority_class_t.hpp │ │ │ ├── querystatistics_dma_packet_type_t.hpp │ │ │ ├── querystatistics_query_node_t.hpp │ │ │ ├── querystatistics_query_segment_t.hpp │ │ │ ├── querystatistics_query_vidpnsource_t.hpp │ │ │ ├── querystatistics_queue_packet_type_t.hpp │ │ │ ├── querystatistics_result_t.hpp │ │ │ ├── querystatistics_t.hpp │ │ │ ├── querystatistics_type_t.hpp │ │ │ ├── queryvideomemoryinfo_t.hpp │ │ │ ├── queryvidpnexclusiveownership_t.hpp │ │ │ ├── queuedlimit_type_t.hpp │ │ │ ├── reclaimallocations2_t.hpp │ │ │ ├── reclaimallocations_t.hpp │ │ │ ├── registerbudgetchangenotification_t.hpp │ │ │ ├── registertrimnotification_t.hpp │ │ │ ├── releasekeyedmutex2_t.hpp │ │ │ ├── releasekeyedmutex_t.hpp │ │ │ ├── render_t.hpp │ │ │ ├── renderflags_t.hpp │ │ │ ├── request_machine_crash_escape_t.hpp │ │ │ ├── scatterblt_t.hpp │ │ │ ├── scatterblts_t.hpp │ │ │ ├── schedulingpriorityclass_t.hpp │ │ │ ├── segment_caps_t.hpp │ │ │ ├── segmentgroupsizeinfo_t.hpp │ │ │ ├── segmentsizeinfo_t.hpp │ │ │ ├── set_colorspace_transform_t.hpp │ │ │ ├── setallocationpriority_t.hpp │ │ │ ├── setcontextinprocessschedulingpriority_t.hpp │ │ │ ├── setcontextschedulingpriority_t.hpp │ │ │ ├── setdisplaymode_flags_t.hpp │ │ │ ├── setdisplaymode_t.hpp │ │ │ ├── setdisplayprivatedriverformat_t.hpp │ │ │ ├── setfseblock_t.hpp │ │ │ ├── setfseblockflags_t.hpp │ │ │ ├── setgammaramp_t.hpp │ │ │ ├── sethwprotectionteardownrecovery_t.hpp │ │ │ ├── setqueuedlimit_t.hpp │ │ │ ├── setstablepowerstate_t.hpp │ │ │ ├── setsyncrefreshcountwaittarget_t.hpp │ │ │ ├── setvidpnsourcehwprotection_t.hpp │ │ │ ├── setvidpnsourceowner1_t.hpp │ │ │ ├── setvidpnsourceowner2_t.hpp │ │ │ ├── setvidpnsourceowner_t.hpp │ │ │ ├── sharedprimarylocknotification_t.hpp │ │ │ ├── sharedprimaryunlocknotification_t.hpp │ │ │ ├── signalsynchronizationobject2_t.hpp │ │ │ ├── signalsynchronizationobject_t.hpp │ │ │ ├── signalsynchronizationobjectfromcpu_t.hpp │ │ │ ├── signalsynchronizationobjectfromgpu2_t.hpp │ │ │ ├── signalsynchronizationobjectfromgpu_t.hpp │ │ │ ├── standardallocation_existingheap_t.hpp │ │ │ ├── standardallocationtype_t.hpp │ │ │ ├── submitcommand_t.hpp │ │ │ ├── submitcommandflags_t.hpp │ │ │ ├── submitcommandtohwqueue_t.hpp │ │ │ ├── submitpresentblttohwqueue_t.hpp │ │ │ ├── submitpresenttohwqueue_t.hpp │ │ │ ├── submitsignalsyncobjectstohwqueue_t.hpp │ │ │ ├── submitwaitforsyncobjectstohwqueue_t.hpp │ │ │ ├── surfacecomplete_presenthistorytoken_t.hpp │ │ │ ├── tdrdbgctrl_escape_t.hpp │ │ │ ├── tdrdbgctrltype_t.hpp │ │ │ ├── trackedworkload_support_t.hpp │ │ │ ├── trimnotification_t.hpp │ │ │ ├── trimprocesscommitment_flags_t.hpp │ │ │ ├── trimprocesscommitment_t.hpp │ │ │ ├── umd_driver_version_t.hpp │ │ │ ├── umdfilenameinfo_t.hpp │ │ │ ├── unlock2_t.hpp │ │ │ ├── unlock_t.hpp │ │ │ ├── unpindirectflipresources_t.hpp │ │ │ ├── unregisterbudgetchangenotification_t.hpp │ │ │ ├── unregistertrimnotification_t.hpp │ │ │ ├── updategpuvirtualaddress_t.hpp │ │ │ ├── updateoverlay_t.hpp │ │ │ ├── va_range_desc_t.hpp │ │ │ ├── vad_desc_t.hpp │ │ │ ├── vad_escape_command_t.hpp │ │ │ ├── verifier_option_mode_t.hpp │ │ │ ├── vidmm_escape_t.hpp │ │ │ ├── vidmmescapetype_t.hpp │ │ │ ├── vidpnsourceowner_flags_t.hpp │ │ │ ├── vidpnsourceowner_type_t.hpp │ │ │ ├── vidsch_escape_t.hpp │ │ │ ├── vidschescapetype_t.hpp │ │ │ ├── virtualaddressflags_t.hpp │ │ │ ├── virtualaddressinfo_t.hpp │ │ │ ├── waitforidle_t.hpp │ │ │ ├── waitforsynchronizationobject2_t.hpp │ │ │ ├── waitforsynchronizationobject_t.hpp │ │ │ ├── waitforsynchronizationobjectfromcpu_t.hpp │ │ │ ├── waitforsynchronizationobjectfromgpu_t.hpp │ │ │ ├── waitforverticalblankevent2_t.hpp │ │ │ ├── waitforverticalblankevent_t.hpp │ │ │ ├── wddm_1_2_caps_t.hpp │ │ │ ├── wddm_1_3_caps_t.hpp │ │ │ ├── wddm_2_0_caps_t.hpp │ │ │ ├── wddm_2_7_caps_t.hpp │ │ │ ├── workingsetflags_t.hpp │ │ │ ├── workingsetinfo_t.hpp │ │ │ └── xbox_t.hpp │ │ ├── dbg/ │ │ │ ├── api.hpp │ │ │ ├── log_reason_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ └── state_t.hpp │ │ ├── dbgk/ │ │ │ ├── api.hpp │ │ │ ├── livedump_callback_routine_t.hpp │ │ │ ├── livedump_flags_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── livedump_flags_t.end.hpp │ │ │ │ ├── livedump_flags_t.start.hpp │ │ │ │ ├── silostate_t.end.hpp │ │ │ │ └── silostate_t.start.hpp │ │ │ └── silostate_t.hpp │ │ ├── dbgkd/ │ │ │ ├── any_control_set_t.hpp │ │ │ ├── breakpointex_t.hpp │ │ │ ├── context_ex_t.hpp │ │ │ ├── continue2_t.hpp │ │ │ ├── continue_t.hpp │ │ │ ├── debug_data_header64_t.hpp │ │ │ ├── fill_memory_t.hpp │ │ │ ├── get_context_t.hpp │ │ │ ├── get_internal_breakpoint32_t.hpp │ │ │ ├── get_internal_breakpoint64_t.hpp │ │ │ ├── get_set_bus_data_t.hpp │ │ │ ├── get_version32_t.hpp │ │ │ ├── get_version64_t.hpp │ │ │ ├── load_symbols32_t.hpp │ │ │ ├── load_symbols64_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── any_control_set_t.end.hpp │ │ │ │ ├── any_control_set_t.start.hpp │ │ │ │ ├── breakpointex_t.end.hpp │ │ │ │ ├── breakpointex_t.start.hpp │ │ │ │ ├── context_ex_t.end.hpp │ │ │ │ ├── context_ex_t.start.hpp │ │ │ │ ├── continue2_t.end.hpp │ │ │ │ ├── continue2_t.start.hpp │ │ │ │ ├── continue_t.end.hpp │ │ │ │ ├── continue_t.start.hpp │ │ │ │ ├── debug_data_header64_t.end.hpp │ │ │ │ ├── debug_data_header64_t.start.hpp │ │ │ │ ├── fill_memory_t.end.hpp │ │ │ │ ├── fill_memory_t.start.hpp │ │ │ │ ├── get_internal_breakpoint32_t.end.hpp │ │ │ │ ├── get_internal_breakpoint32_t.start.hpp │ │ │ │ ├── get_internal_breakpoint64_t.end.hpp │ │ │ │ ├── get_internal_breakpoint64_t.start.hpp │ │ │ │ ├── get_set_bus_data_t.end.hpp │ │ │ │ ├── get_set_bus_data_t.start.hpp │ │ │ │ ├── get_version32_t.end.hpp │ │ │ │ ├── get_version32_t.start.hpp │ │ │ │ ├── get_version64_t.end.hpp │ │ │ │ ├── get_version64_t.start.hpp │ │ │ │ ├── load_symbols32_t.end.hpp │ │ │ │ ├── load_symbols32_t.start.hpp │ │ │ │ ├── load_symbols64_t.end.hpp │ │ │ │ ├── load_symbols64_t.start.hpp │ │ │ │ ├── manipulate_state32_t.end.hpp │ │ │ │ ├── manipulate_state32_t.start.hpp │ │ │ │ ├── manipulate_state64_t.end.hpp │ │ │ │ ├── manipulate_state64_t.start.hpp │ │ │ │ ├── query_memory_t.end.hpp │ │ │ │ ├── query_memory_t.start.hpp │ │ │ │ ├── query_special_calls_t.end.hpp │ │ │ │ ├── query_special_calls_t.start.hpp │ │ │ │ ├── read_memory32_t.end.hpp │ │ │ │ ├── read_memory32_t.start.hpp │ │ │ │ ├── read_memory64_t.end.hpp │ │ │ │ ├── read_memory64_t.start.hpp │ │ │ │ ├── read_write_io32_t.end.hpp │ │ │ │ ├── read_write_io32_t.start.hpp │ │ │ │ ├── read_write_io64_t.end.hpp │ │ │ │ ├── read_write_io64_t.start.hpp │ │ │ │ ├── read_write_io_extended32_t.end.hpp │ │ │ │ ├── read_write_io_extended32_t.start.hpp │ │ │ │ ├── read_write_io_extended64_t.end.hpp │ │ │ │ ├── read_write_io_extended64_t.start.hpp │ │ │ │ ├── read_write_msr_t.end.hpp │ │ │ │ ├── read_write_msr_t.start.hpp │ │ │ │ ├── restore_breakpoint_t.end.hpp │ │ │ │ ├── restore_breakpoint_t.start.hpp │ │ │ │ ├── search_memory_t.end.hpp │ │ │ │ ├── search_memory_t.start.hpp │ │ │ │ ├── set_context_t.end.hpp │ │ │ │ ├── set_context_t.start.hpp │ │ │ │ ├── set_internal_breakpoint32_t.end.hpp │ │ │ │ ├── set_internal_breakpoint32_t.start.hpp │ │ │ │ ├── set_internal_breakpoint64_t.end.hpp │ │ │ │ ├── set_internal_breakpoint64_t.start.hpp │ │ │ │ ├── set_special_call32_t.end.hpp │ │ │ │ ├── set_special_call32_t.start.hpp │ │ │ │ ├── set_special_call64_t.end.hpp │ │ │ │ ├── set_special_call64_t.start.hpp │ │ │ │ ├── switch_partition_t.end.hpp │ │ │ │ ├── switch_partition_t.start.hpp │ │ │ │ ├── write_breakpoint32_t.end.hpp │ │ │ │ ├── write_breakpoint32_t.start.hpp │ │ │ │ ├── write_breakpoint64_t.end.hpp │ │ │ │ ├── write_breakpoint64_t.start.hpp │ │ │ │ ├── write_custom_breakpoint_t.end.hpp │ │ │ │ ├── write_custom_breakpoint_t.start.hpp │ │ │ │ ├── write_memory32_t.end.hpp │ │ │ │ ├── write_memory32_t.start.hpp │ │ │ │ ├── write_memory64_t.end.hpp │ │ │ │ └── write_memory64_t.start.hpp │ │ │ ├── manipulate_state32_t.hpp │ │ │ ├── manipulate_state64_t.hpp │ │ │ ├── query_memory_t.hpp │ │ │ ├── query_special_calls_t.hpp │ │ │ ├── read_memory32_t.hpp │ │ │ ├── read_memory64_t.hpp │ │ │ ├── read_write_io32_t.hpp │ │ │ ├── read_write_io64_t.hpp │ │ │ ├── read_write_io_extended32_t.hpp │ │ │ ├── read_write_io_extended64_t.hpp │ │ │ ├── read_write_msr_t.hpp │ │ │ ├── restore_breakpoint_t.hpp │ │ │ ├── search_memory_t.hpp │ │ │ ├── set_context_t.hpp │ │ │ ├── set_internal_breakpoint32_t.hpp │ │ │ ├── set_internal_breakpoint64_t.hpp │ │ │ ├── set_special_call32_t.hpp │ │ │ ├── set_special_call64_t.hpp │ │ │ ├── switch_partition_t.hpp │ │ │ ├── write_breakpoint32_t.hpp │ │ │ ├── write_breakpoint64_t.hpp │ │ │ ├── write_custom_breakpoint_t.hpp │ │ │ ├── write_memory32_t.hpp │ │ │ └── write_memory64_t.hpp │ │ ├── dbgkm/ │ │ │ ├── create_process_t.hpp │ │ │ ├── create_thread_t.hpp │ │ │ ├── exception32_t.hpp │ │ │ ├── exception64_t.hpp │ │ │ ├── exception_t.hpp │ │ │ ├── exit_process_t.hpp │ │ │ ├── exit_thread_t.hpp │ │ │ ├── load_dll_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── create_process_t.end.hpp │ │ │ │ ├── create_process_t.start.hpp │ │ │ │ ├── create_thread_t.end.hpp │ │ │ │ ├── create_thread_t.start.hpp │ │ │ │ ├── exception32_t.end.hpp │ │ │ │ ├── exception32_t.start.hpp │ │ │ │ ├── exception64_t.end.hpp │ │ │ │ ├── exception64_t.start.hpp │ │ │ │ ├── exception_t.end.hpp │ │ │ │ ├── exception_t.start.hpp │ │ │ │ ├── exit_process_t.end.hpp │ │ │ │ ├── exit_process_t.start.hpp │ │ │ │ ├── exit_thread_t.end.hpp │ │ │ │ ├── exit_thread_t.start.hpp │ │ │ │ ├── load_dll_t.end.hpp │ │ │ │ ├── load_dll_t.start.hpp │ │ │ │ ├── unload_dll_t.end.hpp │ │ │ │ └── unload_dll_t.start.hpp │ │ │ └── unload_dll_t.hpp │ │ ├── dbgkp/ │ │ │ ├── api.hpp │ │ │ ├── error_port_t.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── dbgp/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── devpkey/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── disk/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── dma/ │ │ │ ├── adapter_info_crashdump_t.hpp │ │ │ ├── adapter_info_t.hpp │ │ │ ├── adapter_info_v1_t.hpp │ │ │ ├── adapter_t.hpp │ │ │ ├── api.hpp │ │ │ ├── common_buffer_entry_t.hpp │ │ │ ├── common_buffer_extended_configuration_access_type_t.hpp │ │ │ ├── common_buffer_extended_configuration_t.hpp │ │ │ ├── common_buffer_extended_configuration_type_t.hpp │ │ │ ├── common_buffer_vector_t.hpp │ │ │ ├── completion_status_t.hpp │ │ │ ├── configuration_byte0_t.hpp │ │ │ ├── configuration_byte1_t.hpp │ │ │ ├── function_table_t.hpp │ │ │ ├── interrupt_type_t.hpp │ │ │ ├── iommu_interface_ex_t.hpp │ │ │ ├── iommu_interface_t.hpp │ │ │ ├── iommu_interface_v1_t.hpp │ │ │ ├── iommu_interface_v2_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── adapter_info_crashdump_t.end.hpp │ │ │ │ ├── adapter_info_crashdump_t.start.hpp │ │ │ │ ├── adapter_info_t.end.hpp │ │ │ │ ├── adapter_info_t.start.hpp │ │ │ │ ├── adapter_info_v1_t.end.hpp │ │ │ │ ├── adapter_info_v1_t.start.hpp │ │ │ │ ├── adapter_t.end.hpp │ │ │ │ ├── adapter_t.start.hpp │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── common_buffer_entry_t.end.hpp │ │ │ │ ├── common_buffer_entry_t.start.hpp │ │ │ │ ├── common_buffer_extended_configuration_t.end.hpp │ │ │ │ ├── common_buffer_extended_configuration_t.start.hpp │ │ │ │ ├── common_buffer_vector_t.end.hpp │ │ │ │ ├── common_buffer_vector_t.start.hpp │ │ │ │ ├── configuration_byte0_t.end.hpp │ │ │ │ ├── configuration_byte0_t.start.hpp │ │ │ │ ├── configuration_byte1_t.end.hpp │ │ │ │ ├── configuration_byte1_t.start.hpp │ │ │ │ ├── function_table_t.end.hpp │ │ │ │ ├── function_table_t.start.hpp │ │ │ │ ├── iommu_interface_ex_t.end.hpp │ │ │ │ ├── iommu_interface_ex_t.start.hpp │ │ │ │ ├── iommu_interface_t.end.hpp │ │ │ │ ├── iommu_interface_t.start.hpp │ │ │ │ ├── iommu_interface_v1_t.end.hpp │ │ │ │ ├── iommu_interface_v1_t.start.hpp │ │ │ │ ├── iommu_interface_v2_t.end.hpp │ │ │ │ ├── iommu_interface_v2_t.start.hpp │ │ │ │ ├── operations_t.end.hpp │ │ │ │ ├── operations_t.start.hpp │ │ │ │ ├── request_line_binding_description_t.end.hpp │ │ │ │ ├── request_line_binding_description_t.start.hpp │ │ │ │ ├── scatter_gather_list_t.end.hpp │ │ │ │ ├── scatter_gather_list_t.start.hpp │ │ │ │ ├── transfer_context_t.end.hpp │ │ │ │ ├── transfer_context_t.start.hpp │ │ │ │ ├── transfer_context_v1_t.end.hpp │ │ │ │ ├── transfer_context_v1_t.start.hpp │ │ │ │ ├── transfer_info_t.end.hpp │ │ │ │ ├── transfer_info_t.start.hpp │ │ │ │ ├── transfer_info_v1_t.end.hpp │ │ │ │ ├── transfer_info_v1_t.start.hpp │ │ │ │ ├── transfer_info_v2_t.end.hpp │ │ │ │ └── transfer_info_v2_t.start.hpp │ │ │ ├── operations_t.hpp │ │ │ ├── parameters_t.hpp │ │ │ ├── request_line_binding_description_t.hpp │ │ │ ├── scatter_gather_list_t.hpp │ │ │ ├── speed_t.hpp │ │ │ ├── transfer_context_t.hpp │ │ │ ├── transfer_context_v1_t.hpp │ │ │ ├── transfer_info_t.hpp │ │ │ ├── transfer_info_v1_t.hpp │ │ │ ├── transfer_info_v2_t.hpp │ │ │ └── width_t.hpp │ │ ├── dmar/ │ │ │ ├── api.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ └── page_table_state_t.hpp │ │ ├── dmm/ │ │ │ ├── api.hpp │ │ │ ├── client_type_t.hpp │ │ │ ├── cofuncpathsmodality_serialization_t.hpp │ │ │ ├── commitvidpnrequest_diaginfo_t.hpp │ │ │ ├── commitvidpnrequest_serialization_t.hpp │ │ │ ├── commitvidpnrequestset_serialization_t.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── cofuncpathsmodality_serialization_t.end.hpp │ │ │ │ ├── cofuncpathsmodality_serialization_t.start.hpp │ │ │ │ ├── commitvidpnrequest_diaginfo_t.end.hpp │ │ │ │ ├── commitvidpnrequest_diaginfo_t.start.hpp │ │ │ │ ├── commitvidpnrequest_serialization_t.end.hpp │ │ │ │ ├── commitvidpnrequest_serialization_t.start.hpp │ │ │ │ ├── commitvidpnrequestset_serialization_t.end.hpp │ │ │ │ ├── commitvidpnrequestset_serialization_t.start.hpp │ │ │ │ ├── monitor_serialization_t.end.hpp │ │ │ │ ├── monitor_serialization_t.start.hpp │ │ │ │ ├── monitor_source_mode_serialization_t.end.hpp │ │ │ │ ├── monitor_source_mode_serialization_t.start.hpp │ │ │ │ ├── monitordescriptor_serialization_t.end.hpp │ │ │ │ ├── monitordescriptor_serialization_t.start.hpp │ │ │ │ ├── monitordescriptorset_serialization_t.end.hpp │ │ │ │ ├── monitordescriptorset_serialization_t.start.hpp │ │ │ │ ├── monitorfrequencyrangeset_serialization_t.end.hpp │ │ │ │ ├── monitorfrequencyrangeset_serialization_t.start.hpp │ │ │ │ ├── monitorsourcemodeset_serialization_t.end.hpp │ │ │ │ ├── monitorsourcemodeset_serialization_t.start.hpp │ │ │ │ ├── vidpn_serialization_t.end.hpp │ │ │ │ ├── vidpn_serialization_t.start.hpp │ │ │ │ ├── vidpnpathandtargetmode_serialization_t.end.hpp │ │ │ │ ├── vidpnpathandtargetmode_serialization_t.start.hpp │ │ │ │ ├── vidpnpathandtargetmodeset_serialization_t.end.hpp │ │ │ │ ├── vidpnpathandtargetmodeset_serialization_t.start.hpp │ │ │ │ ├── vidpnpathsfromsource_serialization_t.end.hpp │ │ │ │ ├── vidpnpathsfromsource_serialization_t.start.hpp │ │ │ │ ├── vidpnset_serialization_t.end.hpp │ │ │ │ ├── vidpnset_serialization_t.start.hpp │ │ │ │ ├── vidpntargetmodeset_serialization_t.end.hpp │ │ │ │ └── vidpntargetmodeset_serialization_t.start.hpp │ │ │ ├── mode_pruning_algorithm_t.hpp │ │ │ ├── monitor_presence_event_type_t.hpp │ │ │ ├── monitor_serialization_t.hpp │ │ │ ├── monitor_source_mode_serialization_t.hpp │ │ │ ├── monitordescriptor_serialization_t.hpp │ │ │ ├── monitordescriptorset_serialization_t.hpp │ │ │ ├── monitorfrequencyrangeset_serialization_t.hpp │ │ │ ├── monitorsourcemodeset_serialization_t.hpp │ │ │ ├── vidpn_monitor_type_t.hpp │ │ │ ├── vidpn_serialization_t.hpp │ │ │ ├── vidpnchange_type_t.hpp │ │ │ ├── vidpnpathandtargetmode_serialization_t.hpp │ │ │ ├── vidpnpathandtargetmodeset_serialization_t.hpp │ │ │ ├── vidpnpathsfromsource_serialization_t.hpp │ │ │ ├── vidpnset_serialization_t.hpp │ │ │ └── vidpntargetmodeset_serialization_t.hpp │ │ ├── dmr/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── dmrp/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── drv/ │ │ │ ├── api.hpp │ │ │ ├── extension_t.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ ├── api.start.hpp │ │ │ ├── extension_t.end.hpp │ │ │ └── extension_t.start.hpp │ │ ├── drvp/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── dwm/ │ │ │ ├── api.hpp │ │ │ ├── hit_test_leave_enter_crit/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── dxgi/ │ │ │ ├── adapter_enum_module_data/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── api.hpp │ │ │ ├── atl/ │ │ │ │ ├── api.hpp │ │ │ │ ├── c_atl_base_module/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── c_atl_com_module/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── c_atl_module/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── c_com_critical_section/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── c_com_multi_thread_model_no_cs/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── c_com_object_root_base/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── auto_hrgn/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── auto_hsdb/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── auto_unbind_from_dwm/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_closest_mm_helper/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_critical_section/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_destruction_notifier/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_driver_block_list/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_dxgi_etw_profile_pair/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_lazy_module/ │ │ │ │ ├── api.hpp │ │ │ │ ├── d_composition_info/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_lock_owner/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_locked_dll_globals/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_locked_factory_child/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_module/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_paper_white_brightness_listener/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_private_data/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_public_use_count_watcher/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_registry_watcher/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_source_bits/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_source_bits_dib_section/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_source_bits_existing_dxgi_surface/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_telemetry_helper/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_thread_lock/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cd3d11_format_helper/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cd3d12_device/ │ │ │ │ ├── api.hpp │ │ │ │ ├── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ └── s_per_queue_type_data/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cd3d12_fence/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cd3d12_resource/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cd3dx12_blend_desc/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cddi_primary_desc/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxg_kernel_enumeration/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_adapter/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_base_adapter/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_color_space_helper/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_enumerated_mode/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_factory/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_format/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_indirect_swap_chain/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_lightweight_device/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_mode_desc/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_mutex_in_separate_thread/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_output/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_output_duplication/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_surface_dib_section/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_swap_chain/ │ │ │ │ ├── api.hpp │ │ │ │ ├── c_prep_win32_sentinel/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── cross_adapter_fence/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ └── proxy_flip_info/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_swap_chain_application_class/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_swap_chain_dwm_legacy/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_swap_chain_wrapper/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgi_telemetry_helper/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cdxgihmd_emulated_output/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_create_dxgi_factory/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_adapter_check_interface_support/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_factory_create_software_adapter/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_factory_create_swap_chain/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_factory_enum_adapters/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_factory_get_window_association/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_factory_make_window_association/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_output_find_closest_matching_mode/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_output_get_display_mode_list/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_output_get_display_surface_data/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_output_get_frame_statistics/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_output_get_gamma_control/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_output_get_gamma_control_capabilities/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_output_release_ownership/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_output_set_display_surface/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_output_set_gamma_control/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_output_take_ownership/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_swap_chain_get_containing_output/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_swap_chain_get_desc/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_swap_chain_get_frame_statistics/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_swap_chain_get_fullscreen_state/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_swap_chain_resize_buffers/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_swap_chain_resize_target/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── cetw_event_idxgi_swap_chain_set_fullscreen_state/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── chdr_converter/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── chdr_converter_dx11/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── chdr_converter_dx12/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── color_space_type_t.hpp │ │ │ ├── com_error/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── ddi/ │ │ │ │ └── cb/ │ │ │ │ ├── magic/ │ │ │ │ │ ├── present_multiplane_overlay1_t.end.hpp │ │ │ │ │ ├── present_multiplane_overlay1_t.start.hpp │ │ │ │ │ ├── present_multiplane_overlay_t.end.hpp │ │ │ │ │ ├── present_multiplane_overlay_t.start.hpp │ │ │ │ │ ├── present_t.end.hpp │ │ │ │ │ ├── present_t.start.hpp │ │ │ │ │ ├── submitpresentblttohwqueue_t.end.hpp │ │ │ │ │ ├── submitpresentblttohwqueue_t.start.hpp │ │ │ │ │ ├── submitpresenttohwqueue_t.end.hpp │ │ │ │ │ └── submitpresenttohwqueue_t.start.hpp │ │ │ │ ├── present_multiplane_overlay1_t.hpp │ │ │ │ ├── present_multiplane_overlay_t.hpp │ │ │ │ ├── present_t.hpp │ │ │ │ ├── submitpresentblttohwqueue_t.hpp │ │ │ │ └── submitpresenttohwqueue_t.hpp │ │ │ ├── ddi_arg_blt1_t.hpp │ │ │ ├── ddi_arg_blt_flags_t.hpp │ │ │ ├── ddi_arg_blt_t.hpp │ │ │ ├── ddi_arg_checkmultiplaneoverlaycolorspacesupport_t.hpp │ │ │ ├── ddi_arg_checkmultiplaneoverlaysupport_t.hpp │ │ │ ├── ddi_arg_checkpresentdurationsupport_t.hpp │ │ │ ├── ddi_arg_get_gamma_control_caps_t.hpp │ │ │ ├── ddi_arg_getmultiplaneoverlaycaps_t.hpp │ │ │ ├── ddi_arg_getmultiplaneoverlaygroupcaps_t.hpp │ │ │ ├── ddi_arg_offerresources1_t.hpp │ │ │ ├── ddi_arg_offerresources_t.hpp │ │ │ ├── ddi_arg_present1_t.hpp │ │ │ ├── ddi_arg_present_t.hpp │ │ │ ├── ddi_arg_presentmultiplaneoverlay1_t.hpp │ │ │ ├── ddi_arg_presentmultiplaneoverlay_t.hpp │ │ │ ├── ddi_arg_presentsurface_t.hpp │ │ │ ├── ddi_arg_queryresourceresidency_t.hpp │ │ │ ├── ddi_arg_reclaimresources1_t.hpp │ │ │ ├── ddi_arg_reclaimresources_t.hpp │ │ │ ├── ddi_arg_resolvesharedresource_t.hpp │ │ │ ├── ddi_arg_rotate_resource_identities_t.hpp │ │ │ ├── ddi_arg_set_gamma_control_t.hpp │ │ │ ├── ddi_arg_setdisplaymode_t.hpp │ │ │ ├── ddi_arg_setresourcepriority_t.hpp │ │ │ ├── ddi_arg_trimresidencyset_t.hpp │ │ │ ├── ddi_base_args_t.hpp │ │ │ ├── ddi_base_callbacks_t.hpp │ │ │ ├── ddi_base_functions_t.hpp │ │ │ ├── ddi_check_multiplaneoverlaysupport_plane_info_t.hpp │ │ │ ├── ddi_flip_interval_type_t.hpp │ │ │ ├── ddi_mode_desc_t.hpp │ │ │ ├── ddi_mode_rotation_t.hpp │ │ │ ├── ddi_mode_scaling_t.hpp │ │ │ ├── ddi_mode_scanline_order_t.hpp │ │ │ ├── ddi_multiplane_overlay_attributes1_t.hpp │ │ │ ├── ddi_multiplane_overlay_attributes_t.hpp │ │ │ ├── ddi_multiplane_overlay_blend_t.hpp │ │ │ ├── ddi_multiplane_overlay_caps_t.hpp │ │ │ ├── ddi_multiplane_overlay_feature_caps_t.hpp │ │ │ ├── ddi_multiplane_overlay_flags_t.hpp │ │ │ ├── ddi_multiplane_overlay_group_caps_t.hpp │ │ │ ├── ddi_multiplane_overlay_stereo_caps_t.hpp │ │ │ ├── ddi_multiplane_overlay_stereo_flip_mode_t.hpp │ │ │ ├── ddi_multiplane_overlay_stereo_format_t.hpp │ │ │ ├── ddi_multiplane_overlay_stretch_quality_t.hpp │ │ │ ├── ddi_multiplane_overlay_video_frame_format_t.hpp │ │ │ ├── ddi_multiplane_overlay_y_cb_cr_flags_t.hpp │ │ │ ├── ddi_present_flags_t.hpp │ │ │ ├── ddi_present_multiplane_overlay1_t.hpp │ │ │ ├── ddi_present_multiplane_overlay_t.hpp │ │ │ ├── ddi_primary_desc_t.hpp │ │ │ ├── ddi_rational_t.hpp │ │ │ ├── ddi_residency_t.hpp │ │ │ ├── direct_x_database_helper_telemetry/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── enum_adapter_by_gpu_preference_info/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── exception/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── float16/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── format_t.hpp │ │ │ ├── fullscreen_present_info/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── game_config_store/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── gamma_control_capabilities_t.hpp │ │ │ ├── gamma_control_t.hpp │ │ │ ├── gdi_thunks/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── gpm_helper/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── jpeg_ac_huffman_table_t.hpp │ │ │ ├── jpeg_dc_huffman_table_t.hpp │ │ │ ├── jpeg_quantization_table_t.hpp │ │ │ ├── lock_owner_lock/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── log_marker_helper/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ ├── api.start.hpp │ │ │ │ ├── ddi_arg_blt1_t.end.hpp │ │ │ │ ├── ddi_arg_blt1_t.start.hpp │ │ │ │ ├── ddi_arg_blt_flags_t.end.hpp │ │ │ │ ├── ddi_arg_blt_flags_t.start.hpp │ │ │ │ ├── ddi_arg_blt_t.end.hpp │ │ │ │ ├── ddi_arg_blt_t.start.hpp │ │ │ │ ├── ddi_arg_checkmultiplaneoverlaycolorspacesupport_t.end.hpp │ │ │ │ ├── ddi_arg_checkmultiplaneoverlaycolorspacesupport_t.start.hpp │ │ │ │ ├── ddi_arg_checkmultiplaneoverlaysupport_t.end.hpp │ │ │ │ ├── ddi_arg_checkmultiplaneoverlaysupport_t.start.hpp │ │ │ │ ├── ddi_arg_checkpresentdurationsupport_t.end.hpp │ │ │ │ ├── ddi_arg_checkpresentdurationsupport_t.start.hpp │ │ │ │ ├── ddi_arg_get_gamma_control_caps_t.end.hpp │ │ │ │ ├── ddi_arg_get_gamma_control_caps_t.start.hpp │ │ │ │ ├── ddi_arg_getmultiplaneoverlaycaps_t.end.hpp │ │ │ │ ├── ddi_arg_getmultiplaneoverlaycaps_t.start.hpp │ │ │ │ ├── ddi_arg_getmultiplaneoverlaygroupcaps_t.end.hpp │ │ │ │ ├── ddi_arg_getmultiplaneoverlaygroupcaps_t.start.hpp │ │ │ │ ├── ddi_arg_offerresources1_t.end.hpp │ │ │ │ ├── ddi_arg_offerresources1_t.start.hpp │ │ │ │ ├── ddi_arg_offerresources_t.end.hpp │ │ │ │ ├── ddi_arg_offerresources_t.start.hpp │ │ │ │ ├── ddi_arg_present1_t.end.hpp │ │ │ │ ├── ddi_arg_present1_t.start.hpp │ │ │ │ ├── ddi_arg_present_t.end.hpp │ │ │ │ ├── ddi_arg_present_t.start.hpp │ │ │ │ ├── ddi_arg_presentmultiplaneoverlay1_t.end.hpp │ │ │ │ ├── ddi_arg_presentmultiplaneoverlay1_t.start.hpp │ │ │ │ ├── ddi_arg_presentmultiplaneoverlay_t.end.hpp │ │ │ │ ├── ddi_arg_presentmultiplaneoverlay_t.start.hpp │ │ │ │ ├── ddi_arg_presentsurface_t.end.hpp │ │ │ │ ├── ddi_arg_presentsurface_t.start.hpp │ │ │ │ ├── ddi_arg_queryresourceresidency_t.end.hpp │ │ │ │ ├── ddi_arg_queryresourceresidency_t.start.hpp │ │ │ │ ├── ddi_arg_reclaimresources1_t.end.hpp │ │ │ │ ├── ddi_arg_reclaimresources1_t.start.hpp │ │ │ │ ├── ddi_arg_reclaimresources_t.end.hpp │ │ │ │ ├── ddi_arg_reclaimresources_t.start.hpp │ │ │ │ ├── ddi_arg_resolvesharedresource_t.end.hpp │ │ │ │ ├── ddi_arg_resolvesharedresource_t.start.hpp │ │ │ │ ├── ddi_arg_rotate_resource_identities_t.end.hpp │ │ │ │ ├── ddi_arg_rotate_resource_identities_t.start.hpp │ │ │ │ ├── ddi_arg_set_gamma_control_t.end.hpp │ │ │ │ ├── ddi_arg_set_gamma_control_t.start.hpp │ │ │ │ ├── ddi_arg_setdisplaymode_t.end.hpp │ │ │ │ ├── ddi_arg_setdisplaymode_t.start.hpp │ │ │ │ ├── ddi_arg_setresourcepriority_t.end.hpp │ │ │ │ ├── ddi_arg_setresourcepriority_t.start.hpp │ │ │ │ ├── ddi_arg_trimresidencyset_t.end.hpp │ │ │ │ ├── ddi_arg_trimresidencyset_t.start.hpp │ │ │ │ ├── ddi_base_args_t.end.hpp │ │ │ │ ├── ddi_base_args_t.start.hpp │ │ │ │ ├── ddi_base_callbacks_t.end.hpp │ │ │ │ ├── ddi_base_callbacks_t.start.hpp │ │ │ │ ├── ddi_base_functions_t.end.hpp │ │ │ │ ├── ddi_base_functions_t.start.hpp │ │ │ │ ├── ddi_check_multiplaneoverlaysupport_plane_info_t.end.hpp │ │ │ │ ├── ddi_check_multiplaneoverlaysupport_plane_info_t.start.hpp │ │ │ │ ├── ddi_mode_desc_t.end.hpp │ │ │ │ ├── ddi_mode_desc_t.start.hpp │ │ │ │ ├── ddi_multiplane_overlay_attributes1_t.end.hpp │ │ │ │ ├── ddi_multiplane_overlay_attributes1_t.start.hpp │ │ │ │ ├── ddi_multiplane_overlay_attributes_t.end.hpp │ │ │ │ ├── ddi_multiplane_overlay_attributes_t.start.hpp │ │ │ │ ├── ddi_multiplane_overlay_caps_t.end.hpp │ │ │ │ ├── ddi_multiplane_overlay_caps_t.start.hpp │ │ │ │ ├── ddi_multiplane_overlay_group_caps_t.end.hpp │ │ │ │ ├── ddi_multiplane_overlay_group_caps_t.start.hpp │ │ │ │ ├── ddi_present_flags_t.end.hpp │ │ │ │ ├── ddi_present_flags_t.start.hpp │ │ │ │ ├── ddi_present_multiplane_overlay1_t.end.hpp │ │ │ │ ├── ddi_present_multiplane_overlay1_t.start.hpp │ │ │ │ ├── ddi_present_multiplane_overlay_t.end.hpp │ │ │ │ ├── ddi_present_multiplane_overlay_t.start.hpp │ │ │ │ ├── ddi_primary_desc_t.end.hpp │ │ │ │ ├── ddi_primary_desc_t.start.hpp │ │ │ │ ├── ddi_rational_t.end.hpp │ │ │ │ ├── ddi_rational_t.start.hpp │ │ │ │ ├── gamma_control_capabilities_t.end.hpp │ │ │ │ ├── gamma_control_capabilities_t.start.hpp │ │ │ │ ├── gamma_control_t.end.hpp │ │ │ │ ├── gamma_control_t.start.hpp │ │ │ │ ├── jpeg_ac_huffman_table_t.end.hpp │ │ │ │ ├── jpeg_ac_huffman_table_t.start.hpp │ │ │ │ ├── jpeg_dc_huffman_table_t.end.hpp │ │ │ │ ├── jpeg_dc_huffman_table_t.start.hpp │ │ │ │ ├── jpeg_quantization_table_t.end.hpp │ │ │ │ ├── jpeg_quantization_table_t.start.hpp │ │ │ │ ├── mode_desc_t.end.hpp │ │ │ │ ├── mode_desc_t.start.hpp │ │ │ │ ├── rational_t.end.hpp │ │ │ │ ├── rational_t.start.hpp │ │ │ │ ├── rgb_t.end.hpp │ │ │ │ ├── rgb_t.start.hpp │ │ │ │ ├── sample_desc_t.end.hpp │ │ │ │ └── sample_desc_t.start.hpp │ │ │ ├── microsoft/ │ │ │ │ └── wrl/ │ │ │ │ ├── details/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ ├── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ └── module_base/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── ftm_base/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ └── wrappers/ │ │ │ │ └── h_string_reference/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── mode_desc_t.hpp │ │ │ ├── mode_rotation_t.hpp │ │ │ ├── mode_scaling_t.hpp │ │ │ ├── mode_scanline_order_t.hpp │ │ │ ├── notification_registry/ │ │ │ │ ├── api.hpp │ │ │ │ ├── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ └── notification_record/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── occlusion_factory_data/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── occlusion_module_data/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── output_enumerator/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── per_app_user_settings_helper/ │ │ │ │ ├── api.hpp │ │ │ │ ├── auto_string/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── proxy_window/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── rational_t.hpp │ │ │ ├── render_pass_dx11/ │ │ │ │ └── c_render_pass_quad/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── render_pass_dx12/ │ │ │ │ ├── c3d_lut_builder_dx12/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── c_grfx_pipeline_state/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── c_render_pass_quad/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ └── waitable_fence/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── rgb_t.hpp │ │ │ ├── s_adapter_desc/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── s_guid/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── s_output_desc/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── safe_handle/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── sample_desc_t.hpp │ │ │ ├── scoped_d3d12_internal_device_child_creation/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── std/ │ │ │ │ ├── api.hpp │ │ │ │ ├── bad_function_call/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── error_category/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── generic_error_category/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── iostream_error_category/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ └── system_error_category/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── stereo_factory_data/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── stereo_module_data/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── unique_hmodule/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── wil/ │ │ │ │ ├── api.hpp │ │ │ │ ├── details/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ ├── enabled_state_manager/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── feature_logging/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── feature_state_manager/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── in1diag3/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── shared_buffer/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ └── thread_failure_callback_holder/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── details_abi/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ ├── feature_state_data/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── heap_buffer/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── raw_usage_index/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── semaphore_value/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── subscription_list/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── thread_local_data/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── thread_local_failure_info/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ ├── usage_index_property/ │ │ │ │ │ │ ├── api.hpp │ │ │ │ │ │ └── magic/ │ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ │ └── api.start.hpp │ │ │ │ │ └── usage_indexes/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── result_exception/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── stored_failure_info/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ └── trace_logging_provider/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ └── window_class/ │ │ │ ├── api.hpp │ │ │ └── magic/ │ │ │ ├── api.end.hpp │ │ │ └── api.start.hpp │ │ ├── dxgk/ │ │ │ ├── active_vidpn_invalidation_reason_t.hpp │ │ │ ├── adapter_display/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── adapter_perfdata_t.hpp │ │ │ ├── adapter_perfdatacaps_t.hpp │ │ │ ├── adapter_render/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── adapterownertracker/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── agp_interface_t.hpp │ │ │ ├── allocationinfo_t.hpp │ │ │ ├── allocationinfoflags_t.hpp │ │ │ ├── allocationinfoflags_wddm2_0_t.hpp │ │ │ ├── allocationlist_t.hpp │ │ │ ├── allocationusagehint_t.hpp │ │ │ ├── allocationusageinfo1_t.hpp │ │ │ ├── api.hpp │ │ │ ├── apply_permission_within_this_scope/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── arg/ │ │ │ │ ├── acquireswizzlingrange_t.hpp │ │ │ │ ├── beginexclusiveaccess_t.hpp │ │ │ │ ├── buildpagingbuffer_t.hpp │ │ │ │ ├── cancelcommand_t.hpp │ │ │ │ ├── cb/ │ │ │ │ │ ├── allocatecontiguousmemory_t.hpp │ │ │ │ │ ├── allocatepagesformdl_t.hpp │ │ │ │ │ ├── createcontextallocation_t.hpp │ │ │ │ │ ├── enumhandlechildren_t.hpp │ │ │ │ │ ├── freecontiguousmemory_t.hpp │ │ │ │ │ ├── freepagesfrommdl_t.hpp │ │ │ │ │ ├── getcaptureaddress_t.hpp │ │ │ │ │ ├── gethandledata_t.hpp │ │ │ │ │ ├── invalidatehwcontext_t.hpp │ │ │ │ │ ├── isfeatureenabled_t.hpp │ │ │ │ │ ├── magic/ │ │ │ │ │ │ ├── allocatecontiguousmemory_t.end.hpp │ │ │ │ │ │ ├── allocatecontiguousmemory_t.start.hpp │ │ │ │ │ │ ├── allocatepagesformdl_t.end.hpp │ │ │ │ │ │ ├── allocatepagesformdl_t.start.hpp │ │ │ │ │ │ ├── createcontextallocation_t.end.hpp │ │ │ │ │ │ ├── createcontextallocation_t.start.hpp │ │ │ │ │ │ ├── enumhandlechildren_t.end.hpp │ │ │ │ │ │ ├── enumhandlechildren_t.start.hpp │ │ │ │ │ │ ├── freecontiguousmemory_t.end.hpp │ │ │ │ │ │ ├── freecontiguousmemory_t.start.hpp │ │ │ │ │ │ ├── freepagesfrommdl_t.end.hpp │ │ │ │ │ │ ├── freepagesfrommdl_t.start.hpp │ │ │ │ │ │ ├── getcaptureaddress_t.end.hpp │ │ │ │ │ │ ├── getcaptureaddress_t.start.hpp │ │ │ │ │ │ ├── gethandledata_t.end.hpp │ │ │ │ │ │ ├── gethandledata_t.start.hpp │ │ │ │ │ │ ├── invalidatehwcontext_t.end.hpp │ │ │ │ │ │ ├── invalidatehwcontext_t.start.hpp │ │ │ │ │ │ ├── isfeatureenabled_t.end.hpp │ │ │ │ │ │ ├── isfeatureenabled_t.start.hpp │ │ │ │ │ │ ├── mapcontextallocation_t.end.hpp │ │ │ │ │ │ ├── mapcontextallocation_t.start.hpp │ │ │ │ │ │ ├── mapframebufferpointer_t.end.hpp │ │ │ │ │ │ ├── mapframebufferpointer_t.start.hpp │ │ │ │ │ │ ├── mapmdltoiommu_t.end.hpp │ │ │ │ │ │ ├── mapmdltoiommu_t.start.hpp │ │ │ │ │ │ ├── notify_interrupt_data_t.end.hpp │ │ │ │ │ │ ├── notify_interrupt_data_t.start.hpp │ │ │ │ │ │ ├── pinframebufferforsave_t.end.hpp │ │ │ │ │ │ ├── pinframebufferforsave_t.start.hpp │ │ │ │ │ │ ├── present_displayonly_progress_t.end.hpp │ │ │ │ │ │ ├── present_displayonly_progress_t.start.hpp │ │ │ │ │ │ ├── protectedsessionstatus_t.end.hpp │ │ │ │ │ │ ├── protectedsessionstatus_t.start.hpp │ │ │ │ │ │ ├── releasehandledata_t.end.hpp │ │ │ │ │ │ ├── releasehandledata_t.start.hpp │ │ │ │ │ │ ├── reservegpuvirtualaddressrange_t.end.hpp │ │ │ │ │ │ ├── reservegpuvirtualaddressrange_t.start.hpp │ │ │ │ │ │ ├── savememoryforhotupdate_t.end.hpp │ │ │ │ │ │ ├── savememoryforhotupdate_t.start.hpp │ │ │ │ │ │ ├── signalevent_t.end.hpp │ │ │ │ │ │ ├── signalevent_t.start.hpp │ │ │ │ │ │ ├── unmapframebufferpointer_t.end.hpp │ │ │ │ │ │ ├── unmapframebufferpointer_t.start.hpp │ │ │ │ │ │ ├── unmapmdlfromiommu_t.end.hpp │ │ │ │ │ │ ├── unmapmdlfromiommu_t.start.hpp │ │ │ │ │ │ ├── unpinframebufferforsave_t.end.hpp │ │ │ │ │ │ ├── unpinframebufferforsave_t.start.hpp │ │ │ │ │ │ ├── updatecontextallocation_t.end.hpp │ │ │ │ │ │ └── updatecontextallocation_t.start.hpp │ │ │ │ │ ├── mapcontextallocation_t.hpp │ │ │ │ │ ├── mapframebufferpointer_t.hpp │ │ │ │ │ ├── mapmdltoiommu_t.hpp │ │ │ │ │ ├── notify_interrupt_data_t.hpp │ │ │ │ │ ├── pinframebufferforsave_t.hpp │ │ │ │ │ ├── present_displayonly_progress_t.hpp │ │ │ │ │ ├── protectedsessionstatus_t.hpp │ │ │ │ │ ├── releasehandledata_t.hpp │ │ │ │ │ ├── reservegpuvirtualaddressrange_t.hpp │ │ │ │ │ ├── savememoryforhotupdate_t.hpp │ │ │ │ │ ├── signalevent_t.hpp │ │ │ │ │ ├── unmapframebufferpointer_t.hpp │ │ │ │ │ ├── unmapmdlfromiommu_t.hpp │ │ │ │ │ ├── unpinframebufferforsave_t.hpp │ │ │ │ │ └── updatecontextallocation_t.hpp │ │ │ │ ├── checkmultiplaneoverlaysupport2_t.hpp │ │ │ │ ├── checkmultiplaneoverlaysupport3_t.hpp │ │ │ │ ├── checkmultiplaneoverlaysupport_t.hpp │ │ │ │ ├── closeallocation_t.hpp │ │ │ │ ├── collectdbginfo_ext_t.hpp │ │ │ │ ├── collectdbginfo_t.hpp │ │ │ │ ├── collectdiagnosticinfo_t.hpp │ │ │ │ ├── commitvidpn_flags_t.hpp │ │ │ │ ├── commitvidpn_t.hpp │ │ │ │ ├── controldiagnosticreporting_t.hpp │ │ │ │ ├── controlinterrupt2_t.hpp │ │ │ │ ├── controlinterrupt3_t.hpp │ │ │ │ ├── controlmodebehavior_t.hpp │ │ │ │ ├── createallocation_t.hpp │ │ │ │ ├── createcontext_t.hpp │ │ │ │ ├── createdevice_t.hpp │ │ │ │ ├── createhwcontext_t.hpp │ │ │ │ ├── createhwqueue_t.hpp │ │ │ │ ├── createoverlay_t.hpp │ │ │ │ ├── createperiodicframenotification_t.hpp │ │ │ │ ├── createprocess_t.hpp │ │ │ │ ├── createprotectedsession_t.hpp │ │ │ │ ├── createvirtualgpu_t.hpp │ │ │ │ ├── describeallocation_t.hpp │ │ │ │ ├── destroyallocation_t.hpp │ │ │ │ ├── destroyperiodicframenotification_t.hpp │ │ │ │ ├── destroyvirtualgpu_t.hpp │ │ │ │ ├── displaydetectcontrol_t.hpp │ │ │ │ ├── displaystate_intrusive_t.hpp │ │ │ │ ├── dpauxiotransmission_t.hpp │ │ │ │ ├── dpi2ciotransmission_t.hpp │ │ │ │ ├── dpsbmtransmission_t.hpp │ │ │ │ ├── endexclusiveaccess_t.hpp │ │ │ │ ├── enumvidpncofuncmodality_t.hpp │ │ │ │ ├── escape_t.hpp │ │ │ │ ├── flipoverlay_t.hpp │ │ │ │ ├── formathistorybuffer_t.hpp │ │ │ │ ├── getbackingresource_t.hpp │ │ │ │ ├── getdevicelocation_t.hpp │ │ │ │ ├── getdisplaystate_intrusive_t.hpp │ │ │ │ ├── getdisplaystate_nonintrusive_t.hpp │ │ │ │ ├── getdpaddress_t.hpp │ │ │ │ ├── getgpuengines_t.hpp │ │ │ │ ├── getgpupartitioninfo_t.hpp │ │ │ │ ├── getmmiorangecount_t.hpp │ │ │ │ ├── getmmioranges_t.hpp │ │ │ │ ├── getmultiplaneoverlaycaps_t.hpp │ │ │ │ ├── getpostcompositioncaps_t.hpp │ │ │ │ ├── getresourceforbar_t.hpp │ │ │ │ ├── getrootpagetablesize_t.hpp │ │ │ │ ├── getscanline_t.hpp │ │ │ │ ├── getstandardallocationdriverdata_t.hpp │ │ │ │ ├── getvendoranddevice_t.hpp │ │ │ │ ├── getvirtualgpuinfo_t.hpp │ │ │ │ ├── getvirtualgpuprofile_t.hpp │ │ │ │ ├── historybufferprecision_t.hpp │ │ │ │ ├── issupportedvidpn_t.hpp │ │ │ │ ├── magic/ │ │ │ │ │ ├── acquireswizzlingrange_t.end.hpp │ │ │ │ │ ├── acquireswizzlingrange_t.start.hpp │ │ │ │ │ ├── buildpagingbuffer_t.end.hpp │ │ │ │ │ ├── buildpagingbuffer_t.start.hpp │ │ │ │ │ ├── cancelcommand_t.end.hpp │ │ │ │ │ ├── cancelcommand_t.start.hpp │ │ │ │ │ ├── checkmultiplaneoverlaysupport2_t.end.hpp │ │ │ │ │ ├── checkmultiplaneoverlaysupport2_t.start.hpp │ │ │ │ │ ├── checkmultiplaneoverlaysupport3_t.end.hpp │ │ │ │ │ ├── checkmultiplaneoverlaysupport3_t.start.hpp │ │ │ │ │ ├── checkmultiplaneoverlaysupport_t.end.hpp │ │ │ │ │ ├── checkmultiplaneoverlaysupport_t.start.hpp │ │ │ │ │ ├── closeallocation_t.end.hpp │ │ │ │ │ ├── closeallocation_t.start.hpp │ │ │ │ │ ├── collectdbginfo_ext_t.end.hpp │ │ │ │ │ ├── collectdbginfo_ext_t.start.hpp │ │ │ │ │ ├── collectdbginfo_t.end.hpp │ │ │ │ │ ├── collectdbginfo_t.start.hpp │ │ │ │ │ ├── collectdiagnosticinfo_t.end.hpp │ │ │ │ │ ├── collectdiagnosticinfo_t.start.hpp │ │ │ │ │ ├── commitvidpn_flags_t.end.hpp │ │ │ │ │ ├── commitvidpn_flags_t.start.hpp │ │ │ │ │ ├── commitvidpn_t.end.hpp │ │ │ │ │ ├── commitvidpn_t.start.hpp │ │ │ │ │ ├── controldiagnosticreporting_t.end.hpp │ │ │ │ │ ├── controldiagnosticreporting_t.start.hpp │ │ │ │ │ ├── controlinterrupt2_t.end.hpp │ │ │ │ │ ├── controlinterrupt2_t.start.hpp │ │ │ │ │ ├── controlinterrupt3_t.end.hpp │ │ │ │ │ ├── controlinterrupt3_t.start.hpp │ │ │ │ │ ├── controlmodebehavior_t.end.hpp │ │ │ │ │ ├── controlmodebehavior_t.start.hpp │ │ │ │ │ ├── createallocation_t.end.hpp │ │ │ │ │ ├── createallocation_t.start.hpp │ │ │ │ │ ├── createcontext_t.end.hpp │ │ │ │ │ ├── createcontext_t.start.hpp │ │ │ │ │ ├── createdevice_t.end.hpp │ │ │ │ │ ├── createdevice_t.start.hpp │ │ │ │ │ ├── createhwcontext_t.end.hpp │ │ │ │ │ ├── createhwcontext_t.start.hpp │ │ │ │ │ ├── createhwqueue_t.end.hpp │ │ │ │ │ ├── createhwqueue_t.start.hpp │ │ │ │ │ ├── createoverlay_t.end.hpp │ │ │ │ │ ├── createoverlay_t.start.hpp │ │ │ │ │ ├── createperiodicframenotification_t.end.hpp │ │ │ │ │ ├── createperiodicframenotification_t.start.hpp │ │ │ │ │ ├── createprocess_t.end.hpp │ │ │ │ │ ├── createprocess_t.start.hpp │ │ │ │ │ ├── createprotectedsession_t.end.hpp │ │ │ │ │ ├── createprotectedsession_t.start.hpp │ │ │ │ │ ├── createvirtualgpu_t.end.hpp │ │ │ │ │ ├── createvirtualgpu_t.start.hpp │ │ │ │ │ ├── describeallocation_t.end.hpp │ │ │ │ │ ├── describeallocation_t.start.hpp │ │ │ │ │ ├── destroyallocation_t.end.hpp │ │ │ │ │ ├── destroyallocation_t.start.hpp │ │ │ │ │ ├── destroyperiodicframenotification_t.end.hpp │ │ │ │ │ ├── destroyperiodicframenotification_t.start.hpp │ │ │ │ │ ├── destroyvirtualgpu_t.end.hpp │ │ │ │ │ ├── destroyvirtualgpu_t.start.hpp │ │ │ │ │ ├── displaydetectcontrol_t.end.hpp │ │ │ │ │ ├── displaydetectcontrol_t.start.hpp │ │ │ │ │ ├── displaystate_intrusive_t.end.hpp │ │ │ │ │ ├── displaystate_intrusive_t.start.hpp │ │ │ │ │ ├── dpauxiotransmission_t.end.hpp │ │ │ │ │ ├── dpauxiotransmission_t.start.hpp │ │ │ │ │ ├── dpi2ciotransmission_t.end.hpp │ │ │ │ │ ├── dpi2ciotransmission_t.start.hpp │ │ │ │ │ ├── dpsbmtransmission_t.end.hpp │ │ │ │ │ ├── dpsbmtransmission_t.start.hpp │ │ │ │ │ ├── enumvidpncofuncmodality_t.end.hpp │ │ │ │ │ ├── enumvidpncofuncmodality_t.start.hpp │ │ │ │ │ ├── escape_t.end.hpp │ │ │ │ │ ├── escape_t.start.hpp │ │ │ │ │ ├── flipoverlay_t.end.hpp │ │ │ │ │ ├── flipoverlay_t.start.hpp │ │ │ │ │ ├── formathistorybuffer_t.end.hpp │ │ │ │ │ ├── formathistorybuffer_t.start.hpp │ │ │ │ │ ├── getbackingresource_t.end.hpp │ │ │ │ │ ├── getbackingresource_t.start.hpp │ │ │ │ │ ├── getdevicelocation_t.end.hpp │ │ │ │ │ ├── getdevicelocation_t.start.hpp │ │ │ │ │ ├── getdisplaystate_intrusive_t.end.hpp │ │ │ │ │ ├── getdisplaystate_intrusive_t.start.hpp │ │ │ │ │ ├── getdisplaystate_nonintrusive_t.end.hpp │ │ │ │ │ ├── getdisplaystate_nonintrusive_t.start.hpp │ │ │ │ │ ├── getdpaddress_t.end.hpp │ │ │ │ │ ├── getdpaddress_t.start.hpp │ │ │ │ │ ├── getgpuengines_t.end.hpp │ │ │ │ │ ├── getgpuengines_t.start.hpp │ │ │ │ │ ├── getgpupartitioninfo_t.end.hpp │ │ │ │ │ ├── getgpupartitioninfo_t.start.hpp │ │ │ │ │ ├── getmmiorangecount_t.end.hpp │ │ │ │ │ ├── getmmiorangecount_t.start.hpp │ │ │ │ │ ├── getmmioranges_t.end.hpp │ │ │ │ │ ├── getmmioranges_t.start.hpp │ │ │ │ │ ├── getmultiplaneoverlaycaps_t.end.hpp │ │ │ │ │ ├── getmultiplaneoverlaycaps_t.start.hpp │ │ │ │ │ ├── getpostcompositioncaps_t.end.hpp │ │ │ │ │ ├── getpostcompositioncaps_t.start.hpp │ │ │ │ │ ├── getresourceforbar_t.end.hpp │ │ │ │ │ ├── getresourceforbar_t.start.hpp │ │ │ │ │ ├── getrootpagetablesize_t.end.hpp │ │ │ │ │ ├── getrootpagetablesize_t.start.hpp │ │ │ │ │ ├── getscanline_t.end.hpp │ │ │ │ │ ├── getscanline_t.start.hpp │ │ │ │ │ ├── getstandardallocationdriverdata_t.end.hpp │ │ │ │ │ ├── getstandardallocationdriverdata_t.start.hpp │ │ │ │ │ ├── getvendoranddevice_t.end.hpp │ │ │ │ │ ├── getvendoranddevice_t.start.hpp │ │ │ │ │ ├── getvirtualgpuinfo_t.end.hpp │ │ │ │ │ ├── getvirtualgpuinfo_t.start.hpp │ │ │ │ │ ├── getvirtualgpuprofile_t.end.hpp │ │ │ │ │ ├── getvirtualgpuprofile_t.start.hpp │ │ │ │ │ ├── historybufferprecision_t.end.hpp │ │ │ │ │ ├── historybufferprecision_t.start.hpp │ │ │ │ │ ├── issupportedvidpn_t.end.hpp │ │ │ │ │ ├── issupportedvidpn_t.start.hpp │ │ │ │ │ ├── mapcpuhostaperture_t.end.hpp │ │ │ │ │ ├── mapcpuhostaperture_t.start.hpp │ │ │ │ │ ├── openallocation_t.end.hpp │ │ │ │ │ ├── openallocation_t.start.hpp │ │ │ │ │ ├── patch_t.end.hpp │ │ │ │ │ ├── patch_t.start.hpp │ │ │ │ │ ├── postmultiplaneoverlaypresent_t.end.hpp │ │ │ │ │ ├── postmultiplaneoverlaypresent_t.start.hpp │ │ │ │ │ ├── preemptcommand_t.end.hpp │ │ │ │ │ ├── preemptcommand_t.start.hpp │ │ │ │ │ ├── present_displayonly_t.end.hpp │ │ │ │ │ ├── present_displayonly_t.start.hpp │ │ │ │ │ ├── present_t.end.hpp │ │ │ │ │ ├── present_t.start.hpp │ │ │ │ │ ├── queryadapterinfo_t.end.hpp │ │ │ │ │ ├── queryadapterinfo_t.start.hpp │ │ │ │ │ ├── queryconnectionchange_t.end.hpp │ │ │ │ │ ├── queryconnectionchange_t.start.hpp │ │ │ │ │ ├── querycurrentfence_t.end.hpp │ │ │ │ │ ├── querycurrentfence_t.start.hpp │ │ │ │ │ ├── querydependentenginegroup_t.end.hpp │ │ │ │ │ ├── querydependentenginegroup_t.start.hpp │ │ │ │ │ ├── querydiagnostictypessupport_t.end.hpp │ │ │ │ │ ├── querydiagnostictypessupport_t.start.hpp │ │ │ │ │ ├── querydpcaps_t.end.hpp │ │ │ │ │ ├── querydpcaps_t.start.hpp │ │ │ │ │ ├── queryenginestatus_t.end.hpp │ │ │ │ │ ├── queryenginestatus_t.start.hpp │ │ │ │ │ ├── querymitigatedrangecount_t.end.hpp │ │ │ │ │ ├── querymitigatedrangecount_t.start.hpp │ │ │ │ │ ├── querymitigatedranges_t.end.hpp │ │ │ │ │ ├── querymitigatedranges_t.start.hpp │ │ │ │ │ ├── queryprobedbars_t.end.hpp │ │ │ │ │ ├── queryprobedbars_t.start.hpp │ │ │ │ │ ├── queryvidpnhwcapability_t.end.hpp │ │ │ │ │ ├── queryvidpnhwcapability_t.start.hpp │ │ │ │ │ ├── queryvirtualfunctionluid_t.end.hpp │ │ │ │ │ ├── queryvirtualfunctionluid_t.start.hpp │ │ │ │ │ ├── readvirtualfunctionconfig_t.end.hpp │ │ │ │ │ ├── readvirtualfunctionconfig_t.start.hpp │ │ │ │ │ ├── readvirtualfunctionconfigblock_t.end.hpp │ │ │ │ │ ├── readvirtualfunctionconfigblock_t.start.hpp │ │ │ │ │ ├── recommendfunctionalvidpn_t.end.hpp │ │ │ │ │ ├── recommendfunctionalvidpn_t.start.hpp │ │ │ │ │ ├── recommendmonitormodes_t.end.hpp │ │ │ │ │ ├── recommendmonitormodes_t.start.hpp │ │ │ │ │ ├── recommendvidpntopology_t.end.hpp │ │ │ │ │ ├── recommendvidpntopology_t.start.hpp │ │ │ │ │ ├── releaseswizzlingrange_t.end.hpp │ │ │ │ │ ├── releaseswizzlingrange_t.start.hpp │ │ │ │ │ ├── render_t.end.hpp │ │ │ │ │ ├── render_t.start.hpp │ │ │ │ │ ├── rendergdi_t.end.hpp │ │ │ │ │ ├── rendergdi_t.start.hpp │ │ │ │ │ ├── resetengine_t.end.hpp │ │ │ │ │ ├── resetengine_t.start.hpp │ │ │ │ │ ├── resethwengine_t.end.hpp │ │ │ │ │ ├── resethwengine_t.start.hpp │ │ │ │ │ ├── resetvirtualfunction_t.end.hpp │ │ │ │ │ ├── resetvirtualfunction_t.start.hpp │ │ │ │ │ ├── restorememoryforhotupdate_t.end.hpp │ │ │ │ │ ├── restorememoryforhotupdate_t.start.hpp │ │ │ │ │ ├── resumecontext_t.end.hpp │ │ │ │ │ ├── resumecontext_t.start.hpp │ │ │ │ │ ├── resumehwengine_t.end.hpp │ │ │ │ │ ├── resumehwengine_t.start.hpp │ │ │ │ │ ├── resumevirtualgpu_t.end.hpp │ │ │ │ │ ├── resumevirtualgpu_t.start.hpp │ │ │ │ │ ├── savememoryforhotupdate_t.end.hpp │ │ │ │ │ ├── savememoryforhotupdate_t.start.hpp │ │ │ │ │ ├── setcontextschedulingproperties_t.end.hpp │ │ │ │ │ ├── setcontextschedulingproperties_t.start.hpp │ │ │ │ │ ├── setdisplayprivatedriverformat_t.end.hpp │ │ │ │ │ ├── setdisplayprivatedriverformat_t.start.hpp │ │ │ │ │ ├── setgpupartitioncount_t.end.hpp │ │ │ │ │ ├── setgpupartitioncount_t.start.hpp │ │ │ │ │ ├── setpalette_t.end.hpp │ │ │ │ │ ├── setpalette_t.start.hpp │ │ │ │ │ ├── setpointerposition_t.end.hpp │ │ │ │ │ ├── setpointerposition_t.start.hpp │ │ │ │ │ ├── setpointershape_t.end.hpp │ │ │ │ │ ├── setpointershape_t.start.hpp │ │ │ │ │ ├── setrootpagetable_t.end.hpp │ │ │ │ │ ├── setrootpagetable_t.start.hpp │ │ │ │ │ ├── setschedulinglogbuffer_t.end.hpp │ │ │ │ │ ├── setschedulinglogbuffer_t.start.hpp │ │ │ │ │ ├── setstablepowerstate_t.end.hpp │ │ │ │ │ ├── setstablepowerstate_t.start.hpp │ │ │ │ │ ├── settargetadjustedcolorimetry2_t.end.hpp │ │ │ │ │ ├── settargetadjustedcolorimetry2_t.start.hpp │ │ │ │ │ ├── settargetanalogcopyprotection_t.end.hpp │ │ │ │ │ ├── settargetanalogcopyprotection_t.start.hpp │ │ │ │ │ ├── settargetcontenttype_t.end.hpp │ │ │ │ │ ├── settargetcontenttype_t.start.hpp │ │ │ │ │ ├── settargetgamma_t.end.hpp │ │ │ │ │ ├── settargetgamma_t.start.hpp │ │ │ │ │ ├── settimingsfromvidpn_t.end.hpp │ │ │ │ │ ├── settimingsfromvidpn_t.start.hpp │ │ │ │ │ ├── settrackedworkloadpowerlevel_t.end.hpp │ │ │ │ │ ├── settrackedworkloadpowerlevel_t.start.hpp │ │ │ │ │ ├── setupprioritybands_t.end.hpp │ │ │ │ │ ├── setupprioritybands_t.start.hpp │ │ │ │ │ ├── setvideoprotectedregion_t.end.hpp │ │ │ │ │ ├── setvideoprotectedregion_t.start.hpp │ │ │ │ │ ├── setvidpnsourceaddress_t.end.hpp │ │ │ │ │ ├── setvidpnsourceaddress_t.start.hpp │ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay2_t.end.hpp │ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay2_t.start.hpp │ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay3_t.end.hpp │ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay3_t.start.hpp │ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay_t.end.hpp │ │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay_t.start.hpp │ │ │ │ │ ├── setvidpnsourcevisibility_t.end.hpp │ │ │ │ │ ├── setvidpnsourcevisibility_t.start.hpp │ │ │ │ │ ├── setvirtualfunctionpowerstate_t.end.hpp │ │ │ │ │ ├── setvirtualfunctionpowerstate_t.start.hpp │ │ │ │ │ ├── setvirtualgpuresources_t.end.hpp │ │ │ │ │ ├── setvirtualgpuresources_t.start.hpp │ │ │ │ │ ├── setvirtualgpuvmbus_t.end.hpp │ │ │ │ │ ├── setvirtualgpuvmbus_t.start.hpp │ │ │ │ │ ├── setvirtualmachinedata_t.end.hpp │ │ │ │ │ ├── setvirtualmachinedata_t.start.hpp │ │ │ │ │ ├── signalmonitoredfence_t.end.hpp │ │ │ │ │ ├── signalmonitoredfence_t.start.hpp │ │ │ │ │ ├── stopcapture_t.end.hpp │ │ │ │ │ ├── stopcapture_t.start.hpp │ │ │ │ │ ├── submitcommand_t.end.hpp │ │ │ │ │ ├── submitcommand_t.start.hpp │ │ │ │ │ ├── submitcommandtohwqueue_t.end.hpp │ │ │ │ │ ├── submitcommandtohwqueue_t.start.hpp │ │ │ │ │ ├── submitcommandvirtual_t.end.hpp │ │ │ │ │ ├── submitcommandvirtual_t.start.hpp │ │ │ │ │ ├── suspendcontext_t.end.hpp │ │ │ │ │ ├── suspendcontext_t.start.hpp │ │ │ │ │ ├── suspendvirtualgpu_t.end.hpp │ │ │ │ │ ├── suspendvirtualgpu_t.start.hpp │ │ │ │ │ ├── switchtohwcontextlist_t.end.hpp │ │ │ │ │ ├── switchtohwcontextlist_t.start.hpp │ │ │ │ │ ├── system_display_enable_flags_t.end.hpp │ │ │ │ │ ├── system_display_enable_flags_t.start.hpp │ │ │ │ │ ├── unmapcpuhostaperture_t.end.hpp │ │ │ │ │ ├── unmapcpuhostaperture_t.start.hpp │ │ │ │ │ ├── updateactivevidpnpresentpath_t.end.hpp │ │ │ │ │ ├── updateactivevidpnpresentpath_t.start.hpp │ │ │ │ │ ├── updatehwcontextstate_t.end.hpp │ │ │ │ │ ├── updatehwcontextstate_t.start.hpp │ │ │ │ │ ├── updatemonitorlinkinfo_t.end.hpp │ │ │ │ │ ├── updatemonitorlinkinfo_t.start.hpp │ │ │ │ │ ├── updateoverlay_t.end.hpp │ │ │ │ │ ├── updateoverlay_t.start.hpp │ │ │ │ │ ├── validatesubmitcommand_t.end.hpp │ │ │ │ │ ├── validatesubmitcommand_t.start.hpp │ │ │ │ │ ├── validateupdateallocproperty_t.end.hpp │ │ │ │ │ ├── validateupdateallocproperty_t.start.hpp │ │ │ │ │ ├── writevirtualfunctionconfig_t.end.hpp │ │ │ │ │ ├── writevirtualfunctionconfig_t.start.hpp │ │ │ │ │ ├── writevirtualfunctionconfigblock_t.end.hpp │ │ │ │ │ └── writevirtualfunctionconfigblock_t.start.hpp │ │ │ │ ├── mapcpuhostaperture_t.hpp │ │ │ │ ├── openallocation_t.hpp │ │ │ │ ├── patch_t.hpp │ │ │ │ ├── postmultiplaneoverlaypresent_t.hpp │ │ │ │ ├── preemptcommand_t.hpp │ │ │ │ ├── present_displayonly_t.hpp │ │ │ │ ├── present_t.hpp │ │ │ │ ├── queryadapterinfo_t.hpp │ │ │ │ ├── queryconnectionchange_t.hpp │ │ │ │ ├── querycurrentfence_t.hpp │ │ │ │ ├── querydependentenginegroup_t.hpp │ │ │ │ ├── querydiagnostictypessupport_t.hpp │ │ │ │ ├── querydpcaps_t.hpp │ │ │ │ ├── queryenginestatus_t.hpp │ │ │ │ ├── querymitigatedrangecount_t.hpp │ │ │ │ ├── querymitigatedranges_t.hpp │ │ │ │ ├── queryprobedbars_t.hpp │ │ │ │ ├── queryvidpnhwcapability_t.hpp │ │ │ │ ├── queryvirtualfunctionluid_t.hpp │ │ │ │ ├── readvirtualfunctionconfig_t.hpp │ │ │ │ ├── readvirtualfunctionconfigblock_t.hpp │ │ │ │ ├── recommendfunctionalvidpn_t.hpp │ │ │ │ ├── recommendmonitormodes_t.hpp │ │ │ │ ├── recommendvidpntopology_t.hpp │ │ │ │ ├── releaseswizzlingrange_t.hpp │ │ │ │ ├── render_t.hpp │ │ │ │ ├── rendergdi_t.hpp │ │ │ │ ├── resetengine_t.hpp │ │ │ │ ├── resethwengine_t.hpp │ │ │ │ ├── resetvirtualfunction_t.hpp │ │ │ │ ├── restorememoryforhotupdate_t.hpp │ │ │ │ ├── resumecontext_t.hpp │ │ │ │ ├── resumehwengine_t.hpp │ │ │ │ ├── resumevirtualgpu_t.hpp │ │ │ │ ├── savememoryforhotupdate_t.hpp │ │ │ │ ├── setcontextschedulingproperties_t.hpp │ │ │ │ ├── setdisplayprivatedriverformat_t.hpp │ │ │ │ ├── setgpupartitioncount_t.hpp │ │ │ │ ├── setpalette_t.hpp │ │ │ │ ├── setpointerposition_t.hpp │ │ │ │ ├── setpointershape_t.hpp │ │ │ │ ├── setrootpagetable_t.hpp │ │ │ │ ├── setschedulinglogbuffer_t.hpp │ │ │ │ ├── setstablepowerstate_t.hpp │ │ │ │ ├── settargetadjustedcolorimetry2_t.hpp │ │ │ │ ├── settargetanalogcopyprotection_t.hpp │ │ │ │ ├── settargetcontenttype_t.hpp │ │ │ │ ├── settargetgamma_t.hpp │ │ │ │ ├── settimingsfromvidpn_t.hpp │ │ │ │ ├── settrackedworkloadpowerlevel_t.hpp │ │ │ │ ├── setupprioritybands_t.hpp │ │ │ │ ├── setvideoprotectedregion_t.hpp │ │ │ │ ├── setvidpnsourceaddress_t.hpp │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay2_t.hpp │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay3_t.hpp │ │ │ │ ├── setvidpnsourceaddresswithmultiplaneoverlay_t.hpp │ │ │ │ ├── setvidpnsourcevisibility_t.hpp │ │ │ │ ├── setvirtualfunctionpowerstate_t.hpp │ │ │ │ ├── setvirtualgpuresources_t.hpp │ │ │ │ ├── setvirtualgpuvmbus_t.hpp │ │ │ │ ├── setvirtualmachinedata_t.hpp │ │ │ │ ├── signalmonitoredfence_t.hpp │ │ │ │ ├── stopcapture_t.hpp │ │ │ │ ├── submitcommand_t.hpp │ │ │ │ ├── submitcommandtohwqueue_t.hpp │ │ │ │ ├── submitcommandvirtual_t.hpp │ │ │ │ ├── suspendcontext_t.hpp │ │ │ │ ├── suspendvirtualgpu_t.hpp │ │ │ │ ├── switchtohwcontextlist_t.hpp │ │ │ │ ├── system_display_enable_flags_t.hpp │ │ │ │ ├── unmapcpuhostaperture_t.hpp │ │ │ │ ├── updateactivevidpnpresentpath_t.hpp │ │ │ │ ├── updatehwcontextstate_t.hpp │ │ │ │ ├── updatemonitorlinkinfo_t.hpp │ │ │ │ ├── updateoverlay_t.hpp │ │ │ │ ├── validatesubmitcommand_t.hpp │ │ │ │ ├── validateupdateallocproperty_t.hpp │ │ │ │ ├── writevirtualfunctionconfig_t.hpp │ │ │ │ └── writevirtualfunctionconfigblock_t.hpp │ │ │ ├── attach_to_object_session/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── auto_ccd_topology_clear_reserved/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── auto_pnppower_lock/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── auto_remove_lock/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── auto_resource_lock/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── autoexpandallocation/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── backlight_info_t.hpp │ │ │ ├── bltentry/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── bltqueue/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── bltqueue_emulated_vsync_source/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── bltqueue_hw_vsync_source/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── bltqueue_remote_vsync_source/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── brightness_caps_t.hpp │ │ │ ├── brightness_get_nit_ranges_out_t.hpp │ │ │ ├── brightness_get_out_t.hpp │ │ │ ├── brightness_nit_range_t.hpp │ │ │ ├── brightness_sensor_data_chromaticity_t.hpp │ │ │ ├── brightness_sensor_data_t.hpp │ │ │ ├── brightness_set_in_t.hpp │ │ │ ├── brightness_state_t.hpp │ │ │ ├── btl_cds_journal_topology_constructor/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── btl_topology_constructor/ │ │ │ │ ├── anchor_info/ │ │ │ │ │ ├── api.hpp │ │ │ │ │ └── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── buildpagingbuffer_copy_range_t.hpp │ │ │ ├── buildpagingbuffer_copypagetableentries_t.hpp │ │ │ ├── buildpagingbuffer_fillvirtual_t.hpp │ │ │ ├── buildpagingbuffer_flushtlb_t.hpp │ │ │ ├── buildpagingbuffer_notifyresidency_t.hpp │ │ │ ├── buildpagingbuffer_operation_t.hpp │ │ │ ├── buildpagingbuffer_signalmonitoredfence_t.hpp │ │ │ ├── buildpagingbuffer_transfervirtual_t.hpp │ │ │ ├── buildpagingbuffer_updatecontextallocation_t.hpp │ │ │ ├── buildpagingbuffer_updatepagetable_t.hpp │ │ │ ├── c_adapter/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_adapter_collection/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_auto_ref_counted_buffer/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_backchannel_manager/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_buffer_realization/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_composition_buffer/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_composition_frame/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_composition_frame_collection/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_composition_surface/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_composition_swapchain_buffer/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_composition_token/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_content_resource/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_content_resource_state/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_disable_scanout_token/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_driver_store_copy/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_endpoint_resource_state_manager/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_ensure_current_dxg_process/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_consumer_message/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_content_token/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_ex_buffer/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_manager/ │ │ │ │ ├── api.hpp │ │ │ │ ├── magic/ │ │ │ │ │ ├── api.end.hpp │ │ │ │ │ └── api.start.hpp │ │ │ │ └── present_history/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_manager_signal/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_manager_token/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_present_update/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_property_set/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_property_set_base/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_queued_object/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_resource/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_resource_state/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_token/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_token_operation/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_flip_waited_consumer_return/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_interface_call_context/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_legacy_token_buffer/ │ │ │ │ └── token_block/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_pool_buffer_resource/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_present_rate/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_push_lock_critical_section/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_ref_counted_buffer/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_resource_state_update_serializer/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_token/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_token_manager/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_token_queue/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_vid_sch_submit_data/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_vid_sch_suspend_resume/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c_win32k_locks/ │ │ │ │ ├── api.hpp │ │ │ │ └── magic/ │ │ │ │ ├── api.end.hpp │ │ │ │ └── api.start.hpp │ │ │ ├── c
Showing preview only (6,439K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (61555 symbols across 16445 files)
FILE: apollo-crt/apollo-crt.cpp
function NO_DEBUG (line 23) | NO_DEBUG FORCE_INLINE __crt_linkage__ void __cdecl __crt_assert( bool b,...
function __crt_decrypt_single (line 28) | uint64_t __cdecl __crt_decrypt_single( uint64_t value, uint64_t key )
function __crt_encrypt_single (line 50) | uint64_t __cdecl __crt_encrypt_single( uint64_t value, uint64_t key )
function __crt_decrypt (line 66) | uint64_t __cdecl __crt_decrypt( const uint64_t* _ptr, size_t n, uint64_t...
function __crt_encrypt (line 86) | uint64_t __cdecl __crt_encrypt( const uint64_t* _ptr, size_t n, uint64_t...
function __crt_translate_gs (line 108) | uint64_t __cdecl __crt_translate_gs( uint64_t ptr )
function __crt_translate_fs (line 115) | uint64_t __cdecl __crt_translate_fs( uint64_t ptr )
FILE: apollo-linker/linker.cpp
type satella (line 58) | namespace satella
function convert (line 62) | std::unique_ptr<image> convert( const linker::collection& col,
function read_file_bom (line 331) | static std::string read_file_bom( const std::filesystem::path& path )
function main (line 338) | int main( int argc, const char** argv )
FILE: apollo-linker/object/code_gen.cpp
type linker (line 7) | namespace linker
FILE: apollo-linker/object/collection.cpp
type linker (line 10) | namespace linker
type file_checksum_tmp (line 207) | struct file_checksum_tmp
type tmp_line (line 487) | struct tmp_line
FILE: apollo-linker/object/collection.hpp
type linker (line 13) | namespace linker
type collection (line 17) | struct collection
method is_debug (line 67) | bool is_debug() const { return build_type == satella::build_type::de...
method enum_sections (line 72) | void enum_sections( T&& fn ) const
method enum_symbols (line 79) | void enum_symbols( T&& fn ) const
FILE: apollo-linker/object/comdat.cpp
type linker (line 3) | namespace linker
function pick_comdat (line 9) | ref::strong_ptr<symbol> pick_comdat( const ref::strong_ptr<symbol>& a,...
FILE: apollo-linker/object/comdat.hpp
type linker (line 5) | namespace linker
FILE: apollo-linker/object/opt_ref.cpp
type linker (line 4) | namespace linker
FILE: apollo-linker/object/primitives.cpp
type linker (line 6) | namespace linker
function parse_directives (line 10) | static void parse_directives( object* obj, std::string_view directives )
function load_native_object (line 48) | bool load_native_object( ref::strong_ptr<object>& obj, const uint8_t* ...
function load_lto_object (line 372) | bool load_lto_object( ref::strong_ptr<object>& obj, const uint8_t* dat...
function load_object (line 433) | ref::strong_ptr<object> load_object( const uint8_t* data, size_t size,...
function load_slib (line 452) | ref::strong_ptr<object> load_slib( const uint8_t* data, size_t size, s...
function library (line 494) | library load_library( xstd::file::view<> mapping )
FILE: apollo-linker/object/primitives.hpp
type linker (line 27) | namespace linker
type symbol (line 29) | struct symbol
method to_string (line 320) | std::string to_string() const
method is_weak (line 327) | bool is_weak() const { return storage_class == coff::storage_class_i...
method is_public (line 328) | bool is_public() const { return storage_class == coff::storage_class...
method is_private (line 329) | bool is_private() const { return storage_class == coff::storage_clas...
method is_undefined (line 330) | bool is_undefined() const { return !debug && !absolute && !scn.alive...
method is_defined (line 331) | bool is_defined() const { return !debug && !absolute && scn.alive(); }
method is_comdat (line 332) | bool is_comdat() const { return !debug && !absolute && scn.alive() &...
method is_comdat_leader (line 333) | bool is_comdat_leader() const { return is_comdat() && scn->symbols.f...
method get_virtual_address (line 334) | uint64_t get_virtual_address() const
type object (line 30) | struct object
method to_string (line 389) | std::string to_string() const
method discard_section (line 396) | void discard_section( const ref::strong_ptr<section>& scn )
method discard_section_if (line 418) | void discard_section_if( Pr&& predicate )
type section (line 31) | struct section
method relocation (line 211) | const relocation* find_reloc( size_t offset ) const
method relocation (line 218) | const relocation* find_reloc( const void* ptr ) const
method to_string (line 228) | std::string to_string() const
method is_comdat (line 235) | bool is_comdat() const
method is_crt (line 253) | bool is_crt() const { return xstd::istarts_with( name, ".crt" ); }
method is_c_init (line 254) | bool is_c_init() const { return xstd::istarts_with( name, ".crt$xi" ...
method is_cpp_init (line 255) | bool is_cpp_init() const { return xstd::istarts_with( name, ".crt$xc...
method is_c_pre_term (line 256) | bool is_c_pre_term() const { return xstd::istarts_with( name, ".crt$...
method is_c_term (line 257) | bool is_c_term() const { return xstd::istarts_with( name, ".crt$xt" ...
method is_tls (line 259) | bool is_tls() const { return xstd::istarts_with( name, ".tls" ); }
method is_tls_init (line 260) | bool is_tls_init() const { return xstd::istarts_with( name, ".crt$xu...
method is_tls_callback (line 261) | bool is_tls_callback() const { return xstd::istarts_with( name, ".cr...
method is_exception_info (line 265) | bool is_exception_info() const { return xstd::istarts_with( name, "....
method is_exception_data (line 266) | bool is_exception_data() const { return xstd::istarts_with( name, "....
method is_symbol_table (line 270) | bool is_symbol_table() const { return xstd::istarts_with( name, ".sy...
method is_symbol_table_dummy (line 271) | bool is_symbol_table_dummy() const { return xstd::istarts_with( name...
method is_debug_info (line 275) | bool is_debug_info() const { return xstd::istarts_with( name, ".debu...
method is_cv_type_stream (line 276) | bool is_cv_type_stream() const { return xstd::iequals( name, ".debug...
method is_cv_sym_stream (line 277) | bool is_cv_sym_stream() const { return xstd::iequals( name, ".debug$...
method is_import_dir (line 281) | bool is_import_dir() const { return xstd::istarts_with( name, ".idat...
method is_export_dir (line 282) | bool is_export_dir() const { return xstd::istarts_with( name, ".edat...
method is_resource_dir (line 283) | bool is_resource_dir() const { return xstd::istarts_with( name, ".rs...
type relocation (line 37) | struct relocation
method to_string (line 53) | std::string to_string() const
type object_metadata (line 61) | struct object_metadata
type file_checksum (line 77) | struct file_checksum
type section_metadata (line 96) | struct section_metadata
type symbol_request (line 100) | struct symbol_request
type line_information (line 118) | struct line_information
type basic_block_entry (line 126) | struct basic_block_entry
type routine_entry (line 131) | struct routine_entry
method get_length (line 140) | size_t get_length() const
type section (line 173) | struct section
method relocation (line 211) | const relocation* find_reloc( size_t offset ) const
method relocation (line 218) | const relocation* find_reloc( const void* ptr ) const
method to_string (line 228) | std::string to_string() const
method is_comdat (line 235) | bool is_comdat() const
method is_crt (line 253) | bool is_crt() const { return xstd::istarts_with( name, ".crt" ); }
method is_c_init (line 254) | bool is_c_init() const { return xstd::istarts_with( name, ".crt$xi" ...
method is_cpp_init (line 255) | bool is_cpp_init() const { return xstd::istarts_with( name, ".crt$xc...
method is_c_pre_term (line 256) | bool is_c_pre_term() const { return xstd::istarts_with( name, ".crt$...
method is_c_term (line 257) | bool is_c_term() const { return xstd::istarts_with( name, ".crt$xt" ...
method is_tls (line 259) | bool is_tls() const { return xstd::istarts_with( name, ".tls" ); }
method is_tls_init (line 260) | bool is_tls_init() const { return xstd::istarts_with( name, ".crt$xu...
method is_tls_callback (line 261) | bool is_tls_callback() const { return xstd::istarts_with( name, ".cr...
method is_exception_info (line 265) | bool is_exception_info() const { return xstd::istarts_with( name, "....
method is_exception_data (line 266) | bool is_exception_data() const { return xstd::istarts_with( name, "....
method is_symbol_table (line 270) | bool is_symbol_table() const { return xstd::istarts_with( name, ".sy...
method is_symbol_table_dummy (line 271) | bool is_symbol_table_dummy() const { return xstd::istarts_with( name...
method is_debug_info (line 275) | bool is_debug_info() const { return xstd::istarts_with( name, ".debu...
method is_cv_type_stream (line 276) | bool is_cv_type_stream() const { return xstd::iequals( name, ".debug...
method is_cv_sym_stream (line 277) | bool is_cv_sym_stream() const { return xstd::iequals( name, ".debug$...
method is_import_dir (line 281) | bool is_import_dir() const { return xstd::istarts_with( name, ".idat...
method is_export_dir (line 282) | bool is_export_dir() const { return xstd::istarts_with( name, ".edat...
method is_resource_dir (line 283) | bool is_resource_dir() const { return xstd::istarts_with( name, ".rs...
type symbol (line 290) | struct symbol
method to_string (line 320) | std::string to_string() const
method is_weak (line 327) | bool is_weak() const { return storage_class == coff::storage_class_i...
method is_public (line 328) | bool is_public() const { return storage_class == coff::storage_class...
method is_private (line 329) | bool is_private() const { return storage_class == coff::storage_clas...
method is_undefined (line 330) | bool is_undefined() const { return !debug && !absolute && !scn.alive...
method is_defined (line 331) | bool is_defined() const { return !debug && !absolute && scn.alive(); }
method is_comdat (line 332) | bool is_comdat() const { return !debug && !absolute && scn.alive() &...
method is_comdat_leader (line 333) | bool is_comdat_leader() const { return is_comdat() && scn->symbols.f...
method get_virtual_address (line 334) | uint64_t get_virtual_address() const
type object (line 348) | struct object
method to_string (line 389) | std::string to_string() const
method discard_section (line 396) | void discard_section( const ref::strong_ptr<section>& scn )
method discard_section_if (line 418) | void discard_section_if( Pr&& predicate )
type library (line 433) | struct library
function load_object (line 451) | static ref::strong_ptr<object> load_object( const xstd::file::view<>& ...
function load_object (line 455) | static ref::strong_ptr<object> load_object( const std::filesystem::pat...
function load_slib (line 461) | static ref::strong_ptr<object> load_slib( const xstd::file::view<>& ma...
function load_slib (line 465) | static ref::strong_ptr<object> load_slib( const std::filesystem::path&...
function library (line 471) | static library load_library( const std::filesystem::path& path )
FILE: apollo-linker/object/reference_counting.hpp
type ref (line 12) | namespace ref
type managed_pointer_tag_t (line 14) | struct managed_pointer_tag_t {}
type control_block (line 18) | struct control_block
method alive (line 31) | bool alive() const { return destructor; }
method inc_weak_ref (line 32) | void inc_weak_ref() const
method inc_strong_ref (line 36) | void inc_strong_ref() const
method dec_weak_ref (line 40) | void dec_weak_ref() const
method dec_strong_ref (line 47) | void dec_strong_ref() const
method num_strong_refs (line 58) | size_t num_strong_refs() const { return strong_refs.load(); }
method num_weak_refs (line 59) | size_t num_weak_refs() const { return weak_refs.load(); }
method num_refs (line 60) | size_t num_refs() const
method control_block (line 66) | control_block() {}
type managed_object (line 70) | struct managed_object : control_block
method managed_object (line 81) | managed_object( Tx&&... args ) : value( std::forward<Tx>( args ) ... )
type managed_pointer (line 91) | struct managed_pointer : managed_pointer_tag_t
method managed_pointer (line 100) | managed_pointer() noexcept {}
method managed_pointer (line 101) | explicit managed_pointer( managed_object<T>* object ) noexcept : obj...
method T (line 105) | T* get() const noexcept { return alive() ? &object->value : nullptr; }
method T (line 106) | T* operator->() const noexcept { return get(); }
method T (line 107) | T& operator*() const noexcept { return *get(); }
method null (line 111) | bool null() const noexcept { return !object; }
method alive (line 112) | bool alive() const noexcept { return object && object->alive(); }
method dangling (line 113) | bool dangling() const noexcept { return object && !object->alive(); }
method weak_ref_count (line 117) | size_t weak_ref_count() const noexcept { return object ? object->num...
method strong_ref_count (line 118) | size_t strong_ref_count() const noexcept { return object ? object->n...
method ref_count (line 119) | size_t ref_count() const noexcept { return object ? object->num_refs...
type strong_ptr (line 139) | struct strong_ptr : managed_pointer<T>
method strong_ptr (line 143) | constexpr strong_ptr() noexcept {}
method strong_ptr (line 144) | constexpr strong_ptr( std::nullptr_t ) noexcept {}
method strong_ptr (line 145) | explicit strong_ptr( managed_object<T>* object ) noexcept : managed_...
method strong_ptr (line 149) | strong_ptr( strong_ptr&& o ) noexcept : managed_pointer<T>( std::exc...
method strong_ptr (line 150) | strong_ptr( const strong_ptr& o ) : managed_pointer<T>( o.object )
method strong_ptr (line 155) | strong_ptr& operator=( strong_ptr&& o ) noexcept
method strong_ptr (line 160) | strong_ptr& operator=( const strong_ptr& o )
type weak_ptr (line 188) | struct weak_ptr : managed_pointer<T>
method weak_ptr (line 192) | constexpr weak_ptr() noexcept {}
method weak_ptr (line 193) | constexpr weak_ptr( std::nullptr_t ) noexcept {}
method weak_ptr (line 194) | explicit weak_ptr( managed_object<T>* object ) noexcept : managed_po...
method weak_ptr (line 198) | weak_ptr( const strong_ptr<T>& p ) noexcept : managed_pointer<T>( p....
method lock (line 206) | strong_ptr<T> lock() const
method weak_ptr (line 215) | weak_ptr( weak_ptr&& o ) noexcept : managed_pointer<T>( std::exchang...
method weak_ptr (line 216) | weak_ptr( const weak_ptr& o ) : managed_pointer<T>( o.object )
method weak_ptr (line 221) | weak_ptr& operator=( weak_ptr&& o ) noexcept
method weak_ptr (line 226) | weak_ptr& operator=( const weak_ptr& o )
function allocate (line 258) | static strong_ptr<T> allocate( Tx&&... args )
type std (line 268) | namespace std
type hash<T> (line 271) | struct hash<T>
FILE: apollo-linker/transform/attribute_discovery.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/attribute_normalization.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/auto_mode_switch.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/cleanup.cpp
function transform_builtin_symbol_read (line 14) | static void transform_builtin_symbol_read( LLVMModuleRef mod, const char...
FILE: apollo-linker/transform/cleanup.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/dyn_relocs.cpp
function for_each_call (line 6) | static void for_each_call( LLVMModuleRef mod, const char* name, F&& enum...
type dynreloc_state (line 105) | struct dynreloc_state
FILE: apollo-linker/transform/dyn_relocs.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/lazy_import.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/logo.cpp
type linker::transform (line 5) | namespace linker::transform
function add_logo (line 16) | void add_logo( collection& col, ref::strong_ptr<symbol>& ep )
FILE: apollo-linker/transform/logo.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/lower_xrefs.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/mixed_bool_arith.cpp
function LLVMValueRef (line 27) | static LLVMValueRef make_neg( LLVMBuilderRef bb, LLVMValueRef a, const f...
function LLVMValueRef (line 34) | static LLVMValueRef make_not( LLVMBuilderRef bb, LLVMValueRef a, const f...
function LLVMValueRef (line 44) | static LLVMValueRef make_add( LLVMBuilderRef bb, LLVMValueRef a, LLVMVal...
function LLVMValueRef (line 55) | static LLVMValueRef make_sub( LLVMBuilderRef bb, LLVMValueRef a, LLVMVal...
function LLVMValueRef (line 71) | static LLVMValueRef make_shl( LLVMBuilderRef bb, LLVMValueRef a, LLVMVal...
function LLVMValueRef (line 78) | static LLVMValueRef make_lshr( LLVMBuilderRef bb, LLVMValueRef a, LLVMVa...
function LLVMValueRef (line 85) | static LLVMValueRef make_and( LLVMBuilderRef bb, LLVMValueRef a, LLVMVal...
function LLVMValueRef (line 112) | static LLVMValueRef make_or( LLVMBuilderRef bb, LLVMValueRef a, LLVMValu...
function LLVMValueRef (line 154) | static LLVMValueRef make_xor( LLVMBuilderRef bb, LLVMValueRef a, LLVMVal...
function apply_mba (line 220) | static void apply_mba( LLVMModuleRef mod, LLVMValueRef func, LLVMValueRe...
FILE: apollo-linker/transform/mixed_bool_arith.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/profiler.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/shadow_return.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/split_basic_blocks.cpp
function is_terminating (line 8) | static bool is_terminating( const xed::decoding& ins )
function self_relocate_routine (line 26) | static bool self_relocate_routine( const ref::strong_ptr<linker::section...
function split_bb (line 310) | static void split_bb( linker::collection& col, const ref::strong_ptr<lin...
FILE: apollo-linker/transform/split_basic_blocks.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/string_conversion.cpp
function make_printable (line 139) | static std::string make_printable( std::basic_string_view<C> str )
function strip_native_strings (line 163) | static void strip_native_strings( linker::object& obj )
FILE: apollo-linker/transform/string_conversion.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/syscall_lifter.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/transform/virtualization.cpp
type block_instance (line 22) | struct block_instance
type instruction_entry (line 31) | struct instruction_entry
method T (line 54) | T pop_arg()
FILE: apollo-linker/transform/virtualization.hpp
type linker::transform (line 4) | namespace linker::transform
FILE: apollo-linker/utility/argparse.hpp
type linker (line 9) | namespace linker
type arguments (line 12) | struct arguments
function split_arguments (line 26) | static arguments<C> split_arguments( std::basic_string_view<C> args,
FILE: apollo-linker/utility/liblto.hpp
type lto (line 11) | namespace lto
function set_options (line 18) | inline void set_options( T&& options )
type llvm_managed (line 28) | struct llvm_managed
method llvm_managed (line 36) | llvm_managed() {}
method llvm_managed (line 37) | llvm_managed( std::nullptr_t ) {}
method llvm_managed (line 39) | llvm_managed( T p ) : ptr( p )
method llvm_managed (line 46) | llvm_managed( const llvm_managed& ) = delete;
method llvm_managed (line 47) | llvm_managed& operator=( const llvm_managed& ) = delete;
method llvm_managed (line 48) | llvm_managed( llvm_managed&& o ) noexcept : ptr( std::exchange( o.pt...
method llvm_managed (line 49) | llvm_managed& operator=( llvm_managed&& o ) noexcept { std::swap( pt...
type object (line 63) | struct object : llvm_managed<lto_module_t, <o_module_dispose>
method object (line 70) | object( const void* buffer, size_t length, const std::filesystem::pa...
method object (line 75) | object( xstd::file::view<> view ) : object( view.data(), view.size()...
method is (line 77) | static bool is( const void* data, size_t len ) { return lto_module_i...
method symbols (line 79) | auto symbols() const
type code_generator (line 92) | struct code_generator : llvm_managed<lto_code_gen_t, <o_codegen_disp...
method code_generator (line 94) | code_generator() : llvm_managed( lto_codegen_create() )
method compile (line 109) | std::vector<uint8_t> compile() const
method preserve_symbol (line 115) | void preserve_symbol( const char* sym ) { lto_codegen_add_must_prese...
method mark_xref (line 116) | void mark_xref( const char* sym ) { preserve_symbol( sym ); }
method add_object (line 117) | bool add_object( const object& o ) { return !lto_codegen_add_module(...
FILE: apollo-linker/utility/llvm.hpp
type xstd::fmt (line 10) | namespace xstd::fmt
type string_formatter<LLVMValueRef> (line 13) | struct string_formatter<LLVMValueRef>
type string_formatter<LLVMTypeRef> (line 25) | struct string_formatter<LLVMTypeRef>
type string_formatter<LLVMModuleRef> (line 37) | struct string_formatter<LLVMModuleRef>
type llvm (line 49) | namespace llvm
function LLVMValueRef (line 53) | static LLVMValueRef LLVMConstExtractValue(LLVMValueRef AggConstant, un...
function LLVMValueRef (line 61) | static LLVMValueRef LLVMConstInsertValue(LLVMValueRef AggConstant,
function LLVMValueRef (line 71) | static LLVMValueRef load(LLVMBuilderRef bb, LLVMTypeRef ty, LLVMValueR...
function LLVMValueRef (line 74) | static LLVMValueRef loadi64(LLVMBuilderRef bb, LLVMValueRef ptr, const...
function LLVMValueRef (line 75) | static LLVMValueRef loadi32(LLVMBuilderRef bb, LLVMValueRef ptr, const...
function LLVMValueRef (line 76) | static LLVMValueRef loadi16(LLVMBuilderRef bb, LLVMValueRef ptr, const...
function LLVMValueRef (line 77) | static LLVMValueRef loadi8(LLVMBuilderRef bb, LLVMValueRef ptr, const ...
function LLVMAttributeRef (line 81) | static LLVMAttributeRef enum_attribute( std::string_view k, unsigned i...
function LLVMAttributeRef (line 86) | static LLVMAttributeRef string_attribute( std::string_view k, std::str...
function remove_enum_attribute (line 90) | static void remove_enum_attribute( LLVMValueRef func, std::string_view...
function remove_string_attribute (line 96) | static void remove_string_attribute( LLVMValueRef func, std::string_vi...
function has_enum_attribute (line 101) | static bool has_enum_attribute( LLVMValueRef func, std::string_view k )
function has_string_attribute (line 106) | static bool has_string_attribute( LLVMValueRef func, std::string_view k )
function set_enum_attribute (line 110) | static void set_enum_attribute( LLVMValueRef func, std::string_view k,...
function set_string_attribute (line 117) | static void set_string_attribute( LLVMValueRef func, std::string_view ...
function get_md_kind (line 126) | static uint32_t get_md_kind( std::string_view md )
function set_md (line 130) | static void set_md( LLVMValueRef on, uint32_t kind, std::initializer_l...
function set_md (line 134) | static void set_md( LLVMValueRef on, std::string_view kind, std::initi...
function LLVMValueRef (line 138) | static LLVMValueRef get_md_string( std::string_view str )
function set_branch_weights (line 145) | static void set_branch_weights( LLVMValueRef br, uint32_t a, uint32_t b )
function set_likely (line 149) | static void set_likely( LLVMValueRef br ) { set_branch_weights( br, 10...
function set_unlikely (line 150) | static void set_unlikely( LLVMValueRef br ) { set_branch_weights( br, ...
function LLVMValueRef (line 154) | static LLVMValueRef inline_asm( LLVMTypeRef type, std::string_view bod...
function LLVMTypeRef (line 169) | static LLVMTypeRef make_func_type( LLVMTypeRef retval, std::initialize...
function LLVMValueRef (line 174) | static LLVMValueRef bit_cast( LLVMBuilderRef bb, LLVMModuleRef mod, LL...
function LLVMValueRef (line 251) | static LLVMValueRef const_bit_cast( LLVMModuleRef mod, LLVMValueRef va...
function fix_linkage (line 333) | static void fix_linkage( LLVMValueRef global )
function LLVMValueRef (line 338) | static LLVMValueRef get_function( LLVMModuleRef mod, const char* name )
function get_function_ex (line 343) | static std::tuple<LLVMValueRef, LLVMTypeRef, bool> get_function_ex( LL...
function get_function (line 364) | static std::pair<LLVMValueRef, bool> get_function( LLVMModuleRef mod, ...
function LLVMValueRef (line 369) | static LLVMValueRef get_global( LLVMModuleRef mod, const char* name )
function get_global (line 374) | static std::pair<LLVMValueRef, bool> get_global( LLVMModuleRef mod, co...
function get_global (line 395) | static std::pair<LLVMValueRef, bool> get_global( LLVMModuleRef mod, co...
function LLVMValueRef (line 398) | static LLVMValueRef get_intrinsic( LLVMModuleRef mod, std::string_view...
function get_basic_blocks (line 410) | static std::vector<LLVMBasicBlockRef> get_basic_blocks( LLVMValueRef fn )
function get_globals (line 416) | static std::vector<LLVMValueRef> get_globals( LLVMModuleRef mod )
function get_functions (line 423) | static std::vector<LLVMValueRef> get_functions( LLVMModuleRef mod )
function get_users (line 430) | static std::vector<LLVMValueRef> get_users( LLVMValueRef value )
function get_primary_users (line 437) | static std::unordered_set<std::pair<LLVMValueRef, size_t>, xstd::hashe...
function get_as_string (line 493) | static std::string_view get_as_string( LLVMValueRef value )
function replace_all_and_erase (line 502) | static void replace_all_and_erase( LLVMValueRef& a, LLVMValueRef b )
function bit_size (line 511) | static size_t bit_size( LLVMModuleRef mod, LLVMTypeRef type ) { return...
function bit_size (line 512) | static size_t bit_size( LLVMModuleRef mod, LLVMValueRef value ) { retu...
function size (line 513) | static size_t size( LLVMModuleRef mod, LLVMTypeRef type ) { return ( b...
function size (line 514) | static size_t size( LLVMModuleRef mod, LLVMValueRef value ) { return (...
function LLVMValueRef (line 518) | static LLVMValueRef demote_expression( LLVMBuilderRef bb, LLVMValueRef...
function name (line 603) | static std::string_view name( LLVMValueRef value ) { return LLVMGetVal...
FILE: apollo-linker/utility/pdb.hpp
type pdb (line 15) | namespace pdb
type collection (line 17) | struct collection
method append_entry (line 33) | void append_entry( const std::filesystem::path& path, uint64_t base_...
method search (line 42) | auto search( T&& fn ) -> decltype( fn( std::declval<pdb::instance*>(...
method find_public (line 77) | sdk::public_entry find_public( const std::string& identifier )
method find_field (line 113) | sdk::offset_entry find_field( const std::string& type_name, const st...
FILE: apollo-linker/utility/undname.hpp
type util (line 16) | namespace util
function undecorate_name (line 18) | inline std::string undecorate_name( const char* name )
FILE: apollo-vm/apollo-vm.cpp
function FORCE_INLINE (line 39) | FORCE_INLINE static uint64_t decrypt_u64( uint64_t value )
function FORCE_INLINE (line 44) | FORCE_INLINE static uint64_t encrypt_u64( uint64_t value )
function FORCE_INLINE (line 50) | FORCE_INLINE static constexpr uint64_t decrypt_u64( uint64_t value )
function FORCE_INLINE (line 55) | FORCE_INLINE static constexpr uint64_t encrypt_u64( uint64_t value )
type underlying (line 66) | struct underlying { using type = T; }
type underlying<T, void> (line 68) | struct underlying<T, void> { using type = typename T::underlying_type; }
type underlying<T, void> (line 70) | struct underlying<T, void> { using type = std::underlying_type_t<T>; }
type encrypted (line 75) | struct encrypted
method FORCE_INLINE (line 81) | FORCE_INLINE T get() const { return T( decrypt_u64<Key>( uint64_t( val...
method FORCE_INLINE (line 82) | FORCE_INLINE void set( T v ) { value = T( encrypt_u64<Key>( uint64_t( ...
method FORCE_INLINE (line 84) | FORCE_INLINE operator T() const { return get(); }
method FORCE_INLINE (line 85) | FORCE_INLINE T operator=( T v ) { set( v ); return v; }
method FORCE_INLINE (line 86) | FORCE_INLINE T operator++() { T v = get(); set( ++v ); return v; }
method FORCE_INLINE (line 87) | FORCE_INLINE T operator--() { T v = get(); set( --v ); return v; }
method FORCE_INLINE (line 88) | FORCE_INLINE T operator++( int ) { T v = get(); set( v + 1 ); return v; }
method FORCE_INLINE (line 89) | FORCE_INLINE T operator--( int ) { T v = get(); set( v - 1 ); return v; }
type vm_context (line 118) | struct vm_context
method FORCE_INLINE (line 130) | FORCE_INLINE T pop_ip( uint64_t& key )
method FORCE_INLINE (line 136) | FORCE_INLINE void initialize( uint64_t* start_ip, size_t num_stack, si...
method FORCE_INLINE (line 144) | FORCE_INLINE uint64_t next( uint64_t key )
method FORCE_INLINE (line 148) | FORCE_INLINE void forward( int64_t delta, uint64_t& key )
method FORCE_INLINE (line 154) | FORCE_INLINE void stack_probe( uint32_t count )
method FORCE_INLINE (line 162) | FORCE_INLINE void push_stack( T value )
method FORCE_INLINE (line 167) | FORCE_INLINE uint64_t& peek_stack()
method FORCE_INLINE (line 172) | FORCE_INLINE T pop_stack()
method FORCE_INLINE (line 177) | FORCE_INLINE void set_sp( uint64_t* nsp )
function __wasm_vmenter (line 187) | [[gnu::always_inline, gnu::nodebug]] uint64_t __wasm_vmenter( uint64_t* ...
function __wasm_invoke (line 218) | uint64_t __wasm_invoke( P&& fn, A&& get_arg, uint32_t num_args, T... n )
function FORCE_INLINE (line 232) | FORCE_INLINE static uint64_t __wasm_br_if( vm_context* ctx, uint64_t key )
function FORCE_INLINE (line 239) | FORCE_INLINE static uint64_t __wasm_br( vm_context* ctx, uint64_t key )
function FORCE_INLINE (line 245) | FORCE_INLINE static uint64_t __wasm_return( vm_context* ctx, uint64_t key )
function __wasm_ext_call (line 249) | [[gnu::always_inline, gnu::flatten]] static uint64_t __wasm_ext_call( vm...
function FORCE_INLINE (line 262) | FORCE_INLINE static uint64_t __wasm_unary( vm_context* ctx, uint64_t key...
function FORCE_INLINE (line 268) | FORCE_INLINE static uint64_t __wasm_binary( vm_context* ctx, uint64_t ke...
function FORCE_INLINE (line 279) | FORCE_INLINE static uint64_t __wasm_load_const( vm_context* ctx, uint64_...
function FORCE_INLINE (line 285) | FORCE_INLINE static uint64_t __wasm_load( vm_context* ctx, uint64_t key )
function FORCE_INLINE (line 291) | FORCE_INLINE static uint64_t __wasm_store( vm_context* ctx, uint64_t key )
function FORCE_INLINE (line 300) | FORCE_INLINE static uint64_t __wasm_atomic_load( vm_context* ctx, uint64...
function FORCE_INLINE (line 306) | FORCE_INLINE static uint64_t __wasm_atomic_store( vm_context* ctx, uint6...
function FORCE_INLINE (line 313) | FORCE_INLINE static uint64_t __wasm_rmw_binary( vm_context* ctx, uint64_...
function FORCE_INLINE (line 321) | FORCE_INLINE static uint64_t __wasm_rmw_ternary( vm_context* ctx, uint64...
function FORCE_INLINE (line 332) | FORCE_INLINE static uint64_t __wasm_get_local( vm_context* ctx, uint64_t...
function FORCE_INLINE (line 337) | FORCE_INLINE static uint64_t __wasm_set_local( vm_context* ctx, uint64_t...
function FORCE_INLINE (line 342) | FORCE_INLINE static uint64_t __wasm_tee_local( vm_context* ctx, uint64_t...
function FORCE_INLINE (line 350) | FORCE_INLINE static uint64_t __wasm_drop( vm_context* ctx, uint64_t key )
function FORCE_INLINE (line 355) | FORCE_INLINE static uint64_t __wasm_select( vm_context* ctx, uint64_t key )
type vrotl (line 365) | struct vrotl
type vrotr (line 375) | struct vrotr
type vctz (line 385) | struct vctz
type vclz (line 397) | struct vclz
type vpopcnt (line 409) | struct vpopcnt
type twords (line 423) | struct twords
function __multi3 (line 428) | [[gnu::always_inline, gnu::nodebug]] void __multi3( twords* o, twords a,...
function __wasm_bpop (line 434) | [[gnu::always_inline, gnu::nodebug]] uint64_t __wasm_bpop( uint64_t _ctx...
function __wasm_bpush (line 435) | [[gnu::always_inline, gnu::nodebug]] void __wasm_bpush( uint64_t _ctx_, ...
function __wasm_bret (line 436) | [[gnu::always_inline, gnu::nodebug]] uint64_t __wasm_bret( uint64_t _ctx...
function __wasm_execute (line 440) | [[gnu::always_inline, gnu::nodebug]] uint64_t __wasm_execute( uint16_t o...
FILE: flash/includes/flash/dumper.hpp
type flash (line 6) | namespace flash
FILE: flash/includes/flash/engine.hpp
type flash (line 10) | namespace flash
type package (line 12) | struct package
type results (line 14) | struct results
type type_id (line 16) | enum type_id
type state_id (line 25) | enum state_id
type entry (line 32) | struct entry
method success (line 64) | bool success() const { return error_log.empty(); }
type engine (line 71) | struct engine
method engine (line 91) | engine( const engine& ) = delete;
method engine (line 92) | engine& operator=( const engine& ) = delete;
method load_script (line 97) | void load_script( std::span<const uint8_t> data, const char* name = ...
FILE: flash/includes/flash/format.hpp
type flash (line 8) | namespace flash
type import_type (line 13) | enum class import_type : uint32_t
type import_entry (line 22) | struct import_entry
type import_information (line 38) | struct import_information
method get_log (line 66) | std::string_view get_log() const { if ( log_offset == 0 ) return {};...
type script_entry (line 71) | struct script_entry
method get_bytecode (line 78) | std::string_view get_bytecode() const { return { &data[ 0 ], bytecod...
method script_entry (line 82) | const script_entry* next() const { return ( script_entry* ) &data[ b...
method is_terminator (line 83) | bool is_terminator() const { return bytecode_length == 0; }
type package (line 85) | struct package
method for_each (line 90) | void for_each( F&& fn ) const
function hash_import (line 100) | static constexpr uint32_t hash_import( std::string_view name )
FILE: flash/includes/flash/func_builder.hpp
type flash (line 4) | namespace flash {
type basic_block (line 9) | struct basic_block : shellcode {
method basic_block (line 25) | basic_block( uint32_t rva, const shellcode& block ) : shellcode( blo...
method recurse (line 30) | void recurse( F&& fn, bool dfs, uint32_t tag = monotonic_counter++ )...
method dfs (line 43) | void dfs( F&& fn, uint32_t tag = monotonic_counter++ ) const { recur...
method bfs (line 45) | void bfs( F&& fn, uint32_t tag = monotonic_counter++ ) const { recur...
method assemble (line 50) | void assemble( xed::iclass_t icl, Tx&&...args ) {
method assemble_at (line 58) | void assemble_at( size_t pos, xed::iclass_t icl, Tx&&... args ) {
type func_builder (line 67) | struct func_builder {
method basic_block (line 73) | basic_block* find_block( uint32_t rva ) {
method for_each_preserved (line 82) | void for_each_preserved( auto&& fn ) {
method allocate_global_gpr_with_allow_mask (line 92) | xed::reg_t allocate_global_gpr_with_allow_mask( uint64_t mask_allowe...
method allocate_global_gpr (line 99) | xed::reg_t allocate_global_gpr() {
method add_block (line 109) | bool add_block( uint32_t rva, const shellcode& block, xed::iclass_t ...
method add_edge (line 121) | bool add_edge( uint32_t from, uint32_t to ) {
FILE: flash/includes/flash/hex.hpp
type flash (line 6) | namespace flash
function from_hex (line 10) | inline std::vector<uint8_t> from_hex( std::string_view str )
function to_hex (line 49) | inline std::string to_hex( std::span<const uint8_t> data )
FILE: flash/includes/flash/image.hpp
type flash (line 9) | namespace flash
type function_info (line 11) | struct function_info
type image (line 21) | struct image
method section (line 59) | section* get_section( uint32_t rva )
method can_read (line 76) | inline bool can_read( const T* pointer ) const
FILE: flash/includes/flash/rule.hpp
type flash (line 13) | namespace flash
function is_valid_code_range (line 17) | inline bool is_valid_code_range( std::span<const uint8_t> rng )
type search_result (line 31) | struct search_result
method search_result (line 40) | constexpr search_result() : position( npos ), length( 0 ) {}
method search_result (line 44) | constexpr search_result( uint32_t position, uint32_t length ) : posi...
method search_result (line 48) | constexpr search_result( const search_result& ) = default;
method search_result (line 49) | constexpr search_result& operator=( const search_result& ) = default;
method has_value (line 54) | constexpr bool has_value() const { return !( position & npos ); }
method to_string (line 59) | std::string to_string() const
method tie (line 67) | constexpr auto tie() { return std::tie( position, length ); }
type rule (line 72) | struct rule
type trait (line 76) | enum trait : uint8_t
method rule (line 89) | constexpr rule( uint8_t traits = 0, float quality = 0.0f ) : quality...
method search_result (line 98) | virtual search_result accelerated_search( image* img, section* scn, ...
method search_result (line 102) | search_result search( image* img, section* scn, uint32_t rva_0, uint...
method search_result (line 133) | search_result find( image* img, section* scn, uint32_t rva_0, uint32...
method search_result (line 134) | search_result rfind( image* img, section* scn, uint32_t rva_0, uint3...
method to_string (line 138) | virtual std::string to_string() const {
type any (line 148) | struct any
type all (line 149) | struct all
type padding (line 154) | struct padding final : rule
method padding (line 160) | constexpr padding( uint32_t min, uint32_t max ) : rule( rule::s_padd...
method padding (line 161) | constexpr padding( uint32_t max ) : padding( 0, max ) {}
method match (line 165) | int32_t match( image* img, section* scn, uint32_t rva_0, uint32_t rv...
method to_string (line 166) | std::string to_string() const override {
type marker (line 173) | struct marker final : rule
method marker (line 179) | constexpr marker() : rule( rule::s_marker, -1 ) {}
method match (line 183) | int32_t match( image* img, section* scn, uint32_t rva_0, uint32_t rv...
method to_string (line 188) | std::string to_string() const override {
type rule::any (line 195) | struct rule::any final : rule
method any (line 207) | any() : rule() {}
method any (line 212) | any( T1&& r1, Tx&&... rest ) : any() {
method update (line 224) | void update()
method append (line 257) | void append( std::shared_ptr<rule> r )
method get_chain (line 265) | std::span<rule*> get_chain( bool forward ) { return rule_list_sorted...
method match (line 269) | int32_t match( image* img, section* scn, uint32_t rva_0, uint32_t rv...
method search_result (line 281) | search_result accelerated_search( image* img, section* scn, uint32_t...
method to_string (line 288) | std::string to_string() const override {
type rule::all (line 292) | struct rule::all final : rule
method all (line 304) | all() : rule() {}
method all (line 309) | all( T1&& r1, Tx&&... rest ) : all() {
method update (line 321) | void update()
method append (line 370) | void append( std::shared_ptr<rule> r )
method partial_match (line 391) | int32_t partial_match( size_t rule_next, image* img, section* scn, u...
method match (line 527) | int32_t match( image* img, section* scn, uint32_t rva_0, uint32_t rv...
method search_result (line 532) | search_result accelerated_search( image* img, section* scn, uint32_t...
method to_string (line 609) | std::string to_string() const override {
FILE: flash/includes/flash/rule_filters.hpp
type flash (line 4) | namespace flash
type aligned (line 8) | struct aligned final : rule
method aligned (line 13) | aligned( uint32_t boundary ) : rule( rule::forward_accel | rule::bac...
method match (line 17) | int32_t match( image* img, section* scn, uint32_t rva_0, uint32_t rv...
method search_result (line 22) | search_result accelerated_search( image* img, section* scn, uint32_t...
method to_string (line 38) | std::string to_string() const override {
type refs_rva (line 44) | struct refs_rva final : rule
method refs_rva (line 49) | refs_rva( uint32_t rva ) : rule( 0, 0 ), rva( rva ) {}
method match (line 53) | int32_t match( image* img, section* scn, uint32_t rva_0, uint32_t rv...
method to_string (line 78) | std::string to_string() const override {
type refs_pattern (line 82) | struct refs_pattern final : rule
method refs_pattern (line 87) | refs_pattern( std::shared_ptr<rule> r ) : rule( 0, 0 ), other_rule( ...
method match (line 91) | int32_t match( image* img, section* scn, uint32_t rva_0, uint32_t rv...
method to_string (line 114) | std::string to_string() const override {
FILE: flash/includes/flash/rule_instruction.hpp
type flash (line 5) | namespace flash
type instruction (line 7) | struct instruction final : rule
type ex_matching_flags (line 9) | enum ex_matching_flags : uint8_t
method instruction (line 24) | instruction( const xed::decoding& _value, uint8_t extended_matching_...
method to_string (line 41) | std::string to_string() const override {
FILE: flash/includes/flash/rule_pattern.hpp
type flash (line 8) | namespace flash
type pattern (line 10) | struct pattern final : rule
method rank_byte (line 18) | static constexpr float rank_byte( uint8_t value )
method pattern (line 26) | pattern( std::vector<uint8_t> _value, std::vector<uint8_t> _mask = {} )
method pattern (line 43) | pattern( std::span<const uint8_t> value, std::span<const uint8_t> ma...
method to_string (line 54) | std::string to_string() const override {
FILE: flash/includes/flash/section.hpp
type flash (line 11) | namespace flash
type instruction_summary (line 15) | struct instruction_summary
method valid (line 20) | bool valid() const { return iclass != XED_ICLASS_INVALID; }
type text_analysis (line 26) | struct text_analysis
type rdata_analysis (line 35) | struct rdata_analysis
type image (line 39) | struct image
type section (line 43) | struct section
type type_id (line 45) | enum type_id : uint8_t
FILE: flash/includes/flash/shellcode.hpp
type flash (line 10) | namespace flash
type image (line 12) | struct image
type special_arg (line 14) | enum special_arg {
type stack_analysis (line 20) | struct stack_analysis {
type register_analysis (line 24) | struct register_analysis {
function make_reg_mask (line 31) | inline constexpr uint64_t make_reg_mask( size_t gpr_index, size_t offs...
function make_reg_mask (line 41) | inline constexpr uint64_t make_reg_mask( xed::reg_t reg ) {
function alloc_reg_with_used_mask (line 58) | inline constexpr xed::reg_t alloc_reg_with_used_mask( uint64_t used_ma...
function alloc_reg_with_mask (line 67) | inline constexpr xed::reg_t alloc_reg_with_mask( uint64_t allowed_mask...
function msabi_is_nonvolatile (line 84) | inline constexpr bool msabi_is_nonvolatile( size_t gpr_index ) {
type shellcode (line 88) | struct shellcode
type instruction (line 92) | struct instruction
method instruction (line 121) | instruction( const instruction& ) = default;
method instruction (line 122) | instruction& operator=( const instruction& ) = default;
method is_pure (line 150) | bool is_pure() const { return !mem_write; }
type argument_promise (line 157) | struct argument_promise
method shellcode (line 176) | shellcode() {}
method shellcode (line 177) | shellcode( image* img, uint32_t rva_0, uint32_t rva_1 ) { push_back(...
method add_argument (line 212) | void add_argument( xed::reg_t reg ) { arguments.push_back( { .assign...
method add_argument (line 213) | void add_argument( int32_t stack_slot, uint8_t size ) { arguments.pu...
FILE: flash/includes/flash/simd.hpp
type flash::simd (line 7) | namespace flash::simd
type impl (line 9) | namespace impl
function NO_INLINE (line 16) | NO_INLINE inline bool match( const uint8_t* against, const uint8_t* ...
function NO_INLINE (line 65) | NO_INLINE inline const T* find( std::span<const T> within, T value, ...
function NO_INLINE (line 129) | NO_INLINE inline const T* rfind( std::span<const T> within, T value,...
function FORCE_INLINE (line 197) | FORCE_INLINE inline bool match( const T* against, const T* value, cons...
function FORCE_INLINE (line 205) | FORCE_INLINE inline const T* find( std::span<const T> within, T value,...
function FORCE_INLINE (line 210) | FORCE_INLINE inline const T* rfind( std::span<const T> within, T value...
function FORCE_INLINE (line 215) | FORCE_INLINE inline const T* find( const T* begin, const T* end, T val...
function FORCE_INLINE (line 220) | FORCE_INLINE inline const T* rfind( const T* begin, const T* end, T va...
FILE: flash/includes/flash/vcpu.hpp
type flash::vm (line 9) | namespace flash::vm {
function bool_and (line 18) | static constexpr std::optional<bool> bool_and( std::optional<bool> a, ...
function bool_or (line 28) | static constexpr std::optional<bool> bool_or( std::optional<bool> a, s...
function bool_xor (line 38) | static constexpr std::optional<bool> bool_xor( std::optional<bool> a, ...
function bool_not (line 44) | static constexpr std::optional<bool> bool_not( std::optional<bool> a ) {
function opt_apply (line 51) | static constexpr auto opt_apply( F&& fn, std::optional<Tx>... values )...
type partial (line 87) | struct partial {
method select (line 92) | std::optional<T> select( T request = ~T(0) ) const {
method known (line 101) | bool known( T m = ~T( 0 ) ) const {
method undef (line 108) | void undef( T m = ~T( 0 ) ) {
method write (line 114) | void write( std::optional<T> v, T m = ~T( 0 ) ) {
method to_optional (line 128) | std::optional<Ty> to_optional() const {
type status (line 143) | enum class status : uint8_t {
type branch (line 165) | enum class branch : uint8_t {
type branch_action (line 181) | enum class branch_action : uint8_t {
type vcpu (line 189) | struct vcpu {
method ctl_breakpoint (line 238) | bool ctl_breakpoint( uint64_t va, bool enabled ) {
method ctl_branch (line 255) | bool ctl_branch( uint64_t va, std::optional<bool> cc ) {
method try_branch (line 279) | std::optional<branch_action> try_branch( uint64_t rip, std::vector<u...
method consume_call_token (line 314) | bool consume_call_token() {
method consume_token (line 321) | bool consume_token() {
method ss_lea (line 331) | ptrdiff_t ss_lea( uint64_t ptr, size_t width ) const {
method ss_read (line 338) | std::optional<T> ss_read( ptrdiff_t offset, T mask = (T) xstd::fill_...
method ss_write (line 350) | bool ss_write( ptrdiff_t offset, std::optional<T> value, T mask = (T...
method mem_read (line 365) | std::optional<T> mem_read( std::optional<uint64_t> ptr, uint64_t mas...
method mem_write (line 401) | bool mem_write( std::optional<uint64_t> ptr, std::optional<T> value,...
method read_flags (line 424) | std::optional<uint64_t> read_flags( uint64_t mask ) const {
method write_flags (line 427) | void write_flags( uint64_t mask, std::optional<uint64_t> value ) {
method read_flag (line 430) | std::optional<bool> read_flag( uint64_t mask ) const {
method write_flag (line 433) | void write_flag( uint64_t mask, std::optional<bool> value ) {
method read_reg (line 451) | std::optional<Ty> read_reg( xed::reg_t r, uint64_t mask = ~0ull ) co...
method write_reg (line 505) | bool write_reg( xed::reg_t r, std::optional<Ty> value_s, uint64_t ma...
method agen (line 560) | std::optional<uint64_t> agen( const xed::decoding& dec, size_t n ) c...
method load (line 571) | std::optional<Ty> load( const xed::decoding& dec, xed::op_name_t op,...
method store (line 614) | bool store( const xed::decoding& dec, xed::op_name_t op, std::option...
method load_n (line 638) | std::optional<Ty> load_n( const xed::decoding& dec, size_t i, uint64...
method store_n (line 642) | bool store_n( const xed::decoding& dec, size_t i, std::optional<Ty> ...
method uvisit_n (line 649) | decltype(auto) uvisit_n( const xed::decoding& dec, size_t i, F&& fn ...
method ivisit_n (line 659) | decltype(auto) ivisit_n( const xed::decoding& dec, size_t i, F&& fn ...
method test_branch (line 671) | std::optional<bool> test_branch( branch b ) const {
method assume_branch (line 693) | void assume_branch( branch b, bool taken ) {
method resolve_branch (line 750) | void resolve_branch( bool taken ) {
method set_retptr (line 767) | void set_retptr( uint64_t va, int64_t sp_offset ) {
method to_rva (line 776) | std::optional<uint32_t> to_rva( uint64_t va ) const {
method to_va (line 782) | uint64_t to_va( uint64_t rva ) const {
FILE: flash/main.cpp
type script (line 25) | struct script
function minify_script (line 32) | static void minify_script( script& script ) {
function read_package (line 98) | static std::vector<script> read_package( std::filesystem::path path, std...
function read_common_package (line 152) | static std::vector<script> read_common_package( xstd::hash_t* hash = nul...
function exec_on_modify (line 162) | static void exec_on_modify( std::string_view game_name, std::string inpu...
function main (line 478) | int main( int argc, const char** argv )
function __lj_mcode_free (line 563) | void __lj_mcode_free( void* p, size_t ) { HeapFree( exec_heap, 0, p ); }
function FILE (line 564) | FILE* __lj_fopen_usr( void* _L, const char* f, const char* m ) { return ...
function lj_err_unwind_win (line 565) | void lj_err_unwind_win() {}
FILE: flash/src/dumper.cpp
type flash (line 4) | namespace flash
function dump (line 8) | xstd::result<std::vector<uint8_t>> dump( std::span<const uint8_t> imag...
FILE: flash/src/func_builder.cpp
type flash (line 3) | namespace flash {
FILE: flash/src/image.cpp
type flash (line 5) | namespace flash
function from_unwind_id (line 9) | static xed::reg_t from_unwind_id( win::unwind_register_id reg )
function image (line 49) | image image::load( std::span<uint8_t> img_data, std::string_view deobf...
FILE: flash/src/interface.cpp
type flash (line 23) | namespace flash
type rule_wrapper (line 27) | struct rule_wrapper
method get_quality (line 30) | float get_quality() const { return rule->quality; }
method to_string (line 31) | std::string to_string() const { return rule->to_string(); }
type func_builder_wrapper (line 33) | struct func_builder_wrapper {
method func_builder (line 35) | func_builder* operator->() const { return fb.get(); }
type image_wrapper (line 37) | struct image_wrapper
method read_i (line 44) | std::optional<T> read_i( uint32_t rva ) const
method decode (line 51) | std::optional<xed::decoding> decode( uint32_t rva )
method stream (line 58) | auto stream( ulua::state_view, uint32_t rva, uint32_t rva_end )
method decode_len (line 74) | uint32_t decode_len( uint32_t rva )
method read_utf16 (line 83) | std::optional<std::string> read_utf16( uint32_t rva ) const
method read_utf8 (line 94) | std::optional<std::string_view> read_utf8( uint32_t rva ) const
type query (line 109) | struct query
method find (line 204) | auto find( uint8_t type_mask, rule_wrapper rule, std::optional<uint3...
method rfind (line 216) | auto rfind( uint8_t type_mask, const rule_wrapper& rule, std::option...
method find_raw (line 231) | auto find_raw( uint8_t type_mask, const void* data, size_t n, std::o...
method rfind_raw (line 236) | auto rfind_raw( uint8_t type_mask, const void* data, size_t n, std::...
type filter (line 245) | struct filter : rule
method filter (line 250) | filter( ulua::function fn ) : rule( 0, -1 ), fn( std::move( fn ) ) {}
method match (line 251) | int32_t match( image* img, section*, uint32_t rva_0, uint32_t rva_1,...
method to_string (line 264) | std::string to_string() const override {
function assign_result (line 1028) | static void assign_result( image*, results& r, results::entry& e, ulua...
function run_result (line 1087) | static bool run_result( image* i, results& r, results::entry& e, const...
function request_result (line 1104) | static void request_result( image* i, results& r, results::entry& e ) {
function rewrite_proto (line 1110) | static void rewrite_proto( GCproto* pt, GCRef chunk_name, const ulua::...
function results (line 1707) | results& engine::run()
type ulua (line 270) | namespace ulua
type user_traits<flash::func_builder_wrapper> (line 275) | struct user_traits<flash::func_builder_wrapper> {
type user_traits<flash::function_info> (line 299) | struct user_traits<flash::function_info> {
type user_traits<xed::decoding> (line 317) | struct user_traits<xed::decoding>
type user_traits<rule_wrapper> (line 533) | struct user_traits<rule_wrapper>
type user_traits<image_wrapper> (line 559) | struct user_traits<image_wrapper>
type user_traits<shellcode> (line 706) | struct user_traits<shellcode>
type user_traits<vm::vcpu> (line 911) | struct user_traits<vm::vcpu> {
type flash (line 1026) | namespace flash
type rule_wrapper (line 27) | struct rule_wrapper
method get_quality (line 30) | float get_quality() const { return rule->quality; }
method to_string (line 31) | std::string to_string() const { return rule->to_string(); }
type func_builder_wrapper (line 33) | struct func_builder_wrapper {
method func_builder (line 35) | func_builder* operator->() const { return fb.get(); }
type image_wrapper (line 37) | struct image_wrapper
method read_i (line 44) | std::optional<T> read_i( uint32_t rva ) const
method decode (line 51) | std::optional<xed::decoding> decode( uint32_t rva )
method stream (line 58) | auto stream( ulua::state_view, uint32_t rva, uint32_t rva_end )
method decode_len (line 74) | uint32_t decode_len( uint32_t rva )
method read_utf16 (line 83) | std::optional<std::string> read_utf16( uint32_t rva ) const
method read_utf8 (line 94) | std::optional<std::string_view> read_utf8( uint32_t rva ) const
type query (line 109) | struct query
method find (line 204) | auto find( uint8_t type_mask, rule_wrapper rule, std::optional<uint3...
method rfind (line 216) | auto rfind( uint8_t type_mask, const rule_wrapper& rule, std::option...
method find_raw (line 231) | auto find_raw( uint8_t type_mask, const void* data, size_t n, std::o...
method rfind_raw (line 236) | auto rfind_raw( uint8_t type_mask, const void* data, size_t n, std::...
type filter (line 245) | struct filter : rule
method filter (line 250) | filter( ulua::function fn ) : rule( 0, -1 ), fn( std::move( fn ) ) {}
method match (line 251) | int32_t match( image* img, section*, uint32_t rva_0, uint32_t rva_1,...
method to_string (line 264) | std::string to_string() const override {
function assign_result (line 1028) | static void assign_result( image*, results& r, results::entry& e, ulua...
function run_result (line 1087) | static bool run_result( image* i, results& r, results::entry& e, const...
function request_result (line 1104) | static void request_result( image* i, results& r, results::entry& e ) {
function rewrite_proto (line 1110) | static void rewrite_proto( GCproto* pt, GCRef chunk_name, const ulua::...
function results (line 1707) | results& engine::run()
FILE: flash/src/rule_instruction.cpp
type flash (line 6) | namespace flash
function instruction (line 10) | instruction instruction::from( std::string_view str, uint8_t extended_...
function search_result (line 150) | search_result instruction::accelerated_search( image* img, section* sc...
FILE: flash/src/rule_pattern.cpp
type flash (line 5) | namespace flash
function pattern (line 9) | pattern pattern::from( std::string_view str )
function search_result (line 69) | search_result pattern::accelerated_search( image* img, section*, uint3...
FILE: flash/src/section.cpp
type flash (line 7) | namespace flash
function validate_prefixes (line 9) | static bool validate_prefixes( const xed::decoding& dec, const uint8_t...
function analyze_section (line 170) | static void analyze_section( image* img, section* s, text_analysis& a )
function analyze_section (line 327) | static void analyze_section( image* img, section* s, rdata_analysis& )
FILE: flash/src/shellcode.cpp
type flash (line 5) | namespace flash
function is_iclass_recognized (line 9) | static constexpr bool is_iclass_recognized( xed::iclass_t icl )
function action_to_rw (line 138) | static constexpr std::pair<bool, bool> action_to_rw( xed::op_action_t ...
function stack_analysis (line 421) | stack_analysis shellcode::analyze_stack() const {
function register_analysis (line 443) | register_analysis shellcode::analyze_registers() const {
type special_arg (line 760) | enum special_arg {
FILE: flash/src/vcpu.cpp
type flash::vm (line 4) | namespace flash::vm {
function cf_add (line 15) | static std::optional<bool> cf_add( std::optional<T> lhs, std::optional...
function of_add (line 30) | static std::optional<bool> of_add( std::optional<T> lhs, std::optional...
function cf_sub (line 45) | static std::optional<bool> cf_sub( std::optional<T> lhs, std::optional...
function of_sub (line 60) | static std::optional<bool> of_sub( std::optional<T> lhs, std::optional...
function pf_any (line 74) | static std::optional<bool> pf_any( std::optional<T> res ) { return res...
function sf_any (line 75) | static std::optional<bool> sf_any( std::optional<T> res ) { return res...
function zf_any (line 76) | static std::optional<bool> zf_any( std::optional<T> res ) { return res...
function af_any (line 77) | static std::optional<bool> af_any( std::optional<Tx>... vx ) { return ...
function set_pf (line 78) | static void set_pf(vcpu* cpu, std::optional<T> result) { cpu->write_fl...
function set_sf (line 79) | static void set_sf(vcpu* cpu, std::optional<T> result) { cpu->write_fl...
function set_zf (line 80) | static void set_zf(vcpu* cpu, std::optional<T> result) { cpu->write_fl...
function set_cf_add (line 81) | static void set_cf_add(vcpu* cpu, std::optional<T> lhs, std::optional<...
function set_cf_sub (line 82) | static void set_cf_sub(vcpu* cpu, std::optional<T> lhs, std::optional<...
function set_of_add (line 83) | static void set_of_add(vcpu* cpu, std::optional<T> lhs, std::optional<...
function set_of_sub (line 84) | static void set_of_sub(vcpu* cpu, std::optional<T> lhs, std::optional<...
function set_af (line 85) | static void set_af( vcpu* cpu, std::optional<T> rhs, std::optional<T> ...
function set_af (line 86) | static void set_af( vcpu* cpu, std::optional<T> lhs, std::optional<T> ...
function set_af (line 87) | static void set_af( vcpu* cpu, std::optional<T> lhs, std::optional<T> ...
function set_flags_logical (line 90) | static void set_flags_logical( vcpu* cpu, std::optional<T> result ) {
function DECL_EMU (line 102) | DECL_EMU( INVALID ) {
function DECL_EMU (line 115) | DECL_EMU( NOP ) {}
function DECL_EMU (line 116) | DECL_EMU( NOP2 ) {}
function DECL_EMU (line 117) | DECL_EMU( NOP3 ) {}
function DECL_EMU (line 118) | DECL_EMU( NOP4 ) {}
function DECL_EMU (line 119) | DECL_EMU( NOP5 ) {}
function DECL_EMU (line 120) | DECL_EMU( NOP6 ) {}
function DECL_EMU (line 121) | DECL_EMU( NOP7 ) {}
function DECL_EMU (line 122) | DECL_EMU( NOP8 ) {}
function DECL_EMU (line 123) | DECL_EMU( NOP9 ) {}
function DECL_EMU (line 124) | DECL_EMU( PAUSE ) {}
function DECL_EMU (line 128) | DECL_EMU( LEA ) {
function DECL_EMU (line 137) | DECL_EMU( MOV ) {
function DECL_EMU (line 140) | DECL_EMU( XCHG ) {
function DECL_EMU (line 149) | DECL_EMU( MOVZX ) {
function DECL_EMU (line 155) | DECL_EMU( MOVSX ) {
function DECL_EMU (line 158) | DECL_EMU( MOVSXD ) {
function DECL_EMU (line 161) | DECL_EMU( CDQE ) {
function DECL_EMU (line 164) | DECL_EMU( CWDE ) {
function DECL_EMU (line 167) | DECL_EMU( CBW ) {
function tmp_push (line 174) | static void tmp_push( vcpu* cpu, std::optional<T> value ) {
function tmp_pop (line 181) | static std::optional<T> tmp_pop( vcpu* cpu ) {
function DECL_EMU (line 189) | DECL_EMU( PUSH ) {
function DECL_EMU (line 196) | DECL_EMU( PUSHF ) {
function DECL_EMU (line 199) | DECL_EMU( PUSHFQ ) {
function DECL_EMU (line 202) | DECL_EMU( POPF ) {
function DECL_EMU (line 211) | DECL_EMU( POPFQ ) {
function DECL_EMU (line 220) | DECL_EMU( POP ) {
function DECL_EMU (line 230) | DECL_EMU( CLD ) { cpu->write_flag( DF, false ); }
function DECL_EMU (line 231) | DECL_EMU( STD ) { cpu->write_flag( DF, false ); }
function DECL_EMU (line 232) | DECL_EMU( CLC ) { cpu->write_flag( CF, false ); }
function DECL_EMU (line 233) | DECL_EMU( STC ) { cpu->write_flag( CF, false ); }
function DECL_EMU (line 234) | DECL_EMU( CMC ) { cpu->rflags.value ^= CF; }
function DECL_EMU (line 235) | DECL_EMU( LAHF ) {
function DECL_EMU (line 239) | DECL_EMU( SAHF ) {
function tmp_jcc (line 249) | static void tmp_jcc(vcpu* cpu, const xed::decoding& dec, branch b) {
function tmp_setcc (line 284) | static void tmp_setcc( vcpu* cpu, const xed::decoding& dec, branch b ) {
function tmp_cmovcc (line 288) | static void tmp_cmovcc( vcpu* cpu, const xed::decoding& dec, branch b ) {
function DECL_EMU (line 370) | DECL_EMU( LOOP ) {
function DECL_EMU (line 375) | DECL_EMU( LOOPE ) {
function DECL_EMU (line 380) | DECL_EMU( LOOPNE ) {
function DECL_EMU (line 388) | DECL_EMU( JMP ) {
function DECL_EMU (line 391) | DECL_EMU( CALL_NEAR ) {
function DECL_EMU (line 410) | DECL_EMU( RET_NEAR ) {
function DECL_EMU (line 421) | DECL_EMU( OR ) {
function DECL_EMU (line 431) | DECL_EMU( AND ) {
function DECL_EMU (line 441) | DECL_EMU( TEST ) {
function DECL_EMU (line 448) | DECL_EMU( XOR ) {
function DECL_EMU (line 464) | DECL_EMU( NOT ) {
function DECL_EMU (line 473) | DECL_EMU( MOVBE ) {
function DECL_EMU (line 479) | DECL_EMU( BSWAP ) {
function DECL_EMU (line 489) | DECL_EMU( BT ) {
function DECL_EMU (line 499) | DECL_EMU( BTS ) {
function DECL_EMU (line 513) | DECL_EMU( BTR ) {
function DECL_EMU (line 527) | DECL_EMU( BTC ) {
function DECL_EMU (line 543) | DECL_EMU( SHR ) {
function DECL_EMU (line 561) | DECL_EMU( SAR ) {
function DECL_EMU (line 579) | DECL_EMU( SHL ) {
function DECL_EMU (line 597) | DECL_EMU( ROR ) {
function DECL_EMU (line 612) | DECL_EMU( ROL ) {
function DECL_EMU (line 627) | DECL_EMU( RCR ) {
function DECL_EMU (line 653) | DECL_EMU( RCL ) {
function DECL_EMU (line 679) | DECL_EMU( RORX ) {
function DECL_EMU (line 690) | DECL_EMU( SHRD ) {
function DECL_EMU (line 712) | DECL_EMU( SHLD ) {
function DECL_EMU (line 738) | DECL_EMU( ADD ) {
function DECL_EMU (line 751) | DECL_EMU( SUB ) {
function DECL_EMU (line 764) | DECL_EMU( INC ) {
function DECL_EMU (line 776) | DECL_EMU( CMP ) {
function DECL_EMU (line 788) | DECL_EMU( DEC ) {
function DECL_EMU (line 800) | DECL_EMU( XADD ) {
function DECL_EMU (line 814) | DECL_EMU( NEG ) {
function DECL_EMU (line 828) | DECL_EMU( ADC ) {
function DECL_EMU (line 843) | DECL_EMU( SBB ) {
function DECL_EMU (line 861) | DECL_EMU( MUL ) {
function DECL_EMU (line 914) | DECL_EMU( MULX ) {
function DECL_EMU (line 947) | DECL_EMU( IMUL ) {
function tmp_div (line 1060) | static void tmp_div( vcpu* cpu, const xed::decoding&, std::optional<T>...
function DECL_EMU (line 1128) | DECL_EMU( DIV ) {
function DECL_EMU (line 1131) | DECL_EMU( IDIV ) {
function status (line 1137) | status vcpu::step( const xed::decoding& dec ) {
function status (line 1336) | status vcpu::step() {
function status (line 1347) | status vcpu::step_block() {
function status (line 1356) | status vcpu::run() {
FILE: pdblib/includes/pdblib/cvconsts.h
type CV_call_e (line 31) | typedef enum CV_call_e {
type CV_access_e (line 67) | typedef enum CV_access_e {
type THUNK_ORDINAL (line 73) | typedef enum THUNK_ORDINAL {
type CV_SourceChksum_t (line 88) | enum CV_SourceChksum_t {
type SymTagEnum (line 99) | enum SymTagEnum
type LocationType (line 146) | enum LocationType
type DataKind (line 162) | enum DataKind
type UdtKind (line 176) | enum UdtKind
type BasicType (line 184) | enum BasicType
type CV_modifier_e (line 211) | typedef enum CV_modifier_e {
type CV_builtin_e (line 248) | typedef enum CV_builtin_e {
type CV_CFL_LANG (line 300) | typedef enum CV_CFL_LANG {
type CV_CPU_TYPE_e (line 324) | typedef enum CV_CPU_TYPE_e {
type CV_HREG_e (line 392) | typedef enum CV_HREG_e {
type CV_HLSLREG_e (line 3663) | typedef enum CV_HLSLREG_e {
type StackFrameTypeEnum (line 3707) | enum StackFrameTypeEnum
type MemoryTypeEnum (line 3718) | enum MemoryTypeEnum
type CV_HLSLMemorySpace_e (line 3728) | typedef enum CV_HLSLMemorySpace_e
FILE: pdblib/includes/pdblib/cvinfo.h
type CV_uoff32_t (line 54) | typedef uint32_t CV_uoff32_t;
type CV_off32_t (line 55) | typedef int32_t CV_off32_t;
type CV_uoff16_t (line 56) | typedef uint16_t CV_uoff16_t;
type CV_off16_t (line 57) | typedef int16_t CV_off16_t;
type CV_typ16_t (line 58) | typedef uint16_t CV_typ16_t;
type CV_typ_t (line 59) | typedef uint32_t CV_typ_t;
type CV_pubsymflag_t (line 60) | typedef uint32_t CV_pubsymflag_t;
type _2BYTEPAD (line 61) | typedef uint16_t _2BYTEPAD;
type CV_tkn_t (line 62) | typedef uint32_t CV_tkn_t;
type FLOAT10 (line 70) | typedef long double FLOAT10;
type FLOAT10 (line 72) | typedef struct FLOAT10
type GUID (line 91) | typedef struct _GUID { // size is 16
type GUID (line 100) | typedef GUID SIG70;
type SIG70 (line 101) | typedef SIG70 * PSIG70;
type SIG70 (line 102) | typedef const SIG70 * PCSIG70;
type CV_prmode_e (line 162) | typedef enum CV_prmode_e {
type CV_type_e (line 179) | typedef enum CV_type_e {
type CV_special_e (line 197) | typedef enum CV_special_e {
type CV_special2_e (line 215) | typedef enum CV_special2_e {
type CV_integral_e (line 231) | typedef enum CV_integral_e {
type CV_real_e (line 246) | typedef enum CV_real_e {
type CV_int_e (line 262) | typedef enum CV_int_e {
type TYPE_ENUM_e (line 328) | typedef enum TYPE_ENUM_e {
type LEAF_ENUM_e (line 772) | typedef enum LEAF_ENUM_e {
type CV_ptrtype_e (line 993) | typedef enum CV_ptrtype_e {
type CV_ptrmode_e (line 1022) | typedef enum CV_ptrmode_e {
type CV_pmtype_e (line 1035) | typedef enum CV_pmtype_e {
type CV_methodprop_e (line 1049) | typedef enum CV_methodprop_e {
type CV_VTS_desc_e (line 1064) | typedef enum CV_VTS_desc_e {
type CV_LABEL_TYPE_e (line 1080) | typedef enum CV_LABEL_TYPE_e {
type CV_modifier_t (line 1090) | typedef struct CV_modifier_t {
type CV_HFA_e (line 1102) | typedef enum CV_HFA_e {
type CV_MOCOM_UDT_e (line 1111) | typedef enum CV_MOCOM_UDT_e {
type CV_prop_t (line 1120) | typedef struct CV_prop_t {
type CV_fldattr_t (line 1142) | typedef struct CV_fldattr_t {
type CV_funcattr_t (line 1156) | typedef struct CV_funcattr_t {
type CV_matrixattr_t (line 1166) | typedef struct CV_matrixattr_t {
type TYPTYPE (line 1175) | typedef struct TYPTYPE {
function __INLINE (line 1181) | __INLINE int8_t*NextType ( int8_t* pType) {
type CV_PMEMBER (line 1185) | typedef enum CV_PMEMBER {
type CV_PDMR16_NONVIRT (line 1216) | struct CV_PDMR16_NONVIRT {
type CV_PMDR16_VFCN (line 1227) | struct CV_PMDR16_VFCN {
type CV_PDMR16_VBASE (line 1238) | struct CV_PDMR16_VBASE {
type CV_PDMR32_NVVFCN (line 1252) | struct CV_PDMR32_NVVFCN {
type CV_PDMR32_VBASE (line 1263) | struct CV_PDMR32_VBASE {
type CV_PMFR16_NEARNVSA (line 1277) | struct CV_PMFR16_NEARNVSA {
type CV_PMFR16_NEARNVMA (line 1287) | struct CV_PMFR16_NEARNVMA {
type CV_PMFR16_NEARVBASE (line 1299) | struct CV_PMFR16_NEARVBASE {
type CV_PMFR16_FARNVSA (line 1313) | struct CV_PMFR16_FARNVSA {
type CV_PMFR16_FARNVMA (line 1325) | struct CV_PMFR16_FARNVMA {
type CV_PMFR16_FARVBASE (line 1338) | struct CV_PMFR16_FARVBASE {
type CV_PMFR32_NVSA (line 1354) | struct CV_PMFR32_NVSA {
type CV_PMFR32_NVMA (line 1365) | struct CV_PMFR32_NVMA {
type CV_PMFR32_VBASE (line 1377) | struct CV_PMFR32_VBASE {
type lfEasy (line 1391) | typedef struct lfEasy {
type lfModifier_16t (line 1454) | typedef struct lfModifier_16t {
type lfModifier (line 1460) | typedef struct lfModifier {
type u (line 1472) | typedef struct lfPointer_16t {
type lfPointer_16t (line 1492) | struct lfPointer_16t
type u (line 1509) | typedef struct lfPointer {
type lfPointer (line 1534) | struct lfPointer
type lfArray_16t (line 1556) | typedef struct lfArray_16t {
type lfArray (line 1564) | typedef struct lfArray {
type lfStridedArray (line 1572) | typedef struct lfStridedArray {
type lfVector (line 1587) | typedef struct lfVector {
type lfMatrix (line 1601) | typedef struct lfMatrix {
type lfClass_16t (line 1618) | typedef struct lfClass_16t {
type lfClass_16t (line 1628) | typedef lfClass_16t lfStructure_16t;
type lfClass (line 1631) | typedef struct lfClass {
type lfClass (line 1641) | typedef lfClass lfStructure;
type lfClass (line 1642) | typedef lfClass lfInterface;
type lfUnion_16t (line 1647) | typedef struct lfUnion_16t {
type lfUnion (line 1657) | typedef struct lfUnion {
type lfAlias (line 1669) | typedef struct lfAlias {
type CV_typ_t (line 1678) | typedef CV_typ_t CV_ItemId;
type lfFuncId (line 1680) | typedef struct lfFuncId {
type lfMFuncId (line 1687) | typedef struct lfMFuncId {
type lfStringId (line 1694) | typedef struct lfStringId {
type lfUdtSrcLine (line 1700) | typedef struct lfUdtSrcLine {
type lfUdtModSrcLine (line 1707) | typedef struct lfUdtModSrcLine {
type CV_BuildInfo_e (line 1715) | typedef enum CV_BuildInfo_e {
type lfBuildInfo (line 1726) | typedef struct lfBuildInfo {
type lfManaged (line 1734) | typedef struct lfManaged {
type lfEnum_16t (line 1743) | typedef struct lfEnum_16t {
type lfEnum (line 1752) | typedef struct lfEnum {
type lfProc_16t (line 1766) | typedef struct lfProc_16t {
type lfProc (line 1775) | typedef struct lfProc {
type lfMFunc_16t (line 1789) | typedef struct lfMFunc_16t {
type lfMFunc (line 1801) | typedef struct lfMFunc {
type lfVTShape (line 1819) | typedef struct lfVTShape {
type lfVftable (line 1826) | typedef struct lfVftable {
type lfCobol0_16t (line 1842) | typedef struct lfCobol0_16t {
type lfCobol0 (line 1848) | typedef struct lfCobol0 {
type lfCobol1 (line 1860) | typedef struct lfCobol1 {
type lfBArray_16t (line 1871) | typedef struct lfBArray_16t {
type lfBArray (line 1876) | typedef struct lfBArray {
type lfLabel (line 1884) | typedef struct lfLabel {
type lfDimArray_16t (line 1894) | typedef struct lfDimArray_16t {
type lfDimArray (line 1901) | typedef struct lfDimArray {
type lfVFTPath_16t (line 1913) | typedef struct lfVFTPath_16t {
type lfVFTPath (line 1919) | typedef struct lfVFTPath {
type lfPreComp_16t (line 1929) | typedef struct lfPreComp_16t {
type lfPreComp (line 1937) | typedef struct lfPreComp {
type lfEndPreComp (line 1951) | typedef struct lfEndPreComp {
type lfOEM_16t (line 1963) | typedef struct lfOEM_16t {
type lfOEM (line 1972) | typedef struct lfOEM {
type lfOEM2 (line 1986) | typedef struct lfOEM2 {
type lfTypeServer (line 1996) | typedef struct lfTypeServer {
type lfTypeServer2 (line 2005) | typedef struct lfTypeServer2 {
type lfSkip_16t (line 2020) | typedef struct lfSkip_16t {
type lfSkip (line 2026) | typedef struct lfSkip {
type lfArgList_16t (line 2037) | typedef struct lfArgList_16t {
type lfArgList (line 2043) | typedef struct lfArgList {
type lfDerived_16t (line 2055) | typedef struct lfDerived_16t {
type lfDerived (line 2061) | typedef struct lfDerived {
type lfDefArg_16t (line 2073) | typedef struct lfDefArg_16t {
type lfDefArg (line 2079) | typedef struct lfDefArg {
type lfList (line 2093) | typedef struct lfList {
type lfFieldList_16t (line 2106) | typedef struct lfFieldList_16t {
type lfFieldList (line 2112) | typedef struct lfFieldList {
type mlMethod_16t (line 2125) | typedef struct mlMethod_16t {
type mlMethod (line 2131) | typedef struct mlMethod {
type lfMethodList_16t (line 2139) | typedef struct lfMethodList_16t {
type lfMethodList (line 2144) | typedef struct lfMethodList {
type lfBitfield_16t (line 2156) | typedef struct lfBitfield_16t {
type lfBitfield (line 2164) | typedef struct lfBitfield {
type lfDimCon_16t (line 2178) | typedef struct lfDimCon_16t {
type lfDimCon (line 2186) | typedef struct lfDimCon {
type lfDimVar_16t (line 2200) | typedef struct lfDimVar_16t {
type lfDimVar (line 2210) | typedef struct lfDimVar {
type lfRefSym (line 2229) | typedef struct lfRefSym {
type lfHLSL (line 2240) | typedef struct lfHLSL {
type lfModifierEx (line 2256) | typedef struct lfModifierEx {
type lfChar (line 2277) | typedef struct lfChar {
type lfShort (line 2287) | typedef struct lfShort {
type lfUShort (line 2297) | typedef struct lfUShort {
type lfLong (line 2307) | typedef struct lfLong {
type lfULong (line 2317) | typedef struct lfULong {
type lfQuad (line 2327) | typedef struct lfQuad {
type lfUQuad (line 2337) | typedef struct lfUQuad {
type lfOct (line 2345) | typedef struct lfOct {
type lfUOct (line 2352) | typedef struct lfUOct {
type lfReal16 (line 2362) | typedef struct lfReal16 {
type lfReal32 (line 2372) | typedef struct lfReal32 {
type lfReal48 (line 2382) | typedef struct lfReal48 {
type lfReal64 (line 2392) | typedef struct lfReal64 {
type lfReal80 (line 2402) | typedef struct lfReal80 {
type lfReal128 (line 2412) | typedef struct lfReal128 {
type lfCmplx32 (line 2422) | typedef struct lfCmplx32 {
type flCmplx64 (line 2433) | typedef struct lfCmplx64 {
type lfCmplx80 (line 2444) | typedef struct lfCmplx80 {
type lfCmplx128 (line 2455) | typedef struct lfCmplx128 {
type lfVarString (line 2465) | typedef struct lfVarString {
type lfIndex_16t (line 2478) | typedef struct lfIndex_16t {
type lfIndex (line 2483) | typedef struct lfIndex {
type lfBClass_16t (line 2492) | typedef struct lfBClass_16t {
type lfBClass (line 2499) | typedef struct lfBClass {
type lfBClass (line 2505) | typedef lfBClass lfBInterface;
type lfVBClass_16t (line 2512) | typedef struct lfVBClass_16t {
type lfVBClass (line 2521) | typedef struct lfVBClass {
type lfFriendCls_16t (line 2537) | typedef struct lfFriendCls_16t {
type lfFriendCls (line 2542) | typedef struct lfFriendCls {
type lfFriendFcn_16t (line 2555) | typedef struct lfFriendFcn_16t {
type lfFriendFcn (line 2561) | typedef struct lfFriendFcn {
type lfMember_16t (line 2572) | typedef struct lfMember_16t {
type lfMember (line 2580) | typedef struct lfMember {
type lfSTMember_16t (line 2592) | typedef struct lfSTMember_16t {
type lfSTMember (line 2599) | typedef struct lfSTMember {
type lfVFuncTab_16t (line 2610) | typedef struct lfVFuncTab_16t {
type lfVFuncTab (line 2615) | typedef struct lfVFuncTab {
type lfVFuncOff_16t (line 2625) | typedef struct lfVFuncOff_16t {
type lfVFuncOff (line 2631) | typedef struct lfVFuncOff {
type lfMethod_16t (line 2643) | typedef struct lfMethod_16t {
type lfMethod (line 2650) | typedef struct lfMethod {
type lfOneMethod_16t (line 2662) | typedef struct lfOneMethod_16t {
type lfOneMethod (line 2671) | typedef struct lfOneMethod {
type lfEnumerate (line 2683) | typedef struct lfEnumerate {
type lfNestType_16t (line 2693) | typedef struct lfNestType_16t {
type lfNestType (line 2699) | typedef struct lfNestType {
type lfNestTypeEx (line 2709) | typedef struct lfNestTypeEx {
type lfMemberModify (line 2718) | typedef struct lfMemberModify {
type SYM_PAD (line 2727) | typedef struct lfPad {
type SYM_ENUM_e (line 2735) | typedef enum SYM_ENUM_e {
type CV_CFL_DATA (line 3005) | typedef enum CV_CFL_DATA {
type CV_CFL_CODE_e (line 3017) | typedef enum CV_CFL_CODE_e {
type CV_CFL_FPKG_e (line 3028) | typedef enum CV_CFL_FPKG_e {
type CV_PROCFLAGS (line 3038) | typedef struct CV_PROCFLAGS {
type CV_EXPROCFLAGS (line 3057) | typedef struct CV_EXPROCFLAGS {
type CV_LVARFLAGS (line 3068) | typedef struct CV_LVARFLAGS {
type CV_lvar_attr (line 3089) | typedef struct CV_lvar_attr {
type CV_LVAR_ADDR_RANGE (line 3102) | typedef struct CV_LVAR_ADDR_RANGE { // defines a range of addresses
type CV_LVAR_ADDR_GAP (line 3111) | typedef struct CV_LVAR_ADDR_GAP {
type CV_DPC_SYM_TAG_MAP_ENTRY (line 3119) | typedef struct CV_DPC_SYM_TAG_MAP_ENTRY {
type CV_GENERIC_STYLE_e (line 3128) | typedef enum CV_GENERIC_STYLE_e {
type CV_GENERIC_FLAG (line 3139) | typedef struct CV_GENERIC_FLAG {
type CV_SEPCODEFLAGS (line 3148) | typedef struct CV_SEPCODEFLAGS {
type SYMTYPE (line 3156) | typedef struct SYMTYPE {
function __INLINE (line 3162) | __INLINE SYMTYPE *NextSym (SYMTYPE * pSym) {
type REGSYM_16t (line 3170) | typedef struct REGSYM_16t {
type REGSYM (line 3178) | typedef struct REGSYM {
type ATTRREGSYM (line 3186) | typedef struct ATTRREGSYM {
type MANYREGSYM_16t (line 3195) | typedef struct MANYREGSYM_16t {
type MANYREGSYM (line 3205) | typedef struct MANYREGSYM {
type MANYREGSYM2 (line 3215) | typedef struct MANYREGSYM2 {
type ATTRMANYREGSYM (line 3225) | typedef struct ATTRMANYREGSYM {
type ATTRMANYREGSYM2 (line 3237) | typedef struct ATTRMANYREGSYM2 {
type CONSTSYM_16t (line 3249) | typedef struct CONSTSYM_16t {
type CONSTSYM (line 3257) | typedef struct CONSTSYM {
type UDTSYM_16t (line 3266) | typedef struct UDTSYM_16t {
type UDTSYM (line 3274) | typedef struct UDTSYM {
type MANTYPREF (line 3281) | typedef struct MANTYPREF {
type SEARCHSYM (line 3287) | typedef struct SEARCHSYM {
type CFLAGSYM (line 3295) | typedef struct CFLAGSYM {
type COMPILESYM (line 3313) | typedef struct COMPILESYM {
type COMPILESYM3 (line 3341) | typedef struct COMPILESYM3 {
type ENVBLOCKSYM (line 3372) | typedef struct ENVBLOCKSYM {
type OBJNAMESYM (line 3382) | typedef struct OBJNAMESYM {
type ENDARGSYM (line 3390) | typedef struct ENDARGSYM {
type RETURNSYM (line 3396) | typedef struct RETURNSYM {
type ENTRYTHISSYM (line 3405) | typedef struct ENTRYTHISSYM {
type BPRELSYM16 (line 3415) | typedef struct BPRELSYM16 {
type DATASYM16 (line 3424) | typedef struct DATASYM16 {
type DATASYM16 (line 3432) | typedef DATASYM16 PUBSYM16;
type PROCSYM16 (line 3435) | typedef struct PROCSYM16 {
type THUNKSYM16 (line 3452) | typedef struct THUNKSYM16 {
type LABELSYM16 (line 3466) | typedef struct LABELSYM16 {
type BLOCKSYM16 (line 3476) | typedef struct BLOCKSYM16 {
type WITHSYM16 (line 3488) | typedef struct WITHSYM16 {
type CEXM_MODEL_e (line 3500) | typedef enum CEXM_MODEL_e {
type CV_COBOL_e (line 3519) | typedef enum CV_COBOL_e {
type CEXMSYM16 (line 3526) | typedef struct CEXMSYM16 {
type VPATHSYM16 (line 3545) | typedef struct VPATHSYM16 {
type REGREL16 (line 3555) | typedef struct REGREL16 {
type BPRELSYM32_16t (line 3565) | typedef struct BPRELSYM32_16t {
type BPRELSYM32 (line 3573) | typedef struct BPRELSYM32 {
type FRAMERELSYM (line 3581) | typedef struct FRAMERELSYM {
type FRAMERELSYM (line 3590) | typedef FRAMERELSYM ATTRFRAMERELSYM;
type SLOTSYM32 (line 3593) | typedef struct SLOTSYM32 {
type ATTRSLOTSYM (line 3601) | typedef struct ATTRSLOTSYM {
type ANNOTATIONSYM (line 3610) | typedef struct ANNOTATIONSYM {
type DATASYM32_16t (line 3619) | typedef struct DATASYM32_16t {
type DATASYM32_16t (line 3627) | typedef DATASYM32_16t PUBSYM32_16t;
type DATASYM32 (line 3629) | typedef struct DATASYM32 {
type DATASYMHLSL (line 3638) | typedef struct DATASYMHLSL {
type DATASYMHLSL32 (line 3651) | typedef struct DATASYMHLSL32 {
type DATASYMHLSL32_EX (line 3664) | typedef struct DATASYMHLSL32_EX {
type CV_PUBSYMFLAGS_e (line 3676) | typedef enum CV_PUBSYMFLAGS_e
type CV_PUBSYMFLAGS (line 3685) | typedef union CV_PUBSYMFLAGS {
type PUBSYM32 (line 3696) | typedef struct PUBSYM32 {
type PROCSYM32_16t (line 3706) | typedef struct PROCSYM32_16t {
type PROCSYM32 (line 3722) | typedef struct PROCSYM32 {
type MANPROCSYM (line 3738) | typedef struct MANPROCSYM {
type MANPROCSYMMIPS (line 3755) | typedef struct MANPROCSYMMIPS {
type THUNKSYM32 (line 3776) | typedef struct THUNKSYM32 {
type TRAMP_e (line 3790) | typedef enum TRAMP_e { // Trampoline subtype
type TRAMPOLINE (line 3795) | typedef struct TRAMPOLINESYM { // Trampoline thunk symbol
type LABELSYM32 (line 3806) | typedef struct LABELSYM32 {
type BLOCKSYM32 (line 3816) | typedef struct BLOCKSYM32 {
type WITHSYM32 (line 3828) | typedef struct WITHSYM32 {
type CEXMSYM32 (line 3841) | typedef struct CEXMSYM32 {
type VPATHSYM32_16t (line 3865) | typedef struct VPATHSYM32_16t {
type VPATHSYM32 (line 3874) | typedef struct VPATHSYM32 {
type REGREL32_16t (line 3887) | typedef struct REGREL32_16t {
type REGREL32 (line 3896) | typedef struct REGREL32 {
type ATTRREGREL (line 3905) | typedef struct ATTRREGREL {
type ATTRREGREL (line 3915) | typedef ATTRREGREL ATTRREGRELSYM;
type THREADSYM32_16t (line 3917) | typedef struct THREADSYM32_16t {
type THREADSYM32 (line 3926) | typedef struct THREADSYM32 {
type SLINK32 (line 3935) | typedef struct SLINK32 {
type PROCSYMMIPS_16t (line 3943) | typedef struct PROCSYMMIPS_16t {
type PROCSYMMIPS (line 3964) | typedef struct PROCSYMMIPS {
type PROCSYMIA64 (line 3985) | typedef struct PROCSYMIA64 {
type REFSYM (line 4002) | typedef struct REFSYM {
type REFSYM2 (line 4011) | typedef struct REFSYM2 {
type ALIGNSYM (line 4020) | typedef struct ALIGNSYM {
type OEMSYMBOL (line 4025) | typedef struct OEMSYMBOL {
type PROCSYM (line 4037) | typedef struct PROCSYM {
type THUNKSYM (line 4046) | typedef struct THUNKSYM {
type BLOCKSYM (line 4054) | typedef struct BLOCKSYM {
type WITHSYM (line 4062) | typedef struct WITHSYM {
type FRAMEPROCSYM (line 4069) | typedef struct FRAMEPROCSYM {
function namespace (line 4107) | namespace CodeViewInfo
type UNAMESPACE (line 4142) | typedef struct UNAMESPACE {
type SEPCODESYM (line 4148) | typedef struct SEPCODESYM {
type BUILDINFOSYM (line 4161) | typedef struct BUILDINFOSYM {
type INLINESITESYM (line 4167) | typedef struct INLINESITESYM {
type INLINESITESYM2 (line 4176) | typedef struct INLINESITESYM2 {
type LOCALSYM (line 4190) | typedef struct LOCALSYM {
type FILESTATICSYM (line 4199) | typedef struct FILESTATICSYM {
type DEFRANGESYM (line 4209) | typedef struct DEFRANGESYM { // A live range of sub field of variable
type DEFRANGESYMSUBFIELD (line 4219) | typedef struct DEFRANGESYMSUBFIELD { // A live range of sub field of var...
type CV_RANGEATTR (line 4231) | typedef struct CV_RANGEATTR {
type DEFRANGESYMREGISTER (line 4236) | typedef struct DEFRANGESYMREGISTER { // A live range of en-registed v...
type DEFRANGESYMFRAMEPOINTERREL (line 4245) | typedef struct DEFRANGESYMFRAMEPOINTERREL { // A live range of frame ...
type DEFRANGESYMFRAMEPOINTERREL_FULL_SCOPE (line 4255) | typedef struct DEFRANGESYMFRAMEPOINTERREL_FULL_SCOPE { // A frame variab...
type DEFRANGESYMSUBFIELDREGISTER (line 4265) | typedef struct DEFRANGESYMSUBFIELDREGISTER { // A live range of sub fiel...
type DEFRANGESYMREGISTERREL (line 4279) | typedef struct DEFRANGESYMREGISTERREL { // A live range of variable r...
type DEFRANGESYMHLSL (line 4293) | typedef struct DEFRANGESYMHLSL { // A live range of variable related ...
type LOCALDPCGROUPSHAREDSYM (line 4342) | typedef struct LOCALDPCGROUPSHAREDSYM {
type DPCSYMTAGMAP (line 4354) | typedef struct DPCSYMTAGMAP { // A map for DPC pointer tag values to s...
type CV_armswitchtype (line 4366) | typedef enum CV_armswitchtype {
type FUNCTIONLIST (line 4382) | typedef struct FUNCTIONLIST {
type POGOINFO (line 4392) | typedef struct POGOINFO {
type ARMSWITCHTABLE (line 4402) | typedef struct ARMSWITCHTABLE {
type MODTYPEREF (line 4416) | typedef struct MODTYPEREF {
type SECTIONSYM (line 4432) | typedef struct SECTIONSYM {
type COFFGROUPSYM (line 4445) | typedef struct COFFGROUPSYM {
type EXPORTSYM (line 4456) | typedef struct EXPORTSYM {
type CALLSITEINFO (line 4491) | typedef struct CALLSITEINFO {
type HEAPALLOCSITE (line 4500) | typedef struct HEAPALLOCSITE {
type CV_cookietype_e (line 4511) | typedef enum CV_cookietype_e
type FRAMECOOKIE (line 4522) | typedef struct FRAMECOOKIE {
type CV_DISCARDED_e (line 4531) | typedef enum CV_DISCARDED_e
type DISCARDEDSYM (line 4538) | typedef struct DISCARDEDSYM {
type REFMINIPDB (line 4548) | typedef struct REFMINIPDB {
type PDBMAP (line 4565) | typedef struct PDBMAP {
type DEBUG_S_SUBSECTION_TYPE (line 4576) | enum DEBUG_S_SUBSECTION_TYPE {
type CV_DebugSSubsectionHeader_t (line 4596) | struct CV_DebugSSubsectionHeader_t {
type CV_DebugSLinesHeader_t (line 4601) | struct CV_DebugSLinesHeader_t {
type CV_DebugSLinesFileBlockHeader_t (line 4608) | struct CV_DebugSLinesFileBlockHeader_t {
type CV_Line_t (line 4621) | struct CV_Line_t {
type CV_columnpos_t (line 4628) | typedef uint16_t CV_columnpos_t;
type CV_Column_t (line 4630) | struct CV_Column_t {
type tagFRAMEDATA (line 4635) | struct tagFRAMEDATA {
type FRAMEDATA (line 4650) | typedef struct tagFRAMEDATA FRAMEDATA, * PFRAMEDATA;
type XFIXUP_DATA (line 4652) | typedef struct tagXFIXUP_DATA {
function namespace (line 4666) | namespace CodeViewInfo
type CrossScopeId (line 4705) | struct CrossScopeId
function GetLocalId (line 4731) | uint32_t GetLocalId() {
function GetIdScopeId (line 4735) | uint32_t GetIdScopeId() {
function IsCrossScopeId (line 4739) | static bool IsCrossScopeId(uint32_t i)
function CrossScopeId (line 4744) | static CrossScopeId Decode(uint32_t i)
type else (line 4762) | typedef struct DecoratedItemId
function operator (line 4776) | operator uint32_t() {
function IsFuncId (line 4780) | bool IsFuncId()
function CV_ItemId (line 4785) | CV_ItemId GetItemId()
type PdbIdScope (line 4799) | typedef struct tagPdbIdScope {
type CrossScopeReferences (line 4806) | typedef struct tagCrossScopeReferences {
type LocalIdAndGlobalIdPair (line 4814) | typedef struct tagLocalIdAndGlobalIdPair {
type InlineeSourceLine (line 4825) | typedef struct tagInlineeSourceLine {
type InlineeSourceLineEx (line 4831) | typedef struct tagInlineeSourceLineEx {
type BinaryAnnotationOpcode (line 4852) | enum BinaryAnnotationOpcode
function BinaryAnnotationInstructionOperandCount (line 4876) | inline int32_t BinaryAnnotationInstructionOperandCount(BinaryAnnotationO...
type CompressedAnnotation (line 4896) | typedef uint8_t CompressedAnnotation;
type CompressedAnnotation (line 4897) | typedef CompressedAnnotation* PCompressedAnnotation;
function CVCompressData (line 4899) | inline uint32_t CVCompressData(
function CVUncompressData (line 4939) | inline uint32_t CVUncompressData(
function EncodeSignedInt32 (line 4972) | inline uint32_t EncodeSignedInt32(int32_t input)
function DecodeSignedInt32 (line 4985) | inline int32_t DecodeSignedInt32(uint32_t input)
FILE: pdblib/includes/pdblib/dbi.hpp
type dbi (line 15) | namespace dbi
type pointer (line 26) | struct pointer
method generate_identifier (line 31) | constexpr uint64_t generate_identifier() const noexcept { return ( u...
type record (line 39) | struct record
method length (line 43) | size_t length() const { return _length + sizeof( record ); }
type tpi_header (line 50) | struct tpi_header
type tpi_record (line 75) | struct tpi_record : record
type tpi_stream (line 83) | struct tpi_stream
method tpi_stream (line 99) | tpi_stream( tpi_stream&& ) = default;
method tpi_stream (line 100) | tpi_stream& operator=( tpi_stream&& ) = default;
method tpi_stream (line 104) | tpi_stream( const tpi_stream& ) = delete;
method tpi_stream (line 105) | tpi_stream& operator=( const tpi_stream& ) = delete;
method tpi_stream (line 107) | tpi_stream() {}
method tpi_stream (line 108) | tpi_stream( msf::stream::substream ss )
type dbi_header (line 140) | struct dbi_header
type section_contribution (line 175) | struct section_contribution
method pointer (line 186) | pointer get_address() const { return { section_index, ( uint32_t ) o...
type sc_record_v2 (line 188) | struct sc_record_v2 : section_contribution { uint32_t sect_index_coff; }
type modi_record (line 193) | struct modi_record
type omf_sec_map_desc (line 219) | struct omf_sec_map_desc
type omf_sec_map_record (line 238) | struct omf_sec_map_record
type file_info_record (line 247) | struct file_info_record
type omap_record (line 259) | struct omap_record
method translate (line 263) | uint32_t translate( uint32_t rva ) const { return rva - rva_src + rv...
type debug_header_record (line 268) | struct debug_header_record
type ec_record (line 285) | struct ec_record
type type_server_map_record (line 286) | struct type_server_map_record
type dbi_stream (line 290) | struct dbi_stream
method dbi_stream (line 326) | dbi_stream( dbi_stream&& ) = default;
method dbi_stream (line 327) | dbi_stream& operator=( dbi_stream&& ) = default;
method dbi_stream (line 331) | dbi_stream( const dbi_stream& ) = delete;
method dbi_stream (line 332) | dbi_stream& operator=( const dbi_stream& ) = delete;
method dbi_stream (line 334) | dbi_stream() {}
method dbi_stream (line 335) | dbi_stream( const msf::stream& stream, msf::stream::substream ss )
method translate (line 462) | std::pair<uint32_t, const win::section_header_t*> translate( pointer...
type sym_record (line 524) | struct sym_record : record
method length (line 527) | size_t length() const { return _length + sizeof( record ); }
type sym_stream (line 534) | struct sym_stream
method sym_stream (line 546) | sym_stream( sym_stream&& ) = default;
method sym_stream (line 547) | sym_stream& operator=( sym_stream&& ) = default;
method sym_stream (line 551) | sym_stream( const sym_stream& ) = delete;
method sym_stream (line 552) | sym_stream& operator=( const sym_stream& ) = delete;
method sym_stream (line 554) | sym_stream() {}
method sym_stream (line 555) | sym_stream( msf::stream::substream ss )
function read_numeric (line 585) | inline static size_t read_numeric( T*& p, bool isigned = false )
type std (line 647) | namespace std
type hash<dbi::pointer> (line 650) | struct hash<dbi::pointer>
FILE: pdblib/includes/pdblib/msf.hpp
type msf (line 11) | namespace msf
type header_v7 (line 31) | struct header_v7
type stream (line 51) | struct stream
type substream (line 55) | struct substream
method consume (line 88) | void consume( void* out, size_t byte_count )
method T (line 98) | T read( int32_t off = 0 ) const { T v; read( &v, sizeof( T ), off ...
method T (line 99) | T consume() { T v; consume( &v, sizeof( T ) ); return v; }
method stream (line 128) | stream() : data( nullptr ), size( 0 ) {}
method stream (line 129) | stream( stream&& ) noexcept = default;
method stream (line 130) | stream( const stream& ) = default;
method stream (line 131) | stream& operator=( stream&& ) noexcept = default;
method stream (line 132) | stream& operator=( const stream& ) = default;
method header_v7 (line 140) | const header_v7* get_header() const
method is_valid (line 144) | bool is_valid() const
method to_page_count (line 151) | size_t to_page_count( size_t byte_count ) const
method T (line 163) | T get_stream( size_t n ) const
type iterator (line 184) | struct iterator
method iterator (line 197) | iterator( stream::substream ss = {} ) : ss( std::move( ss ) ) {}
method iterator (line 201) | iterator& operator++() { ss.skip( sizeof( T ) ); return *this; }
method iterator (line 202) | iterator& operator--() { ss.skip( -sizeof( T ) ); return *this; }
method iterator (line 203) | iterator operator++( int ) { auto s = *this; operator++(); return s; }
method iterator (line 204) | iterator operator--( int ) { auto s = *this; operator--(); return s; }
method value_type (line 226) | constexpr value_type operator*() const { return ss.read<value_type>(...
FILE: pdblib/includes/pdblib/pdb.hpp
type pdb (line 16) | namespace pdb
type impl (line 18) | namespace impl
function is_valid_c_name (line 30) | inline static bool is_valid_c_name( std::string_view name )
function is_anonymous_type (line 44) | inline static bool is_anonymous_type( std::string_view name )
type if_equal_t (line 1667) | struct if_equal_t
type leaf_null (line 1674) | struct leaf_null
method parse (line 1676) | static std::shared_ptr<leaf_generic> parse( instance* db, const vo...
function visit (line 1745) | static bool visit( P* leaf, F&& fn, Tx&&... args )
type rtti_interface (line 56) | struct rtti_interface
method rtti_interface (line 62) | constexpr rtti_interface() noexcept {}
method rtti_interface (line 63) | constexpr rtti_interface( rtti_interface&& ) noexcept = default;
method rtti_interface (line 64) | constexpr rtti_interface( const rtti_interface& ) noexcept = default;
method rtti_interface (line 65) | constexpr rtti_interface& operator=( rtti_interface&& ) noexcept = d...
method rtti_interface (line 66) | constexpr rtti_interface& operator=( const rtti_interface& ) noexcep...
type specialization (line 77) | struct specialization : T
method specialization (line 83) | constexpr specialization() noexcept {}
method specialization (line 84) | constexpr specialization( specialization&& ) noexcept = default;
method specialization (line 85) | constexpr specialization( const specialization& ) noexcept = default;
method specialization (line 86) | constexpr specialization& operator=( specialization&& ) noexcept =...
method specialization (line 87) | constexpr specialization& operator=( const specialization& ) noexc...
method dynamic_type_id (line 91) | size_t dynamic_type_id() const override { return static_type_id; }
method specialization_name (line 92) | std::string_view specialization_name() const override
method is (line 103) | bool is() const
method O (line 110) | O* as() { return is<O>() ? ( O* ) this : nullptr; }
method O (line 111) | const O* as() const { return is<O>() ? ( const O* ) this : nullptr; }
type instance (line 116) | struct instance
type public_record (line 1817) | struct public_record
method instance (line 1824) | instance() {}
method instance (line 1825) | instance( const msf::stream& stream ) :
method prereset (line 2026) | void prereset()
type leaf_generic (line 117) | struct leaf_generic
method is_signed (line 285) | virtual bool is_signed() const { return false; }
method size (line 289) | virtual int32_t size() const { return -1; }
method bit_size (line 290) | virtual int32_t bit_size() const { return size() * 8; }
method type_name (line 295) | virtual std::string type_name() const { return user_defined_name; }
method enum_subtypes (line 299) | virtual void enum_subtypes( const leaf_enumerator& fn ) const {}
type generic_ref (line 123) | struct generic_ref
method generic_ref (line 132) | generic_ref() : list( nullptr ), src( nullptr ) {}
method generic_ref (line 133) | generic_ref( std::nullptr_t ) : generic_ref() {}
method generic_ref (line 134) | generic_ref( ref_list_t* list, leaf_generic* src ) : list( list ), s...
method generic_ref (line 138) | generic_ref( generic_ref&& o )
method generic_ref (line 143) | generic_ref& operator=( generic_ref&& o )
method generic_ref (line 150) | generic_ref( const generic_ref& ) = delete;
method generic_ref (line 151) | generic_ref& operator=( const generic_ref& ) = delete;
type string_type (line 168) | enum string_type
type string_ref (line 181) | struct string_ref
method string_ref (line 193) | string_ref( std::nullptr_t v = {} ) : value( v ) {}
method string_ref (line 201) | explicit string_ref( std::string p ) : value( std::move( p ) ) {}
method string_ref (line 205) | explicit string_ref( leaf_generic* _self, const string_ref& o )
method assign (line 227) | void assign( std::string str )
method size (line 262) | auto size() const { return resolve().size(); }
method empty (line 263) | auto empty() const { return resolve().empty(); }
method length (line 264) | auto length() const { return resolve().length(); }
method data (line 265) | auto data() const { return resolve().data(); }
method c_str (line 266) | auto c_str() const { return resolve().c_str(); }
type leaf_generic (line 272) | struct leaf_generic : rtti_interface<leaf_generic>
method is_signed (line 285) | virtual bool is_signed() const { return false; }
method size (line 289) | virtual int32_t size() const { return -1; }
method bit_size (line 290) | virtual int32_t bit_size() const { return size() * 8; }
method type_name (line 295) | virtual std::string type_name() const { return user_defined_name; }
method enum_subtypes (line 299) | virtual void enum_subtypes( const leaf_enumerator& fn ) const {}
type leaf_ref (line 312) | struct leaf_ref
method leaf_ref (line 322) | leaf_ref( std::nullptr_t v = {} ) : value( v ) {}
method leaf_ref (line 330) | leaf_ref( std::shared_ptr<leaf_generic> p ) : value( std::move( p ) ...
method leaf_ref (line 334) | explicit leaf_ref( leaf_generic* _self, const leaf_ref& o )
method leaf_generic (line 357) | leaf_generic* resolve() { return ( leaf_generic* ) ( ( const leaf_re...
method leaf_generic (line 358) | leaf_generic* operator->() { return resolve(); }
method leaf_generic (line 359) | const leaf_generic* operator->() const { return resolve(); }
method O (line 365) | O* resolve_as()
method O (line 373) | const O* resolve_as() const
type leaf_primitive (line 390) | struct leaf_primitive final : leaf_generic::specialization<LF_ID_MAX>
type primitive_type (line 394) | enum primitive_type
method leaf_primitive (line 415) | leaf_primitive( uint16_t pr_id = 0 ) : id( pr_id )
method is_signed (line 586) | bool is_signed() const override { return CV_TYP_IS_SIGNED( id ) || C...
method size (line 587) | int32_t size() const override { return value_size; }
method type_name (line 588) | std::string type_name() const override { return std::string{ cname }; }
method is_bitfield (line 592) | bool is_bitfield() const override { return false; }
method is_intrinsic (line 593) | bool is_intrinsic() const override { return true; }
method is_anonymous (line 594) | bool is_anonymous() const override { return false; }
method is_defn_identical (line 595) | bool is_defn_identical( const leaf_generic* g ) const override
method is_decl_identical (line 602) | bool is_decl_identical( const leaf_generic* g ) const override
type leaf_bitfield (line 628) | struct leaf_bitfield final : leaf_generic::specialization<LF_BITFIELD>
method add_modifiers (line 638) | std::string add_modifiers( std::string_view type_name ) const
method is_signed (line 645) | bool is_signed() const override { return underlying_type->is_signed(...
method size (line 646) | int32_t size() const override { return underlying_type->size(); }
method bit_size (line 647) | int32_t bit_size() const override { return sel_bit_len; }
method type_name (line 648) | std::string type_name() const override
method enum_subtypes (line 652) | void enum_subtypes( const leaf_enumerator& fn ) const override
method is_bitfield (line 663) | bool is_bitfield() const override { return true; }
method is_intrinsic (line 664) | bool is_intrinsic() const override { return true; }
method is_anonymous (line 665) | bool is_anonymous() const override { return false; }
method is_defn_identical (line 666) | bool is_defn_identical( const leaf_generic* g ) const override
method is_decl_identical (line 674) | bool is_decl_identical( const leaf_generic* g ) const override
method parse (line 684) | static std::shared_ptr<leaf_generic> parse( instance* db, const lfBi...
type leaf_arglist (line 696) | struct leaf_arglist final : leaf_generic::specialization<LF_ARGLIST>
method size (line 704) | int32_t size() const override { return std::accumulate( types.begin(...
method type_name (line 705) | std::string type_name() const override
method enum_subtypes (line 743) | void enum_subtypes( const leaf_enumerator& fn ) const override
method is_bitfield (line 757) | bool is_bitfield() const override { return false; }
method is_intrinsic (line 758) | bool is_intrinsic() const override { return true; }
method is_anonymous (line 759) | bool is_anonymous() const override { return false; }
method is_defn_identical (line 760) | bool is_defn_identical( const leaf_generic* g ) const override
method is_decl_identical (line 774) | bool is_decl_identical( const leaf_generic* g ) const override
method parse (line 791) | static std::shared_ptr<leaf_generic> parse( instance* db, const lfAr...
type leaf_fieldlist (line 803) | struct leaf_fieldlist final : leaf_generic::specialization<LF_FIELDLIST>
type entry_enumerate (line 805) | struct entry_enumerate
type entry_member (line 811) | struct entry_member
method bit_offset (line 818) | size_t bit_offset() const
method type_name (line 837) | std::string type_name() const override { return "/* field list */"; }
method enum_subtypes (line 838) | void enum_subtypes( const leaf_enumerator& fn ) const override
method is_bitfield (line 852) | bool is_bitfield() const override { return false; }
method is_intrinsic (line 853) | bool is_intrinsic() const override { return true; }
method is_anonymous (line 854) | bool is_anonymous() const override { return false; }
method is_defn_identical (line 855) | bool is_defn_identical( const leaf_generic* g ) const override
method is_decl_identical (line 886) | bool is_decl_identical( const leaf_generic* g ) const override
method parse (line 920) | static std::shared_ptr<leaf_generic> parse( instance* db, const lfFi...
type leaf_modifier (line 1052) | struct leaf_modifier final : leaf_generic::specialization<LF_MODIFIER>
method add_modifiers (line 1062) | std::string add_modifiers( std::string_view type_name ) const
method is_signed (line 1074) | bool is_signed() const override { return underlying_type->is_signed(...
method size (line 1075) | int32_t size() const override { return underlying_type->size(); }
method type_name (line 1076) | std::string type_name() const override { return add_modifiers( under...
method enum_subtypes (line 1077) | void enum_subtypes( const leaf_enumerator& fn ) const override
method is_bitfield (line 1088) | bool is_bitfield() const override { return underlying_type->is_bitfi...
method is_intrinsic (line 1089) | bool is_intrinsic() const override { return underlying_type->is_intr...
method is_anonymous (line 1090) | bool is_anonymous() const override { return underlying_type->is_anon...
method is_defn_identical (line 1091) | bool is_defn_identical( const leaf_generic* g ) const override
method is_decl_identical (line 1103) | bool is_decl_identical( const leaf_generic* g ) const override
method parse (line 1113) | static std::shared_ptr<leaf_generic> parse( instance* db, const lfMo...
type leaf_pointer (line 1124) | struct leaf_pointer final : leaf_generic::specialization<LF_POINTER>
method add_modifiers (line 1134) | std::string add_modifiers( std::string_view type_name ) const
method size (line 1184) | int32_t size() const override { return attributes.size; }
method type_name (line 1185) | std::string type_name() const override { return add_modifiers( under...
method enum_subtypes (line 1186) | void enum_subtypes( const leaf_enumerator& fn ) const override
method is_bitfield (line 1197) | bool is_bitfield() const override { return false; }
method is_intrinsic (line 1198) | bool is_intrinsic() const override { return underlying_type->is_intr...
method is_anonymous (line 1199) | bool is_anonymous() const override { return underlying_type->is_anon...
method is_defn_identical (line 1200) | bool is_defn_identical( const leaf_generic* g ) const override
method is_decl_identical (line 1214) | bool is_decl_identical( const leaf_generic* g ) const override
method parse (line 1224) | static std::shared_ptr<leaf_generic> parse( instance* db, const lfPo...
type leaf_class (line 1235) | struct leaf_class final : leaf_generic::specialization<LF_STRUCTURE>
method keyword (line 1256) | std::string_view keyword() const
method enum_variables (line 1272) | void enum_variables( T&& f, size_t offset = 0 ) const
method size (line 1280) | int32_t size() const override { return xstd::narrow_cast< int32_t >(...
method enum_subtypes (line 1281) | void enum_subtypes( const leaf_enumerator& fn ) const override
method type_name (line 1293) | std::string type_name() const override
method is_bitfield (line 1303) | bool is_bitfield() const override { return false; }
method is_intrinsic (line 1304) | bool is_intrinsic() const override { return attributes.intrinsic; }
method is_anonymous (line 1305) | bool is_anonymous() const override { return user_defined_name.empty(...
method is_defn_identical (line 1306) | bool is_defn_identical( const leaf_generic* g ) const override
method is_decl_identical (line 1318) | bool is_decl_identical( const leaf_generic* g ) const override
method parse (line 1331) | static std::shared_ptr<leaf_generic> parse( instance* db, const lfEa...
type leaf_enum (line 1376) | struct leaf_enum final : leaf_generic::specialization<LF_ENUM>
method is_signed (line 1393) | bool is_signed() const override { return underlying_type->is_signed(...
method size (line 1394) | int32_t size() const override { return underlying_type->size(); }
method type_name (line 1395) | std::string type_name() const override
method enum_subtypes (line 1402) | void enum_subtypes( const leaf_enumerator& fn ) const override
method is_bitfield (line 1418) | bool is_bitfield() const override { return underlying_type->is_bitfi...
method is_intrinsic (line 1419) | bool is_intrinsic() const override { return attributes.intrinsic; }
method is_anonymous (line 1420) | bool is_anonymous() const override { return user_defined_name.empty(...
method is_defn_identical (line 1421) | bool is_defn_identical( const leaf_generic* g ) const override
method is_decl_identical (line 1432) | bool is_decl_identical( const leaf_generic* g ) const override
method parse (line 1445) | static std::shared_ptr<leaf_generic> parse( instance* db, const lfEn...
type leaf_array (line 1462) | struct leaf_array final : leaf_generic::specialization<LF_ARRAY>
method add_modifiers (line 1475) | std::string add_modifiers( std::string_view type_name ) const
method size (line 1485) | int32_t size() const override { return xstd::narrow_cast< int32_t >(...
method type_name (line 1486) | std::string type_name() const override
method enum_subtypes (line 1491) | void enum_subtypes( const leaf_enumerator& fn ) const override
method is_bitfield (line 1500) | bool is_bitfield() const override { return false; }
method is_intrinsic (line 1501) | bool is_intrinsic() const override { return underlying_type->is_intr...
method is_anonymous (line 1502) | bool is_anonymous() const override { return underlying_type->is_anon...
method is_defn_identical (line 1503) | bool is_defn_identical( const leaf_generic* g ) const override
method is_decl_identical (line 1513) | bool is_decl_identical( const leaf_generic* g ) const override
method parse (line 1525) | static std::shared_ptr<leaf_generic> parse( instance* db, const lfAr...
type leaf_procedure (line 1538) | struct leaf_procedure final : leaf_generic::specialization<LF_PROCEDURE>
method make_typedef (line 1555) | std::string make_typedef( std::string_view name, bool seal = false )...
method type_name (line 1584) | std::string type_name() const override
method enum_subtypes (line 1588) | void enum_subtypes( const leaf_enumerator& fn ) const override
method is_bitfield (line 1604) | bool is_bitfield() const override { return false; }
method is_intrinsic (line 1605) | bool is_intrinsic() const override { return false; }
method is_anonymous (line 1606) | bool is_anonymous() const override { return false; }
method is_defn_identical (line 1607) | bool is_defn_identical( const leaf_generic* g ) const override
method is_decl_identical (line 1618) | bool is_decl_identical( const leaf_generic* g ) const override
method parse (line 1632) | static std::shared_ptr<leaf_generic> parse( instance* db, const lfPr...
type impl (line 1664) | namespace impl
function is_valid_c_name (line 30) | inline static bool is_valid_c_name( std::string_view name )
function is_anonymous_type (line 44) | inline static bool is_anonymous_type( std::string_view name )
type if_equal_t (line 1667) | struct if_equal_t
type leaf_null (line 1674) | struct leaf_null
method parse (line 1676) | static std::shared_ptr<leaf_generic> parse( instance* db, const vo...
function visit (line 1745) | static bool visit( P* leaf, F&& fn, Tx&&... args )
function parse (line 1721) | std::shared_ptr<leaf_generic> parse( instance* db, const dbi::tpi_reco...
type impl (line 1742) | namespace impl
function is_valid_c_name (line 30) | inline static bool is_valid_c_name( std::string_view name )
function is_anonymous_type (line 44) | inline static bool is_anonymous_type( std::string_view name )
type if_equal_t (line 1667) | struct if_equal_t
type leaf_null (line 1674) | struct leaf_null
method parse (line 1676) | static std::shared_ptr<leaf_generic> parse( instance* db, const vo...
function visit (line 1745) | static bool visit( P* leaf, F&& fn, Tx&&... args )
function visit (line 1775) | static bool visit( std::shared_ptr<leaf_generic>& leaf, F&& fn, Tx&&.....
function visit (line 1780) | static bool visit( const std::shared_ptr<leaf_generic>& leaf, F&& fn, ...
function visit (line 1785) | static bool visit( leaf_generic* leaf, F&& fn, Tx&&... args )
function visit (line 1790) | static bool visit( const leaf_generic* leaf, F&& fn, Tx&&... args )
type instance (line 1797) | struct instance
type public_record (line 1817) | struct public_record
method instance (line 1824) | instance() {}
method instance (line 1825) | instance( const msf::stream& stream ) :
method prereset (line 2026) | void prereset()
function leaf_generic (line 2036) | inline const leaf_generic* leaf_ref::resolve() const
method is_signed (line 285) | virtual bool is_signed() const { return false; }
method size (line 289) | virtual int32_t size() const { return -1; }
method bit_size (line 290) | virtual int32_t bit_size() const { return size() * 8; }
method type_name (line 295) | virtual std::string type_name() const { return user_defined_name; }
method enum_subtypes (line 299) | virtual void enum_subtypes( const leaf_enumerator& fn ) const {}
FILE: resources/sdk/acpi/api.hpp
type acpi (line 5) | namespace acpi
FILE: resources/sdk/acpi/cached_table_t.hpp
type acpi (line 6) | namespace acpi
type cached_table_t (line 11) | struct cached_table_t
type acpi::cached_table_t (line 24) | struct acpi::cached_table_t
FILE: resources/sdk/acpi/debugging_device_in_use_t.hpp
type acpi (line 5) | namespace acpi
type debugging_device_in_use_t (line 10) | struct debugging_device_in_use_t
type acpi::debugging_device_in_use_t (line 22) | struct acpi::debugging_device_in_use_t
FILE: resources/sdk/acpi/device_information_output_buffer_t.hpp
type acpi (line 5) | namespace acpi
type acpi::device_information_output_buffer_t (line 35) | struct acpi::device_information_output_buffer_t
FILE: resources/sdk/acpi/enum_child_t.hpp
type acpi (line 5) | namespace acpi
type enum_child_t (line 10) | struct enum_child_t
type acpi::enum_child_t (line 23) | struct acpi::enum_child_t
FILE: resources/sdk/acpi/enum_children_input_buffer_t.hpp
type acpi (line 5) | namespace acpi
type enum_children_input_buffer_t (line 10) | struct enum_children_input_buffer_t
type acpi::enum_children_input_buffer_t (line 24) | struct acpi::enum_children_input_buffer_t
FILE: resources/sdk/acpi/enum_children_output_buffer_t.hpp
type acpi (line 6) | namespace acpi
type enum_children_output_buffer_t (line 11) | struct enum_children_output_buffer_t
type acpi::enum_child_t (line 17) | struct acpi::enum_child_t
type acpi::enum_children_output_buffer_t (line 24) | struct acpi::enum_children_output_buffer_t
FILE: resources/sdk/acpi/eval_input_buffer_complex_v1_ex_t.hpp
type acpi (line 6) | namespace acpi
type eval_input_buffer_complex_v1_ex_t (line 11) | struct eval_input_buffer_complex_v1_ex_t
type acpi::method_argument_v1_t (line 19) | struct acpi::method_argument_v1_t
type acpi::eval_input_buffer_complex_v1_ex_t (line 26) | struct acpi::eval_input_buffer_complex_v1_ex_t
FILE: resources/sdk/acpi/eval_input_buffer_complex_v1_t.hpp
type acpi (line 6) | namespace acpi
type eval_input_buffer_complex_v1_t (line 11) | struct eval_input_buffer_complex_v1_t
type acpi::method_argument_v1_t (line 20) | struct acpi::method_argument_v1_t
type acpi::eval_input_buffer_complex_v1_t (line 27) | struct acpi::eval_input_buffer_complex_v1_t
FILE: resources/sdk/acpi/eval_input_buffer_complex_v2_ex_t.hpp
type acpi (line 6) | namespace acpi
type eval_input_buffer_complex_v2_ex_t (line 11) | struct eval_input_buffer_complex_v2_ex_t
type acpi::method_argument_v2_t (line 19) | struct acpi::method_argument_v2_t
type acpi::eval_input_buffer_complex_v2_ex_t (line 26) | struct acpi::eval_input_buffer_complex_v2_ex_t
FILE: resources/sdk/acpi/eval_input_buffer_complex_v2_t.hpp
type acpi (line 6) | namespace acpi
type eval_input_buffer_complex_v2_t (line 11) | struct eval_input_buffer_complex_v2_t
type acpi::method_argument_v2_t (line 20) | struct acpi::method_argument_v2_t
type acpi::eval_input_buffer_complex_v2_t (line 27) | struct acpi::eval_input_buffer_complex_v2_t
FILE: resources/sdk/acpi/eval_input_buffer_simple_integer_v1_ex_t.hpp
type acpi (line 5) | namespace acpi
type acpi::eval_input_buffer_simple_integer_v1_ex_t (line 23) | struct acpi::eval_input_buffer_simple_integer_v1_ex_t
FILE: resources/sdk/acpi/eval_input_buffer_simple_integer_v1_t.hpp
type acpi (line 5) | namespace acpi
type acpi::eval_input_buffer_simple_integer_v1_t (line 24) | struct acpi::eval_input_buffer_simple_integer_v1_t
FILE: resources/sdk/acpi/eval_input_buffer_simple_integer_v2_ex_t.hpp
type acpi (line 5) | namespace acpi
type acpi::eval_input_buffer_simple_integer_v2_ex_t (line 23) | struct acpi::eval_input_buffer_simple_integer_v2_ex_t
FILE: resources/sdk/acpi/eval_input_buffer_simple_integer_v2_t.hpp
type acpi (line 5) | namespace acpi
type acpi::eval_input_buffer_simple_integer_v2_t (line 24) | struct acpi::eval_input_buffer_simple_integer_v2_t
FILE: resources/sdk/acpi/eval_input_buffer_simple_string_v1_ex_t.hpp
type acpi (line 5) | namespace acpi
type eval_input_buffer_simple_string_v1_ex_t (line 10) | struct eval_input_buffer_simple_string_v1_ex_t
type acpi::eval_input_buffer_simple_string_v1_ex_t (line 24) | struct acpi::eval_input_buffer_simple_string_v1_ex_t
FILE: resources/sdk/acpi/eval_input_buffer_simple_string_v1_t.hpp
type acpi (line 5) | namespace acpi
type eval_input_buffer_simple_string_v1_t (line 10) | struct eval_input_buffer_simple_string_v1_t
type acpi::eval_input_buffer_simple_string_v1_t (line 25) | struct acpi::eval_input_buffer_simple_string_v1_t
FILE: resources/sdk/acpi/eval_input_buffer_simple_string_v2_ex_t.hpp
type acpi (line 5) | namespace acpi
type eval_input_buffer_simple_string_v2_ex_t (line 10) | struct eval_input_buffer_simple_string_v2_ex_t
type acpi::eval_input_buffer_simple_string_v2_ex_t (line 24) | struct acpi::eval_input_buffer_simple_string_v2_ex_t
FILE: resources/sdk/acpi/eval_input_buffer_simple_string_v2_t.hpp
type acpi (line 5) | namespace acpi
type eval_input_buffer_simple_string_v2_t (line 10) | struct eval_input_buffer_simple_string_v2_t
type acpi::eval_input_buffer_simple_string_v2_t (line 25) | struct acpi::eval_input_buffer_simple_string_v2_t
FILE: resources/sdk/acpi/eval_input_buffer_v1_ex_t.hpp
type acpi (line 5) | namespace acpi
type eval_input_buffer_v1_ex_t (line 10) | struct eval_input_buffer_v1_ex_t
type acpi::eval_input_buffer_v1_ex_t (line 22) | struct acpi::eval_input_buffer_v1_ex_t
FILE: resources/sdk/acpi/eval_input_buffer_v1_t.hpp
type acpi (line 5) | namespace acpi
type acpi::eval_input_buffer_v1_t (line 23) | struct acpi::eval_input_buffer_v1_t
FILE: resources/sdk/acpi/eval_input_buffer_v2_ex_t.hpp
type acpi (line 5) | namespace acpi
type eval_input_buffer_v2_ex_t (line 10) | struct eval_input_buffer_v2_ex_t
type acpi::eval_input_buffer_v2_ex_t (line 22) | struct acpi::eval_input_buffer_v2_ex_t
FILE: resources/sdk/acpi/eval_input_buffer_v2_t.hpp
type acpi (line 5) | namespace acpi
type acpi::eval_input_buffer_v2_t (line 23) | struct acpi::eval_input_buffer_v2_t
FILE: resources/sdk/acpi/eval_output_buffer_v1_t.hpp
type acpi (line 6) | namespace acpi
type eval_output_buffer_v1_t (line 11) | struct eval_output_buffer_v1_t
type acpi::method_argument_v1_t (line 18) | struct acpi::method_argument_v1_t
type acpi::eval_output_buffer_v1_t (line 25) | struct acpi::eval_output_buffer_v1_t
FILE: resources/sdk/acpi/eval_output_buffer_v2_t.hpp
type acpi (line 6) | namespace acpi
type eval_output_buffer_v2_t (line 11) | struct eval_output_buffer_v2_t
type acpi::method_argument_v2_t (line 18) | struct acpi::method_argument_v2_t
type acpi::eval_output_buffer_v2_t (line 25) | struct acpi::eval_output_buffer_v2_t
FILE: resources/sdk/acpi/get_device_specific_data_t.hpp
type acpi (line 6) | namespace acpi
type get_device_specific_data_t (line 11) | struct get_device_specific_data_t
type acpi::get_device_specific_data_t (line 25) | struct acpi::get_device_specific_data_t
FILE: resources/sdk/acpi/interface_standard2_t.hpp
type acpi (line 6) | namespace acpi
type interface_standard2_t (line 11) | struct interface_standard2_t
type nt::kinterrupt_mode_t (line 13) | enum nt::kinterrupt_mode_t
type acpi::interface_standard2_t (line 36) | struct acpi::interface_standard2_t
FILE: resources/sdk/acpi/interface_standard_t.hpp
type nt (line 5) | namespace nt { struct device_object_t; }
type device_object_t (line 5) | struct device_object_t
type acpi (line 8) | namespace acpi
type nt::device_object_t (line 15) | struct nt::device_object_t
type nt::kinterrupt_mode_t (line 15) | enum nt::kinterrupt_mode_t
type nt::device_object_t (line 16) | struct nt::device_object_t
type nt::device_object_t (line 17) | struct nt::device_object_t
type nt::device_object_t (line 18) | struct nt::device_object_t
type nt::device_object_t (line 19) | struct nt::device_object_t
type nt::device_object_t (line 20) | struct nt::device_object_t
type acpi::interface_standard_t (line 42) | struct acpi::interface_standard_t
FILE: resources/sdk/acpi/manipulate_global_lock_buffer_t.hpp
type acpi (line 5) | namespace acpi
type manipulate_global_lock_buffer_t (line 10) | struct manipulate_global_lock_buffer_t
type acpi::manipulate_global_lock_buffer_t (line 22) | struct acpi::manipulate_global_lock_buffer_t
FILE: resources/sdk/acpi/method_argument_v1_t.hpp
type acpi (line 5) | namespace acpi
type method_argument_v1_t (line 10) | struct method_argument_v1_t
type acpi::method_argument_v1_t (line 24) | struct acpi::method_argument_v1_t
FILE: resources/sdk/acpi/method_argument_v2_t.hpp
type acpi (line 5) | namespace acpi
type method_argument_v2_t (line 10) | struct method_argument_v2_t
type acpi::method_argument_v2_t (line 24) | struct acpi::method_argument_v2_t
FILE: resources/sdk/ae/api.hpp
type ae (line 5) | namespace ae
FILE: resources/sdk/afd/api.hpp
type afd (line 10) | namespace afd
type nt::event_descriptor_t (line 1966) | struct nt::event_descriptor_t
type nt::event_descriptor_t (line 1976) | struct nt::event_descriptor_t
type nt::in6_addr_t (line 10446) | struct nt::in6_addr_t
type nt::in6_addr_t (line 10456) | struct nt::in6_addr_t
type nt::in6_addr_t (line 10466) | struct nt::in6_addr_t
type ndis::sockaddr_in6_t (line 10476) | struct ndis::sockaddr_in6_t
type ndis::sockaddr_in6_t (line 10486) | struct ndis::sockaddr_in6_t
type nt::in6_addr_t (line 10486) | struct nt::in6_addr_t
type ndis::scope_id_t (line 10486) | struct ndis::scope_id_t
type ndis::scope_level_t (line 10516) | enum ndis::scope_level_t
type ndis::scope_level_t (line 10526) | enum ndis::scope_level_t
FILE: resources/sdk/ahc/api.hpp
type ahc (line 5) | namespace ahc
FILE: resources/sdk/ahc/info_class_t.hpp
type ahc (line 4) | namespace ahc
type info_class_t (line 9) | enum class info_class_t : int32_t
FILE: resources/sdk/ahc/main_statistics_t.hpp
type ahc (line 5) | namespace ahc
FILE: resources/sdk/ahc/service_class_t.hpp
type ahc (line 4) | namespace ahc
type service_class_t (line 9) | enum class service_class_t : int32_t
FILE: resources/sdk/ahc/service_clear_t.hpp
type ahc (line 6) | namespace ahc
type service_clear_t (line 11) | struct service_clear_t
type ahc::service_clear_t (line 22) | struct ahc::service_clear_t
FILE: resources/sdk/ahc/service_data_t.hpp
type ahc (line 13) | namespace ahc
type service_data_t (line 18) | struct service_data_t
FILE: resources/sdk/ahc/service_datacache_t.hpp
type ahc (line 5) | namespace ahc
type service_datacache_t (line 10) | struct service_datacache_t
type ahc::service_datacache_t (line 29) | struct ahc::service_datacache_t
FILE: resources/sdk/ahc/service_dataquery_t.hpp
type ahc (line 6) | namespace ahc
type service_dataquery_t (line 11) | struct service_dataquery_t
type ahc::service_dataquery_t (line 24) | struct ahc::service_dataquery_t
FILE: resources/sdk/ahc/service_hwid_query_t.hpp
type ahc (line 5) | namespace ahc
type service_hwid_query_t (line 10) | struct service_hwid_query_t
type ahc::service_hwid_query_t (line 22) | struct ahc::service_hwid_query_t
FILE: resources/sdk/ahc/service_init_process_data_t.hpp
type ahc (line 5) | namespace ahc
type ahc::service_init_process_data_t (line 23) | struct ahc::service_init_process_data_t
FILE: resources/sdk/ahc/service_lookup_cdb_t.hpp
type ahc (line 5) | namespace ahc
type ahc::service_lookup_cdb_t (line 21) | struct ahc::service_lookup_cdb_t
FILE: resources/sdk/ahc/service_lookup_t.hpp
type ahc (line 6) | namespace ahc
type service_lookup_t (line 11) | struct service_lookup_t
FILE: resources/sdk/ahc/service_remove_t.hpp
type ahc (line 6) | namespace ahc
type service_remove_t (line 11) | struct service_remove_t
type ahc::service_remove_t (line 25) | struct ahc::service_remove_t
FILE: resources/sdk/ahc/service_update_t.hpp
type ahc (line 6) | namespace ahc
type ahc::service_update_t (line 27) | struct ahc::service_update_t
FILE: resources/sdk/ahc/statistics_t.hpp
type ahc (line 7) | namespace ahc
type statistics_t (line 12) | struct statistics_t
FILE: resources/sdk/ahc/store_statistics_t.hpp
type ahc (line 5) | namespace ahc
type ahc::store_statistics_t (line 25) | struct ahc::store_statistics_t
FILE: resources/sdk/ahci/api.hpp
type ahci (line 5) | namespace ahci
FILE: resources/sdk/alpc/api.hpp
type alpc (line 8) | namespace alpc
type alpc::message_attributes_t (line 183) | struct alpc::message_attributes_t
type alpc::message_attributes_t (line 243) | struct alpc::message_attributes_t
type nt::port_message_t (line 553) | struct nt::port_message_t
type alpc::message_attributes_t (line 573) | struct alpc::message_attributes_t
type nt::port_message_t (line 573) | struct nt::port_message_t
type nt::port_message_t (line 583) | struct nt::port_message_t
type alpc::message_attributes_t (line 583) | struct alpc::message_attributes_t
type alpc::completion_list_header_t (line 613) | struct alpc::completion_list_header_t
FILE: resources/sdk/alpc/basic_information_t.hpp
type alpc (line 5) | namespace alpc
type basic_information_t (line 10) | struct basic_information_t
type alpc::basic_information_t (line 23) | struct alpc::basic_information_t
FILE: resources/sdk/alpc/communication_info_t.hpp
type nt (line 5) | namespace nt { struct kalpc_message_t; }
type kalpc_message_t (line 5) | struct kalpc_message_t
type alpc (line 8) | namespace alpc
type port_t (line 10) | struct port_t
type communication_info_t (line 15) | struct communication_info_t
FILE: resources/sdk/alpc/completion_list_header_t.hpp
type alpc (line 7) | namespace alpc
type alpc::completion_list_state_t (line 14) | struct alpc::completion_list_state_t
type alpc::completion_list_state_t (line 14) | struct alpc::completion_list_state_t
FILE: resources/sdk/alpc/completion_list_state_t.hpp
type alpc (line 5) | namespace alpc
type alpc::completion_list_state_t (line 24) | struct alpc::completion_list_state_t
FILE: resources/sdk/alpc/completion_list_t.hpp
type nt (line 5) | namespace nt { struct eprocess_t; }
type eprocess_t (line 5) | struct eprocess_t
type mdl_t (line 6) | struct mdl_t
type nt (line 6) | namespace nt { struct mdl_t; }
type eprocess_t (line 5) | struct eprocess_t
type mdl_t (line 6) | struct mdl_t
type alpc (line 9) | namespace alpc
type completion_list_header_t (line 11) | struct completion_list_header_t
type alpc::completion_list_t (line 47) | struct alpc::completion_list_t
FILE: resources/sdk/alpc/completion_packet_lookaside_entry_t.hpp
type io (line 5) | namespace io { struct mini_completion_packet_user_t; }
type mini_completion_packet_user_t (line 5) | struct mini_completion_packet_user_t
type alpc (line 8) | namespace alpc
type completion_packet_lookaside_t (line 10) | struct completion_packet_lookaside_t
type completion_packet_lookaside_entry_t (line 15) | struct completion_packet_lookaside_entry_t
type alpc::completion_packet_lookaside_entry_t (line 28) | struct alpc::completion_packet_lookaside_entry_t
FILE: resources/sdk/alpc/completion_packet_lookaside_t.hpp
type nt (line 6) | namespace nt { struct kqueue_t; }
type kqueue_t (line 6) | struct kqueue_t
type alpc (line 9) | namespace alpc
type alpc::completion_packet_lookaside_entry_t (line 16) | struct alpc::completion_packet_lookaside_entry_t
type nt::kqueue_t (line 27) | struct nt::kqueue_t
type alpc::completion_packet_lookaside_t (line 36) | struct alpc::completion_packet_lookaside_t
FILE: resources/sdk/alpc/context_attr_t.hpp
type alpc (line 5) | namespace alpc
type alpc::context_attr_t (line 25) | struct alpc::context_attr_t
FILE: resources/sdk/alpc/data_view_attr_t.hpp
type alpc (line 5) | namespace alpc
type alpc::data_view_attr_t (line 24) | struct alpc::data_view_attr_t
FILE: resources/sdk/alpc/direct_attr_t.hpp
type alpc (line 5) | namespace alpc
type alpc::direct_attr_t (line 21) | struct alpc::direct_attr_t
FILE: resources/sdk/alpc/dispatch_context_t.hpp
type nt (line 5) | namespace nt { struct ethread_t; }
type ethread_t (line 5) | struct ethread_t
type kalpc_message_t (line 6) | struct kalpc_message_t
type nt (line 6) | namespace nt { struct kalpc_message_t; }
type ethread_t (line 5) | struct ethread_t
type kalpc_message_t (line 6) | struct kalpc_message_t
type alpc (line 9) | namespace alpc
type port_t (line 11) | struct port_t
type communication_info_t (line 12) | struct communication_info_t
type alpc::dispatch_context_t (line 39) | struct alpc::dispatch_context_t
FILE: resources/sdk/alpc/handle_attr32_t.hpp
type alpc (line 5) | namespace alpc
type alpc::handle_attr32_t (line 29) | struct alpc::handle_attr32_t
FILE: resources/sdk/alpc/handle_attr_t.hpp
type alpc (line 5) | namespace alpc
type handle_attr32_t (line 7) | struct handle_attr32_t
type alpc::handle_attr_t (line 33) | struct alpc::handle_attr_t
FILE: resources/sdk/alpc/handle_entry_t.hpp
type alpc (line 5) | namespace alpc
type alpc::handle_entry_t (line 21) | struct alpc::handle_entry_t
FILE: resources/sdk/alpc/handle_table_t.hpp
type alpc (line 6) | namespace alpc
type handle_entry_t (line 8) | struct handle_entry_t
type handle_table_t (line 13) | struct handle_table_t
FILE: resources/sdk/alpc/message_attributes_t.hpp
type alpc (line 5) | namespace alpc
type alpc::message_attributes_t (line 22) | struct alpc::message_attributes_t
FILE: resources/sdk/alpc/message_handle_information_t.hpp
type alpc (line 5) | namespace alpc
type alpc::message_handle_information_t (line 25) | struct alpc::message_handle_information_t
FILE: resources/sdk/alpc/message_information_class_t.hpp
type alpc (line 4) | namespace alpc
type message_information_class_t (line 9) | enum class message_information_class_t : int32_t
FILE: resources/sdk/alpc/port_associate_completion_port_t.hpp
type alpc (line 5) | namespace alpc
type port_associate_completion_port_t (line 10) | struct port_associate_completion_port_t
type alpc::port_associate_completion_port_t (line 22) | struct alpc::port_associate_completion_port_t
FILE: resources/sdk/alpc/port_attributes_t.hpp
type alpc (line 6) | namespace alpc
type alpc::port_attributes_t (line 30) | struct alpc::port_attributes_t
FILE: resources/sdk/alpc/port_callback_information_t.hpp
type alpc (line 5) | namespace alpc
type port_callback_information_t (line 10) | struct port_callback_information_t
type alpc::port_callback_information_t (line 22) | struct alpc::port_callback_information_t
FILE: resources/sdk/alpc/port_completion_list_information_t.hpp
type alpc (line 5) | namespace alpc
type alpc::port_completion_list_information_t (line 24) | struct alpc::port_completion_list_information_t
FILE: resources/sdk/alpc/port_information_class_t.hpp
type alpc (line 4) | namespace alpc
type port_information_class_t (line 9) | enum class port_information_class_t : int32_t
FILE: resources/sdk/alpc/port_message_zone_information_t.hpp
type alpc (line 5) | namespace alpc
type alpc::port_message_zone_information_t (line 22) | struct alpc::port_message_zone_information_t
FILE: resources/sdk/alpc/port_t.hpp
type nt (line 7) | namespace nt { struct callback_object_t; }
type callback_object_t (line 7) | struct callback_object_t
type eprocess_t (line 8) | struct eprocess_t
type kalpc_message_t (line 9) | struct kalpc_message_t
type kevent_t (line 10) | struct kevent_t
type kqueue_t (line 11) | struct kqueue_t
type ksemaphore_t (line 12) | struct ksemaphore_t
type palpc_port_reference_wait_block_t (line 13) | struct palpc_port_reference_wait_block_t
type nt (line 8) | namespace nt { struct eprocess_t; }
type callback_object_t (line 7) | struct callback_object_t
type eprocess_t (line 8) | struct eprocess_t
type kalpc_message_t (line 9) | struct kalpc_message_t
type kevent_t (line 10) | struct kevent_t
type kqueue_t (line 11) | struct kqueue_t
type ksemaphore_t (line 12) | struct ksemaphore_t
type palpc_port_reference_wait_block_t (line 13) | struct palpc_port_reference_wait_block_t
type nt (line 9) | namespace nt { struct kalpc_message_t; }
type callback_object_t (line 7) | struct callback_object_t
type eprocess_t (line 8) | struct eprocess_t
type kalpc_message_t (line 9) | struct kalpc_message_t
type kevent_t (line 10) | struct kevent_t
type kqueue_t (line 11) | struct kqueue_t
type ksemaphore_t (line 12) | struct ksemaphore_t
type palpc_port_reference_wait_block_t (line 13) | struct palpc_port_reference_wait_block_t
type nt (line 10) | namespace nt { struct kevent_t; }
type callback_object_t (line 7) | struct callback_object_t
type eprocess_t (line 8) | struct eprocess_t
type kalpc_message_t (line 9) | struct kalpc_message_t
type kevent_t (line 10) | struct kevent_t
type kqueue_t (line 11) | struct kqueue_t
type ksemaphore_t (line 12) | struct ksemaphore_t
type palpc_port_reference_wait_block_t (line 13) | struct palpc_port_reference_wait_block_t
type nt (line 11) | namespace nt { struct kqueue_t; }
type callback_object_t (line 7) | struct callback_object_t
type eprocess_t (line 8) | struct eprocess_t
type kalpc_message_t (line 9) | struct kalpc_message_t
type kevent_t (line 10) | struct kevent_t
type kqueue_t (line 11) | struct kqueue_t
type ksemaphore_t (line 12) | struct ksemaphore_t
type palpc_port_reference_wait_block_t (line 13) | struct palpc_port_reference_wait_block_t
type nt (line 12) | namespace nt { struct ksemaphore_t; }
type callback_object_t (line 7) | struct callback_object_t
type eprocess_t (line 8) | struct eprocess_t
type kalpc_message_t (line 9) | struct kalpc_message_t
type kevent_t (line 10) | struct kevent_t
type kqueue_t (line 11) | struct kqueue_t
type ksemaphore_t (line 12) | struct ksemaphore_t
type palpc_port_reference_wait_block_t (line 13) | struct palpc_port_reference_wait_block_t
type nt (line 13) | namespace nt { struct palpc_port_reference_wait_block_t; }
type callback_object_t (line 7) | struct callback_object_t
type eprocess_t (line 8) | struct eprocess_t
type kalpc_message_t (line 9) | struct kalpc_message_t
type kevent_t (line 10) | struct kevent_t
type kqueue_t (line 11) | struct kqueue_t
type ksemaphore_t (line 12) | struct ksemaphore_t
type palpc_port_reference_wait_block_t (line 13) | struct palpc_port_reference_wait_block_t
type alpc (line 16) | namespace alpc
type port_t (line 18) | struct port_t
type completion_list_t (line 19) | struct completion_list_t
type communication_info_t (line 20) | struct communication_info_t
type completion_packet_lookaside_t (line 21) | struct completion_packet_lookaside_t
type nt::kqueue_t (line 33) | struct nt::kqueue_t
type alpc::port_t (line 92) | struct alpc::port_t
FILE: resources/sdk/alpc/process_context_t.hpp
type alpc (line 6) | namespace alpc
type alpc::process_context_t (line 24) | struct alpc::process_context_t
FILE: resources/sdk/alpc/security_attr_t.hpp
type sec (line 4) | namespace sec { struct quality_of_service_t; }
type quality_of_service_t (line 4) | struct quality_of_service_t
type alpc (line 7) | namespace alpc
type security_attr_t (line 12) | struct security_attr_t
type alpc::security_attr_t (line 25) | struct alpc::security_attr_t
FILE: resources/sdk/alpc/server_information_t.hpp
type alpc (line 5) | namespace alpc
type u0_in_t (line 12) | struct u0_in_t
type u4_out_t (line 22) | struct u4_out_t
type alpc::server_information_t::u0_in_t (line 44) | struct alpc::server_information_t::u0_in_t
type alpc::server_information_t::u4_out_t (line 45) | struct alpc::server_information_t::u4_out_t
type alpc::server_information_t (line 46) | struct alpc::server_information_t
FILE: resources/sdk/alpc/server_session_information_t.hpp
type alpc (line 5) | namespace alpc
type server_session_information_t (line 10) | struct server_session_information_t
type alpc::server_session_information_t (line 22) | struct alpc::server_session_information_t
FILE: resources/sdk/alpc/token_attr_t.hpp
type alpc (line 6) | namespace alpc
type token_attr_t (line 11) | struct token_attr_t
type alpc::token_attr_t (line 24) | struct alpc::token_attr_t
FILE: resources/sdk/alpc/work_on_behalf_attr_t.hpp
type alpc (line 6) | namespace alpc
type work_on_behalf_attr_t (line 11) | struct work_on_behalf_attr_t
type alpc::work_on_behalf_attr_t (line 22) | struct alpc::work_on_behalf_attr_t
FILE: resources/sdk/alpc/work_on_behalf_ticket_t.hpp
type alpc (line 5) | namespace alpc
type alpc::work_on_behalf_ticket_t (line 22) | struct alpc::work_on_behalf_ticket_t
FILE: resources/sdk/alpci/api.hpp
type alpci (line 5) | namespace alpci
FILE: resources/sdk/alpcp/api.hpp
type alpcp (line 12) | namespace alpcp
type alpc::port_t (line 33) | struct alpc::port_t
type alpc::port_t (line 82) | struct alpc::port_t
type alpc::port_t (line 124) | struct alpc::port_t
type alpc::port_t (line 131) | struct alpc::port_t
type nt::eprocess_t (line 139) | struct nt::eprocess_t
type alpc::port_t (line 297) | struct alpc::port_t
type nt::kalpc_view_t (line 857) | struct nt::kalpc_view_t
type alpc::dispatch_context_t (line 937) | struct alpc::dispatch_context_t
type alpc::dispatch_context_t (line 947) | struct alpc::dispatch_context_t
type alpc::dispatch_context_t (line 957) | struct alpc::dispatch_context_t
type nt::kalpc_message_t (line 1017) | struct nt::kalpc_message_t
type nt::kalpc_message_t (line 1217) | struct nt::kalpc_message_t
type alpc::port_t (line 1817) | struct alpc::port_t
type nt::kalpc_message_t (line 1827) | struct nt::kalpc_message_t
type nt::eprocess_t (line 1997) | struct nt::eprocess_t
type alpc::dispatch_context_t (line 2047) | struct alpc::dispatch_context_t
type nt::port_message_t (line 2047) | struct nt::port_message_t
type alpc::dispatch_context_t (line 2107) | struct alpc::dispatch_context_t
type nt::port_message_t (line 2107) | struct nt::port_message_t
type alpc::message_attributes_t (line 2107) | struct alpc::message_attributes_t
type nt::port_message_t (line 2277) | struct nt::port_message_t
FILE: resources/sdk/apphelp/info_t.hpp
type apphelp (line 6) | namespace apphelp
type apphelp::info_t (line 33) | struct apphelp::info_t
FILE: resources/sdk/arb/api.hpp
type arb (line 5) | namespace arb
FILE: resources/sdk/arbiter/action_t.hpp
type arbiter (line 4) | namespace arbiter
type action_t (line 9) | enum class action_t : int32_t
FILE: resources/sdk/arbiter/add_reserved_parameters_t.hpp
type nt (line 4) | namespace nt { struct device_object_t; }
type device_object_t (line 4) | struct device_object_t
type arbiter (line 7) | namespace arbiter
type add_reserved_parameters_t (line 12) | struct add_reserved_parameters_t
type arbiter::add_reserved_parameters_t (line 23) | struct arbiter::add_reserved_parameters_t
FILE: resources/sdk/arbiter/allocation_state_t.hpp
type arbiter (line 5) | namespace arbiter
type list_entry_t (line 7) | struct list_entry_t
type alternative_t (line 8) | struct alternative_t
type allocation_state_t (line 13) | struct allocation_state_t
type arbiter::allocation_state_t (line 35) | struct arbiter::allocation_state_t
FILE: resources/sdk/arbiter/alternative_t.hpp
type io (line 4) | namespace io { struct resource_descriptor_t; }
type resource_descriptor_t (line 4) | struct resource_descriptor_t
type arbiter (line 7) | namespace arbiter
type alternative_t (line 12) | struct alternative_t
type arbiter::alternative_t (line 29) | struct arbiter::alternative_t
FILE: resources/sdk/arbiter/boot_allocation_parameters_t.hpp
type arbiter (line 5) | namespace arbiter
type boot_allocation_parameters_t (line 10) | struct boot_allocation_parameters_t
type arbiter::boot_allocation_parameters_t (line 21) | struct arbiter::boot_allocation_parameters_t
FILE: resources/sdk/arbiter/conflict_info_t.hpp
type nt (line 4) | namespace nt { struct device_object_t; }
type device_object_t (line 4) | struct device_object_t
type arbiter (line 7) | namespace arbiter
type arbiter::conflict_info_t (line 25) | struct arbiter::conflict_info_t
FILE: resources/sdk/arbiter/instance_t.hpp
type cm (line 5) | namespace cm { struct partial_resource_descriptor_t; }
type partial_resource_descriptor_t (line 5) | struct partial_resource_descriptor_t
type resource_list_t (line 6) | struct resource_list_t
type cm (line 6) | namespace cm { struct resource_list_t; }
type partial_resource_descriptor_t (line 5) | struct partial_resource_descriptor_t
type resource_list_t (line 6) | struct resource_list_t
type io (line 7) | namespace io { struct resource_descriptor_t; }
type resource_descriptor_t (line 7) | struct resource_descriptor_t
type nt (line 8) | namespace nt { struct device_object_t; }
type device_object_t (line 8) | struct device_object_t
type kevent_t (line 9) | struct kevent_t
type nt (line 9) | namespace nt { struct kevent_t; }
type device_object_t (line 8) | struct device_object_t
type kevent_t (line 9) | struct kevent_t
type rtl (line 10) | namespace rtl { struct range_list_t; }
type range_list_t (line 10) | struct range_list_t
type range_t (line 11) | struct range_t
type rtl (line 11) | namespace rtl { struct range_t; }
type range_list_t (line 10) | struct range_list_t
type range_t (line 11) | struct range_t
type arbiter (line 14) | namespace arbiter
type instance_t (line 16) | struct instance_t
type interface_t (line 17) | struct interface_t
type allocation_state_t (line 18) | struct allocation_state_t
type add_reserved_parameters_t (line 19) | struct add_reserved_parameters_t
type query_conflict_parameters_t (line 20) | struct query_conflict_parameters_t
type boot_allocation_parameters_t (line 21) | struct boot_allocation_parameters_t
type query_arbitrate_parameters_t (line 22) | struct query_arbitrate_parameters_t
type test_allocation_parameters_t (line 23) | struct test_allocation_parameters_t
type retest_allocation_parameters_t (line 24) | struct retest_allocation_parameters_t
type io::resource_descriptor_t (line 31) | struct io::resource_descriptor_t
type io::resource_descriptor_t (line 32) | struct io::resource_descriptor_t
type cm::partial_resource_descriptor_t (line 32) | struct cm::partial_resource_descriptor_t
type cm::partial_resource_descriptor_t (line 33) | struct cm::partial_resource_descriptor_t
type io::resource_descriptor_t (line 34) | struct io::resource_descriptor_t
type arbiter::instance_t (line 35) | struct arbiter::instance_t
type arbiter::test_allocation_parameters_t (line 35) | struct arbiter::test_allocation_parameters_t
type arbiter::instance_t (line 36) | struct arbiter::instance_t
type arbiter::retest_allocation_parameters_t (line 36) | struct arbiter::retest_allocation_parameters_t
type arbiter::instance_t (line 37) | struct arbiter::instance_t
type arbiter::instance_t (line 38) | struct arbiter::instance_t
type arbiter::instance_t (line 39) | struct arbiter::instance_t
type arbiter::boot_allocation_parameters_t (line 39) | struct arbiter::boot_allocation_parameters_t
type arbiter::instance_t (line 40) | struct arbiter::instance_t
type arbiter::query_arbitrate_parameters_t (line 40) | struct arbiter::query_arbitrate_parameters_t
type arbiter::instance_t (line 41) | struct arbiter::instance_t
type arbiter::query_conflict_parameters_t (line 41) | struct arbiter::query_conflict_parameters_t
type arbiter::instance_t (line 42) | struct arbiter::instance_t
type arbiter::add_reserved_parameters_t (line 42) | struct arbiter::add_reserved_parameters_t
type arbiter::instance_t (line 43) | struct arbiter::instance_t
type cm::resource_list_t (line 43) | struct cm::resource_list_t
type arbiter::instance_t (line 44) | struct arbiter::instance_t
type arbiter::allocation_state_t (line 44) | struct arbiter::allocation_state_t
type arbiter::instance_t (line 45) | struct arbiter::instance_t
type arbiter::allocation_state_t (line 45) | struct arbiter::allocation_state_t
type arbiter::instance_t (line 46) | struct arbiter::instance_t
type arbiter::allocation_state_t (line 46) | struct arbiter::allocation_state_t
type arbiter::instance_t (line 47) | struct arbiter::instance_t
type arbiter::allocation_state_t (line 47) | struct arbiter::allocation_state_t
type arbiter::instance_t (line 48) | struct arbiter::instance_t
type arbiter::allocation_state_t (line 48) | struct arbiter::allocation_state_t
type arbiter::instance_t (line 49) | struct arbiter::instance_t
type arbiter::allocation_state_t (line 49) | struct arbiter::allocation_state_t
type arbiter::instance_t (line 50) | struct arbiter::instance_t
type arbiter::allocation_state_t (line 50) | struct arbiter::allocation_state_t
type arbiter::instance_t (line 51) | struct arbiter::instance_t
type cm::partial_resource_descriptor_t (line 51) | struct cm::partial_resource_descriptor_t
type rtl::range_list_t (line 51) | struct rtl::range_list_t
type rtl::range_t (line 52) | struct rtl::range_t
type arbiter::instance_t (line 53) | struct arbiter::instance_t
FILE: resources/sdk/arbiter/interface_t.hpp
type arbiter (line 6) | namespace arbiter
type parameters_t (line 8) | struct parameters_t
type arbiter::action_t (line 15) | enum arbiter::action_t
type arbiter::parameters_t (line 15) | struct arbiter::parameters_t
type arbiter::interface_t (line 32) | struct arbiter::interface_t
FILE: resources/sdk/arbiter/list_entry_t.hpp
type cm (line 7) | namespace cm { struct partial_resource_descriptor_t; }
type partial_resource_descriptor_t (line 7) | struct partial_resource_descriptor_t
type io (line 8) | namespace io { struct resource_descriptor_t; }
type resource_descriptor_t (line 8) | struct resource_descriptor_t
type nt (line 9) | namespace nt { struct device_object_t; }
type device_object_t (line 9) | struct device_object_t
type arbiter (line 12) | namespace arbiter
type list_entry_t (line 17) | struct list_entry_t
type arbiter::list_entry_t (line 40) | struct arbiter::list_entry_t
FILE: resources/sdk/arbiter/ordering_list_t.hpp
type arbiter (line 5) | namespace arbiter
type ordering_t (line 7) | struct ordering_t
type ordering_list_t (line 12) | struct ordering_list_t
type arbiter::ordering_list_t (line 25) | struct arbiter::ordering_list_t
FILE: resources/sdk/arbiter/ordering_t.hpp
type arbiter (line 5) | namespace arbiter
type arbiter::ordering_t (line 22) | struct arbiter::ordering_t
FILE: resources/sdk/arbiter/parameters_t.hpp
type arbiter (line 12) | namespace arbiter
type parameters_t (line 17) | struct parameters_t
type arbiter::query_allocated_resources_parameters_t (line 21) | struct arbiter::query_allocated_resources_parameters_t
type arbiter::parameters_t (line 47) | struct arbiter::parameters_t
FILE: resources/sdk/arbiter/query_allocated_resources_parameters_t.hpp
type cm (line 4) | namespace cm { struct partial_resource_list_t; }
type partial_resource_list_t (line 4) | struct partial_resource_list_t
type arbiter (line 7) | namespace arbiter
type query_allocated_resources_parameters_t (line 12) | struct query_allocated_resources_parameters_t
type arbiter::query_allocated_resources_parameters_t (line 23) | struct arbiter::query_allocated_resources_parameters_t
FILE: resources/sdk/arbiter/query_arbitrate_parameters_t.hpp
type arbiter (line 5) | namespace arbiter
type query_arbitrate_parameters_t (line 10) | struct query_arbitrate_parameters_t
type arbiter::query_arbitrate_parameters_t (line 21) | struct arbiter::query_arbitrate_parameters_t
FILE: resources/sdk/arbiter/query_conflict_parameters_t.hpp
type io (line 4) | namespace io { struct resource_descriptor_t; }
type resource_descriptor_t (line 4) | struct resource_descriptor_t
type nt (line 5) | namespace nt { struct device_object_t; }
type device_object_t (line 5) | struct device_object_t
type arbiter (line 8) | namespace arbiter
type conflict_info_t (line 10) | struct conflict_info_t
type query_conflict_parameters_t (line 15) | struct query_conflict_parameters_t
type arbiter::query_conflict_parameters_t (line 29) | struct arbiter::query_conflict_parameters_t
FILE: resources/sdk/arbiter/request_source_t.hpp
type arbiter (line 4) | namespace arbiter
type request_source_t (line 9) | enum class request_source_t : int32_t
FILE: resources/sdk/arbiter/result_t.hpp
type arbiter (line 4) | namespace arbiter
type result_t (line 9) | enum class result_t : int32_t
FILE: resources/sdk/arbiter/retest_allocation_parameters_t.hpp
type cm (line 4) | namespace cm { struct partial_resource_descriptor_t; }
type partial_resource_descriptor_t (line 4) | struct partial_resource_descriptor_t
type arbiter (line 7) | namespace arbiter
type retest_allocation_parameters_t (line 12) | struct retest_allocation_parameters_t
type arbiter::retest_allocation_parameters_t (line 25) | struct arbiter::retest_allocation_parameters_t
FILE: resources/sdk/arbiter/test_allocation_parameters_t.hpp
type cm (line 4) | namespace cm { struct partial_resource_descriptor_t; }
type partial_resource_descriptor_t (line 4) | struct partial_resource_descriptor_t
type arbiter (line 7) | namespace arbiter
type test_allocation_parameters_t (line 12) | struct test_allocation_parameters_t
type arbiter::test_allocation_parameters_t (line 25) | struct arbiter::test_allocation_parameters_t
FILE: resources/sdk/arbp/api.hpp
type arbp (line 5) | namespace arbp
FILE: resources/sdk/asi/api.hpp
type asi (line 5) | namespace asi
FILE: resources/sdk/asl/api.hpp
type asl (line 5) | namespace asl
FILE: resources/sdk/asl/attribute_index_t.hpp
type asl (line 4) | namespace asl
type attribute_index_t (line 9) | enum class attribute_index_t : int32_t
FILE: resources/sdk/asl/attribute_t.hpp
type asl (line 6) | namespace asl
type asl::attribute_t (line 25) | struct asl::attribute_t
FILE: resources/sdk/asl/attribute_type_t.hpp
type asl (line 4) | namespace asl
type attribute_type_t (line 9) | enum class attribute_type_t : int32_t
FILE: resources/sdk/asl/critical_section_t.hpp
type asl (line 6) | namespace asl
type critical_section_t (line 11) | struct critical_section_t
type asl::critical_section_t (line 22) | struct asl::critical_section_t
FILE: resources/sdk/asl/file_kind_detail_t.hpp
type asl (line 4) | namespace asl
type file_kind_detail_t (line 9) | enum class file_kind_detail_t : int32_t
FILE: resources/sdk/asl/file_mapping_t.hpp
type asl (line 6) | namespace asl
class file_mapping_t (line 11) | class file_mapping_t
type asl::attribute_t (line 16) | struct asl::attribute_t
FILE: resources/sdk/asl/log_channel_t.hpp
type asl (line 5) | namespace asl
type asl::log_channel_t (line 27) | struct asl::log_channel_t
FILE: resources/sdk/asl/log_global_logger_t.hpp
type asl (line 8) | namespace asl
type asl::log_level_t (line 15) | enum asl::log_level_t
class asl::log_global_logger_t (line 28) | class asl::log_global_logger_t
FILE: resources/sdk/asl/log_level_t.hpp
type asl (line 4) | namespace asl
type log_level_t (line 9) | enum class log_level_t : int32_t
FILE: resources/sdk/asl/log_t.hpp
type asl (line 5) | namespace asl
class asl::log_t (line 21) | class asl::log_t
FILE: resources/sdk/asl/string_hash_element_t.hpp
type asl (line 5) | namespace asl
type string_hash_element_t (line 7) | struct string_hash_element_t
type string_hash_element_t (line 12) | struct string_hash_element_t
type asl::string_hash_element_t (line 25) | struct asl::string_hash_element_t
FILE: resources/sdk/asl/string_hash_t.hpp
type asl (line 5) | namespace asl
type string_hash_element_t (line 7) | struct string_hash_element_t
type string_hash_t (line 12) | struct string_hash_t
type asl::string_hash_t (line 24) | struct asl::string_hash_t
FILE: resources/sdk/asl/telemetry_level_t.hpp
type asl (line 4) | namespace asl
type telemetry_level_t (line 9) | enum class telemetry_level_t : int32_t
FILE: resources/sdk/asl/telemetry_t.hpp
type asl (line 5) | namespace asl
class asl::telemetry_t (line 21) | class asl::telemetry_t
FILE: resources/sdk/aslp/api.hpp
type aslp (line 5) | namespace aslp
FILE: resources/sdk/ata/api.hpp
type ata (line 5) | namespace ata
FILE: resources/sdk/atapi/api.hpp
type atapi (line 5) | namespace atapi
FILE: resources/sdk/authz/api.hpp
type authz (line 5) | namespace authz
FILE: resources/sdk/bapd/api.hpp
type bapd (line 5) | namespace bapd
FILE: resources/sdk/bapdp/api.hpp
type bapdp (line 5) | namespace bapdp
FILE: resources/sdk/bcd/api.hpp
type bcd (line 5) | namespace bcd
FILE: resources/sdk/bcp/api.hpp
type bcp (line 5) | namespace bcp
FILE: resources/sdk/bg/api.hpp
type bg (line 5) | namespace bg
FILE: resources/sdk/bgk/api.hpp
type bgk (line 5) | namespace bgk
FILE: resources/sdk/bgkp/api.hpp
type bgkp (line 5) | namespace bgkp
FILE: resources/sdk/bgp/api.hpp
type bgp (line 5) | namespace bgp
FILE: resources/sdk/bi/api.hpp
type bi (line 5) | namespace bi
FILE: resources/sdk/bip/api.hpp
type bip (line 5) | namespace bip
FILE: resources/sdk/boot/api.hpp
type boot (line 5) | namespace boot
FILE: resources/sdk/boot/area_info_t.hpp
type boot (line 5) | namespace boot
type boot::area_info_t::u0_boot_sectors_t (line 32) | struct boot::area_info_t::u0_boot_sectors_t
type boot::area_info_t (line 33) | struct boot::area_info_t
FILE: resources/sdk/boot/entropy_ldr_result_t.hpp
type boot (line 6) | namespace boot
type entropy_ldr_result_t (line 11) | struct entropy_ldr_result_t
type boot::entropy_source_ldr_result_t (line 13) | struct boot::entropy_source_ldr_result_t
type boot::entropy_ldr_result_t (line 28) | struct boot::entropy_ldr_result_t
FILE: resources/sdk/boot/entropy_nt_result_t.hpp
type boot (line 6) | namespace boot
type entropy_nt_result_t (line 11) | struct entropy_nt_result_t
type boot::entropy_source_nt_result_t (line 13) | struct boot::entropy_source_nt_result_t
FILE: resources/sdk/boot/entropy_source_id_t.hpp
type boot (line 4) | namespace boot
type entropy_source_id_t (line 9) | enum class entropy_source_id_t : int32_t
FILE: resources/sdk/boot/entropy_source_ldr_result_t.hpp
type boot (line 7) | namespace boot
type entropy_source_ldr_result_t (line 12) | struct entropy_source_ldr_result_t
type boot::entropy_source_ldr_result_t (line 29) | struct boot::entropy_source_ldr_result_t
FILE: resources/sdk/boot/entropy_source_nt_result_t.hpp
type boot (line 7) | namespace boot
type entropy_source_nt_result_t (line 12) | struct entropy_source_nt_result_t
type boot::entropy_source_nt_result_t (line 29) | struct boot::entropy_source_nt_result_t
FILE: resources/sdk/boot/entropy_source_result_code_t.hpp
type boot (line 4) | namespace boot
type entropy_source_result_code_t (line 9) | enum class entropy_source_result_code_t : int32_t
FILE: resources/sdk/boot/entry_list_t.hpp
type boot (line 6) | namespace boot
type entry_list_t (line 11) | struct entry_list_t
type boot::entry_list_t (line 23) | struct boot::entry_list_t
FILE: resources/sdk/boot/entry_t.hpp
type boot (line 5) | namespace boot
type entry_t (line 10) | struct entry_t
type boot::entry_t (line 28) | struct boot::entry_t
FILE: resources/sdk/boot/firmware_ramdisk_info_t.hpp
type boot (line 5) | namespace boot
type boot::firmware_ramdisk_info_t (line 24) | struct boot::firmware_ramdisk_info_t
FILE: resources/sdk/boot/options_t.hpp
type boot (line 5) | namespace boot
type options_t (line 10) | struct options_t
type boot::options_t (line 26) | struct boot::options_t
FILE: resources/sdk/boot/record_t.hpp
type boot (line 5) | namespace boot
type boot::record_t (line 24) | struct boot::record_t
FILE: resources/sdk/cc/api.hpp
type nt (line 14) | namespace nt { struct kthread_t; }
type kthread_t (line 14) | struct kthread_t
type cc (line 17) | namespace cc
type async_read_context_t (line 19) | struct async_read_context_t
type nt::file_object_t (line 159) | struct nt::file_object_t
type cc::partition_t (line 1322) | struct cc::partition_t
type nt::shared_cache_map_t (line 1322) | struct nt::shared_cache_map_t
type cc::partition_t (line 1499) | struct cc::partition_t
type nt::shared_cache_map_t (line 1508) | struct nt::shared_cache_map_t
type nt::file_object_t (line 1508) | struct nt::file_object_t
type nt::file_object_t (line 2167) | struct nt::file_object_t
type io::status_block_t (line 2167) | struct io::status_block_t
type nt::kthread_t (line 2167) | struct nt::kthread_t
type cc::async_read_context_t (line 2167) | struct cc::async_read_context_t
type nt::file_object_t (line 2297) | struct nt::file_object_t
type nt::section_object_pointers_t (line 2387) | struct nt::section_object_pointers_t
type io::status_block_t (line 2387) | struct io::status_block_t
type nt::file_object_t (line 2447) | struct nt::file_object_t
type io::status_block_t (line 2447) | struct io::status_block_t
type nt::file_object_t (line 2457) | struct nt::file_object_t
type io::status_block_t (line 2457) | struct io::status_block_t
type nt::kthread_t (line 2457) | struct nt::kthread_t
type nt::file_object_t (line 2477) | struct nt::file_object_t
type nt::file_object_t (line 2487) | struct nt::file_object_t
type nt::kthread_t (line 2487) | struct nt::kthread_t
type nt::file_object_t (line 2497) | struct nt::file_object_t
type nt::file_object_t (line 2697) | struct nt::file_object_t
type nt::file_object_t (line 2827) | struct nt::file_object_t
type io::status_block_t (line 2827) | struct io::status_block_t
type nt::file_object_t (line 2837) | struct nt::file_object_t
type nt::section_object_pointers_t (line 2907) | struct nt::section_object_pointers_t
type io::status_block_t (line 2907) | struct io::status_block_t
type nt::file_object_t (line 2987) | struct nt::file_object_t
type nt::file_object_t (line 2997) | struct nt::file_object_t
type nt::file_object_t (line 3007) | struct nt::file_object_t
type nt::section_object_pointers_t (line 3007) | struct nt::section_object_pointers_t
type nt::file_object_t (line 3017) | struct nt::file_object_t
type nt::section_object_pointers_t (line 3017) | struct nt::section_object_pointers_t
type nt::section_object_pointers_t (line 3027) | struct nt::section_object_pointers_t
type nt::file_object_t (line 3167) | struct nt::file_object_t
type cc::file_sizes_t (line 3167) | struct cc::file_sizes_t
type nt::cache_manager_callbacks_t (line 3167) | struct nt::cache_manager_callbacks_t
type nt::file_object_t (line 3177) | struct nt::file_object_t
type cc::file_sizes_t (line 3177) | struct cc::file_sizes_t
type nt::cache_manager_callbacks_t (line 3177) | struct nt::cache_manager_callbacks_t
type nt::shared_cache_map_t (line 3217) | struct nt::shared_cache_map_t
type nt::vpb_t (line 3247) | struct nt::vpb_t
type nt::vpb_t (line 3257) | struct nt::vpb_t
type nt::file_object_t (line 3327) | struct nt::file_object_t
type nt::file_object_t (line 3437) | struct nt::file_object_t
type nt::mdl_t (line 3437) | struct nt::mdl_t
type io::status_block_t (line 3437) | struct io::status_block_t
type nt::file_object_t (line 3447) | struct nt::file_object_t
type nt::mdl_t (line 3447) | struct nt::mdl_t
type nt::file_object_t (line 3467) | struct nt::file_object_t
type nt::mdl_t (line 3467) | struct nt::mdl_t
type nt::file_object_t (line 3477) | struct nt::file_object_t
type nt::mdl_t (line 3477) | struct nt::mdl_t
type nt::file_object_t (line 3727) | struct nt::file_object_t
type nt::file_object_t (line 3737) | struct nt::file_object_t
type nt::file_object_t (line 3777) | struct nt::file_object_t
type nt::mdl_t (line 3777) | struct nt::mdl_t
type io::status_block_t (line 3777) | struct io::status_block_t
type nt::file_object_t (line 3787) | struct nt::file_object_t
type nt::section_object_pointers_t (line 3807) | struct nt::section_object_pointers_t
type nt::file_object_t (line 3867) | struct nt::file_object_t
type nt::shared_cache_map_t (line 3867) | struct nt::shared_cache_map_t
type nt::file_object_t (line 3997) | struct nt::file_object_t
type nt::file_object_t (line 4007) | struct nt::file_object_t
type nt::kthread_t (line 4007) | struct nt::kthread_t
type nt::file_object_t (line 4017) | struct nt::file_object_t
type nt::file_object_t (line 4027) | struct nt::file_object_t
type nt::file_object_t (line 4057) | struct nt::file_object_t
type nt::file_object_t (line 4077) | struct nt::file_object_t
type cc::file_sizes_t (line 4077) | struct cc::file_sizes_t
type nt::file_object_t (line 4087) | struct nt::file_object_t
type cc::file_sizes_t (line 4087) | struct cc::file_sizes_t
type nt::file_object_t (line 4097) | struct nt::file_object_t
type nt::file_object_t (line 4127) | struct nt::file_object_t
type nt::file_object_t (line 4137) | struct nt::file_object_t
type nt::file_object_t (line 4207) | struct nt::file_object_t
type nt::shared_cache_map_t (line 4207) | struct nt::shared_cache_map_t
type nt::file_object_t (line 4257) | struct nt::file_object_t
type nt::cache_uninitialize_event_t (line 4257) | struct nt::cache_uninitialize_event_t
type io::status_block_t (line 4337) | struct io::status_block_t
type nt::file_object_t (line 4517) | struct nt::file_object_t
FILE: resources/sdk/cc/async_read_context_t.hpp
type nt (line 4) | namespace nt { struct mdl_t; }
type mdl_t (line 4) | struct mdl_t
type cc (line 7) | namespace cc
type cc::async_read_context_t (line 27) | struct cc::async_read_context_t
FILE: resources/sdk/cc/error_callback_context_t.hpp
type cc (line 5) | namespace cc
type error_callback_context_t (line 10) | struct error_callback_context_t
type cc::error_callback_context_t (line 22) | struct cc::error_callback_context_t
FILE: resources/sdk/cc/external_cache_info_t.hpp
type cc (line 6) | namespace cc
type external_cache_info_t (line 11) | struct external_cache_info_t
type cc::external_cache_info_t (line 24) | struct cc::external_cache_info_t
FILE: resources/sdk/cc/file_sizes_t.hpp
type cc (line 5) | namespace cc
type cc::file_sizes_t (line 23) | struct cc::file_sizes_t
FILE: resources/sdk/cc/flush_packet_t.hpp
type io (line 4) | namespace io { struct status_block_t; }
type status_block_t (line 4) | struct status_block_t
type nt (line 5) | namespace nt { struct bcb_t; }
type bcb_t (line 5) | struct bcb_t
type fsrtl_common_fcb_header_t (line 6) | struct fsrtl_common_fcb_header_t
type kevent_t (line 7) | struct kevent_t
type private_volume_cachemap_t (line 8) | struct private_volume_cachemap_t
type section_object_pointers_t (line 9) | struct section_object_pointers_t
type shared_cache_map_t (line 10) | struct shared_cache_map_t
type work_queue_entry_t (line 11) | struct work_queue_entry_t
type nt (line 6) | namespace nt { struct fsrtl_common_fcb_header_t; }
type bcb_t (line 5) | struct bcb_t
type fsrtl_common_fcb_header_t (line 6) | struct fsrtl_common_fcb_header_t
type kevent_t (line 7) | struct kevent_t
type private_volume_cachemap_t (line 8) | struct private_volume_cachemap_t
type section_object_pointers_t (line 9) | struct section_object_pointers_t
type shared_cache_map_t (line 10) | struct shared_cache_map_t
type work_queue_entry_t (line 11) | struct work_queue_entry_t
type nt (line 7) | namespace nt { struct kevent_t; }
type bcb_t (line 5) | struct bcb_t
type fsrtl_common_fcb_header_t (line 6) | struct fsrtl_common_fcb_header_t
type kevent_t (line 7) | struct kevent_t
type private_volume_cachemap_t (line 8) | struct private_volume_cachemap_t
type section_object_pointers_t (line 9) | struct section_object_pointers_t
type shared_cache_map_t (line 10) | struct shared_cache_map_t
type work_queue_entry_t (line 11) | struct work_queue_entry_t
type nt (line 8) | namespace nt { struct private_volume_cachemap_t; }
type bcb_t (line 5) | struct bcb_t
type fsrtl_common_fcb_header_t (line 6) | struct fsrtl_common_fcb_header_t
type kevent_t (line 7) | struct kevent_t
type private_volume_cachemap_t (line 8) | struct private_volume_cachemap_t
type section_object_pointers_t (line 9) | struct section_object_pointers_t
type shared_cache_map_t (line 10) | struct shared_cache_map_t
type work_queue_entry_t (line 11) | struct work_queue_entry_t
type nt (line 9) | namespace nt { struct section_object_pointers_t; }
type bcb_t (line 5) | struct bcb_t
type fsrtl_common_fcb_header_t (line 6) | struct fsrtl_common_fcb_header_t
type kevent_t (line 7) | struct kevent_t
type private_volume_cachemap_t (line 8) | struct private_volume_cachemap_t
type section_object_pointers_t (line 9) | struct section_object_pointers_t
type shared_cache_map_t (line 10) | struct shared_cache_map_t
type work_queue_entry_t (line 11) | struct work_queue_entry_t
type nt (line 10) | namespace nt { struct shared_cache_map_t; }
type bcb_t (line 5) | struct bcb_t
type fsrtl_common_fcb_header_t (line 6) | struct fsrtl_common_fcb_header_t
type kevent_t (line 7) | struct kevent_t
type private_volume_cachemap_t (line 8) | struct private_volume_cachemap_t
type section_object_pointers_t (line 9) | struct section_object_pointers_t
type shared_cache_map_t (line 10) | struct shared_cache_map_t
type work_queue_entry_t (line 11) | struct work_queue_entry_t
type nt (line 11) | namespace nt { struct work_queue_entry_t; }
type bcb_t (line 5) | struct bcb_t
type fsrtl_common_fcb_header_t (line 6) | struct fsrtl_common_fcb_header_t
type kevent_t (line 7) | struct kevent_t
type private_volume_cachemap_t (line 8) | struct private_volume_cachemap_t
type section_object_pointers_t (line 9) | struct section_object_pointers_t
type shared_cache_map_t (line 10) | struct shared_cache_map_t
type work_queue_entry_t (line 11) | struct work_queue_entry_t
type cc (line 14) | namespace cc
type partition_t (line 16) | struct partition_t
type flush_packet_t (line 21) | struct flush_packet_t
type cc::flush_packet_t (line 77) | struct cc::flush_packet_t
FILE: resources/sdk/cc/lws_packet_t.hpp
type nt (line 5) | namespace nt { struct private_volume_cachemap_t; }
type private_volume_cachemap_t (line 5) | struct private_volume_cachemap_t
type cc (line 8) | namespace cc
type partition_t (line 10) | struct partition_t
type cc::lws_packet_t (line 40) | struct cc::lws_packet_t
FILE: resources/sdk/cc/lws_packet_type_t.hpp
type cc (line 4) | namespace cc
type lws_packet_type_t (line 9) | enum class lws_packet_type_t : int32_t
FILE: resources/sdk/cc/numa_node_t.hpp
type nt (line 7) | namespace nt { struct async_read_thread_stats_t; }
type async_read_thread_stats_t (line 7) | struct async_read_thread_stats_t
type private_volume_cachemap_t (line 8) | struct private_volume_cachemap_t
type nt (line 8) | namespace nt { struct private_volume_cachemap_t; }
type async_read_thread_stats_t (line 7) | struct async_read_thread_stats_t
type private_volume_cachemap_t (line 8) | struct private_volume_cachemap_t
type cc (line 11) | namespace cc
type partition_t (line 13) | struct partition_t
type numa_node_t (line 18) | struct numa_node_t
type cc::numa_node_t (line 69) | struct cc::numa_node_t
FILE: resources/sdk/cc/numa_type_t.hpp
type cc (line 4) | namespace cc
type numa_type_t (line 9) | enum class numa_type_t : int32_t
FILE: resources/sdk/cc/partition_t.hpp
type nt (line 12) | namespace nt { struct async_read_thread_stats_t; }
type async_read_thread_stats_t (line 12) | struct async_read_thread_stats_t
type epartition_t (line 13) | struct epartition_t
type ethread_t (line 14) | struct ethread_t
type shared_cache_map_t (line 15) | struct shared_cache_map_t
type write_behind_throughput_t (line 16) | struct write_behind_throughput_t
type nt (line 13) | namespace nt { struct epartition_t; }
type async_read_thread_stats_t (line 12) | struct async_read_thread_stats_t
type epartition_t (line 13) | struct epartition_t
type ethread_t (line 14) | struct ethread_t
type shared_cache_map_t (line 15) | struct shared_cache_map_t
type write_behind_throughput_t (line 16) | struct write_behind_throughput_t
type nt (line 14) | namespace nt { struct ethread_t; }
type async_read_thread_stats_t (line 12) | struct async_read_thread_stats_t
type epartition_t (line 13) | struct epartition_t
type ethread_t (line 14) | struct ethread_t
type shared_cache_map_t (line 15) | struct shared_cache_map_t
type write_behind_throughput_t (line 16) | struct write_behind_throughput_t
type nt (line 15) | namespace nt { struct shared_cache_map_t; }
type async_read_thread_stats_t (line 12) | struct async_read_thread_stats_t
type epartition_t (line 13) | struct epartition_t
type ethread_t (line 14) | struct ethread_t
type shared_cache_map_t (line 15) | struct shared_cache_map_t
type write_behind_throughput_t (line 16) | struct write_behind_throughput_t
type nt (line 16) | namespace nt { struct write_behind_throughput_t; }
type async_read_thread_stats_t (line 12) | struct async_read_thread_stats_t
type epartition_t (line 13) | struct epartition_t
type ethread_t (line 14) | struct ethread_t
type shared_cache_map_t (line 15) | struct shared_cache_map_t
type write_behind_throughput_t (line 16) | struct write_behind_throughput_t
type cc (line 19) | namespace cc
type numa_node_t (line 21) | struct numa_node_t
type partition_t (line 26) | struct partition_t
type cc::numa_node_t (line 117) | struct cc::numa_node_t
FILE: resources/sdk/cc/volume_telemetry_t.hpp
type cc (line 6) | namespace cc
type volume_telemetry_t (line 11) | struct volume_telemetry_t
type cc::volume_telemetry_t (line 110) | struct cc::volume_telemetry_t
FILE: resources/sdk/ci/api.hpp
type ci (line 5) | namespace ci
FILE: resources/sdk/ci/flip_present_history_token/api.hpp
type ci::flip_present_history_token (line 5) | namespace ci::flip_present_history_token
FILE: resources/sdk/ci/flip_present_history_token_flip_manager/api.hpp
type ci::flip_present_history_token_flip_manager (line 5) | namespace ci::flip_present_history_token_flip_manager
FILE: resources/sdk/ci/flip_present_history_token_redirected_flip/api.hpp
type ci::flip_present_history_token_redirected_flip (line 5) | namespace ci::flip_present_history_token_redirected_flip
FILE: resources/sdk/ci/log_mmcss_start_t.hpp
type ci (line 6) | namespace ci
type log_mmcss_start_t (line 11) | struct log_mmcss_start_t
type ci::log_mmcss_start_t (line 22) | struct ci::log_mmcss_start_t
FILE: resources/sdk/ci/log_mmcss_stop_t.hpp
type ci (line 6) | namespace ci
type log_mmcss_stop_t (line 11) | struct log_mmcss_stop_t
type ci::log_mmcss_stop_t (line 22) | struct ci::log_mmcss_stop_t
FILE: resources/sdk/ci/log_scheduler_event_t.hpp
type ci (line 6) | namespace ci
type log_scheduler_event_t (line 11) | struct log_scheduler_event_t
type ci::log_scheduler_event_t (line 26) | struct ci::log_scheduler_event_t
FILE: resources/sdk/ci/log_scheduler_sleep_response_t.hpp
type ci (line 6) | namespace ci
type log_scheduler_sleep_response_t (line 11) | struct log_scheduler_sleep_response_t
type ci::log_scheduler_sleep_response_t (line 22) | struct ci::log_scheduler_sleep_response_t
FILE: resources/sdk/ci/log_scheduler_sleep_t.hpp
type ci (line 6) | namespace ci
type log_scheduler_sleep_t (line 11) | struct log_scheduler_sleep_t
type ci::log_scheduler_sleep_t (line 22) | struct ci::log_scheduler_sleep_t
FILE: resources/sdk/ci/log_scheduler_wakeup_t.hpp
type ci (line 6) | namespace ci
type ci::log_scheduler_wakeup_t (line 23) | struct ci::log_scheduler_wakeup_t
FILE: resources/sdk/ci/ngen_paths_t.hpp
type ci (line 4) | namespace ci
type ci::ngen_paths_t (line 16) | struct ci::ngen_paths_t
FILE: resources/sdk/ci/windows_lockdown_mode_t.hpp
type ci (line 4) | namespace ci
type windows_lockdown_mode_t (line 9) | enum class windows_lockdown_mode_t : int32_t
FILE: resources/sdk/ci/windows_lockdown_restriction_t.hpp
type ci (line 4) | namespace ci
type windows_lockdown_restriction_t (line 9) | enum class windows_lockdown_restriction_t : int32_t
FILE: resources/sdk/cip/api.hpp
type cip (line 5) | namespace cip
FILE: resources/sdk/civ/channel/api.hpp
type civ::channel (line 5) | namespace civ::channel
FILE: resources/sdk/civ/deserializer/api.hpp
type civ::deserializer (line 5) | namespace civ::deserializer
FILE: resources/sdk/civ/generic_serializer/api.hpp
type civ::generic_serializer (line 5) | namespace civ::generic_serializer
FILE: resources/sdk/civ/mouse_serializer/api.hpp
type civ::mouse_serializer (line 5) | namespace civ::mouse_serializer
FILE: resources/sdk/civ/pn_p_create_serializer/api.hpp
type civ::pn_p_create_serializer (line 5) | namespace civ::pn_p_create_serializer
FILE: resources/sdk/civ/serializer/api.hpp
type civ::serializer (line 5) | namespace civ::serializer
FILE: resources/sdk/civ/touch_serializer/api.hpp
type civ::touch_serializer (line 5) | namespace civ::touch_serializer
FILE: resources/sdk/clfs/api.hpp
type clfs (line 5) | namespace clfs
FILE: resources/sdk/clfs/context_mode_t.hpp
type clfs (line 4) | namespace clfs
type context_mode_t (line 9) | enum class context_mode_t : int32_t
FILE: resources/sdk/clfs/iostats_class_t.hpp
type clfs (line 4) | namespace clfs
type iostats_class_t (line 9) | enum class iostats_class_t : int32_t
FILE: resources/sdk/clfs/log_archive_mode_t.hpp
type clfs (line 4) | namespace clfs
type log_archive_mode_t (line 9) | enum class log_archive_mode_t : int32_t
FILE: resources/sdk/clfs/log_name_information_t.hpp
type clfs (line 5) | namespace clfs
type log_name_information_t (line 10) | struct log_name_information_t
type clfs::log_name_information_t (line 22) | struct clfs::log_name_information_t
FILE: resources/sdk/clfs/mgmt_client_registration_t.hpp
type cls (line 4) | namespace cls { union lsn_t; }
type nt (line 5) | namespace nt { struct file_object_t; }
type file_object_t (line 5) | struct file_object_t
type clfs (line 8) | namespace clfs
type mgmt_client_registration_t (line 13) | struct mgmt_client_registration_t
type nt::file_object_t (line 15) | struct nt::file_object_t
type nt::file_object_t (line 16) | struct nt::file_object_t
type nt::file_object_t (line 17) | struct nt::file_object_t
type clfs::mgmt_client_registration_t (line 34) | struct clfs::mgmt_client_registration_t
FILE: resources/sdk/clfs/mgmt_notification_t.hpp
type clfs (line 7) | namespace clfs
type clfs::mgmt_notification_t (line 25) | struct clfs::mgmt_notification_t
FILE: resources/sdk/clfs/mgmt_notification_type_t.hpp
type clfs (line 4) | namespace clfs
type mgmt_notification_type_t (line 9) | enum class mgmt_notification_type_t : int32_t
FILE: resources/sdk/clfs/mgmt_policy_t.hpp
type clfs (line 6) | namespace clfs
type u5_maximum_size_t (line 15) | struct u5_maximum_size_t
type u10_minimum_size_t (line 25) | struct u10_minimum_size_t
type u30_auto_shrink_t (line 67) | struct u30_auto_shrink_t
type u40_new_container_prefix_t (line 87) | struct u40_new_container_prefix_t
type u50_new_container_extension_t (line 108) | struct u50_new_container_extension_t
type clfs::mgmt_policy_t::u0_policy_parameters_t::u5_maximum_size_t (line 149) | struct clfs::mgmt_policy_t::u0_policy_parameters_t::u5_maximum_size_t
type clfs::mgmt_policy_t::u0_policy_parameters_t::u10_minimum_size_t (line 150) | struct clfs::mgmt_policy_t::u0_policy_parameters_t::u10_minimum_size_t
type clfs::mgmt_policy_t::u0_policy_parameters_t::u15_new_container_size_t (line 151) | struct clfs::mgmt_policy_t::u0_policy_parameters_t::u15_new_container_si...
type clfs::mgmt_policy_t::u0_policy_parameters_t::u20_growth_rate_t (line 152) | struct clfs::mgmt_policy_t::u0_policy_parameters_t::u20_growth_rate_t
type clfs::mgmt_policy_t::u0_policy_parameters_t::u25_log_tail_t (line 153) | struct clfs::mgmt_policy_t::u0_policy_parameters_t::u25_log_tail_t
type clfs::mgmt_policy_t::u0_policy_parameters_t::u30_auto_shrink_t (line 154) | struct clfs::mgmt_policy_t::u0_policy_parameters_t::u30_auto_shrink_t
type clfs::mgmt_policy_t::u0_policy_parameters_t::u35_auto_grow_t (line 155) | struct clfs::mgmt_policy_t::u0_policy_parameters_t::u35_auto_grow_t
type clfs::mgmt_policy_t::u0_policy_parameters_t::u40_new_container_prefix_t (line 156) | struct clfs::mgmt_policy_t::u0_policy_parameters_t::u40_new_container_pr...
type clfs::mgmt_policy_t::u0_policy_parameters_t::u45_new_container_suffix_t (line 157) | struct clfs::mgmt_policy_t::u0_policy_parameters_t::u45_new_container_su...
type clfs::mgmt_policy_t::u0_policy_parameters_t::u50_new_container_extension_t (line 158) | struct clfs::mgmt_policy_t::u0_policy_parameters_t::u50_new_container_ex...
type clfs::mgmt_policy_t (line 160) | struct clfs::mgmt_policy_t
FILE: resources/sdk/clfs/mgmt_policy_type_t.hpp
type clfs (line 4) | namespace clfs
type mgmt_policy_type_t (line 9) | enum class mgmt_policy_type_t : int32_t
FILE: resources/sdk/clfs/node_id_t.hpp
type clfs (line 5) | namespace clfs
type clfs::node_id_t (line 22) | struct clfs::node_id_t
FILE: resources/sdk/clfs/physical_lsn_information_t.hpp
type clfs (line 6) | namespace clfs
type physical_lsn_information_t (line 11) | struct physical_lsn_information_t
type clfs::physical_lsn_information_t (line 24) | struct clfs::physical_lsn_information_t
FILE: resources/sdk/clfs/stream_id_information_t.hpp
type clfs (line 5) | namespace clfs
type clfs::stream_id_information_t (line 21) | struct clfs::stream_id_information_t
FILE: resources/sdk/clip/api.hpp
type clip (line 5) | namespace clip
FILE: resources/sdk/cls/archive_descriptor_t.hpp
type cls (line 6) | namespace cls
type archive_descriptor_t (line 11) | struct archive_descriptor_t
type cls::archive_descriptor_t (line 24) | struct cls::archive_descriptor_t
FILE: resources/sdk/cls/container_information_t.hpp
type cls (line 5) | namespace cls
type cls::container_information_t (line 31) | struct cls::container_information_t
FILE: resources/sdk/cls/context_mode_t.hpp
type cls (line 4) | namespace cls
type context_mode_t (line 9) | enum class context_mode_t : int32_t
FILE: resources/sdk/cls/information_t.hpp
type cls (line 7) | namespace cls
type information_t (line 12) | struct information_t
type cls::information_t (line 39) | struct cls::information_t
FILE: resources/sdk/cls/io_statistics_header_t.hpp
type cls (line 6) | namespace cls
type cls::io_statistics_header_t (line 26) | struct cls::io_statistics_header_t
FILE: resources/sdk/cls/io_statistics_t.hpp
type cls (line 6) | namespace cls
type cls::io_statistics_t (line 26) | struct cls::io_statistics_t
FILE: resources/sdk/cls/iostats_class_t.hpp
type cls (line 4) | namespace cls
type iostats_class_t (line 9) | enum class iostats_class_t : int32_t
FILE: resources/sdk/cls/log_information_class_t.hpp
type cls (line 4) | namespace cls
type log_information_class_t (line 9) | enum class log_information_class_t : int32_t
FILE: resources/sdk/cls/lsn_t.hpp
type cls (line 5) | namespace cls
type cls::lsn_t::u0_offset_t (line 37) | struct cls::lsn_t::u0_offset_t
FILE: resources/sdk/cls/scan_context_t.hpp
type nt (line 5) | namespace nt { struct file_object_t; }
type file_object_t (line 5) | struct file_object_t
type cls (line 8) | namespace cls
type container_information_t (line 10) | struct container_information_t
type scan_context_t (line 15) | struct scan_context_t
type cls::scan_context_t (line 32) | struct cls::scan_context_t
FILE: resources/sdk/cls/write_entry_t.hpp
type cls (line 5) | namespace cls
type cls::write_entry_t (line 22) | struct cls::write_entry_t
FILE: resources/sdk/cm/api.hpp
type cm (line 6) | namespace cm
type nt::key_value_full_information_t (line 4772) | struct nt::key_value_full_information_t
FILE: resources/sdk/cm/big_data_t.hpp
type cm (line 5) | namespace cm
type cm::big_data_t (line 23) | struct cm::big_data_t
FILE: resources/sdk/cm/cached_value_index_t.hpp
type cm (line 6) | namespace cm
type cm::cached_value_index_t (line 35) | struct cm::cached_value_index_t
FILE: resources/sdk/cm/cell_remap_block_t.hpp
type cm (line 5) | namespace cm
type cell_remap_block_t (line 10) | struct cell_remap_block_t
type cm::cell_remap_block_t (line 22) | struct cm::cell_remap_block_t
FILE: resources/sdk/cm/component_hash_t.hpp
type cm (line 5) | namespace cm
type cm::component_hash_t (line 21) | struct cm::component_hash_t
FILE: resources/sdk/cm/component_information_t.hpp
type cm (line 6) | namespace cm
type cm::component_information_t (line 25) | struct cm::component_information_t
FILE: resources/sdk/cm/dirty_vector_log_entry_t.hpp
type nt (line 5) | namespace nt { struct ethread_t; }
type ethread_t (line 5) | struct ethread_t
type cm (line 8) | namespace cm
type u12_raw_t (line 39) | struct u12_raw_t
type cm::dirty_vector_log_entry_t::u0_data_t::u4_dirty_vector_modified_context_t (line 72) | struct cm::dirty_vector_log_entry_t::u0_data_t::u4_dirty_vector_modified...
type cm::dirty_vector_log_entry_t::u0_data_t::u8_dirty_data_capture_context_t (line 73) | struct cm::dirty_vector_log_entry_t::u0_data_t::u8_dirty_data_capture_co...
type cm::dirty_vector_log_entry_t::u0_data_t::u12_raw_t (line 74) | struct cm::dirty_vector_log_entry_t::u0_data_t::u12_raw_t
type cm::dirty_vector_log_entry_t (line 76) | struct cm::dirty_vector_log_entry_t
FILE: resources/sdk/cm/dirty_vector_log_t.hpp
type cm (line 6) | namespace cm
type cm::dirty_vector_log_entry_t (line 13) | struct cm::dirty_vector_log_entry_t
type cm::dirty_vector_log_t (line 26) | struct cm::dirty_vector_log_t
FILE: resources/sdk/cm/dirty_vector_operation_t.hpp
type cm (line 4) | namespace cm
type dirty_vector_operation_t (line 9) | enum class dirty_vector_operation_t : int32_t
FILE: resources/sdk/cm/disk_geometry_device_data_t.hpp
type cm (line 5) | namespace cm
type cm::disk_geometry_device_data_t (line 24) | struct cm::disk_geometry_device_data_t
FILE: resources/sdk/cm/eisa_function_information_t.hpp
type cm (line 9) | namespace cm
type eisa_function_information_t (line 14) | struct eisa_function_information_t
type win::eisa_memory_configuration_t (line 16) | struct win::eisa_memory_configuration_t
type win::eisa_irq_configuration_t (line 17) | struct win::eisa_irq_configuration_t
type win::eisa_dma_configuration_t (line 18) | struct win::eisa_dma_configuration_t
type win::eisa_port_configuration_t (line 19) | struct win::eisa_port_configuration_t
type cm::eisa_function_information_t (line 42) | struct cm::eisa_function_information_t
FILE: resources/sdk/cm/eisa_slot_information_t.hpp
type cm (line 5) | namespace cm
type cm::eisa_slot_information_t (line 28) | struct cm::eisa_slot_information_t
FILE: resources/sdk/cm/error_control_type_t.hpp
type cm (line 4) | namespace cm
type error_control_type_t (line 9) | enum class error_control_type_t : int32_t
FILE: resources/sdk/cm/extended_parameter_t.hpp
type cm (line 5) | namespace cm
type cm::extended_parameter_t (line 27) | struct cm::extended_parameter_t
FILE: resources/sdk/cm/extended_parameter_type_t.hpp
type cm (line 4) | namespace cm
type extended_parameter_type_t (line 9) | enum class extended_parameter_type_t : int32_t
FILE: resources/sdk/cm/fast_leaf_hint_t.hpp
type cm (line 5) | namespace cm
type cm::fast_leaf_hint_t (line 22) | struct cm::fast_leaf_hint_t
FILE: resources/sdk/cm/floppy_device_data_t.hpp
type cm (line 5) | namespace cm
type cm::floppy_device_data_t (line 38) | struct cm::floppy_device_data_t
FILE: resources/sdk/cm/full_resource_descriptor_t.hpp
type cm (line 7) | namespace cm
type full_resource_descriptor_t (line 12) | struct full_resource_descriptor_t
type cm::full_resource_descriptor_t (line 25) | struct cm::full_resource_descriptor_t
FILE: resources/sdk/cm/hive_cache_oplock_event_type_t.hpp
type cm (line 4) | namespace cm
type hive_cache_oplock_event_type_t (line 9) | enum class hive_cache_oplock_event_type_t : int32_t
FILE: resources/sdk/cm/hive_cache_oplock_file_type_t.hpp
type cm (line 4) | namespace cm
type hive_cache_oplock_file_type_t (line 9) | enum class hive_cache_oplock_file_type_t : int32_t
FILE: resources/sdk/cm/index_hint_block_t.hpp
type cm (line 5) | namespace cm
type index_hint_block_t (line 10) | struct index_hint_block_t
type cm::index_hint_block_t (line 22) | struct cm::index_hint_block_t
FILE: resources/sdk/cm/index_t.hpp
type cm (line 7) | namespace cm
type index_t (line 12) | struct index_t
type cm::fast_leaf_hint_t (line 14) | struct cm::fast_leaf_hint_t
type cm::index_t (line 27) | struct cm::index_t
FILE: resources/sdk/cm/int13_drive_parameter_t.hpp
type cm (line 5) | namespace cm
type cm::int13_drive_parameter_t (line 25) | struct cm::int13_drive_parameter_t
FILE: resources/sdk/cm/intent_lock_t.hpp
type cm (line 5) | namespace cm
type kcb_uow_t (line 7) | struct kcb_uow_t
type intent_lock_t (line 12) | struct intent_lock_t
type cm::intent_lock_t (line 24) | struct cm::intent_lock_t
FILE: resources/sdk/cm/kcb_layer_info_t.hpp
type cm (line 5) | namespace cm
type kcb_layer_info_t (line 7) | struct kcb_layer_info_t
type key_control_block_t (line 8) | struct key_control_block_t
type kcb_layer_info_t (line 13) | struct kcb_layer_info_t
type cm::kcb_layer_info_t (line 27) | struct cm::kcb_layer_info_t
FILE: resources/sdk/cm/kcb_uow_t.hpp
type cmp (line 6) | namespace cmp { struct discard_and_replace_kcb_context_t; }
type discard_and_replace_kcb_context_t (line 6) | struct discard_and_replace_kcb_context_t
type cm (line 9) | namespace cm
type trans_t (line 11) | struct trans_t
type kcb_uow_t (line 12) | struct kcb_uow_t
type intent_lock_t (line 13) | struct intent_lock_t
type uow_set_sd_data_t (line 14) | struct uow_set_sd_data_t
type key_control_block_t (line 15) | struct key_control_block_t
type key_security_cache_t (line 16) | struct key_security_cache_t
type uow_set_value_key_data_t (line 17) | struct uow_set_value_key_data_t
type uow_set_value_list_data_t (line 18) | struct uow_set_value_list_data_t
type uow_key_state_modification_t (line 19) | struct uow_key_state_modification_t
type kcb_uow_t (line 24) | struct kcb_uow_t
type cm::kcb_uow_t (line 65) | struct cm::kcb_uow_t
FILE: resources/sdk/cm/key_body_t.hpp
type nt (line 5) | namespace nt { struct guid_t; }
type guid_t (line 5) | struct guid_t
type cm (line 8) | namespace cm
type notify_block_t (line 10) | struct notify_block_t
type key_control_block_t (line 11) | struct key_control_block_t
type key_body_t (line 16) | struct key_body_t
FILE: resources/sdk/cm/key_control_block_t.hpp
type nt (line 10) | namespace nt { struct hhive_t; }
type hhive_t (line 10) | struct hhive_t
type kthread_t (line 11) | struct kthread_t
type nt (line 11) | namespace nt { struct kthread_t; }
type hhive_t (line 10) | struct hhive_t
type kthread_t (line 11) | struct kthread_t
type cm (line 14) | namespace cm
type trans_t (line 16) | struct trans_t
type key_body_t (line 17) | struct key_body_t
type kcb_layer_info_t (line 18) | struct kcb_layer_info_t
type index_hint_block_t (line 19) | struct index_hint_block_t
type key_control_block_t (line 20) | struct key_control_block_t
type cm::key_body_t (line 57) | struct cm::key_body_t
type key_security_cache_t (line 21) | struct key_security_cache_t
type name_control_block_t (line 22) | struct name_control_block_t
type key_control_block_t (line 27) | struct key_control_block_t
type cm::key_body_t (line 57) | struct cm::key_body_t
FILE: resources/sdk/cm/key_hash_t.hpp
type nt (line 5) | namespace nt { struct hhive_t; }
type hhive_t (line 5) | struct hhive_t
type cm (line 8) | namespace cm
type key_hash_t (line 10) | struct key_hash_t
type key_hash_t (line 15) | struct key_hash_t
type cm::key_hash_t (line 29) | struct cm::key_hash_t
FILE: resources/sdk/cm/key_hash_table_entry_t.hpp
type nt (line 5) | namespace nt { struct kthread_t; }
type kthread_t (line 5) | struct kthread_t
type cm (line 8) | namespace cm
type key_hash_t (line 10) | struct key_hash_t
type key_hash_table_entry_t (line 15) | struct key_hash_table_entry_t
type cm::key_hash_table_entry_t (line 28) | struct cm::key_hash_table_entry_t
FILE: resources/sdk/cm/key_index_t.hpp
type cm (line 5) | namespace cm
type key_index_t (line 10) | struct key_index_t
type cm::key_index_t (line 23) | struct cm::key_index_t
FILE: resources/sdk/cm/key_node_t.hpp
type cm (line 7) | namespace cm
type key_node_t (line 12) | struct key_node_t
type cm::key_node_t (line 46) | struct cm::key_node_t
FILE: resources/sdk/cm/key_reference_t.hpp
type nt (line 4) | namespace nt { struct hhive_t; }
type hhive_t (line 4) | struct hhive_t
type cm (line 7) | namespace cm
type key_reference_t (line 12) | struct key_reference_t
type cm::key_reference_t (line 24) | struct cm::key_reference_t
FILE: resources/sdk/cm/key_security_cache_entry_t.hpp
type cm (line 5) | namespace cm
type key_security_cache_t (line 7) | struct key_security_cache_t
type key_security_cache_entry_t (line 12) | struct key_security_cache_entry_t
type cm::key_security_cache_entry_t (line 24) | struct cm::key_security_cache_entry_t
FILE: resources/sdk/cm/key_security_cache_t.hpp
type cm (line 6) | namespace cm
type key_security_cache_t (line 11) | struct key_security_cache_t
type cm::key_security_cache_t (line 27) | struct cm::key_security_cache_t
FILE: resources/sdk/cm/key_security_t.hpp
type cm (line 6) | namespace cm
type key_security_t (line 11) | struct key_security_t
type cm::key_security_t (line 27) | struct cm::key_security_t
FILE: resources/sdk/cm/key_value_t.hpp
type cm (line 5) | namespace cm
type key_value_t (line 10) | struct key_value_t
type cm::key_value_t (line 27) | struct cm::key_value_t
FILE: resources/sdk/cm/keyboard_device_data_t.hpp
type cm (line 5) | namespace cm
type cm::keyboard_device_data_t (line 25) | struct cm::keyboard_device_data_t
FILE: resources/sdk/cm/load_failure_type_t.hpp
type cm (line 4) | namespace cm
type load_failure_type_t (line 9) | enum class load_failure_type_t : int32_t
FILE: resources/sdk/cm/mca_pos_data_t.hpp
type cm (line 5) | namespace cm
type cm::mca_pos_data_t (line 25) | struct cm::mca_pos_data_t
FILE: resources/sdk/cm/monitor_device_data_t.hpp
type cm (line 5) | namespace cm
type cm::monitor_device_data_t (line 47) | struct cm::monitor_device_data_t
FILE: resources/sdk/cm/name_control_block_t.hpp
type cm (line 7) | namespace cm
type key_hash_t (line 9) | struct key_hash_t
type name_control_block_t (line 14) | struct name_control_block_t
type cm::name_control_block_t (line 31) | struct cm::name_control_block_t
FILE: resources/sdk/cm/name_hash_t.hpp
type cm (line 6) | namespace cm
type name_hash_t (line 8) | struct name_hash_t
type name_hash_t (line 13) | struct name_hash_t
type cm::name_hash_t (line 27) | struct cm::name_hash_t
FILE: resources/sdk/cm/notify_block_t.hpp
type cm (line 6) | namespace cm
type key_body_t (line 8) | struct key_body_t
type key_control_block_t (line 9) | struct key_control_block_t
type notify_block_t (line 14) | struct notify_block_t
type cm::notify_block_t (line 32) | struct cm::notify_block_t
FILE: resources/sdk/cm/parse_debug_info_t.hpp
type cm (line 5) | namespace cm
type key_control_block_t (line 7) | struct key_control_block_t
type cm::parse_debug_info_t::u0_failure_points_t (line 42) | struct cm::parse_debug_info_t::u0_failure_points_t
type cm::parse_debug_info_t (line 43) | struct cm::parse_debug_info_t
FILE: resources/sdk/cm/partial_resource_descriptor_t.hpp
type cm (line 5) | namespace cm
type u33_device_private_t (line 127) | struct u33_device_private_t
type u48_memory40_t (line 158) | struct u48_memory40_t
type u53_memory48_t (line 169) | struct u53_memory48_t
type u58_memory64_t (line 180) | struct u58_memory64_t
type cm::partial_resource_descriptor_t::u0_generic_t (line 229) | struct cm::partial_resource_descriptor_t::u0_generic_t
type cm::partial_resource_descriptor_t::u5_port_t (line 230) | struct cm::partial_resource_descriptor_t::u5_port_t
type cm::partial_resource_descriptor_t::u6_interrupt_t (line 231) | struct cm::partial_resource_descriptor_t::u6_interrupt_t
type cm::partial_resource_descriptor_t::u11_message_interrupt_t::u16_raw_t (line 232) | struct cm::partial_resource_descriptor_t::u11_message_interrupt_t::u16_r...
type cm::partial_resource_descriptor_t::u11_message_interrupt_t::u21_translated_t (line 233) | struct cm::partial_resource_descriptor_t::u11_message_interrupt_t::u21_t...
type cm::partial_resource_descriptor_t::u11_message_interrupt_t (line 234) | struct cm::partial_resource_descriptor_t::u11_message_interrupt_t
type cm::partial_resource_descriptor_t::u22_memory_t (line 235) | struct cm::partial_resource_descriptor_t::u22_memory_t
type cm::partial_resource_descriptor_t::u23_dma_t (line 236) | struct cm::partial_resource_descriptor_t::u23_dma_t
type cm::partial_resource_descriptor_t::u28_dma_v3_t (line 237) | struct cm::partial_resource_descriptor_t::u28_dma_v3_t
type cm::partial_resource_descriptor_t::u33_device_private_t (line 238) | struct cm::partial_resource_descriptor_t::u33_device_private_t
type cm::partial_resource_descriptor_t::u38_bus_number_t (line 239) | struct cm::partial_resource_descriptor_t::u38_bus_number_t
type cm::partial_resource_descriptor_t::u43_device_specific_data_t (line 240) | struct cm::partial_resource_descriptor_t::u43_device_specific_data_t
type cm::partial_resource_descriptor_t::u48_memory40_t (line 241) | struct cm::partial_resource_descriptor_t::u48_memory40_t
type cm::partial_resource_descriptor_t::u53_memory48_t (line 242) | struct cm::partial_resource_descriptor_t::u53_memory48_t
type cm::partial_resource_descriptor_t::u58_memory64_t (line 243) | struct cm::partial_resource_descriptor_t::u58_memory64_t
type cm::partial_resource_descriptor_t::u63_connection_t (line 244) | struct cm::partial_resource_descriptor_t::u63_connection_t
type cm::partial_resource_descriptor_t (line 245) | struct cm::partial_resource_descriptor_t
FILE: resources/sdk/cm/partial_resource_list_t.hpp
type cm (line 6) | namespace cm
type cm::partial_resource_descriptor_t (line 13) | struct cm::partial_resource_descriptor_t
type cm::partial_resource_list_t (line 27) | struct cm::partial_resource_list_t
FILE: resources/sdk/cm/path_hash_t.hpp
type cm (line 5) | namespace cm
type cm::path_hash_t (line 21) | struct cm::path_hash_t
FILE: resources/sdk/cm/pccard_device_data_t.hpp
type cm (line 5) | namespace cm
type pccard_device_data_t (line 10) | struct pccard_device_data_t
type cm::pccard_device_data_t (line 26) | struct cm::pccard_device_data_t
FILE: resources/sdk/cm/perf_counters_t.hpp
type cm (line 5) | namespace cm
type cm::perf_counters_t (line 31) | struct cm::perf_counters_t
FILE: resources/sdk/cm/pnp_bios_device_node_t.hpp
type cm (line 5) | namespace cm
type cm::pnp_bios_device_node_t (line 25) | struct cm::pnp_bios_device_node_t
FILE: resources/sdk/cm/pnp_bios_installation_check_t.hpp
type cm (line 5) | namespace cm
type cm::pnp_bios_installation_check_t (line 33) | struct cm::pnp_bios_installation_check_t
FILE: resources/sdk/cm/power_data_s_t.hpp
type cm (line 7) | namespace cm
type power_data_s_t (line 12) | struct power_data_s_t
type nt::device_power_state_t (line 22) | enum nt::device_power_state_t
type cm::power_data_s_t (line 30) | struct cm::power_data_s_t
FILE: resources/sdk/cm/resource_list_t.hpp
type cm (line 6) | namespace cm
type cm::full_resource_descriptor_t (l
Copy disabled (too large)
Download .json
Condensed preview — 40723 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (113,862K chars).
[
{
"path": ".gitignore",
"chars": 477,
"preview": "*.tlog\r\n*.obj\r\n*.log\r\n*.map\r\n.vs/\r\n*.recipe\r\n*.vcxproj.FileListAbsolute.txt\r\n*.pdb\r\nBuilds/\r\n*.tmp\r\nDvlErrLog.txt\r\n*.pch"
},
{
"path": "LICENSE",
"chars": 1066,
"preview": "MIT License\n\nCopyright (c) 2024 Can Bölük\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\n"
},
{
"path": "README.md",
"chars": 3381,
"preview": "# selene\r\n\r\n[Hypervisor detection methods](https://github.com/can1357/hvdetecc/) I released yesterday were dependent on "
},
{
"path": "apollo-crt/apollo-crt.cpp",
"chars": 3432,
"preview": "// Disable CRT version broadcasting.\r\n//\r\n#ifndef MUST_MATCH\r\n\t#define MUST_MATCH(x) \r\n#endif\r\n\r\n#include <stdint.h>\r\n#i"
},
{
"path": "apollo-crt/apollo-crt.sln",
"chars": 905,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\nVisualStudioVersion = 16.0.3"
},
{
"path": "apollo-crt/apollo-crt.vcxproj",
"chars": 4192,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "apollo-crt/apollo-crt.vcxproj.user",
"chars": 166,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"Current\" xmlns=\"http://schemas.microsoft.com/developer/m"
},
{
"path": "apollo-linker/linker.cpp",
"chars": 46300,
"preview": "#define _CRT_SECURE_NO_WARNINGS\r\n#define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING\r\n#define NOMINMAX\r\n\r\n#include"
},
{
"path": "apollo-linker/linker.sln",
"chars": 2919,
"preview": "Microsoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 17\r\nVisualStudioVersion = 17.6.3382"
},
{
"path": "apollo-linker/linker.vcxproj",
"chars": 10101,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "apollo-linker/linker.vcxproj.filters",
"chars": 6025,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "apollo-linker/object/code_gen.cpp",
"chars": 3296,
"preview": "#include <algorithm>\r\n#include <llvm-c/Core.h>\r\n#include <llvm-c/BitWriter.h>\r\n#include <llvm-c/BitReader.h>\r\n#include \""
},
{
"path": "apollo-linker/object/collection.cpp",
"chars": 25389,
"preview": "#include <xstd/narrow_cast.hpp>\r\n#include \"collection.hpp\"\r\n#include \"comdat.hpp\"\r\n#include <pdblib/dbi.hpp>\r\n#include <"
},
{
"path": "apollo-linker/object/collection.hpp",
"chars": 3424,
"preview": "#pragma once\r\n#include <list>\r\n#include <unordered_set>\r\n#include <unordered_map>\r\n#include <functional>\r\n#include <file"
},
{
"path": "apollo-linker/object/comdat.cpp",
"chars": 2595,
"preview": "#include \"comdat.hpp\"\r\n\r\nnamespace linker\r\n{\r\n\t// Makes sure the duplicated public symbols are both valid COMDATs that a"
},
{
"path": "apollo-linker/object/comdat.hpp",
"chars": 421,
"preview": "#pragma once\r\n#include \"primitives.hpp\"\r\n#include \"reference_counting.hpp\"\r\n\r\nnamespace linker\r\n{\r\n\t// Makes sure the du"
},
{
"path": "apollo-linker/object/opt_ref.cpp",
"chars": 3317,
"preview": "#include <algorithm>\r\n#include \"collection.hpp\"\r\n\r\nnamespace linker\r\n{\r\n\t// Eliminates contents of the objects that are "
},
{
"path": "apollo-linker/object/primitives.cpp",
"chars": 16537,
"preview": "#include \"primitives.hpp\"\r\n#include \"../utility/argparse.hpp\"\r\n#include <coff/import_library.hpp>\r\n#include <xstd/narrow"
},
{
"path": "apollo-linker/object/primitives.hpp",
"chars": 13346,
"preview": "#pragma once\r\n#include <memory>\r\n#include <string_view>\r\n#include <unordered_map>\r\n#include <unordered_set>\r\n#include <a"
},
{
"path": "apollo-linker/object/reference_counting.hpp",
"chars": 7440,
"preview": "#pragma once\r\n#include <atomic>\r\n#include <memory>\r\n#include <type_traits>\r\n#include <utility>\r\n#include <xstd/assert.hp"
},
{
"path": "apollo-linker/transform/attribute_discovery.cpp",
"chars": 4419,
"preview": "#include \"attribute_discovery.hpp\"\r\n#include \"../utility/llvm.hpp\"\r\n\r\n#include <xstd/random.hpp>\r\n#include <llvm-c/Analy"
},
{
"path": "apollo-linker/transform/attribute_discovery.hpp",
"chars": 223,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Discovers custom-linker attribu"
},
{
"path": "apollo-linker/transform/attribute_normalization.cpp",
"chars": 6246,
"preview": "#include \"attribute_normalization.hpp\"\r\n\r\n#include <xstd/random.hpp>\r\n#include <llvm-c/Analysis.h>\r\n#include <llvm-c/Cor"
},
{
"path": "apollo-linker/transform/attribute_normalization.hpp",
"chars": 437,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Gets active feature set for the"
},
{
"path": "apollo-linker/transform/auto_mode_switch.cpp",
"chars": 2813,
"preview": "#include \"auto_mode_switch.hpp\"\r\n#include \"../utility/llvm.hpp\"\r\n#include <xstd/random.hpp>\r\n\r\n#include <llvm-c/Analysis"
},
{
"path": "apollo-linker/transform/auto_mode_switch.hpp",
"chars": 208,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Automatically inserts checks fo"
},
{
"path": "apollo-linker/transform/cleanup.cpp",
"chars": 6683,
"preview": "#include \"cleanup.hpp\"\r\n#include \"../utility/llvm.hpp\"\r\n#include <xstd/random.hpp>\r\n\r\n#include <llvm-c/Analysis.h>\r\n#inc"
},
{
"path": "apollo-linker/transform/cleanup.hpp",
"chars": 151,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Cleans up codegen.\r\n\t//\r\n\tvoid "
},
{
"path": "apollo-linker/transform/dyn_relocs.cpp",
"chars": 8172,
"preview": "#include <unordered_set>\r\n#include \"dyn_relocs.hpp\"\r\n#include \"../utility/llvm.hpp\"\r\n\r\ntemplate<typename F>\r\nstatic void"
},
{
"path": "apollo-linker/transform/dyn_relocs.hpp",
"chars": 351,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Handles invocations of builtins"
},
{
"path": "apollo-linker/transform/lazy_import.cpp",
"chars": 7441,
"preview": "#include \"lazy_import.hpp\"\r\n#include \"../utility/llvm.hpp\"\r\n#include <xstd/random.hpp>\r\n\r\n#include <llvm-c/Analysis.h>\r\n"
},
{
"path": "apollo-linker/transform/lazy_import.hpp",
"chars": 203,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Converts invocations of DLL imp"
},
{
"path": "apollo-linker/transform/logo.cpp",
"chars": 3354,
"preview": "#include \"logo.hpp\"\r\n#include <xstd/text.hpp>\r\n\r\n#pragma GCC diagnostic ignored \"-Wbraced-scalar-init\"\r\nnamespace linker"
},
{
"path": "apollo-linker/transform/logo.hpp",
"chars": 199,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Appends the logo to the entry p"
},
{
"path": "apollo-linker/transform/lower_xrefs.cpp",
"chars": 2935,
"preview": "#include \"lower_xrefs.hpp\"\r\n#include \"../utility/llvm.hpp\"\r\n#include <xstd/random.hpp>\r\n\r\n#include <llvm-c/Analysis.h>\r\n"
},
{
"path": "apollo-linker/transform/lower_xrefs.hpp",
"chars": 167,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Lowers xrefs to absolute movs.\r"
},
{
"path": "apollo-linker/transform/mixed_bool_arith.cpp",
"chars": 10788,
"preview": "#include \"mixed_bool_arith.hpp\"\r\n#include \"../utility/llvm.hpp\"\r\n\r\n#include <xstd/random.hpp>\r\n#include <llvm-c/Analysis"
},
{
"path": "apollo-linker/transform/mixed_bool_arith.hpp",
"chars": 209,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Obfuscates code by mixing boole"
},
{
"path": "apollo-linker/transform/profiler.cpp",
"chars": 6378,
"preview": "#include \"profiler.hpp\"\r\n#include <array>\r\n#include <llvm-c/Analysis.h>\r\n#include <llvm-c/Core.h>\r\n#include <llvm-c/Targ"
},
{
"path": "apollo-linker/transform/profiler.hpp",
"chars": 194,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Instruments large functions aro"
},
{
"path": "apollo-linker/transform/shadow_return.cpp",
"chars": 5627,
"preview": "#include \"shadow_return.hpp\"\r\n#include <span>\r\n\r\n// Makes sure all return instructions clear the return pointer before r"
},
{
"path": "apollo-linker/transform/shadow_return.hpp",
"chars": 216,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Makes sure all return instructi"
},
{
"path": "apollo-linker/transform/split_basic_blocks.cpp",
"chars": 15360,
"preview": "#include \"split_basic_blocks.hpp\"\r\n#include <xedpp.hpp>\r\n#include <xstd/algorithm.hpp>\r\n#include <xstd/bitwise.hpp>\r\n\r\n/"
},
{
"path": "apollo-linker/transform/split_basic_blocks.hpp",
"chars": 251,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Splits basic blocks in every se"
},
{
"path": "apollo-linker/transform/string_conversion.cpp",
"chars": 20820,
"preview": "#include \"string_conversion.hpp\"\r\n\r\n#include <llvm-c/Analysis.h>\r\n#include <llvm-c/Core.h>\r\n#include <llvm-c/Target.h>\r\n"
},
{
"path": "apollo-linker/transform/string_conversion.hpp",
"chars": 265,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Attempts to encrypt every use o"
},
{
"path": "apollo-linker/transform/syscall_lifter.cpp",
"chars": 4472,
"preview": "#include \"syscall_lifter.hpp\"\r\n#include \"../utility/llvm.hpp\"\r\n\r\n#include <xstd/random.hpp>\r\n#include <llvm-c/Analysis.h"
},
{
"path": "apollo-linker/transform/syscall_lifter.hpp",
"chars": 189,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Lifts calls into SDK functions "
},
{
"path": "apollo-linker/transform/virtualization.cpp",
"chars": 47167,
"preview": "#include \"virtualization.hpp\"\r\n#include \"../utility/llvm.hpp\"\r\n\r\n#include <xstd/random.hpp>\r\n#include <llvm-c/Analysis.h"
},
{
"path": "apollo-linker/transform/virtualization.hpp",
"chars": 245,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n\r\nnamespace linker::transform\r\n{\r\n\t// Converts functions tagged with "
},
{
"path": "apollo-linker/utility/argparse.hpp",
"chars": 2949,
"preview": "#pragma once\r\n#include <vector>\r\n#include <unordered_map>\r\n#include <string_view>\r\n#include <ctype.h>\r\n#include <algorit"
},
{
"path": "apollo-linker/utility/liblto.hpp",
"chars": 4087,
"preview": "#pragma once\r\n#include <filesystem>\r\n#include <xstd/logger.hpp>\r\n#include <xstd/file_view.hpp>\r\n#include <llvm-c/lto.h>\r"
},
{
"path": "apollo-linker/utility/llvm.hpp",
"chars": 22468,
"preview": "#pragma once\r\n#include \"../object/collection.hpp\"\r\n#include <llvm-c/Core.h>\r\n#include <llvm-c/Target.h>\r\n#include <tuple"
},
{
"path": "apollo-linker/utility/pdb.hpp",
"chars": 4510,
"preview": "#pragma once\r\n#include <vector>\r\n#include <tuple>\r\n#include <filesystem>\r\n#include <memory>\r\n#include <string>\r\n#include"
},
{
"path": "apollo-linker/utility/undname.hpp",
"chars": 838,
"preview": "#pragma once\r\n#include <string>\r\n#include <string_view>\r\n#pragma comment(lib, \"dbghelp.lib\")\r\n\r\n#define UNDNAME_NO_MS_KE"
},
{
"path": "apollo-toolset/Config.xml",
"chars": 4437,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n\r\n\r\n<Rule Name=\"Apollo\" PageTemplate=\"generic\" DisplayName=\"Apollo\" SwitchPrefi"
},
{
"path": "apollo-toolset/Toolset.props",
"chars": 3398,
"preview": "<!--\r\n***********************************************************************************************\r\nToolset.props\r\n\r"
},
{
"path": "apollo-toolset/Toolset.targets",
"chars": 1247,
"preview": "\r\n<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n <Import Project=\"$(MSBuildThisFileDirectory)I"
},
{
"path": "apollo-toolset/install.bat",
"chars": 848,
"preview": "@echo off\r\n\r\nmklink /d \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\MSBuild\\Microsoft\\VC\\v160\\Platfor"
},
{
"path": "apollo-vm/apollo-vm.cpp",
"chars": 28368,
"preview": "// Disable CRT version broadcasting.\r\n//\r\n#ifndef MUST_MATCH\r\n\t#define MUST_MATCH(x) \r\n#endif\r\n\r\n#include <stdint.h>\r\n#i"
},
{
"path": "apollo-vm/apollo-vm.sln",
"chars": 903,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\nVisualStudioVersion = 16.0.3"
},
{
"path": "apollo-vm/apollo-vm.vcxproj",
"chars": 4155,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "apollo-vm/apollo-vm.vcxproj.filters",
"chars": 215,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "apollo-vm/apollo-vm.vcxproj.user",
"chars": 166,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"Current\" xmlns=\"http://schemas.microsoft.com/developer/m"
},
{
"path": "flash/flash.sln",
"chars": 1846,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 17\r\nVisualStudioVersion = 17.1.3"
},
{
"path": "flash/flash.vcxproj",
"chars": 8420,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "flash/flash.vcxproj.filters",
"chars": 3714,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "flash/includes/flash/dumper.hpp",
"chars": 292,
"preview": "#pragma once\r\n#include <xstd/result.hpp>\r\n#include <vector>\r\n#include <span>\r\n\r\nnamespace flash\r\n{\r\n\t// Given a range of"
},
{
"path": "flash/includes/flash/engine.hpp",
"chars": 2392,
"preview": "#pragma once\r\n#include <xstd/intrinsics.hpp>\r\n#include <span>\r\n#include <string_view>\r\n#include <unordered_map>\r\n#includ"
},
{
"path": "flash/includes/flash/format.hpp",
"chars": 2160,
"preview": "#pragma once\r\n#include <xstd/text.hpp>\r\n#include <xstd/type_helpers.hpp>\r\n#include <string_view>\r\n\r\n// Self containing d"
},
{
"path": "flash/includes/flash/func_builder.hpp",
"chars": 4461,
"preview": "#pragma once\r\n#include <flash/shellcode.hpp>\r\n\r\nnamespace flash {\r\n\t// Monotonic counter for generating unique tags.\r\n\t/"
},
{
"path": "flash/includes/flash/hex.hpp",
"chars": 1140,
"preview": "#pragma once\r\n#include <vector>\r\n#include <string_view>\r\n#include <xstd/hexdump.hpp>\r\n\r\nnamespace flash\r\n{\r\n\t// Hex to v"
},
{
"path": "flash/includes/flash/image.hpp",
"chars": 2217,
"preview": "#pragma once\r\n#include <vector>\r\n#include <algorithm>\r\n#include <span>\r\n#include <map>\r\n#include <flash/section.hpp>\r\n#i"
},
{
"path": "flash/includes/flash/rule.hpp",
"chars": 17399,
"preview": "#pragma once\r\n#include <xstd/intrinsics.hpp>\r\n#include <span>\r\n#include <string>\r\n#include <memory>\r\n#include <vector>\r\n"
},
{
"path": "flash/includes/flash/rule_filters.hpp",
"chars": 2978,
"preview": "#pragma once\r\n#include <flash/rule.hpp>\r\n\r\nnamespace flash\r\n{\r\n\t// Alignment filter.\r\n\t//\r\n\tstruct aligned final : rule\r"
},
{
"path": "flash/includes/flash/rule_instruction.hpp",
"chars": 1522,
"preview": "#pragma once\r\n#include <flash/rule.hpp>\r\n#include <xedpp.hpp>\r\n\r\nnamespace flash\r\n{\r\n\tstruct instruction final : rule\r\n\t"
},
{
"path": "flash/includes/flash/rule_pattern.hpp",
"chars": 1751,
"preview": "#pragma once\r\n#include <xstd/intrinsics.hpp>\r\n#include <span>\r\n#include <vector>\r\n#include <string_view>\r\n#include <flas"
},
{
"path": "flash/includes/flash/section.hpp",
"chars": 1839,
"preview": "#pragma once\r\n#include <xstd/intrinsics.hpp>\r\n#include <xstd/type_helpers.hpp>\r\n#include <memory>\r\n#include <vector>\r\n#i"
},
{
"path": "flash/includes/flash/shellcode.hpp",
"chars": 7369,
"preview": "#pragma once\r\n#include <string>\r\n#include <vector>\r\n#include <optional>\r\n#include <tuple>\r\n#include <xedpp.hpp>\r\n#includ"
},
{
"path": "flash/includes/flash/simd.hpp",
"chars": 8362,
"preview": "#pragma once\r\n#include <xstd/intrinsics.hpp>\r\n#include <xstd/type_helpers.hpp>\r\n#include <xstd/xvector.hpp>\r\n#include <s"
},
{
"path": "flash/includes/flash/vcpu.hpp",
"chars": 24780,
"preview": "#pragma once\r\n#include <xedpp.hpp>\r\n#include <optional>\r\n#include <xstd/object_pool.hpp>\r\n#include <flash/image.hpp>\r\n#i"
},
{
"path": "flash/main.cpp",
"chars": 16802,
"preview": "#include <span>\r\n#include <xstd/intrinsics.hpp>\r\n#include <xstd/formatting.hpp>\r\n#include <xstd/file.hpp>\r\n#include <xst"
},
{
"path": "flash/src/dumper.cpp",
"chars": 3676,
"preview": "#include <flash/dumper.hpp>\r\n#include <nt/image.hpp>\r\n\r\nnamespace flash\r\n{\r\n\t// Given a range of image data and the stat"
},
{
"path": "flash/src/func_builder.cpp",
"chars": 13855,
"preview": "#include <flash/func_builder.hpp>\r\n\r\nnamespace flash {\r\n\txstd::result<std::vector<uint8_t>> func_builder::build( uint32_"
},
{
"path": "flash/src/image.cpp",
"chars": 7537,
"preview": "#include <flash/image.hpp>\r\n#include <flash/deobf.hpp>\r\n#include <nt/image.hpp>\r\n\r\nnamespace flash\r\n{\r\n\t// Converts from"
},
{
"path": "flash/src/interface.cpp",
"chars": 68786,
"preview": "#include <flash/engine.hpp>\r\n#include <flash/section.hpp>\r\n#include <flash/rule_instruction.hpp>\r\n#include <flash/rule_p"
},
{
"path": "flash/src/rule_instruction.cpp",
"chars": 5932,
"preview": "#include <flash/rule_instruction.hpp>\r\n#include <flash/section.hpp>\r\n#include <flash/simd.hpp>\r\n#include <flash/hex.hpp>"
},
{
"path": "flash/src/rule_pattern.cpp",
"chars": 3353,
"preview": "#include <flash/rule_pattern.hpp>\r\n#include <flash/image.hpp>\r\n#include <flash/simd.hpp>\r\n\r\nnamespace flash\r\n{\r\n\t// Cons"
},
{
"path": "flash/src/section.cpp",
"chars": 10817,
"preview": "#include <flash/section.hpp>\r\n#include <xstd/spinlock.hpp>\r\n#include <xstd/xvector.hpp>\r\n#include <flash/image.hpp>\r\n#in"
},
{
"path": "flash/src/serializer.cpp",
"chars": 1980,
"preview": "#include <flash/engine.hpp>\r\n#include <flash/format.hpp>\r\n\r\nstd::vector<uint8_t> flash::results::serialize() const\r\n{\r\n\t"
},
{
"path": "flash/src/shellcode.cpp",
"chars": 28486,
"preview": "#include <flash/shellcode.hpp>\r\n#include <flash/image.hpp>\r\n#include <xstd/robin_hood.hpp>\r\n\r\nnamespace flash\r\n{\r\n\t// Re"
},
{
"path": "flash/src/vcpu.cpp",
"chars": 52259,
"preview": "#include <flash/vcpu.hpp>\r\n#include <xstd/narrow_cast.hpp>\r\n\r\nnamespace flash::vm {\r\n\t// Semantic dispatch table.\r\n\t//\r\n"
},
{
"path": "ida_symbols.py",
"chars": 326,
"preview": "import json\r\nimport idaapi\r\n\r\nwith open(idaapi.get_input_file_path() + \".json\") as json_file:\r\n data = json.load(json"
},
{
"path": "pdblib/.gitignore",
"chars": 20,
"preview": "\r\n.vs/\r\n*.user\r\nx64/"
},
{
"path": "pdblib/CMakeLists.txt",
"chars": 570,
"preview": "cmake_minimum_required(VERSION 3.17)\r\nproject(pdblib)\r\n\r\n# Header only interface.\r\nadd_library(${PROJECT_NAME} INTERFACE"
},
{
"path": "pdblib/PdbLib.sln",
"chars": 897,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\nVisualStudioVersion = 16.0.3"
},
{
"path": "pdblib/PdbLib.vcxproj",
"chars": 4852,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "pdblib/PdbLib.vcxproj.filters",
"chars": 918,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "pdblib/README.md",
"chars": 7,
"preview": "PdbLib\n"
},
{
"path": "pdblib/includes/pdblib/cvconsts.h",
"chars": 111874,
"preview": "/////////////////////////////////////////////////////////////////////////////// \r\n// \r\n// Copyright (c) 2015 Microsoft C"
},
{
"path": "pdblib/includes/pdblib/cvinfo.h",
"chars": 184633,
"preview": "/////////////////////////////////////////////////////////////////////////////// \r\n// \r\n// Copyright (c) 2015 Microsoft C"
},
{
"path": "pdblib/includes/pdblib/dbi.hpp",
"chars": 23760,
"preview": "#pragma once\r\n#include <tuple>\r\n#include <vector>\r\n#include <stdint.h>\r\n#include <cstring>\r\n#include <algorithm>\r\n#inclu"
},
{
"path": "pdblib/includes/pdblib/msf.hpp",
"chars": 13361,
"preview": "#pragma once\r\n#include <stdint.h>\r\n#include <iterator>\r\n#include <xstd/narrow_cast.hpp>\r\n#include <xstd/bitwise.hpp>\r\n#i"
},
{
"path": "pdblib/includes/pdblib/pdb.hpp",
"chars": 64559,
"preview": "#pragma once\r\n#include <string>\r\n#include <string_view>\r\n#include <functional>\r\n#include <variant>\r\n#include <numeric>\r\n"
},
{
"path": "resources/sdk/acpi/api.hpp",
"chars": 521,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/api.start.hpp\"\r\nnamespace acpi\r\n{\r\n // [AcpiRo"
},
{
"path": "resources/sdk/acpi/cached_table_t.hpp",
"chars": 1344,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n#include \"../nt/description_header_t.hpp\"\r\n\r\n#include \"magic/cached"
},
{
"path": "resources/sdk/acpi/debugging_device_in_use_t.hpp",
"chars": 1292,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/debugging_device_in_use_t.start.hpp\"\r\nnamespace a"
},
{
"path": "resources/sdk/acpi/device_information_output_buffer_t.hpp",
"chars": 2255,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/device_information_output_buffer_t.start.hpp\"\r\nna"
},
{
"path": "resources/sdk/acpi/enum_child_t.hpp",
"chars": 936,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/enum_child_t.start.hpp\"\r\nnamespace acpi\r\n{\r\n /"
},
{
"path": "resources/sdk/acpi/enum_children_input_buffer_t.hpp",
"chars": 1112,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/enum_children_input_buffer_t.start.hpp\"\r\nnamespac"
},
{
"path": "resources/sdk/acpi/enum_children_output_buffer_t.hpp",
"chars": 1349,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n#include \"enum_child_t.hpp\"\r\n\r\n#include \"magic/enum_children_output"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_complex_v1_ex_t.hpp",
"chars": 1624,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n#include \"method_argument_v1_t.hpp\"\r\n\r\n#include \"magic/eval_input_b"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_complex_v1_t.hpp",
"chars": 1806,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n#include \"method_argument_v1_t.hpp\"\r\n\r\n#include \"magic/eval_input_b"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_complex_v2_ex_t.hpp",
"chars": 1624,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n#include \"method_argument_v2_t.hpp\"\r\n\r\n#include \"magic/eval_input_b"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_complex_v2_t.hpp",
"chars": 1806,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n#include \"method_argument_v2_t.hpp\"\r\n\r\n#include \"magic/eval_input_b"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_simple_integer_v1_ex_t.hpp",
"chars": 1196,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_simple_integer_v1_ex_t.start.hp"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_simple_integer_v1_t.hpp",
"chars": 1325,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_simple_integer_v1_t.start.hpp\"\r"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_simple_integer_v2_ex_t.hpp",
"chars": 1196,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_simple_integer_v2_ex_t.start.hp"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_simple_integer_v2_t.hpp",
"chars": 1325,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_simple_integer_v2_t.start.hpp\"\r"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_simple_string_v1_ex_t.hpp",
"chars": 1243,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_simple_string_v1_ex_t.start.hpp"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_simple_string_v1_t.hpp",
"chars": 1405,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_simple_string_v1_t.start.hpp\"\r\n"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_simple_string_v2_ex_t.hpp",
"chars": 1243,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_simple_string_v2_ex_t.start.hpp"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_simple_string_v2_t.hpp",
"chars": 1405,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_simple_string_v2_t.start.hpp\"\r\n"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_v1_ex_t.hpp",
"chars": 965,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_v1_ex_t.start.hpp\"\r\nnamespace a"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_v1_t.hpp",
"chars": 1139,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_v1_t.start.hpp\"\r\nnamespace acpi"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_v2_ex_t.hpp",
"chars": 965,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_v2_ex_t.start.hpp\"\r\nnamespace a"
},
{
"path": "resources/sdk/acpi/eval_input_buffer_v2_t.hpp",
"chars": 1139,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/eval_input_buffer_v2_t.start.hpp\"\r\nnamespace acpi"
},
{
"path": "resources/sdk/acpi/eval_output_buffer_v1_t.hpp",
"chars": 1391,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n#include \"method_argument_v1_t.hpp\"\r\n\r\n#include \"magic/eval_output_"
},
{
"path": "resources/sdk/acpi/eval_output_buffer_v2_t.hpp",
"chars": 1391,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n#include \"method_argument_v2_t.hpp\"\r\n\r\n#include \"magic/eval_output_"
},
{
"path": "resources/sdk/acpi/get_device_specific_data_t.hpp",
"chars": 1285,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n#include \"../nt/guid_t.hpp\"\r\n\r\n#include \"magic/get_device_specific_"
},
{
"path": "resources/sdk/acpi/interface_standard2_t.hpp",
"chars": 3582,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n#include \"../nt/kinterrupt_mode_t.hpp\"\r\n\r\n#include \"magic/interface"
},
{
"path": "resources/sdk/acpi/interface_standard_t.hpp",
"chars": 4502,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n#include \"../nt/kinterrupt_mode_t.hpp\"\r\n\r\nnamespace nt { struct dev"
},
{
"path": "resources/sdk/acpi/magic/api.end.hpp",
"chars": 12,
"preview": "#undef _m0\r\n"
},
{
"path": "resources/sdk/acpi/magic/api.start.hpp",
"chars": 194,
"preview": "#if !IN_PARSER\r\n#define _m0(...) _SDK_MAGIC_LINK(_SDK_ESCAPE(sdk::unknown_ptr), \"$AcpiRootPdo$ntoskrnl.exe\", 0xc507f0, 0"
},
{
"path": "resources/sdk/acpi/magic/cached_table_t.end.hpp",
"chars": 39,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n"
},
{
"path": "resources/sdk/acpi/magic/cached_table_t.start.hpp",
"chars": 512,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_MAGIC_PROPERTY(_SDK_ESCAPE(nt::list_entry_t), \"_ACPI_CACHED_TABLE.Links\", links, 0x0, "
},
{
"path": "resources/sdk/acpi/magic/debugging_device_in_use_t.end.hpp",
"chars": 26,
"preview": "#undef _m00\r\n#undef _m01\r\n"
},
{
"path": "resources/sdk/acpi/magic/debugging_device_in_use_t.start.hpp",
"chars": 403,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_DEBUGGING_DEVICE_IN_USE.NameSpacePathLen"
},
{
"path": "resources/sdk/acpi/magic/device_information_output_buffer_t.end.hpp",
"chars": 195,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n#undef _m04\r\n#undef _m05\r\n#undef _m06\r\n#undef _m07\r\n#undef _m08\r\n#un"
},
{
"path": "resources/sdk/acpi/magic/device_information_output_buffer_t.start.hpp",
"chars": 2853,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_DEVICE_INFORMATION_OUTPUT_BUFFER.Signatu"
},
{
"path": "resources/sdk/acpi/magic/enum_child_t.end.hpp",
"chars": 39,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n"
},
{
"path": "resources/sdk/acpi/magic/enum_child_t.start.hpp",
"chars": 476,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_ENUM_CHILD.Flags\", flags, 0x0, 0x20, tru"
},
{
"path": "resources/sdk/acpi/magic/enum_children_input_buffer_t.end.hpp",
"chars": 52,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n"
},
{
"path": "resources/sdk/acpi/magic/enum_children_input_buffer_t.start.hpp",
"chars": 690,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_ENUM_CHILDREN_INPUT_BUFFER.Signature\", s"
},
{
"path": "resources/sdk/acpi/magic/enum_children_output_buffer_t.end.hpp",
"chars": 39,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n"
},
{
"path": "resources/sdk/acpi/magic/enum_children_output_buffer_t.start.hpp",
"chars": 578,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_ENUM_CHILDREN_OUTPUT_BUFFER.Signature\", "
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_complex_v1_ex_t.end.hpp",
"chars": 65,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n#undef _m04\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_complex_v1_ex_t.start.hpp",
"chars": 943,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V1_EX.Signatur"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_complex_v1_t.end.hpp",
"chars": 78,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n#undef _m04\r\n#undef _m05\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_complex_v1_t.start.hpp",
"chars": 1115,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V1.Signature\","
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_complex_v2_ex_t.end.hpp",
"chars": 65,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n#undef _m04\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_complex_v2_ex_t.start.hpp",
"chars": 943,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V2_EX.Signatur"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_complex_v2_t.end.hpp",
"chars": 78,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n#undef _m04\r\n#undef _m05\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_complex_v2_t.start.hpp",
"chars": 1115,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_COMPLEX_V2.Signature\","
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_integer_v1_ex_t.end.hpp",
"chars": 39,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_integer_v1_ex_t.start.hpp",
"chars": 594,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V1_EX.S"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_integer_v1_t.end.hpp",
"chars": 52,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_integer_v1_t.start.hpp",
"chars": 780,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V1.Sign"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_integer_v2_ex_t.end.hpp",
"chars": 39,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_integer_v2_ex_t.start.hpp",
"chars": 594,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V2_EX.S"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_integer_v2_t.end.hpp",
"chars": 52,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_integer_v2_t.start.hpp",
"chars": 781,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_V2.Sign"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_string_v1_ex_t.end.hpp",
"chars": 52,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_string_v1_ex_t.start.hpp",
"chars": 771,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V1_EX.Si"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_string_v1_t.end.hpp",
"chars": 65,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n#undef _m04\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_string_v1_t.start.hpp",
"chars": 953,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V1.Signa"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_string_v2_ex_t.end.hpp",
"chars": 52,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_string_v2_ex_t.start.hpp",
"chars": 771,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V2_EX.Si"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_string_v2_t.end.hpp",
"chars": 65,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n#undef _m04\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_simple_string_v2_t.start.hpp",
"chars": 951,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_V2.Signa"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_v1_ex_t.end.hpp",
"chars": 26,
"preview": "#undef _m00\r\n#undef _m01\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_v1_ex_t.start.hpp",
"chars": 370,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_V1_EX.Signature\", sign"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_v1_t.end.hpp",
"chars": 39,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_v1_t.start.hpp",
"chars": 547,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_V1.Signature\", signatu"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_v2_ex_t.end.hpp",
"chars": 26,
"preview": "#undef _m00\r\n#undef _m01\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_v2_ex_t.start.hpp",
"chars": 371,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_V2_EX.Signature\", sign"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_v2_t.end.hpp",
"chars": 39,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_input_buffer_v2_t.start.hpp",
"chars": 547,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_INPUT_BUFFER_V2.Signature\", signatu"
},
{
"path": "resources/sdk/acpi/magic/eval_output_buffer_v1_t.end.hpp",
"chars": 52,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_output_buffer_v1_t.start.hpp",
"chars": 700,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_OUTPUT_BUFFER_V1.Signature\", signat"
},
{
"path": "resources/sdk/acpi/magic/eval_output_buffer_v2_t.end.hpp",
"chars": 52,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n"
},
{
"path": "resources/sdk/acpi/magic/eval_output_buffer_v2_t.start.hpp",
"chars": 700,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_EVAL_OUTPUT_BUFFER_V2.Signature\", signat"
},
{
"path": "resources/sdk/acpi/magic/get_device_specific_data_t.end.hpp",
"chars": 52,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n"
},
{
"path": "resources/sdk/acpi/magic/get_device_specific_data_t.start.hpp",
"chars": 733,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_GET_DEVICE_SPECIFIC_DATA.Signature\", sig"
},
{
"path": "resources/sdk/acpi/magic/interface_standard2_t.end.hpp",
"chars": 156,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n#undef _m04\r\n#undef _m05\r\n#undef _m06\r\n#undef _m07\r\n#undef _m08\r\n#un"
},
{
"path": "resources/sdk/acpi/magic/interface_standard2_t.start.hpp",
"chars": 2486,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_MAGIC_PROPERTY(_SDK_ESCAPE(uint16_t), \"ACPI_INTERFACE_STANDARD2.Size\", size, 0x0, 0x10"
},
{
"path": "resources/sdk/acpi/magic/interface_standard_t.end.hpp",
"chars": 156,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n#undef _m04\r\n#undef _m05\r\n#undef _m06\r\n#undef _m07\r\n#undef _m08\r\n#un"
},
{
"path": "resources/sdk/acpi/magic/interface_standard_t.start.hpp",
"chars": 2421,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint16_t), \"_ACPI_INTERFACE_STANDARD.Size\", size, 0x0, 0x1"
},
{
"path": "resources/sdk/acpi/magic/manipulate_global_lock_buffer_t.end.hpp",
"chars": 26,
"preview": "#undef _m00\r\n#undef _m01\r\n"
},
{
"path": "resources/sdk/acpi/magic/manipulate_global_lock_buffer_t.start.hpp",
"chars": 368,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint32_t), \"_ACPI_MANIPULATE_GLOBAL_LOCK_BUFFER.Signature\""
},
{
"path": "resources/sdk/acpi/magic/method_argument_v1_t.end.hpp",
"chars": 52,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n"
},
{
"path": "resources/sdk/acpi/magic/method_argument_v1_t.start.hpp",
"chars": 658,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint16_t), \"_ACPI_METHOD_ARGUMENT_V1.Type\", type, 0x0, 0x1"
},
{
"path": "resources/sdk/acpi/magic/method_argument_v2_t.end.hpp",
"chars": 52,
"preview": "#undef _m00\r\n#undef _m01\r\n#undef _m02\r\n#undef _m03\r\n"
},
{
"path": "resources/sdk/acpi/magic/method_argument_v2_t.start.hpp",
"chars": 658,
"preview": "#if !IN_PARSER\r\n#define _m00 _SDK_NONVOL_PROPERTY(_SDK_ESCAPE(uint16_t), \"_ACPI_METHOD_ARGUMENT_V2.Type\", type, 0x0, 0x1"
},
{
"path": "resources/sdk/acpi/manipulate_global_lock_buffer_t.hpp",
"chars": 943,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/manipulate_global_lock_buffer_t.start.hpp\"\r\nnames"
},
{
"path": "resources/sdk/acpi/method_argument_v1_t.hpp",
"chars": 1298,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/method_argument_v1_t.start.hpp\"\r\nnamespace acpi\r\n"
},
{
"path": "resources/sdk/acpi/method_argument_v2_t.hpp",
"chars": 1090,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/method_argument_v2_t.start.hpp\"\r\nnamespace acpi\r\n"
},
{
"path": "resources/sdk/ae/api.hpp",
"chars": 2059,
"preview": "#pragma once\r\n#include <sdkgen/support_library.hpp>\r\n\r\n#include \"magic/api.start.hpp\"\r\nnamespace ae\r\n{\r\n // [AE_LOG]\r"
},
{
"path": "resources/sdk/ae/magic/api.end.hpp",
"chars": 60,
"preview": "#undef _m0\r\n#undef _m1\r\n#undef _m2\r\n#undef _m3\r\n#undef _m4\r\n"
},
{
"path": "resources/sdk/ae/magic/api.start.hpp",
"chars": 874,
"preview": "#if !IN_PARSER\r\n#define _m0(...) _SDK_MAGIC_LINK(_SDK_ESCAPE(sdk::unknown_ptr), \"$AE_LOG$dxgi.dll\", 0xaf800, 0x0, true, "
}
]
// ... and 40523 more files (download for full content)
About this extraction
This page contains the full source code of the can1357/selene GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 40723 files (100.9 MB), approximately 28.9M tokens, and a symbol index with 61555 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.