Compare commits

...

310 Commits

Author SHA1 Message Date
hakril 8d517f29cf Merge pull request #62 from hakril/1.0.1
Version  1.0.1
2024-11-05 09:59:51 +01:00
hakril 2ff11e7e5f Candidate for 1.0.1 2024-11-05 09:34:04 +01:00
hakril e0852a2866 Merge pull request #61 from hakril/comupdate
Add multiple ctypes defintions
2024-11-04 17:03:23 +01:00
hakril 68a37443fd Update some access-right names 2024-11-04 16:00:30 +01:00
hakril 72962be653 Improve RPCClient 2024-10-28 13:52:00 +01:00
hakril b25fc491df More tests fixup 2024-10-24 18:34:00 +02:00
hakril 3de820046d Fix or improv test resilience 2024-10-24 17:32:20 +02:00
hakril 92863f7944 improve test_pe_parse.py resiliance to system32 pe format change 2024-10-24 17:13:28 +02:00
hakril db14bc0294 Small COM fix/improvements 2024-10-23 10:10:40 +02:00
hakril 979f7ec77a Small fix in simple_x86 2024-10-23 09:56:06 +02:00
hakril 91c468eba0 Update generated_def and winproxy 2024-10-23 09:55:39 +02:00
hakril 0cd51a088e Big ctypes_generation update + add lot of structures/interfaces 2024-10-23 09:53:59 +02:00
hakril 13d0b6b3b7 Merge pull request #58 from hakril/improv_simple_assembly
Improve handling of some instructions in simple x86/x64
2024-06-27 15:14:20 +02:00
hakril cbadada375 Testing stuff for new CI config 2024-06-27 14:57:56 +02:00
hakril f90991022a Update CI with publish-unit-test-result-action/windows@v2 2024-06-27 14:46:59 +02:00
hakril cbf456ac4f Adding some generated_def related to Section & NtReadFile/NtWriteFile 2024-06-27 14:34:33 +02:00
hakril 53554f45ab Improve handling of Jmp/Call/Push/Pop 2024-06-27 14:22:40 +02:00
hakril 006dce7054 Add tests for non-handled instruction format in simple x86/x64 2024-06-27 14:03:39 +02:00
hakril 7475c8893e Merge pull request #57 from hakril/uprade_version
Uprade version to 1.0.0
2024-06-14 17:26:05 +02:00
hakril ddb22444d2 Update version number to 1.0.0 + update documentation 2024-06-14 17:13:16 +02:00
hakril 1ab7d3cad6 improve documentation of generated code 2024-06-14 17:10:46 +02:00
hakril 50b0493364 Upgrade sphinx conf + update some doc 2024-06-14 16:19:44 +02:00
hakril e3fd66b3d6 ctypes generation detect duplicate def in source file + fix duplicates 2024-06-14 14:24:19 +02:00
hakril 703c7f2ec2 Fix windows.native_exec.cpuid for py3 2024-06-14 14:22:21 +02:00
hakril b8dd03a1ef Fix symbol example in readme.md 2024-06-11 10:08:05 +02:00
hakril 6f00e753dd Fix readme 2024-06-10 22:21:40 +02:00
hakril 9c1c24bfda Update links in readme to https 2024-06-10 22:20:19 +02:00
hakril d7d936d695 Merge pull request #53 from hakril/winapi-wide
Full unicode compatibility
2024-06-10 21:50:45 +02:00
hakril 95c3f81619 update readme for official unicode + python3 full support 2024-06-10 21:27:36 +02:00
hakril 8472fd12a7 docs/generate_samples.py now use py3 2024-06-10 21:27:13 +02:00
hakril 59b3531d15 Update samples output 2024-06-10 21:26:56 +02:00
hakril bc13f7a497 Add check_encoding_config.py sample 2024-06-10 21:26:15 +02:00
hakril b1f0d74a3a Fix serviceManager handle closing + winproxy.SetThreadToken for py3 2024-06-10 21:25:08 +02:00
hakril 92742a4e97 Fix samples for python3 2024-06-10 21:24:37 +02:00
hakril 9770165487 Update readme 2024-06-10 18:18:23 +02:00
hakril bcb6327f60 Trying to fix github CI secondary rate limit errors 2024-06-10 17:44:39 +02:00
hakril 40f9420078 More tests & unicode values 2024-06-10 17:28:48 +02:00
hakril 36b4bf38fc Regen ctypes after rebase 2024-06-05 22:52:48 +02:00
hakril 8f828a6018 Remove breakpoint from test 2024-06-05 22:47:26 +02:00
hakril b003d9ee32 reintroduce system.build_number as system.versionstr 2024-06-05 22:47:26 +02:00
hakril 13dc869af6 Add unicode tests + comments 2024-06-05 22:47:26 +02:00
hakril 4b5b924224 Working on new sample for debug.symbols type exploration 2024-06-05 22:47:26 +02:00
hakril 2c518a77f9 Improve Symbol API : finish passing to unicode 2024-06-05 22:47:24 +02:00
hakril d61067fe5e Transfering base of symbol API to Wide + tests 2024-06-05 22:47:06 +02:00
hakril bb4271d97b windows.system.device_manager handle unicode + test 2024-06-05 22:46:51 +02:00
hakril d756cb1027 windows.system.etw support unicode + tests 2024-06-05 22:46:51 +02:00
hakril 5ae315b317 winutils fonction use Wide APIs 2024-06-05 22:46:51 +02:00
hakril 6f55a4736e windows.system now use W() APIs 2024-06-05 22:46:51 +02:00
hakril cab8be5311 Fix some tests 2024-06-05 22:46:51 +02:00
hakril d1e13fda8a Improve test for unicode 2024-06-05 22:46:51 +02:00
hakril 4bcec38cc1 volume.py (logicaldrives) now use W() APIs 2024-06-05 22:46:48 +02:00
hakril 3ad9bad56e Trying to improve workflow with better pytest results name 2024-06-05 22:45:46 +02:00
hakril a8414c975d Pipe API use Wide + support unicode 2024-06-05 22:45:46 +02:00
hakril 87e1c998a6 Add test on logicaldrives for py3 2024-06-05 22:45:46 +02:00
hakril 736a72255b More pycompat fixes 2024-06-05 22:45:46 +02:00
hakril 247140123c More tests fix 2024-06-05 22:45:46 +02:00
hakril 75dfe847ec More strange sys.stdout fixes for CI 2024-06-05 22:45:46 +02:00
hakril a580d825ae More unicode compat / more fix 2024-06-05 22:45:46 +02:00
hakril 1b5097050b Remove breakpoint in test_security_descriptor_from_unicode_file() 2024-06-05 22:45:46 +02:00
hakril 210bc648ec Fix error in pycompat 2024-06-05 22:45:46 +02:00
hakril 412c725fba Improve pycompat urepr_encode for non-tty stdout + fix some tests 2024-06-05 22:45:46 +02:00
hakril 6586018059 Improve pycompat when stdout is not a tty (no stdout.encoding) 2024-06-05 22:45:46 +02:00
hakril 7a7e6935d1 More encoding testing of CI 2024-06-05 22:45:46 +02:00
hakril a580153da9 More encoding tests 2024-06-05 22:45:46 +02:00
hakril 72a7f52ae2 Fix enumerate_threads_setup_owners() 2024-06-05 22:45:46 +02:00
hakril 4120c6e7e3 Fix failed merge 2024-06-05 22:45:46 +02:00
hakril ae5bf70b49 Improve ctypes generation determinism for py2 vs py3 generator 2024-06-05 22:45:33 +02:00
hakril 44ac6356e1 ctypes_generation/generate.py works on py3 + deterministic on py2 & py3 2024-06-05 22:45:16 +02:00
hakril 9ce6fcef9c Update ctypes_generation 2024-06-05 22:44:16 +02:00
hakril 0a2ed77302 Adding encoding documentation 2024-06-05 22:43:30 +02:00
hakril 33766c2ffd Working on WinAPI Wide-transition 2024-06-05 22:43:30 +02:00
hakril 5217506705 Change system.build_numer to actuel int NtBuildNumber + added system.kuser_shared_data 2024-06-05 22:43:30 +02:00
hakril 99fbec8ec4 Passed services API to Wide functions 2024-06-05 22:43:30 +02:00
hakril e313510fe5 Fix object_manager.KernelObject.__repr__ to handle unicode name 2024-06-05 22:43:30 +02:00
hakril 9eb4405cce Passed process relation API to Wide functions 2024-06-05 22:43:30 +02:00
hakril 7883e5f189 Added pycompat urepr_unicode for unicode repr in python2 + fix / kuser_shared_data in ctypes generation 2024-06-05 22:43:29 +02:00
hakril 93540ddbe5 Merge pull request #56 from hakril/io_ctypes_generation
Added IO definitions + ability to use CTL_CODE() macro in windef
2024-06-05 21:31:36 +02:00
hakril 6bf8f77617 Added IO definitions + ability to use CTL_CODE() macro in windef 2024-06-03 18:53:16 +02:00
hakril ee409e4c72 Merge pull request #55 from hakril/volume_dospath_fix
Change LogicalDrive.path logic based on QueryDosDevice returned valudes
2024-05-30 11:56:53 +02:00
hakril f957c640c7 Change LogicalDrive.path logic based on QueryDosDevice returned valudes 2024-05-28 19:03:46 +02:00
hakril 328735bd3a Merge pull request #54 from hakril/improve_simple_x64
Implem x64 mem_access [RIP+DISP32]
2024-05-21 18:52:57 +02:00
hakril feafb52c2a Implem x64 mem_access [RIP+DISP32] + few test + fix raw instr 2024-05-21 16:05:45 +02:00
clement rouault 275d054ba7 Add ntcall.py sample 2024-05-20 11:28:34 +02:00
clement rouault 36db869572 POC code for registry->security descriptor interface 2024-05-20 11:25:56 +02:00
clement rouault 74f5d43159 Improve SafeArray obj+handling in com.py 2024-05-20 11:22:50 +02:00
clement rouault dade97ff16 Update comments/doc to event_log.py 2024-05-20 11:22:07 +02:00
clement rouault 2db6037658 Small improvement/add to WMI objects/apis 2024-05-20 11:21:47 +02:00
clement rouault b68369936a Add some attributes to bits objects 2024-05-20 11:20:34 +02:00
clement rouault 85a41fbca0 Add POC of winutils.lookup_name() 2024-05-20 11:20:14 +02:00
clement rouault dab2a57d75 Change process pop by windows.test to winver.exe 2024-05-20 11:18:43 +02:00
hakril d3d6410276 Update readme + version number (#52) 2024-05-19 19:12:12 +02:00
hakril 9a0868da15 Enable debugger testing in CI (#50)
Fix hang & improves tests related to the debugger + activate Debugger tests in CI
2024-05-18 23:40:34 +02:00
clement rouault 117ea557f7 Trying to improve stability in CI with more sleep() 2024-05-18 23:31:09 +02:00
hakril f92204a16f Change def of OBJECT_ATTRIBUTES struct to handle remotectypes (#51) 2024-05-18 23:11:35 +02:00
hakril d8b2770046 Improve test config/code for better test coverage in CI (#49)
* Improve test detection of other-bitness installation status

* Install capstone-windows in CI for better test coverage

---------

Co-authored-by: clement rouault <clement.rouault@exatrack.com>
2024-05-14 20:56:50 +02:00
hakril e3bcde7d63 Add github actions for pytest CI (#48)
Integration of github CI testing workflows for python2.7 / 3.6 & 3.11 + Fix some tests & code failing
2024-05-14 18:44:04 +02:00
clement rouault 494317ee99 Add some ctypes definition associated with file APIs 2024-05-11 22:27:18 +02:00
clement rouault 46daca9539 Merge branch 'fix_alpc_sample_py3' 2024-05-11 22:17:59 +02:00
clement rouault 82d0c5cc5c Updat eversion number + Add missing ctypes_generation environ.txt 2023-05-26 09:31:06 +02:00
clement rouault 0eb78f21bd Added Environment API to winproxy + windows.system.environ : a unicode environ even on py2 2023-05-26 09:25:19 +02:00
clement rouault 0f501ab46d Service API are now full Wide / service object now use unicode strings 2023-01-30 13:12:18 +01:00
hakril f2ac6ea455 Fix alpc sample py3 (#45)
* ReAdded AF_ flags removed by mistake from ctypes_generation

* Adapt ALPC samples to python3 (fix #44)

---------

Co-authored-by: clement rouault <clement.rouault@exatrack.com>
2023-01-30 13:03:34 +01:00
clement rouault 2828f496bd Adapt ALPC samples to python3 (fix #44) 2023-01-12 12:53:38 +01:00
clement rouault f295a081b1 ReAdded AF_ flags removed by mistake from ctypes_generation 2022-11-29 12:58:43 +01:00
clement rouault 681fba942f Added SecurityDescriptor explain for SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE 2022-11-28 17:50:51 +01:00
clement rouault f4f9798d39 Added some netapi ctypes_generation / winproxy apis 2022-11-28 17:50:17 +01:00
clement rouault 09fa7c49ec Adding windows.winproxy.RtlMoveMemory 2022-10-31 10:24:25 +01:00
clement rouault c1aad71dd3 Improved integration of ws2_32 API + add demo_ws2_32.py sample 2022-10-31 10:18:23 +01:00
clement rouault 5d9e9a240f Added base for ws2_32 winproxy (define/struct/functions) + RtlMoveMemory 2022-10-28 18:23:56 +02:00
clement rouault 267ed1e85d Add some ctypes_generation and generated def 2022-08-05 11:33:25 +02:00
clement rouault d7d2dacf33 Fixed thread.teb_base + add thread.teb_syswow_base for TEB64 of Syswow process 2022-08-05 11:30:45 +02:00
clement rouault 3d7266ad50 Added some generated def files 2022-05-27 15:35:13 +02:00
clement rouault 63dd0130f1 POC of windows.system.domain 2022-05-27 15:34:27 +02:00
clement rouault b8788058e5 Func parser try to not really on presence of WINAPI to search for io_info prefix on parameters 2022-05-09 17:41:01 +02:00
clement rouault fdef64c57f Added RegLoad/Unload to winproxy 2022-05-09 17:41:01 +02:00
clement rouault e156b05e0f Improving SecurityDescriptor API/functions 2022-05-09 17:41:01 +02:00
clement rouault a7d547f994 Improve ctypes_generation function parser for new MSDN format of [in] [out] parameters 2022-05-09 17:41:01 +02:00
clement rouault 5fa4ca6aae Fixed bug introduced in token.privileges in ad592980 + associated tests 2022-05-09 17:24:55 +02:00
hakril ad59298015 Token privilege code use W() API + use of GetNamedSecurityInfoW in security.py (fix issue #40) 2022-05-07 11:35:36 +02:00
clement rouault 59e2cefee0 Replace binary used for test as notepad.exe is now the Notepad.exe app + add check on pop_proc about result bitness 2022-04-01 14:29:05 +02:00
clement rouault d23a9813e9 Prevent Token.__repr__ to raise on access denied 2022-04-01 14:10:41 +02:00
clement rouault 447069df32 Process listing now use Wide API (process name is still temporary a ascii string with backslashreplace) 2022-02-07 17:10:54 +01:00
clement rouault 77d90bc4fd Added Process32NextW/Process32FirstW to winproxy 2022-02-07 17:09:14 +01:00
clement rouault 82e3e0f3d0 Update test_pe_parsing_dotnet_32_current_process_64() 2022-02-03 15:22:18 +01:00
clement rouault 350a11515f Added winutils datetime_from_systemtime() 2022-02-03 15:16:46 +01:00
clement rouault 61e027a678 Allow custom timeout to eventlog query 2021-12-30 13:39:38 +01:00
clement rouault f9df80ca20 Improved handling of closing python in BaseSystemHandle.__del__ 2021-11-03 09:27:13 +01:00
clement rouault df44d38356 Added multiple genereted_def + fixed winproxy CreateFileW 2021-10-19 15:42:48 +02:00
clement rouault 1ad2ecba0d Fix samples/find_value.py py3 compat 2021-09-22 14:51:50 +02:00
clement rouault c4a40626b2 Improve windows.alpc message size handling and configuration using a global 2021-09-22 14:51:30 +02:00
clement rouault fa0baf0f14 Merge branch 'master' of github.com:hakril/PythonForWindows into master 2021-09-10 13:03:00 +02:00
clement rouault 77dad71b7e Added NtTerminateProcess to winproxy 2021-09-10 13:02:44 +02:00
clement rouault 735b18b369 Added some ntdll function to winproxy 2021-09-07 18:08:59 +02:00
clement rouault a814012574 windows.native_exec.create_function can now accept ctypes calling convention as parameter 2021-09-07 18:07:02 +02:00
clement rouault c2be36757f Improve injection capacity 2021-09-07 17:56:06 +02:00
hakril 134bd844d6 Fixed issue #30 about NdrContextHandle packing in py3 2021-09-06 22:07:00 +02:00
clement rouault f45a997179 Merge branch 'master' of github.com:hakril/PythonForWindows into master 2021-08-05 11:24:36 +02:00
clement rouault 4d988d2668 Added some function/struct to ctypes generation + wininet APIproxy 2021-08-05 11:24:18 +02:00
hakril b8ceea8f22 Added simple_x[86/64] listing of instrtuction to documentation + regenerated doc 2021-08-03 22:59:04 +02:00
clement rouault af7e64638c Fixed pe_parse for non-standard SizeOfOptionalHeader + .NET PE32 mapped in 64b processes 2021-07-29 20:01:51 +02:00
clement rouault 1de666c652 Merge branch 'master' of github.com:hakril/PythonForWindows into master 2021-07-28 13:47:53 +02:00
clement rouault e7789312fd Added winproxy.GetSystemTimes & some other time functions 2021-07-28 13:47:20 +02:00
Mastho d4fd2ffdbc Fix winutils check_debug API (#25)
Now using the windows.system.registry object
2021-07-22 19:36:31 +02:00
clement rouault 8b90c96c1a utils.create_process now use CreateProcessW for simpler py3 usage + fix code in WinProcess.read_[w]string + associated tests 2021-07-13 13:22:50 +02:00
clement rouault 42fac92940 Added some setter in task-scheduled definition 2021-06-25 17:32:14 +02:00
clement rouault acb66cfa78 Improv ctypes generation determinism for 'from .{0} import *' in dependancies 2021-06-25 17:22:16 +02:00
clement rouault 522c92cb45 ctypes generation file : meta.py is now one-line per entry for better git-diff 2021-06-25 17:19:56 +02:00
clement rouault 378ed31778 Added LookupAccountName functions 2021-06-25 17:19:10 +02:00
clement rouault 5a07f6a444 Removed temp/debug ctypes structure in ctypes_generation 2021-06-23 11:51:12 +02:00
clement rouault fb9ff96a11 Fixed current_process.read_string/wstring for page end + tests 2021-06-22 19:03:35 +02:00
clement rouault 6552312275 Added a custom version of SYSTEM_PROCESS_INFORMATION 2021-06-22 19:02:45 +02:00
clement rouault 5fdcbee121 Improved determinism of ctypes generation to reduce size of diff when regenerating 2021-06-21 13:45:24 +02:00
clement rouault dfdad6edf0 Added some fields to windows.debug.symbols.SymbolType 2021-06-21 10:46:54 +02:00
clement rouault d68ff123b3 Added/Updated some _SYSTEM_INFORMATION_CLASS related enum/struct 2021-06-21 10:46:15 +02:00
clement rouault 1f70bdd49a Added some PE resource API in generated_def / winproxy 2021-06-18 17:22:38 +02:00
clement rouault 6fe784030f Added some ETW define + Trace.start() now take a mode param 2021-06-18 17:21:36 +02:00
clement rouault 408fe8aaa4 Added some crypto definitions + POC of dpapi with crypto.protect/unprotect 2021-06-15 15:38:14 +02:00
clement rouault 1d128f43ab native_function.CustomAllocator now has the ability to be closed, freeing its pages. 2021-06-15 15:35:46 +02:00
clement rouault c68dc4e29a Syswow.py 32->64 calls should now work with multi-threads 2021-06-15 15:33:28 +02:00
clement rouault cd87544fc7 Fix a concurrency error in simple_x86 2021-06-15 15:32:23 +02:00
hakril 9549942e6f Merge branch 'BrunoPujos-master' 2021-05-24 23:17:51 +02:00
hakril 4f2e43ae6b Merge branch 'master' of https://github.com/BrunoPujos/PythonForWindows into BrunoPujos-master & regenerated windows.generated_def 2021-05-24 23:16:59 +02:00
clement rouault d05c067f65 Added compress_buffer utils + custom compression type to decompress_buffer 2021-05-24 15:14:14 +02:00
clement rouault 015517cd71 Fixed tests for new import windows.pipe requirement 2021-05-24 15:13:30 +02:00
clement rouault 4e67a5ac95 Added Multiple function / define to generated def 2021-05-24 15:05:35 +02:00
BrunoPujos 5052d99199 added .py autogenerated for event and filemapping functions 2021-05-19 10:19:14 +02:00
BrunoPujos 83ca54d182 add auto-generated functions for event and file mapping; fix buf for OpenEventW which called OpenEventA 2021-05-18 17:13:02 +02:00
srounet eab219610d add Pushad/Pushfd/Pushfq mnemonics and alias to Jz (#20)
* add register mnemonics and alias to Jz

* remove push/popal use expected_result to overwrite result

* add x64 instructions

* fix an issue with pushfd popfd Instructions not matching the intel specification
2021-05-04 19:31:42 +02:00
clement rouault 83b02310e4 Added some doc in eventlog xpath usage 2021-04-28 13:54:22 +02:00
clement rouault 542eb33aa6 Fix issue #19 about x86/x64 bad Test encoding 2021-04-27 21:32:49 +02:00
clement rouault 39d683ffeb Fix & Test infinite look in regkey.values in certains conditions 2021-04-19 09:23:37 +02:00
clement rouault 3149961634 Retrieving process ppid now use limited_handle, allowed more case of sucessful retrieval 2021-03-05 16:37:48 +01:00
clement rouault 758f418965 Merge branch 'master' of https://github.com/hakril/PythonForWindows into master 2021-03-05 16:36:57 +01:00
hakril ca6ce73dcc Added poc for event explorer sample 2021-01-28 22:41:18 +01:00
clement rouault 86d02ee17d De not import windows.pipe by default anymore 2021-01-12 15:30:13 +01:00
hakril 04cbbf3888 Fixed a Evthandle leak on evtlog code 2020-09-08 13:34:20 +02:00
hakril caa8ef5f32 Added documentation about Pypi availability and installation 2020-07-23 10:19:55 +02:00
hakril 2cd9c287aa Updated setup.py with long description 2020-07-23 09:38:03 +02:00
hakril 8d33e0143f Updated online documentation for 0.6 2020-07-16 23:48:22 +02:00
hakril 7a368a1a23 Updated version to 0.6 - Py3 supported ! 2020-07-16 23:43:23 +02:00
hakril 8e257f9678 Added some code resulting from exploration in COM/remote ctypes 2020-07-16 23:37:41 +02:00
hakril 34254dfde2 Improving NDR packing for some easy to fix corner cases 2020-07-16 23:35:05 +02:00
hakril 0f49dff128 Added some docstrings 2020-07-16 23:33:27 +02:00
hakril 9bf2e61431 Improved test for NDR + added timeout for debugger test (if pytest-timeout present) 2020-07-16 23:31:35 +02:00
hakril 01a59a92c4 Updated some doc and samples 2020-07-16 23:26:59 +02:00
hakril e2ff50e6a2 Added some generated def 2020-07-16 23:24:43 +02:00
hakril 47f3e64c84 Added some required generated def 2020-06-22 14:07:51 +02:00
hakril d8ac02e6a2 Improved NDR padding capabilities for primitive types 2020-06-15 10:00:05 +02:00
hakril 0fa8026c1b Fix localdebugger (and sample) for python3 2020-06-05 17:10:45 +02:00
hakril e4c0f8645e Adapted symbol code & samples for py3 compat 2020-05-18 23:07:33 +02:00
hakril 2e48f9008a Multiple docs update some __init__.py code (windows.debug not imported by default anymore) 2020-05-18 22:58:52 +02:00
hakril aec35a46d5 Added Symbol related sample output 2020-05-18 22:49:32 +02:00
hakril e70c97cbfc Added symbol sample + SymbolDebugger 2020-05-18 22:48:12 +02:00
hakril 5b210b50cb Updated some code in object manager 2020-05-18 22:45:08 +02:00
hakril 2e7bfba3b9 Added some version related definition 2020-05-15 14:11:00 +02:00
hakril 027b7c1c64 Working on symbols documentation 2020-05-15 00:30:05 +02:00
hakril 3151155670 Added a fonction to translate comdate format to datetime + fix DisableWow64FsRedirection for 32b system 2020-05-12 23:27:50 +02:00
hakril 38aef8e497 Fix py3 compat for some remote ctypes code 2020-05-12 23:27:01 +02:00
hakril c666882105 Improved available information about scheduled task + updated documentation 2020-05-12 23:22:00 +02:00
hakril ffec0aa57e Renamed NewService class as Service + updated doc/sample for new service API 2020-05-12 00:20:16 +02:00
hakril eb131d2621 system.services now handle int/slice for getitem + update doc + add a sample 2020-05-11 23:42:51 +02:00
hakril 042e77acf1 Updated doc of event_log.py 2020-05-11 23:42:51 +02:00
hakril 654280c8a5 Adapted samples for py3 support 2020-05-11 09:00:57 +02:00
hakril 176066d917 Added option --attributes to enum_device, and updated the sample accordingly 2020-05-10 23:27:18 +02:00
hakril b59522e504 Documented most of the classes/attributes related to devices_manager.py. Updated related rst. 2020-05-10 23:27:18 +02:00
hakril 996487cc1f Added device manager documentation skeleton to docs/ as well as samples output 2020-05-10 23:27:18 +02:00
hakril 0ec8ae2fa6 Adapted device manager samples & small API improvements 2020-05-10 23:27:18 +02:00
hakril 78c205d248 Added some comment about unsure high-level API choice/possibility to discuss 2020-05-10 23:27:18 +02:00
hakril 6a7626eb2d Adapted lucasg sample to new (poc) device manager high-level API 2020-05-10 23:27:18 +02:00
hakril 1077541ec4 POC of new high-level API for device manager adapted from lucasg work 2020-05-10 23:27:18 +02:00
hakril f491c510eb Adapt lucasg winproxy code to match codebase behavvior 2020-05-10 23:27:18 +02:00
hakril 5aed4305d6 Port lucag device manager structures/function to ctypes generation 2020-05-10 23:27:18 +02:00
lucasg 97a1bb22e1 [device] Add device object associated with phy device 2020-05-10 23:27:18 +02:00
lucasg ec0e97c075 [device] Improve device's name retrieval 2020-05-10 23:27:18 +02:00
lucasg 7652f597f3 [Device] Correctly parse device's resources 2020-05-10 23:27:18 +02:00
lucasg 5aa181c4cf [Device] Implement API to retrieve resources associated with devices 2020-05-10 23:27:18 +02:00
lucasg 445c68537c [Device] Implement apis to retrieve the list of devices under each class 2020-05-10 23:27:18 +02:00
lucasg 0ee191c981 [Device] Add setupapi SetupDiClassNameFromGuid winproxy 2020-05-10 23:27:18 +02:00
lucasg e74089cda3 [Device] Add cfgmgr.CM_Enumerate_Classes winproxy 2020-05-10 23:27:18 +02:00
Reuven Peleg ef580c675f Fix port_name member in documentation
AlpcClient class have member name port_name, not portname
2020-05-08 23:39:09 +02:00
hakril 6a5364ea1e Updated docstring of RPCClient to link to AlpcClient & documented AlpcClient.port_name 2020-05-08 23:31:29 +02:00
hakril ed0099fd57 PFW symbols engine can now pull dbghelp.dll path from env var PFW_DBGHELP_PATH 2020-05-05 16:29:02 +02:00
hakril bbf031e784 Renamed definition/com/tst directory to better name: propertysystem 2020-05-04 09:52:54 +02:00
hakril 466d94c03c Fixed broken basestring for py3 compatibility (see issue #15) 2020-05-02 23:12:25 +02:00
hakril 578b4d9193 Update generated def + documentation 2020-03-29 22:14:29 +02:00
hakril 9485ceef05 Updated README with the current state of PFW for Python3 2020-03-29 21:49:22 +02:00
hakril f63f7f308a Some quick and dirty fix for debugger/breakpoint in python3 2020-03-29 21:41:48 +02:00
hakril c691d8eb84 Added EvtQuery.seek() + IsDebuggerPresent API for sample purpose 2020-03-19 10:33:12 +01:00
hakril 91e6ef824c Added EventLog.date for simplicity of use 2020-03-16 13:19:03 +01:00
hakril 54f202731d Added sample + link from debug.rst for FunctionCallBP 2020-03-11 18:06:23 +01:00
hakril fefe9f397f Added autodoc for FunctionCallBP 2020-03-11 00:03:55 +01:00
hakril 546818f91b Added a sample for windows.debug.FunctionCallBP : change_function_ret_value.py 2020-03-10 23:59:50 +01:00
hakril fb23ad2838 Fix syswow64 32<->64 for python3-23b 2020-03-10 21:03:59 +01:00
hakril 7921e74647 Fixed a GC issue with system.modules + added deprecation warning to utils.get_kernel_modules() 2020-03-10 20:50:04 +01:00
hakril 5c3b0cda88 Merge branch 'gitter-badger-gitter-badge' into dev 2020-02-16 09:53:52 +01:00
hakril 50f6b993de Adapted the gitter link + small update to the README 2020-02-16 09:52:07 +01:00
The Gitter Badger d7c150b794 Add Gitter badge 2020-02-14 10:42:30 +00:00
hakril 0cf6057b98 setup.py is py3-beta ready :) 2020-02-14 10:16:27 +01:00
hakril 02b2ba13f9 Added a poc for a WinFile object 2020-02-13 23:24:37 +01:00
hakril 92df7eaee0 New generated_def py3 ready \o/ PFW should be ready for py3 testing 2020-02-13 23:18:47 +01:00
hakril 9f69b1cefa Adapted some stuff in security.py for py3 2020-02-13 23:17:43 +01:00
hakril fe22a5ad0d Testing/Fixing some sample for py3 2020-02-13 23:16:46 +01:00
hakril 66382b89f7 Some more py3 compat fix + few feature in POC 2020-02-13 22:30:46 +01:00
hakril 4dc71b0449 Added some flags & improved explain() 2020-02-13 22:23:55 +01:00
hakril 4d3b3e18ad Lot of small py3 compat fix 2020-02-13 22:23:20 +01:00
hakril b27d161a6a Fixed ctypes_generation about some bugs on py3 2020-02-13 22:13:23 +01:00
hakril 80c6a747da Updated test for py3 2020-02-13 22:12:40 +01:00
hakril f403856e26 Debugger test pass on py3 2020-02-08 00:15:41 +01:00
hakril 6a74c83670 test_process pass for python3 + added some pe_parse test 2020-02-07 23:06:26 +01:00
hakril 889de363ca windows.injection now handle injection of py3 code ! 2020-02-06 00:03:10 +01:00
hakril bac3dcb55b Fix simple_x64 REX for python3 2020-02-05 23:57:34 +01:00
hakril 2f778b69f9 windows.pipe.create now accept a custom security descriptor as parameter 2020-02-03 21:42:34 +01:00
hakril 2fddd82f00 Adding pycompat.py for py2/py3 work in progress 2020-02-02 18:18:56 +01:00
hakril 46197e763a Fixed windows.winproxy.resolve (corresponding test already exist) 2020-02-02 18:17:36 +01:00
hakril a7175be425 Added/fixed some test 2020-02-02 18:11:13 +01:00
hakril f2a6489463 Added mov REG/SEGREG in simple_x86 + fix a bug in syswow64 on AMD do to a processor bug (Issue10) 2020-02-02 17:49:42 +01:00
hakril 2e1043ead4 Added some code to play with extended attributes 2020-01-26 16:02:38 +01:00
hakril b490130585 Aded new generated ctypes_generation 2020-01-26 15:55:21 +01:00
hakril d20083c57c windows.crypto.sign accept sin algo as parameter 2020-01-26 15:51:03 +01:00
hakril fb2b63b66d ctypes_generation now generate py3.6 compatible code :) 2020-01-18 23:18:25 +01:00
hakril b971fa5faf Added some functions to winproxy 2020-01-17 21:11:24 +01:00
hakril c5d8faaa4a Winstruct parser accept * in array size expression 2020-01-17 21:09:04 +01:00
hakril 5ae6fb2634 Added new ctypes definition 2020-01-17 21:08:20 +01:00
hakril c589a41902 [WIP] saving POC of symbol 2020-01-17 21:07:35 +01:00
hakril 7638080ee4 Added new service API allowing to find service by name easily 2019-11-14 13:31:20 +01:00
hakril 0ed859b95e Added support for simple expression in array (like [MAX_PATH + 1]) 2019-10-31 16:27:01 +01:00
hakril 6f55d2e48f Fix a bug in debugger when detaching after a Ctrl+c during a BP 2019-10-19 00:39:03 +02:00
1orenz0 5b55d4d693 [event_log] Add some more format type to support 2019-10-14 22:03:49 +02:00
1orenz0 fbfe4344d4 [event_log] some events does not have a template message 2019-10-14 22:03:49 +02:00
1orenz0 215afaa418 [event_log] add verbose option to wevtutil.py 2019-10-14 22:03:49 +02:00
1orenz0 91ef7da2e1 [event_log] Fix typo in wevtutil 2019-10-14 22:03:49 +02:00
1orenz0 8a14fe9174 [event_log] add realtime logger to wevtutil 2019-10-14 22:03:49 +02:00
1orenz0 4f92323abf [event log] export message_id instead of message_name
It's more consistent with the other classes
2019-10-14 22:03:49 +02:00
1orenz0 44d9d0dd35 [event log] Add example of what can be done with events 2019-10-14 22:03:49 +02:00
1orenz0 6dd314659d [event log] adding event channel metadata message ID 2019-10-14 22:03:49 +02:00
1orenz0 adb7d3b63a [event log] adding event metadata 2019-10-14 22:03:49 +02:00
1orenz0 b5371ddf33 [event log] still adding publisher metadata 2019-10-14 22:03:49 +02:00
1orenz0 4495eca6d0 [event log] add some more metadata 2019-10-14 22:03:49 +02:00
1orenz0 df28515b97 [event log] Expose message filename 2019-10-14 22:03:49 +02:00
1orenz0 6374f91fef [event log] Expose channel metadatas 2019-10-14 22:03:49 +02:00
1orenz0 6125a1fb15 [event_trace] Add a way to pass a Python object to an ETW trace's
context

It may be useful to pass a python object (e.g. class) to the ETW
processing callback. The ETW tracing API allows the user to fill out a
"Context" field with a pointer value that will be passed to the event
being sent, the rest is ctypes magic for wrapping the python object
into a native pointer value.
2019-10-14 22:03:49 +02:00
1orenz0 bfeb2e6dec [event_log] Configure an ETW trace to listen on specific keywords
By default EnableTrace will listen with a "KeywordsAny" value of
0xffffffff. Some event log providers send events with keywords over
0x100000000, so we need a mecanism to filter on thoses keywords.
2019-10-14 22:03:49 +02:00
1orenz0 536a60c040 [event log] Expose event keywords and publisher guid
Accessing the publisher guid is useful to setup an ETW trace, and we
need to know event keywords in order to activate the ETW session on the
correct "channels".
2019-10-14 22:03:49 +02:00
hakril 05ee89de81 Adding some service related definition + added services specific access right to security.py 2019-10-14 21:52:54 +02:00
hakril 80799fe411 Working on improving the Evt related api 2019-10-14 21:52:02 +02:00
hakril 265ef59011 Update/Fix PROCESSINFOCLASS enum + NtSetInformationProcess use a PROCESSINFOCLASS not a PROCESS_INFORMATION_CLASS 2019-10-08 14:00:56 +02:00
hakril 30b05d25f1 Improved MultipleInstr capabilities + fix a bug in x64 that failed to recognize 32b register name not uppercase 2019-09-20 16:18:16 +02:00
hakril 6bd45e8503 Added regkey.empty() based on RegDeleteTreeW 2019-08-13 14:57:56 +02:00
hakril 1e42553112 Added some test + added a com security fixture allowing allowed correct COM init accross all tests 2019-08-12 13:53:15 +02:00
hakril 168783af9d Improved CryptMsg API with some more properties 2019-08-12 13:50:08 +02:00
hakril b9fe4d19e5 Added ControlService + service.stop() + service.start() accept arguments 2019-08-08 10:28:22 +02:00
hakril 6fcba46739 Added <Raw> pseudo instruction to both assemblers + corresponding test 2019-08-07 17:42:56 +02:00
hakril 960838ae3c handle code now use gdef + added some handle tests 2019-08-07 17:25:36 +02:00
hakril 8a32e00f68 Handle documented key type and unkown one + add code to handle badly encoded values (REG_MULTI_SZ notably) 2019-08-07 14:48:26 +02:00
hakril 670bb713a2 Fix a bug about REG_SZ key non-null terminated in values enumeration 2019-08-07 09:47:31 +02:00
hakril 032de6a848 Moved bits.py to winobject/ + added windows.system.bits as entrypoint 2019-08-05 22:32:10 +02:00
hakril 7827a43d9a Fixed a logic bug in object manager + import bug in syswow.py 2019-08-05 22:31:00 +02:00
hakril b0fa864271 Added some API to winproxy 2019-08-05 22:27:07 +02:00
hakril 7c816acdda windows.system.registry does not use _winreg at all anymore 2019-08-05 22:26:28 +02:00
hakril 7f4ff75854 Rewrote windows.system.registry to handle unicode. added registry test (including unicode testing) 2019-08-05 16:56:48 +02:00
hakril 0697891026 Some improvment to ctypes generation + a lot of new definitions 2019-08-05 16:55:35 +02:00
hakril 15f399df6d Still playing with security-descriptor / SACL / required rights (MAXIMUM_ALLOWED does not work) 2019-06-28 10:34:20 +02:00
hakril b628ca336b Working on api to set security descriptor 2019-06-28 09:38:35 +02:00
hakril b160935747 Added current etw code (event_trace) 2019-05-31 09:06:09 +02:00
hakril 554a6b0572 Added some more ctypes defition 2019-05-18 23:35:52 +02:00
hakril f9104141e5 Added/refactored many ctypes_generation definitions 2019-04-26 13:49:55 +02:00
hakril 5794a92168 ctypes_generation now handle anonymous sub-struct/union 2019-04-26 13:43:41 +02:00
hakril 578392ffde Improve retrieving of event-log data type 2019-02-11 17:11:23 +01:00
hakril 44e5a09564 Few improvement in existing API + test of Winprocess.handles 2019-01-22 15:06:23 +01:00
hakril 4e8a765bd6 Added some generated def 2019-01-22 15:02:18 +01:00
583 changed files with 424320 additions and 131200 deletions
+76
View File
@@ -0,0 +1,76 @@
# V0.1
name: Pytest
on: [push, workflow_dispatch]
# Allows you to run this workflow manually from the Actions tab
jobs:
build:
runs-on: windows-latest
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
python-version: [2.7, 3.6, 3.11]
python-architecture: [x86, x64]
include:
# Translate architecture to bitness for py.exe commandline
- python-bitness-to-test: 32
python-architecture: x86
- python-bitness-to-test: 64
python-architecture: x64
steps:
- uses: actions/checkout@v4
# Pfw testing need both 32b & 64b of tested python version for cross-bitness python injection tests
## Install the 32bits version of python3 asked
- name: Set up Python3 ${{ matrix.python-version }} x86
if: ${{ matrix.python-version != '2.7' }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version}}
architecture: x86
update-environment: false
## Install the 64bits version of python3 asked
- name: Set up Python3 ${{ matrix.python-version }} x64
if: ${{ matrix.python-version != '2.7' }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version}}
architecture: x64
update-environment: false
# Manually install python2.7 (both version at once)
- name: Set up Python2.7 ${{ matrix.python-version }} x86 & x64
shell: bash
if: ${{ matrix.python-version == '2.7' }}
run: |
choco install python2 --version=2.7.18 -y --no-progress --params '"/InstallDir:C:\tools\python27"'
choco install python2 --version=2.7.18 -y --no-progress -x86 --params '"/InstallDir:C:\tools\python2732"' --force
- name: Listing python versions availables
run: py -0
# Install PythonForWindows for both bitness
- name: Installing PythonForWindows for both bitness
run: |
py -${{ matrix.python-version}}-32 setup.py install
py -${{ matrix.python-version}}-64 setup.py install
- name: Installing pytest & capstone-windows
run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pip install pytest capstone-windows
# Testing
- name: Testing
run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pytest --junitxml=junit/test-results.xml -s -k "not known_to_fail" -v tests/
- name: Publish PyTest Results
uses: EnricoMi/publish-unit-test-result-action/windows@v2
if: always()
with:
files: junit/test-results.xml
check_name: PyTest Results for ${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}}
secondary_rate_limit_wait_seconds: 90
seconds_between_github_writes: 10
seconds_between_github_reads: 1
+1
View File
@@ -2,6 +2,7 @@
doctrees
*.inv
*.pickle
*.ignore
.vscode/
.cache/
+10
View File
@@ -1,3 +1,13 @@
1.0.0:
Unicode everywhere:
Whenever possible, PythonForWindows use W() (wide) APIs and returns unicode string.
This means `str` for python3 & `unicode` for python2.7
windows.system.build_number now returns a int : the actual build number
windows.system.build_number became windows.system.versionstr
Between 0.4 & 0.5:
== New features ==
- windows.security
+1 -1
View File
@@ -1,4 +1,4 @@
Copyright (c) 2016, Rouault Clement
Copyright (c) 2016-2024, Rouault Clement
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
+78 -13
View File
@@ -1,31 +1,53 @@
# PythonForWindows
PythonForWindows is a base of code aimed to make interaction with `Windows` (on X86/X64) easier (for both 32 and 64 bits Python).
[![Pytest](https://github.com/hakril/PythonForWindows/actions/workflows/mypytest.yml/badge.svg?branch=master)](https://github.com/hakril/PythonForWindows/actions/workflows/mypytest.yml)
PythonForWindows (PFW) is a base of code aimed to make interaction with `Windows` (on X86/X64) easier (for both 32 and 64 bits Python).
Its goal is to offer abstractions around some of the OS features in a (I hope) pythonic way.
It also tries to make the barrier between python and native execution thinner in both ways.
There is no external dependencies but it relies heavily on the `ctypes` module.
Some of this code is clean (IMHO) and some parts are just a wreck that works for now.
Let's say that the codebase evolves with my needs and my curiosity.
Let's say that the codebase evolves with my needs, my researches and my curiosity.
Complete online documentation is available [here][ONLINE_DOC]
You can find some examples of code in the [samples directory][SAMPLE_DIR] or [online][ONLINE_SAMPLE].
Parts of PythonForWindows are used in the [LKD project][LKD_GITHUB].
PythonForWindows is principally known for:
If you have any issue, question, suggestion do not hesitate to contact me.
- its ALPC-RPC Client (see [samples](https://hakril.github.io/PythonForWindows/build/html/sample.html#windows-rpc))
- its generated [ctypes definitions](https://github.com/hakril/PythonForWindows/tree/master/windows/generated_def).
If you have any issue, question or suggestion do not hesitate to create an issue or reach me out.
I am always glad to have feedbacks from people using this project.
## Installation
You can install PythonForWindows using the ``setup.py`` script:
PythonForWindows is available on [Pypi](https://pypi.org/project/PythonForWindows/) an this can be installed with
``
python -m pip install PythonForWindows
``
You can also install PythonForWindows by cloning it and using the ``setup.py`` script:
``
python setup.py install
``
Note that PythonForWindows only support Python2 at the moment.
## Encoding & unicode
PythonForWindows support `python2.7` & `python3` and is currently tested for `Python2.7`, `3.6` & `3.11` via [Github Workflow](https://github.com/hakril/PythonForWindows/actions/workflows/mypytest.yml)
Since 1.0.0, the code uses "wide APIs" whenever possible and accept/returns python3 `str` (py2.7 `unicode` type) almost everywhere. Any functions/APIs not accepting unicode string can be considered a bug if its not stated explicitly in the documentation.
### Python2
PythonForWindows continues to support python2.7 as its the only way to have it running on `Windows XP` & `Windows Server 2003` which are sadly still seen in production.
Encoding errors at print time might be awkward for unicode string on python2, see the [PythonForWindows encoding guide](https://hakril.github.io/PythonForWindows/build/html/encoding.html) in the documentation.
## Overview
@@ -515,6 +537,49 @@ The local debugger handles
* Standard breakpoint ``int3``
* Hardware Execution breakpoint ``DrX``
### Symbols
Classes around the Symbols APIs of `dbghelp.dll` are also implemented and can be used independently of the Debugger.
The path of `dbghelp.dll` can also be given via the `PFW_DBGHELP_PATH` environment variable.
```python
# Python3
>>> from windows.debug import symbols
>>> # symbols.set_dbghelp_path(MY_DBGHELP_PATH)
>>> symbols.engine.options = 0 # Disable defered load
>>> sh = symbols.VirtualSymbolHandler()
>>> ntmod = sh.load_file(r"c:\windows\system32\ntdll.dll", addr=0x420000)
>>> ntmod
<SymbolModule name="ntdll" type=SymPdb pdb="ntdll.pdb" addr=0x420000>
>>> ntmod.name
'ntdll'
>>> ntmod.path
'c:\\windows\\system32\\ntdll.dll'
>>> ntmod.pdb
'c:\\Symbols\\ntdll.pdb\\8D5D5ED5D5B8AA609A82600C14E3004D1\\ntdll.pdb'
>>> sym = sh["ntdll!LdrLoadDll"]
>>> sym
<SymbolInfoW name="LdrLoadDll" start=0x44a160 tag=SymTagFunction>
>>> sym.fullname
'ntdll!LdrLoadDll'
>>> hex(sym.addr)
'0x44a160'
>>> sh.search("ntdll!*CreateFile")
[<SymbolInfoW name="EtwpCreateFile" start=0x47d9ec tag=SymTagFunction>, <SymbolInfoW name="EtwpCreateFile" start=0x47d9ec tag=SymTagPublicSymbol>, <SymbolInfoW name="NtCreateFile" start=0x4c03e0 tag=SymTagPublicSymbol>, <SymbolInfoW name="ZwCreateFile" start=0x4c03e0 tag=SymTagPublicSymbol>, <SymbolInfoW name="__imp_NtCreateFile" start=0x55cb70 tag=SymTagPublicSymbol>]
# Some types exploration
>>> peb = sh.get_type("ntdll!_PEB")
>>> peb
<SymbolType name="_PEB" tag=_SymTagEnum.SymTagUDT(0xb)>
>>> peb.size
2000
>>> peb.children[:3]
[<SymbolType name="InheritedAddressSpace" tag=_SymTagEnum.SymTagData(0x7)>, <SymbolType name="ReadImageFileExecOptions" tag=_SymTagEnum.SymTagData(0x7)>, <SymbolType name="BeingDebugged" tag=_SymTagEnum.SymTagData(0x7)>]
>>> peb.children[2].offset
2
```
### Other stuff (see doc / samples)
- Network
@@ -527,8 +592,8 @@ The local debugger handles
[LKD_GITHUB]: https://github.com/sogeti-esec-lab/LKD/
[SAMPLE_DIR]: https://github.com/hakril/PythonForWindows/tree/master/samples
[ONLINE_DOC]: http://hakril.github.io/PythonForWindows/
[ONLINE_SAMPLE]: http://hakril.github.io/PythonForWindows/build/html/sample.html
[ONLINE_SAMPLE_ALPC]: http://hakril.github.io/PythonForWindows/build/html/sample.html#windows-alpc
[ONLINE_SAMPLE_RPC]: http://hakril.github.io/PythonForWindows/build/html/sample.html#windows-rpc
[ONLINE_IATHOOK]: http://hakril.github.io/PythonForWindows/build/html/iat_hook.html
[ONLINE_DOC]: https://hakril.github.io/PythonForWindows/
[ONLINE_SAMPLE]: https://hakril.github.io/PythonForWindows/build/html/sample.html
[ONLINE_SAMPLE_ALPC]: https://hakril.github.io/PythonForWindows/build/html/sample.html#windows-alpc
[ONLINE_SAMPLE_RPC]: https://hakril.github.io/PythonForWindows/build/html/sample.html#windows-rpc
[ONLINE_IATHOOK]: https://hakril.github.io/PythonForWindows/build/html/iat_hook.html
+12 -5
View File
@@ -9,10 +9,13 @@ from simpleparser import *
class WinComParser(Parser):
PARAM_INFO = ["__RPC__deref_out", "__RPC__in", "__RPC__deref_out_opt", "__RPC__out", "__RPC__in_opt",
"__RPC__deref_opt_inout_opt", "__in", "__out", "__out_opt", "__in_opt", "__inout",
"__reserved", "__RPC__in_opt_string", "__RPC__inout_opt", "__RPC__in_string", "__deref_out_opt", "__RPC__inout"]
"__reserved", "__RPC__in_opt_string", "__RPC__inout_opt", "__RPC__in_string", "__deref_out_opt", "__RPC__inout",
"__RPC__deref_out_opt_string", "_COM_Outptr_", "_In_", "_In_opt_", "_Out_", "__deref_out"]
PARAM_INFO_WITH_VALUE = ["__RPC__in_ecount", "__RPC__out_ecount_part", "__RPC__in_ecount_full",
"__RPC__in_range", "__RPC__out_ecount_full", "__out_ecount_opt", "__out_ecount", "__in_ecount_opt",
"__in_ecount", "__out_bcount_opt", "__out_bcount", "__in_bcount", "__in_bcount_opt", "__RPC__out_ecount_full_string"]
"__in_ecount", "__out_bcount_opt", "__out_bcount", "__in_bcount", "__in_bcount_opt", "__RPC__out_ecount_full_string",
"__RPC__deref_out_ecount_full_opt", "__out_ecount_part", "__deref_out_range", "__out_bcount_part",
"_Outptr_result_buffer_"]
def __init__(self, data):
# data = self.initial_processing(data)
@@ -34,9 +37,13 @@ class WinComParser(Parser):
if ign.value in self.PARAM_INFO_WITH_VALUE:
# pass __RPC__in_ecount(cNames)
self.assert_token_type(OpenParenthesisToken)
while type(self.peek()) != CloseParenthesisToken:
self.next_token()
self.next_token()
depth = 1
while depth:
ntok = self.next_token()
if type(ntok) == CloseParenthesisToken:
depth -= 1
elif type(ntok) == OpenParenthesisToken:
depth +=1
if self.peek() == KeywordToken("const"):
self.next_token()
type_name = self.assert_token_type(NameToken)
+2
View File
@@ -9,6 +9,8 @@ class WinDef(object):
self.code = code
def generate_ctypes(self):
if self.code[-1] == "L" and self.code[0].isdigit():
self.code = self.code[:-1]
return """{0} = make_flag("{0}", {1})""".format(self.name, self.code)
class WinDefParser(Parser):
@@ -0,0 +1,39 @@
typedef struct IBackgroundCopyFile2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyFile2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyFile2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyFile2 * This);
HRESULT ( STDMETHODCALLTYPE *GetRemoteName )(
__RPC__in IBackgroundCopyFile2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *GetLocalName )(
__RPC__in IBackgroundCopyFile2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *GetProgress )(
__RPC__in IBackgroundCopyFile2 * This,
/* [out] */ __RPC__out BG_FILE_PROGRESS *pVal);
HRESULT ( STDMETHODCALLTYPE *GetFileRanges )(
__RPC__in IBackgroundCopyFile2 * This,
/* [unique][out][in] */ __RPC__inout_opt DWORD *RangeCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*RangeCount) BG_FILE_RANGE **Ranges);
HRESULT ( STDMETHODCALLTYPE *SetRemoteName )(
__RPC__in IBackgroundCopyFile2 * This,
__RPC__in LPCWSTR Val);
END_INTERFACE
} IBackgroundCopyFile2Vtbl;
@@ -0,0 +1,55 @@
typedef struct IBackgroundCopyFile3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyFile3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyFile3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyFile3 * This);
HRESULT ( STDMETHODCALLTYPE *GetRemoteName )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *GetLocalName )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *GetProgress )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__out BG_FILE_PROGRESS *pVal);
HRESULT ( STDMETHODCALLTYPE *GetFileRanges )(
__RPC__in IBackgroundCopyFile3 * This,
/* [unique][out][in] */ __RPC__inout_opt DWORD *RangeCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*RangeCount) BG_FILE_RANGE **Ranges);
HRESULT ( STDMETHODCALLTYPE *SetRemoteName )(
__RPC__in IBackgroundCopyFile3 * This,
__RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetTemporaryName )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pFilename);
HRESULT ( STDMETHODCALLTYPE *SetValidationState )(
__RPC__in IBackgroundCopyFile3 * This,
/* [in] */ BOOL state);
HRESULT ( STDMETHODCALLTYPE *GetValidationState )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__out BOOL *pState);
HRESULT ( STDMETHODCALLTYPE *IsDownloadedFromPeer )(
__RPC__in IBackgroundCopyFile3 * This,
/* [out] */ __RPC__out BOOL *pVal);
END_INTERFACE
} IBackgroundCopyFile3Vtbl;
@@ -0,0 +1,183 @@
typedef struct IBackgroundCopyJob2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyJob2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *AddFileSet )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ ULONG cFileCount,
/* [size_is][in] */ __RPC__in_ecount_full(cFileCount) BG_FILE_INFO *pFileSet);
HRESULT ( STDMETHODCALLTYPE *AddFile )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ __RPC__in LPCWSTR RemoteUrl,
/* [in] */ __RPC__in LPCWSTR LocalName);
HRESULT ( STDMETHODCALLTYPE *EnumFiles )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt IEnumBackgroundCopyFiles **pEnum);
HRESULT ( STDMETHODCALLTYPE *Suspend )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *Resume )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *Cancel )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *Complete )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *GetId )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out GUID *pVal);
HRESULT ( STDMETHODCALLTYPE *GetType )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_TYPE *pVal);
HRESULT ( STDMETHODCALLTYPE *GetProgress )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_PROGRESS *pVal);
HRESULT ( STDMETHODCALLTYPE *GetTimes )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_TIMES *pVal);
HRESULT ( STDMETHODCALLTYPE *GetState )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_STATE *pVal);
HRESULT ( STDMETHODCALLTYPE *GetError )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt IBackgroundCopyError **ppError);
HRESULT ( STDMETHODCALLTYPE *GetOwner )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetDisplayName )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ __RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetDescription )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ __RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetDescription )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetPriority )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ BG_JOB_PRIORITY Val);
HRESULT ( STDMETHODCALLTYPE *GetPriority )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_PRIORITY *pVal);
HRESULT ( STDMETHODCALLTYPE *SetNotifyFlags )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ ULONG Val);
HRESULT ( STDMETHODCALLTYPE *GetNotifyFlags )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out ULONG *pVal);
HRESULT ( STDMETHODCALLTYPE *SetNotifyInterface )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ __RPC__in_opt IUnknown *Val);
HRESULT ( STDMETHODCALLTYPE *GetNotifyInterface )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt IUnknown **pVal);
HRESULT ( STDMETHODCALLTYPE *SetMinimumRetryDelay )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ ULONG Seconds);
HRESULT ( STDMETHODCALLTYPE *GetMinimumRetryDelay )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out ULONG *Seconds);
HRESULT ( STDMETHODCALLTYPE *SetNoProgressTimeout )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ ULONG Seconds);
HRESULT ( STDMETHODCALLTYPE *GetNoProgressTimeout )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out ULONG *Seconds);
HRESULT ( STDMETHODCALLTYPE *GetErrorCount )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out ULONG *Errors);
HRESULT ( STDMETHODCALLTYPE *SetProxySettings )(
__RPC__in IBackgroundCopyJob2 * This,
/* [in] */ BG_JOB_PROXY_USAGE ProxyUsage,
/* [unique][string][in] */ __RPC__in_opt_string const WCHAR *ProxyList,
/* [unique][string][in] */ __RPC__in_opt_string const WCHAR *ProxyBypassList);
HRESULT ( STDMETHODCALLTYPE *GetProxySettings )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__out BG_JOB_PROXY_USAGE *pProxyUsage,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProxyList,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProxyBypassList);
HRESULT ( STDMETHODCALLTYPE *TakeOwnership )(
__RPC__in IBackgroundCopyJob2 * This);
HRESULT ( STDMETHODCALLTYPE *SetNotifyCmdLine )(
__RPC__in IBackgroundCopyJob2 * This,
/* [unique][in] */ __RPC__in_opt LPCWSTR Program,
/* [unique][in] */ __RPC__in_opt LPCWSTR Parameters);
HRESULT ( STDMETHODCALLTYPE *GetNotifyCmdLine )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProgram,
/* [out] */ __RPC__deref_out_opt LPWSTR *pParameters);
HRESULT ( STDMETHODCALLTYPE *GetReplyProgress )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out][in] */ __RPC__inout BG_JOB_REPLY_PROGRESS *pProgress);
HRESULT ( STDMETHODCALLTYPE *GetReplyData )(
__RPC__in IBackgroundCopyJob2 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(( unsigned long )*pLength) BYTE **ppBuffer,
/* [unique][out][in] */ __RPC__inout_opt UINT64 *pLength);
HRESULT ( STDMETHODCALLTYPE *SetReplyFileName )(
__RPC__in IBackgroundCopyJob2 * This,
/* [unique][in] */ __RPC__in_opt LPCWSTR ReplyFileName);
HRESULT ( STDMETHODCALLTYPE *GetReplyFileName )(
__RPC__in IBackgroundCopyJob2 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pReplyFileName);
HRESULT ( STDMETHODCALLTYPE *SetCredentials )(
__RPC__in IBackgroundCopyJob2 * This,
__RPC__in BG_AUTH_CREDENTIALS *credentials);
HRESULT ( STDMETHODCALLTYPE *RemoveCredentials )(
__RPC__in IBackgroundCopyJob2 * This,
BG_AUTH_TARGET Target,
BG_AUTH_SCHEME Scheme);
END_INTERFACE
} IBackgroundCopyJob2Vtbl;
@@ -0,0 +1,203 @@
typedef struct IBackgroundCopyJob3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBackgroundCopyJob3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *AddFileSet )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ ULONG cFileCount,
/* [size_is][in] */ __RPC__in_ecount_full(cFileCount) BG_FILE_INFO *pFileSet);
HRESULT ( STDMETHODCALLTYPE *AddFile )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in LPCWSTR RemoteUrl,
/* [in] */ __RPC__in LPCWSTR LocalName);
HRESULT ( STDMETHODCALLTYPE *EnumFiles )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt IEnumBackgroundCopyFiles **pEnum);
HRESULT ( STDMETHODCALLTYPE *Suspend )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *Resume )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *Cancel )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *Complete )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *GetId )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out GUID *pVal);
HRESULT ( STDMETHODCALLTYPE *GetType )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_TYPE *pVal);
HRESULT ( STDMETHODCALLTYPE *GetProgress )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_PROGRESS *pVal);
HRESULT ( STDMETHODCALLTYPE *GetTimes )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_TIMES *pVal);
HRESULT ( STDMETHODCALLTYPE *GetState )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_STATE *pVal);
HRESULT ( STDMETHODCALLTYPE *GetError )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt IBackgroundCopyError **ppError);
HRESULT ( STDMETHODCALLTYPE *GetOwner )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetDisplayName )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetDescription )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in LPCWSTR Val);
HRESULT ( STDMETHODCALLTYPE *GetDescription )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pVal);
HRESULT ( STDMETHODCALLTYPE *SetPriority )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ BG_JOB_PRIORITY Val);
HRESULT ( STDMETHODCALLTYPE *GetPriority )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_PRIORITY *pVal);
HRESULT ( STDMETHODCALLTYPE *SetNotifyFlags )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ ULONG Val);
HRESULT ( STDMETHODCALLTYPE *GetNotifyFlags )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out ULONG *pVal);
HRESULT ( STDMETHODCALLTYPE *SetNotifyInterface )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in_opt IUnknown *Val);
HRESULT ( STDMETHODCALLTYPE *GetNotifyInterface )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt IUnknown **pVal);
HRESULT ( STDMETHODCALLTYPE *SetMinimumRetryDelay )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ ULONG Seconds);
HRESULT ( STDMETHODCALLTYPE *GetMinimumRetryDelay )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out ULONG *Seconds);
HRESULT ( STDMETHODCALLTYPE *SetNoProgressTimeout )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ ULONG Seconds);
HRESULT ( STDMETHODCALLTYPE *GetNoProgressTimeout )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out ULONG *Seconds);
HRESULT ( STDMETHODCALLTYPE *GetErrorCount )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out ULONG *Errors);
HRESULT ( STDMETHODCALLTYPE *SetProxySettings )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ BG_JOB_PROXY_USAGE ProxyUsage,
/* [unique][string][in] */ __RPC__in_opt_string const WCHAR *ProxyList,
/* [unique][string][in] */ __RPC__in_opt_string const WCHAR *ProxyBypassList);
HRESULT ( STDMETHODCALLTYPE *GetProxySettings )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__out BG_JOB_PROXY_USAGE *pProxyUsage,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProxyList,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProxyBypassList);
HRESULT ( STDMETHODCALLTYPE *TakeOwnership )(
__RPC__in IBackgroundCopyJob3 * This);
HRESULT ( STDMETHODCALLTYPE *SetNotifyCmdLine )(
__RPC__in IBackgroundCopyJob3 * This,
/* [unique][in] */ __RPC__in_opt LPCWSTR Program,
/* [unique][in] */ __RPC__in_opt LPCWSTR Parameters);
HRESULT ( STDMETHODCALLTYPE *GetNotifyCmdLine )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pProgram,
/* [out] */ __RPC__deref_out_opt LPWSTR *pParameters);
HRESULT ( STDMETHODCALLTYPE *GetReplyProgress )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out][in] */ __RPC__inout BG_JOB_REPLY_PROGRESS *pProgress);
HRESULT ( STDMETHODCALLTYPE *GetReplyData )(
__RPC__in IBackgroundCopyJob3 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(( unsigned long )*pLength) byte **ppBuffer,
/* [unique][out][in] */ __RPC__inout_opt UINT64 *pLength);
HRESULT ( STDMETHODCALLTYPE *SetReplyFileName )(
__RPC__in IBackgroundCopyJob3 * This,
/* [unique][in] */ __RPC__in_opt LPCWSTR ReplyFileName);
HRESULT ( STDMETHODCALLTYPE *GetReplyFileName )(
__RPC__in IBackgroundCopyJob3 * This,
/* [out] */ __RPC__deref_out_opt LPWSTR *pReplyFileName);
HRESULT ( STDMETHODCALLTYPE *SetCredentials )(
__RPC__in IBackgroundCopyJob3 * This,
__RPC__in BG_AUTH_CREDENTIALS *credentials);
HRESULT ( STDMETHODCALLTYPE *RemoveCredentials )(
__RPC__in IBackgroundCopyJob3 * This,
BG_AUTH_TARGET Target,
BG_AUTH_SCHEME Scheme);
HRESULT ( STDMETHODCALLTYPE *ReplaceRemotePrefix )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in LPCWSTR OldPrefix,
/* [in] */ __RPC__in LPCWSTR NewPrefix);
HRESULT ( STDMETHODCALLTYPE *AddFileWithRanges )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ __RPC__in LPCWSTR RemoteUrl,
/* [in] */ __RPC__in LPCWSTR LocalName,
/* [in] */ DWORD RangeCount,
/* [size_is][in] */ __RPC__in_ecount_full(RangeCount) BG_FILE_RANGE *Ranges);
HRESULT ( STDMETHODCALLTYPE *SetFileACLFlags )(
__RPC__in IBackgroundCopyJob3 * This,
/* [in] */ DWORD Flags);
HRESULT ( STDMETHODCALLTYPE *GetFileACLFlags )(
__RPC__in IBackgroundCopyJob3 * This,
/* [ref][out] */ __RPC__out DWORD *Flags);
END_INTERFACE
} IBackgroundCopyJob3Vtbl;
@@ -0,0 +1,59 @@
typedef struct IBindCtxVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IBindCtx * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IBindCtx * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IBindCtx * This);
HRESULT ( STDMETHODCALLTYPE *RegisterObjectBound )(
__RPC__in IBindCtx * This,
/* [unique][in] */ __RPC__in_opt IUnknown *punk);
HRESULT ( STDMETHODCALLTYPE *RevokeObjectBound )(
__RPC__in IBindCtx * This,
/* [unique][in] */ __RPC__in_opt IUnknown *punk);
HRESULT ( STDMETHODCALLTYPE *ReleaseBoundObjects )(
__RPC__in IBindCtx * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *SetBindOptions )(
IBindCtx * This,
/* [in] */ BIND_OPTS *pbindopts);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBindOptions )(
IBindCtx * This,
/* [out][in] */ BIND_OPTS *pbindopts);
HRESULT ( STDMETHODCALLTYPE *GetRunningObjectTable )(
__RPC__in IBindCtx * This,
/* [out] */ __RPC__deref_out_opt IRunningObjectTable **pprot);
HRESULT ( STDMETHODCALLTYPE *RegisterObjectParam )(
__RPC__in IBindCtx * This,
/* [in] */ __RPC__in LPOLESTR pszKey,
/* [unique][in] */ __RPC__in_opt IUnknown *punk);
HRESULT ( STDMETHODCALLTYPE *GetObjectParam )(
__RPC__in IBindCtx * This,
/* [in] */ __RPC__in LPOLESTR pszKey,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunk);
HRESULT ( STDMETHODCALLTYPE *EnumObjectParam )(
__RPC__in IBindCtx * This,
/* [out] */ __RPC__deref_out_opt IEnumString **ppenum);
HRESULT ( STDMETHODCALLTYPE *RevokeObjectParam )(
__RPC__in IBindCtx * This,
/* [in] */ __RPC__in LPOLESTR pszKey);
END_INTERFACE
} IBindCtxVtbl;
@@ -0,0 +1,38 @@
typedef struct IEnumExplorerCommandVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IEnumExplorerCommand * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IEnumExplorerCommand * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IEnumExplorerCommand * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumExplorerCommand * This,
/* [annotation][in] */
__in ULONG celt,
/* [annotation][length_is][size_is][out] */
__out_ecount_part(celt, *pceltFetched) IExplorerCommand **pUICommand,
/* [annotation][out] */
__out_opt __deref_out_range(0, celt) ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
__RPC__in IEnumExplorerCommand * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
__RPC__in IEnumExplorerCommand * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IEnumExplorerCommand * This,
/* [out] */ __RPC__deref_out_opt IEnumExplorerCommand **ppenum);
END_INTERFACE
} IEnumExplorerCommandVtbl;
@@ -0,0 +1,37 @@
typedef struct IEnumMonikerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IEnumMoniker * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IEnumMoniker * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IEnumMoniker * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumMoniker * This,
/* [in] */ ULONG celt,
/* [annotation] */
__out_ecount_part(celt,*pceltFetched) IMoniker **rgelt,
/* [annotation] */
__out_opt ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
__RPC__in IEnumMoniker * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
__RPC__in IEnumMoniker * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IEnumMoniker * This,
/* [out] */ __RPC__deref_out_opt IEnumMoniker **ppenum);
END_INTERFACE
} IEnumMonikerVtbl;
@@ -0,0 +1,38 @@
typedef struct IEnumShellItemsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IEnumShellItems * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IEnumShellItems * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IEnumShellItems * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumShellItems * This,
/* [annotation][in] */
__in ULONG celt,
/* [annotation][length_is][size_is][out] */
__out_ecount_part(celt, *pceltFetched) IShellItem **rgelt,
/* [annotation][out] */
__out_opt __deref_out_range(0, celt) ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
__RPC__in IEnumShellItems * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
__RPC__in IEnumShellItems * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IEnumShellItems * This,
/* [out] */ __RPC__deref_out_opt IEnumShellItems **ppenum);
END_INTERFACE
} IEnumShellItemsVtbl;
@@ -0,0 +1,37 @@
typedef struct IEnumStringVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IEnumString * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IEnumString * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IEnumString * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumString * This,
/* [in] */ ULONG celt,
/* [annotation] */
__RPC__out_ecount_part(celt,*pceltFetched) LPOLESTR *rgelt,
/* [annotation] */
__out_opt ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
__RPC__in IEnumString * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
__RPC__in IEnumString * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IEnumString * This,
/* [out] */ __RPC__deref_out_opt IEnumString **ppenum);
END_INTERFACE
} IEnumStringVtbl;
@@ -0,0 +1,56 @@
typedef struct IExplorerCommandVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IExplorerCommand * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IExplorerCommand * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IExplorerCommand * This);
HRESULT ( STDMETHODCALLTYPE *GetTitle )(
__RPC__in IExplorerCommand * This,
/* [unique][in] */ __RPC__in_opt IShellItemArray *psiItemArray,
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName);
HRESULT ( STDMETHODCALLTYPE *GetIcon )(
__RPC__in IExplorerCommand * This,
/* [unique][in] */ __RPC__in_opt IShellItemArray *psiItemArray,
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszIcon);
HRESULT ( STDMETHODCALLTYPE *GetToolTip )(
__RPC__in IExplorerCommand * This,
/* [unique][in] */ __RPC__in_opt IShellItemArray *psiItemArray,
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszInfotip);
HRESULT ( STDMETHODCALLTYPE *GetCanonicalName )(
__RPC__in IExplorerCommand * This,
/* [out] */ __RPC__out GUID *pguidCommandName);
HRESULT ( STDMETHODCALLTYPE *GetState )(
__RPC__in IExplorerCommand * This,
/* [in] */ __RPC__in_opt IShellItemArray *psiItemArray,
/* [in] */ BOOL fOkToBeSlow,
/* [out] */ __RPC__out EXPCMDSTATE *pCmdState);
HRESULT ( STDMETHODCALLTYPE *Invoke )(
__RPC__in IExplorerCommand * This,
/* [in] */ __RPC__in_opt IShellItemArray *psiItemArray,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc);
HRESULT ( STDMETHODCALLTYPE *GetFlags )(
__RPC__in IExplorerCommand * This,
/* [out] */ __RPC__out EXPCMDFLAGS *pFlags);
HRESULT ( STDMETHODCALLTYPE *EnumSubCommands )(
__RPC__in IExplorerCommand * This,
/* [out] */ __RPC__deref_out_opt IEnumExplorerCommand **ppEnum);
END_INTERFACE
} IExplorerCommandVtbl;
@@ -0,0 +1,52 @@
typedef struct IRunningObjectTableVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IRunningObjectTable * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IRunningObjectTable * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IRunningObjectTable * This);
HRESULT ( STDMETHODCALLTYPE *Register )(
__RPC__in IRunningObjectTable * This,
/* [in] */ DWORD grfFlags,
/* [unique][in] */ __RPC__in_opt IUnknown *punkObject,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName,
/* [out] */ __RPC__out DWORD *pdwRegister);
HRESULT ( STDMETHODCALLTYPE *Revoke )(
__RPC__in IRunningObjectTable * This,
/* [in] */ DWORD dwRegister);
HRESULT ( STDMETHODCALLTYPE *IsRunning )(
__RPC__in IRunningObjectTable * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName);
HRESULT ( STDMETHODCALLTYPE *GetObject )(
__RPC__in IRunningObjectTable * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkObject);
HRESULT ( STDMETHODCALLTYPE *NoteChangeTime )(
__RPC__in IRunningObjectTable * This,
/* [in] */ DWORD dwRegister,
/* [in] */ __RPC__in FILETIME *pfiletime);
HRESULT ( STDMETHODCALLTYPE *GetTimeOfLastChange )(
__RPC__in IRunningObjectTable * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkObjectName,
/* [out] */ __RPC__out FILETIME *pfiletime);
HRESULT ( STDMETHODCALLTYPE *EnumRunning )(
__RPC__in IRunningObjectTable * This,
/* [out] */ __RPC__deref_out_opt IEnumMoniker **ppenumMoniker);
END_INTERFACE
} IRunningObjectTableVtbl;
@@ -0,0 +1,45 @@
typedef struct IShellItemVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IShellItem * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IShellItem * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IShellItem * This);
HRESULT ( STDMETHODCALLTYPE *BindToHandler )(
__RPC__in IShellItem * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [in] */ __RPC__in REFGUID bhid,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetParent )(
__RPC__in IShellItem * This,
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
__RPC__in IShellItem * This,
/* [in] */ SIGDN sigdnName,
/* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
__RPC__in IShellItem * This,
/* [in] */ SFGAOF sfgaoMask,
/* [out] */ __RPC__out SFGAOF *psfgaoAttribs);
HRESULT ( STDMETHODCALLTYPE *Compare )(
__RPC__in IShellItem * This,
/* [in] */ __RPC__in_opt IShellItem *psi,
/* [in] */ SICHINTF hint,
/* [out] */ __RPC__out int *piOrder);
END_INTERFACE
} IShellItemVtbl;
@@ -0,0 +1,56 @@
typedef struct IShellItemArrayVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IShellItemArray * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IShellItemArray * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IShellItemArray * This);
HRESULT ( STDMETHODCALLTYPE *BindToHandler )(
__RPC__in IShellItemArray * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [in] */ __RPC__in REFGUID bhid,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */ __RPC__deref_out_opt void **ppvOut);
HRESULT ( STDMETHODCALLTYPE *GetPropertyStore )(
__RPC__in IShellItemArray * This,
/* [in] */ GETPROPERTYSTOREFLAGS flags,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetPropertyDescriptionList )(
__RPC__in IShellItemArray * This,
/* [in] */ __RPC__in REFPROPERTYKEY keyType,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
__RPC__in IShellItemArray * This,
/* [in] */ SIATTRIBFLAGS AttribFlags,
/* [in] */ SFGAOF sfgaoMask,
/* [out] */ __RPC__out SFGAOF *psfgaoAttribs);
HRESULT ( STDMETHODCALLTYPE *GetCount )(
__RPC__in IShellItemArray * This,
/* [out] */ __RPC__out DWORD *pdwNumItems);
HRESULT ( STDMETHODCALLTYPE *GetItemAt )(
__RPC__in IShellItemArray * This,
/* [in] */ DWORD dwIndex,
/* [out] */ __RPC__deref_out_opt IShellItem **ppsi);
HRESULT ( STDMETHODCALLTYPE *EnumItems )(
__RPC__in IShellItemArray * This,
/* [out] */ __RPC__deref_out_opt IEnumShellItems **ppenumShellItems);
END_INTERFACE
} IShellItemArrayVtbl;
@@ -0,0 +1,29 @@
typedef struct ICallFactoryVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICallFactory * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICallFactory * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICallFactory * This);
HRESULT ( STDMETHODCALLTYPE *CreateCall )(
ICallFactory * This,
/* [annotation][in] */
__in REFIID riid,
/* [annotation][in] */
__in_opt IUnknown *pCtrlUnk,
/* [annotation][in] */
__in REFIID riid2,
/* [annotation][iid_is][out] */
__deref_out IUnknown **ppv);
END_INTERFACE
} ICallFactoryVtbl;
@@ -0,0 +1,27 @@
typedef struct IClassFactoryVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IClassFactory * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IClassFactory * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IClassFactory * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateInstance )(
IClassFactory * This,
/* [unique][in] */ IUnknown *pUnkOuter,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *LockServer )(
IClassFactory * This,
/* [in] */ BOOL fLock);
END_INTERFACE
} IClassFactoryVtbl;
@@ -0,0 +1,63 @@
typedef struct IClientSecurityVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IClientSecurity * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IClientSecurity * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IClientSecurity * This);
HRESULT ( STDMETHODCALLTYPE *QueryBlanket )(
IClientSecurity * This,
/* [annotation][in] */
__in IUnknown *pProxy,
/* [annotation][out] */
__out DWORD *pAuthnSvc,
/* [annotation][out] */
__out_opt DWORD *pAuthzSvc,
/* [annotation][out] */
__RPC__deref_out_opt OLECHAR **pServerPrincName,
/* [annotation][out] */
__out_opt DWORD *pAuthnLevel,
/* [annotation][out] */
__out_opt DWORD *pImpLevel,
/* [annotation][out] */
__deref_out_opt void **pAuthInfo,
/* [annotation][out] */
__out_opt DWORD *pCapabilites);
HRESULT ( STDMETHODCALLTYPE *SetBlanket )(
IClientSecurity * This,
/* [annotation][in] */
__in IUnknown *pProxy,
/* [annotation][in] */
__in DWORD dwAuthnSvc,
/* [annotation][in] */
__in DWORD dwAuthzSvc,
/* [annotation][in] */
__RPC__in_opt OLECHAR *pServerPrincName,
/* [annotation][in] */
__in DWORD dwAuthnLevel,
/* [annotation][in] */
__in DWORD dwImpLevel,
/* [annotation][in] */
__in_opt void *pAuthInfo,
/* [annotation][in] */
__in DWORD dwCapabilities);
HRESULT ( STDMETHODCALLTYPE *CopyProxy )(
IClientSecurity * This,
/* [annotation][in] */
__in IUnknown *pProxy,
/* [annotation][out] */
__deref_out IUnknown **ppCopy);
END_INTERFACE
} IClientSecurityVtbl;
@@ -0,0 +1,74 @@
typedef struct IComCatalogVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IComCatalog * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IComCatalog * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IComCatalog * This);
HRESULT ( STDMETHODCALLTYPE *GetClassInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidConfiguredClsid,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetApplicationInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidApplId,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetProcessInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidProcess,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetServerGroupInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidServerGroup,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetRetQueueInfo )(
IComCatalog * This,
/* [string][in] */ WCHAR *wszFormatName,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetApplicationInfoForExe )(
IComCatalog * This,
/* [string][in] */ WCHAR *pwszExeName,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetTypeLibrary )(
IComCatalog * This,
/* [in] */ REFGUID guidTypeLib,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetInterfaceInfo )(
IComCatalog * This,
/* [in] */ REFIID iidInterface,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *FlushCache )(
IComCatalog * This);
HRESULT ( STDMETHODCALLTYPE *GetClassInfoFromProgId )(
IComCatalog * This,
/* [in] */ WCHAR *pwszProgID,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
END_INTERFACE
} IComCatalogVtbl;
@@ -0,0 +1,22 @@
typedef struct IInternalUnknownVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IInternalUnknown * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IInternalUnknown * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IInternalUnknown * This);
HRESULT ( STDMETHODCALLTYPE *QueryInternalInterface )(
IInternalUnknown * This,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
END_INTERFACE
} IInternalUnknownVtbl;
@@ -0,0 +1,58 @@
typedef struct IMarshalVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMarshal * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMarshal * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMarshal * This);
HRESULT ( STDMETHODCALLTYPE *GetUnmarshalClass )(
IMarshal * This,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ CLSID *pCid);
HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )(
IMarshal * This,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ DWORD *pSize);
HRESULT ( STDMETHODCALLTYPE *MarshalInterface )(
IMarshal * This,
/* [unique][in] */ IStream *pStm,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags);
HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )(
IMarshal * This,
/* [unique][in] */ IStream *pStm,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )(
IMarshal * This,
/* [unique][in] */ IStream *pStm);
HRESULT ( STDMETHODCALLTYPE *DisconnectObject )(
IMarshal * This,
/* [in] */ DWORD dwReserved);
END_INTERFACE
} IMarshalVtbl;
@@ -0,0 +1,122 @@
typedef struct IMonikerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IMoniker * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IMoniker * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IMoniker * This);
HRESULT ( STDMETHODCALLTYPE *GetClassID )(
__RPC__in IMoniker * This,
/* [out] */ __RPC__out CLSID *pClassID);
HRESULT ( STDMETHODCALLTYPE *IsDirty )(
__RPC__in IMoniker * This);
HRESULT ( STDMETHODCALLTYPE *Load )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IStream *pStm);
HRESULT ( STDMETHODCALLTYPE *Save )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IStream *pStm,
/* [in] */ BOOL fClearDirty);
HRESULT ( STDMETHODCALLTYPE *GetSizeMax )(
__RPC__in IMoniker * This,
/* [out] */ __RPC__out ULARGE_INTEGER *pcbSize);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BindToObject )(
IMoniker * This,
/* [unique][in] */ IBindCtx *pbc,
/* [unique][in] */ IMoniker *pmkToLeft,
/* [in] */ REFIID riidResult,
/* [iid_is][out] */ void **ppvResult);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BindToStorage )(
IMoniker * This,
/* [unique][in] */ IBindCtx *pbc,
/* [unique][in] */ IMoniker *pmkToLeft,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObj);
HRESULT ( STDMETHODCALLTYPE *Reduce )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [in] */ DWORD dwReduceHowFar,
/* [unique][out][in] */ __RPC__deref_opt_inout_opt IMoniker **ppmkToLeft,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmkReduced);
HRESULT ( STDMETHODCALLTYPE *ComposeWith )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkRight,
/* [in] */ BOOL fOnlyIfNotGeneric,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmkComposite);
HRESULT ( STDMETHODCALLTYPE *Enum )(
__RPC__in IMoniker * This,
/* [in] */ BOOL fForward,
/* [out] */ __RPC__deref_out_opt IEnumMoniker **ppenumMoniker);
HRESULT ( STDMETHODCALLTYPE *IsEqual )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkOtherMoniker);
HRESULT ( STDMETHODCALLTYPE *Hash )(
__RPC__in IMoniker * This,
/* [out] */ __RPC__out DWORD *pdwHash);
HRESULT ( STDMETHODCALLTYPE *IsRunning )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkNewlyRunning);
HRESULT ( STDMETHODCALLTYPE *GetTimeOfLastChange )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft,
/* [out] */ __RPC__out FILETIME *pFileTime);
HRESULT ( STDMETHODCALLTYPE *Inverse )(
__RPC__in IMoniker * This,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmk);
HRESULT ( STDMETHODCALLTYPE *CommonPrefixWith )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkOther,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmkPrefix);
HRESULT ( STDMETHODCALLTYPE *RelativePathTo )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkOther,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmkRelPath);
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft,
/* [out] */ __RPC__deref_out_opt LPOLESTR *ppszDisplayName);
HRESULT ( STDMETHODCALLTYPE *ParseDisplayName )(
__RPC__in IMoniker * This,
/* [unique][in] */ __RPC__in_opt IBindCtx *pbc,
/* [unique][in] */ __RPC__in_opt IMoniker *pmkToLeft,
/* [in] */ __RPC__in LPOLESTR pszDisplayName,
/* [out] */ __RPC__out ULONG *pchEaten,
/* [out] */ __RPC__deref_out_opt IMoniker **ppmkOut);
HRESULT ( STDMETHODCALLTYPE *IsSystemMoniker )(
__RPC__in IMoniker * This,
/* [out] */ __RPC__out DWORD *pdwMksys);
END_INTERFACE
} IMonikerVtbl;
@@ -0,0 +1,67 @@
typedef struct IObjContextVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IObjContext * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IObjContext * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IObjContext * This);
HRESULT ( STDMETHODCALLTYPE *SetProperty )(
IObjContext * This,
/* [annotation][in] */
__in REFGUID rpolicyId,
/* [annotation][in] */
__in CPFLAGS flags,
/* [annotation][in] */
__in IUnknown *pUnk);
HRESULT ( STDMETHODCALLTYPE *RemoveProperty )(
IObjContext * This,
/* [annotation][in] */
__in REFGUID rPolicyId);
HRESULT ( STDMETHODCALLTYPE *GetProperty )(
IObjContext * This,
/* [annotation][in] */
__in REFGUID rGuid,
/* [annotation][out] */
__out CPFLAGS *pFlags,
/* [annotation][out] */
__deref_out IUnknown **ppUnk);
HRESULT ( STDMETHODCALLTYPE *EnumContextProps )(
IObjContext * This,
/* [annotation][out] */
__deref_out IEnumContextProps **ppEnumContextProps);
PVOID ( STDMETHODCALLTYPE *Reserved1 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved2 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved3 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved4 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved5 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved6 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved7 )(
IObjContext * This);
END_INTERFACE
} IObjContextVtbl;
@@ -0,0 +1,22 @@
typedef struct IPersistVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IPersist * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IPersist * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IPersist * This);
HRESULT ( STDMETHODCALLTYPE *GetClassID )(
__RPC__in IPersist * This,
/* [out] */ __RPC__out CLSID *pClassID);
END_INTERFACE
} IPersistVtbl;
@@ -0,0 +1,36 @@
typedef struct IRemUnknownVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IRemUnknown * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IRemUnknown * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IRemUnknown * This);
HRESULT ( STDMETHODCALLTYPE *RemQueryInterface )(
IRemUnknown * This,
/* [in] */ REFIPID ripid,
/* [in] */ ULONG cRefs,
/* [in] */ USHORT cIids,
/* [size_is][in] */ IID *iids,
/* [size_is][size_is][out] */ REMQIRESULT **ppQIResults);
HRESULT ( STDMETHODCALLTYPE *RemAddRef )(
IRemUnknown * This,
/* [in] */ USHORT cInterfaceRefs,
/* [size_is][in] */ REMINTERFACEREF *InterfaceRefs,
/* [size_is][out] */ HRESULT *pResults);
HRESULT ( STDMETHODCALLTYPE *RemRelease )(
IRemUnknown * This,
/* [in] */ USHORT cInterfaceRefs,
/* [size_is][in] */ REMINTERFACEREF *InterfaceRefs);
END_INTERFACE
} IRemUnknownVtbl;
@@ -0,0 +1,20 @@
// IStdIdentity is an empty interface to check that an object is the IStdIdentity
// and thus query other interface
typedef struct IStdIdentityVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IUnknown * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IUnknown * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IUnknown * This);
END_INTERFACE
} IStdIdentityVtbl;
@@ -0,0 +1,108 @@
typedef struct IStorageVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IStorage * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IStorage * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IStorage * This);
HRESULT ( STDMETHODCALLTYPE *CreateStream )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [in] */ DWORD grfMode,
/* [in] */ DWORD reserved1,
/* [in] */ DWORD reserved2,
/* [out] */ IStream **ppstm);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *OpenStream )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ void *reserved1,
/* [in] */ DWORD grfMode,
/* [in] */ DWORD reserved2,
/* [out] */ IStream **ppstm);
HRESULT ( STDMETHODCALLTYPE *CreateStorage )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [in] */ DWORD grfMode,
/* [in] */ DWORD reserved1,
/* [in] */ DWORD reserved2,
/* [out] */ IStorage **ppstg);
HRESULT ( STDMETHODCALLTYPE *OpenStorage )(
IStorage * This,
/* [string][unique][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ IStorage *pstgPriority,
/* [in] */ DWORD grfMode,
/* [unique][in] */ SNB snbExclude,
/* [in] */ DWORD reserved,
/* [out] */ IStorage **ppstg);
HRESULT ( STDMETHODCALLTYPE *CopyTo )(
IStorage * This,
/* [in] */ DWORD ciidExclude,
/* [size_is][unique][in] */ const IID *rgiidExclude,
/* [unique][in] */ SNB snbExclude,
/* [unique][in] */ IStorage *pstgDest);
HRESULT ( STDMETHODCALLTYPE *MoveElementTo )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ IStorage *pstgDest,
/* [string][in] */ const OLECHAR *pwcsNewName,
/* [in] */ DWORD grfFlags);
HRESULT ( STDMETHODCALLTYPE *Commit )(
IStorage * This,
/* [in] */ DWORD grfCommitFlags);
HRESULT ( STDMETHODCALLTYPE *Revert )(
IStorage * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *EnumElements )(
IStorage * This,
/* [in] */ DWORD reserved1,
/* [size_is][unique][in] */ void *reserved2,
/* [in] */ DWORD reserved3,
/* [out] */ IEnumSTATSTG **ppenum);
HRESULT ( STDMETHODCALLTYPE *DestroyElement )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName);
HRESULT ( STDMETHODCALLTYPE *RenameElement )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsOldName,
/* [string][in] */ const OLECHAR *pwcsNewName);
HRESULT ( STDMETHODCALLTYPE *SetElementTimes )(
IStorage * This,
/* [string][unique][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ const FILETIME *pctime,
/* [unique][in] */ const FILETIME *patime,
/* [unique][in] */ const FILETIME *pmtime);
HRESULT ( STDMETHODCALLTYPE *SetClass )(
IStorage * This,
/* [in] */ REFCLSID clsid);
HRESULT ( STDMETHODCALLTYPE *SetStateBits )(
IStorage * This,
/* [in] */ DWORD grfStateBits,
/* [in] */ DWORD grfMask);
HRESULT ( STDMETHODCALLTYPE *Stat )(
IStorage * This,
/* [out] */ STATSTG *pstatstg,
/* [in] */ DWORD grfStatFlag);
END_INTERFACE
} IStorageVtbl;
@@ -0,0 +1,82 @@
typedef struct IStreamVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IStream * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IStream * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IStream * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )(
IStream * This,
/* [annotation] */
__out_bcount_part(cb, *pcbRead) void *pv,
/* [in] */ ULONG cb,
/* [annotation] */
__out_opt ULONG *pcbRead);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )(
IStream * This,
/* [annotation] */
__in_bcount(cb) const void *pv,
/* [in] */ ULONG cb,
/* [annotation] */
__out_opt ULONG *pcbWritten);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Seek )(
IStream * This,
/* [in] */ LARGE_INTEGER dlibMove,
/* [in] */ DWORD dwOrigin,
/* [annotation] */
__out_opt ULARGE_INTEGER *plibNewPosition);
HRESULT ( STDMETHODCALLTYPE *SetSize )(
__RPC__in IStream * This,
/* [in] */ ULARGE_INTEGER libNewSize);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *CopyTo )(
IStream * This,
/* [unique][in] */ IStream *pstm,
/* [in] */ ULARGE_INTEGER cb,
/* [annotation] */
__out_opt ULARGE_INTEGER *pcbRead,
/* [annotation] */
__out_opt ULARGE_INTEGER *pcbWritten);
HRESULT ( STDMETHODCALLTYPE *Commit )(
__RPC__in IStream * This,
/* [in] */ DWORD grfCommitFlags);
HRESULT ( STDMETHODCALLTYPE *Revert )(
__RPC__in IStream * This);
HRESULT ( STDMETHODCALLTYPE *LockRegion )(
__RPC__in IStream * This,
/* [in] */ ULARGE_INTEGER libOffset,
/* [in] */ ULARGE_INTEGER cb,
/* [in] */ DWORD dwLockType);
HRESULT ( STDMETHODCALLTYPE *UnlockRegion )(
__RPC__in IStream * This,
/* [in] */ ULARGE_INTEGER libOffset,
/* [in] */ ULARGE_INTEGER cb,
/* [in] */ DWORD dwLockType);
HRESULT ( STDMETHODCALLTYPE *Stat )(
__RPC__in IStream * This,
/* [out] */ __RPC__out STATSTG *pstatstg,
/* [in] */ DWORD grfStatFlag);
HRESULT ( STDMETHODCALLTYPE *Clone )(
__RPC__in IStream * This,
/* [out] */ __RPC__deref_out_opt IStream **ppstm);
END_INTERFACE
} IStreamVtbl;
@@ -0,0 +1,36 @@
typedef struct ITypeCompVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in ITypeComp * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out PVOID *ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in ITypeComp * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in ITypeComp * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Bind )(
ITypeComp * This,
/* [annotation][in] */
__RPC__in LPOLESTR szName,
/* [in] */ ULONG lHashVal,
/* [in] */ WORD wFlags,
/* [out] */ ITypeInfo **ppTInfo,
/* [out] */ DESCKIND *pDescKind,
/* [out] */ BINDPTR *pBindPtr);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BindType )(
ITypeComp * This,
/* [annotation][in] */
__RPC__in LPOLESTR szName,
/* [in] */ ULONG lHashVal,
/* [out] */ ITypeInfo **ppTInfo,
/* [out] */ ITypeComp **ppTComp);
END_INTERFACE
} ITypeCompVtbl;
@@ -0,0 +1,125 @@
typedef struct ITypeInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in ITypeInfo * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in ITypeInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in ITypeInfo * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetTypeAttr )(
ITypeInfo * This,
/* [out] */ TYPEATTR **ppTypeAttr);
HRESULT ( STDMETHODCALLTYPE *GetTypeComp )(
__RPC__in ITypeInfo * This,
/* [out] */ __RPC__deref_out_opt ITypeComp **ppTComp);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetFuncDesc )(
ITypeInfo * This,
/* [in] */ UINT index,
/* [out] */ FUNCDESC **ppFuncDesc);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetVarDesc )(
ITypeInfo * This,
/* [in] */ UINT index,
/* [out] */ VARDESC **ppVarDesc);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetNames )(
ITypeInfo * This,
/* [in] */ MEMBERID memid,
/* [length_is][size_is][out] */ BSTR *rgBstrNames,
/* [in] */ UINT cMaxNames,
/* [out] */ UINT *pcNames);
HRESULT ( STDMETHODCALLTYPE *GetRefTypeOfImplType )(
__RPC__in ITypeInfo * This,
/* [in] */ UINT index,
/* [out] */ __RPC__out HREFTYPE *pRefType);
HRESULT ( STDMETHODCALLTYPE *GetImplTypeFlags )(
__RPC__in ITypeInfo * This,
/* [in] */ UINT index,
/* [out] */ __RPC__out INT *pImplTypeFlags);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
ITypeInfo * This,
/* [annotation][size_is][in] */
__RPC__in_ecount(cNames) LPOLESTR *rgszNames,
/* [in] */ UINT cNames,
/* [size_is][out] */ MEMBERID *pMemId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ITypeInfo * This,
/* [in] */ PVOID pvInstance,
/* [in] */ MEMBERID memid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDocumentation )(
ITypeInfo * This,
/* [in] */ MEMBERID memid,
/* [out] */ BSTR *pBstrName,
/* [out] */ BSTR *pBstrDocString,
/* [out] */ DWORD *pdwHelpContext,
/* [out] */ BSTR *pBstrHelpFile);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDllEntry )(
ITypeInfo * This,
/* [in] */ MEMBERID memid,
/* [in] */ INVOKEKIND invKind,
/* [out] */ BSTR *pBstrDllName,
/* [out] */ BSTR *pBstrName,
/* [out] */ WORD *pwOrdinal);
HRESULT ( STDMETHODCALLTYPE *GetRefTypeInfo )(
__RPC__in ITypeInfo * This,
/* [in] */ HREFTYPE hRefType,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *AddressOfMember )(
ITypeInfo * This,
/* [in] */ MEMBERID memid,
/* [in] */ INVOKEKIND invKind,
/* [out] */ PVOID *ppv);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateInstance )(
ITypeInfo * This,
/* [in] */ IUnknown *pUnkOuter,
/* [in] */ REFIID riid,
/* [iid_is][out] */ PVOID *ppvObj);
HRESULT ( STDMETHODCALLTYPE *GetMops )(
__RPC__in ITypeInfo * This,
/* [in] */ MEMBERID memid,
/* [out] */ __RPC__deref_out_opt BSTR *pBstrMops);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetContainingTypeLib )(
ITypeInfo * This,
/* [out] */ ITypeLib **ppTLib,
/* [out] */ UINT *pIndex);
/* [local] */ DWORD /*void*/ ( STDMETHODCALLTYPE *ReleaseTypeAttr )(
ITypeInfo * This,
/* [in] */ TYPEATTR *pTypeAttr);
/* [local] */ DWORD ( STDMETHODCALLTYPE *ReleaseFuncDesc )(
ITypeInfo * This,
/* [in] */ FUNCDESC *pFuncDesc);
/* [local] */ DWORD ( STDMETHODCALLTYPE *ReleaseVarDesc )(
ITypeInfo * This,
/* [in] */ VARDESC *pVarDesc);
END_INTERFACE
} ITypeInfoVtbl;
@@ -0,0 +1,72 @@
typedef struct ITypeLibVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in ITypeLib * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in ITypeLib * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in ITypeLib * This);
/* [local] */ UINT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
ITypeLib * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
__RPC__in ITypeLib * This,
/* [in] */ UINT index,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoType )(
__RPC__in ITypeLib * This,
/* [in] */ UINT index,
/* [out] */ __RPC__out TYPEKIND *pTKind);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoOfGuid )(
__RPC__in ITypeLib * This,
/* [in] */ __RPC__in REFGUID guid,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTinfo);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetLibAttr )(
ITypeLib * This,
/* [out] */ TLIBATTR **ppTLibAttr);
HRESULT ( STDMETHODCALLTYPE *GetTypeComp )(
__RPC__in ITypeLib * This,
/* [out] */ __RPC__deref_out_opt ITypeComp **ppTComp);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDocumentation )(
ITypeLib * This,
/* [in] */ INT index,
/* [out] */ BSTR *pBstrName,
/* [out] */ BSTR *pBstrDocString,
/* [out] */ DWORD *pdwHelpContext,
/* [out] */ BSTR *pBstrHelpFile);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *IsName )(
ITypeLib * This,
/* [annotation][out][in] */
__RPC__inout LPOLESTR szNameBuf,
/* [in] */ ULONG lHashVal,
/* [out] */ BOOL *pfName);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *FindName )(
ITypeLib * This,
/* [annotation][out][in] */
__RPC__inout LPOLESTR szNameBuf,
/* [in] */ ULONG lHashVal,
/* [length_is][size_is][out] */ ITypeInfo **ppTInfo,
/* [length_is][size_is][out] */ MEMBERID *rgMemId,
/* [out][in] */ USHORT *pcFound);
/* [local] */ DWORD /* void */ ( STDMETHODCALLTYPE *ReleaseTLibAttr )(
ITypeLib * This,
/* [in] */ TLIBATTR *pTLibAttr);
END_INTERFACE
} ITypeLibVtbl;
@@ -0,0 +1,33 @@
typedef struct IWbemObjectTextSrcVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWbemObjectTextSrc * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWbemObjectTextSrc * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWbemObjectTextSrc * This);
HRESULT ( STDMETHODCALLTYPE *GetText )(
IWbemObjectTextSrc * This,
/* [in] */ long lFlags,
/* [in] */ IWbemClassObject *pObj,
/* [in] */ ULONG uObjTextFormat,
/* [in] */ IWbemContext *pCtx,
/* [out] */ BSTR *strText);
HRESULT ( STDMETHODCALLTYPE *CreateFromText )(
IWbemObjectTextSrc * This,
/* [in] */ long lFlags,
/* [in] */ BSTR strText,
/* [in] */ ULONG uObjTextFormat,
/* [in] */ IWbemContext *pCtx,
/* [out] */ IWbemClassObject **pNewObj);
END_INTERFACE
} IWbemObjectTextSrcVtbl;
@@ -0,0 +1,321 @@
typedef struct IWebBrowser2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IWebBrowser2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IWebBrowser2 * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
__RPC__in IWebBrowser2 * This,
/* [out] */ __RPC__out UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
__RPC__in IWebBrowser2 * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
/* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
IWebBrowser2 * This,
/* [annotation][in] */
DISPID dispIdMember,
/* [annotation][in] */
REFIID riid,
/* [annotation][in] */
LCID lcid,
/* [annotation][in] */
WORD wFlags,
/* [annotation][out][in] */
DISPPARAMS *pDispParams,
/* [annotation][out] */
VARIANT *pVarResult,
/* [annotation][out] */
EXCEPINFO *pExcepInfo,
/* [annotation][out] */
UINT *puArgErr);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GoBack )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GoForward )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GoHome )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GoSearch )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in BSTR URL,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *Flags,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *TargetFrameName,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *PostData,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *Headers);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Refresh )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Refresh2 )(
__RPC__in IWebBrowser2 * This,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *Level);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Stop )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Application )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Container )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Document )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TopLevelContainer )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pBool);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *Type);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Left )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out long *pl);
/* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Left )(
__RPC__in IWebBrowser2 * This,
/* [in] */ long Left);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Top )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out long *pl);
/* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Top )(
__RPC__in IWebBrowser2 * This,
/* [in] */ long Top);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Width )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out long *pl);
/* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Width )(
__RPC__in IWebBrowser2 * This,
/* [in] */ long Width);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Height )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out long *pl);
/* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Height )(
__RPC__in IWebBrowser2 * This,
/* [in] */ long Height);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LocationName )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *LocationName);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LocationURL )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *LocationURL);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Busy )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pBool);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Quit )(
__RPC__in IWebBrowser2 * This);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClientToWindow )(
__RPC__in IWebBrowser2 * This,
/* [out][in] */ __RPC__inout int *pcx,
/* [out][in] */ __RPC__inout int *pcy);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PutProperty )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in BSTR Property,
/* [in] */ VARIANT vtValue);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetProperty )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in BSTR Property,
/* [retval][out] */ __RPC__out VARIANT *pvtValue);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *Name);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HWND )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out PVOID *pHWND);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullName )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *FullName);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Path )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *Path);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pBool);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL Value);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StatusBar )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pBool);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StatusBar )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL Value);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StatusText )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__deref_out_opt BSTR *StatusText);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StatusText )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in BSTR StatusText);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ToolBar )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out int *Value);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ToolBar )(
__RPC__in IWebBrowser2 * This,
/* [in] */ int Value);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MenuBar )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *Value);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MenuBar )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL Value);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbFullScreen);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bFullScreen);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate2 )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in VARIANT *URL,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *Flags,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *TargetFrameName,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *PostData,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *Headers);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *QueryStatusWB )(
__RPC__in IWebBrowser2 * This,
/* [in] */ DWORD cmdID,
/* [retval][out] */ __RPC__out DWORD *pcmdf);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecWB )(
__RPC__in IWebBrowser2 * This,
/* [in] */ DWORD cmdID,
/* [in] */ DWORD cmdexecopt,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *pvaIn,
/* [unique][optional][out][in] */ __RPC__inout_opt VARIANT *pvaOut);
/* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShowBrowserBar )(
__RPC__in IWebBrowser2 * This,
/* [in] */ __RPC__in VARIANT *pvaClsid,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *pvarShow,
/* [unique][optional][in] */ __RPC__in_opt VARIANT *pvarSize);
/* [bindable][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ReadyState )(
__RPC__in IWebBrowser2 * This,
/* [out][retval] */ __RPC__out DWORD *plReadyState);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Offline )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbOffline);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Offline )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bOffline);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Silent )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbSilent);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Silent )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bSilent);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RegisterAsBrowser )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbRegister);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RegisterAsBrowser )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bRegister);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RegisterAsDropTarget )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbRegister);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RegisterAsDropTarget )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bRegister);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TheaterMode )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *pbRegister);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TheaterMode )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL bRegister);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AddressBar )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *Value);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AddressBar )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL Value);
/* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Resizable )(
__RPC__in IWebBrowser2 * This,
/* [retval][out] */ __RPC__out VARIANT_BOOL *Value);
/* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Resizable )(
__RPC__in IWebBrowser2 * This,
/* [in] */ VARIANT_BOOL Value);
END_INTERFACE
} IWebBrowser2Vtbl;
@@ -0,0 +1,74 @@
typedef struct IActivationPropertiesVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IActivationProperties * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IActivationProperties * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IActivationProperties * This);
HRESULT ( STDMETHODCALLTYPE *GetUnmarshalClass )(
IActivationProperties * This,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ CLSID *pCid);
HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )(
IActivationProperties * This,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ DWORD *pSize);
HRESULT ( STDMETHODCALLTYPE *MarshalInterface )(
IActivationProperties * This,
/* [unique][in] */ IStream *pStm,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags);
HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )(
IActivationProperties * This,
/* [unique][in] */ IStream *pStm,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )(
IActivationProperties * This,
/* [unique][in] */ IStream *pStm);
HRESULT ( STDMETHODCALLTYPE *DisconnectObject )(
IActivationProperties * This,
/* [in] */ DWORD dwReserved);
HRESULT ( STDMETHODCALLTYPE *SetDestCtx )(
IActivationProperties * This,
/* [in] */ DWORD dwDestCtx);
HRESULT ( STDMETHODCALLTYPE *SetMarshalFlags )(
IActivationProperties * This,
/* [in] */ DWORD dwMarshalFlags);
HRESULT ( STDMETHODCALLTYPE *SetLocalBlob )(
IActivationProperties * This,
/* [in] */ void *blob);
HRESULT ( STDMETHODCALLTYPE *GetLocalBlob )(
IActivationProperties * This,
/* [out] */ void **blob);
END_INTERFACE
} IActivationPropertiesVtbl;
@@ -0,0 +1,38 @@
typedef struct IActivationPropertiesOutVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IActivationPropertiesOut * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IActivationPropertiesOut * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IActivationPropertiesOut * This);
HRESULT ( STDMETHODCALLTYPE *GetActivationID )(
IActivationPropertiesOut * This,
/* [out] */ GUID *pActivationID);
HRESULT ( STDMETHODCALLTYPE *GetObjectInterface )(
IActivationPropertiesOut * This,
/* [in] */ REFIID riid,
/* [in] */ DWORD actvflags,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetObjectInterfaces )(
IActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [in] */ DWORD actvflags,
/* [size_is][in] */ MULTI_QI *multiQi);
HRESULT ( STDMETHODCALLTYPE *RemoveRequestedIIDs )(
IActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [size_is][in] */ IID *rgIID);
END_INTERFACE
} IActivationPropertiesOutVtbl;
@@ -0,0 +1,64 @@
typedef struct IActivationPropertiesInVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IActivationPropertiesIn * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IActivationPropertiesIn * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IActivationPropertiesIn * This);
HRESULT ( STDMETHODCALLTYPE *GetActivationID )(
IActivationPropertiesIn * This,
/* [out] */ GUID *pActivationID);
HRESULT ( STDMETHODCALLTYPE *GetClassInfo )(
IActivationPropertiesIn * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetClsctx )(
IActivationPropertiesIn * This,
/* [out] */ DWORD *pclsctx);
HRESULT ( STDMETHODCALLTYPE *GetActivationFlags )(
IActivationPropertiesIn * This,
/* [out] */ DWORD *pactvflags);
HRESULT ( STDMETHODCALLTYPE *AddRequestedIIDs )(
IActivationPropertiesIn * This,
/* [in] */ DWORD cIfs,
/* [size_is][in] */ IID *rgIID);
HRESULT ( STDMETHODCALLTYPE *GetRequestedIIDs )(
IActivationPropertiesIn * This,
/* [out] */ ULONG *pulCount,
/* [out] */ IID **prgIID);
HRESULT ( STDMETHODCALLTYPE *DelegateGetClassObject )(
IActivationPropertiesIn * This,
/* [out] */ IActivationPropertiesOut **pActPropsOut);
HRESULT ( STDMETHODCALLTYPE *DelegateCreateInstance )(
IActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnkOuter,
/* [out] */ IActivationPropertiesOut **pActPropsOut);
HRESULT ( STDMETHODCALLTYPE *DelegateCIAndGetCF )(
IActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnkOuter,
/* [out] */ IActivationPropertiesOut **pActPropsOut,
/* [out] */ IClassFactory **ppCf);
HRESULT ( STDMETHODCALLTYPE *GetReturnActivationProperties )(
IActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnk,
/* [out] */ IActivationPropertiesOut **ppActOut);
END_INTERFACE
} IActivationPropertiesInVtbl;
@@ -0,0 +1,30 @@
typedef struct IActivationStageInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IActivationStageInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IActivationStageInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IActivationStageInfo * This);
HRESULT ( STDMETHODCALLTYPE *SetStageAndIndex )(
IActivationStageInfo * This,
/* [in] */ ACTIVATION_STAGE stage,
/* [in] */ int index);
HRESULT ( STDMETHODCALLTYPE *GetStage )(
IActivationStageInfo * This,
/* [out] */ ACTIVATION_STAGE *pstage);
HRESULT ( STDMETHODCALLTYPE *GetIndex )(
IActivationStageInfo * This,
/* [out] */ int *pindex);
END_INTERFACE
} IActivationStageInfoVtbl;
@@ -0,0 +1,47 @@
typedef struct IClassClassicInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IClassClassicInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IClassClassicInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IClassClassicInfo * This);
HRESULT ( STDMETHODCALLTYPE *GetThreadingModel )(
IClassClassicInfo * This,
/* [out] */ ThreadingModel *pthreadmodel);
HRESULT ( STDMETHODCALLTYPE *GetModulePath )(
IClassClassicInfo * This,
/* [in] */ CLSCTX clsctx,
/* [string][out] */ WCHAR **pwszDllName);
HRESULT ( STDMETHODCALLTYPE *GetImplementedClsid )(
IClassClassicInfo * This,
/* [out] */ GUID **ppguidClsid);
HRESULT ( STDMETHODCALLTYPE *GetProcess )(
IClassClassicInfo * This,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetRemoteServerName )(
IClassClassicInfo * This,
/* [out] */ WCHAR **pwszServerName);
HRESULT ( STDMETHODCALLTYPE *GetLocalServerType )(
IClassClassicInfo * This,
/* [out] */ LocalServerType *pType);
HRESULT ( STDMETHODCALLTYPE *GetSurrogateCommandLine )(
IClassClassicInfo * This,
/* [out] */ WCHAR **pwszSurrogateCommandLine);
END_INTERFACE
} IClassClassicInfoVtbl;
@@ -0,0 +1,78 @@
typedef struct IComClassInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IComClassInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IComClassInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IComClassInfo * This);
HRESULT ( STDMETHODCALLTYPE *GetConfiguredClsid )(
IComClassInfo * This,
/* [out] */ GUID **ppguidClsid);
HRESULT ( STDMETHODCALLTYPE *GetProgId )(
IComClassInfo * This,
/* [out] */ WCHAR **pwszProgid);
HRESULT ( STDMETHODCALLTYPE *GetClassName )(
IComClassInfo * This,
/* [out] */ WCHAR **pwszClassName);
HRESULT ( STDMETHODCALLTYPE *GetApplication )(
IComClassInfo * This,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetClassContext )(
IComClassInfo * This,
/* [in] */ CLSCTX clsctxFilter,
/* [out] */ CLSCTX *pclsctx);
HRESULT ( STDMETHODCALLTYPE *GetCustomActivatorCount )(
IComClassInfo * This,
/* [in] */ ACTIVATION_STAGE activationStage,
/* [out] */ ULONG *pulCount);
HRESULT ( STDMETHODCALLTYPE *GetCustomActivatorClsids )(
IComClassInfo * This,
/* [in] */ ACTIVATION_STAGE activationStage,
/* [out] */ GUID **prgguidClsid);
HRESULT ( STDMETHODCALLTYPE *GetCustomActivators )(
IComClassInfo * This,
/* [in] */ ACTIVATION_STAGE activationStage,
/* [out] */ ISystemActivator ***prgpActivator);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
IComClassInfo * This,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *IsComPlusConfiguredClass )(
IComClassInfo * This,
/* [out] */ BOOL *pfComPlusConfiguredClass);
HRESULT ( STDMETHODCALLTYPE *MustRunInClientContext )(
IComClassInfo * This,
/* [out] */ BOOL *pbMustRunInClientContext);
HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )(
IComClassInfo * This,
/* [out] */ DWORD *pdwVersionMS,
/* [out] */ DWORD *pdwVersionLS);
HRESULT ( STDMETHODCALLTYPE *Lock )(
IComClassInfo * This);
HRESULT ( STDMETHODCALLTYPE *Unlock )(
IComClassInfo * This);
END_INTERFACE
} IComClassInfoVtbl;
@@ -0,0 +1,37 @@
typedef struct IContextVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IContext * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IContext * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IContext * This);
HRESULT ( STDMETHODCALLTYPE *SetProperty )(
IContext * This,
/* [in] */ REFGUID rpolicyId,
/* [in] */ CPFLAGS flags,
/* [in] */ IUnknown *pUnk);
HRESULT ( STDMETHODCALLTYPE *RemoveProperty )(
IContext * This,
/* [in] */ REFGUID rPolicyId);
HRESULT ( STDMETHODCALLTYPE *GetProperty )(
IContext * This,
/* [in] */ REFGUID rGuid,
/* [out] */ CPFLAGS *pFlags,
/* [out] */ IUnknown **ppUnk);
HRESULT ( STDMETHODCALLTYPE *EnumContextProps )(
IContext * This,
/* [out] */ IEnumContextProps **ppEnumContextProps);
END_INTERFACE
} IContextVtbl;
@@ -0,0 +1,38 @@
typedef struct IEnumContextPropsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IEnumContextProps * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IEnumContextProps * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IEnumContextProps * This);
HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumContextProps * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ ContextProperty *pContextProperties,
/* [out] */ ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
IEnumContextProps * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
IEnumContextProps * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
IEnumContextProps * This,
/* [out] */ IEnumContextProps **ppEnumContextProps);
HRESULT ( STDMETHODCALLTYPE *Count )(
IEnumContextProps * This,
/* [out] */ ULONG *pcelt);
END_INTERFACE
} IEnumContextPropsVtbl;
@@ -0,0 +1,34 @@
typedef struct IEnumSTATSTGVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IEnumSTATSTG * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IEnumSTATSTG * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IEnumSTATSTG * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumSTATSTG * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ STATSTG *rgelt,
/* [out] */ ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
IEnumSTATSTG * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
IEnumSTATSTG * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
IEnumSTATSTG * This,
/* [out] */ IEnumSTATSTG **ppenum);
END_INTERFACE
} IEnumSTATSTGVtbl;
@@ -0,0 +1,43 @@
typedef struct IInitActivationPropertiesInVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IInitActivationPropertiesIn * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IInitActivationPropertiesIn * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IInitActivationPropertiesIn * This);
HRESULT ( STDMETHODCALLTYPE *SetClsctx )(
IInitActivationPropertiesIn * This,
/* [in] */ DWORD clsctx);
HRESULT ( STDMETHODCALLTYPE *SetActivationFlags )(
IInitActivationPropertiesIn * This,
/* [in] */ DWORD actvflags);
HRESULT ( STDMETHODCALLTYPE *SetClassInfo )(
IInitActivationPropertiesIn * This,
/* [unique][in] */ IUnknown *pUnkClassInfo);
HRESULT ( STDMETHODCALLTYPE *SetContextInfo )(
IInitActivationPropertiesIn * This,
/* [unique][in] */ IContext *pClientContext,
/* [in] */ IContext *pPrototypeContext);
HRESULT ( STDMETHODCALLTYPE *SetConstructFromStorage )(
IInitActivationPropertiesIn * This,
/* [unique][in] */ IStorage *pStorage);
HRESULT ( STDMETHODCALLTYPE *SetConstructFromFile )(
IInitActivationPropertiesIn * This,
/* [in] */ WCHAR *wszFileName,
/* [in] */ DWORD dwMode);
END_INTERFACE
} IInitActivationPropertiesInVtbl;
@@ -0,0 +1,38 @@
typedef struct IOpaqueDataInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IOpaqueDataInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IOpaqueDataInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IOpaqueDataInfo * This);
HRESULT ( STDMETHODCALLTYPE *AddOpaqueData )(
IOpaqueDataInfo * This,
/* [in] */ OpaqueData *pData);
HRESULT ( STDMETHODCALLTYPE *GetOpaqueData )(
IOpaqueDataInfo * This,
/* [in] */ REFGUID guid,
/* [out] */ OpaqueData **pData);
HRESULT ( STDMETHODCALLTYPE *DeleteOpaqueData )(
IOpaqueDataInfo * This,
/* [in] */ REFGUID guid);
HRESULT ( STDMETHODCALLTYPE *GetOpaqueDataCount )(
IOpaqueDataInfo * This,
/* [out] */ ULONG *pulCount);
HRESULT ( STDMETHODCALLTYPE *GetAllOpaqueData )(
IOpaqueDataInfo * This,
/* [out] */ OpaqueData **prgData);
END_INTERFACE
} IOpaqueDataInfoVtbl;
@@ -0,0 +1,84 @@
typedef struct IPrivActivationPropertiesInVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IPrivActivationPropertiesIn * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IPrivActivationPropertiesIn * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IPrivActivationPropertiesIn * This);
HRESULT ( STDMETHODCALLTYPE *GetActivationID )(
IPrivActivationPropertiesIn * This,
/* [out] */ GUID *pActivationID);
HRESULT ( STDMETHODCALLTYPE *GetClassInfo )(
IPrivActivationPropertiesIn * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetClsctx )(
IPrivActivationPropertiesIn * This,
/* [out] */ DWORD *pclsctx);
HRESULT ( STDMETHODCALLTYPE *GetActivationFlags )(
IPrivActivationPropertiesIn * This,
/* [out] */ DWORD *pactvflags);
HRESULT ( STDMETHODCALLTYPE *AddRequestedIIDs )(
IPrivActivationPropertiesIn * This,
/* [in] */ DWORD cIfs,
/* [size_is][in] */ IID *rgIID);
HRESULT ( STDMETHODCALLTYPE *GetRequestedIIDs )(
IPrivActivationPropertiesIn * This,
/* [out] */ ULONG *pulCount,
/* [out] */ IID **prgIID);
HRESULT ( STDMETHODCALLTYPE *DelegateGetClassObject )(
IPrivActivationPropertiesIn * This,
/* [out] */ IActivationPropertiesOut **pActPropsOut);
HRESULT ( STDMETHODCALLTYPE *DelegateCreateInstance )(
IPrivActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnkOuter,
/* [out] */ IActivationPropertiesOut **pActPropsOut);
HRESULT ( STDMETHODCALLTYPE *DelegateCIAndGetCF )(
IPrivActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnkOuter,
/* [out] */ IActivationPropertiesOut **pActPropsOut,
/* [out] */ IClassFactory **ppCf);
HRESULT ( STDMETHODCALLTYPE *GetReturnActivationProperties )(
IPrivActivationPropertiesIn * This,
/* [in] */ IUnknown *pUnk,
/* [out] */ IActivationPropertiesOut **ppActOut);
HRESULT ( STDMETHODCALLTYPE *PrivGetReturnActivationProperties )(
IPrivActivationPropertiesIn * This,
/* [out] */ IPrivActivationPropertiesOut **ppActOut);
HRESULT ( STDMETHODCALLTYPE *GetCOMVersion )(
IPrivActivationPropertiesIn * This,
/* [out] */ COMVERSION *pVersion);
HRESULT ( STDMETHODCALLTYPE *GetClsid )(
IPrivActivationPropertiesIn * This,
/* [out] */ CLSID *pClsid);
HRESULT ( STDMETHODCALLTYPE *GetClientToken )(
IPrivActivationPropertiesIn * This,
/* [out] */ HANDLE *pHandle);
HRESULT ( STDMETHODCALLTYPE *GetDestCtx )(
IPrivActivationPropertiesIn * This,
/* [out] */ DWORD *pdwDestCtx);
END_INTERFACE
} IPrivActivationPropertiesInVtbl;
@@ -0,0 +1,58 @@
typedef struct IPrivActivationPropertiesOutVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IPrivActivationPropertiesOut * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IPrivActivationPropertiesOut * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IPrivActivationPropertiesOut * This);
HRESULT ( STDMETHODCALLTYPE *GetActivationID )(
IPrivActivationPropertiesOut * This,
/* [out] */ GUID *pActivationID);
HRESULT ( STDMETHODCALLTYPE *GetObjectInterface )(
IPrivActivationPropertiesOut * This,
/* [in] */ REFIID riid,
/* [in] */ DWORD actvflags,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetObjectInterfaces )(
IPrivActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [in] */ DWORD actvflags,
/* [size_is][in] */ MULTI_QI *multiQi);
HRESULT ( STDMETHODCALLTYPE *RemoveRequestedIIDs )(
IPrivActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [size_is][in] */ IID *rgIID);
HRESULT ( STDMETHODCALLTYPE *SetObjectInterfaces )(
IPrivActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [in] */ IID *pIID,
/* [in] */ IUnknown *pUnk);
HRESULT ( STDMETHODCALLTYPE *SetMarshalledResults )(
IPrivActivationPropertiesOut * This,
/* [in] */ DWORD cIfs,
/* [in] */ IID *pIID,
/* [in] */ HRESULT *pHr,
/* [in] */ MInterfacePointer **pIntfData);
HRESULT ( STDMETHODCALLTYPE *GetMarshalledResults )(
IPrivActivationPropertiesOut * This,
/* [out] */ DWORD *pcIfs,
/* [out] */ IID **pIID,
/* [out] */ HRESULT **pHr,
/* [out] */ MInterfacePointer ***pIntfData);
END_INTERFACE
} IPrivActivationPropertiesOutVtbl;
@@ -0,0 +1,33 @@
typedef struct IScmReplyInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IScmReplyInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IScmReplyInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IScmReplyInfo * This);
HRESULT ( STDMETHODCALLTYPE *SetResolverInfo )(
IScmReplyInfo * This,
/* [in] */ PRIV_RESOLVER_INFO *pResolverInfo); /* Need to be cast to PRIV_RESOLVER_INFO_LEGACY on old windows */
HRESULT ( STDMETHODCALLTYPE *GetResolverInfo )(
IScmReplyInfo * This,
/* [out] */ PRIV_RESOLVER_INFO **ppResolverInfo); /* Need to be cast to PRIV_RESOLVER_INFO_LEGACY on old windows */
HRESULT ( STDMETHODCALLTYPE *SetRemoteReplyInfo )(
IScmReplyInfo * This,
/* [in] */ REMOTE_REPLY_SCM_INFO *pRemoteReply);
HRESULT ( STDMETHODCALLTYPE *GetRemoteReplyInfo )(
IScmReplyInfo * This,
/* [out] */ REMOTE_REPLY_SCM_INFO **ppRemoteReply);
END_INTERFACE
} IScmReplyInfoVtbl;
@@ -0,0 +1,33 @@
typedef struct IScmRequestInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IScmRequestInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IScmRequestInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IScmRequestInfo * This);
HRESULT ( STDMETHODCALLTYPE *SetScmInfo )(
IScmRequestInfo * This,
/* [in] */ PRIV_SCM_INFO *pScmInfo);
HRESULT ( STDMETHODCALLTYPE *GetScmInfo )(
IScmRequestInfo * This,
/* [out] */ PRIV_SCM_INFO **ppScmInfo);
HRESULT ( STDMETHODCALLTYPE *SetRemoteRequestInfo )(
IScmRequestInfo * This,
/* [in] */ REMOTE_REQUEST_SCM_INFO *pRemoteReq);
HRESULT ( STDMETHODCALLTYPE *GetRemoteRequestInfo )(
IScmRequestInfo * This,
/* [out] */ REMOTE_REQUEST_SCM_INFO **ppRemoteReq);
END_INTERFACE
} IScmRequestInfoVtbl;
@@ -0,0 +1,58 @@
typedef struct IStandardActivatorVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IStandardActivator * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IStandardActivator * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IStandardActivator * This);
HRESULT ( STDMETHODCALLTYPE *StandardGetClassObject )(
IStandardActivator * This,
/* [in] */ REFCLSID rclsid,
/* [in] */ DWORD dwClsCtx,
/* [in] */ COSERVERINFO *pServerInfo,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *StandardCreateInstance )(
IStandardActivator * This,
/* [in] */ REFCLSID Clsid,
/* [in] */ IUnknown *punkOuter,
/* [in] */ DWORD dwClsCtx,
/* [in] */ COSERVERINFO *pServerInfo,
/* [in] */ DWORD dwCount,
/* [size_is][in] */ MULTI_QI *pResults);
HRESULT ( STDMETHODCALLTYPE *StandardGetInstanceFromFile )(
IStandardActivator * This,
/* [in] */ COSERVERINFO *pServerInfo,
/* [in] */ CLSID *pclsidOverride,
/* [in] */ IUnknown *punkOuter,
/* [in] */ DWORD dwClsCtx,
/* [in] */ DWORD grfMode,
/* [in] */ OLECHAR *pwszName,
/* [in] */ DWORD dwCount,
/* [size_is][in] */ MULTI_QI *pResults);
HRESULT ( STDMETHODCALLTYPE *StandardGetInstanceFromIStorage )(
IStandardActivator * This,
/* [in] */ COSERVERINFO *pServerInfo,
/* [in] */ CLSID *pclsidOverride,
/* [in] */ IUnknown *punkOuter,
/* [in] */ DWORD dwClsCtx,
/* [in] */ IStorage *pstg,
/* [in] */ DWORD dwCount,
/* [size_is][in] */ MULTI_QI *pResults);
HRESULT ( STDMETHODCALLTYPE *Reset )(
IStandardActivator * This);
END_INTERFACE
} IStandardActivatorVtbl;
@@ -0,0 +1,28 @@
typedef struct ISystemActivatorVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ISystemActivator * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ISystemActivator * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ISystemActivator * This);
HRESULT ( STDMETHODCALLTYPE *GetClassObject )(
ISystemActivator * This,
/* [unique][in] */ IActivationPropertiesIn *pActProperties,
/* [out] */ IActivationPropertiesOut **ppActProperties);
HRESULT ( STDMETHODCALLTYPE *CreateInstance )(
ISystemActivator * This,
/* [unique][in] */ IUnknown *pUnkOuter,
/* [unique][in] */ IActivationPropertiesIn *pActProperties,
/* [out] */ IActivationPropertiesOut **ppActProperties);
END_INTERFACE
} ISystemActivatorVtbl;
@@ -0,0 +1,57 @@
// Manually crafted from windows 10
typedef struct IProxyManagerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IProxyManager * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IProxyManager * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *CreateServer )(
IProxyManager * This,
REFCLSID * rclsid,
DWORD * clsctx,
PVOID *pv);
BOOL ( STDMETHODCALLTYPE *IsConnected )(
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *LockConnection )(
IProxyManager * This,
BOOL fLock,
BOOL fLastUnlockReleases);
HRESULT ( STDMETHODCALLTYPE *Disconnect )(
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *GetConnectionStatus )(
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *ScalarDeletingDestructor )( // CPP code ? is this the real end of the Interface ?
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *SetMapping )(
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *GetMapping )(
IProxyManager * This);
IObjContext ( STDMETHODCALLTYPE *GetServerObjectContext )(
IProxyManager * This);
HRESULT ( STDMETHODCALLTYPE *GetWrapperForContex )(
IProxyManager * This,
IObjContext *pCtx,
IID *riid,
void **ppv);
END_INTERFACE
} IProxyManagerVtbl;
@@ -0,0 +1,28 @@
typedef struct IProxyServerIdentityVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IProxyServerIdentity * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IProxyServerIdentity * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IProxyServerIdentity * This);
HRESULT ( STDMETHODCALLTYPE *GetServerProcessId )(
IProxyServerIdentity * This,
UINT *processId);
HRESULT ( STDMETHODCALLTYPE *GetServerProcessHandle )(
IProxyServerIdentity * This,
DWORD dwDesiredAccess,
INT bInheritHandle,
PVOID *phProcess) ;
END_INTERFACE
} IProxyServerIdentityVtbl;
@@ -0,0 +1,38 @@
typedef struct IApplicationActivationManagerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IApplicationActivationManager * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IApplicationActivationManager * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IApplicationActivationManager * This);
HRESULT ( STDMETHODCALLTYPE *ActivateApplication )(
__RPC__in IApplicationActivationManager * This,
/* [in] */ __RPC__in LPCWSTR appUserModelId,
/* [unique][in] */ __RPC__in_opt LPCWSTR arguments,
/* [in] */ ACTIVATEOPTIONS options,
/* [out] */ __RPC__out DWORD *processId);
HRESULT ( STDMETHODCALLTYPE *ActivateForFile )(
__RPC__in IApplicationActivationManager * This,
/* [in] */ __RPC__in LPCWSTR appUserModelId,
/* [in] */ __RPC__in_opt IShellItemArray *itemArray,
/* [unique][in] */ __RPC__in_opt LPCWSTR verb,
/* [out] */ __RPC__out DWORD *processId);
HRESULT ( STDMETHODCALLTYPE *ActivateForProtocol )(
__RPC__in IApplicationActivationManager * This,
/* [in] */ __RPC__in LPCWSTR appUserModelId,
/* [in] */ __RPC__in_opt IShellItemArray *itemArray,
/* [out] */ __RPC__out DWORD *processId);
END_INTERFACE
} IApplicationActivationManagerVtbl;
@@ -0,0 +1,111 @@
typedef struct IPackageDebugSettingsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IPackageDebugSettings * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IPackageDebugSettings * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IPackageDebugSettings * This);
HRESULT ( STDMETHODCALLTYPE *EnableDebugging )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName,
/* [annotation][in] */
_In_opt_ LPCWSTR debuggerCommandLine,
/* [annotation][in] */
_In_opt_ PZZWSTR environment);
HRESULT ( STDMETHODCALLTYPE *DisableDebugging )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName);
HRESULT ( STDMETHODCALLTYPE *Suspend )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName);
HRESULT ( STDMETHODCALLTYPE *Resume )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName);
HRESULT ( STDMETHODCALLTYPE *TerminateAllProcesses )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName);
HRESULT ( STDMETHODCALLTYPE *SetTargetSessionId )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ ULONG sessionId);
HRESULT ( STDMETHODCALLTYPE *EnumerateBackgroundTasks )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName,
/* [annotation][out] */
_Out_ ULONG *taskCount,
/* [annotation][size_is][size_is][out] */
_Outptr_result_buffer_(*taskCount) LPCGUID *taskIds,
/* [annotation][size_is][size_is][out] */
_Outptr_result_buffer_(*taskCount) LPCWSTR **taskNames);
HRESULT ( STDMETHODCALLTYPE *ActivateBackgroundTask )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCGUID taskId);
HRESULT ( STDMETHODCALLTYPE *StartServicing )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName);
HRESULT ( STDMETHODCALLTYPE *StopServicing )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName);
HRESULT ( STDMETHODCALLTYPE *StartSessionRedirection )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName,
/* [annotation][in] */
_In_ ULONG sessionId);
HRESULT ( STDMETHODCALLTYPE *StopSessionRedirection )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName);
HRESULT ( STDMETHODCALLTYPE *GetPackageExecutionState )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName,
/* [annotation][out] */
_Out_ PACKAGE_EXECUTION_STATE *packageExecutionState);
HRESULT ( STDMETHODCALLTYPE *RegisterForPackageStateChanges )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ LPCWSTR packageFullName,
/* [annotation][in] */
_In_ IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
/* [annotation][out] */
_Out_ DWORD *pdwCookie);
HRESULT ( STDMETHODCALLTYPE *UnregisterForPackageStateChanges )(
IPackageDebugSettings * This,
/* [annotation][in] */
_In_ DWORD dwCookie);
END_INTERFACE
} IPackageDebugSettingsVtbl;
@@ -0,0 +1,23 @@
typedef struct IPackageExecutionStateChangeNotificationVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IPackageExecutionStateChangeNotification * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IPackageExecutionStateChangeNotification * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IPackageExecutionStateChangeNotification * This);
HRESULT ( STDMETHODCALLTYPE *OnStateChanged )(
__RPC__in IPackageExecutionStateChangeNotification * This,
/* [string][in] */ __RPC__in_string LPCWSTR pszPackageFullName,
/* [in] */ PACKAGE_EXECUTION_STATE pesNewState);
END_INTERFACE
} IPackageExecutionStateChangeNotificationVtbl;
@@ -0,0 +1,62 @@
typedef struct IChannelHookVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IChannelHook * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IChannelHook * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IChannelHook * This);
PVOID ( STDMETHODCALLTYPE *ClientGetSize )(
IChannelHook * This,
/* [in] */ REFGUID uExtent,
/* [in] */ REFIID riid,
/* [out] */ ULONG *pDataSize);
PVOID ( STDMETHODCALLTYPE *ClientFillBuffer )(
IChannelHook * This,
/* [in] */ REFGUID uExtent,
/* [in] */ REFIID riid,
/* [out][in] */ ULONG *pDataSize,
/* [in] */ void *pDataBuffer);
PVOID ( STDMETHODCALLTYPE *ClientNotify )(
IChannelHook * This,
/* [in] */ REFGUID uExtent,
/* [in] */ REFIID riid,
/* [in] */ ULONG cbDataSize,
/* [in] */ void *pDataBuffer,
/* [in] */ DWORD lDataRep,
/* [in] */ HRESULT hrFault);
PVOID ( STDMETHODCALLTYPE *ServerNotify )(
IChannelHook * This,
/* [in] */ REFGUID uExtent,
/* [in] */ REFIID riid,
/* [in] */ ULONG cbDataSize,
/* [in] */ void *pDataBuffer,
/* [in] */ DWORD lDataRep);
PVOID ( STDMETHODCALLTYPE *ServerGetSize )(
IChannelHook * This,
/* [in] */ REFGUID uExtent,
/* [in] */ REFIID riid,
/* [in] */ HRESULT hrFault,
/* [out] */ ULONG *pDataSize);
PVOID ( STDMETHODCALLTYPE *ServerFillBuffer )(
IChannelHook * This,
/* [in] */ REFGUID uExtent,
/* [in] */ REFIID riid,
/* [out][in] */ ULONG *pDataSize,
/* [in] */ void *pDataBuffer,
/* [in] */ HRESULT hrFault);
END_INTERFACE
} IChannelHookVtbl;
@@ -0,0 +1,39 @@
typedef struct IRpcChannelBufferVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IRpcChannelBuffer * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IRpcChannelBuffer * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IRpcChannelBuffer * This);
HRESULT ( STDMETHODCALLTYPE *GetBuffer )(
IRpcChannelBuffer * This,
/* [in] */ RPCOLEMESSAGE *pMessage,
/* [in] */ REFIID riid);
HRESULT ( STDMETHODCALLTYPE *SendReceive )(
IRpcChannelBuffer * This,
/* [out][in] */ RPCOLEMESSAGE *pMessage,
/* [out] */ ULONG *pStatus);
HRESULT ( STDMETHODCALLTYPE *FreeBuffer )(
IRpcChannelBuffer * This,
/* [in] */ RPCOLEMESSAGE *pMessage);
HRESULT ( STDMETHODCALLTYPE *GetDestCtx )(
IRpcChannelBuffer * This,
/* [out] */ DWORD *pdwDestContext,
/* [out] */ void **ppvDestContext);
HRESULT ( STDMETHODCALLTYPE *IsConnected )(
IRpcChannelBuffer * This);
END_INTERFACE
} IRpcChannelBufferVtbl;
@@ -0,0 +1,26 @@
typedef struct IRpcHelperVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IRpcHelper * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IRpcHelper * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IRpcHelper * This);
HRESULT ( STDMETHODCALLTYPE *GetDCOMProtocolVersion )(
IRpcHelper * This,
/* [out] */ DWORD *pComVersion);
HRESULT ( STDMETHODCALLTYPE *GetIIDFromOBJREF )(
IRpcHelper * This,
/* [in] */ void *pObjRef,
/* [out] */ IID **piid);
END_INTERFACE
} IRpcHelperVtbl;
@@ -0,0 +1,29 @@
typedef struct IRpcOptionsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IRpcOptions * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IRpcOptions * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IRpcOptions * This);
HRESULT ( STDMETHODCALLTYPE *Set )(
IRpcOptions * This,
/* [in] */ IUnknown *pPrx,
/* [in] */ DWORD dwProperty,
/* [in] */ ULONG_PTR dwValue);
HRESULT ( STDMETHODCALLTYPE *Query )(
IRpcOptions * This,
/* [in] */ IUnknown *pPrx,
/* [in] */ DWORD dwProperty,
/* [out] */ ULONG_PTR *pdwValue);
END_INTERFACE
} IRpcOptionsVtbl;
@@ -0,0 +1,45 @@
typedef struct IRpcStubBufferVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IRpcStubBuffer * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ PVOID *ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IRpcStubBuffer * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IRpcStubBuffer * This);
HRESULT ( STDMETHODCALLTYPE *Connect )(
IRpcStubBuffer * This,
/* [in] */ IUnknown *pUnkServer);
PVOID ( STDMETHODCALLTYPE *Disconnect )(
IRpcStubBuffer * This);
HRESULT ( STDMETHODCALLTYPE *Invoke )(
IRpcStubBuffer * This,
/* [in] */ RPCOLEMESSAGE *_prpcmsg,
/* [in] */ IRpcChannelBuffer *_pRpcChannelBuffer);
// IRpcStubBuffer *
PVOID ( STDMETHODCALLTYPE *IsIIDSupported )(
IRpcStubBuffer * This,
/* [in] */ REFIID riid);
ULONG ( STDMETHODCALLTYPE *CountRefs )(
IRpcStubBuffer * This);
HRESULT ( STDMETHODCALLTYPE *DebugServerQueryInterface )(
IRpcStubBuffer * This,
PVOID *ppv);
PVOID ( STDMETHODCALLTYPE *DebugServerRelease )(
IRpcStubBuffer * This,
PVOID pv);
END_INTERFACE
} IRpcStubBufferVtbl;
+29 -8
View File
@@ -19,8 +19,8 @@ class COMInterface(ctypes.c_void_p):
# So COMInterface completely bypass the HRESULT
# return value check on restype by setting the restype to COMHRESULT
# But we add the 'errcheck' callbakc capacity for all COMInterface and subclasses
# So the default implem of the callbakc must have the same behavior as
# But we add the 'errcheck' callback capacity for all COMInterface and subclasses
# So the default implem of the callback must have the same behavior as
# standard HRESULT restype.
# This is why default errcheck callback call ctypes._check_HRESULT
def _default_errcheck(self, result, func, args):
@@ -42,12 +42,33 @@ class COMInterface(ctypes.c_void_p):
description = "<NULL>" if not self.value else ""
return "<{0}{1} at {2:#x}>".format(type(self).__name__, description, id(self))
# Simplified API for QueryInterface for interface embeding there IID
def query(self, interfacetype):
interface = interfacetype()
self.QueryInterface(interface.IID, interface)
return interface
# Simplified API for QueryInterface for interface embeding their IID
# Or for string/Obj
def query(self, interface, target=None):
if isinstance(interface, str): # We have a GUID
interface_iid = IID.from_string(interface)
if target is None:
target = IUnknown()
elif issubclass(interface, COMInterface): # We have a PFW COM interface
interface_iid = interface.IID
if target is None:
target = interface() # Use an instance of the ComInterface as target of the QueryInterface
else:
# We have something else (A gdef.GUID probably)
interface_iid = interface
if target is None:
target = IUnknown()
self.QueryInterface(interface_iid, target)
return target
def marshal(self, target_iid=None, destination=MSHCTX_NOSHAREDMEM, flags=MSHLFLAGS_NORMAL):
if target_iid is None:
target_iid = self.IID
mystream = windows.com.MemoryIStream.create()
windows.winproxy.CoMarshalInterface(mystream, target_iid, self, destination, 0, flags)
mystream.seek(0)
buffer = mystream.read(0xffffffff) # Todo: release stuff
return buffer
@@ -0,0 +1,7 @@
#define BG_JOB_ENUM_ALL_USERS 0x0001
#define BG_NOTIFY_JOB_TRANSFERRED 0x0001
#define BG_NOTIFY_JOB_ERROR 0x0002
#define BG_NOTIFY_DISABLE 0x0004
#define BG_NOTIFY_JOB_MODIFICATION 0x0008
#define BG_NOTIFY_FILE_TRANSFERRED 0x0010
@@ -0,0 +1,145 @@
#define MAX_DEVICE_ID_LEN 200
#define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN
#define MAX_GUID_STRING_LEN 39 // 38 chars + terminator null
#define MAX_CLASS_NAME_LEN 32
#define MAX_PROFILE_LEN 80
#define MAX_CONFIG_VALUE 9999
#define MAX_INSTANCE_VALUE 9999
#define MAX_MEM_REGISTERS 9 // Win95 compatibility--not applicable to 32-bit ConfigMgr
#define MAX_IO_PORTS 20 // Win95 compatibility--not applicable to 32-bit ConfigMgr
#define MAX_IRQS 7 // Win95 compatibility--not applicable to 32-bit ConfigMgr
#define MAX_DMA_CHANNELS 7 // Win95 compatibility--not applicable to 32-bit ConfigMgr
#define DWORD_MAX 0xffffffff
#define DWORDLONG_MAX 0xffffffffffffffff
#define CM_DEVCAP_LOCKSUPPORTED (0x00000001)
#define CM_DEVCAP_EJECTSUPPORTED (0x00000002)
#define CM_DEVCAP_REMOVABLE (0x00000004)
#define CM_DEVCAP_DOCKDEVICE (0x00000008)
#define CM_DEVCAP_UNIQUEID (0x00000010)
#define CM_DEVCAP_SILENTINSTALL (0x00000020)
#define CM_DEVCAP_RAWDEVICEOK (0x00000040)
#define CM_DEVCAP_SURPRISEREMOVALOK (0x00000080)
#define CM_DEVCAP_HARDWAREDISABLED (0x00000100)
#define CM_DEVCAP_NONDYNAMIC (0x00000200)
//
// Resource types
//
#define ResType_All (0x00000000) // Return all resource types
#define ResType_None (0x00000000) // Arbitration always succeeded
#define ResType_Mem (0x00000001) // Physical address resource
#define ResType_IO (0x00000002) // Physical I/O address resource
#define ResType_DMA (0x00000003) // DMA channels resource
#define ResType_IRQ (0x00000004) // IRQ resource
#define ResType_DoNotUse (0x00000005) // Used as spacer to sync subsequent ResTypes w/NT
#define ResType_BusNumber (0x00000006) // bus number resource
#define ResType_MemLarge (0x00000007) // Memory resources >= 4GB
#define ResType_MAX (0x00000007) // Maximum known (arbitrated) ResType
#define ResType_Ignored_Bit (0x00008000) // Ignore this resource
#define ResType_ClassSpecific (0x0000FFFF) // class-specific resource
#define ResType_Reserved (0x00008000) // reserved for internal use
#define ResType_DevicePrivate (0x00008001) // device private data
#define ResType_PcCardConfig (0x00008002) // PC Card configuration data
#define ResType_MfCardConfig (0x00008003) // MF Card configuration data
#define ResType_Connection (0x00008004) // Connection (Resource Hub) resource
//
// Logical Config Flags (specified in call to CM_Get_First_Log_Conf
//
#define BASIC_LOG_CONF 0x00000000 // Specifies the req list.
#define FILTERED_LOG_CONF 0x00000001 // Specifies the filtered req list.
#define ALLOC_LOG_CONF 0x00000002 // Specifies the Alloc Element.
#define BOOT_LOG_CONF 0x00000003 // Specifies the RM Alloc Element.
#define FORCED_LOG_CONF 0x00000004 // Specifies the Forced Log Conf
#define OVERRIDE_LOG_CONF 0x00000005 // Specifies the Override req list.
#define NUM_LOG_CONF 0x00000006 // Number of Log Conf type
#define LOG_CONF_BITS 0x00000007 // The bits of the log conf type.
#define PRIORITY_EQUAL_FIRST (0x00000008) // Same priority, new one first
#define PRIORITY_EQUAL_LAST (0x00000000) // Same priority, new one last
#define PRIORITY_BIT (0x00000008)
//
// Configuration Manager CONFIGRET return status codes
//
#define CR_SUCCESS (0x00000000)
#define CR_DEFAULT (0x00000001)
#define CR_OUT_OF_MEMORY (0x00000002)
#define CR_INVALID_POINTER (0x00000003)
#define CR_INVALID_FLAG (0x00000004)
#define CR_INVALID_DEVNODE (0x00000005)
#define CR_INVALID_DEVINST CR_INVALID_DEVNODE
#define CR_INVALID_RES_DES (0x00000006)
#define CR_INVALID_LOG_CONF (0x00000007)
#define CR_INVALID_ARBITRATOR (0x00000008)
#define CR_INVALID_NODELIST (0x00000009)
#define CR_DEVNODE_HAS_REQS (0x0000000A)
#define CR_DEVINST_HAS_REQS CR_DEVNODE_HAS_REQS
#define CR_INVALID_RESOURCEID (0x0000000B)
#define CR_DLVXD_NOT_FOUND (0x0000000C) // WIN 95 ONLY
#define CR_NO_SUCH_DEVNODE (0x0000000D)
#define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE
#define CR_NO_MORE_LOG_CONF (0x0000000E)
#define CR_NO_MORE_RES_DES (0x0000000F)
#define CR_ALREADY_SUCH_DEVNODE (0x00000010)
#define CR_ALREADY_SUCH_DEVINST CR_ALREADY_SUCH_DEVNODE
#define CR_INVALID_RANGE_LIST (0x00000011)
#define CR_INVALID_RANGE (0x00000012)
#define CR_FAILURE (0x00000013)
#define CR_NO_SUCH_LOGICAL_DEV (0x00000014)
#define CR_CREATE_BLOCKED (0x00000015)
#define CR_NOT_SYSTEM_VM (0x00000016) // WIN 95 ONLY
#define CR_REMOVE_VETOED (0x00000017)
#define CR_APM_VETOED (0x00000018)
#define CR_INVALID_LOAD_TYPE (0x00000019)
#define CR_BUFFER_SMALL (0x0000001A)
#define CR_NO_ARBITRATOR (0x0000001B)
#define CR_NO_REGISTRY_HANDLE (0x0000001C)
#define CR_REGISTRY_ERROR (0x0000001D)
#define CR_INVALID_DEVICE_ID (0x0000001E)
#define CR_INVALID_DATA (0x0000001F)
#define CR_INVALID_API (0x00000020)
#define CR_DEVLOADER_NOT_READY (0x00000021)
#define CR_NEED_RESTART (0x00000022)
#define CR_NO_MORE_HW_PROFILES (0x00000023)
#define CR_DEVICE_NOT_THERE (0x00000024)
#define CR_NO_SUCH_VALUE (0x00000025)
#define CR_WRONG_TYPE (0x00000026)
#define CR_INVALID_PRIORITY (0x00000027)
#define CR_NOT_DISABLEABLE (0x00000028)
#define CR_FREE_RESOURCES (0x00000029)
#define CR_QUERY_VETOED (0x0000002A)
#define CR_CANT_SHARE_IRQ (0x0000002B)
#define CR_NO_DEPENDENT (0x0000002C)
#define CR_SAME_RESOURCES (0x0000002D)
#define CR_NO_SUCH_REGISTRY_KEY (0x0000002E)
#define CR_INVALID_MACHINENAME (0x0000002F) // NT ONLY
#define CR_REMOTE_COMM_FAILURE (0x00000030) // NT ONLY
#define CR_MACHINE_UNAVAILABLE (0x00000031) // NT ONLY
#define CR_NO_CM_SERVICES (0x00000032) // NT ONLY
#define CR_ACCESS_DENIED (0x00000033) // NT ONLY
#define CR_CALL_NOT_IMPLEMENTED (0x00000034)
#define CR_INVALID_PROPERTY (0x00000035)
#define CR_DEVICE_INTERFACE_ACTIVE (0x00000036)
#define CR_NO_SUCH_DEVICE_INTERFACE (0x00000037)
#define CR_INVALID_REFERENCE_STRING (0x00000038)
#define CR_INVALID_CONFLICT_LIST (0x00000039)
#define CR_INVALID_INDEX (0x0000003A)
#define CR_INVALID_STRUCTURE_SIZE (0x0000003B)
#define NUM_CR_RESULTS (0x0000003C)
#define PCD_MAX_MEMORY 2
#define PCD_MAX_IO 2
@@ -0,0 +1,29 @@
#define ORPCF_NULL ( 0 )
#define ORPCF_LOCAL ( 1 )
#define ORPCF_RESERVED1 ( 2 )
#define ORPCF_RESERVED2 ( 4 )
#define ORPCF_RESERVED3 ( 8 )
#define ORPCF_RESERVED4 ( 16 )
#define ORPCF_INPUT_SYNC ORPCF_RESERVED1
#define ORPCF_ASYNC ORPCF_RESERVED2
#define ORPCF_DYNAMIC_CLOAKING ORPCF_RESERVED3
#define ORPCF_REJECTED ORPCF_RESERVED1
#define ORPCF_RETRY_LATER ORPCF_RESERVED2
#define OBJREF_SIGNATURE ( 0x574f454d )
#define OBJREF_STANDARD ( 0x1 )
#define OBJREF_HANDLER ( 0x2 )
#define OBJREF_CUSTOM ( 0x4 )
#define OBJREF_EXTENDED ( 0x8 )
#define SORF_OXRES1 ( 0x1 )
#define SORF_OXRES2 ( 0x20 )
#define SORF_OXRES3 ( 0x40 )
#define SORF_OXRES4 ( 0x80 )
#define SORF_OXRES5 ( 0x100 )
#define SORF_OXRES6 ( 0x200 )
#define SORF_OXRES7 ( 0x400 )
#define SORF_OXRES8 ( 0x800 )
#define SORF_NULL ( 0 )
#define SORF_NOPING ( 0x1000 )
@@ -0,0 +1,153 @@
#define ALG_CLASS_ANY (0)
#define ALG_CLASS_SIGNATURE (1 << 13)
#define ALG_CLASS_MSG_ENCRYPT (2 << 13)
#define ALG_CLASS_DATA_ENCRYPT (3 << 13)
#define ALG_CLASS_HASH (4 << 13)
#define ALG_CLASS_KEY_EXCHANGE (5 << 13)
#define ALG_CLASS_ALL (7 << 13)
/* Algorithm types */
#define ALG_TYPE_ANY (0)
#define ALG_TYPE_DSS (1 << 9)
#define ALG_TYPE_RSA (2 << 9)
#define ALG_TYPE_BLOCK (3 << 9)
#define ALG_TYPE_STREAM (4 << 9)
#define ALG_TYPE_DH (5 << 9)
#define ALG_TYPE_SECURECHANNEL (6 << 9)
#define ALG_TYPE_ECDH (7 << 9)
/* SIDs */
#define ALG_SID_ANY (0)
/* RSA SIDs */
#define ALG_SID_RSA_ANY 0
#define ALG_SID_RSA_PKCS 1
#define ALG_SID_RSA_MSATWORK 2
#define ALG_SID_RSA_ENTRUST 3
#define ALG_SID_RSA_PGP 4
/* DSS SIDs */
#define ALG_SID_DSS_ANY 0
#define ALG_SID_DSS_PKCS 1
#define ALG_SID_DSS_DMS 2
#define ALG_SID_ECDSA 3
/* DES SIDs */
#define ALG_SID_DES 1
#define ALG_SID_3DES 3
#define ALG_SID_DESX 4
#define ALG_SID_IDEA 5
#define ALG_SID_CAST 6
#define ALG_SID_SAFERSK64 7
#define ALG_SID_SAFERSK128 8
#define ALG_SID_3DES_112 9
#define ALG_SID_CYLINK_MEK 12
#define ALG_SID_RC5 13
#define ALG_SID_AES_128 14
#define ALG_SID_AES_192 15
#define ALG_SID_AES_256 16
#define ALG_SID_AES 17
/* Fortezza */
#define ALG_SID_SKIPJACK 10
#define ALG_SID_TEK 11
/* Diffie-Hellmans SIDs */
#define ALG_SID_DH_SANDF 1
#define ALG_SID_DH_EPHEM 2
#define ALG_SID_AGREED_KEY_ANY 3
#define ALG_SID_KEA 4
#define ALG_SID_ECDH 5
#define ALG_SID_ECDH_EPHEM 6
/* RC2 SIDs */
#define ALG_SID_RC4 1
#define ALG_SID_RC2 2
#define ALG_SID_SEAL 2
/* Hash SIDs */
#define ALG_SID_MD2 1
#define ALG_SID_MD4 2
#define ALG_SID_MD5 3
#define ALG_SID_SHA 4
#define ALG_SID_SHA1 ALG_SID_SHA
#define ALG_SID_MAC 5
#define ALG_SID_RIPEMD 6
#define ALG_SID_RIPEMD160 7
#define ALG_SID_SSL3SHAMD5 8
#define ALG_SID_HMAC 9
#define ALG_SID_TLS1PRF 10
#define ALG_SID_HASH_REPLACE_OWF 11
#define ALG_SID_SHA_256 12
#define ALG_SID_SHA_384 13
#define ALG_SID_SHA_512 14
/* SCHANNEL SIDs */
#define ALG_SID_SSL3_MASTER 1
#define ALG_SID_SCHANNEL_MASTER_HASH 2
#define ALG_SID_SCHANNEL_MAC_KEY 3
#define ALG_SID_PCT1_MASTER 4
#define ALG_SID_SSL2_MASTER 5
#define ALG_SID_TLS1_MASTER 6
#define ALG_SID_SCHANNEL_ENC_KEY 7
#define ALG_SID_EXAMPLE 80
#define ALG_SID_ECMQV 1
/* Algorithm Definitions */
#define CALG_MD2 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2)
#define CALG_MD4 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4)
#define CALG_MD5 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5)
#define CALG_SHA (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA)
#define CALG_SHA1 CALG_SHA
#define CALG_MAC (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC)
#define CALG_SSL3_SHAMD5 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5)
#define CALG_HMAC (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HMAC)
#define CALG_TLS1PRF (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF)
#define CALG_HASH_REPLACE_OWF (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HASH_REPLACE_OWF)
#define CALG_SHA_256 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256)
#define CALG_SHA_384 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384)
#define CALG_SHA_512 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512)
#define CALG_RSA_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY)
#define CALG_DSS_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY)
#define CALG_NO_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_ANY | ALG_SID_ANY)
#define CALG_ECDSA (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_ECDSA)
#define CALG_DH_SF (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_SANDF)
#define CALG_DH_EPHEM (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_EPHEM)
#define CALG_AGREEDKEY_ANY (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_AGREED_KEY_ANY)
#define CALG_KEA_KEYX (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_KEA)
#define CALG_HUGHES_MD5 (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ANY | ALG_SID_MD5)
#define CALG_ECDH (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_ECDH)
#define CALG_ECDH_EPHEM (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ECDH | ALG_SID_ECDH_EPHEM)
#define CALG_RSA_KEYX (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_RSA | ALG_SID_RSA_ANY)
#define CALG_ECMQV (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ANY | ALG_SID_ECMQV)
#define CALG_DES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DES)
#define CALG_RC2 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_RC2)
#define CALG_3DES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES)
#define CALG_3DES_112 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES_112)
#define CALG_DESX (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DESX)
#define CALG_AES_128 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_128)
#define CALG_AES_192 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_192)
#define CALG_AES_256 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_256)
#define CALG_AES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES)
#define CALG_RC4 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC4)
#define CALG_SEAL (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_SEAL)
#define CALG_RC5 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC5)
#define CALG_SKIPJACK (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_SKIPJACK)
#define CALG_TEK (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_TEK)
#define CALG_CYLINK_MEK (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_CYLINK_MEK)
#define CALG_SSL3_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL3_MASTER)
#define CALG_SCHANNEL_MASTER_HASH (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MASTER_HASH)
#define CALG_SCHANNEL_MAC_KEY (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MAC_KEY)
#define CALG_SCHANNEL_ENC_KEY (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_ENC_KEY)
#define CALG_PCT1_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_PCT1_MASTER)
#define CALG_SSL2_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL2_MASTER)
#define CALG_TLS1_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_TLS1_MASTER)
/* Protocol Flags */
#define CRYPT_FLAG_PCT1 0x0001
#define CRYPT_FLAG_SSL2 0x0002
#define CRYPT_FLAG_SSL3 0x0004
#define CRYPT_FLAG_TLS1 0x0008
#define CRYPT_FLAG_IPSEC 0x0010
#define CRYPT_FLAG_SIGNING 0x0020
#define HP_ALGID 0x0001 // Hash algorithm
#define HP_HASHVAL 0x0002 // Hash value
#define HP_HASHSIZE 0x0004 // Hash value size
#define HP_HMAC_INFO 0x0005 // information for creating an HMAC
#define HP_TLS1PRF_LABEL 0x0006 // label for TLS1 PRF
#define HP_TLS1PRF_SEED 0x0007 // seed for TLS1 PRF
@@ -0,0 +1,58 @@
#define FILE_DEVICE_8042_PORT 0x00000027
#define FILE_DEVICE_ACPI 0x00000032
#define FILE_DEVICE_BATTERY 0x00000029
#define FILE_DEVICE_BEEP 0x00000001
#define FILE_DEVICE_BUS_EXTENDER 0x0000002a
#define FILE_DEVICE_CD_ROM 0x00000002
#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003
#define FILE_DEVICE_CHANGER 0x00000030
#define FILE_DEVICE_CONTROLLER 0x00000004
#define FILE_DEVICE_DATALINK 0x00000005
#define FILE_DEVICE_DFS 0x00000006
#define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035
#define FILE_DEVICE_DFS_VOLUME 0x00000036
#define FILE_DEVICE_DISK 0x00000007
#define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008
#define FILE_DEVICE_DVD 0x00000033
#define FILE_DEVICE_FILE_SYSTEM 0x00000009
#define FILE_DEVICE_FIPS 0x0000003a
#define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034
#define FILE_DEVICE_INPORT_PORT 0x0000000a
#define FILE_DEVICE_KEYBOARD 0x0000000b
#define FILE_DEVICE_KS 0x0000002f
#define FILE_DEVICE_KSEC 0x00000039
#define FILE_DEVICE_MAILSLOT 0x0000000c
#define FILE_DEVICE_MASS_STORAGE 0x0000002d
#define FILE_DEVICE_MIDI_IN 0x0000000d
#define FILE_DEVICE_MIDI_OUT 0x0000000e
#define FILE_DEVICE_MODEM 0x0000002b
#define FILE_DEVICE_MOUSE 0x0000000f
#define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010
#define FILE_DEVICE_NAMED_PIPE 0x00000011
#define FILE_DEVICE_NETWORK 0x00000012
#define FILE_DEVICE_NETWORK_BROWSER 0x00000013
#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014
#define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028
#define FILE_DEVICE_NULL 0x00000015
#define FILE_DEVICE_PARALLEL_PORT 0x00000016
#define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017
#define FILE_DEVICE_PRINTER 0x00000018
#define FILE_DEVICE_SCANNER 0x00000019
#define FILE_DEVICE_SCREEN 0x0000001c
#define FILE_DEVICE_SERENUM 0x00000037
#define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a
#define FILE_DEVICE_SERIAL_PORT 0x0000001b
#define FILE_DEVICE_SMARTCARD 0x00000031
#define FILE_DEVICE_SMB 0x0000002e
#define FILE_DEVICE_SOUND 0x0000001d
#define FILE_DEVICE_STREAMS 0x0000001e
#define FILE_DEVICE_TAPE 0x0000001f
#define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020
#define FILE_DEVICE_TERMSRV 0x00000038
#define FILE_DEVICE_TRANSPORT 0x00000021
#define FILE_DEVICE_UNKNOWN 0x00000022
#define FILE_DEVICE_VDM 0x0000002c
#define FILE_DEVICE_VIDEO 0x00000023
#define FILE_DEVICE_VIRTUAL_DISK 0x00000024
#define FILE_DEVICE_WAVE_IN 0x00000025
#define FILE_DEVICE_WAVE_OUT 0x00000026
@@ -0,0 +1,4 @@
#define VIRTUAL_STORAGE_TYPE_DEVICE_UNKNOWN 0
#define VIRTUAL_STORAGE_TYPE_DEVICE_ISO 1
#define VIRTUAL_STORAGE_TYPE_DEVICE_VHD 2
#define VIRTUAL_STORAGE_TYPE_DEVICE_VHDX 3
@@ -0,0 +1,94 @@
//
// CryptProtect PromptStruct dwPromtFlags
//
//
// prompt on unprotect
#define CRYPTPROTECT_PROMPT_ON_UNPROTECT 0x1 // 1<<0
//
// prompt on protect
#define CRYPTPROTECT_PROMPT_ON_PROTECT 0x2 // 1<<1
#define CRYPTPROTECT_PROMPT_RESERVED 0x04 // reserved, do not use.
//
// default to strong variant UI protection (user supplied password currently).
#define CRYPTPROTECT_PROMPT_STRONG 0x08 // 1<<3
//
// require strong variant UI protection (user supplied password currently).
#define CRYPTPROTECT_PROMPT_REQUIRE_STRONG 0x10 // 1<<4
//
// CryptProtectData and CryptUnprotectData dwFlags
//
// for remote-access situations where ui is not an option
// if UI was specified on protect or unprotect operation, the call
// will fail and GetLastError() will indicate ERROR_PASSWORD_RESTRICTION
#define CRYPTPROTECT_UI_FORBIDDEN 0x1
//
// per machine protected data -- any user on machine where CryptProtectData
// took place may CryptUnprotectData
#define CRYPTPROTECT_LOCAL_MACHINE 0x4
//
// force credential synchronize during CryptProtectData()
// Synchronize is only operation that occurs during this operation
#define CRYPTPROTECT_CRED_SYNC 0x8
//
// Generate an Audit on protect and unprotect operations
//
#define CRYPTPROTECT_AUDIT 0x10
//
// Protect data with a non-recoverable key
//
#define CRYPTPROTECT_NO_RECOVERY 0x20
//
// Verify the protection of a protected blob
//
#define CRYPTPROTECT_VERIFY_PROTECTION 0x40
//
// Regenerate the local machine protection
//
#define CRYPTPROTECT_CRED_REGENERATE 0x80
// flags reserved for system use
#define CRYPTPROTECT_FIRST_RESERVED_FLAGVAL 0x0FFFFFFF
#define CRYPTPROTECT_LAST_RESERVED_FLAGVAL 0xFFFFFFFF
//
// The buffer length passed into CryptProtectMemory and CryptUnprotectMemory
// must be a multiple of this length (or zero).
//
#define CRYPTPROTECTMEMORY_BLOCK_SIZE 16
//
// CryptProtectMemory/CryptUnprotectMemory dwFlags
//
//
// Encrypt/Decrypt within current process context.
//
#define CRYPTPROTECTMEMORY_SAME_PROCESS 0x00
//
// Encrypt/Decrypt across process boundaries.
// eg: encrypted buffer passed across LPC to another process which calls CryptUnprotectMemory.
//
#define CRYPTPROTECTMEMORY_CROSS_PROCESS 0x01
//
// Encrypt/Decrypt across callers with same LogonId.
// eg: encrypted buffer passed across LPC to another process which calls CryptUnprotectMemory whilst impersonating.
//
#define CRYPTPROTECTMEMORY_SAME_LOGON 0x02
@@ -0,0 +1,5 @@
#define APPLICATION_ERROR_MASK 0x20000000
#define ERROR_SEVERITY_SUCCESS 0x00000000
#define ERROR_SEVERITY_INFORMATIONAL 0x40000000
#define ERROR_SEVERITY_WARNING 0x80000000
#define ERROR_SEVERITY_ERROR 0xC0000000
@@ -0,0 +1,145 @@
//
// Enable flags for Kernel Events on Win7 and above
//
#define EVENT_TRACE_FLAG_DISPATCHER 0x00000800 // scheduler (ReadyThread)
#define EVENT_TRACE_FLAG_VIRTUAL_ALLOC 0x00004000 // VM operations
//
// Enable flags for Kernel Events on Win8 and above
//
#define EVENT_TRACE_FLAG_VAMAP 0x00008000 // map/unmap (excluding images)
#define EVENT_TRACE_FLAG_NO_SYSCONFIG 0x10000000 // Do not do sys config rundown
//
// Pre-defined Enable flags for everybody else
//
#define EVENT_TRACE_FLAG_EXTENSION 0x80000000 // Indicates more flags
#define EVENT_TRACE_FLAG_FORWARD_WMI 0x40000000 // Can forward to WMI
#define EVENT_TRACE_FLAG_ENABLE_RESERVE 0x20000000 // Reserved
//
// Logger Mode flags
//
#define EVENT_TRACE_FILE_MODE_NONE 0x00000000 // Logfile is off
#define EVENT_TRACE_FILE_MODE_SEQUENTIAL 0x00000001 // Log sequentially
#define EVENT_TRACE_FILE_MODE_CIRCULAR 0x00000002 // Log in circular manner
#define EVENT_TRACE_FILE_MODE_APPEND 0x00000004 // Append sequential log
#define EVENT_TRACE_REAL_TIME_MODE 0x00000100 // Real time mode on
#define EVENT_TRACE_DELAY_OPEN_FILE_MODE 0x00000200 // Delay opening file
#define EVENT_TRACE_BUFFERING_MODE 0x00000400 // Buffering mode only
#define EVENT_TRACE_PRIVATE_LOGGER_MODE 0x00000800 // Process Private Logger
#define EVENT_TRACE_ADD_HEADER_MODE 0x00001000 // Add a logfile header
#define EVENT_TRACE_USE_GLOBAL_SEQUENCE 0x00004000 // Use global sequence no.
#define EVENT_TRACE_USE_LOCAL_SEQUENCE 0x00008000 // Use local sequence no.
#define EVENT_TRACE_RELOG_MODE 0x00010000 // Relogger
#define EVENT_TRACE_USE_PAGED_MEMORY 0x01000000 // Use pageable buffers
//
// Logger Mode flags on XP and above
//
#define EVENT_TRACE_FILE_MODE_NEWFILE 0x00000008 // Auto-switch log file
#define EVENT_TRACE_FILE_MODE_PREALLOCATE 0x00000020 // Pre-allocate mode
//
// Logger Mode flags on Vista and above
//
#define EVENT_TRACE_NONSTOPPABLE_MODE 0x00000040 // Session cannot be stopped (Autologger only)
#define EVENT_TRACE_SECURE_MODE 0x00000080 // Secure session
#define EVENT_TRACE_USE_KBYTES_FOR_SIZE 0x00002000 // Use KBytes as file size unit
#define EVENT_TRACE_PRIVATE_IN_PROC 0x00020000 // In process private logger
#define EVENT_TRACE_MODE_RESERVED 0x00100000 // Reserved bit, used to signal Heap/Critsec tracing
//
// Logger Mode flags on Win7 and above
//
#define EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING 0x10000000 // Use this for low frequency sessions.
//
// Logger Mode flags on Win8 and above
//
#define EVENT_TRACE_SYSTEM_LOGGER_MODE 0x02000000 // Receive events from SystemTraceProvider
#define EVENT_TRACE_ADDTO_TRIAGE_DUMP 0x80000000 // Add ETW buffers to triage dumps
#define EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN 0x00400000 // Stop on hybrid shutdown
#define EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN 0x00800000 // Persist on hybrid shutdown
//
// Logger Mode flags on Blue and above
//
#define EVENT_TRACE_INDEPENDENT_SESSION_MODE 0x08000000 // Independent logger session
//
// ControlTrace Codes
//
#define EVENT_TRACE_CONTROL_QUERY 0
#define EVENT_TRACE_CONTROL_STOP 1
#define EVENT_TRACE_CONTROL_UPDATE 2
//
// Flush ControlTrace Codes for XP and above
//
#define EVENT_TRACE_CONTROL_FLUSH 3 // Flushes all the buffers
//
// Consumer API
//
#define PROCESS_TRACE_MODE_REAL_TIME 0x00000100
#define PROCESS_TRACE_MODE_RAW_TIMESTAMP 0x00001000
#define PROCESS_TRACE_MODE_EVENT_RECORD 0x10000000
#define EVENT_HEADER_PROPERTY_XML 0x0001
#define EVENT_HEADER_PROPERTY_FORWARDED_XML 0x0002
#define EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG 0x0004
#define EVENT_HEADER_FLAG_EXTENDED_INFO 0x0001
#define EVENT_HEADER_FLAG_PRIVATE_SESSION 0x0002
#define EVENT_HEADER_FLAG_STRING_ONLY 0x0004
#define EVENT_HEADER_FLAG_TRACE_MESSAGE 0x0008
#define EVENT_HEADER_FLAG_NO_CPUTIME 0x0010
#define EVENT_HEADER_FLAG_32_BIT_HEADER 0x0020
#define EVENT_HEADER_FLAG_64_BIT_HEADER 0x0040
#define EVENT_HEADER_FLAG_CLASSIC_HEADER 0x0100
#define EVENT_HEADER_FLAG_PROCESSOR_INDEX 0x0200
// Event types for system configuration records
//
#define EVENT_TRACE_TYPE_CONFIG_CPU 0x0A // CPU Configuration
#define EVENT_TRACE_TYPE_CONFIG_PHYSICALDISK 0x0B // Physical Disk Configuration
#define EVENT_TRACE_TYPE_CONFIG_LOGICALDISK 0x0C // Logical Disk Configuration
#define EVENT_TRACE_TYPE_CONFIG_NIC 0x0D // NIC Configuration
#define EVENT_TRACE_TYPE_CONFIG_VIDEO 0x0E // Video Adapter Configuration
#define EVENT_TRACE_TYPE_CONFIG_SERVICES 0x0F // Active Services
#define EVENT_TRACE_TYPE_CONFIG_POWER 0x10 // ACPI Configuration
#define EVENT_TRACE_TYPE_CONFIG_NETINFO 0x11 // Networking Configuration
//
// Enable flags for SystemControlGuid only
//
#define EVENT_TRACE_FLAG_PROCESS 0x00000001 // process start & end
#define EVENT_TRACE_FLAG_THREAD 0x00000002 // thread start & end
#define EVENT_TRACE_FLAG_IMAGE_LOAD 0x00000004 // image load
#define EVENT_TRACE_FLAG_DISK_IO 0x00000100 // physical disk IO
#define EVENT_TRACE_FLAG_DISK_FILE_IO 0x00000200 // requires disk IO
#define EVENT_TRACE_FLAG_MEMORY_PAGE_FAULTS 0x00001000 // all page faults
#define EVENT_TRACE_FLAG_MEMORY_HARD_FAULTS 0x00002000 // hard faults only
#define EVENT_TRACE_FLAG_NETWORK_TCPIP 0x00010000 // tcpip send & receive
#define EVENT_TRACE_FLAG_REGISTRY 0x00020000 // registry calls
#define EVENT_TRACE_FLAG_DBGPRINT 0x00040000 // DbgPrint(ex) Calls
#define EVENT_TRACE_FLAG_VOLMGR 0x00200000 // volume manager traces
@@ -0,0 +1,72 @@
#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001 // winnt
#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002 // winnt
#define FILE_NOTIFY_CHANGE_NAME 0x00000003
#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004 // winnt
#define FILE_NOTIFY_CHANGE_SIZE 0x00000008 // winnt
#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010 // winnt
#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020 // winnt
#define FILE_NOTIFY_CHANGE_CREATION 0x00000040 // winnt
#define FILE_NOTIFY_CHANGE_EA 0x00000080
#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100 // winnt
#define FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200
#define FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400
#define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
#define FILE_NOTIFY_VALID_MASK 0x00000fff
#define FILE_ACTION_ADDED 0x00000001 // winnt
#define FILE_ACTION_REMOVED 0x00000002 // winnt
#define FILE_ACTION_MODIFIED 0x00000003 // winnt
#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004 // winnt
#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005 // winnt
#define FILE_ACTION_ADDED_STREAM 0x00000006
#define FILE_ACTION_REMOVED_STREAM 0x00000007
#define FILE_ACTION_MODIFIED_STREAM 0x00000008
#define FILE_ACTION_REMOVED_BY_DELETE 0x00000009
#define FILE_ACTION_ID_NOT_TUNNELLED 0x0000000A
#define FILE_ACTION_TUNNELLED_ID_COLLISION 0x0000000B
#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
#define FILE_CASE_PRESERVED_NAMES 0x00000002
#define FILE_UNICODE_ON_DISK 0x00000004
#define FILE_PERSISTENT_ACLS 0x00000008
#define FILE_FILE_COMPRESSION 0x00000010
#define FILE_VOLUME_QUOTAS 0x00000020
#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
#define FILE_VOLUME_IS_COMPRESSED 0x00008000
#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
#define FILE_SUPPORTS_ENCRYPTION 0x00020000
#define FILE_NAMED_STREAMS 0x00040000
#define FILE_READ_ONLY_VOLUME 0x00080000
#define FILE_SEQUENTIAL_WRITE_ONCE 0x00100000
#define FILE_SUPPORTS_TRANSACTIONS 0x00200000
#define FILE_SUPPORTS_HARD_LINKS 0x00400000
#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000
#define FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000
#define FILE_SUPPORTS_USN_JOURNAL 0x02000000
#define FILE_SHARE_READ 0x00000001
#define FILE_SHARE_WRITE 0x00000002
#define FILE_SHARE_DELETE 0x00000004
#define FILE_ATTRIBUTE_READONLY 0x00000001
#define FILE_ATTRIBUTE_HIDDEN 0x00000002
#define FILE_ATTRIBUTE_SYSTEM 0x00000004
#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
#define FILE_ATTRIBUTE_ARCHIVE 0x00000020
#define FILE_ATTRIBUTE_DEVICE 0x00000040
#define FILE_ATTRIBUTE_NORMAL 0x00000080
#define FILE_ATTRIBUTE_TEMPORARY 0x00000100
#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
#define FILE_ATTRIBUTE_COMPRESSED 0x00000800
#define FILE_ATTRIBUTE_OFFLINE 0x00001000
#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
#define FILE_ATTRIBUTE_VIRTUAL 0x00010000
@@ -0,0 +1,39 @@
/* From ntdbg.h */
#define X86_KGDT_NULL 0
#define X86_KGDT_R0_CODE 8
#define X86_KGDT_R0_DATA 16
#define X86_KGDT_R3_CODE 24
#define X86_KGDT_R3_DATA 32
#define X86_KGDT_TSS 40
#define X86_KGDT_R0_PCR 48
#define X86_KGDT_R3_TEB 56
#define X86_KGDT_VDM_TILE 64
#define X86_KGDT_LDT 72
#define X86_KGDT_DF_TSS 80
#define X86_KGDT_NMI_TSS 88
#define X86_FRAME_EDITED 0xfff8
#define X86_MODE_MASK 1
#define X86_EFLAGS_V86_MASK 0x00020000
#define AMD64_KGDT64_NULL (0 * 16) // NULL descriptor
#define AMD64_KGDT64_R0_CODE (1 * 16) // kernel mode 64-bit code
#define AMD64_KGDT64_R0_DATA (1 * 16) + 8 // kernel mode 64-bit data (stack)
#define AMD64_KGDT64_R3_CMCODE (2 * 16) // user mode 32-bit code
#define AMD64_KGDT64_R3_DATA (2 * 16) + 8 // user mode 32-bit data
#define AMD64_KGDT64_R3_CODE (3 * 16) // user mode 64-bit code
#define AMD64_KGDT64_SYS_TSS (4 * 16) // kernel mode system task state
#define AMD64_KGDT64_R3_CMTEB (5 * 16) // user mode 32-bit TEB
#define AMD64_KGDT64_LAST (6 * 16)
/* From i386.h & amd64.h */
#define MODE_BIT 0
#define MODE_MASK 1 // ntosp
#define RPL_MASK 3
/* Custom usefull define for CS userland values 0x23 * 0x33 */
#define CS_USER_32B (AMD64_KGDT64_R3_CMCODE | RPL_MASK)
#define CS_USER_64B (AMD64_KGDT64_R3_CODE | RPL_MASK)
@@ -0,0 +1,359 @@
/* CTL_CODE is directly defined in the .py template to simpify parsing of define */
// #define CTL_CODE( DeviceType, Function, Method, Access ) (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
#define METHOD_BUFFERED 0
#define METHOD_IN_DIRECT 1
#define METHOD_OUT_DIRECT 2
#define METHOD_NEITHER 3
#define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT
#define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT
#define FILE_ANY_ACCESS 0
#define FILE_SPECIAL_ACCESS (FILE_ANY_ACCESS)
#define FILE_READ_ACCESS ( 0x0001 ) // file & pipe
#define FILE_WRITE_ACCESS ( 0x0002 ) // file & pipe
#define FILE_DISPOSITION_DO_NOT_DELETE 0x00000000
#define FILE_DISPOSITION_DELETE 0x00000001
#define FILE_DISPOSITION_POSIX_SEMANTICS 0x00000002
#define FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK 0x00000004
#define FILE_DISPOSITION_ON_CLOSE 0x00000008
#define FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE 0x00000010
/* From: ntifs.h */
//
// The following is a list of the native file system fsctls followed by
// additional network file system fsctls. Some values have been
// decommissioned.
//
#define FSCTL_REQUEST_OPLOCK_LEVEL_1 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REQUEST_OPLOCK_LEVEL_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REQUEST_BATCH_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_OPLOCK_BREAK_ACKNOWLEDGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_OPBATCH_ACK_CLOSE_PENDING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_OPLOCK_BREAK_NOTIFY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_LOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_UNLOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_DISMOUNT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
// decommissioned fsctl value 9
#define FSCTL_IS_VOLUME_MOUNTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_IS_PATHNAME_VALID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS) // PATHNAME_BUFFER,
#define FSCTL_MARK_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
// decommissioned fsctl value 13
#define FSCTL_QUERY_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS)
#define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
// decommissioned fsctl value 17
// decommissioned fsctl value 18
#define FSCTL_SET_BOOTLOADER_ACCESSED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS)
#define FSCTL_MARK_AS_SYSTEM_HIVE FSCTL_SET_BOOTLOADER_ACCESSED
#define FSCTL_OPLOCK_BREAK_ACK_NO_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_INVALIDATE_VOLUMES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_QUERY_FAT_BPB CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS) // FSCTL_QUERY_FAT_BPB_BUFFER
#define FSCTL_REQUEST_FILTER_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_FILESYSTEM_GET_STATISTICS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS) // FILESYSTEM_STATISTICS
#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS) // NTFS_VOLUME_DATA_BUFFER
#define FSCTL_GET_NTFS_FILE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS) // NTFS_FILE_RECORD_INPUT_BUFFER, NTFS_FILE_RECORD_OUTPUT_BUFFER
#define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS) // STARTING_LCN_INPUT_BUFFER, VOLUME_BITMAP_BUFFER
#define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS) // STARTING_VCN_INPUT_BUFFER, RETRIEVAL_POINTERS_BUFFER
#define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) // MOVE_FILE_DATA,
#define FSCTL_IS_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
// decommissioned fsctl value 31
#define FSCTL_ALLOW_EXTENDED_DASD_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER, FILE_ANY_ACCESS)
// decommissioned fsctl value 33
// decommissioned fsctl value 34
#define FSCTL_FIND_FILES_BY_SID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS)
// decommissioned fsctl value 36
// decommissioned fsctl value 37
#define FSCTL_SET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) // FILE_OBJECTID_BUFFER
#define FSCTL_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS) // FILE_OBJECTID_BUFFER
#define FSCTL_DELETE_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) // REPARSE_DATA_BUFFER,
#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) // REPARSE_DATA_BUFFER
#define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) // REPARSE_DATA_BUFFER,
#define FSCTL_ENUM_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_ANY_ACCESS) // MFT_ENUM_DATA,
#define FSCTL_SECURITY_ID_CHECK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_DATA) // BULK_SECURITY_TEST_DATA,
#define FSCTL_READ_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_ANY_ACCESS) // READ_USN_JOURNAL_DATA, USN
#define FSCTL_SET_OBJECT_ID_EXTENDED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
#define FSCTL_CREATE_OR_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS) // FILE_OBJECTID_BUFFER
#define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
#define FSCTL_SET_ZERO_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA) // FILE_ZERO_DATA_INFORMATION,
#define FSCTL_QUERY_ALLOCATED_RANGES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA) // FILE_ALLOCATED_RANGE_BUFFER, FILE_ALLOCATED_RANGE_BUFFER
#define FSCTL_ENABLE_UPGRADE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 52, METHOD_BUFFERED, FILE_WRITE_DATA)
#define FSCTL_SET_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_NEITHER, FILE_ANY_ACCESS) // ENCRYPTION_BUFFER, DECRYPTION_STATUS_BUFFER
#define FSCTL_ENCRYPTION_FSCTL_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS)
#define FSCTL_WRITE_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_SPECIAL_ACCESS) // ENCRYPTED_DATA_INFO, EXTENDED_ENCRYPTED_DATA_INFO
#define FSCTL_READ_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_SPECIAL_ACCESS) // REQUEST_RAW_ENCRYPTED_DATA, ENCRYPTED_DATA_INFO, EXTENDED_ENCRYPTED_DATA_INFO
#define FSCTL_CREATE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_ANY_ACCESS) // CREATE_USN_JOURNAL_DATA,
#define FSCTL_READ_FILE_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_ANY_ACCESS) // Read the Usn Record for a file
#define FSCTL_WRITE_USN_CLOSE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_ANY_ACCESS) // Generate Close Usn Record
#define FSCTL_EXTEND_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_QUERY_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 61, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_DELETE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_MARK_HANDLE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SIS_COPYFILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SIS_LINK_FILES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 65, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
// decommissioned fsctl value 66
// decommissioned fsctl value 67
// decommissioned fsctl value 68
#define FSCTL_RECALL_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS)
// decommissioned fsctl value 70
#define FSCTL_READ_FROM_PLEX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 71, METHOD_OUT_DIRECT, FILE_READ_DATA)
#define FSCTL_FILE_PREFETCH CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 72, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) // FILE_PREFETCH
#define FSCTL_MAKE_MEDIA_COMPATIBLE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 76, METHOD_BUFFERED, FILE_WRITE_DATA) // UDFS R/W
#define FSCTL_SET_DEFECT_MANAGEMENT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_DATA) // UDFS R/W
#define FSCTL_QUERY_SPARING_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS) // UDFS R/W
#define FSCTL_QUERY_ON_DISK_VOLUME_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS) // C/UDFS
#define FSCTL_SET_VOLUME_COMPRESSION_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 80, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) // VOLUME_COMPRESSION_STATE
// decommissioned fsctl value 80
#define FSCTL_TXFS_MODIFY_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 81, METHOD_BUFFERED, FILE_WRITE_DATA) // TxF
#define FSCTL_TXFS_QUERY_RM_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 82, METHOD_BUFFERED, FILE_READ_DATA) // TxF
// decommissioned fsctl value 83
#define FSCTL_TXFS_ROLLFORWARD_REDO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 84, METHOD_BUFFERED, FILE_WRITE_DATA) // TxF
#define FSCTL_TXFS_ROLLFORWARD_UNDO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 85, METHOD_BUFFERED, FILE_WRITE_DATA) // TxF
#define FSCTL_TXFS_START_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 86, METHOD_BUFFERED, FILE_WRITE_DATA) // TxF
#define FSCTL_TXFS_SHUTDOWN_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 87, METHOD_BUFFERED, FILE_WRITE_DATA) // TxF
#define FSCTL_TXFS_READ_BACKUP_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 88, METHOD_BUFFERED, FILE_READ_DATA) // TxF
#define FSCTL_TXFS_WRITE_BACKUP_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 89, METHOD_BUFFERED, FILE_WRITE_DATA) // TxF
#define FSCTL_TXFS_CREATE_SECONDARY_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 90, METHOD_BUFFERED, FILE_WRITE_DATA) // TxF
#define FSCTL_TXFS_GET_METADATA_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 91, METHOD_BUFFERED, FILE_READ_DATA) // TxF
#define FSCTL_TXFS_GET_TRANSACTED_VERSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 92, METHOD_BUFFERED, FILE_READ_DATA) // TxF
// decommissioned fsctl value 93
#define FSCTL_TXFS_SAVEPOINT_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 94, METHOD_BUFFERED, FILE_WRITE_DATA) // TxF
#define FSCTL_TXFS_CREATE_MINIVERSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 95, METHOD_BUFFERED, FILE_WRITE_DATA) // TxF
// decommissioned fsctl value 96
// decommissioned fsctl value 97
// decommissioned fsctl value 98
#define FSCTL_TXFS_TRANSACTION_ACTIVE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 99, METHOD_BUFFERED, FILE_READ_DATA) // TxF
#define FSCTL_SET_ZERO_ON_DEALLOCATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
#define FSCTL_SET_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 102, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_GET_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 103, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_WAIT_FOR_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 104, METHOD_BUFFERED, FILE_ANY_ACCESS)
// decommissioned fsctl value 105
#define FSCTL_INITIATE_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 106, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CSC_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 107, METHOD_NEITHER, FILE_ANY_ACCESS) // CSC internal implementation
#define FSCTL_SHRINK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 108, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) // SHRINK_VOLUME_INFORMATION
#define FSCTL_SET_SHORT_NAME_BEHAVIOR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_DFSR_SET_GHOST_HANDLE_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 110, METHOD_BUFFERED, FILE_ANY_ACCESS)
//
// Values 111 - 119 are reserved for FSRM.
//
#define FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES \
CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_READ_DATA) // TxF
#define FSCTL_TXFS_LIST_TRANSACTIONS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 121, METHOD_BUFFERED, FILE_READ_DATA) // TxF
#define FSCTL_QUERY_PAGEFILE_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 122, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_RESET_VOLUME_ALLOCATION_HINTS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 123, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_QUERY_DEPENDENT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 124, METHOD_BUFFERED, FILE_ANY_ACCESS) // Dependency File System Filter
#define FSCTL_SD_GLOBAL_CHANGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 125, METHOD_BUFFERED, FILE_ANY_ACCESS) // Query/Change NTFS Security Descriptors
#define FSCTL_TXFS_READ_BACKUP_INFORMATION2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 126, METHOD_BUFFERED, FILE_ANY_ACCESS) // TxF
#define FSCTL_LOOKUP_STREAM_FROM_CLUSTER CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 127, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_TXFS_WRITE_BACKUP_INFORMATION2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 128, METHOD_BUFFERED, FILE_ANY_ACCESS) // TxF
#define FSCTL_FILE_TYPE_NOTIFICATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 129, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_FILE_LEVEL_TRIM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 130, METHOD_BUFFERED, FILE_WRITE_DATA)
//
// Values 131 - 139 are reserved for FSRM.
//
#define FSCTL_GET_BOOT_AREA_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 140, METHOD_BUFFERED, FILE_ANY_ACCESS) // BOOT_AREA_INFO
#define FSCTL_GET_RETRIEVAL_POINTER_BASE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 141, METHOD_BUFFERED, FILE_ANY_ACCESS) // RETRIEVAL_POINTER_BASE
#define FSCTL_SET_PERSISTENT_VOLUME_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 142, METHOD_BUFFERED, FILE_ANY_ACCESS) // FILE_FS_PERSISTENT_VOLUME_INFORMATION
#define FSCTL_QUERY_PERSISTENT_VOLUME_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 143, METHOD_BUFFERED, FILE_ANY_ACCESS) // FILE_FS_PERSISTENT_VOLUME_INFORMATION
#define FSCTL_REQUEST_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 144, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CSV_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 145, METHOD_BUFFERED, FILE_ANY_ACCESS) // CSV_TUNNEL_REQUEST
#define FSCTL_IS_CSV_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 146, METHOD_BUFFERED, FILE_ANY_ACCESS) // IS_CSV_FILE
#define FSCTL_QUERY_FILE_SYSTEM_RECOGNITION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 147, METHOD_BUFFERED, FILE_ANY_ACCESS) //
#define FSCTL_CSV_GET_VOLUME_PATH_NAME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 148, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CSV_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 149, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 150, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_IS_FILE_ON_CSV_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 151, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CORRUPTION_HANDLING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 152, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_OFFLOAD_READ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 153, METHOD_BUFFERED, FILE_READ_ACCESS)
#define FSCTL_OFFLOAD_WRITE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 154, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define FSCTL_CSV_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 155, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_PURGE_FAILURE_MODE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 156, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_QUERY_FILE_LAYOUT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 157, METHOD_NEITHER, FILE_ANY_ACCESS)
#define FSCTL_IS_VOLUME_OWNED_BYCSVFS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 158, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_GET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS) // FSCTL_GET_INTEGRITY_INFORMATION_BUFFER
#define FSCTL_SET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) // FSCTL_SET_INTEGRITY_INFORMATION_BUFFER
#define FSCTL_QUERY_FILE_REGIONS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 161, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_RKF_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 171, METHOD_NEITHER, FILE_ANY_ACCESS) // Resume Key Filter
#define FSCTL_SCRUB_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 172, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REPAIR_COPIES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 173, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define FSCTL_DISABLE_LOCAL_BUFFERING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 174, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CSV_MGMT_LOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 175, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 176, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_ADVANCE_FILE_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 177, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CSV_SYNC_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 178, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CSV_QUERY_VETO_FILE_DIRECT_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 179, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_WRITE_USN_REASON CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 180, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CSV_CONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 181, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_GET_REFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 182, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CSV_H_BREAKING_SYNC_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 185, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_QUERY_STORAGE_CLASSES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 187, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_QUERY_REGION_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 188, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_USN_TRACK_MODIFIED_RANGES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 189, METHOD_BUFFERED, FILE_ANY_ACCESS) // USN_TRACK_MODIFIED_RANGES
#define FSCTL_QUERY_SHARED_VIRTUAL_DISK_SUPPORT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 192, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SVHDX_SYNC_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 193, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SVHDX_SET_INITIATOR_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 194, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_EXTERNAL_BACKING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 195, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
#define FSCTL_GET_EXTERNAL_BACKING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 196, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_DELETE_EXTERNAL_BACKING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 197, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
#define FSCTL_ENUM_EXTERNAL_BACKING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 198, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_ENUM_OVERLAY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 199, METHOD_NEITHER, FILE_ANY_ACCESS)
#define FSCTL_ADD_OVERLAY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 204, METHOD_BUFFERED, FILE_WRITE_DATA)
#define FSCTL_REMOVE_OVERLAY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 205, METHOD_BUFFERED, FILE_WRITE_DATA)
#define FSCTL_UPDATE_OVERLAY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 206, METHOD_BUFFERED, FILE_WRITE_DATA)
#define FSCTL_SHUFFLE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 208, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) // SHUFFLE_FILE_DATA
#define FSCTL_DUPLICATE_EXTENTS_TO_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 209, METHOD_BUFFERED, FILE_WRITE_DATA )
#define FSCTL_SPARSE_OVERALLOCATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 211, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
#define FSCTL_STORAGE_QOS_CONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 212, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_INITIATE_FILE_METADATA_OPTIMIZATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 215, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
#define FSCTL_QUERY_FILE_METADATA_OPTIMIZATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 216, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
#define FSCTL_SVHDX_ASYNC_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 217, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_GET_WOF_VERSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 218, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_HCS_SYNC_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 219, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_HCS_ASYNC_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 220, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_QUERY_EXTENT_READ_CACHE_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 221, METHOD_NEITHER, FILE_ANY_ACCESS) // VCN_RANGE_INPUT_BUFFER, EXTENT_READ_CACHE_INFO_BUFFER
#define FSCTL_QUERY_REFS_VOLUME_COUNTER_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 222, METHOD_NEITHER, FILE_ANY_ACCESS) // REFS_VOLUME_COUNTER_INFO_INPUT_BUFFER, VOLUME_REFS_INFO_BUFFER
#define FSCTL_CLEAN_VOLUME_METADATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 223, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_INTEGRITY_INFORMATION_EX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 224, METHOD_BUFFERED, FILE_ANY_ACCESS) // FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX
#define FSCTL_SUSPEND_OVERLAY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 225, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_VIRTUAL_STORAGE_QUERY_PROPERTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 226, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_FILESYSTEM_GET_STATISTICS_EX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 227, METHOD_BUFFERED, FILE_ANY_ACCESS) // FILESYSTEM_STATISTICS_EX
#define FSCTL_QUERY_VOLUME_CONTAINER_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 228, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_LAYER_ROOT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 229, METHOD_BUFFERED, FILE_ANY_ACCESS) // CONTAINER_ROOT_INFO_INPUT CONTAINER_ROOT_INFO_OUTPUT
#define FSCTL_QUERY_DIRECT_ACCESS_EXTENTS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 230, METHOD_NEITHER, FILE_ANY_ACCESS) // QUERY_DIRECT_ACCESS_EXTENTS
#define FSCTL_NOTIFY_STORAGE_SPACE_ALLOCATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 231, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SSDI_STORAGE_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 232, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_QUERY_DIRECT_IMAGE_ORIGINAL_BASE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 233, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_READ_UNPRIVILEGED_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 234, METHOD_NEITHER, FILE_ANY_ACCESS) // READ_USN_JOURNAL_DATA, USN
#define FSCTL_GHOST_FILE_EXTENTS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 235, METHOD_BUFFERED, FILE_WRITE_ACCESS) // FSCTL_GHOST_FILE_EXTENTS_INPUT_BUFFER
#define FSCTL_QUERY_GHOSTED_FILE_EXTENTS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 236, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_UNMAP_SPACE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 237, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_HCS_SYNC_NO_WRITE_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 238, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_START_VIRTUALIZATION_INSTANCE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 240, METHOD_BUFFERED, FILE_ANY_ACCESS) // VIRTUALIZATION_INSTANCE_INFO_INPUT, VIRTUALIZATION_INSTANCE_INFO_OUTPUT
#define FSCTL_GET_FILTER_FILE_IDENTIFIER CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 241, METHOD_BUFFERED, FILE_ANY_ACCESS) // GET_FILTER_FILE_IDENTIFIER_INPUT, GET_FILTER_FILE_IDENTIFIER_OUTPUT
#define FSCTL_STREAMS_QUERY_PARAMETERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 241, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_STREAMS_ASSOCIATE_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 242, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_STREAMS_QUERY_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 243, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 244, METHOD_NEITHER, FILE_ANY_ACCESS) // STARTING_VCN_INPUT_BUFFER, RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER
#define FSCTL_QUERY_VOLUME_NUMA_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 245, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_DEALLOCATE_RANGES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 246, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_QUERY_REFS_SMR_VOLUME_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 247, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_REFS_SMR_VOLUME_GC_PARAMETERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 248, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_REFS_FILE_STRICTLY_SEQUENTIAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 249, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_DUPLICATE_EXTENTS_TO_FILE_EX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 250, METHOD_BUFFERED, FILE_WRITE_DATA)
#define FSCTL_QUERY_BAD_RANGES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 251, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_DAX_ALLOC_ALIGNMENT_HINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 252, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_DELETE_CORRUPTED_REFS_CONTAINER CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 253, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SCRUB_UNDISCOVERABLE_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 254, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_NOTIFY_DATA_CHANGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 255, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_START_VIRTUALIZATION_INSTANCE_EX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 256, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_ENCRYPTION_KEY_CONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 257, METHOD_BUFFERED, FILE_ANY_ACCESS) // protect/unprotect under DPL
#define FSCTL_VIRTUAL_STORAGE_SET_BEHAVIOR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 258, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_REPARSE_POINT_EX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 259, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) // REPARSE_DATA_BUFFER_EX
#define FSCTL_REARRANGE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 264, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) // REARRANGE_FILE_DATA
#define FSCTL_VIRTUAL_STORAGE_PASSTHROUGH CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 265, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_GET_RETRIEVAL_POINTER_COUNT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 266, METHOD_NEITHER, FILE_ANY_ACCESS) // STARTING_VCN_INPUT_BUFFER, RETRIEVAL_POINTER_COUNT
#define FSCTL_ENABLE_PER_IO_FLAGS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 267, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_QUERY_ASYNC_DUPLICATE_EXTENTS_STATUS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 268, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SMB_SHARE_FLUSH_AND_PURGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 271, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 272, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_MANAGE_BYPASS_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 274, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_DEALLOCATE_RANGES_EX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 275, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_CACHED_RUNS_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 276, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_SET_VOLUME_COMPRESSION_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 277, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_QUERY_VOLUME_COMPRESSION_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 278, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_DUPLICATE_CLUSTER CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 279, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CREATE_LCN_WEAK_REFERENCE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 280, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CLEAR_LCN_WEAK_REFERENCE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 281, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_QUERY_LCN_WEAK_REFERENCE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 282, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CLEAR_ALL_LCN_WEAK_REFERENCES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 283, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_SET_VOLUME_DEDUP_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 284, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_QUERY_VOLUME_DEDUP_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 285, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_LMR_QUERY_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 286, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_CHECKPOINT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 287, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_QUERY_VOLUME_TOTAL_SHARED_LCNS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 288, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_UPGRADE_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 289, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_SET_VOLUME_IO_METRICS_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 290, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_QUERY_VOLUME_IO_METRICS_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 291, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_REFS_SET_ROLLBACK_PROTECTION_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 292, METHOD_BUFFERED, FILE_ANY_ACCESS) // REFS_SET_ROLLBACK_PROTECTION_INFO_INPUT_BUFFER
#define FSCTL_REFS_QUERY_ROLLBACK_PROTECTION_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 293, METHOD_BUFFERED, FILE_ANY_ACCESS) // REFS_QUERY_ROLLBACK_PROTECTION_INFO_OUTPUT_BUFFER
#define FSCTL_FILE_SOV_CHECK_RANGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 294, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_CASCADES_REFS_SET_FILE_REMOTE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 295, METHOD_BUFFERED, FILE_ANY_ACCESS)
//
// These are the IOCTLs supported by the mount point manager.
//
#define MOUNTMGR_DEVICE_NAME u"\\Device\\MountPointManager"
#define MOUNTMGR_DOS_DEVICE_NAME u"\\\\.\\MountPointManager"
#define MOUNTMGRCONTROLTYPE 0x0000006D // 'm'
#define MOUNTDEVCONTROLTYPE 0x0000004D // 'M'
#define IOCTL_MOUNTMGR_CREATE_POINT CTL_CODE(MOUNTMGRCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_DELETE_POINTS CTL_CODE(MOUNTMGRCONTROLTYPE, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_QUERY_POINTS CTL_CODE(MOUNTMGRCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_MOUNTMGR_DELETE_POINTS_DBONLY CTL_CODE(MOUNTMGRCONTROLTYPE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER CTL_CODE(MOUNTMGRCONTROLTYPE, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_AUTO_DL_ASSIGNMENTS CTL_CODE(MOUNTMGRCONTROLTYPE, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED CTL_CODE(MOUNTMGRCONTROLTYPE, 6, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED CTL_CODE(MOUNTMGRCONTROLTYPE, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_CHANGE_NOTIFY CTL_CODE(MOUNTMGRCONTROLTYPE, 8, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_MOUNTMGR_KEEP_LINKS_WHEN_OFFLINE CTL_CODE(MOUNTMGRCONTROLTYPE, 9, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_CHECK_UNPROCESSED_VOLUMES CTL_CODE(MOUNTMGRCONTROLTYPE, 10, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION CTL_CODE(MOUNTMGRCONTROLTYPE, 11, METHOD_BUFFERED, FILE_READ_ACCESS)
@@ -0,0 +1,14 @@
#define MM_SHARED_USER_DATA_VA 0x7FFE0000
#define XSTATE_LEGACY_FLOATING_POINT (0)
#define XSTATE_LEGACY_SSE (1)
#define XSTATE_GSSE (2)
#define XSTATE_AVX (XSTATE_GSSE)
#define XSTATE_MPX_BNDREGS (3)
#define XSTATE_MPX_BNDCSR (4)
#define XSTATE_AVX512_KMASK (5)
#define XSTATE_AVX512_ZMM_H (6)
#define XSTATE_AVX512_ZMM (7)
#define XSTATE_IPT (8)
#define XSTATE_LWP (62)
#define MAXIMUM_XSTATE_FEATURES (64)
@@ -0,0 +1,5 @@
#define FC_ALLOCATE_ALL_NODES 0x01
#define FC_DONT_FREE 0x02
#define FC_ALLOCED_ON_STACK 0x04
#define FC_SIMPLE_POINTER 0x08
#define FC_POINTER_DEREF 0x10
@@ -0,0 +1,608 @@
#define MAX_PREFERRED_LENGTH 0xffffffff //((DWORD) -1)
#define NERR_Success 0 /* Success */
/*** NERR_BASE is the base of error codes from network utilities,
* chosen to avoid conflict with system and redirector error codes.
* 2100 is a value that has been assigned to us by system.
*/
#define NERR_BASE 2100
/**INTERNAL_ONLY**/
/***********WARNING ****************
*See the comment in lmcons.h for *
*info on the allocation of errors *
***********************************/
/***********WARNING ****************
*The range 2750-2799 has been *
*allocated to the IBM LAN Server *
***********************************/
/***********WARNING ****************
*The range 2900-2999 has been *
*reserved for Microsoft OEMs *
***********************************/
/**END_INTERNAL**/
/* UNUSED BASE+0 */
/* UNUSED BASE+1 */
#define NERR_NetNotStarted (NERR_BASE+2) /* The workstation driver is not installed. */
#define NERR_UnknownServer (NERR_BASE+3) /* The server could not be located. */
#define NERR_ShareMem (NERR_BASE+4) /* An internal error occurred. The network cannot access a shared memory segment. */
#define NERR_NoNetworkResource (NERR_BASE+5) /* A network resource shortage occurred . */
#define NERR_RemoteOnly (NERR_BASE+6) /* This operation is not supported on workstations. */
#define NERR_DevNotRedirected (NERR_BASE+7) /* The device is not connected. */
/* NERR_BASE+8 is used for ERROR_CONNECTED_OTHER_PASSWORD */
/* NERR_BASE+9 is used for ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT */
/* UNUSED BASE+10 */
/* UNUSED BASE+11 */
/* UNUSED BASE+12 */
/* UNUSED BASE+13 */
#define NERR_ServerNotStarted (NERR_BASE+14) /* The Server service is not started. */
#define NERR_ItemNotFound (NERR_BASE+15) /* The queue is empty. */
#define NERR_UnknownDevDir (NERR_BASE+16) /* The device or directory does not exist. */
#define NERR_RedirectedPath (NERR_BASE+17) /* The operation is invalid on a redirected resource. */
#define NERR_DuplicateShare (NERR_BASE+18) /* The name has already been shared. */
#define NERR_NoRoom (NERR_BASE+19) /* The server is currently out of the requested resource. */
/* UNUSED BASE+20 */
#define NERR_TooManyItems (NERR_BASE+21) /* Requested addition of items exceeds the maximum allowed. */
#define NERR_InvalidMaxUsers (NERR_BASE+22) /* The Peer service supports only two simultaneous users. */
#define NERR_BufTooSmall (NERR_BASE+23) /* The API return buffer is too small. */
/* UNUSED BASE+24 */
/* UNUSED BASE+25 */
/* UNUSED BASE+26 */
#define NERR_RemoteErr (NERR_BASE+27) /* A remote API error occurred. */
/* UNUSED BASE+28 */
/* UNUSED BASE+29 */
/* UNUSED BASE+30 */
#define NERR_LanmanIniError (NERR_BASE+31) /* An error occurred when opening or reading the configuration file. */
/* UNUSED BASE+32 */
/* UNUSED BASE+33 */
/* UNUSED BASE+34 */
/* UNUSED BASE+35 */
#define NERR_NetworkError (NERR_BASE+36) /* A general network error occurred. */
#define NERR_WkstaInconsistentState (NERR_BASE+37)
/* The Workstation service is in an inconsistent state. Restart the computer before restarting the Workstation service. */
#define NERR_WkstaNotStarted (NERR_BASE+38) /* The Workstation service has not been started. */
#define NERR_BrowserNotStarted (NERR_BASE+39) /* The requested information is not available. */
#define NERR_InternalError (NERR_BASE+40) /* An internal Windows error occurred.*/
#define NERR_BadTransactConfig (NERR_BASE+41) /* The server is not configured for transactions. */
#define NERR_InvalidAPI (NERR_BASE+42) /* The requested API is not supported on the remote server. */
#define NERR_BadEventName (NERR_BASE+43) /* The event name is invalid. */
#define NERR_DupNameReboot (NERR_BASE+44) /* The computer name already exists on the network. Change it and restart the computer. */
/*
* Config API related
* Error codes from BASE+45 to BASE+49
*/
/* UNUSED BASE+45 */
#define NERR_CfgCompNotFound (NERR_BASE+46) /* The specified component could not be found in the configuration information. */
#define NERR_CfgParamNotFound (NERR_BASE+47) /* The specified parameter could not be found in the configuration information. */
#define NERR_LineTooLong (NERR_BASE+49) /* A line in the configuration file is too long. */
/*
* Spooler API related
* Error codes from BASE+50 to BASE+79
*/
#define NERR_QNotFound (NERR_BASE+50) /* The printer does not exist. */
#define NERR_JobNotFound (NERR_BASE+51) /* The print job does not exist. */
#define NERR_DestNotFound (NERR_BASE+52) /* The printer destination cannot be found. */
#define NERR_DestExists (NERR_BASE+53) /* The printer destination already exists. */
#define NERR_QExists (NERR_BASE+54) /* The printer queue already exists. */
#define NERR_QNoRoom (NERR_BASE+55) /* No more printers can be added. */
#define NERR_JobNoRoom (NERR_BASE+56) /* No more print jobs can be added. */
#define NERR_DestNoRoom (NERR_BASE+57) /* No more printer destinations can be added. */
#define NERR_DestIdle (NERR_BASE+58) /* This printer destination is idle and cannot accept control operations. */
#define NERR_DestInvalidOp (NERR_BASE+59) /* This printer destination request contains an invalid control function. */
#define NERR_ProcNoRespond (NERR_BASE+60) /* The print processor is not responding. */
#define NERR_SpoolerNotLoaded (NERR_BASE+61) /* The spooler is not running. */
#define NERR_DestInvalidState (NERR_BASE+62) /* This operation cannot be performed on the print destination in its current state. */
#define NERR_QInvalidState (NERR_BASE+63) /* This operation cannot be performed on the printer queue in its current state. */
#define NERR_JobInvalidState (NERR_BASE+64) /* This operation cannot be performed on the print job in its current state. */
#define NERR_SpoolNoMemory (NERR_BASE+65) /* A spooler memory allocation failure occurred. */
#define NERR_DriverNotFound (NERR_BASE+66) /* The device driver does not exist. */
#define NERR_DataTypeInvalid (NERR_BASE+67) /* The data type is not supported by the print processor. */
#define NERR_ProcNotFound (NERR_BASE+68) /* The print processor is not installed. */
/*
* Service API related
* Error codes from BASE+80 to BASE+99
*/
#define NERR_ServiceTableLocked (NERR_BASE+80) /* The service database is locked. */
#define NERR_ServiceTableFull (NERR_BASE+81) /* The service table is full. */
#define NERR_ServiceInstalled (NERR_BASE+82) /* The requested service has already been started. */
#define NERR_ServiceEntryLocked (NERR_BASE+83) /* The service does not respond to control actions. */
#define NERR_ServiceNotInstalled (NERR_BASE+84) /* The service has not been started. */
#define NERR_BadServiceName (NERR_BASE+85) /* The service name is invalid. */
#define NERR_ServiceCtlTimeout (NERR_BASE+86) /* The service is not responding to the control function. */
#define NERR_ServiceCtlBusy (NERR_BASE+87) /* The service control is busy. */
#define NERR_BadServiceProgName (NERR_BASE+88) /* The configuration file contains an invalid service program name. */
#define NERR_ServiceNotCtrl (NERR_BASE+89) /* The service could not be controlled in its present state. */
#define NERR_ServiceKillProc (NERR_BASE+90) /* The service ended abnormally. */
#define NERR_ServiceCtlNotValid (NERR_BASE+91) /* The requested pause, continue, or stop is not valid for this service. */
#define NERR_NotInDispatchTbl (NERR_BASE+92) /* The service control dispatcher could not find the service name in the dispatch table. */
#define NERR_BadControlRecv (NERR_BASE+93) /* The service control dispatcher pipe read failed. */
#define NERR_ServiceNotStarting (NERR_BASE+94) /* A thread for the new service could not be created. */
/*
* Wksta and Logon API related
* Error codes from BASE+100 to BASE+118
*/
#define NERR_AlreadyLoggedOn (NERR_BASE+100) /* This workstation is already logged on to the local-area network. */
#define NERR_NotLoggedOn (NERR_BASE+101) /* The workstation is not logged on to the local-area network. */
#define NERR_BadUsername (NERR_BASE+102) /* The user name or group name parameter is invalid. */
#define NERR_BadPassword (NERR_BASE+103) /* The password parameter is invalid. */
#define NERR_UnableToAddName_W (NERR_BASE+104) /* @W The logon processor did not add the message alias. */
#define NERR_UnableToAddName_F (NERR_BASE+105) /* The logon processor did not add the message alias. */
#define NERR_UnableToDelName_W (NERR_BASE+106) /* @W The logoff processor did not delete the message alias. */
#define NERR_UnableToDelName_F (NERR_BASE+107) /* The logoff processor did not delete the message alias. */
/* UNUSED BASE+108 */
#define NERR_LogonsPaused (NERR_BASE+109) /* Network logons are paused. */
#define NERR_LogonServerConflict (NERR_BASE+110)/* A centralized logon-server conflict occurred. */
#define NERR_LogonNoUserPath (NERR_BASE+111) /* The server is configured without a valid user path. */
#define NERR_LogonScriptError (NERR_BASE+112) /* An error occurred while loading or running the logon script. */
/* UNUSED BASE+113 */
#define NERR_StandaloneLogon (NERR_BASE+114) /* The logon server was not specified. Your computer will be logged on as STANDALONE. */
#define NERR_LogonServerNotFound (NERR_BASE+115) /* The logon server could not be found. */
#define NERR_LogonDomainExists (NERR_BASE+116) /* There is already a logon domain for this computer. */
#define NERR_NonValidatedLogon (NERR_BASE+117) /* The logon server could not validate the logon. */
/*
* ACF API related (access, user, group)
* Error codes from BASE+119 to BASE+149
*/
#define NERR_ACFNotFound (NERR_BASE+119) /* The security database could not be found. */
#define NERR_GroupNotFound (NERR_BASE+120) /* The group name could not be found. */
#define NERR_UserNotFound (NERR_BASE+121) /* The user name could not be found. */
#define NERR_ResourceNotFound (NERR_BASE+122) /* The resource name could not be found. */
#define NERR_GroupExists (NERR_BASE+123) /* The group already exists. */
#define NERR_UserExists (NERR_BASE+124) /* The account already exists. */
#define NERR_ResourceExists (NERR_BASE+125) /* The resource permission list already exists. */
#define NERR_NotPrimary (NERR_BASE+126) /* This operation is only allowed on the primary domain controller of the domain. */
#define NERR_ACFNotLoaded (NERR_BASE+127) /* The security database has not been started. */
#define NERR_ACFNoRoom (NERR_BASE+128) /* There are too many names in the user accounts database. */
#define NERR_ACFFileIOFail (NERR_BASE+129) /* A disk I/O failure occurred.*/
#define NERR_ACFTooManyLists (NERR_BASE+130) /* The limit of 64 entries per resource was exceeded. */
#define NERR_UserLogon (NERR_BASE+131) /* Deleting a user with a session is not allowed. */
#define NERR_ACFNoParent (NERR_BASE+132) /* The parent directory could not be located. */
#define NERR_CanNotGrowSegment (NERR_BASE+133) /* Unable to add to the security database session cache segment. */
#define NERR_SpeGroupOp (NERR_BASE+134) /* This operation is not allowed on this special group. */
#define NERR_NotInCache (NERR_BASE+135) /* This user is not cached in user accounts database session cache. */
#define NERR_UserInGroup (NERR_BASE+136) /* The user already belongs to this group. */
#define NERR_UserNotInGroup (NERR_BASE+137) /* The user does not belong to this group. */
#define NERR_AccountUndefined (NERR_BASE+138) /* This user account is undefined. */
#define NERR_AccountExpired (NERR_BASE+139) /* This user account has expired. */
#define NERR_InvalidWorkstation (NERR_BASE+140) /* The user is not allowed to log on from this workstation. */
#define NERR_InvalidLogonHours (NERR_BASE+141) /* The user is not allowed to log on at this time. */
#define NERR_PasswordExpired (NERR_BASE+142) /* The password of this user has expired. */
#define NERR_PasswordCantChange (NERR_BASE+143) /* The password of this user cannot change. */
#define NERR_PasswordHistConflict (NERR_BASE+144) /* This password cannot be used now. */
#define NERR_PasswordTooShort (NERR_BASE+145) /* The password does not meet the password policy requirements. Check the minimum password length, password complexity and password history requirements. */
#define NERR_PasswordTooRecent (NERR_BASE+146) /* The password of this user is too recent to change. */
#define NERR_InvalidDatabase (NERR_BASE+147) /* The security database is corrupted. */
#define NERR_DatabaseUpToDate (NERR_BASE+148) /* No updates are necessary to this replicant network/local security database. */
#define NERR_SyncRequired (NERR_BASE+149) /* This replicant database is outdated; synchronization is required. */
/*
* Use API related
* Error codes from BASE+150 to BASE+169
*/
#define NERR_UseNotFound (NERR_BASE+150) /* The network connection could not be found. */
#define NERR_BadAsgType (NERR_BASE+151) /* This asg_type is invalid. */
#define NERR_DeviceIsShared (NERR_BASE+152) /* This device is currently being shared. */
#define NERR_SameAsComputerName (NERR_BASE+153) /* The user name may not be same as computer name. */
/*
* Message Server related
* Error codes BASE+170 to BASE+209
*/
#define NERR_NoComputerName (NERR_BASE+170) /* The computer name could not be added as a message alias. The name may already exist on the network. */
#define NERR_MsgAlreadyStarted (NERR_BASE+171) /* The Messenger service is already started. */
#define NERR_MsgInitFailed (NERR_BASE+172) /* The Messenger service failed to start. */
#define NERR_NameNotFound (NERR_BASE+173) /* The message alias could not be found on the network. */
#define NERR_AlreadyForwarded (NERR_BASE+174) /* This message alias has already been forwarded. */
#define NERR_AddForwarded (NERR_BASE+175) /* This message alias has been added but is still forwarded. */
#define NERR_AlreadyExists (NERR_BASE+176) /* This message alias already exists locally. */
#define NERR_TooManyNames (NERR_BASE+177) /* The maximum number of added message aliases has been exceeded. */
#define NERR_DelComputerName (NERR_BASE+178) /* The computer name could not be deleted.*/
#define NERR_LocalForward (NERR_BASE+179) /* Messages cannot be forwarded back to the same workstation. */
#define NERR_GrpMsgProcessor (NERR_BASE+180) /* An error occurred in the domain message processor. */
#define NERR_PausedRemote (NERR_BASE+181) /* The message was sent, but the recipient has paused the Messenger service. */
#define NERR_BadReceive (NERR_BASE+182) /* The message was sent but not received. */
#define NERR_NameInUse (NERR_BASE+183) /* The message alias is currently in use. Try again later. */
#define NERR_MsgNotStarted (NERR_BASE+184) /* The Messenger service has not been started. */
#define NERR_NotLocalName (NERR_BASE+185) /* The name is not on the local computer. */
#define NERR_NoForwardName (NERR_BASE+186) /* The forwarded message alias could not be found on the network. */
#define NERR_RemoteFull (NERR_BASE+187) /* The message alias table on the remote station is full. */
#define NERR_NameNotForwarded (NERR_BASE+188) /* Messages for this alias are not currently being forwarded. */
#define NERR_TruncatedBroadcast (NERR_BASE+189) /* The broadcast message was truncated. */
#define NERR_InvalidDevice (NERR_BASE+194) /* This is an invalid device name. */
#define NERR_WriteFault (NERR_BASE+195) /* A write fault occurred. */
/* UNUSED BASE+196 */
#define NERR_DuplicateName (NERR_BASE+197) /* A duplicate message alias exists on the network. */
#define NERR_DeleteLater (NERR_BASE+198) /* @W This message alias will be deleted later. */
#define NERR_IncompleteDel (NERR_BASE+199) /* The message alias was not successfully deleted from all networks. */
#define NERR_MultipleNets (NERR_BASE+200) /* This operation is not supported on computers with multiple networks. */
/*
* Server API related
* Error codes BASE+210 to BASE+229
*/
#define NERR_NetNameNotFound (NERR_BASE+210) /* This shared resource does not exist.*/
#define NERR_DeviceNotShared (NERR_BASE+211) /* This device is not shared. */
#define NERR_ClientNameNotFound (NERR_BASE+212) /* A session does not exist with that computer name. */
#define NERR_FileIdNotFound (NERR_BASE+214) /* There is not an open file with that identification number. */
#define NERR_ExecFailure (NERR_BASE+215) /* A failure occurred when executing a remote administration command. */
#define NERR_TmpFile (NERR_BASE+216) /* A failure occurred when opening a remote temporary file. */
#define NERR_TooMuchData (NERR_BASE+217) /* The data returned from a remote administration command has been truncated to 64K. */
#define NERR_DeviceShareConflict (NERR_BASE+218) /* This device cannot be shared as both a spooled and a non-spooled resource. */
#define NERR_BrowserTableIncomplete (NERR_BASE+219) /* The information in the list of servers may be incorrect. */
#define NERR_NotLocalDomain (NERR_BASE+220) /* The computer is not active in this domain. */
#define NERR_IsDfsShare (NERR_BASE+221) /* The share must be removed from the Distributed File System before it can be deleted. */
/*
* CharDev API related
* Error codes BASE+230 to BASE+249
*/
/* UNUSED BASE+230 */
#define NERR_DevInvalidOpCode (NERR_BASE+231) /* The operation is invalid for this device. */
#define NERR_DevNotFound (NERR_BASE+232) /* This device cannot be shared. */
#define NERR_DevNotOpen (NERR_BASE+233) /* This device was not open. */
#define NERR_BadQueueDevString (NERR_BASE+234) /* This device name list is invalid. */
#define NERR_BadQueuePriority (NERR_BASE+235) /* The queue priority is invalid. */
#define NERR_NoCommDevs (NERR_BASE+237) /* There are no shared communication devices. */
#define NERR_QueueNotFound (NERR_BASE+238) /* The queue you specified does not exist. */
#define NERR_BadDevString (NERR_BASE+240) /* This list of devices is invalid. */
#define NERR_BadDev (NERR_BASE+241) /* The requested device is invalid. */
#define NERR_InUseBySpooler (NERR_BASE+242) /* This device is already in use by the spooler. */
#define NERR_CommDevInUse (NERR_BASE+243) /* This device is already in use as a communication device. */
/*
* NetICanonicalize and NetIType and NetIMakeLMFileName
* NetIListCanon and NetINameCheck
* Error codes BASE+250 to BASE+269
*/
#define NERR_InvalidComputer (NERR_BASE+251) /* This computer name is invalid. */
/* UNUSED BASE+252 */
/* UNUSED BASE+253 */
#define NERR_MaxLenExceeded (NERR_BASE+254) /* The string and prefix specified are too long. */
/* UNUSED BASE+255 */
#define NERR_BadComponent (NERR_BASE+256) /* This path component is invalid. */
#define NERR_CantType (NERR_BASE+257) /* Could not determine the type of input. */
/* UNUSED BASE+258 */
/* UNUSED BASE+259 */
#define NERR_TooManyEntries (NERR_BASE+262) /* The buffer for types is not big enough. */
/*
* NetProfile
* Error codes BASE+270 to BASE+276
*/
#define NERR_ProfileFileTooBig (NERR_BASE+270) /* Profile files cannot exceed 64K. */
#define NERR_ProfileOffset (NERR_BASE+271) /* The start offset is out of range. */
#define NERR_ProfileCleanup (NERR_BASE+272) /* The system cannot delete current connections to network resources. */
#define NERR_ProfileUnknownCmd (NERR_BASE+273) /* The system was unable to parse the command line in this file.*/
#define NERR_ProfileLoadErr (NERR_BASE+274) /* An error occurred while loading the profile file. */
#define NERR_ProfileSaveErr (NERR_BASE+275) /* @W Errors occurred while saving the profile file. The profile was partially saved. */
/*
* NetAudit and NetErrorLog
* Error codes BASE+277 to BASE+279
*/
#define NERR_LogOverflow (NERR_BASE+277) /* Log file %1 is full. */
#define NERR_LogFileChanged (NERR_BASE+278) /* This log file has changed between reads. */
#define NERR_LogFileCorrupt (NERR_BASE+279) /* Log file %1 is corrupt. */
/*
* NetRemote
* Error codes BASE+280 to BASE+299
*/
#define NERR_SourceIsDir (NERR_BASE+280) /* The source path cannot be a directory. */
#define NERR_BadSource (NERR_BASE+281) /* The source path is illegal. */
#define NERR_BadDest (NERR_BASE+282) /* The destination path is illegal. */
#define NERR_DifferentServers (NERR_BASE+283) /* The source and destination paths are on different servers. */
/* UNUSED BASE+284 */
#define NERR_RunSrvPaused (NERR_BASE+285) /* The Run server you requested is paused. */
/* UNUSED BASE+286 */
/* UNUSED BASE+287 */
/* UNUSED BASE+288 */
#define NERR_ErrCommRunSrv (NERR_BASE+289) /* An error occurred when communicating with a Run server. */
/* UNUSED BASE+290 */
#define NERR_ErrorExecingGhost (NERR_BASE+291) /* An error occurred when starting a background process. */
#define NERR_ShareNotFound (NERR_BASE+292) /* The shared resource you are connected to could not be found.*/
/* UNUSED BASE+293 */
/* UNUSED BASE+294 */
/*
* NetWksta.sys (redir) returned error codes.
*
* NERR_BASE + (300-329)
*/
#define NERR_InvalidLana (NERR_BASE+300) /* The LAN adapter number is invalid. */
#define NERR_OpenFiles (NERR_BASE+301) /* There are open files on the connection. */
#define NERR_ActiveConns (NERR_BASE+302) /* Active connections still exist. */
#define NERR_BadPasswordCore (NERR_BASE+303) /* This share name or password is invalid. */
#define NERR_DevInUse (NERR_BASE+304) /* The device is being accessed by an active process. */
#define NERR_LocalDrive (NERR_BASE+305) /* The drive letter is in use locally. */
/*
* Alert error codes.
*
* NERR_BASE + (330-339)
*/
#define NERR_AlertExists (NERR_BASE+330) /* The specified client is already registered for the specified event. */
#define NERR_TooManyAlerts (NERR_BASE+331) /* The alert table is full. */
#define NERR_NoSuchAlert (NERR_BASE+332) /* An invalid or nonexistent alert name was raised. */
#define NERR_BadRecipient (NERR_BASE+333) /* The alert recipient is invalid.*/
#define NERR_AcctLimitExceeded (NERR_BASE+334) /* A user's session with this server has been deleted
* because the user's logon hours are no longer valid. */
/*
* Additional Error and Audit log codes.
*
* NERR_BASE +(340-343)
*/
#define NERR_InvalidLogSeek (NERR_BASE+340) /* The log file does not contain the requested record number. */
/* UNUSED BASE+341 */
/* UNUSED BASE+342 */
/* UNUSED BASE+343 */
/*
* Additional UAS and NETLOGON codes
*
* NERR_BASE +(350-359)
*/
#define NERR_BadUasConfig (NERR_BASE+350) /* The user accounts database is not configured correctly. */
#define NERR_InvalidUASOp (NERR_BASE+351) /* This operation is not permitted when the Netlogon service is running. */
#define NERR_LastAdmin (NERR_BASE+352) /* This operation is not allowed on the last administrative account. */
#define NERR_DCNotFound (NERR_BASE+353) /* Could not find domain controller for this domain. */
#define NERR_LogonTrackingError (NERR_BASE+354) /* Could not set logon information for this user. */
#define NERR_NetlogonNotStarted (NERR_BASE+355) /* The Netlogon service has not been started. */
#define NERR_CanNotGrowUASFile (NERR_BASE+356) /* Unable to add to the user accounts database. */
#define NERR_TimeDiffAtDC (NERR_BASE+357) /* This server's clock is not synchronized with the primary domain controller's clock. */
#define NERR_PasswordMismatch (NERR_BASE+358) /* A password mismatch has been detected. */
/*
* Server Integration error codes.
*
* NERR_BASE +(360-369)
*/
#define NERR_NoSuchServer (NERR_BASE+360) /* The server identification does not specify a valid server. */
#define NERR_NoSuchSession (NERR_BASE+361) /* The session identification does not specify a valid session. */
#define NERR_NoSuchConnection (NERR_BASE+362) /* The connection identification does not specify a valid connection. */
#define NERR_TooManyServers (NERR_BASE+363) /* There is no space for another entry in the table of available servers. */
#define NERR_TooManySessions (NERR_BASE+364) /* The server has reached the maximum number of sessions it supports. */
#define NERR_TooManyConnections (NERR_BASE+365) /* The server has reached the maximum number of connections it supports. */
#define NERR_TooManyFiles (NERR_BASE+366) /* The server cannot open more files because it has reached its maximum number. */
#define NERR_NoAlternateServers (NERR_BASE+367) /* There are no alternate servers registered on this server. */
/* UNUSED BASE+368 */
/* UNUSED BASE+369 */
#define NERR_TryDownLevel (NERR_BASE+370) /* Try down-level (remote admin protocol) version of API instead. */
/*
* UPS error codes.
*
* NERR_BASE + (380-384)
*/
#define NERR_UPSDriverNotStarted (NERR_BASE+380) /* The UPS driver could not be accessed by the UPS service. */
#define NERR_UPSInvalidConfig (NERR_BASE+381) /* The UPS service is not configured correctly. */
#define NERR_UPSInvalidCommPort (NERR_BASE+382) /* The UPS service could not access the specified Comm Port. */
#define NERR_UPSSignalAsserted (NERR_BASE+383) /* The UPS indicated a line fail or low battery situation. Service not started. */
#define NERR_UPSShutdownFailed (NERR_BASE+384) /* The UPS service failed to perform a system shut down. */
/*
* Remoteboot error codes.
*
* NERR_BASE + (400-419)
* Error codes 400 - 405 are used by RPLBOOT.SYS.
* Error codes 403, 407 - 416 are used by RPLLOADR.COM,
* Error code 417 is the alerter message of REMOTEBOOT (RPLSERVR.EXE).
* Error code 418 is for when REMOTEBOOT can't start
* Error code 419 is for a disallowed 2nd rpl connection
*
*/
#define NERR_BadDosRetCode (NERR_BASE+400) /* The program below returned an MS-DOS error code:*/
#define NERR_ProgNeedsExtraMem (NERR_BASE+401) /* The program below needs more memory:*/
#define NERR_BadDosFunction (NERR_BASE+402) /* The program below called an unsupported MS-DOS function:*/
#define NERR_RemoteBootFailed (NERR_BASE+403) /* The workstation failed to boot.*/
#define NERR_BadFileCheckSum (NERR_BASE+404) /* The file below is corrupt.*/
#define NERR_NoRplBootSystem (NERR_BASE+405) /* No loader is specified in the boot-block definition file.*/
#define NERR_RplLoadrNetBiosErr (NERR_BASE+406) /* NetBIOS returned an error: The NCB and SMB are dumped above.*/
#define NERR_RplLoadrDiskErr (NERR_BASE+407) /* A disk I/O error occurred.*/
#define NERR_ImageParamErr (NERR_BASE+408) /* Image parameter substitution failed.*/
#define NERR_TooManyImageParams (NERR_BASE+409) /* Too many image parameters cross disk sector boundaries.*/
#define NERR_NonDosFloppyUsed (NERR_BASE+410) /* The image was not generated from an MS-DOS diskette formatted with /S.*/
#define NERR_RplBootRestart (NERR_BASE+411) /* Remote boot will be restarted later.*/
#define NERR_RplSrvrCallFailed (NERR_BASE+412) /* The call to the Remoteboot server failed.*/
#define NERR_CantConnectRplSrvr (NERR_BASE+413) /* Cannot connect to the Remoteboot server.*/
#define NERR_CantOpenImageFile (NERR_BASE+414) /* Cannot open image file on the Remoteboot server.*/
#define NERR_CallingRplSrvr (NERR_BASE+415) /* Connecting to the Remoteboot server...*/
#define NERR_StartingRplBoot (NERR_BASE+416) /* Connecting to the Remoteboot server...*/
#define NERR_RplBootServiceTerm (NERR_BASE+417) /* Remote boot service was stopped; check the error log for the cause of the problem.*/
#define NERR_RplBootStartFailed (NERR_BASE+418) /* Remote boot startup failed; check the error log for the cause of the problem.*/
#define NERR_RPL_CONNECTED (NERR_BASE+419) /* A second connection to a Remoteboot resource is not allowed.*/
/*
* FTADMIN API error codes
*
* NERR_BASE + (425-434)
*
* (Currently not used in NT)
*
*/
/*
* Browser service API error codes
*
* NERR_BASE + (450-475)
*
*/
#define NERR_BrowserConfiguredToNotRun (NERR_BASE+450) /* The browser service was configured with MaintainServerList=No. */
/*
* Additional Remoteboot error codes.
*
* NERR_BASE + (510-550)
*/
#define NERR_RplNoAdaptersStarted (NERR_BASE+510) /*Service failed to start since none of the network adapters started with this service.*/
#define NERR_RplBadRegistry (NERR_BASE+511) /*Service failed to start due to bad startup information in the registry.*/
#define NERR_RplBadDatabase (NERR_BASE+512) /*Service failed to start because its database is absent or corrupt.*/
#define NERR_RplRplfilesShare (NERR_BASE+513) /*Service failed to start because RPLFILES share is absent.*/
#define NERR_RplNotRplServer (NERR_BASE+514) /*Service failed to start because RPLUSER group is absent.*/
#define NERR_RplCannotEnum (NERR_BASE+515) /*Cannot enumerate service records.*/
#define NERR_RplWkstaInfoCorrupted (NERR_BASE+516) /*Workstation record information has been corrupted.*/
#define NERR_RplWkstaNotFound (NERR_BASE+517) /*Workstation record was not found.*/
#define NERR_RplWkstaNameUnavailable (NERR_BASE+518) /*Workstation name is in use by some other workstation.*/
#define NERR_RplProfileInfoCorrupted (NERR_BASE+519) /*Profile record information has been corrupted.*/
#define NERR_RplProfileNotFound (NERR_BASE+520) /*Profile record was not found.*/
#define NERR_RplProfileNameUnavailable (NERR_BASE+521) /*Profile name is in use by some other profile.*/
#define NERR_RplProfileNotEmpty (NERR_BASE+522) /*There are workstations using this profile.*/
#define NERR_RplConfigInfoCorrupted (NERR_BASE+523) /*Configuration record information has been corrupted.*/
#define NERR_RplConfigNotFound (NERR_BASE+524) /*Configuration record was not found.*/
#define NERR_RplAdapterInfoCorrupted (NERR_BASE+525) /*Adapter id record information has been corrupted.*/
#define NERR_RplInternal (NERR_BASE+526) /*An internal service error has occurred.*/
#define NERR_RplVendorInfoCorrupted (NERR_BASE+527) /*Vendor id record information has been corrupted.*/
#define NERR_RplBootInfoCorrupted (NERR_BASE+528) /*Boot block record information has been corrupted.*/
#define NERR_RplWkstaNeedsUserAcct (NERR_BASE+529) /*The user account for this workstation record is missing.*/
#define NERR_RplNeedsRPLUSERAcct (NERR_BASE+530) /*The RPLUSER local group could not be found.*/
#define NERR_RplBootNotFound (NERR_BASE+531) /*Boot block record was not found.*/
#define NERR_RplIncompatibleProfile (NERR_BASE+532) /*Chosen profile is incompatible with this workstation.*/
#define NERR_RplAdapterNameUnavailable (NERR_BASE+533) /*Chosen network adapter id is in use by some other workstation.*/
#define NERR_RplConfigNotEmpty (NERR_BASE+534) /*There are profiles using this configuration.*/
#define NERR_RplBootInUse (NERR_BASE+535) /*There are workstations, profiles or configurations using this boot block.*/
#define NERR_RplBackupDatabase (NERR_BASE+536) /*Service failed to backup Remoteboot database.*/
#define NERR_RplAdapterNotFound (NERR_BASE+537) /*Adapter record was not found.*/
#define NERR_RplVendorNotFound (NERR_BASE+538) /*Vendor record was not found.*/
#define NERR_RplVendorNameUnavailable (NERR_BASE+539) /*Vendor name is in use by some other vendor record.*/
#define NERR_RplBootNameUnavailable (NERR_BASE+540) /*(boot name, vendor id) is in use by some other boot block record.*/
#define NERR_RplConfigNameUnavailable (NERR_BASE+541) /*Configuration name is in use by some other configuration.*/
/**INTERNAL_ONLY**/
/*
* Dfs API error codes.
*
* NERR_BASE + (560-590)
*/
#define NERR_DfsInternalCorruption (NERR_BASE+560) /*The internal database maintained by the DFS service is corrupt*/
#define NERR_DfsVolumeDataCorrupt (NERR_BASE+561) /*One of the records in the internal DFS database is corrupt*/
#define NERR_DfsNoSuchVolume (NERR_BASE+562) /*There is no DFS name whose entry path matches the input Entry Path*/
#define NERR_DfsVolumeAlreadyExists (NERR_BASE+563) /*A root or link with the given name already exists*/
#define NERR_DfsAlreadyShared (NERR_BASE+564) /*The server share specified is already shared in the DFS*/
#define NERR_DfsNoSuchShare (NERR_BASE+565) /*The indicated server share does not support the indicated DFS namespace*/
#define NERR_DfsNotALeafVolume (NERR_BASE+566) /*The operation is not valid on this portion of the namespace*/
#define NERR_DfsLeafVolume (NERR_BASE+567) /*The operation is not valid on this portion of the namespace*/
#define NERR_DfsVolumeHasMultipleServers (NERR_BASE+568) /*The operation is ambiguous because the link has multiple servers*/
#define NERR_DfsCantCreateJunctionPoint (NERR_BASE+569) /*Unable to create a link*/
#define NERR_DfsServerNotDfsAware (NERR_BASE+570) /*The server is not DFS Aware*/
#define NERR_DfsBadRenamePath (NERR_BASE+571) /*The specified rename target path is invalid*/
#define NERR_DfsVolumeIsOffline (NERR_BASE+572) /*The specified DFS link is offline*/
#define NERR_DfsNoSuchServer (NERR_BASE+573) /*The specified server is not a server for this link*/
#define NERR_DfsCyclicalName (NERR_BASE+574) /*A cycle in the DFS name was detected*/
#define NERR_DfsNotSupportedInServerDfs (NERR_BASE+575) /*The operation is not supported on a server-based DFS*/
#define NERR_DfsDuplicateService (NERR_BASE+576) /*This link is already supported by the specified server-share*/
#define NERR_DfsCantRemoveLastServerShare (NERR_BASE+577) /*Can't remove the last server-share supporting this root or link*/
#define NERR_DfsVolumeIsInterDfs (NERR_BASE+578) /*The operation is not supported for an Inter-DFS link*/
#define NERR_DfsInconsistent (NERR_BASE+579) /*The internal state of the DFS Service has become inconsistent*/
#define NERR_DfsServerUpgraded (NERR_BASE+580) /*The DFS Service has been installed on the specified server*/
#define NERR_DfsDataIsIdentical (NERR_BASE+581) /*The DFS data being reconciled is identical*/
#define NERR_DfsCantRemoveDfsRoot (NERR_BASE+582) /*The DFS root cannot be deleted - Uninstall DFS if required*/
#define NERR_DfsChildOrParentInDfs (NERR_BASE+583) /*A child or parent directory of the share is already in a DFS*/
#define NERR_DfsInternalError (NERR_BASE+590) /*DFS internal error*/
/*
* Net setup error codes.
*
* NERR_BASE + (591-600)
*/
#define NERR_SetupAlreadyJoined (NERR_BASE+591) /*This machine is already joined to a domain.*/
#define NERR_SetupNotJoined (NERR_BASE+592) /*This machine is not currently joined to a domain.*/
#define NERR_SetupDomainController (NERR_BASE+593) /*This machine is a domain controller and cannot be unjoined from a domain.*/
#define NERR_DefaultJoinRequired (NERR_BASE+594) /*The destination domain controller does not support creating machine accounts in OUs.*/
#define NERR_InvalidWorkgroupName (NERR_BASE+595) /*The specified workgroup name is invalid.*/
#define NERR_NameUsesIncompatibleCodePage (NERR_BASE+596) /*The specified computer name is incompatible with the default language used on the domain controller.*/
#define NERR_ComputerAccountNotFound (NERR_BASE+597) /*The specified computer account could not be found. Contact an administrator to verify the account is in the domain. If the account has been deleted unjoin, reboot, and rejoin the domain.*/
#define NERR_PersonalSku (NERR_BASE+598) /*This version of Windows cannot be joined to a domain.*/
#define NERR_SetupCheckDNSConfig (NERR_BASE+599) /*An attempt to resolve the DNS name of a domain controller in the domain being joined has failed. Please verify this client is configured to reach a DNS server that can resolve DNS names in the target domain. For information about network troubleshooting, see Windows Help.*/
#define NERR_AlreadyCloudDomainJoined (NERR_BASE+600) /*This device is joined to Azure AD. To join an Active Directory domain, you must first go to settings and choose to disconnect your device from your work or school.*/
/*
* Some Password and account error results
*
* NERR_BASE + (601 - 608)
*/
#define NERR_PasswordMustChange (NERR_BASE + 601) /* Password must change at next logon */
#define NERR_AccountLockedOut (NERR_BASE + 602) /* Account is locked out */
#define NERR_PasswordTooLong (NERR_BASE + 603) /* Password is too long */
#define NERR_PasswordNotComplexEnough (NERR_BASE + 604) /* Password doesn't meet the complexity policy */
#define NERR_PasswordFilterError (NERR_BASE + 605) /* Password doesn't meet the requirements of the filter dll's */
/*
* Error codes used for offline domain join and completion
*
* NERR_BASE + (609 - 621)
*/
#define NERR_NoOfflineJoinInfo (NERR_BASE + 609) /* Offline join completion information was not found. */
#define NERR_BadOfflineJoinInfo (NERR_BASE + 610) /* The offline join completion information was bad. */
#define NERR_CantCreateJoinInfo (NERR_BASE + 611) /* Unable to create offline join information. Please ensure you have access to the specified path location and permissions to modify its contents. Running as an elevated administrator may be required. */
#define NERR_BadDomainJoinInfo (NERR_BASE + 612) /* The domain join info being saved was incomplete or bad. */
#define NERR_JoinPerformedMustRestart (NERR_BASE + 613) /* Offline join operation successfully completed but a restart is needed. */
#define NERR_NoJoinPending (NERR_BASE + 614) /* There was no offline join operation pending. */
#define NERR_ValuesNotSet (NERR_BASE + 615) /* Unable to set one or more requested machine or domain name values on the local computer. */
#define NERR_CantVerifyHostname (NERR_BASE + 616) /* Could not verify the current machine's hostname against the saved value in the join completion information. */
#define NERR_CantLoadOfflineHive (NERR_BASE + 617) /* Unable to load the specified offline registry hive. Please ensure you have access to the specified path location and permissions to modify its contents. Running as an elevated administrator may be required. */
#define NERR_ConnectionInsecure (NERR_BASE + 618) /* The minimum session security requirements for this operation were not met. */
#define NERR_ProvisioningBlobUnsupported (NERR_BASE + 619) /* Computer account provisioning blob version is not supported. */
#define NERR_DS8DCRequired (NERR_BASE + 620) /* The specified domain controller does not meet the version requirement for this operation. Please select a domain controller capable of issuing claims. */
#define NERR_LDAPCapableDCRequired (NERR_BASE + 621) /* This operation requires a domain controller which supports LDAP. Please select an LDAP-capable domain controller. */
#define NERR_DS8DCNotFound (NERR_BASE + 622) /* A domain controller which meets the version requirement for this operation could not be located. Please ensure that a domain controller capable of issuing claims is available. */
#define NERR_TargetVersionUnsupported (NERR_BASE + 623) /* The Windows version of the specified image does not support provisioning. */
#define NERR_InvalidMachineNameForJoin (NERR_BASE + 624) /* The machine name is blocked from joining the domain.*/
#define NERR_DS9DCNotFound (NERR_BASE + 625) /* The domain controller does not meet the version requirement for this operation. See http://go.microsoft.com/fwlink/?LinkId=294288 for more information. */
#define NERR_PlainTextSecretsRequired (NERR_BASE + 626) /* The local machine does not allow querying of LSA secrets in plain-text. */
#define NERR_CannotUnjoinAadDomain (NERR_BASE + 627) /* Unable to leave the Azure AD domain that this machine is joined to. Check the event log for detailed error information. */
/***********WARNING ****************
*The range 2750-2799 has been *
*allocated to the IBM LAN Server *
***********************************/
/***********WARNING ****************
*The range 2900-2999 has been *
*reserved for Microsoft OEMs *
***********************************/
/**END_INTERNAL**/
#define MAX_NERR (NERR_BASE+899) /* This is the last error in NERR range. */
/*
* end of list
*
* WARNING: Do not exceed MAX_NERR; values above this are used by
* other error code ranges (errlog.h, service.h, apperr.h).
*/
@@ -0,0 +1,191 @@
#define ATM_E164 0x01 /* E.164 addressing scheme */
#define ATM_NSAP 0x02 /* NSAP-style ATM Endsystem Address scheme */
#define ATM_AESA 0x02 /* NSAP-style ATM Endsystem Address scheme */
#define ATM_ADDR_SIZE 20
#define DNS_ATMA_FORMAT_E164 ATM_E164
#define DNS_ATMA_FORMAT_AESA ATM_AESA
#define DNS_ATMA_MAX_ADDR_LENGTH ATM_ADDR_SIZE
#define DNS_ADDR_MAX_SOCKADDR_LENGTH (32)
#define DNS_TYPE_ZERO 0x0000
// RFC 1034/1035
#define DNS_TYPE_A 0x0001 // 1
#define DNS_TYPE_NS 0x0002 // 2
#define DNS_TYPE_MD 0x0003 // 3
#define DNS_TYPE_MF 0x0004 // 4
#define DNS_TYPE_CNAME 0x0005 // 5
#define DNS_TYPE_SOA 0x0006 // 6
#define DNS_TYPE_MB 0x0007 // 7
#define DNS_TYPE_MG 0x0008 // 8
#define DNS_TYPE_MR 0x0009 // 9
#define DNS_TYPE_NULL 0x000a // 10
#define DNS_TYPE_WKS 0x000b // 11
#define DNS_TYPE_PTR 0x000c // 12
#define DNS_TYPE_HINFO 0x000d // 13
#define DNS_TYPE_MINFO 0x000e // 14
#define DNS_TYPE_MX 0x000f // 15
#define DNS_TYPE_TEXT 0x0010 // 16
// RFC 1183
#define DNS_TYPE_RP 0x0011 // 17
#define DNS_TYPE_AFSDB 0x0012 // 18
#define DNS_TYPE_X25 0x0013 // 19
#define DNS_TYPE_ISDN 0x0014 // 20
#define DNS_TYPE_RT 0x0015 // 21
// RFC 1348
#define DNS_TYPE_NSAP 0x0016 // 22
#define DNS_TYPE_NSAPPTR 0x0017 // 23
// RFC 2065 (DNS security)
#define DNS_TYPE_SIG 0x0018 // 24
#define DNS_TYPE_KEY 0x0019 // 25
// RFC 1664 (X.400 mail)
#define DNS_TYPE_PX 0x001a // 26
// RFC 1712 (Geographic position)
#define DNS_TYPE_GPOS 0x001b // 27
// RFC 1886 (IPv6 Address)
#define DNS_TYPE_AAAA 0x001c // 28
// RFC 1876 (Geographic location)
#define DNS_TYPE_LOC 0x001d // 29
// RFC 2065 (Secure negative response)
#define DNS_TYPE_NXT 0x001e // 30
// Patton (Endpoint Identifier)
#define DNS_TYPE_EID 0x001f // 31
// Patton (Nimrod Locator)
#define DNS_TYPE_NIMLOC 0x0020 // 32
// RFC 2052 (Service location)
#define DNS_TYPE_SRV 0x0021 // 33
// ATM Standard something-or-another (ATM Address)
#define DNS_TYPE_ATMA 0x0022 // 34
// RFC 2168 (Naming Authority Pointer)
#define DNS_TYPE_NAPTR 0x0023 // 35
// RFC 2230 (Key Exchanger)
#define DNS_TYPE_KX 0x0024 // 36
// RFC 2538 (CERT)
#define DNS_TYPE_CERT 0x0025 // 37
// A6 Draft (A6)
#define DNS_TYPE_A6 0x0026 // 38
// DNAME Draft (DNAME)
#define DNS_TYPE_DNAME 0x0027 // 39
// Eastlake (Kitchen Sink)
#define DNS_TYPE_SINK 0x0028 // 40
// RFC 2671 (EDNS OPT)
#define DNS_TYPE_OPT 0x0029 // 41
// RFC 4034 (DNSSEC DS)
#define DNS_TYPE_DS 0x002b // 43
// RFC 4034 (DNSSEC RRSIG)
#define DNS_TYPE_RRSIG 0x002e // 46
// RFC 4034 (DNSSEC NSEC)
#define DNS_TYPE_NSEC 0x002f // 47
// RFC 4034 (DNSSEC DNSKEY)
#define DNS_TYPE_DNSKEY 0x0030 // 48
// RFC 4701 (DHCID)
#define DNS_TYPE_DHCID 0x0031 // 49
// RFC 5155 (DNSSEC NSEC3)
#define DNS_TYPE_NSEC3 0x0032 // 50
// RFC 5155 (DNSSEC NSEC3PARAM)
#define DNS_TYPE_NSEC3PARAM 0x0033 // 51
//
// IANA Reserved
//
#define DNS_TYPE_UINFO 0x0064 // 100
#define DNS_TYPE_UID 0x0065 // 101
#define DNS_TYPE_GID 0x0066 // 102
#define DNS_TYPE_UNSPEC 0x0067 // 103
//
// Query only types (1035, 1995)
// - Crawford (ADDRS)
// - TKEY draft (TKEY)
// - TSIG draft (TSIG)
// - RFC 1995 (IXFR)
// - RFC 1035 (AXFR up)
//
#define DNS_TYPE_ADDRS 0x00f8 // 248
#define DNS_TYPE_TKEY 0x00f9 // 249
#define DNS_TYPE_TSIG 0x00fa // 250
#define DNS_TYPE_IXFR 0x00fb // 251
#define DNS_TYPE_AXFR 0x00fc // 252
#define DNS_TYPE_MAILB 0x00fd // 253
#define DNS_TYPE_MAILA 0x00fe // 254
#define DNS_TYPE_ALL 0x00ff // 255
#define DNS_TYPE_ANY 0x00ff // 255
//
// Private use Microsoft types -- See www.iana.org/assignments/dns-parameters
//
#define DNS_TYPE_WINS 0xff01 // 64K - 255
#define DNS_TYPE_WINSR 0xff02 // 64K - 254
#define DNS_TYPE_NBSTAT (DNS_TYPE_WINSR)
//
// DNS Query API
//
//
// Options for DnsQuery
//
#define DNS_QUERY_STANDARD 0x00000000
#define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x00000001
#define DNS_QUERY_USE_TCP_ONLY 0x00000002
#define DNS_QUERY_NO_RECURSION 0x00000004
#define DNS_QUERY_BYPASS_CACHE 0x00000008
#define DNS_QUERY_NO_WIRE_QUERY 0x00000010
#define DNS_QUERY_NO_LOCAL_NAME 0x00000020
#define DNS_QUERY_NO_HOSTS_FILE 0x00000040
#define DNS_QUERY_NO_NETBT 0x00000080
#define DNS_QUERY_WIRE_ONLY 0x00000100
#define DNS_QUERY_RETURN_MESSAGE 0x00000200
#define DNS_QUERY_MULTICAST_ONLY 0x00000400
#define DNS_QUERY_NO_MULTICAST 0x00000800
#define DNS_QUERY_TREAT_AS_FQDN 0x00001000
#define DNS_QUERY_ADDRCONFIG 0x00002000
#define DNS_QUERY_DUAL_ADDR 0x00004000
#define DNS_QUERY_DONT_RESET_TTL_VALUES 0x00100000
#define DNS_QUERY_DISABLE_IDN_ENCODING 0x00200000
#define DNS_QUERY_APPEND_MULTILABEL 0x00800000
#define DNS_QUERY_DNSSEC_OK 0x01000000
#define DNS_QUERY_DNSSEC_CHECKING_DISABLED 0x02000000
#define DNS_QUERY_RESERVED 0xf0000000
/** IPTypes.h **/
// Definitions and structures used by getnetworkparams and getadaptersinfo apis
#define MAX_ADAPTER_DESCRIPTION_LENGTH 128 // arb.
#define MAX_ADAPTER_NAME_LENGTH 256 // arb.
#define MAX_ADAPTER_ADDRESS_LENGTH 8 // arb.
#define DEFAULT_MINIMUM_ENTITIES 32 // arb.
#define MAX_HOSTNAME_LEN 128 // arb.
#define MAX_DOMAIN_NAME_LEN 128 // arb.
#define MAX_SCOPE_ID_LEN 256 // arb.
#define MAX_DHCPV6_DUID_LENGTH 130 // RFC 3315.
#define MAX_DNS_SUFFIX_STRING_LENGTH 256

Some files were not shown because too many files have changed in this diff Show More