mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Compare commits
373 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f920ff5644 | |||
| d6ad3343e8 | |||
| 7142a8ddb8 | |||
| cf09ed86a9 | |||
| 1509f7bd56 | |||
| c7c8830ce5 | |||
| c46f086b88 | |||
| d3e8d73ac7 | |||
| 8fa8cf9be1 | |||
| fdda80fad6 | |||
| 650c672625 | |||
| 6c00426815 | |||
| d0e8443576 | |||
| 4b71ebb174 | |||
| 35e7a8da4a | |||
| c46d76a846 | |||
| bef410a1c3 | |||
| 426d28ded9 | |||
| 5f5ad2531b | |||
| 9aaf2c6f6c | |||
| 8d5bb5c032 | |||
| e4ca049004 | |||
| 5da940a7cb | |||
| d8b1ec6536 | |||
| dd9a809a58 | |||
| 596ab22f1f | |||
| 7446517863 | |||
| 1481e9cd46 | |||
| 37d5e9089e | |||
| 87eace22a0 | |||
| 1573271634 | |||
| df8a63e918 | |||
| 85a40d84f6 | |||
| b0d6003ded | |||
| a5b5c06bcd | |||
| 520fa864b8 | |||
| 6c588cf723 | |||
| 8eb3384fcf | |||
| b4c0223377 | |||
| 11665c4608 | |||
| 45b781b96c | |||
| 83af73a872 | |||
| be935b0f68 | |||
| 8a14cc5b3a | |||
| 1ad456049a | |||
| 16e10af8d8 | |||
| ebded59c43 | |||
| a418035e1e | |||
| e3c6deeee7 | |||
| d4952e21ba | |||
| fc0c81eb70 | |||
| bd52b1a5a3 | |||
| 064b22f99e | |||
| 909669321b | |||
| 405616290f | |||
| a93c9b7f11 | |||
| 06b96e65d0 | |||
| b51a6e1808 | |||
| 26b42a0587 | |||
| 13f2993cf1 | |||
| 4113d8ad3f | |||
| 75f1121182 | |||
| 5c25e333e6 | |||
| 54b518ca5f | |||
| d094fb8209 | |||
| 017867d79d | |||
| e58d80c3c5 | |||
| d7ff43a829 | |||
| 013c35bf40 | |||
| 6a54bca39a | |||
| 2a1217e7b8 | |||
| 6ade13d6bb | |||
| b1d2d5719b | |||
| 5352013a8f | |||
| bce15d0d3c | |||
| 1889899535 | |||
| 1bc7818552 | |||
| 7c96da8c75 | |||
| 458a0d0558 | |||
| 493fe75be8 | |||
| a7b6ddedd6 | |||
| e7679ecfcf | |||
| 4e5325c8ea | |||
| 9b5be5ffd5 | |||
| 720385d15a | |||
| 2cef60377f | |||
| ce13bf08e3 | |||
| 8151292042 | |||
| 646e55c740 | |||
| 00a2f1a7d6 | |||
| 2c9a159a81 | |||
| ea6b7b932d | |||
| 314cd2b862 | |||
| 3a3e6bc931 | |||
| 234844cf12 | |||
| 1297996725 | |||
| 1a9b680fba | |||
| e37f87c35c | |||
| 6eb31e9205 | |||
| b22c5d6055 | |||
| 458774f1ac | |||
| fd00e97d80 | |||
| 533cddae97 | |||
| 57076b84dd | |||
| 1c498aa0e9 | |||
| 7abda41a9d | |||
| 3489a560fb | |||
| 6fd32762da | |||
| aab4fdc02d | |||
| ff4161602c | |||
| 8932682ba2 | |||
| b9d54b3212 | |||
| 60e3d4a2b2 | |||
| 88b93dd64e | |||
| 8beb9fa092 | |||
| f668288dfc | |||
| 43fd2b3ca4 | |||
| f89a24ae48 | |||
| d7cf3e0f8b | |||
| 54be297828 | |||
| 5da27a78d2 | |||
| f7542e686c | |||
| 029f7cba35 | |||
| 36c1eb647f | |||
| 4bbdb538de | |||
| 6ccccf7e90 | |||
| d05801dd46 | |||
| e8930af3ad | |||
| c6898a429c | |||
| 13c28422d4 | |||
| 3818bb2e3d | |||
| 2b64a6d316 | |||
| 5d7e074039 | |||
| 929959d2ac | |||
| 92b3cfcb2b | |||
| 082b13112d | |||
| 52859d19c4 | |||
| 6d621e0716 | |||
| f80c473de0 | |||
| 98abd731e4 | |||
| d0a5dc3c61 | |||
| 2644b53563 | |||
| ba704d6525 | |||
| 42546483dd | |||
| 16242d3436 | |||
| f99dc61bb2 | |||
| ddc9f16e9c | |||
| ab4a4561a3 | |||
| db8d782e3a | |||
| 6715b08ed7 | |||
| 217da0d6b1 | |||
| 7c0c130eec | |||
| 774c35d943 | |||
| b1c147dfaa | |||
| d63731f2d3 | |||
| 99c28ac035 | |||
| d6a6e6496a | |||
| c66b20f0f3 | |||
| 947093cf5b | |||
| 0c9c7d3f49 | |||
| 25534c87ca | |||
| 06a986b57e | |||
| 0a0b96a9ca | |||
| 766f1f5e0a | |||
| 57bcbca837 | |||
| 68ea3c3a02 | |||
| 9bd9ddbd7a | |||
| d79f7c609a | |||
| 22672613a9 | |||
| 1cb8ad02c9 | |||
| 3428acc580 | |||
| ee37178bcf | |||
| f2a287d818 | |||
| e69302449c | |||
| 1f86a8a1c5 | |||
| 2737a64fd7 | |||
| 9163e981fc | |||
| 17d4644973 | |||
| 315ad8ed9e | |||
| da0f403507 | |||
| 31f7d1c593 | |||
| 0e9edcf440 | |||
| 0b0b88a270 | |||
| a45ad2b48c | |||
| d535440a44 | |||
| 4b034fc0fe | |||
| c040ec368e | |||
| 9a67dca363 | |||
| 9041326d82 | |||
| ee2b0e11e5 | |||
| 4985f7bba5 | |||
| 99d39604df | |||
| 196d4dcac4 | |||
| 9c1c125931 | |||
| dce802e0f3 | |||
| 8d517f29cf | |||
| 2ff11e7e5f | |||
| e0852a2866 | |||
| 68a37443fd | |||
| 72962be653 | |||
| b25fc491df | |||
| 3de820046d | |||
| 92863f7944 | |||
| db14bc0294 | |||
| 979f7ec77a | |||
| 91c468eba0 | |||
| 0cd51a088e | |||
| 13d0b6b3b7 | |||
| cbadada375 | |||
| f90991022a | |||
| cbf456ac4f | |||
| 53554f45ab | |||
| 006dce7054 | |||
| 7475c8893e | |||
| ddb22444d2 | |||
| 1ab7d3cad6 | |||
| 50b0493364 | |||
| e3fd66b3d6 | |||
| 703c7f2ec2 | |||
| b8dd03a1ef | |||
| 6f00e753dd | |||
| 9c1c24bfda | |||
| d7d936d695 | |||
| 95c3f81619 | |||
| 8472fd12a7 | |||
| 59b3531d15 | |||
| bc13f7a497 | |||
| b1f0d74a3a | |||
| 92742a4e97 | |||
| 9770165487 | |||
| bcb6327f60 | |||
| 40f9420078 | |||
| 36b4bf38fc | |||
| 8f828a6018 | |||
| b003d9ee32 | |||
| 13dc869af6 | |||
| 4b5b924224 | |||
| 2c518a77f9 | |||
| d61067fe5e | |||
| bb4271d97b | |||
| d756cb1027 | |||
| 5ae315b317 | |||
| 6f55a4736e | |||
| cab8be5311 | |||
| d1e13fda8a | |||
| 4bcec38cc1 | |||
| 3ad9bad56e | |||
| a8414c975d | |||
| 87e1c998a6 | |||
| 736a72255b | |||
| 247140123c | |||
| 75dfe847ec | |||
| a580d825ae | |||
| 1b5097050b | |||
| 210bc648ec | |||
| 412c725fba | |||
| 6586018059 | |||
| 7a7e6935d1 | |||
| a580153da9 | |||
| 72a7f52ae2 | |||
| 4120c6e7e3 | |||
| ae5bf70b49 | |||
| 44ac6356e1 | |||
| 9ce6fcef9c | |||
| 0a2ed77302 | |||
| 33766c2ffd | |||
| 5217506705 | |||
| 99fbec8ec4 | |||
| e313510fe5 | |||
| 9eb4405cce | |||
| 7883e5f189 | |||
| 93540ddbe5 | |||
| 6bf8f77617 | |||
| ee409e4c72 | |||
| f957c640c7 | |||
| 328735bd3a | |||
| feafb52c2a | |||
| 275d054ba7 | |||
| 36db869572 | |||
| 74f5d43159 | |||
| dade97ff16 | |||
| 2db6037658 | |||
| b68369936a | |||
| 85a41fbca0 | |||
| dab2a57d75 | |||
| d3d6410276 | |||
| 9a0868da15 | |||
| 117ea557f7 | |||
| f92204a16f | |||
| d8b2770046 | |||
| e3bcde7d63 | |||
| 494317ee99 | |||
| 46daca9539 | |||
| 82d0c5cc5c | |||
| 0eb78f21bd | |||
| 0f501ab46d | |||
| f2ac6ea455 | |||
| 2828f496bd | |||
| f295a081b1 | |||
| 681fba942f | |||
| f4f9798d39 | |||
| 09fa7c49ec | |||
| c1aad71dd3 | |||
| 5d9e9a240f | |||
| 267ed1e85d | |||
| d7d2dacf33 | |||
| 3d7266ad50 | |||
| 63dd0130f1 | |||
| b8788058e5 | |||
| fdef64c57f | |||
| e156b05e0f | |||
| a7d547f994 | |||
| 5fa4ca6aae | |||
| ad59298015 | |||
| 59e2cefee0 | |||
| d23a9813e9 | |||
| 447069df32 | |||
| 77d90bc4fd | |||
| 82e3e0f3d0 | |||
| 350a11515f | |||
| 61e027a678 | |||
| f9df80ca20 | |||
| df44d38356 | |||
| 1ad2ecba0d | |||
| c4a40626b2 | |||
| fa0baf0f14 | |||
| 77dad71b7e | |||
| 735b18b369 | |||
| a814012574 | |||
| c2be36757f | |||
| 134bd844d6 | |||
| f45a997179 | |||
| 4d988d2668 | |||
| b8ceea8f22 | |||
| af7e64638c | |||
| 1de666c652 | |||
| e7789312fd | |||
| d4fd2ffdbc | |||
| 8b90c96c1a | |||
| 42fac92940 | |||
| acb66cfa78 | |||
| 522c92cb45 | |||
| 378ed31778 | |||
| 5a07f6a444 | |||
| fb9ff96a11 | |||
| 6552312275 | |||
| 5fdcbee121 | |||
| dfdad6edf0 | |||
| d68ff123b3 | |||
| 1f70bdd49a | |||
| 6fe784030f | |||
| 408fe8aaa4 | |||
| 1d128f43ab | |||
| c68dc4e29a | |||
| cd87544fc7 | |||
| 9549942e6f | |||
| 4f2e43ae6b | |||
| d05c067f65 | |||
| 015517cd71 | |||
| 4e67a5ac95 | |||
| 5052d99199 | |||
| 83ca54d182 | |||
| eab219610d | |||
| 83b02310e4 | |||
| 542eb33aa6 | |||
| 39d683ffeb | |||
| 3149961634 | |||
| 758f418965 | |||
| ca6ce73dcc | |||
| 86d02ee17d | |||
| 04cbbf3888 | |||
| caa8ef5f32 | |||
| 2cd9c287aa |
@@ -0,0 +1,128 @@
|
||||
name: Pytest
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
pull_request:
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
generate_ctypes:
|
||||
runs-on: windows-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
- run:
|
||||
py .\ctypes_generation\generate.py
|
||||
- name: Check generated code can execute
|
||||
run: py -c "import windows.generated_def"
|
||||
tests:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
runs-on: [windows-2022, windows-latest]
|
||||
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
|
||||
# Not a real dependency : but starting tests when ctypes generation is broken is not useful
|
||||
needs: generate_ctypes
|
||||
timeout-minutes: 15
|
||||
runs-on: ${{ matrix.runs-on }}
|
||||
|
||||
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 pytest-timeout capstone-windows
|
||||
|
||||
# Testing
|
||||
- name: Testing
|
||||
run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pytest --junitxml=junit/test-results.xml -s -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
|
||||
|
||||
# tests_arm64:
|
||||
# needs: generate_ctypes
|
||||
# timeout-minutes: 15
|
||||
# runs-on: windows-ARM64
|
||||
# continue-on-error: true
|
||||
#
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# python-version: [3.11]
|
||||
# python-architecture: [x86, x64, arm64]
|
||||
# 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
|
||||
# - python-bitness-to-test: arm64
|
||||
# python-architecture: arm64
|
||||
#
|
||||
# steps:
|
||||
# - uses: actions/checkout@v4
|
||||
#
|
||||
# - name: Listing python versions availables
|
||||
# run: py -0
|
||||
#
|
||||
# - name: Testing PFW execute
|
||||
# run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -c "import windows; print(windows)"
|
||||
#
|
||||
# - name: Arm64 pytests
|
||||
# run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pytest tests -k "not test_debugger" -v -s -r fEsx
|
||||
+7
-1
@@ -2,7 +2,13 @@
|
||||
doctrees
|
||||
*.inv
|
||||
*.pickle
|
||||
*.ignore
|
||||
*.code-workspace
|
||||
|
||||
.vscode/
|
||||
.cache/
|
||||
dist/
|
||||
dist/
|
||||
build/
|
||||
docs/BuildDocEnv/
|
||||
playground/
|
||||
*egg-info/
|
||||
@@ -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,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,
|
||||
|
||||
@@ -1,38 +1,53 @@
|
||||
# PythonForWindows
|
||||
|
||||
[](https://gitter.im/PythonForWindows/general)
|
||||
[](https://github.com/hakril/PythonForWindows/actions/workflows/tests.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].
|
||||
|
||||
PythonForWindows is principally known for its ALPC-RPC Client (see [samples](http://hakril.github.io/PythonForWindows/build/html/sample.html#windows-rpc)).
|
||||
PythonForWindows is principally known for:
|
||||
|
||||
- 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 join [the Gitter channel](https://gitter.im/PythonForWindows/general).
|
||||
|
||||
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
|
||||
``
|
||||
|
||||
#### Python3
|
||||
## 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/tests.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.
|
||||
|
||||
python3 support is still in beta.
|
||||
All the tests pass on master, but I did not test it heavily on real case.
|
||||
Do not hesitate report bugs and issues.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -522,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
|
||||
@@ -534,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
|
||||
@@ -10,7 +10,7 @@ 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",
|
||||
"__RPC__deref_out_opt_string", "_COM_Outptr_", "_In_", "_In_opt_", "_Out_"]
|
||||
"__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",
|
||||
|
||||
@@ -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,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,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;
|
||||
@@ -1,28 +0,0 @@
|
||||
typedef struct MyClsVtbl
|
||||
{
|
||||
BEGIN_INTERFACE
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
||||
MyCls * This,
|
||||
/* [in] */ REFIID riid,
|
||||
/* [annotation][iid_is][out] */
|
||||
__RPC__deref_out void **ppvObject);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
||||
MyCls * This);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *Release )(
|
||||
MyCls * This);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *add )(
|
||||
MyCls * This,
|
||||
/* [in] */ UINT x,
|
||||
/* [in] */ UINT y,
|
||||
/* [out] */ UINT *res);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *print_state )(
|
||||
MyCls * This);
|
||||
|
||||
END_INTERFACE
|
||||
} MyClsVtbl;
|
||||
|
||||
@@ -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,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,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;
|
||||
@@ -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,33 @@
|
||||
#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 )
|
||||
|
||||
#define UNIQUE_FLAG_PADDING 2
|
||||
#define MAINHDRSIG 0x414E554B
|
||||
#define ENTRYHDRSIG 0x494E414E
|
||||
@@ -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,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
|
||||
@@ -2,4 +2,22 @@
|
||||
#define ERROR_SEVERITY_SUCCESS 0x00000000
|
||||
#define ERROR_SEVERITY_INFORMATIONAL 0x40000000
|
||||
#define ERROR_SEVERITY_WARNING 0x80000000
|
||||
#define ERROR_SEVERITY_ERROR 0xC0000000
|
||||
#define ERROR_SEVERITY_ERROR 0xC0000000
|
||||
|
||||
// https://learn.microsoft.com/en-us/windows/win32/com/structure-of-com-error-codes
|
||||
// Define the facility codes
|
||||
//
|
||||
#define FACILITY_WINDOWS 0x8
|
||||
#define FACILITY_WIN32 0x7
|
||||
#define FACILITY_STORAGE 0x3
|
||||
#define FACILITY_RPC 0x1
|
||||
#define FACILITY_NULL 0x0
|
||||
#define FACILITY_ITF 0x4
|
||||
#define FACILITY_DISPATCH 0x2
|
||||
|
||||
|
||||
//
|
||||
// Define the severity codes
|
||||
//
|
||||
#define STATUS_SEVERITY_SUCCESS 0x0
|
||||
#define STATUS_SEVERITY_COERROR 0x2
|
||||
@@ -45,6 +45,37 @@
|
||||
#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
|
||||
|
||||
@@ -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,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,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).
|
||||
*/
|
||||
@@ -8,6 +8,8 @@
|
||||
#define DNS_ATMA_MAX_ADDR_LENGTH ATM_ADDR_SIZE
|
||||
|
||||
|
||||
#define DNS_ADDR_MAX_SOCKADDR_LENGTH (32)
|
||||
|
||||
#define DNS_TYPE_ZERO 0x0000
|
||||
|
||||
// RFC 1034/1035
|
||||
@@ -174,3 +176,16 @@
|
||||
#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
|
||||
@@ -0,0 +1,79 @@
|
||||
// We have a rare case of defines that depends on an enum
|
||||
// Which is PROC_THREAD_ATTRIBUTE_NUM
|
||||
// So i Will just define a copy of those as define here
|
||||
// Define version copied from: https://github.com/winsiderss/systeminformer/blob/master/phnt/include/ntpsapi.h#L2666
|
||||
// Thx to them, as always :)
|
||||
|
||||
#define ProcThreadAttributeParentProcess 0 // in HANDLE
|
||||
#define ProcThreadAttributeExtendedFlags 1 // in ULONG (EXTENDED_PROCESS_CREATION_FLAG_*)
|
||||
#define ProcThreadAttributeHandleList 2 // in HANDLE[]
|
||||
#define ProcThreadAttributeGroupAffinity 3 // in GROUP_AFFINITY // since WIN7
|
||||
#define ProcThreadAttributePreferredNode 4 // in USHORT
|
||||
#define ProcThreadAttributeIdealProcessor 5 // in PROCESSOR_NUMBER
|
||||
#define ProcThreadAttributeUmsThread 6 // in UMS_CREATE_THREAD_ATTRIBUTES
|
||||
#define ProcThreadAttributeMitigationPolicy 7 // in ULONG, ULONG64, or ULONG64[2]
|
||||
#define ProcThreadAttributePackageFullName 8 // in WCHAR[] // since WIN8
|
||||
#define ProcThreadAttributeSecurityCapabilities 9 // in SECURITY_CAPABILITIES
|
||||
#define ProcThreadAttributeConsoleReference 10 // BaseGetConsoleReference (kernelbase.dll)
|
||||
#define ProcThreadAttributeProtectionLevel 11 // in ULONG (PROTECTION_LEVEL_*) // since WINBLUE
|
||||
#define ProcThreadAttributeOsMaxVersionTested 12 // in MAXVERSIONTESTED_INFO // since THRESHOLD // (from exe.manifest)
|
||||
#define ProcThreadAttributeJobList 13 // in HANDLE[]
|
||||
#define ProcThreadAttributeChildProcessPolicy 14 // in ULONG (PROCESS_CREATION_CHILD_PROCESS_*) // since THRESHOLD2
|
||||
#define ProcThreadAttributeAllApplicationPackagesPolicy 15 // in ULONG (PROCESS_CREATION_ALL_APPLICATION_PACKAGES_*) // since REDSTONE
|
||||
#define ProcThreadAttributeWin32kFilter 16 // in WIN32K_SYSCALL_FILTER
|
||||
#define ProcThreadAttributeSafeOpenPromptOriginClaim 17 // in SE_SAFE_OPEN_PROMPT_RESULTS
|
||||
#define ProcThreadAttributeDesktopAppPolicy 18 // in ULONG (PROCESS_CREATION_DESKTOP_APP_*) // since RS2
|
||||
#define ProcThreadAttributeBnoIsolation 19 // in PROC_THREAD_BNOISOLATION_ATTRIBUTE
|
||||
#define ProcThreadAttributePseudoConsole 22 // in HANDLE (HPCON) // since RS5
|
||||
#define ProcThreadAttributeIsolationManifest 23 // in ISOLATION_MANIFEST_PROPERTIES // rev (diversenok) // since 19H2+
|
||||
#define ProcThreadAttributeMitigationAuditPolicy 24 // in ULONG, ULONG64, or ULONG64[2] // since 21H1
|
||||
#define ProcThreadAttributeMachineType 25 // in USHORT // since 21H2
|
||||
#define ProcThreadAttributeComponentFilter 26 // in ULONG
|
||||
#define ProcThreadAttributeEnableOptionalXStateFeatures 27 // in ULONG64 // since WIN11
|
||||
#define ProcThreadAttributeCreateStore 28 // ULONG // rev (diversenok)
|
||||
#define ProcThreadAttributeTrustedApp 29
|
||||
#define ProcThreadAttributeSveVectorLength 30
|
||||
|
||||
// Real definition of value usef by API
|
||||
// From: https://github.com/microsoft/win32metadata/blob/6af96d8470751e13a4e3f579f84b7b8b3ca398e1/generation/WinSDK/RecompiledIdlHeaders/um/WinBase.h#L3568
|
||||
// macro ProcThreadAttributeValue is recoded in python in template.py
|
||||
// I replace TRUE by True && FALSE by False for native python compat :)
|
||||
|
||||
#define PROC_THREAD_ATTRIBUTE_NUMBER 0x0000FFFF
|
||||
#define PROC_THREAD_ATTRIBUTE_THREAD 0x00010000 // Attribute may be used with thread creation
|
||||
#define PROC_THREAD_ATTRIBUTE_INPUT 0x00020000 // Attribute is input only
|
||||
#define PROC_THREAD_ATTRIBUTE_ADDITIVE 0x00040000 // Attribute may be "accumulated," e.g. bitmasks,
|
||||
|
||||
#define PROC_THREAD_ATTRIBUTE_PARENT_PROCESS \
|
||||
ProcThreadAttributeValue (ProcThreadAttributeParentProcess, False, True, False)
|
||||
#define PROC_THREAD_ATTRIBUTE_HANDLE_LIST \
|
||||
ProcThreadAttributeValue (ProcThreadAttributeHandleList, False, True, False)
|
||||
|
||||
#define PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY \
|
||||
ProcThreadAttributeValue (ProcThreadAttributeGroupAffinity, True, True, False)
|
||||
#define PROC_THREAD_ATTRIBUTE_PREFERRED_NODE \
|
||||
ProcThreadAttributeValue (ProcThreadAttributePreferredNode, False, True, False)
|
||||
#define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR \
|
||||
ProcThreadAttributeValue (ProcThreadAttributeIdealProcessor, True, True, False)
|
||||
#define PROC_THREAD_ATTRIBUTE_UMS_THREAD \
|
||||
ProcThreadAttributeValue (ProcThreadAttributeUmsThread, True, True, False)
|
||||
#define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY \
|
||||
ProcThreadAttributeValue (ProcThreadAttributeMitigationPolicy, False, True, False)
|
||||
|
||||
#define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES \
|
||||
ProcThreadAttributeValue (ProcThreadAttributeSecurityCapabilities, False, True, False)
|
||||
|
||||
#define PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL \
|
||||
ProcThreadAttributeValue (ProcThreadAttributeProtectionLevel, False, True, False)
|
||||
|
||||
#define PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE \
|
||||
ProcThreadAttributeValue (ProcThreadAttributePseudoConsole, False, True, False)
|
||||
|
||||
#define PROC_THREAD_ATTRIBUTE_MACHINE_TYPE \
|
||||
ProcThreadAttributeValue (ProcThreadAttributeMachineType, False, True, False)
|
||||
|
||||
#define PROC_THREAD_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES \
|
||||
ProcThreadAttributeValue (ProcThreadAttributeEnableOptionalXStateFeatures, True, True, False)
|
||||
|
||||
#define PROC_THREAD_ATTRIBUTE_SVE_VECTOR_LENGTH \
|
||||
ProcThreadAttributeValue (ProcThreadAttributeSveVectorLength, False, True, False)
|
||||
@@ -0,0 +1,38 @@
|
||||
#define PROCESSOR_INTEL_386 386
|
||||
#define PROCESSOR_INTEL_486 486
|
||||
#define PROCESSOR_INTEL_PENTIUM 586
|
||||
#define PROCESSOR_INTEL_IA64 2200
|
||||
#define PROCESSOR_MIPS_R4000 4000 // incl R4101 & R3910 for Windows CE
|
||||
#define PROCESSOR_ALPHA_21064 21064
|
||||
#define PROCESSOR_PPC_601 601
|
||||
#define PROCESSOR_PPC_603 603
|
||||
#define PROCESSOR_PPC_604 604
|
||||
#define PROCESSOR_PPC_620 620
|
||||
#define PROCESSOR_HITACHI_SH3 10003 // Windows CE
|
||||
#define PROCESSOR_HITACHI_SH3E 10004 // Windows CE
|
||||
#define PROCESSOR_HITACHI_SH4 10005 // Windows CE
|
||||
#define PROCESSOR_MOTOROLA_821 821 // Windows CE
|
||||
#define PROCESSOR_SHx_SH3 103 // Windows CE
|
||||
#define PROCESSOR_SHx_SH4 104 // Windows CE
|
||||
#define PROCESSOR_STRONGARM 2577 // Windows CE - 0xA11
|
||||
#define PROCESSOR_ARM720 1824 // Windows CE - 0x720
|
||||
#define PROCESSOR_ARM820 2080 // Windows CE - 0x820
|
||||
#define PROCESSOR_ARM920 2336 // Windows CE - 0x920
|
||||
#define PROCESSOR_ARM_7TDMI 70001 // Windows CE
|
||||
#define PROCESSOR_OPTIL 0x494f // MSIL
|
||||
|
||||
#define PROCESSOR_ARCHITECTURE_INTEL 0
|
||||
#define PROCESSOR_ARCHITECTURE_MIPS 1
|
||||
#define PROCESSOR_ARCHITECTURE_ALPHA 2
|
||||
#define PROCESSOR_ARCHITECTURE_PPC 3
|
||||
#define PROCESSOR_ARCHITECTURE_SHX 4
|
||||
#define PROCESSOR_ARCHITECTURE_ARM 5
|
||||
#define PROCESSOR_ARCHITECTURE_IA64 6
|
||||
#define PROCESSOR_ARCHITECTURE_ALPHA64 7
|
||||
#define PROCESSOR_ARCHITECTURE_MSIL 8
|
||||
#define PROCESSOR_ARCHITECTURE_AMD64 9
|
||||
#define PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 10
|
||||
#define PROCESSOR_ARCHITECTURE_NEUTRAL 11
|
||||
#define PROCESSOR_ARCHITECTURE_ARM64 12
|
||||
#define PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64 13
|
||||
#define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF
|
||||
@@ -8,4 +8,39 @@
|
||||
|
||||
#define HKEY_CURRENT_CONFIG (0x80000005)
|
||||
#define HKEY_DYN_DATA (0x80000006)
|
||||
#define HKEY_CURRENT_USER_LOCAL_SETTINGS (0x80000007)
|
||||
#define HKEY_CURRENT_USER_LOCAL_SETTINGS (0x80000007)
|
||||
|
||||
/* From: public/sdk/inc/ntregapi.h */
|
||||
|
||||
#define REG_OPTION_RESERVED (0x00000000L) // Parameter is reserved
|
||||
|
||||
#define REG_OPTION_NON_VOLATILE (0x00000000L) // Key is preserved
|
||||
// when system is rebooted
|
||||
|
||||
#define REG_OPTION_VOLATILE (0x00000001L) // Key is not preserved
|
||||
// when system is rebooted
|
||||
|
||||
#define REG_OPTION_CREATE_LINK (0x00000002L) // Created key is a
|
||||
// symbolic link
|
||||
|
||||
#define REG_OPTION_BACKUP_RESTORE (0x00000004L) // open for backup or restore
|
||||
// special access rules
|
||||
// privilege required
|
||||
|
||||
#define REG_OPTION_OPEN_LINK (0x00000008L) // Open symbolic link
|
||||
|
||||
#define REG_LEGAL_OPTION \
|
||||
(REG_OPTION_RESERVED |\
|
||||
REG_OPTION_NON_VOLATILE |\
|
||||
REG_OPTION_VOLATILE |\
|
||||
REG_OPTION_CREATE_LINK |\
|
||||
REG_OPTION_BACKUP_RESTORE |\
|
||||
REG_OPTION_OPEN_LINK)
|
||||
|
||||
|
||||
//
|
||||
// hive format to be used by Reg(Nt)SaveKeyEx
|
||||
//
|
||||
#define REG_STANDARD_FORMAT 1
|
||||
#define REG_LATEST_FORMAT 2
|
||||
#define REG_NO_COMPRESSION 4
|
||||
@@ -0,0 +1 @@
|
||||
#define MEM_EXTENDED_PARAMETER_TYPE_BITS 8
|
||||
@@ -23,7 +23,6 @@
|
||||
#define SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE (0xF)
|
||||
#define SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE (0x10)
|
||||
#define SYSTEM_MANDATORY_LABEL_ACE_TYPE (0x11)
|
||||
#define ACCESS_MAX_MS_V5_ACE_TYPE (0x11)
|
||||
#define SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE (0x12)
|
||||
#define SYSTEM_SCOPED_POLICY_ID_ACE_TYPE (0x13)
|
||||
#define SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE (0x14)
|
||||
@@ -121,4 +120,6 @@
|
||||
#define PROTECTED_DACL_SECURITY_INFORMATION (0x80000000L)
|
||||
#define PROTECTED_SACL_SECURITY_INFORMATION (0x40000000L)
|
||||
#define UNPROTECTED_DACL_SECURITY_INFORMATION (0x20000000L)
|
||||
#define UNPROTECTED_SACL_SECURITY_INFORMATION (0x10000000L)
|
||||
#define UNPROTECTED_SACL_SECURITY_INFORMATION (0x10000000L)
|
||||
|
||||
#define SECURITY_DESCRIPTOR_REVISION 1
|
||||
@@ -1,3 +1,5 @@
|
||||
/* Specific Access Rights are in <specific_access_right.txt> */
|
||||
|
||||
//
|
||||
// Service trigger types
|
||||
//
|
||||
@@ -19,8 +21,6 @@
|
||||
#define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY 4
|
||||
#define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL 5
|
||||
|
||||
// Specific Access Rights are in <specific_access_right.txt>
|
||||
|
||||
|
||||
#define SERVICE_RUNS_IN_SYSTEM_PROCESS 0x00000001
|
||||
|
||||
@@ -35,16 +35,32 @@
|
||||
#define SERVICE_WIN32_OWN_PROCESS 0x00000010
|
||||
#define SERVICE_WIN32_SHARE_PROCESS 0x00000020
|
||||
|
||||
#define SERVICE_USER_OWN_PROCESS 0x00000050
|
||||
#define SERVICE_USER_SHARE_PROCESS 0x00000060
|
||||
|
||||
#define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS)
|
||||
|
||||
#define SERVICE_INTERACTIVE_PROCESS 0x00000100
|
||||
|
||||
/*
|
||||
Legacy value changed with Win10 build 14942
|
||||
https://github.com/processhacker/processhacker/issues/120
|
||||
*/
|
||||
#define SERVICE_TYPE_ALL (SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS)
|
||||
|
||||
|
||||
/* New service Type from Win10 build 14942 */
|
||||
|
||||
#define SERVICE_USER_SERVICE 0x00000040
|
||||
#define SERVICE_USERSERVICE_INSTANCE 0x00000080
|
||||
#define SERVICE_USER_SHARE_PROCESS (SERVICE_USER_SERVICE |
|
||||
SERVICE_WIN32_SHARE_PROCESS)
|
||||
#define SERVICE_USER_OWN_PROCESS (SERVICE_USER_SERVICE |
|
||||
SERVICE_WIN32_OWN_PROCESS)
|
||||
#define SERVICE_PKG_SERVICE 0x00000200
|
||||
|
||||
|
||||
/* Make a value for the new SERVICE_TYPE_ALL ? */
|
||||
|
||||
|
||||
#define SERVICE_BOOT_START 0x00000000
|
||||
#define SERVICE_SYSTEM_START 0x00000001
|
||||
#define SERVICE_AUTO_START 0x00000002
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
// Shell File Operations
|
||||
|
||||
#define FO_MOVE 0x0001
|
||||
#define FO_COPY 0x0002
|
||||
#define FO_DELETE 0x0003
|
||||
#define FO_RENAME 0x0004
|
||||
|
||||
|
||||
#define FOF_MULTIDESTFILES 0x0001
|
||||
#define FOF_CONFIRMMOUSE 0x0002
|
||||
#define FOF_SILENT 0x0004 // don't display progress UI (confirm prompts may be displayed still)
|
||||
#define FOF_RENAMEONCOLLISION 0x0008 // automatically rename the source files to avoid the collisions
|
||||
#define FOF_NOCONFIRMATION 0x0010 // don't display confirmation UI, assume "yes" for cases that can be bypassed, "no" for those that can not
|
||||
#define FOF_WANTMAPPINGHANDLE 0x0020 // Fill in SHFILEOPSTRUCT.hNameMappings
|
||||
// Must be freed using SHFreeNameMappings
|
||||
#define FOF_ALLOWUNDO 0x0040 // enable undo including Recycle behavior for IFileOperation::Delete()
|
||||
#define FOF_FILESONLY 0x0080 // only operate on the files (non folders), both files and folders are assumed without this
|
||||
#define FOF_SIMPLEPROGRESS 0x0100 // means don't show names of files
|
||||
#define FOF_NOCONFIRMMKDIR 0x0200 // don't dispplay confirmatino UI before making any needed directories, assume "Yes" in these cases
|
||||
#define FOF_NOERRORUI 0x0400 // don't put up error UI, other UI may be displayed, progress, confirmations
|
||||
#define FOF_NOCOPYSECURITYATTRIBS 0x0800 // dont copy file security attributes (ACLs)
|
||||
#define FOF_NORECURSION 0x1000 // don't recurse into directories for operations that would recurse
|
||||
#define FOF_NO_CONNECTED_ELEMENTS 0x2000 // don't operate on connected elements ("xxx_files" folders that go with .htm files)
|
||||
#define FOF_WANTNUKEWARNING 0x4000 // during delete operation, warn if object is being permanently destroyed instead of recycling (partially overrides FOF_NOCONFIRMATION)
|
||||
#define FOF_NORECURSEREPARSE 0x8000 // deprecated; the operations engine always does the right thing on FolderLink objects (symlinks, reparse points, folder shortcuts)
|
||||
#define FOF_NO_UI (FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR) // don't display any UI at all
|
||||
@@ -258,15 +258,15 @@
|
||||
#define FAX_JOB_MANAGE (0x0040)
|
||||
|
||||
|
||||
// COM Specific Access Rights (Custom NAME)
|
||||
// Based on internet search for "COM Access Mask"
|
||||
// COM Specific Access Rights
|
||||
// Based on https://learn.microsoft.com/en-us/windows/win32/com/access-control-lists-for-com
|
||||
|
||||
|
||||
#define COM_EXECUTE (0x0001)
|
||||
#define COM_EXECUTE_LOCAL (0x0002)
|
||||
#define COM_EXECUTE_REMOTE (0x0004)
|
||||
#define COM_ACTIVATE_LOCAL (0x0008)
|
||||
#define COM_ACTIVATE_REMOTE (0x0010)
|
||||
#define COM_RIGHTS_EXECUTE (0x0001)
|
||||
#define COM_RIGHTS_EXECUTE_LOCAL (0x0002)
|
||||
#define COM_RIGHTS_EXECUTE_REMOTE (0x0004)
|
||||
#define COM_RIGHTS_ACTIVATE_LOCAL (0x0008)
|
||||
#define COM_RIGHTS_ACTIVATE_REMOTE (0x0010)
|
||||
|
||||
//
|
||||
// Section Access Rights.
|
||||
|
||||
@@ -5,3 +5,38 @@ bits = platform.architecture()[0]
|
||||
bitness = int(bits[:2])
|
||||
|
||||
NATIVE_WORD_MAX_VALUE = 0xffffffff if bitness == 32 else 0xffffffffffffffff
|
||||
|
||||
# python implementation of CTL_CODE (macro to compute IOCTL code from param.
|
||||
# The python implem simplify the code parsing define (macro) by not handling macro functions
|
||||
|
||||
# Original MACRO:
|
||||
#
|
||||
# #define CTL_CODE( DeviceType, Function, Method, Access ) ( \
|
||||
# ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
|
||||
# )
|
||||
|
||||
def CTL_CODE(DeviceType, Function, Method, Access):
|
||||
return (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
|
||||
|
||||
# https://learn.microsoft.com/en-us/windows/win32/api/winerror/nf-winerror-hresult_facility
|
||||
# Original MACRO:
|
||||
# #define HRESULT_FACILITY(hr) (((hr) >> 16) & 0x1fff)
|
||||
|
||||
def HRESULT_FACILITY(hr):
|
||||
return (((hr) >> 16) & 0x1fff)
|
||||
|
||||
# https://github.com/microsoft/win32metadata/blob/6af96d8470751e13a4e3f579f84b7b8b3ca398e1/generation/WinSDK/RecompiledIdlHeaders/um/WinBase.h#L3562
|
||||
# Original MACRO:
|
||||
|
||||
#define ProcThreadAttributeValue(Number, Thread, Input, Additive) \
|
||||
# (((Number) & PROC_THREAD_ATTRIBUTE_NUMBER) | \
|
||||
# ((Thread != FALSE) ? PROC_THREAD_ATTRIBUTE_THREAD : 0) | \
|
||||
# ((Input != FALSE) ? PROC_THREAD_ATTRIBUTE_INPUT : 0) | \
|
||||
# ((Additive != FALSE) ? PROC_THREAD_ATTRIBUTE_ADDITIVE : 0))
|
||||
|
||||
def ProcThreadAttributeValue(Number, Thread, Input, Additive):
|
||||
return ((Number & PROC_THREAD_ATTRIBUTE_NUMBER) |
|
||||
(Thread and PROC_THREAD_ATTRIBUTE_THREAD) |
|
||||
(Input and PROC_THREAD_ATTRIBUTE_INPUT) |
|
||||
(Additive and PROC_THREAD_ATTRIBUTE_ADDITIVE))
|
||||
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
// Atrget architecture description
|
||||
|
||||
#define CONTEXT_I386 0x00010000 // An old PFW error in case ?
|
||||
#define CONTEXT_AMD64 0x00100000
|
||||
#define CONTEXT_ARM 0x00200000
|
||||
#define CONTEXT_ARM64 0x00400000
|
||||
#define CONTEXT_i386 0x00010000L // this assumes that i386 and
|
||||
#define CONTEXT_i486 0x00010000L // i486 have identical context records
|
||||
#define WOW64_CONTEXT_i386 0x00010000 // this assumes that i386 and
|
||||
#define WOW64_CONTEXT_i486 0x00010000 // i486 have identical context records
|
||||
|
||||
// Not perfect, should be explicitly for an architecture
|
||||
|
||||
#define CONTEXT_CONTROL 0x00000001L
|
||||
#define CONTEXT_INTEGER 0x00000002L
|
||||
#define CONTEXT_SEGMENTS 0x00000004L
|
||||
#define CONTEXT_FLOATING_POINT 0x00000008L
|
||||
#define CONTEXT_DEBUG_REGISTERS 0x00000010L
|
||||
#define CONTEXT_EXTENDED_REGISTERS 0x00000020L
|
||||
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
|
||||
#define CONTEXT_ALL (CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS | CONTEXT_EXTENDED_REGISTERS)
|
||||
|
||||
#define CONTEXT_XSTATE (CONTEXT_I386 | 0x00000040L)
|
||||
|
||||
// WOW64
|
||||
|
||||
|
||||
|
||||
#define WOW64_CONTEXT_CONTROL (WOW64_CONTEXT_i386 | 0x00000001L) // SS:SP, CS:IP, FLAGS, BP
|
||||
#define WOW64_CONTEXT_INTEGER (WOW64_CONTEXT_i386 | 0x00000002L) // AX, BX, CX, DX, SI, DI
|
||||
#define WOW64_CONTEXT_SEGMENTS (WOW64_CONTEXT_i386 | 0x00000004L) // DS, ES, FS, GS
|
||||
#define WOW64_CONTEXT_FLOATING_POINT (WOW64_CONTEXT_i386 | 0x00000008L) // 387 state
|
||||
#define WOW64_CONTEXT_DEBUG_REGISTERS (WOW64_CONTEXT_i386 | 0x00000010L) // DB 0-3,6,7
|
||||
#define WOW64_CONTEXT_EXTENDED_REGISTERS (WOW64_CONTEXT_i386 | 0x00000020L) // cpu specific extensions
|
||||
|
||||
#define WOW64_CONTEXT_FULL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | WOW64_CONTEXT_SEGMENTS)
|
||||
|
||||
#define WOW64_CONTEXT_ALL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | WOW64_CONTEXT_SEGMENTS | \
|
||||
WOW64_CONTEXT_FLOATING_POINT | WOW64_CONTEXT_DEBUG_REGISTERS | \
|
||||
WOW64_CONTEXT_EXTENDED_REGISTERS)
|
||||
|
||||
#define WOW64_CONTEXT_XSTATE (WOW64_CONTEXT_i386 | 0x00000040L)
|
||||
|
||||
#define WOW64_CONTEXT_EXCEPTION_ACTIVE 0x08000000
|
||||
#define WOW64_CONTEXT_SERVICE_ACTIVE 0x10000000
|
||||
#define WOW64_CONTEXT_EXCEPTION_REQUEST 0x40000000
|
||||
#define WOW64_CONTEXT_EXCEPTION_REPORTING 0x80000000
|
||||
|
||||
// ARM64
|
||||
|
||||
#define CONTEXT_ARM64_CONTROL (CONTEXT_ARM64 | 0x1L)
|
||||
#define CONTEXT_ARM64_INTEGER (CONTEXT_ARM64 | 0x2L)
|
||||
#define CONTEXT_ARM64_FLOATING_POINT (CONTEXT_ARM64 | 0x4L)
|
||||
#define CONTEXT_ARM64_DEBUG_REGISTERS (CONTEXT_ARM64 | 0x8L)
|
||||
#define CONTEXT_ARM64_X18 (CONTEXT_ARM64 | 0x10L)
|
||||
|
||||
#define CONTEXT_UNWOUND_TO_CALL 0x20000000
|
||||
#define CONTEXT_RET_TO_GUEST 0x04000000
|
||||
|
||||
#define ARM64_MAX_BREAKPOINTS 8
|
||||
#define ARM64_MAX_WATCHPOINTS 2
|
||||
@@ -130,21 +130,6 @@
|
||||
#define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
|
||||
#define TH32CS_INHERIT 0x80000000
|
||||
|
||||
#define CONTEXT_I386 0x00010000
|
||||
|
||||
#define CONTEXT_CONTROL 0x00000001L
|
||||
#define CONTEXT_INTEGER 0x00000002L
|
||||
#define CONTEXT_SEGMENTS 0x00000004L
|
||||
#define CONTEXT_FLOATING_POINT 0x00000008L
|
||||
#define CONTEXT_DEBUG_REGISTERS 0x00000010L
|
||||
#define CONTEXT_EXTENDED_REGISTERS 0x00000020L
|
||||
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
|
||||
#define CONTEXT_ALL (CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS | CONTEXT_EXTENDED_REGISTERS)
|
||||
|
||||
#define CONTEXT_FULL CONTEXT_I386 | CONTEXT_FULL
|
||||
#define CONTEXT_ALL CONTEXT_I386 | CONTEXT_ALL
|
||||
#define CONTEXT_XSTATE (CONTEXT_I386 | 0x00000040L)
|
||||
|
||||
|
||||
#define PAGE_NOACCESS 0x01
|
||||
#define PAGE_READONLY 0x02
|
||||
@@ -198,38 +183,6 @@
|
||||
#define SPECIFIC_RIGHTS_ALL (0x0000FFFFL)
|
||||
|
||||
|
||||
#define AF_UNSPEC 0
|
||||
#define AF_UNIX 1
|
||||
#define AF_INET 2
|
||||
#define AF_IMPLINK 3
|
||||
#define AF_PUP 4
|
||||
#define AF_CHAOS 5
|
||||
#define AF_NS 6
|
||||
#define AF_IPX AF_NS
|
||||
#define AF_ISO 7
|
||||
#define AF_OSI AF_ISO
|
||||
#define AF_ECMA 8
|
||||
#define AF_DATAKIT 9
|
||||
#define AF_CCITT 10
|
||||
#define AF_SNA 11
|
||||
#define AF_DECnet 12
|
||||
#define AF_DLI 13
|
||||
#define AF_LAT 14
|
||||
#define AF_HYLINK 15
|
||||
#define AF_APPLETALK 16
|
||||
#define AF_NETBIOS 17
|
||||
#define AF_VOICEVIEW 18
|
||||
#define AF_FIREFOX 19
|
||||
#define AF_UNKNOWN1 20
|
||||
#define AF_BAN 21
|
||||
#define AF_ATM 22
|
||||
#define AF_INET6 23
|
||||
#define AF_CLUSTER 24
|
||||
#define AF_12844 25
|
||||
#define AF_IRDA 26
|
||||
#define AF_NETDES 28
|
||||
|
||||
|
||||
#define EXCEPTION_NONCONTINUABLE 0x1
|
||||
#define EXCEPTION_MAXIMUM_PARAMETERS 15
|
||||
|
||||
@@ -263,59 +216,11 @@
|
||||
#define TRUNCATE_EXISTING 5
|
||||
|
||||
|
||||
#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
|
||||
#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001
|
||||
#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002
|
||||
#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004
|
||||
#define FILE_NOTIFY_CHANGE_SIZE 0x00000008
|
||||
#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010
|
||||
#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020
|
||||
#define FILE_NOTIFY_CHANGE_CREATION 0x00000040
|
||||
#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100
|
||||
#define FILE_ACTION_ADDED 0x00000001
|
||||
#define FILE_ACTION_REMOVED 0x00000002
|
||||
#define FILE_ACTION_MODIFIED 0x00000003
|
||||
#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004
|
||||
#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005
|
||||
|
||||
|
||||
#define MAILSLOT_NO_MESSAGE (-1)
|
||||
#define MAILSLOT_WAIT_FOREVER (-1)
|
||||
#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 RRF_RT_REG_NONE 0x00000001
|
||||
@@ -385,38 +290,6 @@
|
||||
#define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000
|
||||
#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000
|
||||
|
||||
#define IMAGE_FILE_MACHINE_UNKNOWN 0
|
||||
#define IMAGE_FILE_MACHINE_I386 0x014c
|
||||
#define IMAGE_FILE_MACHINE_R3000 0x0162
|
||||
#define IMAGE_FILE_MACHINE_R4000 0x0166
|
||||
#define IMAGE_FILE_MACHINE_R10000 0x0168
|
||||
#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
|
||||
#define IMAGE_FILE_MACHINE_ALPHA 0x0184
|
||||
#define IMAGE_FILE_MACHINE_SH3 0x01a2
|
||||
#define IMAGE_FILE_MACHINE_SH3DSP 0x01a3
|
||||
#define IMAGE_FILE_MACHINE_SH3E 0x01a4
|
||||
#define IMAGE_FILE_MACHINE_SH4 0x01a6
|
||||
#define IMAGE_FILE_MACHINE_SH5 0x01a8
|
||||
#define IMAGE_FILE_MACHINE_ARM 0x01c0
|
||||
#define IMAGE_FILE_MACHINE_THUMB 0x01c2
|
||||
#define IMAGE_FILE_MACHINE_ARMNT 0x01c4
|
||||
#define IMAGE_FILE_MACHINE_AM33 0x01d3
|
||||
#define IMAGE_FILE_MACHINE_POWERPC 0x01F0
|
||||
#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1
|
||||
#define IMAGE_FILE_MACHINE_IA64 0x0200
|
||||
#define IMAGE_FILE_MACHINE_MIPS16 0x0266
|
||||
#define IMAGE_FILE_MACHINE_ALPHA64 0x0284
|
||||
#define IMAGE_FILE_MACHINE_MIPSFPU 0x0366
|
||||
#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
|
||||
#define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64
|
||||
#define IMAGE_FILE_MACHINE_TRICORE 0x0520
|
||||
#define IMAGE_FILE_MACHINE_CEF 0x0CEF
|
||||
#define IMAGE_FILE_MACHINE_EBC 0x0EBC
|
||||
#define IMAGE_FILE_MACHINE_AMD64 0x8664
|
||||
#define IMAGE_FILE_MACHINE_M32R 0x9041
|
||||
#define IMAGE_FILE_MACHINE_CEE 0xC0EE
|
||||
|
||||
|
||||
|
||||
#define SECURITY_MANDATORY_UNTRUSTED_RID (0x00000000L)
|
||||
#define SECURITY_MANDATORY_LOW_RID (0x00001000L)
|
||||
@@ -780,4 +653,7 @@
|
||||
|
||||
#define TXFS_MINIVERSION_COMMITTED_VIEW (0x0000)
|
||||
#define TXFS_MINIVERSION_DIRTY_VIEW (0xFFFF)
|
||||
#define TXFS_MINIVERSION_DEFAULT_VIEW (0xFFFE)
|
||||
#define TXFS_MINIVERSION_DEFAULT_VIEW (0xFFFE)
|
||||
|
||||
|
||||
#define PROCESSOR_FEATURE_MAX 64
|
||||
@@ -46,4 +46,60 @@
|
||||
#define IMAGE_REL_BASED_MACHINE_SPECIFIC_7 7
|
||||
#define IMAGE_REL_BASED_MACHINE_SPECIFIC_8 8
|
||||
#define IMAGE_REL_BASED_MACHINE_SPECIFIC_9 9
|
||||
#define IMAGE_REL_BASED_DIR64 10
|
||||
#define IMAGE_REL_BASED_DIR64 10
|
||||
|
||||
// Security Directory related
|
||||
|
||||
#define WIN_CERT_REVISION_1_0 (0x0100)
|
||||
#define WIN_CERT_REVISION_2_0 (0x0200)
|
||||
|
||||
#define WIN_CERT_TYPE_X509 (0x0001) // bCertificate contains an X.509 Certificate
|
||||
#define WIN_CERT_TYPE_PKCS_SIGNED_DATA (0x0002) // bCertificate contains a PKCS SignedData structure
|
||||
#define WIN_CERT_TYPE_RESERVED_1 (0x0003) // Reserved
|
||||
#define WIN_CERT_TYPE_TS_STACK_SIGNED (0x0004) // Terminal Server Protocol Stack Certificate signing
|
||||
|
||||
// Optional Header related
|
||||
|
||||
#define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56
|
||||
#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28
|
||||
#define IMAGE_SIZEOF_NT_OPTIONAL32_HEADER 224
|
||||
#define IMAGE_SIZEOF_NT_OPTIONAL64_HEADER 240
|
||||
|
||||
#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b
|
||||
#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b
|
||||
#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107
|
||||
|
||||
|
||||
#define IMAGE_FILE_MACHINE_UNKNOWN 0
|
||||
#define IMAGE_FILE_MACHINE_I386 0x014c
|
||||
#define IMAGE_FILE_MACHINE_R3000 0x0162
|
||||
#define IMAGE_FILE_MACHINE_R4000 0x0166
|
||||
#define IMAGE_FILE_MACHINE_R10000 0x0168
|
||||
#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
|
||||
#define IMAGE_FILE_MACHINE_ALPHA 0x0184
|
||||
#define IMAGE_FILE_MACHINE_SH3 0x01a2
|
||||
#define IMAGE_FILE_MACHINE_SH3DSP 0x01a3
|
||||
#define IMAGE_FILE_MACHINE_SH3E 0x01a4
|
||||
#define IMAGE_FILE_MACHINE_SH4 0x01a6
|
||||
#define IMAGE_FILE_MACHINE_SH5 0x01a8
|
||||
#define IMAGE_FILE_MACHINE_ARM 0x01c0
|
||||
#define IMAGE_FILE_MACHINE_THUMB 0x01c2
|
||||
#define IMAGE_FILE_MACHINE_ARMNT 0x01c4
|
||||
#define IMAGE_FILE_MACHINE_AM33 0x01d3
|
||||
#define IMAGE_FILE_MACHINE_POWERPC 0x01F0
|
||||
#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1
|
||||
#define IMAGE_FILE_MACHINE_IA64 0x0200
|
||||
#define IMAGE_FILE_MACHINE_MIPS16 0x0266
|
||||
#define IMAGE_FILE_MACHINE_ALPHA64 0x0284
|
||||
#define IMAGE_FILE_MACHINE_MIPSFPU 0x0366
|
||||
#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
|
||||
#define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64
|
||||
#define IMAGE_FILE_MACHINE_TRICORE 0x0520
|
||||
#define IMAGE_FILE_MACHINE_CEF 0x0CEF
|
||||
#define IMAGE_FILE_MACHINE_EBC 0x0EBC
|
||||
#define IMAGE_FILE_MACHINE_AMD64 0x8664
|
||||
#define IMAGE_FILE_MACHINE_M32R 0x9041
|
||||
#define IMAGE_FILE_MACHINE_CEE 0xC0EE
|
||||
#define IMAGE_FILE_MACHINE_ARM64 0xAA64
|
||||
|
||||
#define IMAGE_FILE_MACHINE_TARGET_HOST 0x0001 // Useful for indicating we want to interact with the host and not a WoW guest.
|
||||
@@ -387,6 +387,38 @@
|
||||
#define CRYPT_ARCHIVABLE 0x00004000
|
||||
#define CRYPT_FORCE_KEY_PROTECTION_HIGH 0x00008000
|
||||
|
||||
#define CERT_RDN_ANY_TYPE 0
|
||||
#define CERT_RDN_ENCODED_BLOB 1
|
||||
#define CERT_RDN_OCTET_STRING 2
|
||||
#define CERT_RDN_NUMERIC_STRING 3
|
||||
#define CERT_RDN_PRINTABLE_STRING 4
|
||||
#define CERT_RDN_TELETEX_STRING 5
|
||||
#define CERT_RDN_T61_STRING 5
|
||||
#define CERT_RDN_VIDEOTEX_STRING 6
|
||||
#define CERT_RDN_IA5_STRING 7
|
||||
#define CERT_RDN_GRAPHIC_STRING 8
|
||||
#define CERT_RDN_VISIBLE_STRING 9
|
||||
#define CERT_RDN_ISO646_STRING 9
|
||||
#define CERT_RDN_GENERAL_STRING 10
|
||||
#define CERT_RDN_UNIVERSAL_STRING 11
|
||||
#define CERT_RDN_INT4_STRING 11
|
||||
#define CERT_RDN_BMP_STRING 12
|
||||
#define CERT_RDN_UNICODE_STRING 12
|
||||
#define CERT_RDN_UTF8_STRING 13
|
||||
#define CERT_RDN_TYPE_MASK 0xff
|
||||
#define CERT_RDN_FLAGS_MASK 0xff000000
|
||||
#define CERT_RDN_ENABLE_T61_UNICODE_FLAG 0x80000000
|
||||
#define CERT_RDN_ENABLE_UTF8_UNICODE_FLAG 0x20000000
|
||||
#define CERT_RDN_FORCE_UTF8_UNICODE_FLAG 0x10000000
|
||||
#define CERT_RDN_DISABLE_CHECK_TYPE_FLAG 0x40000000
|
||||
#define CERT_RDN_DISABLE_IE4_UTF8_FLAG 0x1000000
|
||||
|
||||
#define CRYPT_DECODE_NOCOPY_FLAG 0x1
|
||||
#define CRYPT_DECODE_TO_BE_SIGNED_FLAG 0x2
|
||||
#define CRYPT_DECODE_SHARE_OID_STRING_FLAG 0x4
|
||||
#define CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG 0x8
|
||||
#define CRYPT_DECODE_ALLOC_FLAG 0x8000
|
||||
#define CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG CERT_RDN_DISABLE_IE4_UTF8_FLAG
|
||||
|
||||
#define CRYPT_ENCODE_DECODE_NONE 0
|
||||
#define X509_CERT (1)
|
||||
@@ -582,4 +614,47 @@
|
||||
#define CMSG_CTRL_MAIL_LIST_DECRYPT 18
|
||||
#define CMSG_CTRL_VERIFY_SIGNATURE_EX 19
|
||||
#define CMSG_CTRL_ADD_CMS_SIGNER_INFO 20
|
||||
#define CMSG_CTRL_ENABLE_STRONG_SIGNATURE 21
|
||||
#define CMSG_CTRL_ENABLE_STRONG_SIGNATURE 21
|
||||
|
||||
|
||||
//+-------------------------------------------------------------------------
|
||||
// The following flag should be set in the above dwFlags to enable
|
||||
// a CertSetCertificateContextProperty(CERT_KEY_CONTEXT_PROP_ID) after a
|
||||
// CryptAcquireContext is done in the Sign or Decrypt Message functions.
|
||||
//
|
||||
// The following define must not collide with any of the
|
||||
// CryptAcquireContext dwFlag defines.
|
||||
//--------------------------------------------------------------------------
|
||||
#define CERT_SET_KEY_PROV_HANDLE_PROP_ID 0x00000001
|
||||
#define CERT_SET_KEY_CONTEXT_PROP_ID 0x00000001
|
||||
|
||||
// Special dwKeySpec indicating a CNG NCRYPT_KEY_HANDLE instead of a CAPI1
|
||||
// HCRYPTPROV
|
||||
#define CERT_NCRYPT_KEY_SPEC 0xFFFFFFFF
|
||||
|
||||
|
||||
#define CERT_REQUEST_V1 0
|
||||
|
||||
|
||||
// Include\10.0.10240.0\um\wincrypt.h
|
||||
|
||||
#define CRYPT_STRING_BASE64HEADER 0x00000000
|
||||
#define CRYPT_STRING_BASE64 0x00000001
|
||||
#define CRYPT_STRING_BINARY 0x00000002
|
||||
#define CRYPT_STRING_BASE64REQUESTHEADER 0x00000003
|
||||
#define CRYPT_STRING_HEX 0x00000004
|
||||
#define CRYPT_STRING_HEXASCII 0x00000005
|
||||
#define CRYPT_STRING_BASE64_ANY 0x00000006
|
||||
#define CRYPT_STRING_ANY 0x00000007
|
||||
#define CRYPT_STRING_HEX_ANY 0x00000008
|
||||
#define CRYPT_STRING_BASE64X509CRLHEADER 0x00000009
|
||||
#define CRYPT_STRING_HEXADDR 0x0000000a
|
||||
#define CRYPT_STRING_HEXASCIIADDR 0x0000000b
|
||||
#define CRYPT_STRING_HEXRAW 0x0000000c
|
||||
#define CRYPT_STRING_BASE64URI 0x0000000d
|
||||
|
||||
#define CRYPT_STRING_PERCENTESCAPE 0x08000000 // base64 formats only
|
||||
#define CRYPT_STRING_HASHDATA 0x10000000
|
||||
#define CRYPT_STRING_STRICT 0x20000000
|
||||
#define CRYPT_STRING_NOCRLF 0x40000000
|
||||
#define CRYPT_STRING_NOCR 0x80000000
|
||||
@@ -0,0 +1,100 @@
|
||||
#define WSADESCRIPTION_LEN 256
|
||||
#define WSASYS_STATUS_LEN 128
|
||||
#define WSAPROTOCOL_LEN 255
|
||||
#define MAX_PROTOCOL_CHAIN 7
|
||||
#define BASE_PROTOCOL 1
|
||||
#define LAYERED_PROTOCOL 0
|
||||
|
||||
|
||||
// INVALID_SOCKET (SOCKET)(~0) // will change in 32 & 64 bits..
|
||||
// The final INVALID_SOCKET is setuped in __init__.py of generated def
|
||||
#define INVALID_SOCKET32 (0xffffffff)
|
||||
#define INVALID_SOCKET64 (0xffffffffffffffff)
|
||||
|
||||
#define SOCKET_ERROR (-1)
|
||||
|
||||
|
||||
/*
|
||||
* Constants and structures defined by the internet system,
|
||||
* Per RFC 790, September 1981, taken from the BSD file netinet/in.h.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Types
|
||||
*/
|
||||
#define SOCK_STREAM 1 /* stream socket */
|
||||
#define SOCK_DGRAM 2 /* datagram socket */
|
||||
#define SOCK_RAW 3 /* raw-protocol interface */
|
||||
#define SOCK_RDM 4 /* reliably-delivered message */
|
||||
#define SOCK_SEQPACKET 5 /* sequenced packet stream */
|
||||
|
||||
/*
|
||||
* Protocols
|
||||
*/
|
||||
#define IPPROTO_IP 0 /* dummy for IP */
|
||||
#define IPPROTO_ICMP 1 /* control message protocol */
|
||||
#define IPPROTO_IGMP 2 /* group management protocol */
|
||||
#define IPPROTO_GGP 3 /* gateway^2 (deprecated) */
|
||||
#define IPPROTO_TCP 6 /* tcp */
|
||||
#define IPPROTO_PUP 12 /* pup */
|
||||
#define IPPROTO_UDP 17 /* user datagram protocol */
|
||||
#define IPPROTO_IDP 22 /* xns idp */
|
||||
#define IPPROTO_ND 77 /* UNOFFICIAL net disk proto */
|
||||
|
||||
#define IPPROTO_RAW 255 /* raw IP packet */
|
||||
#define IPPROTO_MAX 256
|
||||
|
||||
|
||||
/*
|
||||
* Port/socket numbers: network standard functions
|
||||
*/
|
||||
#define IPPORT_ECHO 7
|
||||
#define IPPORT_DISCARD 9
|
||||
#define IPPORT_SYSTAT 11
|
||||
#define IPPORT_DAYTIME 13
|
||||
#define IPPORT_NETSTAT 15
|
||||
#define IPPORT_FTP 21
|
||||
#define IPPORT_TELNET 23
|
||||
#define IPPORT_SMTP 25
|
||||
#define IPPORT_TIMESERVER 37
|
||||
#define IPPORT_NAMESERVER 42
|
||||
#define IPPORT_WHOIS 43
|
||||
#define IPPORT_MTP 57
|
||||
|
||||
|
||||
/*
|
||||
* Address families.
|
||||
*/
|
||||
#define AF_UNSPEC 0 /* unspecified */
|
||||
#define AF_UNIX 1 /* local to host (pipes, portals) */
|
||||
#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
|
||||
#define AF_IMPLINK 3 /* arpanet imp addresses */
|
||||
#define AF_PUP 4 /* pup protocols: e.g. BSP */
|
||||
#define AF_CHAOS 5 /* mit CHAOS protocols */
|
||||
#define AF_IPX 6 /* IPX and SPX */
|
||||
#define AF_NS 6 /* XEROX NS protocols */
|
||||
#define AF_ISO 7 /* ISO protocols */
|
||||
#define AF_OSI AF_ISO /* OSI is ISO */
|
||||
#define AF_ECMA 8 /* european computer manufacturers */
|
||||
#define AF_DATAKIT 9 /* datakit protocols */
|
||||
#define AF_CCITT 10 /* CCITT protocols, X.25 etc */
|
||||
#define AF_SNA 11 /* IBM SNA */
|
||||
#define AF_DECnet 12 /* DECnet */
|
||||
#define AF_DLI 13 /* Direct data link interface */
|
||||
#define AF_LAT 14 /* LAT */
|
||||
#define AF_HYLINK 15 /* NSC Hyperchannel */
|
||||
#define AF_APPLETALK 16 /* AppleTalk */
|
||||
#define AF_NETBIOS 17 /* NetBios-style addresses */
|
||||
#define AF_VOICEVIEW 18 /* VoiceView */
|
||||
#define AF_FIREFOX 19 /* FireFox */
|
||||
#define AF_UNKNOWN1 20 /* Somebody is using this! */
|
||||
#define AF_BAN 21 /* Banyan */
|
||||
#define AF_ATM 22
|
||||
#define AF_INET6 23
|
||||
#define AF_CLUSTER 24
|
||||
#define AF_12844 25
|
||||
#define AF_IRDA 26
|
||||
#define AF_NETDES 28
|
||||
|
||||
#define AF_MAX 22
|
||||
@@ -56,4 +56,110 @@ HRESULT WINAPI CLSIDFromProgID(
|
||||
|
||||
PVOID CoTaskMemFree(
|
||||
LPVOID pv
|
||||
);
|
||||
);
|
||||
|
||||
|
||||
LPSAFEARRAY SafeArrayCreate(
|
||||
[in] VARTYPE vt,
|
||||
[in] UINT cDims,
|
||||
[in] SAFEARRAYBOUND *rgsabound
|
||||
);
|
||||
|
||||
LPSAFEARRAY SafeArrayCreateVector(
|
||||
[in] VARTYPE vt,
|
||||
[in] LONG lLbound,
|
||||
[in] ULONG cElements
|
||||
);
|
||||
|
||||
|
||||
HRESULT SafeArrayDestroy(
|
||||
[in] SAFEARRAY *psa
|
||||
);
|
||||
|
||||
|
||||
HRESULT SafeArrayDestroyData(
|
||||
[in] SAFEARRAY *psa
|
||||
);
|
||||
|
||||
HRESULT SafeArrayGetElement(
|
||||
[in] SAFEARRAY *psa,
|
||||
[in] LONG *rgIndices,
|
||||
[out] VOID *pv
|
||||
);
|
||||
|
||||
UINT SafeArrayGetElemsize(
|
||||
[in] SAFEARRAY *psa
|
||||
);
|
||||
|
||||
HRESULT SafeArrayGetLBound(
|
||||
[in] SAFEARRAY *psa,
|
||||
[in] UINT nDim,
|
||||
[out] LONG *plLbound
|
||||
);
|
||||
|
||||
HRESULT SafeArrayGetUBound(
|
||||
[in] SAFEARRAY *psa,
|
||||
[in] UINT nDim,
|
||||
[out] LONG *plUbound
|
||||
);
|
||||
|
||||
UINT SafeArrayGetDim(
|
||||
[in] SAFEARRAY *psa
|
||||
);
|
||||
|
||||
HRESULT SafeArrayPutElement(
|
||||
[in] SAFEARRAY *psa,
|
||||
[in] LONG *rgIndices,
|
||||
[in] VOID *pv
|
||||
);
|
||||
|
||||
HRESULT SafeArrayGetVartype(
|
||||
[in] SAFEARRAY *psa,
|
||||
[out] VARTYPE *pvt
|
||||
);
|
||||
|
||||
HRESULT SafeArrayCopy(
|
||||
[in] SAFEARRAY *psa,
|
||||
[out] LPSAFEARRAY *ppsaOut
|
||||
);
|
||||
|
||||
HRESULT SafeArrayCopyData(
|
||||
[in] SAFEARRAY *psaSource,
|
||||
[in] SAFEARRAY *psaTarget
|
||||
);
|
||||
|
||||
|
||||
PVOID SysAllocString(
|
||||
[in, optional] OLECHAR *psz
|
||||
);
|
||||
|
||||
VOID SysFreeString(
|
||||
[in, optional] BSTR bstrString
|
||||
);
|
||||
|
||||
|
||||
HRESULT CreateStreamOnHGlobal(
|
||||
[in] HGLOBAL hGlobal,
|
||||
[in] BOOL fDeleteOnRelease,
|
||||
[out] LPSTREAM *ppstm
|
||||
);
|
||||
|
||||
HRESULT GetHGlobalFromStream(
|
||||
[in] LPUNKNOWN pstm,
|
||||
[out] HGLOBAL *phglobal
|
||||
);
|
||||
|
||||
HRESULT CoMarshalInterface(
|
||||
[in] LPUNKNOWN pStm,
|
||||
[in] REFIID riid,
|
||||
[in] LPUNKNOWN pUnk,
|
||||
[in] DWORD dwDestContext,
|
||||
[in, optional] LPVOID pvDestContext,
|
||||
[in] DWORD mshlflags
|
||||
);
|
||||
|
||||
HRESULT CoUnmarshalInterface(
|
||||
[in] PVOID pStm,
|
||||
[in] REFIID riid,
|
||||
[out] LPVOID *ppv
|
||||
);
|
||||
|
||||
@@ -52,11 +52,6 @@ BOOL WINAPI CryptCATAdminReleaseContext(
|
||||
_In_ DWORD dwFlags
|
||||
);
|
||||
|
||||
CRYPTCATATTRIBUTE* WINAPI CryptCATGetAttrInfo(
|
||||
_In_ HANDLE hCatalog,
|
||||
_In_ CRYPTCATMEMBER *pCatMember,
|
||||
_In_ LPWSTR pwszReferenceTag
|
||||
);
|
||||
|
||||
CRYPTCATMEMBER* WINAPI CryptCATGetMemberInfo(
|
||||
_In_ HANDLE hCatalog,
|
||||
@@ -258,6 +253,81 @@ BOOL WINAPI CryptReleaseContext(
|
||||
_In_ DWORD dwFlags
|
||||
);
|
||||
|
||||
|
||||
BOOL CryptCreateHash(
|
||||
HCRYPTPROV hProv,
|
||||
ALG_ID Algid,
|
||||
HCRYPTKEY hKey,
|
||||
DWORD dwFlags,
|
||||
HCRYPTHASH *phHash
|
||||
);
|
||||
|
||||
BOOL CryptHashData(
|
||||
HCRYPTHASH hHash,
|
||||
BYTE *pbData,
|
||||
DWORD dwDataLen,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
BOOL CryptGetHashParam(
|
||||
HCRYPTHASH hHash,
|
||||
DWORD dwParam,
|
||||
BYTE *pbData,
|
||||
DWORD *pdwDataLen,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
BOOL CryptVerifySignatureA(
|
||||
HCRYPTHASH hHash,
|
||||
BYTE *pbSignature,
|
||||
DWORD dwSigLen,
|
||||
HCRYPTKEY hPubKey,
|
||||
LPCSTR szDescription,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
BOOL CryptVerifySignatureW(
|
||||
HCRYPTHASH hHash,
|
||||
BYTE *pbSignature,
|
||||
DWORD dwSigLen,
|
||||
HCRYPTKEY hPubKey,
|
||||
LPCWSTR szDescription,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
BOOL CryptSignHashA(
|
||||
HCRYPTHASH hHash,
|
||||
DWORD dwKeySpec,
|
||||
LPCSTR szDescription,
|
||||
DWORD dwFlags,
|
||||
BYTE *pbSignature,
|
||||
DWORD *pdwSigLen
|
||||
);
|
||||
|
||||
|
||||
BOOL CryptSignHashW(
|
||||
HCRYPTHASH hHash,
|
||||
DWORD dwKeySpec,
|
||||
LPCWSTR szDescription,
|
||||
DWORD dwFlags,
|
||||
BYTE *pbSignature,
|
||||
DWORD *pdwSigLen
|
||||
);
|
||||
|
||||
BOOL CryptDestroyHash(
|
||||
HCRYPTHASH hHash
|
||||
);
|
||||
|
||||
|
||||
|
||||
BOOL CryptDeriveKey(
|
||||
HCRYPTPROV hProv,
|
||||
ALG_ID Algid,
|
||||
HCRYPTHASH hBaseData,
|
||||
DWORD dwFlags,
|
||||
HCRYPTKEY *phKey
|
||||
);
|
||||
|
||||
BOOL WINAPI CryptExportKey(
|
||||
_In_ HCRYPTKEY hKey,
|
||||
_In_ HCRYPTKEY hExpKey,
|
||||
@@ -267,6 +337,14 @@ BOOL WINAPI CryptExportKey(
|
||||
_Inout_ DWORD *pdwDataLen
|
||||
);
|
||||
|
||||
BOOL CryptImportKey(
|
||||
HCRYPTPROV hProv,
|
||||
BYTE *pbData,
|
||||
DWORD dwDataLen,
|
||||
HCRYPTKEY hPubKey,
|
||||
DWORD dwFlags,
|
||||
HCRYPTKEY *phKey
|
||||
);
|
||||
|
||||
BOOL WINAPI CertGetCertificateContextProperty(
|
||||
_In_ PCCERT_CONTEXT pCertContext,
|
||||
@@ -539,4 +617,64 @@ BOOL CryptGetOIDFunctionValue(
|
||||
BOOL CertCloseStore(
|
||||
HCERTSTORE hCertStore,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
BOOL CryptSignAndEncodeCertificate(
|
||||
[in] BCRYPT_KEY_HANDLE hBCryptKey,
|
||||
[in] DWORD dwKeySpec,
|
||||
[in] DWORD dwCertEncodingType,
|
||||
[in] LPCSTR lpszStructType,
|
||||
[in] PVOID pvStructInfo,
|
||||
[in] PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
|
||||
[in] PVOID pvHashAuxInfo,
|
||||
[out] BYTE *pbEncoded,
|
||||
[in, out] DWORD *pcbEncoded
|
||||
);
|
||||
|
||||
BOOL CryptSignCertificate(
|
||||
[in] BCRYPT_KEY_HANDLE hBCryptKey,
|
||||
[in] DWORD dwKeySpec,
|
||||
[in] DWORD dwCertEncodingType,
|
||||
[in] BYTE *pbEncodedToBeSigned,
|
||||
[in] DWORD cbEncodedToBeSigned,
|
||||
[in] PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
|
||||
[in] PVOID pvHashAuxInfo,
|
||||
[out] BYTE *pbSignature,
|
||||
[in, out] DWORD *pcbSignature
|
||||
);
|
||||
|
||||
BOOL CryptBinaryToStringA(
|
||||
[in] BYTE *pbBinary,
|
||||
[in] DWORD cbBinary,
|
||||
[in] DWORD dwFlags,
|
||||
[out, optional] LPSTR pszString,
|
||||
[in, out] DWORD *pcchString
|
||||
);
|
||||
|
||||
BOOL CryptBinaryToStringW(
|
||||
[in] BYTE *pbBinary,
|
||||
[in] DWORD cbBinary,
|
||||
[in] DWORD dwFlags,
|
||||
[out, optional] LPWSTR pszString,
|
||||
[in, out] DWORD *pcchString
|
||||
);
|
||||
|
||||
BOOL CryptStringToBinaryA(
|
||||
[in] LPCSTR pszString,
|
||||
[in] DWORD cchString,
|
||||
[in] DWORD dwFlags,
|
||||
[in] BYTE *pbBinary,
|
||||
[in, out] DWORD *pcbBinary,
|
||||
[out] DWORD *pdwSkip,
|
||||
[out] DWORD *pdwFlags
|
||||
);
|
||||
|
||||
BOOL CryptStringToBinaryW(
|
||||
[in] LPCWSTR pszString,
|
||||
[in] DWORD cchString,
|
||||
[in] DWORD dwFlags,
|
||||
[in] BYTE *pbBinary,
|
||||
[in, out] DWORD *pcbBinary,
|
||||
[out] DWORD *pdwSkip,
|
||||
[out] DWORD *pdwFlags
|
||||
);
|
||||
@@ -0,0 +1,31 @@
|
||||
BOOL CryptProtectData(
|
||||
DATA_BLOB *pDataIn,
|
||||
LPCWSTR szDataDescr,
|
||||
DATA_BLOB *pOptionalEntropy,
|
||||
PVOID pvReserved,
|
||||
CRYPTPROTECT_PROMPTSTRUCT *pPromptStruct,
|
||||
DWORD dwFlags,
|
||||
DATA_BLOB *pDataOut
|
||||
);
|
||||
|
||||
BOOL CryptUnprotectData(
|
||||
DATA_BLOB *pDataIn,
|
||||
LPWSTR *ppszDataDescr,
|
||||
DATA_BLOB *pOptionalEntropy,
|
||||
PVOID pvReserved,
|
||||
CRYPTPROTECT_PROMPTSTRUCT *pPromptStruct,
|
||||
DWORD dwFlags,
|
||||
DATA_BLOB *pDataOut
|
||||
);
|
||||
|
||||
BOOL CryptProtectMemory(
|
||||
LPVOID pDataIn,
|
||||
DWORD cbDataIn,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
BOOL CryptUnprotectMemory(
|
||||
LPVOID pDataIn,
|
||||
DWORD cbDataIn,
|
||||
DWORD dwFlags
|
||||
);
|
||||
@@ -0,0 +1,38 @@
|
||||
DWORD GetEnvironmentVariableA(
|
||||
[in, optional] LPCSTR lpName,
|
||||
[out, optional] LPSTR lpBuffer,
|
||||
[in] DWORD nSize
|
||||
);
|
||||
|
||||
DWORD GetEnvironmentVariableW(
|
||||
[in, optional] LPCWSTR lpName,
|
||||
[out, optional] LPWSTR lpBuffer,
|
||||
[in] DWORD nSize
|
||||
);
|
||||
|
||||
|
||||
BOOL SetEnvironmentVariableA(
|
||||
[in] LPCSTR lpName,
|
||||
[in, optional] LPCSTR lpValue
|
||||
);
|
||||
|
||||
BOOL SetEnvironmentVariableW(
|
||||
[in] LPCWSTR lpName,
|
||||
[in, optional] LPCWSTR lpValue
|
||||
);
|
||||
|
||||
PVOID GetEnvironmentStringsA();
|
||||
|
||||
PVOID GetEnvironmentStringsW();
|
||||
|
||||
BOOL SetEnvironmentStringsW(
|
||||
LPWCH NewEnvironment
|
||||
);
|
||||
|
||||
BOOL FreeEnvironmentStringsA(
|
||||
PVOID penv
|
||||
);
|
||||
|
||||
BOOL FreeEnvironmentStringsW(
|
||||
PVOID penv
|
||||
);
|
||||
@@ -23,4 +23,84 @@ BOOL FindNextFileW(
|
||||
|
||||
BOOL FindClose(
|
||||
HANDLE hFindFile
|
||||
);
|
||||
|
||||
HANDLE FindFirstChangeNotificationA(
|
||||
LPCSTR lpPathName,
|
||||
BOOL bWatchSubtree,
|
||||
DWORD dwNotifyFilter
|
||||
);
|
||||
|
||||
HANDLE FindFirstChangeNotificationW(
|
||||
LPCWSTR lpPathName,
|
||||
BOOL bWatchSubtree,
|
||||
DWORD dwNotifyFilter
|
||||
);
|
||||
|
||||
BOOL FindNextChangeNotification(
|
||||
HANDLE hChangeHandle
|
||||
);
|
||||
|
||||
BOOL FindCloseChangeNotification(
|
||||
HANDLE hChangeHandle
|
||||
);
|
||||
|
||||
|
||||
BOOL ReadDirectoryChangesW(
|
||||
HANDLE hDirectory,
|
||||
LPVOID lpBuffer,
|
||||
DWORD nBufferLength,
|
||||
BOOL bWatchSubtree,
|
||||
DWORD dwNotifyFilter,
|
||||
LPDWORD lpBytesReturned,
|
||||
LPOVERLAPPED lpOverlapped,
|
||||
LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
|
||||
);
|
||||
|
||||
BOOL ReadDirectoryChangesExW(
|
||||
HANDLE hDirectory,
|
||||
LPVOID lpBuffer,
|
||||
DWORD nBufferLength,
|
||||
BOOL bWatchSubtree,
|
||||
DWORD dwNotifyFilter,
|
||||
LPDWORD lpBytesReturned,
|
||||
LPOVERLAPPED lpOverlapped,
|
||||
LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
|
||||
READ_DIRECTORY_NOTIFY_INFORMATION_CLASS ReadDirectoryNotifyInformationClass
|
||||
);
|
||||
|
||||
BOOL LockFile(
|
||||
[in] HANDLE hFile,
|
||||
[in] DWORD dwFileOffsetLow,
|
||||
[in] DWORD dwFileOffsetHigh,
|
||||
[in] DWORD nNumberOfBytesToLockLow,
|
||||
[in] DWORD nNumberOfBytesToLockHigh
|
||||
);
|
||||
|
||||
BOOL LockFileEx(
|
||||
[in] HANDLE hFile,
|
||||
[in] DWORD dwFlags,
|
||||
DWORD dwReserved,
|
||||
[in] DWORD nNumberOfBytesToLockLow,
|
||||
[in] DWORD nNumberOfBytesToLockHigh,
|
||||
[in, out] LPOVERLAPPED lpOverlapped
|
||||
);
|
||||
|
||||
BOOL SetFileInformationByHandle(
|
||||
[in] HANDLE hFile,
|
||||
[in] FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
|
||||
[in] LPVOID lpFileInformation,
|
||||
[in] DWORD dwBufferSize
|
||||
);
|
||||
|
||||
BOOL GetFileInformationByHandle(
|
||||
[in] HANDLE hFile,
|
||||
[out] LPBY_HANDLE_FILE_INFORMATION lpFileInformation
|
||||
);
|
||||
|
||||
BOOL GetFileInformationByHandleEx(
|
||||
[in] HANDLE hFile,
|
||||
[in] FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
|
||||
[out] LPVOID lpFileInformation,
|
||||
[in] DWORD dwBufferSize
|
||||
);
|
||||
@@ -0,0 +1,239 @@
|
||||
BOOL InternetCheckConnectionA(
|
||||
LPCSTR lpszUrl,
|
||||
DWORD dwFlags,
|
||||
DWORD dwReserved
|
||||
);
|
||||
|
||||
BOOL InternetCheckConnectionW(
|
||||
LPCWSTR lpszUrl,
|
||||
DWORD dwFlags,
|
||||
DWORD dwReserved
|
||||
);
|
||||
|
||||
|
||||
HINTERNET InternetOpenA(
|
||||
LPCSTR lpszAgent,
|
||||
DWORD dwAccessType,
|
||||
LPCSTR lpszProxy,
|
||||
LPCSTR lpszProxyBypass,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
HINTERNET InternetOpenW(
|
||||
LPCWSTR lpszAgent,
|
||||
DWORD dwAccessType,
|
||||
LPCWSTR lpszProxy,
|
||||
LPCWSTR lpszProxyBypass,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
HINTERNET InternetOpenUrlA(
|
||||
HINTERNET hInternet,
|
||||
LPCSTR lpszUrl,
|
||||
LPCSTR lpszHeaders,
|
||||
DWORD dwHeadersLength,
|
||||
DWORD dwFlags,
|
||||
DWORD_PTR dwContext
|
||||
);
|
||||
|
||||
HINTERNET InternetOpenUrlW(
|
||||
HINTERNET hInternet,
|
||||
LPCWSTR lpszUrl,
|
||||
LPCWSTR lpszHeaders,
|
||||
DWORD dwHeadersLength,
|
||||
DWORD dwFlags,
|
||||
DWORD_PTR dwContext
|
||||
);
|
||||
|
||||
HINTERNET InternetConnectA(
|
||||
HINTERNET hInternet,
|
||||
LPCSTR lpszServerName,
|
||||
INTERNET_PORT nServerPort,
|
||||
LPCSTR lpszUserName,
|
||||
LPCSTR lpszPassword,
|
||||
DWORD dwService,
|
||||
DWORD dwFlags,
|
||||
DWORD_PTR dwContext
|
||||
);
|
||||
|
||||
|
||||
HINTERNET InternetConnectW(
|
||||
HINTERNET hInternet,
|
||||
LPCWSTR lpszServerName,
|
||||
INTERNET_PORT nServerPort,
|
||||
LPCWSTR lpszUserName,
|
||||
LPCWSTR lpszPassword,
|
||||
DWORD dwService,
|
||||
DWORD dwFlags,
|
||||
DWORD_PTR dwContext
|
||||
);
|
||||
|
||||
HINTERNET HttpOpenRequestA(
|
||||
HINTERNET hConnect,
|
||||
LPCSTR lpszVerb,
|
||||
LPCSTR lpszObjectName,
|
||||
LPCSTR lpszVersion,
|
||||
LPCSTR lpszReferrer,
|
||||
LPCSTR *lplpszAcceptTypes,
|
||||
DWORD dwFlags,
|
||||
DWORD_PTR dwContext
|
||||
);
|
||||
|
||||
HINTERNET HttpOpenRequestW(
|
||||
HINTERNET hConnect,
|
||||
LPCWSTR lpszVerb,
|
||||
LPCWSTR lpszObjectName,
|
||||
LPCWSTR lpszVersion,
|
||||
LPCWSTR lpszReferrer,
|
||||
LPCWSTR *lplpszAcceptTypes,
|
||||
DWORD dwFlags,
|
||||
DWORD_PTR dwContext
|
||||
);
|
||||
|
||||
BOOL InternetSetOptionA(
|
||||
HINTERNET hInternet,
|
||||
DWORD dwOption,
|
||||
LPVOID lpBuffer,
|
||||
DWORD dwBufferLength
|
||||
);
|
||||
|
||||
BOOL InternetSetOptionW(
|
||||
HINTERNET hInternet,
|
||||
DWORD dwOption,
|
||||
LPVOID lpBuffer,
|
||||
DWORD dwBufferLength
|
||||
);
|
||||
|
||||
|
||||
|
||||
BOOL InternetReadFile(
|
||||
HINTERNET hFile,
|
||||
LPVOID lpBuffer,
|
||||
DWORD dwNumberOfBytesToRead,
|
||||
LPDWORD lpdwNumberOfBytesRead
|
||||
);
|
||||
|
||||
|
||||
BOOL InternetReadFileExA(
|
||||
HINTERNET hFile,
|
||||
LPINTERNET_BUFFERSA lpBuffersOut,
|
||||
DWORD dwFlags,
|
||||
DWORD_PTR dwContext
|
||||
);
|
||||
|
||||
BOOL InternetReadFileExW(
|
||||
HINTERNET hFile,
|
||||
LPINTERNET_BUFFERSW lpBuffersOut,
|
||||
DWORD dwFlags,
|
||||
DWORD_PTR dwContext
|
||||
);
|
||||
|
||||
BOOL HttpQueryInfoA(
|
||||
HINTERNET hRequest,
|
||||
DWORD dwInfoLevel,
|
||||
LPVOID lpBuffer,
|
||||
LPDWORD lpdwBufferLength,
|
||||
LPDWORD lpdwIndex
|
||||
);
|
||||
|
||||
BOOL HttpQueryInfoW(
|
||||
HINTERNET hRequest,
|
||||
DWORD dwInfoLevel,
|
||||
LPVOID lpBuffer,
|
||||
LPDWORD lpdwBufferLength,
|
||||
LPDWORD lpdwIndex
|
||||
);
|
||||
|
||||
BOOL HttpSendRequestA(
|
||||
HINTERNET hRequest,
|
||||
LPCSTR lpszHeaders,
|
||||
DWORD dwHeadersLength,
|
||||
LPVOID lpOptional,
|
||||
DWORD dwOptionalLength
|
||||
);
|
||||
|
||||
BOOL HttpSendRequestW(
|
||||
HINTERNET hRequest,
|
||||
LPCWSTR lpszHeaders,
|
||||
DWORD dwHeadersLength,
|
||||
LPVOID lpOptional,
|
||||
DWORD dwOptionalLength
|
||||
);
|
||||
|
||||
|
||||
/// WinHTTP
|
||||
|
||||
HINTERNET WinHttpOpen(
|
||||
LPCWSTR pszAgentW,
|
||||
DWORD dwAccessType,
|
||||
LPCWSTR pszProxyW,
|
||||
LPCWSTR pszProxyBypassW,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
BOOL WinHttpCloseHandle(
|
||||
HINTERNET hInternet
|
||||
);
|
||||
|
||||
|
||||
HINTERNET WinHttpConnect(
|
||||
HINTERNET hSession,
|
||||
LPCWSTR pswzServerName,
|
||||
INTERNET_PORT nServerPort,
|
||||
DWORD dwReserved
|
||||
);
|
||||
|
||||
|
||||
BOOL WinHttpQueryDataAvailable(
|
||||
HINTERNET hRequest,
|
||||
LPDWORD lpdwNumberOfBytesAvailable
|
||||
);
|
||||
|
||||
BOOL WinHttpReadData(
|
||||
HINTERNET hRequest,
|
||||
LPVOID lpBuffer,
|
||||
DWORD dwNumberOfBytesToRead,
|
||||
LPDWORD lpdwNumberOfBytesRead
|
||||
);
|
||||
|
||||
HINTERNET WinHttpOpenRequest(
|
||||
HINTERNET hConnect,
|
||||
LPCWSTR pwszVerb,
|
||||
LPCWSTR pwszObjectName,
|
||||
LPCWSTR pwszVersion,
|
||||
LPCWSTR pwszReferrer,
|
||||
LPCWSTR *ppwszAcceptTypes,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
|
||||
BOOL WinHttpSendRequest(
|
||||
HINTERNET hRequest,
|
||||
LPCWSTR lpszHeaders,
|
||||
DWORD dwHeadersLength,
|
||||
LPVOID lpOptional,
|
||||
DWORD dwOptionalLength,
|
||||
DWORD dwTotalLength,
|
||||
DWORD_PTR dwContext
|
||||
);
|
||||
|
||||
BOOL WinHttpReceiveResponse(
|
||||
HINTERNET hRequest,
|
||||
LPVOID lpReserved
|
||||
);
|
||||
|
||||
BOOL WinHttpAddRequestHeaders(
|
||||
HINTERNET hRequest,
|
||||
LPCWSTR lpszHeaders,
|
||||
DWORD dwHeadersLength,
|
||||
DWORD dwModifiers
|
||||
);
|
||||
|
||||
BOOL WinHttpQueryHeaders(
|
||||
HINTERNET hRequest,
|
||||
DWORD dwInfoLevel,
|
||||
LPCWSTR pwszName,
|
||||
LPVOID lpBuffer,
|
||||
LPDWORD lpdwBufferLength,
|
||||
LPDWORD lpdwIndex
|
||||
);
|
||||
@@ -0,0 +1,51 @@
|
||||
BOOL GetOverlappedResult(
|
||||
[in] HANDLE hFile,
|
||||
[in] LPOVERLAPPED lpOverlapped,
|
||||
[out] LPDWORD lpNumberOfBytesTransferred,
|
||||
[in] BOOL bWait
|
||||
);
|
||||
|
||||
HANDLE CreateIoCompletionPort(
|
||||
[in] HANDLE FileHandle,
|
||||
[in, optional] HANDLE ExistingCompletionPort,
|
||||
[in] ULONG_PTR CompletionKey,
|
||||
[in] DWORD NumberOfConcurrentThreads
|
||||
);
|
||||
|
||||
BOOL GetQueuedCompletionStatus(
|
||||
[in] HANDLE CompletionPort,
|
||||
LPDWORD lpNumberOfBytesTransferred,
|
||||
[out] PULONG_PTR lpCompletionKey,
|
||||
[out] LPOVERLAPPED *lpOverlapped,
|
||||
[in] DWORD dwMilliseconds
|
||||
);
|
||||
|
||||
BOOL GetQueuedCompletionStatusEx(
|
||||
[in] HANDLE CompletionPort,
|
||||
[out] LPOVERLAPPED_ENTRY lpCompletionPortEntries,
|
||||
[in] ULONG ulCount,
|
||||
[out] PULONG ulNumEntriesRemoved,
|
||||
[in] DWORD dwMilliseconds,
|
||||
[in] BOOL fAlertable
|
||||
);
|
||||
|
||||
BOOL PostQueuedCompletionStatus(
|
||||
[in] HANDLE CompletionPort,
|
||||
[in] DWORD dwNumberOfBytesTransferred,
|
||||
[in] ULONG_PTR dwCompletionKey,
|
||||
[in, optional] LPOVERLAPPED lpOverlapped
|
||||
);
|
||||
|
||||
BOOL CancelIo(
|
||||
[in] HANDLE hFile
|
||||
);
|
||||
|
||||
BOOL CancelIoEx(
|
||||
[in] HANDLE hFile,
|
||||
[in, optional] LPOVERLAPPED lpOverlapped
|
||||
);
|
||||
|
||||
BOOL CancelSynchronousIo(
|
||||
[in] HANDLE hThread
|
||||
);
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
HANDLE OpenFileMappingW(
|
||||
DWORD dwDesiredAccess,
|
||||
BOOL bInheritHandle,
|
||||
LPCWSTR lpName
|
||||
);
|
||||
|
||||
HANDLE OpenFileMappingA(
|
||||
DWORD dwDesiredAccess,
|
||||
BOOL bInheritHandle,
|
||||
LPCSTR lpName
|
||||
);
|
||||
|
||||
BOOL UnmapViewOfFile(
|
||||
LPCVOID lpBaseAddress
|
||||
);
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
SECURITY_STATUS NCryptOpenKey(
|
||||
[in] NCRYPT_PROV_HANDLE hProvider,
|
||||
[out] NCRYPT_KEY_HANDLE *phKey,
|
||||
[in] LPCWSTR pszKeyName,
|
||||
[in] DWORD dwLegacyKeySpec,
|
||||
[in] DWORD dwFlags
|
||||
);
|
||||
|
||||
|
||||
SECURITY_STATUS NCryptOpenStorageProvider(
|
||||
[out] NCRYPT_PROV_HANDLE *phProvider,
|
||||
[in, optional] LPCWSTR pszProviderName,
|
||||
[in] DWORD dwFlags
|
||||
);
|
||||
@@ -0,0 +1,81 @@
|
||||
NET_API_STATUS NetQueryDisplayInformation(
|
||||
[in] LPCWSTR ServerName,
|
||||
[in] DWORD Level,
|
||||
[in] DWORD Index,
|
||||
[in] DWORD EntriesRequested,
|
||||
[in] DWORD PreferredMaximumLength,
|
||||
[out] LPDWORD ReturnedEntryCount,
|
||||
[out] PVOID *SortedBuffer
|
||||
);
|
||||
|
||||
NET_API_STATUS NetUserEnum(
|
||||
[in] LPCWSTR servername,
|
||||
[in] DWORD level,
|
||||
[in] DWORD filter,
|
||||
[out] LPBYTE *bufptr,
|
||||
[in] DWORD prefmaxlen,
|
||||
[out] LPDWORD entriesread,
|
||||
[out] LPDWORD totalentries,
|
||||
[in, out] PDWORD resume_handle
|
||||
);
|
||||
|
||||
NET_API_STATUS NetGroupEnum(
|
||||
[in] LPCWSTR servername,
|
||||
[in] DWORD level,
|
||||
[out] LPBYTE *bufptr,
|
||||
[in] DWORD prefmaxlen,
|
||||
[out] LPDWORD entriesread,
|
||||
[out] LPDWORD totalentries,
|
||||
[in, out] PDWORD_PTR resume_handle
|
||||
);
|
||||
|
||||
NET_API_STATUS NetGroupGetInfo(
|
||||
[in] LPCWSTR servername,
|
||||
[in] LPCWSTR groupname,
|
||||
[in] DWORD level,
|
||||
[out] LPBYTE *bufptr
|
||||
);
|
||||
|
||||
NET_API_STATUS NetGroupGetUsers(
|
||||
[in] LPCWSTR servername,
|
||||
[in] LPCWSTR groupname,
|
||||
[in] DWORD level,
|
||||
[out] LPBYTE *bufptr,
|
||||
[in] DWORD prefmaxlen,
|
||||
[out] LPDWORD entriesread,
|
||||
[out] LPDWORD totalentries,
|
||||
[in, out] PDWORD_PTR ResumeHandle
|
||||
);
|
||||
|
||||
NET_API_STATUS NetLocalGroupEnum(
|
||||
[in] LPCWSTR servername,
|
||||
[in] DWORD level,
|
||||
[out] LPBYTE *bufptr,
|
||||
[in] DWORD prefmaxlen,
|
||||
[out] LPDWORD entriesread,
|
||||
[out] LPDWORD totalentries,
|
||||
[in, out] PDWORD_PTR resumehandle
|
||||
);
|
||||
|
||||
|
||||
NET_API_STATUS NetLocalGroupGetMembers(
|
||||
[in] LPCWSTR servername,
|
||||
[in] LPCWSTR localgroupname,
|
||||
[in] DWORD level,
|
||||
[out] LPBYTE *bufptr,
|
||||
[in] DWORD prefmaxlen,
|
||||
[out] LPDWORD entriesread,
|
||||
[out] LPDWORD totalentries,
|
||||
[in, out] PDWORD_PTR resumehandle
|
||||
);
|
||||
|
||||
NET_API_STATUS NetLocalGroupGetInfo(
|
||||
[in] LPCWSTR servername,
|
||||
[in] LPCWSTR groupname,
|
||||
[in] DWORD level,
|
||||
[out] LPBYTE *bufptr
|
||||
);
|
||||
|
||||
NET_API_STATUS NetApiBufferFree(
|
||||
[in] LPVOID Buffer
|
||||
);
|
||||
@@ -0,0 +1,5 @@
|
||||
ULONG GetIpNetTable(
|
||||
PMIB_IPNETTABLE IpNetTable,
|
||||
PULONG SizePointer,
|
||||
BOOL Order
|
||||
);
|
||||
@@ -59,4 +59,22 @@ DNS_STATUS DnsQuery_W(
|
||||
// PVOID pExtra,
|
||||
// PDNS_RECORD *ppQueryResults,
|
||||
// PVOID *pReserved
|
||||
// );
|
||||
// );
|
||||
|
||||
|
||||
DNS_STATUS DnsQueryEx(
|
||||
PDNS_QUERY_REQUEST pQueryRequest,
|
||||
PDNS_QUERY_RESULT pQueryResults,
|
||||
PDNS_QUERY_CANCEL pCancelHandle
|
||||
);
|
||||
|
||||
ULONG GetAdaptersInfo(
|
||||
[out] PIP_ADAPTER_INFO AdapterInfo,
|
||||
[in, out] PULONG SizePointer
|
||||
);
|
||||
|
||||
DWORD GetPerAdapterInfo(
|
||||
[in] ULONG IfIndex,
|
||||
[out] PIP_PER_ADAPTER_INFO pPerAdapterInfo,
|
||||
[in] PULONG pOutBufLen
|
||||
);
|
||||
@@ -0,0 +1,85 @@
|
||||
|
||||
HANDLE WINAPI CreateToolhelp32Snapshot(
|
||||
_In_ DWORD dwFlags,
|
||||
_In_ DWORD th32ProcessID
|
||||
);
|
||||
|
||||
BOOL WINAPI Thread32First(
|
||||
_In_ HANDLE hSnapshot,
|
||||
_Inout_ LPTHREADENTRY32 lpte
|
||||
);
|
||||
|
||||
BOOL WINAPI Thread32Next(
|
||||
_In_ HANDLE hSnapshot,
|
||||
_Out_ LPTHREADENTRY32 lpte
|
||||
);
|
||||
|
||||
BOOL WINAPI Process32First(
|
||||
_In_ HANDLE hSnapshot,
|
||||
_Inout_ LPPROCESSENTRY32 lppe
|
||||
);
|
||||
|
||||
BOOL WINAPI Process32Next(
|
||||
_In_ HANDLE hSnapshot,
|
||||
_Out_ LPPROCESSENTRY32 lppe
|
||||
);
|
||||
|
||||
BOOL Process32FirstW(
|
||||
HANDLE hSnapshot,
|
||||
LPPROCESSENTRY32W lppe
|
||||
);
|
||||
|
||||
BOOL Process32NextW(
|
||||
HANDLE hSnapshot,
|
||||
LPPROCESSENTRY32W lppe
|
||||
);
|
||||
|
||||
|
||||
FARPROC WINAPI GetProcAddress(
|
||||
_In_ HMODULE hModule,
|
||||
_In_ LPCSTR lpProcName
|
||||
);
|
||||
|
||||
|
||||
HMODULE WINAPI LoadLibraryA(
|
||||
__in LPCSTR lpFileName
|
||||
);
|
||||
|
||||
HMODULE WINAPI LoadLibraryW(
|
||||
__in LPCWSTR lpFileName
|
||||
);
|
||||
|
||||
HMODULE LoadLibraryExA(
|
||||
LPCSTR lpLibFileName,
|
||||
HANDLE hFile,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
HMODULE LoadLibraryExW(
|
||||
LPCWSTR lpLibFileName,
|
||||
HANDLE hFile,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
BOOL FreeLibrary(
|
||||
HMODULE hLibModule
|
||||
);
|
||||
|
||||
BOOL GetProcessInformation(
|
||||
[in] HANDLE hProcess,
|
||||
[in] PROCESS_INFORMATION_CLASS ProcessInformationClass,
|
||||
LPVOID ProcessInformation,
|
||||
[in] DWORD ProcessInformationSize
|
||||
);
|
||||
|
||||
BOOL SetProcessInformation(
|
||||
[in] HANDLE hProcess,
|
||||
[in] PROCESS_INFORMATION_CLASS ProcessInformationClass,
|
||||
LPVOID ProcessInformation,
|
||||
[in] DWORD ProcessInformationSize
|
||||
);
|
||||
|
||||
/* Not documented by seems present since dawn of time (WRK)
|
||||
I Prefere PVOID as a return value to allow simple cast to PEB subclass in process.py*/
|
||||
|
||||
PVOID RtlGetCurrentPeb ();
|
||||
@@ -253,4 +253,57 @@ LSTATUS RegDeleteTreeA(
|
||||
LSTATUS RegDeleteTreeW(
|
||||
HKEY hKey,
|
||||
LPCWSTR lpSubKey
|
||||
);
|
||||
|
||||
|
||||
LSTATUS RegSaveKeyA(
|
||||
HKEY hKey,
|
||||
LPCSTR lpFile,
|
||||
LPSECURITY_ATTRIBUTES lpSecurityAttributes
|
||||
);
|
||||
|
||||
LSTATUS RegSaveKeyW(
|
||||
HKEY hKey,
|
||||
LPCWSTR lpFile,
|
||||
LPSECURITY_ATTRIBUTES lpSecurityAttributes
|
||||
);
|
||||
|
||||
|
||||
LSTATUS RegSaveKeyExA(
|
||||
HKEY hKey,
|
||||
LPCSTR lpFile,
|
||||
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
|
||||
DWORD Flags
|
||||
);
|
||||
|
||||
|
||||
LSTATUS RegSaveKeyExW(
|
||||
HKEY hKey,
|
||||
LPCWSTR lpFile,
|
||||
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
|
||||
DWORD Flags
|
||||
);
|
||||
|
||||
|
||||
LSTATUS RegLoadKeyA(
|
||||
[in] HKEY hKey,
|
||||
[in, optional] LPCSTR lpSubKey,
|
||||
[in] LPCSTR lpFile
|
||||
);
|
||||
|
||||
|
||||
LSTATUS RegLoadKeyW(
|
||||
[in] HKEY hKey,
|
||||
[in, optional] LPCWSTR lpSubKey,
|
||||
[in] LPCWSTR lpFile
|
||||
);
|
||||
|
||||
LSTATUS RegUnLoadKeyA(
|
||||
[in] HKEY hKey,
|
||||
[in, optional] LPCSTR lpSubKey
|
||||
);
|
||||
|
||||
LSTATUS RegUnLoadKeyW(
|
||||
[in] HKEY hKey,
|
||||
[in, optional] LPCWSTR lpSubKey
|
||||
);
|
||||
@@ -71,6 +71,11 @@ BOOL WINAPI GetSecurityDescriptorOwner(
|
||||
_Out_ LPBOOL lpbOwnerDefaulted
|
||||
);
|
||||
|
||||
BOOL WINAPI SetSecurityDescriptorOwner(
|
||||
[in, out] PSECURITY_DESCRIPTOR pSecurityDescriptor,
|
||||
[in, optional] PSID pOwner,
|
||||
[in] BOOL bOwnerDefaulted
|
||||
);
|
||||
|
||||
DWORD WINAPI GetSecurityDescriptorRMControl(
|
||||
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||
@@ -307,4 +312,25 @@ DWORD BuildSecurityDescriptorW(
|
||||
PSECURITY_DESCRIPTOR pOldSD,
|
||||
PULONG pSizeNewSD,
|
||||
PSECURITY_DESCRIPTOR *pNewSD
|
||||
);
|
||||
|
||||
|
||||
BOOL WINAPI MakeAbsoluteSD(
|
||||
[in] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
|
||||
[out, optional] PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
|
||||
[in, out] LPDWORD lpdwAbsoluteSecurityDescriptorSize,
|
||||
[out, optional] PACL pDacl,
|
||||
[in, out] LPDWORD lpdwDaclSize,
|
||||
[out, optional] PACL pSacl,
|
||||
[in, out] LPDWORD lpdwSaclSize,
|
||||
[out, optional] PSID pOwner,
|
||||
[in, out] LPDWORD lpdwOwnerSize,
|
||||
[out, optional] PSID pPrimaryGroup,
|
||||
[in, out] LPDWORD lpdwPrimaryGroupSize
|
||||
);
|
||||
|
||||
BOOL WINAPI MakeSelfRelativeSD(
|
||||
[in] PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
|
||||
[out, optional] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
|
||||
[in, out] LPDWORD lpdwBufferLength
|
||||
);
|
||||
@@ -67,11 +67,6 @@ SC_HANDLE WINAPI OpenServiceW(
|
||||
_In_ DWORD dwDesiredAccess
|
||||
);
|
||||
|
||||
BOOL ControlService(
|
||||
SC_HANDLE hService,
|
||||
DWORD dwControl,
|
||||
LPSERVICE_STATUS lpServiceStatus
|
||||
);
|
||||
|
||||
BOOL QueryServiceStatus(
|
||||
SC_HANDLE hService,
|
||||
@@ -264,4 +259,46 @@ SC_HANDLE CreateServiceW(
|
||||
|
||||
BOOL DeleteService(
|
||||
SC_HANDLE hService
|
||||
);
|
||||
|
||||
BOOL StartServiceCtrlDispatcherA(
|
||||
SERVICE_TABLE_ENTRYA *lpServiceStartTable
|
||||
);
|
||||
|
||||
BOOL StartServiceCtrlDispatcherW(
|
||||
SERVICE_TABLE_ENTRYW *lpServiceStartTable
|
||||
);
|
||||
|
||||
SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerExA(
|
||||
[in] LPCSTR lpServiceName,
|
||||
[in] LPHANDLER_FUNCTION_EX lpHandlerProc,
|
||||
[in, optional] LPVOID lpContext
|
||||
);
|
||||
|
||||
SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerExW(
|
||||
[in] LPCWSTR lpServiceName,
|
||||
[in] LPHANDLER_FUNCTION_EX lpHandlerProc,
|
||||
[in, optional] LPVOID lpContext
|
||||
);
|
||||
|
||||
SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerA(
|
||||
[in] LPCSTR lpServiceName,
|
||||
[in] LPHANDLER_FUNCTION lpHandlerProc
|
||||
);
|
||||
|
||||
SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerW(
|
||||
[in] LPCWSTR lpServiceName,
|
||||
[in] LPHANDLER_FUNCTION lpHandlerProc
|
||||
);
|
||||
|
||||
BOOL SetServiceStatus(
|
||||
[in] SERVICE_STATUS_HANDLE hServiceStatus,
|
||||
[in] LPSERVICE_STATUS lpServiceStatus
|
||||
);
|
||||
|
||||
BOOL SetServiceBits(
|
||||
[in] SERVICE_STATUS_HANDLE hServiceStatus,
|
||||
[in] DWORD dwServiceBits,
|
||||
[in] BOOL bSetBitsOn,
|
||||
[in] BOOL bUpdateImmediately
|
||||
);
|
||||
@@ -26,4 +26,8 @@ BOOL SHGetPathFromIDListA(
|
||||
BOOL SHGetPathFromIDListW(
|
||||
PCIDLIST_ABSOLUTE pidl,
|
||||
LPWSTR pszPath
|
||||
);
|
||||
|
||||
INT SHFileOperationA(
|
||||
LPSHFILEOPSTRUCTA lpFileOp
|
||||
);
|
||||
@@ -29,6 +29,13 @@ BOOL WINAPI SymFromAddr(
|
||||
_Inout_ PSYMBOL_INFO Symbol
|
||||
);
|
||||
|
||||
BOOL WINAPI SymFromAddrW(
|
||||
[in] HANDLE hProcess,
|
||||
[in] DWORD64 Address,
|
||||
[out, optional] PDWORD64 Displacement,
|
||||
[in, out] PSYMBOL_INFOW Symbol
|
||||
);
|
||||
|
||||
|
||||
BOOL WINAPI SymGetModuleInfo64(
|
||||
_In_ HANDLE hProcess,
|
||||
@@ -48,6 +55,12 @@ BOOL WINAPI SymInitialize(
|
||||
_In_ BOOL fInvadeProcess
|
||||
);
|
||||
|
||||
BOOL WINAPI SymInitializeW(
|
||||
[in] HANDLE hProcess,
|
||||
[in, optional] PCWSTR UserSearchPath,
|
||||
[in] BOOL fInvadeProcess
|
||||
);
|
||||
|
||||
BOOL WINAPI SymFromName(
|
||||
_In_ HANDLE hProcess,
|
||||
_In_ LPCSTR Name,
|
||||
@@ -96,20 +109,6 @@ BOOL WINAPI SymEnumSymbolsEx(
|
||||
_In_ DWORD Options
|
||||
);
|
||||
|
||||
BOOL WINAPI SymEnumTypes(
|
||||
_In_ HANDLE hProcess,
|
||||
_In_ ULONG64 BaseOfDll,
|
||||
_In_ PVOID EnumSymbolsCallback,
|
||||
_In_ PVOID UserContext
|
||||
);
|
||||
|
||||
BOOL WINAPI SymEnumTypesByName(
|
||||
_In_ HANDLE hProcess,
|
||||
_In_ ULONG64 BaseOfDll,
|
||||
_In_ PCSTR mask,
|
||||
_In_ PVOID EnumSymbolsCallback,
|
||||
_In_ PVOID UserContext
|
||||
);
|
||||
|
||||
BOOL WINAPI SymEnumerateModules64(
|
||||
_In_ HANDLE hProcess,
|
||||
@@ -117,6 +116,12 @@ BOOL WINAPI SymEnumerateModules64(
|
||||
_In_ PVOID UserContext
|
||||
);
|
||||
|
||||
BOOL WINAPI SymEnumerateModulesW64(
|
||||
[in] HANDLE hProcess,
|
||||
[in] PSYM_ENUMMODULES_CALLBACKW64 EnumModulesCallback,
|
||||
[in, optional] PVOID UserContext
|
||||
);
|
||||
|
||||
BOOL SymNext(
|
||||
HANDLE hProcess,
|
||||
PSYMBOL_INFO si
|
||||
@@ -266,6 +271,13 @@ BOOL WINAPI SymGetTypeFromName(
|
||||
_Inout_ PSYMBOL_INFO Symbol
|
||||
);
|
||||
|
||||
BOOL WINAPI SymGetTypeFromNameW(
|
||||
[in] HANDLE hProcess,
|
||||
[in] ULONG64 BaseOfDll,
|
||||
[in] PCWSTR Name,
|
||||
[in, out] PSYMBOL_INFOW Symbol
|
||||
);
|
||||
|
||||
|
||||
BOOL WINAPI SymGetTypeInfo(
|
||||
_In_ HANDLE hProcess,
|
||||
@@ -404,4 +416,35 @@ BOOL SymSetSearchPath(
|
||||
BOOL SymSetSearchPathW(
|
||||
HANDLE hProcess,
|
||||
PCWSTR SearchPath
|
||||
);
|
||||
|
||||
BOOL SymEnumTypes(
|
||||
[in] HANDLE hProcess,
|
||||
[in] ULONG64 BaseOfDll,
|
||||
[in] PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
|
||||
[in, optional] PVOID UserContext
|
||||
);
|
||||
|
||||
BOOL SymEnumTypesW(
|
||||
[in] HANDLE hProcess,
|
||||
[in] ULONG64 BaseOfDll,
|
||||
[in] PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
|
||||
[in, optional] PVOID UserContext
|
||||
);
|
||||
|
||||
BOOL SymEnumTypesByName(
|
||||
[in] HANDLE hProcess,
|
||||
[in] ULONG64 BaseOfDll,
|
||||
[in, optional] PCSTR mask,
|
||||
[in] PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
|
||||
[in] PVOID UserContext
|
||||
);
|
||||
|
||||
|
||||
BOOL SymEnumTypesByNameW(
|
||||
[in] HANDLE hProcess,
|
||||
[in] ULONG64 BaseOfDll,
|
||||
[in, optional] PCWSTR mask,
|
||||
[in] PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
|
||||
[in] PVOID UserContext
|
||||
);
|
||||
@@ -0,0 +1,40 @@
|
||||
HANDLE CreateEventA(
|
||||
LPSECURITY_ATTRIBUTES lpEventAttributes,
|
||||
BOOL bManualReset,
|
||||
BOOL bInitialState,
|
||||
LPCSTR lpName
|
||||
);
|
||||
|
||||
HANDLE CreateEventW(
|
||||
LPSECURITY_ATTRIBUTES lpEventAttributes,
|
||||
BOOL bManualReset,
|
||||
BOOL bInitialState,
|
||||
LPCWSTR lpName
|
||||
);
|
||||
|
||||
HANDLE CreateEventExA(
|
||||
LPSECURITY_ATTRIBUTES lpEventAttributes,
|
||||
LPCSTR lpName,
|
||||
DWORD dwFlags,
|
||||
DWORD dwDesiredAccess
|
||||
);
|
||||
|
||||
HANDLE CreateEventExW(
|
||||
LPSECURITY_ATTRIBUTES lpEventAttributes,
|
||||
LPCWSTR lpName,
|
||||
DWORD dwFlags,
|
||||
DWORD dwDesiredAccess
|
||||
);
|
||||
|
||||
HANDLE WINAPI OpenEventA(
|
||||
__in DWORD dwDesiredAccess,
|
||||
__in BOOL bInheritHandle,
|
||||
__in LPCSTR lpName
|
||||
);
|
||||
|
||||
HANDLE WINAPI OpenEventW(
|
||||
__in DWORD dwDesiredAccess,
|
||||
__in BOOL bInheritHandle,
|
||||
__in LPCWSTR lpName
|
||||
);
|
||||
|
||||
@@ -182,6 +182,16 @@ NTSTATUS WINAPI NtQuerySystemInformation(
|
||||
);
|
||||
|
||||
|
||||
NTSTATUS WINAPI NtQuerySystemInformationEx(
|
||||
_In_ SYSTEM_INFORMATION_CLASS SystemInformationClass,
|
||||
_In_reads_bytes_(InputBufferLength) PVOID InputBuffer,
|
||||
_In_ ULONG InputBufferLength,
|
||||
_Out_writes_bytes_opt_(SystemInformationLength) PVOID SystemInformation,
|
||||
_In_ ULONG SystemInformationLength,
|
||||
_Out_opt_ PULONG ReturnLength
|
||||
);
|
||||
|
||||
|
||||
NTSTATUS WINAPI NtQueryInformationProcess(
|
||||
_In_ HANDLE ProcessHandle,
|
||||
_In_ PROCESSINFOCLASS ProcessInformationClass,
|
||||
@@ -304,19 +314,6 @@ NTSTATUS WINAPI NtFreeVirtualMemory(
|
||||
);
|
||||
|
||||
|
||||
|
||||
NTSTATUS WINAPI NtGetContextThread(
|
||||
__in HANDLE hThread,
|
||||
__inout LPCONTEXT lpContext
|
||||
);
|
||||
|
||||
|
||||
NTSTATUS WINAPI NtSetContextThread(
|
||||
__in HANDLE hThread,
|
||||
__in CONST LPCONTEXT lpContext
|
||||
);
|
||||
|
||||
|
||||
NTSTATUS NtCreateSection(
|
||||
PHANDLE SectionHandle,
|
||||
ACCESS_MASK DesiredAccess,
|
||||
@@ -351,3 +348,47 @@ NTSTATUS NtUnmapViewOfSection(
|
||||
PVOID BaseAddress
|
||||
);
|
||||
|
||||
|
||||
NTSTATUS NtOpenProcess(
|
||||
PHANDLE ProcessHandle,
|
||||
ACCESS_MASK DesiredAccess,
|
||||
POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
PCLIENT_ID ClientId
|
||||
);
|
||||
|
||||
|
||||
NTSTATUS WINAPI NtDelayExecution(
|
||||
_In_ BOOLEAN Alertable,
|
||||
_In_opt_ PLARGE_INTEGER DelayInterval
|
||||
);
|
||||
|
||||
|
||||
NTSTATUS NtTerminateProcess(
|
||||
HANDLE ProcessHandle,
|
||||
NTSTATUS ExitStatus
|
||||
);
|
||||
|
||||
|
||||
NTSTATUS NtReadFile(
|
||||
_In_ HANDLE FileHandle,
|
||||
_In_opt_ HANDLE Event,
|
||||
_In_opt_ PIO_APC_ROUTINE ApcRoutine,
|
||||
_In_opt_ PVOID ApcContext,
|
||||
_Out_ PIO_STATUS_BLOCK IoStatusBlock,
|
||||
_Out_ PVOID Buffer,
|
||||
_In_ ULONG Length,
|
||||
_In_opt_ PLARGE_INTEGER ByteOffset,
|
||||
_In_opt_ PULONG Key
|
||||
);
|
||||
|
||||
NTSTATUS NtWriteFile(
|
||||
[in] HANDLE FileHandle,
|
||||
[in, optional] HANDLE Event,
|
||||
[in, optional] PIO_APC_ROUTINE ApcRoutine,
|
||||
[in, optional] PVOID ApcContext,
|
||||
[out] PIO_STATUS_BLOCK IoStatusBlock,
|
||||
[in] PVOID Buffer,
|
||||
[in] ULONG Length,
|
||||
[in, optional] PLARGE_INTEGER ByteOffset,
|
||||
[in, optional] PULONG Key
|
||||
);
|
||||
@@ -0,0 +1,70 @@
|
||||
BOOL GetComputerNameExA(
|
||||
[in] COMPUTER_NAME_FORMAT NameType,
|
||||
[out] LPSTR lpBuffer,
|
||||
[in, out] LPDWORD nSize
|
||||
);
|
||||
|
||||
BOOL GetComputerNameExW(
|
||||
[in] COMPUTER_NAME_FORMAT NameType,
|
||||
[out] LPWSTR lpBuffer,
|
||||
[in, out] LPDWORD nSize
|
||||
);
|
||||
|
||||
|
||||
BOOL WINAPI GetComputerNameA(
|
||||
_Out_ LPCSTR lpBuffer,
|
||||
_Inout_ LPDWORD lpnSize
|
||||
);
|
||||
|
||||
BOOL WINAPI GetComputerNameW(
|
||||
_Out_ LPWSTR lpBuffer,
|
||||
_Inout_ LPDWORD lpnSize
|
||||
);
|
||||
|
||||
BOOL WINAPI LookupAccountSidA(
|
||||
_In_opt_ LPCSTR lpSystemName,
|
||||
_In_ PSID lpSid,
|
||||
_Out_opt_ LPCSTR lpName,
|
||||
_Inout_ LPDWORD cchName,
|
||||
_Out_opt_ LPCSTR lpReferencedDomainName,
|
||||
_Inout_ LPDWORD cchReferencedDomainName,
|
||||
_Out_ PSID_NAME_USE peUse
|
||||
);
|
||||
|
||||
BOOL WINAPI LookupAccountSidW(
|
||||
_In_opt_ LPWSTR lpSystemName,
|
||||
_In_ PSID lpSid,
|
||||
_Out_opt_ LPWSTR lpName,
|
||||
_Inout_ LPDWORD cchName,
|
||||
_Out_opt_ LPWSTR lpReferencedDomainName,
|
||||
_Inout_ LPDWORD cchReferencedDomainName,
|
||||
_Out_ PSID_NAME_USE peUse
|
||||
);
|
||||
|
||||
BOOL LookupAccountNameA(
|
||||
LPCSTR lpSystemName,
|
||||
LPCSTR lpAccountName,
|
||||
PSID Sid,
|
||||
LPDWORD cbSid,
|
||||
LPSTR ReferencedDomainName,
|
||||
LPDWORD cchReferencedDomainName,
|
||||
PSID_NAME_USE peUse
|
||||
);
|
||||
|
||||
BOOL LookupAccountNameW(
|
||||
LPCWSTR lpSystemName,
|
||||
LPCWSTR lpAccountName,
|
||||
PSID Sid,
|
||||
LPDWORD cbSid,
|
||||
LPWSTR ReferencedDomainName,
|
||||
LPDWORD cchReferencedDomainName,
|
||||
PSID_NAME_USE peUse
|
||||
);
|
||||
|
||||
PVOID GetNativeSystemInfo(
|
||||
[out] LPSYSTEM_INFO lpSystemInfo
|
||||
);
|
||||
|
||||
PVOID GetSystemInfo(
|
||||
[out] LPSYSTEM_INFO lpSystemInfo
|
||||
);
|
||||
@@ -0,0 +1,83 @@
|
||||
BOOL IsWow64Process(
|
||||
[in] HANDLE hProcess,
|
||||
[out] PBOOL Wow64Process
|
||||
);
|
||||
|
||||
BOOL IsWow64Process2(
|
||||
[in] HANDLE hProcess,
|
||||
[out] USHORT *pProcessMachine,
|
||||
[out, optional] USHORT *pNativeMachine
|
||||
);
|
||||
|
||||
HRESULT IsWow64GuestMachineSupported(
|
||||
[in] USHORT WowGuestMachine,
|
||||
[out] BOOL *MachineIsSupported
|
||||
);
|
||||
|
||||
UINT GetSystemWow64DirectoryA(
|
||||
[out] LPSTR lpBuffer,
|
||||
[in] UINT uSize
|
||||
);
|
||||
|
||||
UINT GetSystemWow64DirectoryW(
|
||||
[out] LPWSTR lpBuffer,
|
||||
[in] UINT uSize
|
||||
);
|
||||
|
||||
UINT GetSystemWow64Directory2A(
|
||||
[out] LPSTR lpBuffer,
|
||||
[in] UINT uSize,
|
||||
[in] WORD ImageFileMachineType
|
||||
);
|
||||
|
||||
UINT GetSystemWow64Directory2W(
|
||||
[out] LPWSTR lpBuffer,
|
||||
[in] UINT uSize,
|
||||
[in] WORD ImageFileMachineType
|
||||
);
|
||||
|
||||
BOOL Wow64DisableWow64FsRedirection(
|
||||
[out] PVOID *OldValue
|
||||
);
|
||||
|
||||
BOOLEAN Wow64EnableWow64FsRedirection(
|
||||
BOOLEAN Wow64FsEnableRedirection
|
||||
);
|
||||
|
||||
BOOL Wow64RevertWow64FsRedirection(
|
||||
[in] PVOID OlValue
|
||||
);
|
||||
|
||||
BOOL Wow64GetThreadContext(
|
||||
HANDLE hThread,
|
||||
PWOW64_CONTEXT lpContext
|
||||
);
|
||||
|
||||
BOOL Wow64SetThreadContext(
|
||||
HANDLE hThread,
|
||||
WOW64_CONTEXT *lpContext
|
||||
);
|
||||
|
||||
USHORT Wow64SetThreadDefaultGuestMachine(
|
||||
USHORT Machine
|
||||
);
|
||||
|
||||
DWORD Wow64SuspendThread(
|
||||
HANDLE hThread
|
||||
);
|
||||
|
||||
NTSTATUS WINAPI NtWow64ReadVirtualMemory64(
|
||||
_In_ HANDLE hProcess,
|
||||
_In_ ULONG64 lpBaseAddress,
|
||||
_Out_ LPVOID lpBuffer,
|
||||
_In_ ULONG64 nSize,
|
||||
_Out_ PULONG64 lpNumberOfBytesRead
|
||||
);
|
||||
|
||||
NTSTATUS WINAPI NtWow64WriteVirtualMemory64(
|
||||
_In_ HANDLE hProcess,
|
||||
_In_ ULONG64 lpBaseAddress,
|
||||
_Out_ LPVOID lpBuffer,
|
||||
_In_ ULONG64 nSize,
|
||||
_Out_ PULONG64 lpNumberOfBytesWritten
|
||||
);
|
||||
@@ -13,7 +13,22 @@ PVOID GetSystemTime(
|
||||
LPSYSTEMTIME lpSystemTime
|
||||
);
|
||||
|
||||
BOOL GetSystemTimes(
|
||||
PFILETIME lpIdleTime,
|
||||
PFILETIME lpKernelTime,
|
||||
PFILETIME lpUserTime
|
||||
);
|
||||
|
||||
// void
|
||||
PVOID GetSystemTimeAsFileTime(
|
||||
LPFILETIME lpSystemTimeAsFileTime
|
||||
);
|
||||
);
|
||||
|
||||
// void
|
||||
PVOID GetLocalTime(
|
||||
LPSYSTEMTIME lpSystemTime
|
||||
);
|
||||
|
||||
DWORD GetTickCount();
|
||||
|
||||
ULONGLONG GetTickCount64();
|
||||
@@ -9,30 +9,6 @@ BOOL WINAPI TerminateProcess(
|
||||
|
||||
DWORD WINAPI GetLastError();
|
||||
|
||||
HANDLE WINAPI GetCurrentProcess();
|
||||
|
||||
HANDLE WINAPI CreateFileA(
|
||||
__in LPCSTR lpFileName,
|
||||
__in DWORD dwDesiredAccess,
|
||||
__in DWORD dwShareMode,
|
||||
__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
|
||||
__in DWORD dwCreationDisposition,
|
||||
__in DWORD dwFlagsAndAttributes,
|
||||
__in_opt HANDLE hTemplateFile
|
||||
);
|
||||
|
||||
HANDLE WINAPI CreateFileW(
|
||||
__in LPCWSTR lpFileName,
|
||||
__in DWORD dwDesiredAccess,
|
||||
__in DWORD dwShareMode,
|
||||
__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
|
||||
__in DWORD dwCreationDisposition,
|
||||
__in DWORD dwFlagsAndAttributes,
|
||||
__in_opt HANDLE hTemplateFile
|
||||
);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Flags is directly dereferenced if non-null on windows 10
|
||||
Let's assert it's a PVOID for now on
|
||||
@@ -174,11 +150,15 @@ HANDLE WINAPI CreateRemoteThread(
|
||||
_Out_ LPDWORD lpThreadId
|
||||
);
|
||||
|
||||
BOOL WINAPI VirtualProtect(
|
||||
_In_ LPVOID lpAddress,
|
||||
_In_ SIZE_T dwSize,
|
||||
_In_ DWORD flNewProtect,
|
||||
_Out_ PDWORD lpflOldProtect
|
||||
HANDLE CreateRemoteThreadEx(
|
||||
[in] HANDLE hProcess,
|
||||
[in, optional] LPSECURITY_ATTRIBUTES lpThreadAttributes,
|
||||
[in] SIZE_T dwStackSize,
|
||||
[in] LPTHREAD_START_ROUTINE lpStartAddress,
|
||||
[in, optional] LPVOID lpParameter,
|
||||
[in] DWORD dwCreationFlags,
|
||||
[in, optional] LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList,
|
||||
[out, optional] LPDWORD lpThreadId
|
||||
);
|
||||
|
||||
BOOL WINAPI CreateProcessA(
|
||||
@@ -273,15 +253,6 @@ BOOL WINAPI ReadProcessMemory(
|
||||
_Out_ SIZE_T *lpNumberOfBytesRead
|
||||
);
|
||||
|
||||
NTSTATUS WINAPI NtWow64ReadVirtualMemory64(
|
||||
_In_ HANDLE hProcess,
|
||||
_In_ ULONG64 lpBaseAddress,
|
||||
_Out_ LPVOID lpBuffer,
|
||||
_In_ ULONG64 nSize,
|
||||
_Out_ PULONG64 lpNumberOfBytesRead
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
BOOL WINAPI WriteProcessMemory(
|
||||
@@ -293,87 +264,32 @@ BOOL WINAPI WriteProcessMemory(
|
||||
);
|
||||
|
||||
|
||||
NTSTATUS WINAPI NtWow64WriteVirtualMemory64(
|
||||
_In_ HANDLE hProcess,
|
||||
_In_ ULONG64 lpBaseAddress,
|
||||
_Out_ LPVOID lpBuffer,
|
||||
_In_ ULONG64 nSize,
|
||||
_Out_ PULONG64 lpNumberOfBytesWritten
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
HANDLE WINAPI CreateToolhelp32Snapshot(
|
||||
_In_ DWORD dwFlags,
|
||||
_In_ DWORD th32ProcessID
|
||||
);
|
||||
HANDLE WINAPI GetCurrentProcess();
|
||||
|
||||
BOOL WINAPI Thread32First(
|
||||
_In_ HANDLE hSnapshot,
|
||||
_Inout_ LPTHREADENTRY32 lpte
|
||||
);
|
||||
HANDLE WINAPI CreateFileA(
|
||||
__in LPCSTR lpFileName,
|
||||
__in DWORD dwDesiredAccess,
|
||||
__in DWORD dwShareMode,
|
||||
__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
|
||||
__in DWORD dwCreationDisposition,
|
||||
__in DWORD dwFlagsAndAttributes,
|
||||
__in_opt HANDLE hTemplateFile
|
||||
);
|
||||
|
||||
BOOL WINAPI Thread32Next(
|
||||
_In_ HANDLE hSnapshot,
|
||||
_Out_ LPTHREADENTRY32 lpte
|
||||
);
|
||||
HANDLE WINAPI CreateFileW(
|
||||
__in LPCWSTR lpFileName,
|
||||
__in DWORD dwDesiredAccess,
|
||||
__in DWORD dwShareMode,
|
||||
__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
|
||||
__in DWORD dwCreationDisposition,
|
||||
__in DWORD dwFlagsAndAttributes,
|
||||
__in_opt HANDLE hTemplateFile
|
||||
);
|
||||
|
||||
BOOL WINAPI Process32First(
|
||||
_In_ HANDLE hSnapshot,
|
||||
_Inout_ LPPROCESSENTRY32 lppe
|
||||
);
|
||||
|
||||
BOOL WINAPI Process32Next(
|
||||
_In_ HANDLE hSnapshot,
|
||||
_Out_ LPPROCESSENTRY32 lppe
|
||||
);
|
||||
|
||||
BOOL Process32FirstW(
|
||||
HANDLE hSnapshot,
|
||||
LPPROCESSENTRY32W lppe
|
||||
);
|
||||
|
||||
BOOL Process32NextW(
|
||||
HANDLE hSnapshot,
|
||||
LPPROCESSENTRY32W lppe
|
||||
);
|
||||
|
||||
FARPROC WINAPI GetProcAddress(
|
||||
_In_ HMODULE hModule,
|
||||
_In_ LPCSTR lpProcName
|
||||
);
|
||||
|
||||
|
||||
HMODULE WINAPI LoadLibraryA(
|
||||
__in LPCSTR lpFileName
|
||||
);
|
||||
|
||||
HMODULE WINAPI LoadLibraryW(
|
||||
__in LPCWSTR lpFileName
|
||||
);
|
||||
|
||||
HMODULE LoadLibraryExA(
|
||||
LPCSTR lpLibFileName,
|
||||
HANDLE hFile,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
HMODULE LoadLibraryExW(
|
||||
LPCWSTR lpLibFileName,
|
||||
HANDLE hFile,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
BOOL FreeLibrary(
|
||||
HMODULE hLibModule
|
||||
);
|
||||
|
||||
BOOL WINAPI OpenProcessToken(
|
||||
_In_ HANDLE ProcessHandle,
|
||||
_In_ DWORD DesiredAccess,
|
||||
_Out_ PHANDLE TokenHandle
|
||||
);
|
||||
|
||||
BOOL WINAPI DuplicateToken(
|
||||
_In_ HANDLE ExistingTokenHandle,
|
||||
@@ -392,13 +308,6 @@ BOOL WINAPI DuplicateTokenEx(
|
||||
);
|
||||
|
||||
|
||||
BOOL WINAPI OpenThreadToken(
|
||||
_In_ HANDLE ThreadHandle,
|
||||
_In_ DWORD DesiredAccess,
|
||||
_In_ BOOL OpenAsSelf,
|
||||
_Out_ PHANDLE TokenHandle
|
||||
);
|
||||
|
||||
BOOL WINAPI SetThreadToken(
|
||||
_In_opt_ PHANDLE Thread,
|
||||
_In_opt_ HANDLE Token
|
||||
@@ -465,6 +374,37 @@ LPVOID WINAPI LockResource(
|
||||
_In_ HGLOBAL hResData
|
||||
);
|
||||
|
||||
BOOL FreeResource(
|
||||
HGLOBAL hResData
|
||||
);
|
||||
|
||||
BOOL EnumResourceTypesA(
|
||||
HMODULE hModule,
|
||||
ENUMRESTYPEPROCA lpEnumFunc,
|
||||
LONG_PTR lParam
|
||||
);
|
||||
|
||||
|
||||
BOOL EnumResourceTypesW(
|
||||
HMODULE hModule,
|
||||
ENUMRESTYPEPROCW lpEnumFunc,
|
||||
LONG_PTR lParam
|
||||
);
|
||||
|
||||
BOOL EnumResourceNamesA(
|
||||
HMODULE hModule,
|
||||
LPCSTR lpType,
|
||||
ENUMRESNAMEPROCA lpEnumFunc,
|
||||
LONG_PTR lParam
|
||||
);
|
||||
|
||||
BOOL EnumResourceNamesW(
|
||||
HMODULE hModule,
|
||||
LPCWSTR lpType,
|
||||
ENUMRESNAMEPROCW lpEnumFunc,
|
||||
LONG_PTR lParam
|
||||
);
|
||||
|
||||
BOOL WINAPI GetVersionExA(
|
||||
__inout LPOSVERSIONINFOA lpVersionInformation
|
||||
);
|
||||
@@ -485,6 +425,9 @@ BOOL AllocConsole();
|
||||
|
||||
BOOL FreeConsole();
|
||||
|
||||
UINT WINAPI GetConsoleOutputCP();
|
||||
UINT WINAPI GetConsoleCP();
|
||||
|
||||
HANDLE WINAPI GetStdHandle(
|
||||
_In_ DWORD nStdHandle
|
||||
);
|
||||
@@ -559,18 +502,6 @@ DWORD WINAPI GetThreadId(
|
||||
_In_ HANDLE Thread
|
||||
);
|
||||
|
||||
HMODULE WINAPI LoadLibraryExA(
|
||||
_In_ LPCSTR lpFileName,
|
||||
_Reserved_ HANDLE hFile,
|
||||
_In_ DWORD dwFlags
|
||||
);
|
||||
|
||||
HMODULE WINAPI LoadLibraryExW(
|
||||
_In_ LPCWSTR lpFileName,
|
||||
_Reserved_ HANDLE hFile,
|
||||
_In_ DWORD dwFlags
|
||||
);
|
||||
|
||||
|
||||
|
||||
BOOL WINAPI DeviceIoControl(
|
||||
@@ -584,43 +515,12 @@ BOOL WINAPI DeviceIoControl(
|
||||
_Inout_opt_ LPOVERLAPPED lpOverlapped
|
||||
);
|
||||
|
||||
BOOL WINAPI GetTokenInformation(
|
||||
_In_ HANDLE TokenHandle,
|
||||
_In_ TOKEN_INFORMATION_CLASS TokenInformationClass,
|
||||
_Out_opt_ LPVOID TokenInformation,
|
||||
_In_ DWORD TokenInformationLength,
|
||||
_Out_ PDWORD ReturnLength
|
||||
);
|
||||
|
||||
|
||||
BOOL WINAPI Wow64DisableWow64FsRedirection(
|
||||
_Out_ PVOID *OldValue
|
||||
);
|
||||
|
||||
BOOL WINAPI Wow64RevertWow64FsRedirection(
|
||||
_In_ PVOID OldValue
|
||||
);
|
||||
|
||||
BOOLEAN WINAPI Wow64EnableWow64FsRedirection(
|
||||
_In_ BOOLEAN Wow64FsEnableRedirection
|
||||
);
|
||||
|
||||
BOOL WINAPI Wow64GetThreadContext(
|
||||
_In_ HANDLE hThread,
|
||||
_Inout_ PWOW64_CONTEXT lpContext
|
||||
);
|
||||
|
||||
BOOL WINAPI SetConsoleCtrlHandler(
|
||||
_In_opt_ PHANDLER_ROUTINE HandlerRoutine,
|
||||
_In_ BOOL Add
|
||||
);
|
||||
|
||||
LONG WINAPI WinVerifyTrust(
|
||||
_In_opt_ HWND hwnd,
|
||||
_In_ GUID *pgActionID,
|
||||
_Inout_ LPVOID pWVTData
|
||||
);
|
||||
|
||||
HGLOBAL WINAPI GlobalAlloc(
|
||||
_In_ UINT uFlags,
|
||||
_In_ SIZE_T dwBytes
|
||||
@@ -750,10 +650,6 @@ DWORD WINAPI GetProcessId(
|
||||
_In_ HANDLE Process
|
||||
);
|
||||
|
||||
BOOL WINAPI Wow64SetThreadContext(
|
||||
__in HANDLE hThread,
|
||||
__in CONST WOW64_CONTEXT *lpContext
|
||||
);
|
||||
|
||||
DWORD WINAPI GetMappedFileNameW (
|
||||
__in HANDLE hProcess,
|
||||
@@ -795,6 +691,17 @@ NTSTATUS RtlDecompressBuffer(
|
||||
PULONG FinalUncompressedSize
|
||||
);
|
||||
|
||||
NTSTATUS RtlCompressBuffer(
|
||||
USHORT CompressionFormatAndEngine,
|
||||
PUCHAR UncompressedBuffer,
|
||||
ULONG UncompressedBufferSize,
|
||||
PUCHAR CompressedBuffer,
|
||||
ULONG CompressedBufferSize,
|
||||
ULONG UncompressedChunkSize,
|
||||
PULONG FinalCompressedSize,
|
||||
PVOID WorkSpace
|
||||
);
|
||||
|
||||
NTSTATUS RtlDecompressBufferEx(
|
||||
USHORT CompressionFormat,
|
||||
PUCHAR UncompressedBuffer,
|
||||
@@ -812,21 +719,12 @@ NTSTATUS RtlGetCompressionWorkSpaceSize(
|
||||
);
|
||||
|
||||
|
||||
HANDLE WINAPI OpenEventA(
|
||||
__in DWORD dwDesiredAccess,
|
||||
__in BOOL bInheritHandle,
|
||||
__in LPCSTR lpName
|
||||
VOID WINAPI RtlMoveMemory(
|
||||
_Out_ PVOID Destination,
|
||||
_In_ PVOID Source,
|
||||
_In_ SIZE_T Length
|
||||
);
|
||||
|
||||
|
||||
HANDLE WINAPI OpenEventW(
|
||||
__in DWORD dwDesiredAccess,
|
||||
__in BOOL bInheritHandle,
|
||||
__in LPCWSTR lpName
|
||||
);
|
||||
|
||||
|
||||
|
||||
INT WINAPI lstrcmpA(
|
||||
__in LPCSTR lpString1,
|
||||
__in LPCSTR lpString2
|
||||
@@ -1012,36 +910,6 @@ INT WINAPI GetSystemMetrics(
|
||||
_In_ INT nIndex
|
||||
);
|
||||
|
||||
BOOL WINAPI GetComputerNameA(
|
||||
_Out_ LPCSTR lpBuffer,
|
||||
_Inout_ LPDWORD lpnSize
|
||||
);
|
||||
|
||||
BOOL WINAPI GetComputerNameW(
|
||||
_Out_ LPWSTR lpBuffer,
|
||||
_Inout_ LPDWORD lpnSize
|
||||
);
|
||||
|
||||
BOOL WINAPI LookupAccountSidA(
|
||||
_In_opt_ LPCSTR lpSystemName,
|
||||
_In_ PSID lpSid,
|
||||
_Out_opt_ LPCSTR lpName,
|
||||
_Inout_ LPDWORD cchName,
|
||||
_Out_opt_ LPCSTR lpReferencedDomainName,
|
||||
_Inout_ LPDWORD cchReferencedDomainName,
|
||||
_Out_ PSID_NAME_USE peUse
|
||||
);
|
||||
|
||||
BOOL WINAPI LookupAccountSidW(
|
||||
_In_opt_ LPWSTR lpSystemName,
|
||||
_In_ PSID lpSid,
|
||||
_Out_opt_ LPWSTR lpName,
|
||||
_Inout_ LPDWORD cchName,
|
||||
_Out_opt_ LPWSTR lpReferencedDomainName,
|
||||
_Inout_ LPDWORD cchReferencedDomainName,
|
||||
_Out_ PSID_NAME_USE peUse
|
||||
);
|
||||
|
||||
|
||||
DWORD WINAPI GetInterfaceInfo(
|
||||
_Out_ PIP_INTERFACE_INFO pIfTable,
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
INT WSAStartup(
|
||||
[in] WORD wVersionRequested,
|
||||
[out] LPWSADATA lpWSAData // structure depends on 32 / 64 bits..
|
||||
);
|
||||
|
||||
|
||||
INT WSACleanup();
|
||||
INT WSAGetLastError();
|
||||
|
||||
|
||||
INT getaddrinfo(
|
||||
[in, optional] PCSTR pNodeName,
|
||||
[in, optional] PCSTR pServiceName,
|
||||
[in, optional] ADDRINFOA *pHints,
|
||||
[out] PADDRINFOA *ppResult
|
||||
);
|
||||
|
||||
|
||||
INT GetAddrInfoW(
|
||||
[in, optional] PCWSTR pNodeName,
|
||||
[in, optional] PCWSTR pServiceName,
|
||||
[in, optional] ADDRINFOW *pHints,
|
||||
[out] PADDRINFOW *ppResult
|
||||
);
|
||||
|
||||
|
||||
SOCKET WSASocketA(
|
||||
[in] INT af,
|
||||
[in] INT type,
|
||||
[in] INT protocol,
|
||||
[in] LPWSAPROTOCOL_INFOA lpProtocolInfo,
|
||||
[in] GROUP g,
|
||||
[in] DWORD dwFlags
|
||||
);
|
||||
|
||||
|
||||
SOCKET WSASocketW(
|
||||
[in] INT af,
|
||||
[in] INT type,
|
||||
[in] INT protocol,
|
||||
[in] LPWSAPROTOCOL_INFOW lpProtocolInfo,
|
||||
[in] GROUP g,
|
||||
[in] DWORD dwFlags
|
||||
);
|
||||
|
||||
|
||||
SOCKET socket(
|
||||
[in] INT af,
|
||||
[in] INT type,
|
||||
[in] INT protocol
|
||||
);
|
||||
|
||||
INT connect(
|
||||
[in] SOCKET s,
|
||||
[in] sockaddr *name,
|
||||
[in] INT namelen
|
||||
);
|
||||
|
||||
|
||||
INT send(
|
||||
[in] SOCKET s,
|
||||
[in] CHAR *buf,
|
||||
[in] INT len,
|
||||
[in] INT flags
|
||||
);
|
||||
|
||||
INT recv(
|
||||
[in] SOCKET s,
|
||||
[out] CHAR *buf,
|
||||
[in] INT len,
|
||||
[in] INT flags
|
||||
);
|
||||
|
||||
INT shutdown(
|
||||
[in] SOCKET s,
|
||||
[in] INT how
|
||||
);
|
||||
|
||||
INT closesocket(
|
||||
[in] SOCKET s
|
||||
);
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,17 +9,20 @@ NTSTATUS = DWORD
|
||||
TDHSTATUS = ULONG
|
||||
DNS_STATUS = ULONG
|
||||
LSTATUS = LONG # Registry functions return value | typedef _Return_type_success_(return==ERROR_SUCCESS) LONG LSTATUS;
|
||||
SECURITY_INFORMATION = DWORD
|
||||
PSECURITY_INFORMATION = POINTER(SECURITY_INFORMATION)
|
||||
PULONG = POINTER(ULONG)
|
||||
PDWORD = POINTER(DWORD)
|
||||
LPDWORD = POINTER(DWORD)
|
||||
LPBYTE = POINTER(BYTE)
|
||||
ULONG_PTR = PVOID
|
||||
PULONG_PTR = POINTER(ULONG_PTR)
|
||||
LONG_PTR = PVOID
|
||||
DWORD_PTR = ULONG_PTR
|
||||
PDWORD_PTR = POINTER(DWORD_PTR)
|
||||
KAFFINITY = ULONG_PTR
|
||||
KPRIORITY = LONG
|
||||
INTERNET_PORT = WORD
|
||||
|
||||
|
||||
|
||||
CHAR = c_char
|
||||
PCHAR = POINTER(CHAR)
|
||||
@@ -37,6 +40,7 @@ LPCH = c_char_p
|
||||
LPWCH = c_wchar
|
||||
BSTR = c_wchar_p
|
||||
OLECHAR = c_wchar
|
||||
SNB = POINTER(POINTER(OLECHAR))
|
||||
POLECHAR = c_wchar_p
|
||||
PZZWSTR = c_wchar_p
|
||||
PUCHAR = POINTER(UCHAR)
|
||||
@@ -63,8 +67,6 @@ PULONG64 = POINTER(ULONG64)
|
||||
PBYTE = POINTER(BYTE)
|
||||
PUINT = POINTER(UINT)
|
||||
PHKEY = POINTER(HKEY)
|
||||
ACCESS_MASK = DWORD
|
||||
REGSAM = ACCESS_MASK
|
||||
PBOOLEAN = POINTER(BOOLEAN)
|
||||
SECURITY_CONTEXT_TRACKING_MODE = BOOLEAN
|
||||
HCRYPTPROV_LEGACY = PULONG
|
||||
@@ -75,17 +77,25 @@ ALG_ID = UINT
|
||||
DISPID = LONG
|
||||
MEMBERID = DISPID
|
||||
LRESULT = LONG_PTR
|
||||
LPUNKNOWN = POINTER(PVOID)
|
||||
LPUNKNOWN = PVOID
|
||||
LPPOINT = POINTER(POINT)
|
||||
LPRECT = POINTER(RECT)
|
||||
SPC_UUID = BYTE * 16
|
||||
DEVICE_TYPE = DWORD
|
||||
PWINDBG_EXTENSION_APIS32 = PVOID
|
||||
PWINDBG_EXTENSION_APIS64 = PVOID
|
||||
FILEOP_FLAGS = WORD
|
||||
NET_API_STATUS = DWORD
|
||||
SECURITY_STATUS = LONG // Return type of ncrypt functions
|
||||
|
||||
|
||||
// 2 custom PFW defintions for bitness-forces structures
|
||||
PVOID32 = DWORD
|
||||
PVOID64 = DWORD64
|
||||
|
||||
NCRYPT_HANDLE = ULONG_PTR
|
||||
NCRYPT_PROV_HANDLE = ULONG_PTR
|
||||
BCRYPT_KEY_HANDLE = ULONG_PTR
|
||||
NCRYPT_KEY_HANDLE = ULONG_PTR
|
||||
NCRYPT_HASH_HANDLE = ULONG_PTR
|
||||
NCRYPT_SECRET_HANDLE = ULONG_PTR
|
||||
@@ -113,7 +123,6 @@ INT64 = LONGLONG
|
||||
UINT8 = BYTE
|
||||
UINT16 = USHORT
|
||||
UINT32 = UINT
|
||||
UINT64 = ULONGLONG
|
||||
|
||||
/* LONG sized (lol..) */
|
||||
ULONG32 = UINT32
|
||||
@@ -139,6 +148,7 @@ PLSA_HANDLE = POINTER(LSA_HANDLE)
|
||||
HDSKSPC = HANDLE
|
||||
// Define type for reference to device information set
|
||||
HDEVINFO = HANDLE
|
||||
HINTERNET = PVOID
|
||||
|
||||
/* Network */
|
||||
|
||||
@@ -154,6 +164,8 @@ PSECURITY_DESCRIPTOR_CONTROL = POINTER(SECURITY_DESCRIPTOR_CONTROL)
|
||||
ACCESS_MASK = DWORD
|
||||
PACCESS_MASK = POINTER(ACCESS_MASK)
|
||||
|
||||
REGSAM = ACCESS_MASK
|
||||
|
||||
SECURITY_INFORMATION = DWORD
|
||||
PSECURITY_INFORMATION = POINTER(SECURITY_INFORMATION)
|
||||
PSECURITY_ATTRIBUTES_OPAQUE = PVOID
|
||||
@@ -199,6 +211,21 @@ RPCOLEDATAREP = ULONG
|
||||
HREFTYPE = DWORD
|
||||
SFGAOF = ULONG
|
||||
|
||||
ID = ULONG64
|
||||
MID = ID // Machine Identifier
|
||||
OXID = ID // Object Exporter Identifier
|
||||
OID = ID // Object Identifer
|
||||
SETID = ID // Ping Set Identifier
|
||||
|
||||
// Interface pointer definition
|
||||
LPSTREAM = PVOID # Istream*
|
||||
|
||||
|
||||
/* SOCKET STUFF */
|
||||
|
||||
GROUP = UINT
|
||||
SOCKET = HANDLE
|
||||
|
||||
/* Function PTR */
|
||||
|
||||
WNDPROC = PVOID
|
||||
@@ -229,6 +256,17 @@ PTRANSLATE_ADDRESS_ROUTINE64 = PVOID # StackWalk
|
||||
PSYMBOL_REGISTERED_CALLBACK64 = PVOID # Symbols
|
||||
PSYMBOL_REGISTERED_CALLBACK = PVOID # Symbols
|
||||
PSYM_ENUMPROCESSES_CALLBACK = PVOID # Symbols
|
||||
PSYM_ENUMMODULES_CALLBACKW64 = PVOID # Symbols
|
||||
ENUMRESNAMEPROCA = PVOID # Resources
|
||||
ENUMRESNAMEPROCW = PVOID # Resources
|
||||
ENUMRESTYPEPROCA = PVOID # Resources
|
||||
ENUMRESTYPEPROCW = PVOID # Resources
|
||||
LPSERVICE_MAIN_FUNCTIONA = PVOID
|
||||
LPSERVICE_MAIN_FUNCTIONW = PVOID
|
||||
LPOVERLAPPED_COMPLETION_ROUTINE = PVOID
|
||||
PDNS_QUERY_COMPLETION_ROUTINE = PVOID
|
||||
LPHANDLER_FUNCTION = PVOID
|
||||
LPHANDLER_FUNCTION_EX = PVOID
|
||||
|
||||
|
||||
// Will be changed at import time
|
||||
@@ -237,4 +275,5 @@ LPCONTEXT = PVOID
|
||||
HCERTSTORE = PVOID
|
||||
HCRYPTMSG = PVOID
|
||||
PALPC_PORT_ATTRIBUTES = PVOID
|
||||
PPORT_MESSAGE = PVOID
|
||||
PPORT_MESSAGE = PVOID
|
||||
LPWSADATA = PVOID
|
||||
@@ -63,16 +63,16 @@ typedef union _PORT_MESSAGE32_TMP_UNION
|
||||
{
|
||||
ULONG ClientViewSize;
|
||||
ULONG CallbackId;
|
||||
} PORT_MESSAGE_TMP_UNION;
|
||||
} PORT_MESSAGE32_TMP_UNION;
|
||||
|
||||
typedef union _PORT_MESSAGE64_TMP_UNION
|
||||
{
|
||||
ULONGLONG ClientViewSize;
|
||||
ULONG CallbackId;
|
||||
} PORT_MESSAGE_TMP_UNION;
|
||||
} PORT_MESSAGE64_TMP_UNION;
|
||||
|
||||
|
||||
typedef struct _PORT_MESSAGE_TMP_SUBSTRUCT_S1
|
||||
typedef struct
|
||||
{
|
||||
CSHORT DataLength;
|
||||
CSHORT TotalLength;
|
||||
@@ -291,38 +291,6 @@ typedef struct _REMOTE_PORT_VIEW {
|
||||
PVOID ViewBase;
|
||||
} REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW;
|
||||
|
||||
typedef struct tagCOMVERSION
|
||||
{
|
||||
USHORT MajorVersion;
|
||||
USHORT MinorVersion;
|
||||
} COMVERSION;
|
||||
|
||||
typedef struct tagORPCTHIS {
|
||||
COMVERSION version;
|
||||
ULONG flags;
|
||||
ULONG reserved1;
|
||||
GUID cid;
|
||||
PVOID extensions; // [unique] ORPC_EXTENT_ARRAY *extensions;
|
||||
} ORPCTHIS;
|
||||
|
||||
|
||||
typedef struct __MIDL_XmitDefs_0001 {
|
||||
GUID asyncOperationId;
|
||||
ULONG64 oxidClientProcessNA;
|
||||
GUID originalClientLogicalThreadId;
|
||||
ULONG64 uClientCausalityTraceId;
|
||||
} MIDL_XmitDefs_0001;
|
||||
|
||||
typedef struct _LOCALTHIS {
|
||||
DWORD dwFlags;
|
||||
DWORD dwClientThread;
|
||||
GUID passthroughTraceActivity;
|
||||
GUID callTraceActivity;
|
||||
MIDL_XmitDefs_0001 asyncRequestBlock;
|
||||
DWORD reserved;
|
||||
PVOID pTouchedAstaArray; // Ptr32 __MIDL_XmitDefs_0002
|
||||
} LOCALTHIS;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user