mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Compare commits
213 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 |
@@ -1,16 +1,32 @@
|
|||||||
# V0.1
|
|
||||||
name: Pytest
|
name: Pytest
|
||||||
|
|
||||||
on: [push, workflow_dispatch]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- 'master'
|
||||||
|
pull_request:
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
# Allows you to run this workflow manually from the Actions tab
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
generate_ctypes:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
timeout-minutes: 15
|
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:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
|
runs-on: [windows-2022, windows-latest]
|
||||||
python-version: [2.7, 3.6, 3.11]
|
python-version: [2.7, 3.6, 3.11]
|
||||||
python-architecture: [x86, x64]
|
python-architecture: [x86, x64]
|
||||||
include:
|
include:
|
||||||
@@ -19,6 +35,10 @@ jobs:
|
|||||||
python-architecture: x86
|
python-architecture: x86
|
||||||
- python-bitness-to-test: 64
|
- python-bitness-to-test: 64
|
||||||
python-architecture: x64
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -31,6 +51,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version}}
|
python-version: ${{ matrix.python-version}}
|
||||||
architecture: x86
|
architecture: x86
|
||||||
|
update-environment: false
|
||||||
## Install the 64bits version of python3 asked
|
## Install the 64bits version of python3 asked
|
||||||
- name: Set up Python3 ${{ matrix.python-version }} x64
|
- name: Set up Python3 ${{ matrix.python-version }} x64
|
||||||
if: ${{ matrix.python-version != '2.7' }}
|
if: ${{ matrix.python-version != '2.7' }}
|
||||||
@@ -38,6 +59,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version}}
|
python-version: ${{ matrix.python-version}}
|
||||||
architecture: x64
|
architecture: x64
|
||||||
|
update-environment: false
|
||||||
|
|
||||||
# Manually install python2.7 (both version at once)
|
# Manually install python2.7 (both version at once)
|
||||||
- name: Set up Python2.7 ${{ matrix.python-version }} x86 & x64
|
- name: Set up Python2.7 ${{ matrix.python-version }} x86 & x64
|
||||||
@@ -57,14 +79,14 @@ jobs:
|
|||||||
py -${{ matrix.python-version}}-64 setup.py install
|
py -${{ matrix.python-version}}-64 setup.py install
|
||||||
|
|
||||||
- name: Installing pytest & capstone-windows
|
- name: Installing pytest & capstone-windows
|
||||||
run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pip install pytest capstone-windows
|
run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pip install pytest pytest-timeout capstone-windows
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
- name: Testing
|
- name: Testing
|
||||||
run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pytest --junitxml=junit/test-results.xml -s -k "not known_to_fail" -v tests/
|
run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pytest --junitxml=junit/test-results.xml -s -v tests/
|
||||||
|
|
||||||
- name: Publish PyTest Results
|
- name: Publish PyTest Results
|
||||||
uses: EnricoMi/publish-unit-test-result-action/composite@v1
|
uses: EnricoMi/publish-unit-test-result-action/windows@v2
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
files: junit/test-results.xml
|
files: junit/test-results.xml
|
||||||
@@ -72,3 +94,35 @@ jobs:
|
|||||||
secondary_rate_limit_wait_seconds: 90
|
secondary_rate_limit_wait_seconds: 90
|
||||||
seconds_between_github_writes: 10
|
seconds_between_github_writes: 10
|
||||||
seconds_between_github_reads: 1
|
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
|
||||||
@@ -3,7 +3,12 @@ doctrees
|
|||||||
*.inv
|
*.inv
|
||||||
*.pickle
|
*.pickle
|
||||||
*.ignore
|
*.ignore
|
||||||
|
*.code-workspace
|
||||||
|
|
||||||
.vscode/
|
.vscode/
|
||||||
.cache/
|
.cache/
|
||||||
dist/
|
dist/
|
||||||
|
build/
|
||||||
|
docs/BuildDocEnv/
|
||||||
|
playground/
|
||||||
|
*egg-info/
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# PythonForWindows
|
# PythonForWindows
|
||||||
|
|
||||||
[](https://github.com/hakril/PythonForWindows/actions/workflows/mypytest.yml)
|
[](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).
|
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.
|
Its goal is to offer abstractions around some of the OS features in a (I hope) pythonic way.
|
||||||
@@ -39,7 +39,7 @@ python setup.py install
|
|||||||
|
|
||||||
## Encoding & unicode
|
## Encoding & unicode
|
||||||
|
|
||||||
PythonForWindows support `python2.7` & `python3` and is currently tested for `Python2.7`, `3.6` & `3.11` via [Github Workflow](https://github.com/hakril/PythonForWindows/actions/workflows/mypytest.yml)
|
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.
|
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.
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ class WinComParser(Parser):
|
|||||||
PARAM_INFO = ["__RPC__deref_out", "__RPC__in", "__RPC__deref_out_opt", "__RPC__out", "__RPC__in_opt",
|
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",
|
"__RPC__deref_opt_inout_opt", "__in", "__out", "__out_opt", "__in_opt", "__inout",
|
||||||
"__reserved", "__RPC__in_opt_string", "__RPC__inout_opt", "__RPC__in_string", "__deref_out_opt", "__RPC__inout",
|
"__reserved", "__RPC__in_opt_string", "__RPC__inout_opt", "__RPC__in_string", "__deref_out_opt", "__RPC__inout",
|
||||||
"__RPC__deref_out_opt_string", "_COM_Outptr_", "_In_", "_In_opt_", "_Out_"]
|
"__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",
|
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",
|
"__RPC__in_range", "__RPC__out_ecount_full", "__out_ecount_opt", "__out_ecount", "__in_ecount_opt",
|
||||||
"__in_ecount", "__out_bcount_opt", "__out_bcount", "__in_bcount", "__in_bcount_opt", "__RPC__out_ecount_full_string",
|
"__in_ecount", "__out_bcount_opt", "__out_bcount", "__in_bcount", "__in_bcount_opt", "__RPC__out_ecount_full_string",
|
||||||
|
|||||||
@@ -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,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
|
# So COMInterface completely bypass the HRESULT
|
||||||
# return value check on restype by setting the restype to COMHRESULT
|
# return value check on restype by setting the restype to COMHRESULT
|
||||||
# But we add the 'errcheck' callbakc capacity for all COMInterface and subclasses
|
# But we add the 'errcheck' callback capacity for all COMInterface and subclasses
|
||||||
# So the default implem of the callbakc must have the same behavior as
|
# So the default implem of the callback must have the same behavior as
|
||||||
# standard HRESULT restype.
|
# standard HRESULT restype.
|
||||||
# This is why default errcheck callback call ctypes._check_HRESULT
|
# This is why default errcheck callback call ctypes._check_HRESULT
|
||||||
def _default_errcheck(self, result, func, args):
|
def _default_errcheck(self, result, func, args):
|
||||||
@@ -42,12 +42,33 @@ class COMInterface(ctypes.c_void_p):
|
|||||||
description = "<NULL>" if not self.value else ""
|
description = "<NULL>" if not self.value else ""
|
||||||
return "<{0}{1} at {2:#x}>".format(type(self).__name__, description, id(self))
|
return "<{0}{1} at {2:#x}>".format(type(self).__name__, description, id(self))
|
||||||
|
|
||||||
# Simplified API for QueryInterface for interface embeding there IID
|
# Simplified API for QueryInterface for interface embeding their IID
|
||||||
def query(self, interfacetype):
|
# Or for string/Obj
|
||||||
interface = interfacetype()
|
def query(self, interface, target=None):
|
||||||
self.QueryInterface(interface.IID, interface)
|
if isinstance(interface, str): # We have a GUID
|
||||||
return interface
|
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
|
||||||
@@ -3,3 +3,21 @@
|
|||||||
#define ERROR_SEVERITY_INFORMATIONAL 0x40000000
|
#define ERROR_SEVERITY_INFORMATIONAL 0x40000000
|
||||||
#define ERROR_SEVERITY_WARNING 0x80000000
|
#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
|
||||||
@@ -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
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
#define MEM_EXTENDED_PARAMETER_TYPE_BITS 8
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
/* Specific Access Rights are in <specific_access_right.txt> */
|
||||||
|
|
||||||
//
|
//
|
||||||
// Service trigger types
|
// Service trigger types
|
||||||
//
|
//
|
||||||
@@ -19,8 +21,6 @@
|
|||||||
#define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY 4
|
#define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY 4
|
||||||
#define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL 5
|
#define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL 5
|
||||||
|
|
||||||
// Specific Access Rights are in <specific_access_right.txt>
|
|
||||||
|
|
||||||
|
|
||||||
#define SERVICE_RUNS_IN_SYSTEM_PROCESS 0x00000001
|
#define SERVICE_RUNS_IN_SYSTEM_PROCESS 0x00000001
|
||||||
|
|
||||||
@@ -61,9 +61,6 @@ SERVICE_WIN32_OWN_PROCESS)
|
|||||||
/* Make a value for the new SERVICE_TYPE_ALL ? */
|
/* Make a value for the new SERVICE_TYPE_ALL ? */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define SERVICE_BOOT_START 0x00000000
|
#define SERVICE_BOOT_START 0x00000000
|
||||||
#define SERVICE_SYSTEM_START 0x00000001
|
#define SERVICE_SYSTEM_START 0x00000001
|
||||||
#define SERVICE_AUTO_START 0x00000002
|
#define SERVICE_AUTO_START 0x00000002
|
||||||
|
|||||||
@@ -258,15 +258,15 @@
|
|||||||
#define FAX_JOB_MANAGE (0x0040)
|
#define FAX_JOB_MANAGE (0x0040)
|
||||||
|
|
||||||
|
|
||||||
// COM Specific Access Rights (Custom NAME)
|
// COM Specific Access Rights
|
||||||
// Based on internet search for "COM Access Mask"
|
// Based on https://learn.microsoft.com/en-us/windows/win32/com/access-control-lists-for-com
|
||||||
|
|
||||||
|
|
||||||
#define COM_EXECUTE (0x0001)
|
#define COM_RIGHTS_EXECUTE (0x0001)
|
||||||
#define COM_EXECUTE_LOCAL (0x0002)
|
#define COM_RIGHTS_EXECUTE_LOCAL (0x0002)
|
||||||
#define COM_EXECUTE_REMOTE (0x0004)
|
#define COM_RIGHTS_EXECUTE_REMOTE (0x0004)
|
||||||
#define COM_ACTIVATE_LOCAL (0x0008)
|
#define COM_RIGHTS_ACTIVATE_LOCAL (0x0008)
|
||||||
#define COM_ACTIVATE_REMOTE (0x0010)
|
#define COM_RIGHTS_ACTIVATE_REMOTE (0x0010)
|
||||||
|
|
||||||
//
|
//
|
||||||
// Section Access Rights.
|
// Section Access Rights.
|
||||||
|
|||||||
@@ -17,3 +17,26 @@ NATIVE_WORD_MAX_VALUE = 0xffffffff if bitness == 32 else 0xffffffffffffffff
|
|||||||
|
|
||||||
def CTL_CODE(DeviceType, Function, Method, Access):
|
def CTL_CODE(DeviceType, Function, Method, Access):
|
||||||
return (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
|
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,22 +130,6 @@
|
|||||||
#define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
|
#define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
|
||||||
#define TH32CS_INHERIT 0x80000000
|
#define TH32CS_INHERIT 0x80000000
|
||||||
|
|
||||||
#define CONTEXT_I386 0x00010000
|
|
||||||
#define CONTEXT_AMD64 0x00100000
|
|
||||||
#define CONTEXT_ARM 0x00200000
|
|
||||||
#define CONTEXT_ARM64 0x00400000
|
|
||||||
|
|
||||||
#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)
|
|
||||||
|
|
||||||
|
|
||||||
#define PAGE_NOACCESS 0x01
|
#define PAGE_NOACCESS 0x01
|
||||||
#define PAGE_READONLY 0x02
|
#define PAGE_READONLY 0x02
|
||||||
|
|||||||
@@ -101,3 +101,5 @@
|
|||||||
#define IMAGE_FILE_MACHINE_M32R 0x9041
|
#define IMAGE_FILE_MACHINE_M32R 0x9041
|
||||||
#define IMAGE_FILE_MACHINE_CEE 0xC0EE
|
#define IMAGE_FILE_MACHINE_CEE 0xC0EE
|
||||||
#define IMAGE_FILE_MACHINE_ARM64 0xAA64
|
#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_ARCHIVABLE 0x00004000
|
||||||
#define CRYPT_FORCE_KEY_PROTECTION_HIGH 0x00008000
|
#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 CRYPT_ENCODE_DECODE_NONE 0
|
||||||
#define X509_CERT (1)
|
#define X509_CERT (1)
|
||||||
@@ -583,3 +615,46 @@
|
|||||||
#define CMSG_CTRL_VERIFY_SIGNATURE_EX 19
|
#define CMSG_CTRL_VERIFY_SIGNATURE_EX 19
|
||||||
#define CMSG_CTRL_ADD_CMS_SIGNER_INFO 20
|
#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
|
||||||
@@ -136,3 +136,30 @@ PVOID SysAllocString(
|
|||||||
VOID SysFreeString(
|
VOID SysFreeString(
|
||||||
[in, optional] BSTR bstrString
|
[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
|
||||||
|
);
|
||||||
|
|||||||
@@ -618,3 +618,63 @@ BOOL CertCloseStore(
|
|||||||
HCERTSTORE hCertStore,
|
HCERTSTORE hCertStore,
|
||||||
DWORD dwFlags
|
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
|
||||||
|
);
|
||||||
@@ -85,3 +85,22 @@ BOOL LockFileEx(
|
|||||||
[in] DWORD nNumberOfBytesToLockHigh,
|
[in] DWORD nNumberOfBytesToLockHigh,
|
||||||
[in, out] LPOVERLAPPED lpOverlapped
|
[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,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
|
||||||
|
);
|
||||||
@@ -64,3 +64,22 @@ HMODULE LoadLibraryExW(
|
|||||||
BOOL FreeLibrary(
|
BOOL FreeLibrary(
|
||||||
HMODULE hLibModule
|
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 ();
|
||||||
@@ -268,3 +268,37 @@ BOOL StartServiceCtrlDispatcherA(
|
|||||||
BOOL StartServiceCtrlDispatcherW(
|
BOOL StartServiceCtrlDispatcherW(
|
||||||
SERVICE_TABLE_ENTRYW *lpServiceStartTable
|
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
|
||||||
|
);
|
||||||
@@ -109,28 +109,6 @@ BOOL WINAPI SymEnumSymbolsEx(
|
|||||||
_In_ DWORD Options
|
_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 SymEnumTypesByNameW(
|
|
||||||
[in] HANDLE hProcess,
|
|
||||||
[in] ULONG64 BaseOfDll,
|
|
||||||
[in, optional] PCWSTR mask,
|
|
||||||
[in] PVOID EnumSymbolsCallback,
|
|
||||||
[in] PVOID UserContext
|
|
||||||
);
|
|
||||||
|
|
||||||
BOOL WINAPI SymEnumerateModules64(
|
BOOL WINAPI SymEnumerateModules64(
|
||||||
_In_ HANDLE hProcess,
|
_In_ HANDLE hProcess,
|
||||||
@@ -439,3 +417,34 @@ BOOL SymSetSearchPathW(
|
|||||||
HANDLE hProcess,
|
HANDLE hProcess,
|
||||||
PCWSTR SearchPath
|
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
|
||||||
|
);
|
||||||
@@ -367,3 +367,28 @@ NTSTATUS NtTerminateProcess(
|
|||||||
HANDLE ProcessHandle,
|
HANDLE ProcessHandle,
|
||||||
NTSTATUS ExitStatus
|
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
|
||||||
|
);
|
||||||
@@ -60,3 +60,11 @@ BOOL LookupAccountNameW(
|
|||||||
LPDWORD cchReferencedDomainName,
|
LPDWORD cchReferencedDomainName,
|
||||||
PSID_NAME_USE peUse
|
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
|
||||||
|
);
|
||||||
@@ -150,6 +150,17 @@ HANDLE WINAPI CreateRemoteThread(
|
|||||||
_Out_ LPDWORD lpThreadId
|
_Out_ LPDWORD lpThreadId
|
||||||
);
|
);
|
||||||
|
|
||||||
|
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(
|
BOOL WINAPI CreateProcessA(
|
||||||
__in_opt LPCSTR lpApplicationName,
|
__in_opt LPCSTR lpApplicationName,
|
||||||
__inout_opt LPSTR lpCommandLine,
|
__inout_opt LPSTR lpCommandLine,
|
||||||
@@ -242,13 +253,6 @@ BOOL WINAPI ReadProcessMemory(
|
|||||||
_Out_ SIZE_T *lpNumberOfBytesRead
|
_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(
|
BOOL WINAPI WriteProcessMemory(
|
||||||
@@ -260,13 +264,7 @@ BOOL WINAPI WriteProcessMemory(
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS WINAPI NtWow64WriteVirtualMemory64(
|
|
||||||
_In_ HANDLE hProcess,
|
|
||||||
_In_ ULONG64 lpBaseAddress,
|
|
||||||
_Out_ LPVOID lpBuffer,
|
|
||||||
_In_ ULONG64 nSize,
|
|
||||||
_Out_ PULONG64 lpNumberOfBytesWritten
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -518,23 +516,6 @@ BOOL WINAPI DeviceIoControl(
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
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(
|
BOOL WINAPI SetConsoleCtrlHandler(
|
||||||
_In_opt_ PHANDLER_ROUTINE HandlerRoutine,
|
_In_opt_ PHANDLER_ROUTINE HandlerRoutine,
|
||||||
_In_ BOOL Add
|
_In_ BOOL Add
|
||||||
@@ -669,10 +650,6 @@ DWORD WINAPI GetProcessId(
|
|||||||
_In_ HANDLE Process
|
_In_ HANDLE Process
|
||||||
);
|
);
|
||||||
|
|
||||||
BOOL WINAPI Wow64SetThreadContext(
|
|
||||||
__in HANDLE hThread,
|
|
||||||
__in CONST WOW64_CONTEXT *lpContext
|
|
||||||
);
|
|
||||||
|
|
||||||
DWORD WINAPI GetMappedFileNameW (
|
DWORD WINAPI GetMappedFileNameW (
|
||||||
__in HANDLE hProcess,
|
__in HANDLE hProcess,
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -22,6 +22,8 @@ KAFFINITY = ULONG_PTR
|
|||||||
KPRIORITY = LONG
|
KPRIORITY = LONG
|
||||||
INTERNET_PORT = WORD
|
INTERNET_PORT = WORD
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CHAR = c_char
|
CHAR = c_char
|
||||||
PCHAR = POINTER(CHAR)
|
PCHAR = POINTER(CHAR)
|
||||||
UCHAR = c_char
|
UCHAR = c_char
|
||||||
@@ -38,6 +40,7 @@ LPCH = c_char_p
|
|||||||
LPWCH = c_wchar
|
LPWCH = c_wchar
|
||||||
BSTR = c_wchar_p
|
BSTR = c_wchar_p
|
||||||
OLECHAR = c_wchar
|
OLECHAR = c_wchar
|
||||||
|
SNB = POINTER(POINTER(OLECHAR))
|
||||||
POLECHAR = c_wchar_p
|
POLECHAR = c_wchar_p
|
||||||
PZZWSTR = c_wchar_p
|
PZZWSTR = c_wchar_p
|
||||||
PUCHAR = POINTER(UCHAR)
|
PUCHAR = POINTER(UCHAR)
|
||||||
@@ -74,7 +77,7 @@ ALG_ID = UINT
|
|||||||
DISPID = LONG
|
DISPID = LONG
|
||||||
MEMBERID = DISPID
|
MEMBERID = DISPID
|
||||||
LRESULT = LONG_PTR
|
LRESULT = LONG_PTR
|
||||||
LPUNKNOWN = POINTER(PVOID)
|
LPUNKNOWN = PVOID
|
||||||
LPPOINT = POINTER(POINT)
|
LPPOINT = POINTER(POINT)
|
||||||
LPRECT = POINTER(RECT)
|
LPRECT = POINTER(RECT)
|
||||||
SPC_UUID = BYTE * 16
|
SPC_UUID = BYTE * 16
|
||||||
@@ -83,10 +86,16 @@ PWINDBG_EXTENSION_APIS32 = PVOID
|
|||||||
PWINDBG_EXTENSION_APIS64 = PVOID
|
PWINDBG_EXTENSION_APIS64 = PVOID
|
||||||
FILEOP_FLAGS = WORD
|
FILEOP_FLAGS = WORD
|
||||||
NET_API_STATUS = DWORD
|
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_HANDLE = ULONG_PTR
|
||||||
NCRYPT_PROV_HANDLE = ULONG_PTR
|
NCRYPT_PROV_HANDLE = ULONG_PTR
|
||||||
|
BCRYPT_KEY_HANDLE = ULONG_PTR
|
||||||
NCRYPT_KEY_HANDLE = ULONG_PTR
|
NCRYPT_KEY_HANDLE = ULONG_PTR
|
||||||
NCRYPT_HASH_HANDLE = ULONG_PTR
|
NCRYPT_HASH_HANDLE = ULONG_PTR
|
||||||
NCRYPT_SECRET_HANDLE = ULONG_PTR
|
NCRYPT_SECRET_HANDLE = ULONG_PTR
|
||||||
@@ -202,6 +211,16 @@ RPCOLEDATAREP = ULONG
|
|||||||
HREFTYPE = DWORD
|
HREFTYPE = DWORD
|
||||||
SFGAOF = ULONG
|
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 */
|
/* SOCKET STUFF */
|
||||||
|
|
||||||
GROUP = UINT
|
GROUP = UINT
|
||||||
@@ -246,6 +265,8 @@ LPSERVICE_MAIN_FUNCTIONA = PVOID
|
|||||||
LPSERVICE_MAIN_FUNCTIONW = PVOID
|
LPSERVICE_MAIN_FUNCTIONW = PVOID
|
||||||
LPOVERLAPPED_COMPLETION_ROUTINE = PVOID
|
LPOVERLAPPED_COMPLETION_ROUTINE = PVOID
|
||||||
PDNS_QUERY_COMPLETION_ROUTINE = PVOID
|
PDNS_QUERY_COMPLETION_ROUTINE = PVOID
|
||||||
|
LPHANDLER_FUNCTION = PVOID
|
||||||
|
LPHANDLER_FUNCTION_EX = PVOID
|
||||||
|
|
||||||
|
|
||||||
// Will be changed at import time
|
// Will be changed at import time
|
||||||
|
|||||||
@@ -291,38 +291,6 @@ typedef struct _REMOTE_PORT_VIEW {
|
|||||||
PVOID ViewBase;
|
PVOID ViewBase;
|
||||||
} REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW;
|
} 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;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -153,10 +153,3 @@ typedef struct __tagVARIANT {
|
|||||||
_ANON_TMP_variant_sub_union _VARIANT_NAME_3;
|
_ANON_TMP_variant_sub_union _VARIANT_NAME_3;
|
||||||
} _tagVARIANT, VARIANT, VARIANTARG, *LPVARIANT, *LPVARIANTARG;
|
} _tagVARIANT, VARIANT, VARIANTARG, *LPVARIANT, *LPVARIANTARG;
|
||||||
|
|
||||||
|
|
||||||
typedef enum tagCOMSD {
|
|
||||||
SD_LAUNCHPERMISSIONS = 0,
|
|
||||||
SD_ACCESSPERMISSIONS = 1,
|
|
||||||
SD_LAUNCHRESTRICTIONS = 2,
|
|
||||||
SD_ACCESSRESTRICTIONS = 3
|
|
||||||
} COMSD;
|
|
||||||
@@ -0,0 +1,465 @@
|
|||||||
|
|
||||||
|
typedef enum tagCOMSD {
|
||||||
|
SD_LAUNCHPERMISSIONS = 0,
|
||||||
|
SD_ACCESSPERMISSIONS = 1,
|
||||||
|
SD_LAUNCHRESTRICTIONS = 2,
|
||||||
|
SD_ACCESSRESTRICTIONS = 3
|
||||||
|
} COMSD;
|
||||||
|
|
||||||
|
typedef struct tagOpaqueData
|
||||||
|
{
|
||||||
|
GUID guid;
|
||||||
|
ULONG dataLength;
|
||||||
|
ULONG reserved1;
|
||||||
|
ULONG reserved2;
|
||||||
|
/*[size_is((dataLength+7)&~7)]*/ BYTE *data;
|
||||||
|
} OpaqueData;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct tagSTDOBJREF
|
||||||
|
{
|
||||||
|
ULONG flags; // STDOBJREF flags (see above)
|
||||||
|
ULONG cPublicRefs; // count of references passed
|
||||||
|
OXID oxid; // oxid of server with this oid
|
||||||
|
OID oid; // oid of object with this ipid
|
||||||
|
IPID ipid; // ipid of Interface
|
||||||
|
} STDOBJREF;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct tagDATAELEMENT
|
||||||
|
{
|
||||||
|
GUID dataID;
|
||||||
|
ULONG cbSize;
|
||||||
|
ULONG cbRounded;
|
||||||
|
BYTE Data[ 1 ];
|
||||||
|
} DATAELEMENT, *PDATAELEMENT;
|
||||||
|
|
||||||
|
typedef struct tagOBJREFDATA
|
||||||
|
{
|
||||||
|
ULONG nElms;
|
||||||
|
PDATAELEMENT *ppElmArray;
|
||||||
|
} OBJREFDATA;
|
||||||
|
|
||||||
|
typedef struct tagDUALSTRINGARRAY
|
||||||
|
{
|
||||||
|
USHORT wNumEntries; // Number of entries in array.
|
||||||
|
USHORT wSecurityOffset; // Offset of security info.
|
||||||
|
// The array contains two parts, a set of STRINGBINDINGs
|
||||||
|
// and a set of SECURITYBINDINGs. Each set is terminated by an
|
||||||
|
// extra zero. The shortest array contains four zeros.
|
||||||
|
/*[size_is(wNumEntries)]*/ USHORT aStringArray[1];
|
||||||
|
} DUALSTRINGARRAY;
|
||||||
|
|
||||||
|
typedef struct tagOBJREF
|
||||||
|
{
|
||||||
|
ULONG signature;
|
||||||
|
ULONG flags;
|
||||||
|
GUID iid;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
STDOBJREF std;
|
||||||
|
DUALSTRINGARRAY saResAddr;
|
||||||
|
} u_standard;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
STDOBJREF std;
|
||||||
|
CLSID clsid;
|
||||||
|
DUALSTRINGARRAY saResAddr;
|
||||||
|
} u_handler;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
CLSID clsid;
|
||||||
|
ULONG cbExtension;
|
||||||
|
ULONG size;
|
||||||
|
BYTE *pData;
|
||||||
|
} u_custom;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
STDOBJREF std;
|
||||||
|
OBJREFDATA *pORData;
|
||||||
|
DUALSTRINGARRAY saResAddr;
|
||||||
|
} u_extended;
|
||||||
|
} u_objref;
|
||||||
|
} OBJREF;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct tagCOMVERSION
|
||||||
|
{
|
||||||
|
USHORT MajorVersion;
|
||||||
|
USHORT MinorVersion;
|
||||||
|
} COMVERSION;
|
||||||
|
|
||||||
|
typedef struct tagORPC_EXTENT {
|
||||||
|
_GUID id;
|
||||||
|
ULONG size;
|
||||||
|
BYTE data[1];
|
||||||
|
} ORPC_EXTENT, PORPC_EXTENT;
|
||||||
|
|
||||||
|
typedef struct tagORPC_EXTENT_ARRAY {
|
||||||
|
ULONG size;
|
||||||
|
ULONG reserved;
|
||||||
|
PORPC_EXTENT *extent;
|
||||||
|
} ORPC_EXTENT_ARRAY;
|
||||||
|
|
||||||
|
typedef struct tagORPCTHIS {
|
||||||
|
COMVERSION version;
|
||||||
|
ULONG flags;
|
||||||
|
ULONG reserved1;
|
||||||
|
GUID cid;
|
||||||
|
PVOID extensions; // [unique] ORPC_EXTENT_ARRAY *extensions;
|
||||||
|
} ORPCTHIS;
|
||||||
|
|
||||||
|
typedef struct tagORPCTHIS32 {
|
||||||
|
COMVERSION version;
|
||||||
|
ULONG flags;
|
||||||
|
ULONG reserved1;
|
||||||
|
GUID cid;
|
||||||
|
PVOID32 extensions; // [unique] ORPC_EXTENT_ARRAY *extensions;
|
||||||
|
} ORPCTHIS32;
|
||||||
|
|
||||||
|
typedef struct tagOXID_INFO
|
||||||
|
{
|
||||||
|
DWORD dwTid; // thread id of object exporter
|
||||||
|
DWORD dwPid; // process id of object exporter
|
||||||
|
DWORD dwAuthnHint; // authentication hint
|
||||||
|
COMVERSION version; // COM Version of server
|
||||||
|
IPID ipidRemUnknown; // IRemUnknown IPID for object exporter
|
||||||
|
DWORD dwFlags; // miscellaneous flags
|
||||||
|
/*[unique]*/ DUALSTRINGARRAY *psa; // protocol and security info
|
||||||
|
} OXID_INFO;
|
||||||
|
|
||||||
|
enum tagCPFLAGS
|
||||||
|
{
|
||||||
|
CPFLAG_NONE = 0,
|
||||||
|
CPFLAG_PROPAGATE = 0x1,
|
||||||
|
CPFLAG_EXPOSE = 0x2,
|
||||||
|
CPFLAG_ENVOY = 0x4,
|
||||||
|
CPFLAG_MONITORSTUB = 0x8,
|
||||||
|
CPFLAG_MONITORPROXY = 0x10,
|
||||||
|
CPFLAG_DONTCOMPARE = 0x20
|
||||||
|
} CPFLAGS;
|
||||||
|
|
||||||
|
typedef struct tagContextProperty
|
||||||
|
{
|
||||||
|
GUID policyId;
|
||||||
|
CPFLAGS flags;
|
||||||
|
PVOID pUnk; // IUnknown
|
||||||
|
} ContextProperty;
|
||||||
|
|
||||||
|
typedef struct _PRIV_SCM_INFO
|
||||||
|
{
|
||||||
|
LONG Apartment;
|
||||||
|
WCHAR *pwszWinstaDesktop;
|
||||||
|
ULONG64 ProcessSignature;
|
||||||
|
WCHAR *pEnvBlock;
|
||||||
|
DWORD EnvBlockLength;
|
||||||
|
} PRIV_SCM_INFO;
|
||||||
|
|
||||||
|
typedef struct _REMOTE_REQUEST_SCM_INFO
|
||||||
|
{
|
||||||
|
DWORD ClientImpLevel;
|
||||||
|
USHORT cRequestedProtseqs;
|
||||||
|
USHORT *pRequestedProtseqs;
|
||||||
|
} REMOTE_REQUEST_SCM_INFO;
|
||||||
|
|
||||||
|
// From: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dcom/21781a97-cb45-4655-82b0-02c4a1584603
|
||||||
|
typedef struct tagMInterfacePointer {
|
||||||
|
ULONG ulCntData;
|
||||||
|
/*[size_is(ulCntData)]*/ BYTE abData[1];
|
||||||
|
} MInterfacePointer, *PMInterfacePointer;
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum tagACTIVATION_STAGE
|
||||||
|
{
|
||||||
|
CLIENT_CONTEXT_STAGE = 1,
|
||||||
|
CLIENT_MACHINE_STAGE = 2,
|
||||||
|
SERVER_MACHINE_STAGE = 3,
|
||||||
|
SERVER_PROCESS_STAGE = 4,
|
||||||
|
SERVER_CONTEXT_STAGE = 5
|
||||||
|
} ACTIVATION_STAGE;
|
||||||
|
|
||||||
|
typedef enum tagThreadingModel
|
||||||
|
{
|
||||||
|
ApartmentThreaded = 0,
|
||||||
|
FreeThreaded = 1 ,
|
||||||
|
SingleThreaded = 2 ,
|
||||||
|
BothThreaded = 3 ,
|
||||||
|
NeutralThreaded = 4
|
||||||
|
} ThreadingModel;
|
||||||
|
|
||||||
|
typedef enum tagLocalServerType
|
||||||
|
{
|
||||||
|
LocalServerType16 = 0,
|
||||||
|
LocalServerType32 = 1
|
||||||
|
} LocalServerType;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct tagRPCOLEMESSAGE
|
||||||
|
{
|
||||||
|
PVOID reserved1;
|
||||||
|
RPCOLEDATAREP dataRepresentation;
|
||||||
|
PVOID Buffer;
|
||||||
|
ULONG cbBuffer;
|
||||||
|
ULONG iMethod;
|
||||||
|
PVOID reserved2[5];
|
||||||
|
ULONG rpcFlags;
|
||||||
|
} RPCOLEMESSAGE, *PRPCOLEMESSAGE;
|
||||||
|
|
||||||
|
// https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dcom/1d6a8a54-b115-4148-815a-af0258931948
|
||||||
|
typedef struct tagREMQIRESULT
|
||||||
|
{
|
||||||
|
HRESULT hResult;
|
||||||
|
STDOBJREF std;
|
||||||
|
} REMQIRESULT, *PREMQIRESULT;
|
||||||
|
|
||||||
|
typedef struct tagREMINTERFACEREF
|
||||||
|
{
|
||||||
|
IPID ipid;
|
||||||
|
ULONG cPublicRefs;
|
||||||
|
ULONG cPrivateRefs;
|
||||||
|
} REMINTERFACEREF;
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum tagSTREAM_SEEK {
|
||||||
|
STREAM_SEEK_SET = 0,
|
||||||
|
STREAM_SEEK_CUR = 1,
|
||||||
|
STREAM_SEEK_END = 2
|
||||||
|
} STREAM_SEEK;
|
||||||
|
|
||||||
|
typedef enum tagMSHCTX {
|
||||||
|
MSHCTX_LOCAL = 0,
|
||||||
|
MSHCTX_NOSHAREDMEM = 1,
|
||||||
|
MSHCTX_DIFFERENTMACHINE = 2,
|
||||||
|
MSHCTX_INPROC = 3,
|
||||||
|
MSHCTX_CROSSCTX = 4,
|
||||||
|
MSHCTX_CONTAINER
|
||||||
|
} MSHCTX;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _PRIV_RESOLVER_INFO_LEGACY
|
||||||
|
{
|
||||||
|
OXID OxidServer;
|
||||||
|
DUALSTRINGARRAY *pServerORBindings;
|
||||||
|
OXID_INFO OxidInfo;
|
||||||
|
MID LocalMidOfRemote;
|
||||||
|
DWORD DllServerModel;
|
||||||
|
WCHAR *pwszDllServer;
|
||||||
|
BOOL FoundInROT;
|
||||||
|
} PRIV_RESOLVER_INFO_LEGACY, *PPRIV_RESOLVER_INFO_LEGACY;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _REMOTE_REPLY_SCM_INFO
|
||||||
|
{
|
||||||
|
OXID Oxid;
|
||||||
|
DUALSTRINGARRAY *pdsaOxidBindings;
|
||||||
|
IPID ipidRemUnknown;
|
||||||
|
DWORD authnHint;
|
||||||
|
COMVERSION serverVersion;
|
||||||
|
} REMOTE_REPLY_SCM_INFO, *PREMOTE_REPLY_SCM_INFO;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct CONTAINER_EXTENT {
|
||||||
|
UINT id;
|
||||||
|
UINT version;
|
||||||
|
UINT size;
|
||||||
|
BYTE data[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct CONTAINER_EXTENT_ARRAY {
|
||||||
|
UINT size;
|
||||||
|
UINT reserved;
|
||||||
|
CONTAINER_EXTENT *extent;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct HSTRING__ {
|
||||||
|
INT unused;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct CONTAINERVERSION {
|
||||||
|
UINT version;
|
||||||
|
UINT64 capabilityFlags;
|
||||||
|
CONTAINER_EXTENT_ARRAY *extensions;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct __MIDL_ILocalObjectExporter_0006 {
|
||||||
|
ULONG dwTid;
|
||||||
|
ULONG dwPid;
|
||||||
|
ULONG dwAuthnHint;
|
||||||
|
tagCOMVERSION version;
|
||||||
|
_GUID ipidRemUnknown;
|
||||||
|
ULONG dwFlags;
|
||||||
|
tagDUALSTRINGARRAY *psa;
|
||||||
|
_GUID guidProcessIdentifier;
|
||||||
|
UINT64 processHostId;
|
||||||
|
INT clientDependencyBehavior;
|
||||||
|
HSTRING__ *packageFullName;
|
||||||
|
HSTRING__ *userSid;
|
||||||
|
HSTRING__ *appcontainerSid;
|
||||||
|
} MIDL_ILocalObjectExporter_0006;
|
||||||
|
|
||||||
|
typedef struct _PRIV_RESOLVER_INFO_17763 {
|
||||||
|
UINT64 OxidServer;
|
||||||
|
tagDUALSTRINGARRAY *pServerORBindings;
|
||||||
|
MIDL_ILocalObjectExporter_0006 OxidInfo;
|
||||||
|
UINT64 LocalMidOfRemote;
|
||||||
|
ULONG DllServerModel;
|
||||||
|
WCHAR *pwszDllServer;
|
||||||
|
INT FoundInROT;
|
||||||
|
} PRIV_RESOLVER_INFO_17763, *PPRIV_RESOLVER_INFO_17763;
|
||||||
|
|
||||||
|
typedef struct _MIDL_ILocalObjectExporter_0007 {
|
||||||
|
ULONG dwTid;
|
||||||
|
ULONG dwPid;
|
||||||
|
ULONG dwAuthnHint;
|
||||||
|
tagCOMVERSION dcomVersion;
|
||||||
|
CONTAINERVERSION containerVersion;
|
||||||
|
_GUID ipidRemUnknown;
|
||||||
|
ULONG dwFlags;
|
||||||
|
tagDUALSTRINGARRAY *psa;
|
||||||
|
_GUID guidProcessIdentifier;
|
||||||
|
UINT64 processHostId;
|
||||||
|
INT clientDependencyBehavior;
|
||||||
|
HSTRING__ *packageFullName;
|
||||||
|
HSTRING__ *userSid;
|
||||||
|
HSTRING__ *appcontainerSid;
|
||||||
|
UINT64 primaryOxid;
|
||||||
|
_GUID primaryIpidRemUnknown;
|
||||||
|
} MIDL_ILocalObjectExporter_0007;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _PRIV_RESOLVER_INFO {
|
||||||
|
UINT64 OxidServer;
|
||||||
|
tagDUALSTRINGARRAY *pServerORBindings;
|
||||||
|
MIDL_ILocalObjectExporter_0007 OxidInfo;
|
||||||
|
UINT64 LocalMidOfRemote;
|
||||||
|
INT FoundInROT;
|
||||||
|
} PRIV_RESOLVER_INFO, *PPRIV_RESOLVER_INFO;
|
||||||
|
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
/* LOCALTHAT & sub structures */
|
||||||
|
|
||||||
|
typedef struct _MIDL_XmitDefs_0007 {
|
||||||
|
INT pointOfFailure;
|
||||||
|
HRESULT hrFailure;
|
||||||
|
ULONG sizeOfMarshaledErrorInfo;
|
||||||
|
ULONG reserved;
|
||||||
|
BYTE *pMarshaledErrorInfo;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _MIDL_XmitDefs_0005 {
|
||||||
|
ULONG sizeOfMarshaledResults;
|
||||||
|
ULONG reserved;
|
||||||
|
BYTE *pMarshaledResults;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _MIDL_XmitDefs_0008 {
|
||||||
|
INT outcome;
|
||||||
|
_MIDL_XmitDefs_0005 successDetails;
|
||||||
|
_MIDL_XmitDefs_0007 failureDetails;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _MIDL_XmitDefs_0010 {
|
||||||
|
ULONG asyncStatus;
|
||||||
|
ULONG reserved1;
|
||||||
|
UINT64 uServerCausalityTraceId;
|
||||||
|
_GUID completionTraceActivity;
|
||||||
|
ULONG reserved2;
|
||||||
|
_MIDL_XmitDefs_0008 *pOutcomeDetails;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct CONTAINERTHAT {
|
||||||
|
UINT64 responseFlags;
|
||||||
|
_GUID unassignedPassthroughGuid_1;
|
||||||
|
_GUID unassignedPassthroughGuid_2;
|
||||||
|
_GUID unassignedPassthroughGuid_3;
|
||||||
|
_GUID unassignedPassthroughGuid_4;
|
||||||
|
_GUID reservedGuid_1;
|
||||||
|
_GUID reservedGuid_2;
|
||||||
|
_GUID reservedGuid_3;
|
||||||
|
_GUID reservedGuid_4;
|
||||||
|
UINT64 unassignedPassthroughUint64_1;
|
||||||
|
UINT64 unassignedPassthroughUint64_2;
|
||||||
|
UINT64 unassignedPassthroughUint64_3;
|
||||||
|
UINT64 unassignedPassthroughUint64_4;
|
||||||
|
UINT64 marshalingSetId;
|
||||||
|
UINT64 reservedUint64_2;
|
||||||
|
UINT64 reservedUint64_3;
|
||||||
|
UINT64 reservedUint64_4;
|
||||||
|
UINT reservedUint32;
|
||||||
|
CONTAINER_EXTENT_ARRAY *extensions;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _LOCALTHAT {
|
||||||
|
UINT64 marshalingSetId;
|
||||||
|
ULONG reserved;
|
||||||
|
_MIDL_XmitDefs_0010 *pAsyncResponseBlock;
|
||||||
|
CONTAINER_EXTENT *containerErrorInformation;
|
||||||
|
CONTAINERTHAT *containerPassthroughData;
|
||||||
|
} LOCALTHAT;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct tagORPCTHAT {
|
||||||
|
ULONG flags;
|
||||||
|
tagORPC_EXTENT_ARRAY *extensions;
|
||||||
|
} ORPCTHAT;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct ORPCTHAT32 {
|
||||||
|
ULONG flags;
|
||||||
|
PVOID32 extensions; // tagORPC_EXTENT_ARRAY tagORPC_EXTENT_ARRAY
|
||||||
|
} ORPCTHAT32;
|
||||||
|
|
||||||
|
// From: com\ole32\com\dcomrem\chock.hxx
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
ULONG size; // Number of extents.
|
||||||
|
ULONG reserved; // Must be zero.
|
||||||
|
ULONG unique; // Flag to indicate presence of unique_flag array.
|
||||||
|
ULONG rounded_size; // Actual number of extents.
|
||||||
|
ULONG unique_flag[UNIQUE_FLAG_PADDING]; // Flags to indicate presense of ORPC_EXTENTs
|
||||||
|
} WireExtentArray;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
ULONG rounded_size; // Actual number of extents.
|
||||||
|
GUID id; // Extension identifier.
|
||||||
|
ULONG size; // Extension size.
|
||||||
|
|
||||||
|
// byte data[]; // Extension data.
|
||||||
|
} WireExtent;
|
||||||
|
|
||||||
|
typedef struct tagMainHeader
|
||||||
|
{
|
||||||
|
ULONG Signature;
|
||||||
|
ULONG Version;
|
||||||
|
ULONG cPolicies;
|
||||||
|
ULONG cbBuffer;
|
||||||
|
ULONG cbSize;
|
||||||
|
LONG hr;
|
||||||
|
LONG hrServer;
|
||||||
|
LONG reserved;
|
||||||
|
} MainHeader;
|
||||||
@@ -0,0 +1,212 @@
|
|||||||
|
/* Summary of seen version on combase symbols for LOCALTHIS:
|
||||||
|
|
||||||
|
Nb fields: 2
|
||||||
|
6.1.7601.17514 -> 6.2.9200.22376
|
||||||
|
* 6.1.7601.17514
|
||||||
|
* 6.1.7601.17514
|
||||||
|
* 6.2.9200.22376
|
||||||
|
Nb fields: 4
|
||||||
|
6.3.9600.17031 -> 6.3.9600.20772
|
||||||
|
* 6.3.9600.17031
|
||||||
|
* 6.3.9600.20772
|
||||||
|
Nb fields: 5
|
||||||
|
10.0.10240.16384 -> 10.0.15063.2679
|
||||||
|
* 10.0.10240.16384
|
||||||
|
* 10.0.10240.20747
|
||||||
|
* 10.0.10586.0
|
||||||
|
* 10.0.14393.576
|
||||||
|
* 10.0.14393.6451
|
||||||
|
* 10.0.14393.7426
|
||||||
|
* 10.0.15063.251
|
||||||
|
* 10.0.15063.1563
|
||||||
|
* 10.0.15063.2500
|
||||||
|
* 10.0.15063.2679
|
||||||
|
Nb fields: 7
|
||||||
|
10.0.16299.1 -> 10.0.26100.2454
|
||||||
|
* 10.0.16299.1
|
||||||
|
* 10.0.16299.15
|
||||||
|
* 10.0.17134.1
|
||||||
|
* 10.0.17134.48
|
||||||
|
* 10.0.17134.2145
|
||||||
|
* 10.0.17134.2145
|
||||||
|
* 10.0.17763.1
|
||||||
|
* 10.0.17763.2931
|
||||||
|
* 10.0.22621.2792
|
||||||
|
* 10.0.22621.3958
|
||||||
|
* 10.0.22621.4111
|
||||||
|
* 10.0.22621.4541
|
||||||
|
* 10.0.26100.2454
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Summary of seen version on combase symbols for LOCALTHAT:
|
||||||
|
|
||||||
|
Nb fields: 2
|
||||||
|
6.3.9600.17031 -> 6.3.9600.20772
|
||||||
|
* 6.3.9600.17031
|
||||||
|
* 6.3.9600.17031
|
||||||
|
* 6.3.9600.17031
|
||||||
|
* 6.3.9600.20772
|
||||||
|
Nb fields: 3
|
||||||
|
10.0.18362.900 -> 10.0.18362.1916
|
||||||
|
* 10.0.18362.900
|
||||||
|
* 10.0.18362.900
|
||||||
|
* 10.0.18362.1016
|
||||||
|
* 10.0.18362.1916
|
||||||
|
Nb fields: 4
|
||||||
|
10.0.10240.16384 -> 10.0.17763.6040
|
||||||
|
* 10.0.10240.16384
|
||||||
|
* 10.0.10240.16384
|
||||||
|
* 10.0.10240.20747
|
||||||
|
* 10.0.10586.0
|
||||||
|
* 10.0.14393.576
|
||||||
|
* 10.0.14393.6451
|
||||||
|
* 10.0.14393.7426
|
||||||
|
* 10.0.15063.251
|
||||||
|
* 10.0.15063.1563
|
||||||
|
* 10.0.15063.2500
|
||||||
|
* 10.0.15063.2679
|
||||||
|
* 10.0.16299.1
|
||||||
|
* 10.0.16299.15
|
||||||
|
* 10.0.17134.1
|
||||||
|
* 10.0.17134.48
|
||||||
|
* 10.0.17134.2145
|
||||||
|
* 10.0.17134.2145
|
||||||
|
* 10.0.17763.1
|
||||||
|
* 10.0.17763.2931
|
||||||
|
* 10.0.17763.6040
|
||||||
|
Nb fields: 5
|
||||||
|
10.0.19039.1 -> 10.0.26100.2454
|
||||||
|
* 10.0.19039.1
|
||||||
|
* 10.0.19041.84
|
||||||
|
* 10.0.19041.4894
|
||||||
|
* 10.0.22000.65
|
||||||
|
* 10.0.22621.2792
|
||||||
|
* 10.0.22621.3958
|
||||||
|
* 10.0.22621.4111
|
||||||
|
* 10.0.22621.4541
|
||||||
|
* 10.0.26100.2454
|
||||||
|
* 10.0.26100.2454
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Seen on 6.2.9200.22376 (win8_ldr_escrow.180222-0941) */
|
||||||
|
/* also seen on previous version : XP / Win7 / Server 2012 */
|
||||||
|
|
||||||
|
typedef struct LOCALTHIS32_NT_62 {
|
||||||
|
ULONG dwFlags;
|
||||||
|
ULONG dwClientThread;
|
||||||
|
};
|
||||||
|
|
||||||
|
// NO LOCALTHAT for these previous version as far as I now
|
||||||
|
|
||||||
|
/* Seen on 6.3.9600.17031 (winblue_gdr.140221-1952) */
|
||||||
|
|
||||||
|
typedef struct __MIDL_XmitDefs_0001_NT_63 {
|
||||||
|
ULONG size;
|
||||||
|
ULONG reserved;
|
||||||
|
UINT64 *pAstaOxids;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct LOCALTHIS32_NT_63 {
|
||||||
|
ULONG dwFlags;
|
||||||
|
ULONG dwClientThread;
|
||||||
|
ULONG reserved;
|
||||||
|
PVOID32 pTouchedAstaArray;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct LOCALTHAT32_NT_63 {
|
||||||
|
UINT64 marshalingSetAcknowledgmentOxid;
|
||||||
|
UINT64 marshalingSetId;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* NT_1607 : combase 10.0.14393.576 from a WS2016 ISO*/
|
||||||
|
|
||||||
|
typedef struct __MIDL_XmitDefs_0002_NT_1607 {
|
||||||
|
ULONG size;
|
||||||
|
ULONG reserved;
|
||||||
|
PVOID32 pAstaOxids;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct __MIDL_XmitDefs_0001_NT_1607 {
|
||||||
|
_GUID asyncOperationId;
|
||||||
|
UINT64 oxidClientProcessNA;
|
||||||
|
_GUID originalClientLogicalThreadId;
|
||||||
|
UINT64 uClientCausalityTraceId;
|
||||||
|
} MIDL_XmitDefs_0001_NT_1607;
|
||||||
|
|
||||||
|
typedef struct _LOCALTHIS32_NT_1607 {
|
||||||
|
ULONG dwFlags;
|
||||||
|
ULONG dwClientThread;
|
||||||
|
MIDL_XmitDefs_0001_NT_1607 asyncRequestBlock;
|
||||||
|
ULONG reserved;
|
||||||
|
PVOID32 pTouchedAstaArray;
|
||||||
|
} LOCALTHIS32_NT_1607;
|
||||||
|
|
||||||
|
typedef struct __MIDL_XmitDefs_0007 {
|
||||||
|
INT pointOfFailure;
|
||||||
|
HRESULT hrFailure;
|
||||||
|
ULONG sizeOfMarshaledErrorInfo;
|
||||||
|
ULONG reserved;
|
||||||
|
BYTE *pMarshaledErrorInfo;
|
||||||
|
} MIDL_XmitDefs_0007;
|
||||||
|
|
||||||
|
typedef struct __MIDL_XmitDefs_0005 {
|
||||||
|
ULONG sizeOfMarshaledResults;
|
||||||
|
ULONG reserved;
|
||||||
|
BYTE *pMarshaledResults;
|
||||||
|
} MIDL_XmitDefs_0005;
|
||||||
|
|
||||||
|
typedef struct __MIDL_XmitDefs_0008 {
|
||||||
|
INT outcome;
|
||||||
|
MIDL_XmitDefs_0005 successDetails;
|
||||||
|
MIDL_XmitDefs_0007 failureDetails;
|
||||||
|
} MIDL_XmitDefs_0008;
|
||||||
|
|
||||||
|
typedef struct __MIDL_XmitDefs_0010 {
|
||||||
|
ULONG asyncStatus;
|
||||||
|
ULONG reserved1;
|
||||||
|
UINT64 uServerCausalityTraceId;
|
||||||
|
ULONG reserved2;
|
||||||
|
PVOID32 *pOutcomeDetails; //__MIDL_XmitDefs_0008
|
||||||
|
} MIDL_XmitDefs_0010;
|
||||||
|
|
||||||
|
typedef struct LOCALTHAT32_NT_1607 {
|
||||||
|
UINT64 marshalingSetAcknowledgmentOxid;
|
||||||
|
UINT64 marshalingSetId;
|
||||||
|
ULONG reserved;
|
||||||
|
PVOID32 pAsyncResponseBlock;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ! NT_1607: combase 10.0.14393.576 */
|
||||||
|
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
/* Seen only in 10.0.18362 versions of combase */
|
||||||
|
|
||||||
|
typedef struct _LOCALTHAT32_10_1903 {
|
||||||
|
UINT64 marshalingSetId;
|
||||||
|
PVOID32 pAsyncResponseBlock;
|
||||||
|
PVOID32 containerPassthroughData;
|
||||||
|
} LOCALTHAT32_10_1903;
|
||||||
|
|
||||||
|
/* NT 10.22 ? seen on 10.0.22621.1 */
|
||||||
|
|
||||||
|
typedef struct _LOCALTHIS32 {
|
||||||
|
DWORD dwFlags;
|
||||||
|
DWORD dwClientThread;
|
||||||
|
GUID passthroughTraceActivity;
|
||||||
|
GUID callTraceActivity;
|
||||||
|
MIDL_XmitDefs_0001 asyncRequestBlock;
|
||||||
|
DWORD reserved;
|
||||||
|
PVOID32 pTouchedAstaArray; // Ptr32 __MIDL_XmitDefs_0002
|
||||||
|
} LOCALTHIS32;
|
||||||
|
|
||||||
|
typedef struct _LOCALTHAT32 {
|
||||||
|
UINT64 marshalingSetId;
|
||||||
|
ULONG reserved;
|
||||||
|
PVOID32 pAsyncResponseBlock;
|
||||||
|
PVOID32 containerErrorInformation;
|
||||||
|
PVOID32 containerPassthroughData;
|
||||||
|
} LOCALTHAT32;
|
||||||
@@ -716,3 +716,11 @@ typedef struct _STRUCT_PLAINTEXTKEYBLOB {
|
|||||||
DWORD dwKeySize;
|
DWORD dwKeySize;
|
||||||
BYTE rgbKeyData[0];
|
BYTE rgbKeyData[0];
|
||||||
} STRUCT_PLAINTEXTKEYBLOB, *PSTRUCT_PLAINTEXTKEYBLOB;
|
} STRUCT_PLAINTEXTKEYBLOB, *PSTRUCT_PLAINTEXTKEYBLOB;
|
||||||
|
|
||||||
|
typedef struct _CERT_REQUEST_INFO {
|
||||||
|
DWORD dwVersion;
|
||||||
|
CERT_NAME_BLOB Subject;
|
||||||
|
CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo;
|
||||||
|
DWORD cAttribute;
|
||||||
|
PCRYPT_ATTRIBUTE rgAttribute;
|
||||||
|
} CERT_REQUEST_INFO, *PCERT_REQUEST_INFO;
|
||||||
@@ -69,6 +69,35 @@ typedef enum _FILE_INFORMATION_CLASS {
|
|||||||
FileMaximumInformation
|
FileMaximumInformation
|
||||||
} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
|
} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
|
||||||
|
|
||||||
|
typedef enum _FILE_INFO_BY_HANDLE_CLASS {
|
||||||
|
FileBasicInfo,
|
||||||
|
FileStandardInfo,
|
||||||
|
FileNameInfo,
|
||||||
|
FileRenameInfo,
|
||||||
|
FileDispositionInfo,
|
||||||
|
FileAllocationInfo,
|
||||||
|
FileEndOfFileInfo,
|
||||||
|
FileStreamInfo,
|
||||||
|
FileCompressionInfo,
|
||||||
|
FileAttributeTagInfo,
|
||||||
|
FileIdBothDirectoryInfo,
|
||||||
|
FileIdBothDirectoryRestartInfo,
|
||||||
|
FileIoPriorityHintInfo,
|
||||||
|
FileRemoteProtocolInfo,
|
||||||
|
FileFullDirectoryInfo,
|
||||||
|
FileFullDirectoryRestartInfo,
|
||||||
|
FileStorageInfo,
|
||||||
|
FileAlignmentInfo,
|
||||||
|
FileIdInfo,
|
||||||
|
FileIdExtdDirectoryInfo,
|
||||||
|
FileIdExtdDirectoryRestartInfo,
|
||||||
|
FileDispositionInfoEx,
|
||||||
|
FileRenameInfoEx,
|
||||||
|
FileCaseSensitiveInfo,
|
||||||
|
FileNormalizedNameInfo,
|
||||||
|
MaximumFileInfoByHandleClass
|
||||||
|
} FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
|
||||||
|
|
||||||
typedef enum _IO_PRIORITY_HINT {
|
typedef enum _IO_PRIORITY_HINT {
|
||||||
IoPriorityVeryLow = 0,
|
IoPriorityVeryLow = 0,
|
||||||
IoPriorityLow = 1,
|
IoPriorityLow = 1,
|
||||||
@@ -193,6 +222,18 @@ typedef struct _FILE_GET_EA_INFORMATION
|
|||||||
CHAR EaName[1];
|
CHAR EaName[1];
|
||||||
} FILE_GET_EA_INFORMATION, *PFILE_GET_EA_INFORMATION;
|
} FILE_GET_EA_INFORMATION, *PFILE_GET_EA_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _BY_HANDLE_FILE_INFORMATION {
|
||||||
|
DWORD dwFileAttributes;
|
||||||
|
FILETIME ftCreationTime;
|
||||||
|
FILETIME ftLastAccessTime;
|
||||||
|
FILETIME ftLastWriteTime;
|
||||||
|
DWORD dwVolumeSerialNumber;
|
||||||
|
DWORD nFileSizeHigh;
|
||||||
|
DWORD nFileSizeLow;
|
||||||
|
DWORD nNumberOfLinks;
|
||||||
|
DWORD nFileIndexHigh;
|
||||||
|
DWORD nFileIndexLow;
|
||||||
|
} BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
|
||||||
|
|
||||||
typedef struct tagVS_FIXEDFILEINFO {
|
typedef struct tagVS_FIXEDFILEINFO {
|
||||||
DWORD dwSignature;
|
DWORD dwSignature;
|
||||||
|
|||||||
@@ -5,4 +5,4 @@ typedef struct _GUID {
|
|||||||
USHORT Data2;
|
USHORT Data2;
|
||||||
USHORT Data3;
|
USHORT Data3;
|
||||||
BYTE Data4[ 8 ];
|
BYTE Data4[ 8 ];
|
||||||
} GUID, IID, CLSID, *REFIID, *REFCLSID, *LPGUID, *REFGUID, *LPCLSID, *LPCGUID;
|
} GUID, IID, CLSID, *REFIID, *REFCLSID, *LPGUID, *REFGUID, *LPCLSID, *LPCGUID, IPID, CID, *REFIPID;
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
|
||||||
|
ProcThreadAttributeParentProcess = 0,
|
||||||
|
ProcThreadAttributeHandleList = 2,
|
||||||
|
ProcThreadAttributeGroupAffinity = 3,
|
||||||
|
ProcThreadAttributePreferredNode = 4,
|
||||||
|
ProcThreadAttributeIdealProcessor = 5,
|
||||||
|
ProcThreadAttributeUmsThread = 6,
|
||||||
|
ProcThreadAttributeMitigationPolicy = 7,
|
||||||
|
ProcThreadAttributeSecurityCapabilities = 9,
|
||||||
|
ProcThreadAttributeProtectionLevel = 11,
|
||||||
|
ProcThreadAttributeJobList = 13,
|
||||||
|
ProcThreadAttributeChildProcessPolicy = 14,
|
||||||
|
ProcThreadAttributeAllApplicationPackagesPolicy = 15,
|
||||||
|
ProcThreadAttributeWin32kFilter = 16,
|
||||||
|
ProcThreadAttributeSafeOpenPromptOriginClaim = 17,
|
||||||
|
ProcThreadAttributeDesktopAppPolicy = 18,
|
||||||
|
ProcThreadAttributePseudoConsole = 22,
|
||||||
|
ProcThreadAttributeMitigationAuditPolicy = 24,
|
||||||
|
ProcThreadAttributeMachineType = 25,
|
||||||
|
ProcThreadAttributeComponentFilter = 26,
|
||||||
|
ProcThreadAttributeEnableOptionalXStateFeatures = 27,
|
||||||
|
ProcThreadAttributeTrustedApp = 29,
|
||||||
|
ProcThreadAttributeSveVectorLength = 30,
|
||||||
|
} PROC_THREAD_ATTRIBUTE_NUM;
|
||||||
@@ -0,0 +1,124 @@
|
|||||||
|
typedef enum _MEMORY_INFORMATION_CLASS {
|
||||||
|
MemoryBasicInformation,
|
||||||
|
MemoryWorkingSetList,
|
||||||
|
MemorySectionName,
|
||||||
|
MemoryBasicVlmInformation,
|
||||||
|
MemoryWorkingSetListEx
|
||||||
|
} MEMORY_INFORMATION_CLASS;
|
||||||
|
|
||||||
|
typedef enum _THREAD_INFORMATION_CLASS {
|
||||||
|
ThreadBasicInformation,
|
||||||
|
ThreadTimes,
|
||||||
|
ThreadPriority,
|
||||||
|
ThreadBasePriority,
|
||||||
|
ThreadAffinityMask,
|
||||||
|
ThreadImpersonationToken,
|
||||||
|
ThreadDescriptorTableEntry,
|
||||||
|
ThreadEnableAlignmentFaultFixup,
|
||||||
|
ThreadEventPair,
|
||||||
|
ThreadQuerySetWin32StartAddress,
|
||||||
|
ThreadZeroTlsCell,
|
||||||
|
ThreadPerformanceCount,
|
||||||
|
ThreadAmILastThread,
|
||||||
|
ThreadIdealProcessor,
|
||||||
|
ThreadPriorityBoost,
|
||||||
|
ThreadSetTlsArrayAddress,
|
||||||
|
ThreadIsIoPending,
|
||||||
|
ThreadHideFromDebugger
|
||||||
|
} THREAD_INFORMATION_CLASS, *PTHREAD_INFORMATION_CLASS;
|
||||||
|
|
||||||
|
// For NtQueryInformationProcess
|
||||||
|
typedef enum _PROCESSINFOCLASS {
|
||||||
|
ProcessBasicInformation = 0,
|
||||||
|
ProcessQuotaLimits = 1,
|
||||||
|
ProcessIoCounters = 2,
|
||||||
|
ProcessVmCounters = 3,
|
||||||
|
ProcessTimes = 4,
|
||||||
|
ProcessBasePriority = 5,
|
||||||
|
ProcessRaisePriority = 6,
|
||||||
|
ProcessDebugPort = 7,
|
||||||
|
ProcessExceptionPort = 8,
|
||||||
|
ProcessAccessToken = 9,
|
||||||
|
ProcessLdtInformation = 10,
|
||||||
|
ProcessLdtSize = 11,
|
||||||
|
ProcessDefaultHardErrorMode = 12,
|
||||||
|
ProcessIoPortHandlers = 13, // Note: this is kernel mode only
|
||||||
|
ProcessPooledUsageAndLimits = 14,
|
||||||
|
ProcessWorkingSetWatch = 15,
|
||||||
|
ProcessUserModeIOPL = 16,
|
||||||
|
ProcessEnableAlignmentFaultFixup = 17,
|
||||||
|
ProcessPriorityClass = 18,
|
||||||
|
ProcessWx86Information = 19,
|
||||||
|
ProcessHandleCount = 20,
|
||||||
|
ProcessAffinityMask = 21,
|
||||||
|
ProcessPriorityBoost = 22,
|
||||||
|
ProcessDeviceMap = 23,
|
||||||
|
ProcessSessionInformation = 24,
|
||||||
|
ProcessForegroundInformation = 25,
|
||||||
|
ProcessWow64Information = 26,
|
||||||
|
ProcessImageFileName = 27,
|
||||||
|
ProcessLUIDDeviceMapsEnabled = 28,
|
||||||
|
ProcessBreakOnTermination = 29,
|
||||||
|
ProcessDebugObjectHandle = 30,
|
||||||
|
ProcessDebugFlags = 31,
|
||||||
|
ProcessHandleTracing = 32,
|
||||||
|
ProcessIoPriority = 33,
|
||||||
|
ProcessExecuteFlags = 34,
|
||||||
|
ProcessTlsInformation = 35,
|
||||||
|
ProcessCookie = 36,
|
||||||
|
ProcessImageInformation = 37,
|
||||||
|
ProcessCycleTime = 38,
|
||||||
|
ProcessPagePriority = 39,
|
||||||
|
ProcessInstrumentationCallback = 40,
|
||||||
|
ProcessThreadStackAllocation = 41,
|
||||||
|
ProcessWorkingSetWatchEx = 42,
|
||||||
|
ProcessImageFileNameWin32 = 43,
|
||||||
|
ProcessImageFileMapping = 44,
|
||||||
|
ProcessAffinityUpdateMode = 45,
|
||||||
|
ProcessMemoryAllocationMode = 46,
|
||||||
|
ProcessGroupInformation = 47,
|
||||||
|
ProcessTokenVirtualizationEnabled = 48,
|
||||||
|
ProcessOwnerInformation = 49,
|
||||||
|
ProcessWindowInformation = 50,
|
||||||
|
ProcessHandleInformation = 51,
|
||||||
|
ProcessMitigationPolicy = 52,
|
||||||
|
ProcessDynamicFunctionTableInformation = 53,
|
||||||
|
ProcessHandleCheckingMode = 54,
|
||||||
|
ProcessKeepAliveCount = 55,
|
||||||
|
ProcessRevokeFileHandles = 56,
|
||||||
|
ProcessWorkingSetControl = 57,
|
||||||
|
ProcessHandleTable = 58,
|
||||||
|
ProcessCheckStackExtentsMode = 59,
|
||||||
|
ProcessCommandLineInformation = 60,
|
||||||
|
ProcessProtectionInformation = 61,
|
||||||
|
ProcessMemoryExhaustion = 62,
|
||||||
|
ProcessFaultInformation = 63,
|
||||||
|
ProcessTelemetryIdInformation = 64,
|
||||||
|
ProcessCommitReleaseInformation = 65,
|
||||||
|
ProcessReserved1Information = 66,
|
||||||
|
ProcessReserved2Information = 67,
|
||||||
|
ProcessSubsystemProcess = 68,
|
||||||
|
ProcessInPrivate = 70,
|
||||||
|
ProcessRaiseUMExceptionOnInvalidHandleClose = 71,
|
||||||
|
ProcessSubsystemInformation = 75,
|
||||||
|
ProcessWin32kSyscallFilterInformation = 79,
|
||||||
|
ProcessEnergyTrackingState = 82,
|
||||||
|
MaxProcessInfoClass // MaxProcessInfoClass should always be the last enum
|
||||||
|
} PROCESSINFOCLASS;
|
||||||
|
|
||||||
|
// GetProcessInfo
|
||||||
|
typedef enum _PROCESS_INFORMATION_CLASS {
|
||||||
|
ProcessMemoryPriority,
|
||||||
|
ProcessMemoryExhaustionInfo,
|
||||||
|
ProcessAppMemoryInfo,
|
||||||
|
ProcessInPrivateInfo,
|
||||||
|
ProcessPowerThrottling,
|
||||||
|
ProcessReservedValue1,
|
||||||
|
ProcessTelemetryCoverageInfo,
|
||||||
|
ProcessProtectionLevelInfo,
|
||||||
|
ProcessLeapSecondInfo,
|
||||||
|
ProcessMachineTypeInfo, // Map to 0xe6(230) for the syscall NtQueryInformationProcess
|
||||||
|
ProcessOverrideSubsequentPrefetchParameter,
|
||||||
|
ProcessMaxOverridePrefetchParameter,
|
||||||
|
ProcessInformationClassMax
|
||||||
|
} PROCESS_INFORMATION_CLASS;
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
typedef enum _MACHINE_ATTRIBUTES {
|
||||||
|
UserEnabled = 0x00000001,
|
||||||
|
KernelEnabled = 0x00000002,
|
||||||
|
Wow64Container = 0x00000004
|
||||||
|
} MACHINE_ATTRIBUTES;
|
||||||
|
|
||||||
|
typedef struct _PROCESS_MACHINE_INFORMATION {
|
||||||
|
USHORT ProcessMachine;
|
||||||
|
USHORT Res0;
|
||||||
|
MACHINE_ATTRIBUTES MachineAttributes;
|
||||||
|
} PROCESS_MACHINE_INFORMATION;
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
typedef enum MEM_EXTENDED_PARAMETER_TYPE {
|
||||||
|
MemExtendedParameterInvalidType = 0,
|
||||||
|
MemExtendedParameterAddressRequirements = 1,
|
||||||
|
MemExtendedParameterNumaNode = 2,
|
||||||
|
MemExtendedParameterPartitionHandle = 3,
|
||||||
|
MemExtendedParameterUserPhysicalHandle = 4,
|
||||||
|
MemExtendedParameterAttributeFlags = 5,
|
||||||
|
MemExtendedParameterImageMachine = 6,
|
||||||
|
MemExtendedParameterMax
|
||||||
|
} *PMEM_EXTENDED_PARAMETER_TYPE;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _MEM_ADDRESS_REQUIREMENTS {
|
||||||
|
PVOID LowestStartingAddress;
|
||||||
|
PVOID HighestEndingAddress;
|
||||||
|
SIZE_T Alignment;
|
||||||
|
} MEM_ADDRESS_REQUIREMENTS, *PMEM_ADDRESS_REQUIREMENTS;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct MEM_EXTENDED_PARAMETER {
|
||||||
|
struct {
|
||||||
|
ULONG64 Type : 8; // MEM_EXTENDED_PARAMETER_TYPE_BITS -> define not handled in parser here
|
||||||
|
ULONG64 Reserved : 56; // 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS -> define not handled in parser here
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
union {
|
||||||
|
ULONG64 ULong64;
|
||||||
|
PVOID Pointer;
|
||||||
|
SIZE_T Size;
|
||||||
|
HANDLE Handle;
|
||||||
|
ULONG ULong;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
} MEM_EXTENDED_PARAMETER, *PMEM_EXTENDED_PARAMETER;
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
/* Structures that do not depends on anything other that basic type
|
||||||
|
Simplify structure dependancy file graph
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct _LIST_ENTRY {
|
||||||
|
struct _LIST_ENTRY *Flink;
|
||||||
|
struct _LIST_ENTRY *Blink;
|
||||||
|
} LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY;
|
||||||
|
|
||||||
|
typedef struct _LSA_UNICODE_STRING {
|
||||||
|
USHORT Length;
|
||||||
|
USHORT MaximumLength;
|
||||||
|
PVOID Buffer; // PVOID to prevent ctypes to automatically read the content of the buffer till a \0
|
||||||
|
} LSA_UNICODE_STRING, *PLSA_UNICODE_STRING, UNICODE_STRING, *PUNICODE_STRING;
|
||||||
|
|
||||||
|
typedef struct _CLIENT_ID{
|
||||||
|
HANDLE UniqueProcess;
|
||||||
|
HANDLE UniqueThread;
|
||||||
|
} CLIENT_ID, *PCLIENT_ID;
|
||||||
|
|
||||||
|
typedef struct _CLIENT_ID64{
|
||||||
|
ULONG64 UniqueProcess;
|
||||||
|
ULONG64 UniqueThread;
|
||||||
|
} CLIENT_ID64, *PCLIENT_ID64;
|
||||||
|
|
||||||
|
typedef struct _CLIENT_ID32{
|
||||||
|
ULONG UniqueProcess;
|
||||||
|
ULONG UniqueThread;
|
||||||
|
} CLIENT_ID32, *PCLIENT_ID32;
|
||||||
@@ -130,7 +130,7 @@ typedef struct _IMAGEHLP_MODULEW64 {
|
|||||||
WCHAR LoadedImageName[256];
|
WCHAR LoadedImageName[256];
|
||||||
WCHAR LoadedPdbName[256];
|
WCHAR LoadedPdbName[256];
|
||||||
DWORD CVSig;
|
DWORD CVSig;
|
||||||
WCHAR *CVData[MAX_PATH * 3];
|
WCHAR CVData[MAX_PATH * 3]; // Typo in the documentation which says WCHAR *CVData[MAX_PATH * 3];
|
||||||
DWORD PdbSig;
|
DWORD PdbSig;
|
||||||
GUID PdbSig70;
|
GUID PdbSig70;
|
||||||
DWORD PdbAge;
|
DWORD PdbAge;
|
||||||
|
|||||||
@@ -67,3 +67,22 @@ typedef enum _COMPUTER_NAME_FORMAT {
|
|||||||
ComputerNamePhysicalDnsFullyQualified,
|
ComputerNamePhysicalDnsFullyQualified,
|
||||||
ComputerNameMax
|
ComputerNameMax
|
||||||
} COMPUTER_NAME_FORMAT;
|
} COMPUTER_NAME_FORMAT;
|
||||||
|
|
||||||
|
typedef struct _SYSTEM_INFO {
|
||||||
|
union {
|
||||||
|
DWORD dwOemId;
|
||||||
|
struct {
|
||||||
|
WORD wProcessorArchitecture;
|
||||||
|
WORD wReserved;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
DWORD dwPageSize;
|
||||||
|
LPVOID lpMinimumApplicationAddress;
|
||||||
|
LPVOID lpMaximumApplicationAddress;
|
||||||
|
DWORD_PTR dwActiveProcessorMask;
|
||||||
|
DWORD dwNumberOfProcessors;
|
||||||
|
DWORD dwProcessorType;
|
||||||
|
DWORD dwAllocationGranularity;
|
||||||
|
WORD wProcessorLevel;
|
||||||
|
WORD wProcessorRevision;
|
||||||
|
} SYSTEM_INFO, *LPSYSTEM_INFO;
|
||||||
@@ -0,0 +1,237 @@
|
|||||||
|
/* This is the part of RTL_USER_PROCESS_PARAMETERS that works from XP to Windows 10
|
||||||
|
http://terminus.rewolf.pl/terminus/structures/ntdll/_RTL_USER_PROCESS_PARAMETERS_x86.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct _CURDIR
|
||||||
|
{
|
||||||
|
UNICODE_STRING DosPath;
|
||||||
|
PVOID Handle;
|
||||||
|
} CURDIR, *PCURDIR;
|
||||||
|
|
||||||
|
typedef struct _RTL_DRIVE_LETTER_CURDIR
|
||||||
|
{
|
||||||
|
WORD Flags;
|
||||||
|
WORD Length;
|
||||||
|
ULONG TimeStamp;
|
||||||
|
UNICODE_STRING DosPath;
|
||||||
|
} RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;
|
||||||
|
|
||||||
|
typedef struct _RTL_USER_PROCESS_PARAMETERS
|
||||||
|
{
|
||||||
|
ULONG MaximumLength;
|
||||||
|
ULONG Length;
|
||||||
|
ULONG Flags;
|
||||||
|
ULONG DebugFlags;
|
||||||
|
PVOID ConsoleHandle;
|
||||||
|
ULONG ConsoleFlags;
|
||||||
|
PVOID StandardInput;
|
||||||
|
PVOID StandardOutput;
|
||||||
|
PVOID StandardError;
|
||||||
|
CURDIR CurrentDirectory;
|
||||||
|
UNICODE_STRING DllPath;
|
||||||
|
UNICODE_STRING ImagePathName;
|
||||||
|
UNICODE_STRING CommandLine;
|
||||||
|
PVOID Environment;
|
||||||
|
ULONG StartingX;
|
||||||
|
ULONG StartingY;
|
||||||
|
ULONG CountX;
|
||||||
|
ULONG CountY;
|
||||||
|
ULONG CountCharsX;
|
||||||
|
ULONG CountCharsY;
|
||||||
|
ULONG FillAttribute;
|
||||||
|
ULONG WindowFlags;
|
||||||
|
ULONG ShowWindowFlags;
|
||||||
|
UNICODE_STRING WindowTitle;
|
||||||
|
UNICODE_STRING DesktopInfo;
|
||||||
|
UNICODE_STRING ShellInfo;
|
||||||
|
UNICODE_STRING RuntimeData;
|
||||||
|
RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32];
|
||||||
|
} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;
|
||||||
|
|
||||||
|
// PEB: Thank to
|
||||||
|
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa813706(v=vs.85).aspx
|
||||||
|
// http://blog.rewolf.pl/blog/?p=573
|
||||||
|
// http://terminus.rewolf.pl/terminus/structures/ntdll/_PEB_combined.html
|
||||||
|
|
||||||
|
typedef struct _LDR_DATA_TABLE_ENTRY {
|
||||||
|
PVOID Reserved1[2];
|
||||||
|
LIST_ENTRY InMemoryOrderLinks;
|
||||||
|
PVOID Reserved2[2];
|
||||||
|
PVOID DllBase;
|
||||||
|
PVOID EntryPoint;
|
||||||
|
PVOID SizeOfImage;
|
||||||
|
UNICODE_STRING FullDllName;
|
||||||
|
UNICODE_STRING BaseDllName;
|
||||||
|
PVOID Reserved5[3];
|
||||||
|
ULONG CheckSum;
|
||||||
|
ULONG TimeDateStamp;
|
||||||
|
} LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
|
||||||
|
|
||||||
|
/* Definition of WinXP : Still same base in win11 with some extra field */
|
||||||
|
|
||||||
|
typedef struct _PEB_LDR_DATA {
|
||||||
|
ULONG Length;
|
||||||
|
BYTE Initialized;
|
||||||
|
PVOID SsHandle;
|
||||||
|
_LIST_ENTRY InLoadOrderModuleList;
|
||||||
|
_LIST_ENTRY InMemoryOrderModuleList;
|
||||||
|
_LIST_ENTRY InInitializationOrderModuleList;
|
||||||
|
PVOID EntryInProgress;
|
||||||
|
// BYTE ShutdownInProgress; // New field
|
||||||
|
// PVOID ShutdownThreadId; // New field
|
||||||
|
}PEB_LDR_DATA, *PPEB_LDR_DATA;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef union _ANON_PEB_SYSTEM_DEPENDENT_02 {
|
||||||
|
PVOID FastPebLockRoutine;
|
||||||
|
PVOID SparePtr1;
|
||||||
|
PVOID AtlThunkSListPtr;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef union _ANON_PEB_SYSTEM_DEPENDENT_03 {
|
||||||
|
PVOID FastPebUnlockRoutine;
|
||||||
|
PVOID SparePtr2;
|
||||||
|
PVOID IFEOKey;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef union _ANON_PEB_SYSTEM_DEPENDENT_06 {
|
||||||
|
PVOID FreeList;
|
||||||
|
PVOID SparePebPtr0;
|
||||||
|
PVOID ApiSetMap;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef union _ANON_PEB_SYSTEM_DEPENDENT_07 {
|
||||||
|
PVOID ReadOnlySharedMemoryHeap;
|
||||||
|
PVOID HotpatchInformation;
|
||||||
|
PVOID SparePvoid0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef union _ANON_PEB_UNION_1 {
|
||||||
|
PVOID KernelCallbackTable;
|
||||||
|
PVOID UserSharedInfoPtr;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef union _ANON_PEB_UNION_2 {
|
||||||
|
PVOID ImageProcessAffinityMask;
|
||||||
|
PVOID ActiveProcessAffinityMask;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _PEB {
|
||||||
|
BYTE Reserved1[2];
|
||||||
|
BYTE BeingDebugged;
|
||||||
|
BYTE Reserved2[1];
|
||||||
|
PVOID Mutant;
|
||||||
|
PVOID ImageBaseAddress;
|
||||||
|
PPEB_LDR_DATA Ldr;
|
||||||
|
PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
|
||||||
|
PVOID SubSystemData;
|
||||||
|
PVOID ProcessHeap;
|
||||||
|
PVOID FastPebLock;
|
||||||
|
_ANON_PEB_SYSTEM_DEPENDENT_02 _SYSTEM_DEPENDENT_02;
|
||||||
|
_ANON_PEB_SYSTEM_DEPENDENT_03 _SYSTEM_DEPENDENT_03;
|
||||||
|
PVOID _SYSTEM_DEPENDENT_04;
|
||||||
|
union {
|
||||||
|
PVOID KernelCallbackTable;
|
||||||
|
PVOID UserSharedInfoPtr;
|
||||||
|
};
|
||||||
|
DWORD SystemReserved;
|
||||||
|
DWORD _SYSTEM_DEPENDENT_05;
|
||||||
|
_ANON_PEB_SYSTEM_DEPENDENT_06 _SYSTEM_DEPENDENT_06;
|
||||||
|
PVOID TlsExpansionCounter;
|
||||||
|
PVOID TlsBitmap;
|
||||||
|
DWORD TlsBitmapBits[2];
|
||||||
|
PVOID ReadOnlySharedMemoryBase;
|
||||||
|
_ANON_PEB_SYSTEM_DEPENDENT_07 _SYSTEM_DEPENDENT_07;
|
||||||
|
PVOID ReadOnlyStaticServerData;
|
||||||
|
PVOID AnsiCodePageData;
|
||||||
|
PVOID OemCodePageData;
|
||||||
|
PVOID UnicodeCaseTableData;
|
||||||
|
DWORD NumberOfProcessors;
|
||||||
|
DWORD NtGlobalFlag;
|
||||||
|
LARGE_INTEGER CriticalSectionTimeout;
|
||||||
|
PVOID HeapSegmentReserve;
|
||||||
|
PVOID HeapSegmentCommit;
|
||||||
|
PVOID HeapDeCommitTotalFreeThreshold;
|
||||||
|
PVOID HeapDeCommitFreeBlockThreshold;
|
||||||
|
DWORD NumberOfHeaps;
|
||||||
|
DWORD MaximumNumberOfHeaps;
|
||||||
|
PVOID ProcessHeaps;
|
||||||
|
PVOID GdiSharedHandleTable;
|
||||||
|
PVOID ProcessStarterHelper;
|
||||||
|
PVOID GdiDCAttributeList;
|
||||||
|
PVOID LoaderLock;
|
||||||
|
DWORD OSMajorVersion;
|
||||||
|
DWORD OSMinorVersion;
|
||||||
|
WORD OSBuildNumber;
|
||||||
|
WORD OSCSDVersion;
|
||||||
|
DWORD OSPlatformId;
|
||||||
|
DWORD ImageSubsystem;
|
||||||
|
DWORD ImageSubsystemMajorVersion;
|
||||||
|
PVOID ImageSubsystemMinorVersion;
|
||||||
|
union {
|
||||||
|
PVOID ImageProcessAffinityMask;
|
||||||
|
PVOID ActiveProcessAffinityMask;
|
||||||
|
};
|
||||||
|
PVOID GdiHandleBuffer[26];
|
||||||
|
BYTE GdiHandleBuffer2[32];
|
||||||
|
PVOID PostProcessInitRoutine;
|
||||||
|
PVOID TlsExpansionBitmap;
|
||||||
|
DWORD TlsExpansionBitmapBits[32];
|
||||||
|
PVOID SessionId;
|
||||||
|
ULARGE_INTEGER AppCompatFlags;
|
||||||
|
ULARGE_INTEGER AppCompatFlagsUser;
|
||||||
|
PVOID pShimData;
|
||||||
|
PVOID AppCompatInfo;
|
||||||
|
UNICODE_STRING CSDVersion;
|
||||||
|
PVOID ActivationContextData;
|
||||||
|
PVOID ProcessAssemblyStorageMap;
|
||||||
|
PVOID SystemDefaultActivationContextData;
|
||||||
|
PVOID SystemAssemblyStorageMap;
|
||||||
|
PVOID MinimumStackCommit;
|
||||||
|
} PEB, *PPEB;
|
||||||
|
|
||||||
|
|
||||||
|
/* Partial TEB description
|
||||||
|
Based on:
|
||||||
|
- fields that did not move since XP
|
||||||
|
- https://learn.microsoft.com/en-us/windows/win32/api/winternl/ns-winternl-teb
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct _EXCEPTION_REGISTRATION_RECORD {
|
||||||
|
_EXCEPTION_REGISTRATION_RECORD *Next;
|
||||||
|
PVOID Handler;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _NT_TIB {
|
||||||
|
struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
|
||||||
|
PVOID StackBase;
|
||||||
|
PVOID StackLimit;
|
||||||
|
PVOID SubSystemTib;
|
||||||
|
union {
|
||||||
|
PVOID FiberData;
|
||||||
|
ULONG Version;
|
||||||
|
};
|
||||||
|
PVOID ArbitraryUserPointer;
|
||||||
|
struct _NT_TIB *Self;
|
||||||
|
} NT_TIB;
|
||||||
|
|
||||||
|
typedef struct _TEB {
|
||||||
|
_NT_TIB NtTib;
|
||||||
|
PVOID EnvironmentPointer;
|
||||||
|
_CLIENT_ID ClientId;
|
||||||
|
PVOID ActiveRpcHandle;
|
||||||
|
PVOID ThreadLocalStoragePointer;
|
||||||
|
_PEB *ProcessEnvironmentBlock;
|
||||||
|
ULONG LastErrorValue;
|
||||||
|
ULONG CountOfOwnedCriticalSections;
|
||||||
|
PVOID CsrClientThread;
|
||||||
|
PVOID Win32ThreadInfo;
|
||||||
|
ULONG User32Reserved[26];
|
||||||
|
ULONG UserReserved[5];
|
||||||
|
PVOID WOW32Reserved;
|
||||||
|
ULONG CurrentLocale;
|
||||||
|
ULONG FpSoftwareStatusRegister;
|
||||||
|
} TEB;
|
||||||
@@ -0,0 +1,347 @@
|
|||||||
|
typedef union _ARM64_NT_NEON128 {
|
||||||
|
struct {
|
||||||
|
ULONGLONG Low;
|
||||||
|
LONGLONG High;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
DOUBLE D[2];
|
||||||
|
FLOAT S[4];
|
||||||
|
WORD H[8];
|
||||||
|
BYTE B[16];
|
||||||
|
} ARM64_NT_NEON128, *PARM64_NT_NEON128;
|
||||||
|
|
||||||
|
typedef struct _ARM64_NT_CONTEXT {
|
||||||
|
|
||||||
|
//
|
||||||
|
// Control flags.
|
||||||
|
//
|
||||||
|
|
||||||
|
/* +0x000 */ DWORD ContextFlags;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Integer registers
|
||||||
|
//
|
||||||
|
|
||||||
|
/* +0x004 */ DWORD Cpsr; // NZVF + DAIF + CurrentEL + SPSel
|
||||||
|
/* +0x008 */ union {
|
||||||
|
struct {
|
||||||
|
DWORD64 X0;
|
||||||
|
DWORD64 X1;
|
||||||
|
DWORD64 X2;
|
||||||
|
DWORD64 X3;
|
||||||
|
DWORD64 X4;
|
||||||
|
DWORD64 X5;
|
||||||
|
DWORD64 X6;
|
||||||
|
DWORD64 X7;
|
||||||
|
DWORD64 X8;
|
||||||
|
DWORD64 X9;
|
||||||
|
DWORD64 X10;
|
||||||
|
DWORD64 X11;
|
||||||
|
DWORD64 X12;
|
||||||
|
DWORD64 X13;
|
||||||
|
DWORD64 X14;
|
||||||
|
DWORD64 X15;
|
||||||
|
DWORD64 X16;
|
||||||
|
DWORD64 X17;
|
||||||
|
DWORD64 X18;
|
||||||
|
DWORD64 X19;
|
||||||
|
DWORD64 X20;
|
||||||
|
DWORD64 X21;
|
||||||
|
DWORD64 X22;
|
||||||
|
DWORD64 X23;
|
||||||
|
DWORD64 X24;
|
||||||
|
DWORD64 X25;
|
||||||
|
DWORD64 X26;
|
||||||
|
DWORD64 X27;
|
||||||
|
DWORD64 X28;
|
||||||
|
/* +0x0f0 */ DWORD64 Fp;
|
||||||
|
/* +0x0f8 */ DWORD64 Lr;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
DWORD64 X[31];
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
/* +0x100 */ DWORD64 Sp;
|
||||||
|
/* +0x108 */ DWORD64 Pc;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Floating Point/NEON Registers
|
||||||
|
//
|
||||||
|
|
||||||
|
/* +0x110 */ ARM64_NT_NEON128 V[32];
|
||||||
|
/* +0x310 */ DWORD Fpcr;
|
||||||
|
/* +0x314 */ DWORD Fpsr;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Debug registers
|
||||||
|
//
|
||||||
|
|
||||||
|
/* +0x318 */ DWORD Bcr[ARM64_MAX_BREAKPOINTS];
|
||||||
|
/* +0x338 */ DWORD64 Bvr[ARM64_MAX_BREAKPOINTS];
|
||||||
|
/* +0x378 */ DWORD Wcr[ARM64_MAX_WATCHPOINTS];
|
||||||
|
/* +0x380 */ DWORD64 Wvr[ARM64_MAX_WATCHPOINTS];
|
||||||
|
/* +0x390 */
|
||||||
|
|
||||||
|
} ARM64_NT_CONTEXT, *PARM64_NT_CONTEXT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _FLOATING_SAVE_AREA {
|
||||||
|
DWORD ControlWord;
|
||||||
|
DWORD StatusWord;
|
||||||
|
DWORD TagWord;
|
||||||
|
DWORD ErrorOffset;
|
||||||
|
DWORD ErrorSelector;
|
||||||
|
DWORD DataOffset;
|
||||||
|
DWORD DataSelector;
|
||||||
|
BYTE RegisterArea[80];
|
||||||
|
DWORD Cr0NpxState;
|
||||||
|
} FLOATING_SAVE_AREA;
|
||||||
|
|
||||||
|
typedef struct _CONTEXT32 {
|
||||||
|
|
||||||
|
DWORD ContextFlags;
|
||||||
|
|
||||||
|
DWORD Dr0;
|
||||||
|
DWORD Dr1;
|
||||||
|
DWORD Dr2;
|
||||||
|
DWORD Dr3;
|
||||||
|
DWORD Dr6;
|
||||||
|
DWORD Dr7;
|
||||||
|
|
||||||
|
FLOATING_SAVE_AREA FloatSave;
|
||||||
|
|
||||||
|
DWORD SegGs;
|
||||||
|
DWORD SegFs;
|
||||||
|
DWORD SegEs;
|
||||||
|
DWORD SegDs;
|
||||||
|
|
||||||
|
DWORD Edi;
|
||||||
|
DWORD Esi;
|
||||||
|
DWORD Ebx;
|
||||||
|
DWORD Edx;
|
||||||
|
DWORD Ecx;
|
||||||
|
DWORD Eax;
|
||||||
|
|
||||||
|
DWORD Ebp;
|
||||||
|
DWORD Eip;
|
||||||
|
DWORD SegCs;
|
||||||
|
DWORD EFlags;
|
||||||
|
DWORD Esp;
|
||||||
|
DWORD SegSs;
|
||||||
|
|
||||||
|
BYTE ExtendedRegisters[512];
|
||||||
|
|
||||||
|
} CONTEXT32, *PCONTEXT32, *LPCONTEXT32;
|
||||||
|
|
||||||
|
typedef struct _WOW64_FLOATING_SAVE_AREA {
|
||||||
|
DWORD ControlWord;
|
||||||
|
DWORD StatusWord;
|
||||||
|
DWORD TagWord;
|
||||||
|
DWORD ErrorOffset;
|
||||||
|
DWORD ErrorSelector;
|
||||||
|
DWORD DataOffset;
|
||||||
|
DWORD DataSelector;
|
||||||
|
BYTE RegisterArea[WOW64_SIZE_OF_80387_REGISTERS];
|
||||||
|
DWORD Cr0NpxState;
|
||||||
|
} WOW64_FLOATING_SAVE_AREA;
|
||||||
|
|
||||||
|
typedef struct _WOW64_CONTEXT {
|
||||||
|
|
||||||
|
DWORD ContextFlags;
|
||||||
|
|
||||||
|
DWORD Dr0;
|
||||||
|
DWORD Dr1;
|
||||||
|
DWORD Dr2;
|
||||||
|
DWORD Dr3;
|
||||||
|
DWORD Dr6;
|
||||||
|
DWORD Dr7;
|
||||||
|
|
||||||
|
WOW64_FLOATING_SAVE_AREA FloatSave;
|
||||||
|
|
||||||
|
DWORD SegGs;
|
||||||
|
DWORD SegFs;
|
||||||
|
DWORD SegEs;
|
||||||
|
DWORD SegDs;
|
||||||
|
|
||||||
|
DWORD Edi;
|
||||||
|
DWORD Esi;
|
||||||
|
DWORD Ebx;
|
||||||
|
DWORD Edx;
|
||||||
|
DWORD Ecx;
|
||||||
|
DWORD Eax;
|
||||||
|
DWORD Ebp;
|
||||||
|
DWORD Eip;
|
||||||
|
DWORD SegCs;
|
||||||
|
DWORD EFlags;
|
||||||
|
DWORD Esp;
|
||||||
|
DWORD SegSs;
|
||||||
|
|
||||||
|
BYTE ExtendedRegisters[WOW64_MAXIMUM_SUPPORTED_EXTENSION];
|
||||||
|
|
||||||
|
} WOW64_CONTEXT, *PWOW64_CONTEXT;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _M128A {
|
||||||
|
ULONGLONG Low;
|
||||||
|
LONGLONG High;
|
||||||
|
} M128A, *PM128A;
|
||||||
|
|
||||||
|
typedef struct _XSAVE_FORMAT_64 {
|
||||||
|
WORD ControlWord;
|
||||||
|
WORD StatusWord;
|
||||||
|
BYTE TagWord;
|
||||||
|
BYTE Reserved1;
|
||||||
|
WORD ErrorOpcode;
|
||||||
|
DWORD ErrorOffset;
|
||||||
|
WORD ErrorSelector;
|
||||||
|
WORD Reserved2;
|
||||||
|
DWORD DataOffset;
|
||||||
|
WORD DataSelector;
|
||||||
|
WORD Reserved3;
|
||||||
|
DWORD MxCsr;
|
||||||
|
DWORD MxCsr_Mask;
|
||||||
|
M128A FloatRegisters[8];
|
||||||
|
M128A XmmRegisters[16];
|
||||||
|
BYTE Reserved4[96];
|
||||||
|
} XSAVE_FORMAT_64, *PXSAVE_FORMAT_64;
|
||||||
|
|
||||||
|
typedef struct _XSAVE_FORMAT_32 {
|
||||||
|
WORD ControlWord;
|
||||||
|
WORD StatusWord;
|
||||||
|
BYTE TagWord;
|
||||||
|
BYTE Reserved1;
|
||||||
|
WORD ErrorOpcode;
|
||||||
|
DWORD ErrorOffset;
|
||||||
|
WORD ErrorSelector;
|
||||||
|
WORD Reserved2;
|
||||||
|
DWORD DataOffset;
|
||||||
|
WORD DataSelector;
|
||||||
|
WORD Reserved3;
|
||||||
|
DWORD MxCsr;
|
||||||
|
DWORD MxCsr_Mask;
|
||||||
|
M128A FloatRegisters[8];
|
||||||
|
M128A XmmRegisters[8];
|
||||||
|
BYTE Reserved4[192];
|
||||||
|
DWORD StackControl[7];
|
||||||
|
DWORD Cr0NpxState;
|
||||||
|
} XSAVE_FORMAT_32, *PXSAVE_FORMAT_32;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _CONTEXT64 {
|
||||||
|
|
||||||
|
//
|
||||||
|
// Register parameter home addresses.
|
||||||
|
//
|
||||||
|
// N.B. These fields are for convience - they could be used to extend the
|
||||||
|
// context record in the future.
|
||||||
|
//
|
||||||
|
|
||||||
|
DWORD64 P1Home;
|
||||||
|
DWORD64 P2Home;
|
||||||
|
DWORD64 P3Home;
|
||||||
|
DWORD64 P4Home;
|
||||||
|
DWORD64 P5Home;
|
||||||
|
DWORD64 P6Home;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Control flags.
|
||||||
|
//
|
||||||
|
|
||||||
|
DWORD ContextFlags;
|
||||||
|
DWORD MxCsr;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Segment Registers and processor flags.
|
||||||
|
//
|
||||||
|
|
||||||
|
WORD SegCs;
|
||||||
|
WORD SegDs;
|
||||||
|
WORD SegEs;
|
||||||
|
WORD SegFs;
|
||||||
|
WORD SegGs;
|
||||||
|
WORD SegSs;
|
||||||
|
DWORD EFlags;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Debug registers
|
||||||
|
//
|
||||||
|
|
||||||
|
DWORD64 Dr0;
|
||||||
|
DWORD64 Dr1;
|
||||||
|
DWORD64 Dr2;
|
||||||
|
DWORD64 Dr3;
|
||||||
|
DWORD64 Dr6;
|
||||||
|
DWORD64 Dr7;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Integer registers.
|
||||||
|
//
|
||||||
|
|
||||||
|
DWORD64 Rax;
|
||||||
|
DWORD64 Rcx;
|
||||||
|
DWORD64 Rdx;
|
||||||
|
DWORD64 Rbx;
|
||||||
|
DWORD64 Rsp;
|
||||||
|
DWORD64 Rbp;
|
||||||
|
DWORD64 Rsi;
|
||||||
|
DWORD64 Rdi;
|
||||||
|
DWORD64 R8;
|
||||||
|
DWORD64 R9;
|
||||||
|
DWORD64 R10;
|
||||||
|
DWORD64 R11;
|
||||||
|
DWORD64 R12;
|
||||||
|
DWORD64 R13;
|
||||||
|
DWORD64 R14;
|
||||||
|
DWORD64 R15;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Program counter.
|
||||||
|
//
|
||||||
|
|
||||||
|
DWORD64 Rip;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Floating point state.
|
||||||
|
//
|
||||||
|
|
||||||
|
union {
|
||||||
|
XSAVE_FORMAT_64 FltSave;
|
||||||
|
struct {
|
||||||
|
M128A Header[2];
|
||||||
|
M128A Legacy[8];
|
||||||
|
M128A Xmm0;
|
||||||
|
M128A Xmm1;
|
||||||
|
M128A Xmm2;
|
||||||
|
M128A Xmm3;
|
||||||
|
M128A Xmm4;
|
||||||
|
M128A Xmm5;
|
||||||
|
M128A Xmm6;
|
||||||
|
M128A Xmm7;
|
||||||
|
M128A Xmm8;
|
||||||
|
M128A Xmm9;
|
||||||
|
M128A Xmm10;
|
||||||
|
M128A Xmm11;
|
||||||
|
M128A Xmm12;
|
||||||
|
M128A Xmm13;
|
||||||
|
M128A Xmm14;
|
||||||
|
M128A Xmm15;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Vector registers.
|
||||||
|
//
|
||||||
|
|
||||||
|
M128A VectorRegister[26];
|
||||||
|
DWORD64 VectorControl;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Special debug control registers.
|
||||||
|
//
|
||||||
|
|
||||||
|
DWORD64 DebugControl;
|
||||||
|
DWORD64 LastBranchToRip;
|
||||||
|
DWORD64 LastBranchFromRip;
|
||||||
|
DWORD64 LastExceptionToRip;
|
||||||
|
DWORD64 LastExceptionFromRip;
|
||||||
|
|
||||||
|
} CONTEXT64, *PCONTEXT64, *LPCONTEXT64;
|
||||||
@@ -1,188 +1,3 @@
|
|||||||
typedef struct _LIST_ENTRY {
|
|
||||||
struct _LIST_ENTRY *Flink;
|
|
||||||
struct _LIST_ENTRY *Blink;
|
|
||||||
} LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY;
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct _PEB_LDR_DATA {
|
|
||||||
BYTE Reserved1[8];
|
|
||||||
PVOID Reserved2[3];
|
|
||||||
LIST_ENTRY InMemoryOrderModuleList;
|
|
||||||
} PEB_LDR_DATA, *PPEB_LDR_DATA;
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct _LSA_UNICODE_STRING {
|
|
||||||
USHORT Length;
|
|
||||||
USHORT MaximumLength;
|
|
||||||
PVOID Buffer; // PVOID to prevent ctypes to automatically read the content of the buffer till a \0
|
|
||||||
} LSA_UNICODE_STRING, *PLSA_UNICODE_STRING, UNICODE_STRING, *PUNICODE_STRING;
|
|
||||||
|
|
||||||
typedef struct _CURDIR
|
|
||||||
{
|
|
||||||
UNICODE_STRING DosPath;
|
|
||||||
PVOID Handle;
|
|
||||||
} CURDIR, *PCURDIR;
|
|
||||||
|
|
||||||
typedef struct _RTL_DRIVE_LETTER_CURDIR
|
|
||||||
{
|
|
||||||
WORD Flags;
|
|
||||||
WORD Length;
|
|
||||||
ULONG TimeStamp;
|
|
||||||
UNICODE_STRING DosPath;
|
|
||||||
} RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;
|
|
||||||
|
|
||||||
/* This is the part of RTL_USER_PROCESS_PARAMETERS that works from XP to Windows 10
|
|
||||||
http://terminus.rewolf.pl/terminus/structures/ntdll/_RTL_USER_PROCESS_PARAMETERS_x86.html
|
|
||||||
*/
|
|
||||||
typedef struct _RTL_USER_PROCESS_PARAMETERS
|
|
||||||
{
|
|
||||||
ULONG MaximumLength;
|
|
||||||
ULONG Length;
|
|
||||||
ULONG Flags;
|
|
||||||
ULONG DebugFlags;
|
|
||||||
PVOID ConsoleHandle;
|
|
||||||
ULONG ConsoleFlags;
|
|
||||||
PVOID StandardInput;
|
|
||||||
PVOID StandardOutput;
|
|
||||||
PVOID StandardError;
|
|
||||||
CURDIR CurrentDirectory;
|
|
||||||
UNICODE_STRING DllPath;
|
|
||||||
UNICODE_STRING ImagePathName;
|
|
||||||
UNICODE_STRING CommandLine;
|
|
||||||
PVOID Environment;
|
|
||||||
ULONG StartingX;
|
|
||||||
ULONG StartingY;
|
|
||||||
ULONG CountX;
|
|
||||||
ULONG CountY;
|
|
||||||
ULONG CountCharsX;
|
|
||||||
ULONG CountCharsY;
|
|
||||||
ULONG FillAttribute;
|
|
||||||
ULONG WindowFlags;
|
|
||||||
ULONG ShowWindowFlags;
|
|
||||||
UNICODE_STRING WindowTitle;
|
|
||||||
UNICODE_STRING DesktopInfo;
|
|
||||||
UNICODE_STRING ShellInfo;
|
|
||||||
UNICODE_STRING RuntimeData;
|
|
||||||
RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32];
|
|
||||||
} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;
|
|
||||||
|
|
||||||
|
|
||||||
// Thank to:
|
|
||||||
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa813706(v=vs.85).aspx
|
|
||||||
// http://blog.rewolf.pl/blog/?p=573
|
|
||||||
// http://terminus.rewolf.pl/terminus/structures/ntdll/_PEB_combined.html
|
|
||||||
|
|
||||||
typedef union _ANON_PEB_SYSTEM_DEPENDENT_02 {
|
|
||||||
PVOID FastPebLockRoutine;
|
|
||||||
PVOID SparePtr1;
|
|
||||||
PVOID AtlThunkSListPtr;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef union _ANON_PEB_SYSTEM_DEPENDENT_03 {
|
|
||||||
PVOID FastPebUnlockRoutine;
|
|
||||||
PVOID SparePtr2;
|
|
||||||
PVOID IFEOKey;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
typedef union _ANON_PEB_SYSTEM_DEPENDENT_06 {
|
|
||||||
PVOID FreeList;
|
|
||||||
PVOID SparePebPtr0;
|
|
||||||
PVOID ApiSetMap;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef union _ANON_PEB_SYSTEM_DEPENDENT_07 {
|
|
||||||
PVOID ReadOnlySharedMemoryHeap;
|
|
||||||
PVOID HotpatchInformation;
|
|
||||||
PVOID SparePvoid0;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
typedef union _ANON_PEB_UNION_1 {
|
|
||||||
PVOID KernelCallbackTable;
|
|
||||||
PVOID UserSharedInfoPtr;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef union _ANON_PEB_UNION_2 {
|
|
||||||
PVOID ImageProcessAffinityMask;
|
|
||||||
PVOID ActiveProcessAffinityMask;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct _PEB {
|
|
||||||
BYTE Reserved1[2];
|
|
||||||
BYTE BeingDebugged;
|
|
||||||
BYTE Reserved2[1];
|
|
||||||
PVOID Mutant;
|
|
||||||
PVOID ImageBaseAddress;
|
|
||||||
PPEB_LDR_DATA Ldr;
|
|
||||||
PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
|
|
||||||
PVOID SubSystemData;
|
|
||||||
PVOID ProcessHeap;
|
|
||||||
PVOID FastPebLock;
|
|
||||||
_ANON_PEB_SYSTEM_DEPENDENT_02 _SYSTEM_DEPENDENT_02;
|
|
||||||
_ANON_PEB_SYSTEM_DEPENDENT_03 _SYSTEM_DEPENDENT_03;
|
|
||||||
PVOID _SYSTEM_DEPENDENT_04;
|
|
||||||
union {
|
|
||||||
PVOID KernelCallbackTable;
|
|
||||||
PVOID UserSharedInfoPtr;
|
|
||||||
};
|
|
||||||
DWORD SystemReserved;
|
|
||||||
DWORD _SYSTEM_DEPENDENT_05;
|
|
||||||
_ANON_PEB_SYSTEM_DEPENDENT_06 _SYSTEM_DEPENDENT_06;
|
|
||||||
PVOID TlsExpansionCounter;
|
|
||||||
PVOID TlsBitmap;
|
|
||||||
DWORD TlsBitmapBits[2];
|
|
||||||
PVOID ReadOnlySharedMemoryBase;
|
|
||||||
_ANON_PEB_SYSTEM_DEPENDENT_07 _SYSTEM_DEPENDENT_07;
|
|
||||||
PVOID ReadOnlyStaticServerData;
|
|
||||||
PVOID AnsiCodePageData;
|
|
||||||
PVOID OemCodePageData;
|
|
||||||
PVOID UnicodeCaseTableData;
|
|
||||||
DWORD NumberOfProcessors;
|
|
||||||
DWORD NtGlobalFlag;
|
|
||||||
LARGE_INTEGER CriticalSectionTimeout;
|
|
||||||
PVOID HeapSegmentReserve;
|
|
||||||
PVOID HeapSegmentCommit;
|
|
||||||
PVOID HeapDeCommitTotalFreeThreshold;
|
|
||||||
PVOID HeapDeCommitFreeBlockThreshold;
|
|
||||||
DWORD NumberOfHeaps;
|
|
||||||
DWORD MaximumNumberOfHeaps;
|
|
||||||
PVOID ProcessHeaps;
|
|
||||||
PVOID GdiSharedHandleTable;
|
|
||||||
PVOID ProcessStarterHelper;
|
|
||||||
PVOID GdiDCAttributeList;
|
|
||||||
PVOID LoaderLock;
|
|
||||||
DWORD OSMajorVersion;
|
|
||||||
DWORD OSMinorVersion;
|
|
||||||
WORD OSBuildNumber;
|
|
||||||
WORD OSCSDVersion;
|
|
||||||
DWORD OSPlatformId;
|
|
||||||
DWORD ImageSubsystem;
|
|
||||||
DWORD ImageSubsystemMajorVersion;
|
|
||||||
PVOID ImageSubsystemMinorVersion;
|
|
||||||
union {
|
|
||||||
PVOID ImageProcessAffinityMask;
|
|
||||||
PVOID ActiveProcessAffinityMask;
|
|
||||||
};
|
|
||||||
PVOID GdiHandleBuffer[26];
|
|
||||||
BYTE GdiHandleBuffer2[32];
|
|
||||||
PVOID PostProcessInitRoutine;
|
|
||||||
PVOID TlsExpansionBitmap;
|
|
||||||
DWORD TlsExpansionBitmapBits[32];
|
|
||||||
PVOID SessionId;
|
|
||||||
ULARGE_INTEGER AppCompatFlags;
|
|
||||||
ULARGE_INTEGER AppCompatFlagsUser;
|
|
||||||
PVOID pShimData;
|
|
||||||
PVOID AppCompatInfo;
|
|
||||||
UNICODE_STRING CSDVersion;
|
|
||||||
PVOID ActivationContextData;
|
|
||||||
PVOID ProcessAssemblyStorageMap;
|
|
||||||
PVOID SystemDefaultActivationContextData;
|
|
||||||
PVOID SystemAssemblyStorageMap;
|
|
||||||
PVOID MinimumStackCommit;
|
|
||||||
} PEB, *PPEB;
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct _SECURITY_ATTRIBUTES {
|
typedef struct _SECURITY_ATTRIBUTES {
|
||||||
DWORD nLength;
|
DWORD nLength;
|
||||||
LPVOID lpSecurityDescriptor;
|
LPVOID lpSecurityDescriptor;
|
||||||
@@ -565,112 +380,7 @@ typedef enum _SECTION_INHERIT {
|
|||||||
ViewUnmap = 2
|
ViewUnmap = 2
|
||||||
} SECTION_INHERIT;
|
} SECTION_INHERIT;
|
||||||
|
|
||||||
typedef enum _PROCESSINFOCLASS {
|
|
||||||
ProcessBasicInformation = 0,
|
|
||||||
ProcessQuotaLimits = 1,
|
|
||||||
ProcessIoCounters = 2,
|
|
||||||
ProcessVmCounters = 3,
|
|
||||||
ProcessTimes = 4,
|
|
||||||
ProcessBasePriority = 5,
|
|
||||||
ProcessRaisePriority = 6,
|
|
||||||
ProcessDebugPort = 7,
|
|
||||||
ProcessExceptionPort = 8,
|
|
||||||
ProcessAccessToken = 9,
|
|
||||||
ProcessLdtInformation = 10,
|
|
||||||
ProcessLdtSize = 11,
|
|
||||||
ProcessDefaultHardErrorMode = 12,
|
|
||||||
ProcessIoPortHandlers = 13, // Note: this is kernel mode only
|
|
||||||
ProcessPooledUsageAndLimits = 14,
|
|
||||||
ProcessWorkingSetWatch = 15,
|
|
||||||
ProcessUserModeIOPL = 16,
|
|
||||||
ProcessEnableAlignmentFaultFixup = 17,
|
|
||||||
ProcessPriorityClass = 18,
|
|
||||||
ProcessWx86Information = 19,
|
|
||||||
ProcessHandleCount = 20,
|
|
||||||
ProcessAffinityMask = 21,
|
|
||||||
ProcessPriorityBoost = 22,
|
|
||||||
ProcessDeviceMap = 23,
|
|
||||||
ProcessSessionInformation = 24,
|
|
||||||
ProcessForegroundInformation = 25,
|
|
||||||
ProcessWow64Information = 26,
|
|
||||||
ProcessImageFileName = 27,
|
|
||||||
ProcessLUIDDeviceMapsEnabled = 28,
|
|
||||||
ProcessBreakOnTermination = 29,
|
|
||||||
ProcessDebugObjectHandle = 30,
|
|
||||||
ProcessDebugFlags = 31,
|
|
||||||
ProcessHandleTracing = 32,
|
|
||||||
ProcessIoPriority = 33,
|
|
||||||
ProcessExecuteFlags = 34,
|
|
||||||
ProcessTlsInformation = 35,
|
|
||||||
ProcessCookie = 36,
|
|
||||||
ProcessImageInformation = 37,
|
|
||||||
ProcessCycleTime = 38,
|
|
||||||
ProcessPagePriority = 39,
|
|
||||||
ProcessInstrumentationCallback = 40,
|
|
||||||
ProcessThreadStackAllocation = 41,
|
|
||||||
ProcessWorkingSetWatchEx = 42,
|
|
||||||
ProcessImageFileNameWin32 = 43,
|
|
||||||
ProcessImageFileMapping = 44,
|
|
||||||
ProcessAffinityUpdateMode = 45,
|
|
||||||
ProcessMemoryAllocationMode = 46,
|
|
||||||
ProcessGroupInformation = 47,
|
|
||||||
ProcessTokenVirtualizationEnabled = 48,
|
|
||||||
ProcessOwnerInformation = 49,
|
|
||||||
ProcessWindowInformation = 50,
|
|
||||||
ProcessHandleInformation = 51,
|
|
||||||
ProcessMitigationPolicy = 52,
|
|
||||||
ProcessDynamicFunctionTableInformation = 53,
|
|
||||||
ProcessHandleCheckingMode = 54,
|
|
||||||
ProcessKeepAliveCount = 55,
|
|
||||||
ProcessRevokeFileHandles = 56,
|
|
||||||
ProcessWorkingSetControl = 57,
|
|
||||||
ProcessHandleTable = 58,
|
|
||||||
ProcessCheckStackExtentsMode = 59,
|
|
||||||
ProcessCommandLineInformation = 60,
|
|
||||||
ProcessProtectionInformation = 61,
|
|
||||||
ProcessMemoryExhaustion = 62,
|
|
||||||
ProcessFaultInformation = 63,
|
|
||||||
ProcessTelemetryIdInformation = 64,
|
|
||||||
ProcessCommitReleaseInformation = 65,
|
|
||||||
ProcessReserved1Information = 66,
|
|
||||||
ProcessReserved2Information = 67,
|
|
||||||
ProcessSubsystemProcess = 68,
|
|
||||||
ProcessInPrivate = 70,
|
|
||||||
ProcessRaiseUMExceptionOnInvalidHandleClose = 71,
|
|
||||||
ProcessSubsystemInformation = 75,
|
|
||||||
ProcessWin32kSyscallFilterInformation = 79,
|
|
||||||
ProcessEnergyTrackingState = 82,
|
|
||||||
MaxProcessInfoClass // MaxProcessInfoClass should always be the last enum
|
|
||||||
} PROCESSINFOCLASS;
|
|
||||||
|
|
||||||
typedef enum _MEMORY_INFORMATION_CLASS {
|
|
||||||
MemoryBasicInformation,
|
|
||||||
MemoryWorkingSetList,
|
|
||||||
MemorySectionName,
|
|
||||||
MemoryBasicVlmInformation,
|
|
||||||
MemoryWorkingSetListEx
|
|
||||||
} MEMORY_INFORMATION_CLASS;
|
|
||||||
|
|
||||||
typedef enum _THREAD_INFORMATION_CLASS {
|
|
||||||
ThreadBasicInformation,
|
|
||||||
ThreadTimes,
|
|
||||||
ThreadPriority,
|
|
||||||
ThreadBasePriority,
|
|
||||||
ThreadAffinityMask,
|
|
||||||
ThreadImpersonationToken,
|
|
||||||
ThreadDescriptorTableEntry,
|
|
||||||
ThreadEnableAlignmentFaultFixup,
|
|
||||||
ThreadEventPair,
|
|
||||||
ThreadQuerySetWin32StartAddress,
|
|
||||||
ThreadZeroTlsCell,
|
|
||||||
ThreadPerformanceCount,
|
|
||||||
ThreadAmILastThread,
|
|
||||||
ThreadIdealProcessor,
|
|
||||||
ThreadPriorityBoost,
|
|
||||||
ThreadSetTlsArrayAddress,
|
|
||||||
ThreadIsIoPending,
|
|
||||||
ThreadHideFromDebugger
|
|
||||||
} THREAD_INFORMATION_CLASS, *PTHREAD_INFORMATION_CLASS;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -863,34 +573,7 @@ typedef enum _SE_OBJECT_TYPE {
|
|||||||
} SE_OBJECT_TYPE;
|
} SE_OBJECT_TYPE;
|
||||||
|
|
||||||
|
|
||||||
typedef struct _CLIENT_ID{
|
|
||||||
HANDLE UniqueProcess;
|
|
||||||
HANDLE UniqueThread;
|
|
||||||
} CLIENT_ID, *PCLIENT_ID;
|
|
||||||
|
|
||||||
typedef struct _CLIENT_ID64{
|
|
||||||
ULONG64 UniqueProcess;
|
|
||||||
ULONG64 UniqueThread;
|
|
||||||
} CLIENT_ID64, *PCLIENT_ID64;
|
|
||||||
|
|
||||||
typedef struct _CLIENT_ID32{
|
|
||||||
ULONG UniqueProcess;
|
|
||||||
ULONG UniqueThread;
|
|
||||||
} CLIENT_ID32, *PCLIENT_ID32;
|
|
||||||
|
|
||||||
typedef struct _LDR_DATA_TABLE_ENTRY {
|
|
||||||
PVOID Reserved1[2];
|
|
||||||
LIST_ENTRY InMemoryOrderLinks;
|
|
||||||
PVOID Reserved2[2];
|
|
||||||
PVOID DllBase;
|
|
||||||
PVOID EntryPoint;
|
|
||||||
PVOID SizeOfImage;
|
|
||||||
UNICODE_STRING FullDllName;
|
|
||||||
UNICODE_STRING BaseDllName;
|
|
||||||
PVOID Reserved5[3];
|
|
||||||
ULONG CheckSum;
|
|
||||||
ULONG TimeDateStamp;
|
|
||||||
} LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct _MEMORY_BASIC_INFORMATION {
|
typedef struct _MEMORY_BASIC_INFORMATION {
|
||||||
@@ -1054,232 +737,7 @@ typedef struct _PROCESS_INFORMATION {
|
|||||||
} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
|
} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
|
||||||
|
|
||||||
|
|
||||||
typedef struct _FLOATING_SAVE_AREA {
|
|
||||||
DWORD ControlWord;
|
|
||||||
DWORD StatusWord;
|
|
||||||
DWORD TagWord;
|
|
||||||
DWORD ErrorOffset;
|
|
||||||
DWORD ErrorSelector;
|
|
||||||
DWORD DataOffset;
|
|
||||||
DWORD DataSelector;
|
|
||||||
BYTE RegisterArea[80];
|
|
||||||
DWORD Cr0NpxState;
|
|
||||||
} FLOATING_SAVE_AREA;
|
|
||||||
|
|
||||||
typedef struct _CONTEXT32 {
|
|
||||||
|
|
||||||
DWORD ContextFlags;
|
|
||||||
|
|
||||||
DWORD Dr0;
|
|
||||||
DWORD Dr1;
|
|
||||||
DWORD Dr2;
|
|
||||||
DWORD Dr3;
|
|
||||||
DWORD Dr6;
|
|
||||||
DWORD Dr7;
|
|
||||||
|
|
||||||
FLOATING_SAVE_AREA FloatSave;
|
|
||||||
|
|
||||||
DWORD SegGs;
|
|
||||||
DWORD SegFs;
|
|
||||||
DWORD SegEs;
|
|
||||||
DWORD SegDs;
|
|
||||||
|
|
||||||
DWORD Edi;
|
|
||||||
DWORD Esi;
|
|
||||||
DWORD Ebx;
|
|
||||||
DWORD Edx;
|
|
||||||
DWORD Ecx;
|
|
||||||
DWORD Eax;
|
|
||||||
|
|
||||||
DWORD Ebp;
|
|
||||||
DWORD Eip;
|
|
||||||
DWORD SegCs;
|
|
||||||
DWORD EFlags;
|
|
||||||
DWORD Esp;
|
|
||||||
DWORD SegSs;
|
|
||||||
|
|
||||||
BYTE ExtendedRegisters[512];
|
|
||||||
|
|
||||||
} CONTEXT32, *PCONTEXT32, *LPCONTEXT32;
|
|
||||||
|
|
||||||
typedef struct _WOW64_FLOATING_SAVE_AREA {
|
|
||||||
DWORD ControlWord;
|
|
||||||
DWORD StatusWord;
|
|
||||||
DWORD TagWord;
|
|
||||||
DWORD ErrorOffset;
|
|
||||||
DWORD ErrorSelector;
|
|
||||||
DWORD DataOffset;
|
|
||||||
DWORD DataSelector;
|
|
||||||
BYTE RegisterArea[WOW64_SIZE_OF_80387_REGISTERS];
|
|
||||||
DWORD Cr0NpxState;
|
|
||||||
} WOW64_FLOATING_SAVE_AREA;
|
|
||||||
|
|
||||||
typedef struct _WOW64_CONTEXT {
|
|
||||||
|
|
||||||
DWORD ContextFlags;
|
|
||||||
|
|
||||||
DWORD Dr0;
|
|
||||||
DWORD Dr1;
|
|
||||||
DWORD Dr2;
|
|
||||||
DWORD Dr3;
|
|
||||||
DWORD Dr6;
|
|
||||||
DWORD Dr7;
|
|
||||||
|
|
||||||
WOW64_FLOATING_SAVE_AREA FloatSave;
|
|
||||||
|
|
||||||
DWORD SegGs;
|
|
||||||
DWORD SegFs;
|
|
||||||
DWORD SegEs;
|
|
||||||
DWORD SegDs;
|
|
||||||
|
|
||||||
DWORD Edi;
|
|
||||||
DWORD Esi;
|
|
||||||
DWORD Ebx;
|
|
||||||
DWORD Edx;
|
|
||||||
DWORD Ecx;
|
|
||||||
DWORD Eax;
|
|
||||||
DWORD Ebp;
|
|
||||||
DWORD Eip;
|
|
||||||
DWORD SegCs;
|
|
||||||
DWORD EFlags;
|
|
||||||
DWORD Esp;
|
|
||||||
DWORD SegSs;
|
|
||||||
|
|
||||||
BYTE ExtendedRegisters[WOW64_MAXIMUM_SUPPORTED_EXTENSION];
|
|
||||||
|
|
||||||
} WOW64_CONTEXT, *PWOW64_CONTEXT;
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct _M128A {
|
|
||||||
ULONGLONG Low;
|
|
||||||
LONGLONG High;
|
|
||||||
} M128A, *PM128A;
|
|
||||||
|
|
||||||
typedef struct _XSAVE_FORMAT_64 {
|
|
||||||
WORD ControlWord;
|
|
||||||
WORD StatusWord;
|
|
||||||
BYTE TagWord;
|
|
||||||
BYTE Reserved1;
|
|
||||||
WORD ErrorOpcode;
|
|
||||||
DWORD ErrorOffset;
|
|
||||||
WORD ErrorSelector;
|
|
||||||
WORD Reserved2;
|
|
||||||
DWORD DataOffset;
|
|
||||||
WORD DataSelector;
|
|
||||||
WORD Reserved3;
|
|
||||||
DWORD MxCsr;
|
|
||||||
DWORD MxCsr_Mask;
|
|
||||||
M128A FloatRegisters[8];
|
|
||||||
M128A XmmRegisters[16];
|
|
||||||
BYTE Reserved4[96];
|
|
||||||
} XSAVE_FORMAT_64, *PXSAVE_FORMAT_64;
|
|
||||||
|
|
||||||
typedef struct _XSAVE_FORMAT_32 {
|
|
||||||
WORD ControlWord;
|
|
||||||
WORD StatusWord;
|
|
||||||
BYTE TagWord;
|
|
||||||
BYTE Reserved1;
|
|
||||||
WORD ErrorOpcode;
|
|
||||||
DWORD ErrorOffset;
|
|
||||||
WORD ErrorSelector;
|
|
||||||
WORD Reserved2;
|
|
||||||
DWORD DataOffset;
|
|
||||||
WORD DataSelector;
|
|
||||||
WORD Reserved3;
|
|
||||||
DWORD MxCsr;
|
|
||||||
DWORD MxCsr_Mask;
|
|
||||||
M128A FloatRegisters[8];
|
|
||||||
M128A XmmRegisters[8];
|
|
||||||
BYTE Reserved4[192];
|
|
||||||
DWORD StackControl[7];
|
|
||||||
DWORD Cr0NpxState;
|
|
||||||
} XSAVE_FORMAT_32, *PXSAVE_FORMAT_32;
|
|
||||||
|
|
||||||
typedef struct _TMP_DUMMYSTRUCTNAME {
|
|
||||||
M128A Header[2];
|
|
||||||
M128A Legacy[8];
|
|
||||||
M128A Xmm0;
|
|
||||||
M128A Xmm1;
|
|
||||||
M128A Xmm2;
|
|
||||||
M128A Xmm3;
|
|
||||||
M128A Xmm4;
|
|
||||||
M128A Xmm5;
|
|
||||||
M128A Xmm6;
|
|
||||||
M128A Xmm7;
|
|
||||||
M128A Xmm8;
|
|
||||||
M128A Xmm9;
|
|
||||||
M128A Xmm10;
|
|
||||||
M128A Xmm11;
|
|
||||||
M128A Xmm12;
|
|
||||||
M128A Xmm13;
|
|
||||||
M128A Xmm14;
|
|
||||||
M128A Xmm15;
|
|
||||||
} TMP_DUMMYSTRUCTNAME;
|
|
||||||
|
|
||||||
|
|
||||||
typedef union _TMP_CONTEXT64_SUBUNION {
|
|
||||||
XSAVE_FORMAT_64 FltSave;
|
|
||||||
TMP_DUMMYSTRUCTNAME DUMMYSTRUCTNAME;
|
|
||||||
} TMP_CONTEXT64_SUBUNION;
|
|
||||||
|
|
||||||
typedef struct _CONTEXT64 {
|
|
||||||
|
|
||||||
DWORD64 P1Home;
|
|
||||||
DWORD64 P2Home;
|
|
||||||
DWORD64 P3Home;
|
|
||||||
DWORD64 P4Home;
|
|
||||||
DWORD64 P5Home;
|
|
||||||
DWORD64 P6Home;
|
|
||||||
|
|
||||||
DWORD ContextFlags;
|
|
||||||
DWORD MxCsr;
|
|
||||||
|
|
||||||
WORD SegCs;
|
|
||||||
WORD SegDs;
|
|
||||||
WORD SegEs;
|
|
||||||
WORD SegFs;
|
|
||||||
WORD SegGs;
|
|
||||||
WORD SegSs;
|
|
||||||
DWORD EFlags;
|
|
||||||
|
|
||||||
DWORD64 Dr0;
|
|
||||||
DWORD64 Dr1;
|
|
||||||
DWORD64 Dr2;
|
|
||||||
DWORD64 Dr3;
|
|
||||||
DWORD64 Dr6;
|
|
||||||
DWORD64 Dr7;
|
|
||||||
|
|
||||||
|
|
||||||
DWORD64 Rax;
|
|
||||||
DWORD64 Rcx;
|
|
||||||
DWORD64 Rdx;
|
|
||||||
DWORD64 Rbx;
|
|
||||||
DWORD64 Rsp;
|
|
||||||
DWORD64 Rbp;
|
|
||||||
DWORD64 Rsi;
|
|
||||||
DWORD64 Rdi;
|
|
||||||
DWORD64 R8;
|
|
||||||
DWORD64 R9;
|
|
||||||
DWORD64 R10;
|
|
||||||
DWORD64 R11;
|
|
||||||
DWORD64 R12;
|
|
||||||
DWORD64 R13;
|
|
||||||
DWORD64 R14;
|
|
||||||
DWORD64 R15;
|
|
||||||
|
|
||||||
DWORD64 Rip;
|
|
||||||
|
|
||||||
TMP_CONTEXT64_SUBUNION DUMMYUNIONNAME;
|
|
||||||
|
|
||||||
M128A VectorRegister[26];
|
|
||||||
DWORD64 VectorControl;
|
|
||||||
|
|
||||||
DWORD64 DebugControl;
|
|
||||||
DWORD64 LastBranchToRip;
|
|
||||||
DWORD64 LastBranchFromRip;
|
|
||||||
DWORD64 LastExceptionToRip;
|
|
||||||
DWORD64 LastExceptionFromRip;
|
|
||||||
} CONTEXT64, *PCONTEXT64, *LPCONTEXT64;
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct tagPROCESSENTRY32W
|
typedef struct tagPROCESSENTRY32W
|
||||||
@@ -1730,15 +1188,12 @@ typedef struct _OBJECT_ATTRIBUTES {
|
|||||||
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
|
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
|
||||||
|
|
||||||
|
|
||||||
typedef union _TMP_UNION_IO_STATUS_BLOCK
|
|
||||||
{
|
|
||||||
NTSTATUS Status;
|
|
||||||
PVOID Pointer;
|
|
||||||
}TMP_UNION_IO_STATUS_BLOCK;
|
|
||||||
|
|
||||||
typedef struct _IO_STATUS_BLOCK {
|
typedef struct _IO_STATUS_BLOCK {
|
||||||
TMP_UNION_IO_STATUS_BLOCK DUMMYUNIONNAME;
|
union {
|
||||||
ULONG_PTR Information;
|
NTSTATUS Status;
|
||||||
|
PVOID Pointer;
|
||||||
|
};
|
||||||
|
ULONG_PTR Information;
|
||||||
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
|
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
OLD_IStream = IStream
|
||||||
|
class IStream(OLD_IStream):
|
||||||
|
|
||||||
|
def read(self, size):
|
||||||
|
buffer = (CHAR * size)()
|
||||||
|
size_read = ULONG()
|
||||||
|
self.Read(buffer, size, size_read)
|
||||||
|
return buffer[:size_read.value]
|
||||||
|
|
||||||
|
|
||||||
|
def write(self, data):
|
||||||
|
assert isinstance(data, bytes), "IStream.write() only accept bytes but {0} was passed".format(type(data))
|
||||||
|
written = ULONG()
|
||||||
|
self.Write(data, len(data), written)
|
||||||
|
return written.value
|
||||||
|
|
||||||
|
def seek(self, position, origin=STREAM_SEEK_SET):
|
||||||
|
newpos = ULARGE_INTEGER()
|
||||||
|
self.Seek(position, origin, newpos)
|
||||||
|
return newpos.value
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ class _GUID(INITIAL_GUID):
|
|||||||
self.name = None
|
self.name = None
|
||||||
if self.name is None:
|
if self.name is None:
|
||||||
return '<GUID "{0}">'.format(self.strid.upper())
|
return '<GUID "{0}">'.format(self.strid.upper())
|
||||||
return '<GUID "{0}({1})">'.format(self.strid.upper(), self.name)
|
return '<GUID "{0}" ({1})>'.format(self.strid.upper(), self.name)
|
||||||
|
|
||||||
__sprint__ = __repr__
|
__sprint__ = __repr__
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# From: ctypes_generation\extended_structs\_LIST_ENTRY.py
|
||||||
|
# _LIST_ENTRY is a self referencing structure
|
||||||
|
# Currently ctypes generation does not support extending self referencing structures
|
||||||
|
# Ass the _fields_ assignement should happen after the extended structure definition
|
||||||
|
# So we just redefine fully _LIST_ENTRY without inheriting the real one
|
||||||
|
|
||||||
|
class _LIST_ENTRY(Structure):
|
||||||
|
def get_real_struct(self, targetcls, target_field):
|
||||||
|
# >>> gdef.LDR_DATA_TABLE_ENTRY.InMemoryOrderLinks
|
||||||
|
# <Field type=_LIST_ENTRY, ofs=16, size=16>
|
||||||
|
# This field object does not allow to retrieve the type..
|
||||||
|
# So we need to basse the target class AND the target field..
|
||||||
|
return targetcls.from_address(ctypes.addressof(self) - target_field.offset)
|
||||||
|
|
||||||
|
_LIST_ENTRY._fields_ = [
|
||||||
|
("Flink", POINTER(_LIST_ENTRY)),
|
||||||
|
("Blink", POINTER(_LIST_ENTRY)),
|
||||||
|
]
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
INITIAL_tagDUALSTRINGARRAY = tagDUALSTRINGARRAY
|
||||||
|
|
||||||
|
class tagDUALSTRINGARRAY(INITIAL_tagDUALSTRINGARRAY):
|
||||||
|
@property
|
||||||
|
def rawbuffer(self):
|
||||||
|
array_size = self.wNumEntries
|
||||||
|
array_type = self.aStringArray._type_
|
||||||
|
new_buffer_type = (array_type * array_size)
|
||||||
|
buffer = new_buffer_type.from_address(ctypes.addressof(self.aStringArray))
|
||||||
|
return buffer
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def bidings(self):
|
||||||
|
rawbuffer = self.rawbuffer
|
||||||
|
rawarray = rawbuffer[:] # Allow to find 0 in USHORT without overlap
|
||||||
|
rawbytes = bytearray(rawbuffer) # Allow to access to bytes to utf-16-le decode
|
||||||
|
results = []
|
||||||
|
next_start = 0
|
||||||
|
|
||||||
|
# STRINGBINDING documentation says that it starts with a USHORT wTowerId
|
||||||
|
# But i don't see it in our response.. (local response ?)
|
||||||
|
# So ignore it for now
|
||||||
|
for i in range(100):
|
||||||
|
current_index = rawarray.index(0, next_start)
|
||||||
|
new_entry = rawbytes[next_start * 2: current_index * 2]
|
||||||
|
if not new_entry:
|
||||||
|
return results
|
||||||
|
results.append(new_entry.decode("utf-16-le")) # Does not handle full unicode I think but..
|
||||||
|
next_start = current_index + 1
|
||||||
|
# Should not happen
|
||||||
|
raise ValueError("Could not parse DUALSTRINGARRAY")
|
||||||
|
|
||||||
|
@property
|
||||||
|
def security_bidings(self):
|
||||||
|
rawbuffer = self.rawbuffer
|
||||||
|
rawarray = rawbuffer[self.wSecurityOffset:]
|
||||||
|
rawbytes = bytearray(rawbuffer)[self.wSecurityOffset * 2:]
|
||||||
|
results = []
|
||||||
|
next_start = 0
|
||||||
|
|
||||||
|
for i in range(100):
|
||||||
|
wAuthnSvc = rawarray[next_start]
|
||||||
|
if wAuthnSvc == 0:
|
||||||
|
return results
|
||||||
|
reserved = rawarray[next_start + 1]
|
||||||
|
current_index = rawarray.index(0, next_start + 2)
|
||||||
|
new_entry = rawbytes[(next_start + 2) * 2:current_index * 2]
|
||||||
|
results.append((wAuthnSvc, reserved, new_entry.decode("utf-16-le"))) # Does not handle full unicode I think but..
|
||||||
|
next_start = current_index + 1
|
||||||
|
# Should not happen
|
||||||
|
raise ValueError("Could not parse DUALSTRINGARRAY security bidings")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
INITIAL_tagMInterfacePointer = tagMInterfacePointer
|
||||||
|
|
||||||
|
class tagMInterfacePointer(INITIAL_tagMInterfacePointer):
|
||||||
|
@property
|
||||||
|
def objref(self):
|
||||||
|
return OBJREF.from_address(ctypes.addressof(self.abData))
|
||||||
@@ -399,6 +399,10 @@ class NtStatusDocGenerator(NoTemplatedGenerator):
|
|||||||
for value, name, descr in file.data:
|
for value, name, descr in file.data:
|
||||||
self.emitline(".. autodata:: {name}".format(name=name))
|
self.emitline(".. autodata:: {name}".format(name=name))
|
||||||
|
|
||||||
|
EXTENDED_INTERFACE_FILE = glob.glob(pjoin(SCRIPT_DIR, "extended_interfaces", "*.py"))
|
||||||
|
EXTENDED_INTERFACE = [os.path.basename(filename)[:-len(".py")] for filename in EXTENDED_INTERFACE_FILE]
|
||||||
|
|
||||||
|
|
||||||
class COMCtypesGenerator(CtypesGenerator):
|
class COMCtypesGenerator(CtypesGenerator):
|
||||||
IGNORED_INTERFACE = set(COMParsedFile.IGNORED_INTERFACE)
|
IGNORED_INTERFACE = set(COMParsedFile.IGNORED_INTERFACE)
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
@@ -412,12 +416,15 @@ class COMCtypesGenerator(CtypesGenerator):
|
|||||||
def parse_iid_file(self, filename):
|
def parse_iid_file(self, filename):
|
||||||
data = open(filename).read()
|
data = open(filename).read()
|
||||||
for line in data.split("\n"):
|
for line in data.split("\n"):
|
||||||
|
if line.strip().startswith("//"):
|
||||||
|
continue # Commentaires du pauvre
|
||||||
name, iid = line.split("|")
|
name, iid = line.split("|")
|
||||||
self.iids_def[name] = self.parse_iid(iid), iid
|
self.iids_def[name] = self.parse_iid(iid), iid
|
||||||
|
|
||||||
def generate_files(self, files):
|
def generate_files(self, files):
|
||||||
|
self.generate_known_iid_list()
|
||||||
# We generate COM interface in 2 step
|
# We generate COM interface in 2 step
|
||||||
# 1) The Class intself with the IDD
|
# 1) The Class itself with the IDD
|
||||||
# 2) The function list after all class we generated
|
# 2) The function list after all class we generated
|
||||||
# - This allow COM function to refer the interface in their def :)
|
# - This allow COM function to refer the interface in their def :)
|
||||||
for file in files:
|
for file in files:
|
||||||
@@ -425,19 +432,34 @@ class COMCtypesGenerator(CtypesGenerator):
|
|||||||
for file in files:
|
for file in files:
|
||||||
self.generate_com_interface_functions(file.data)
|
self.generate_com_interface_functions(file.data)
|
||||||
|
|
||||||
|
def generate_known_iid_list(self):
|
||||||
|
# Generate list of known IID at the start of the file
|
||||||
|
# This take quite some memory/time when starting PFW
|
||||||
|
# for interface_name, (iid_python, iid_str) in self.iids_def.items():
|
||||||
|
# cls_format_param = {"name": interface_name, "iid_python" : iid_python, "iid_str": iid_str}
|
||||||
|
# self.emitline('IID_{name} = generate_IID({iid_python}, name="{name}", strid="{iid_str}")'.format(**cls_format_param))
|
||||||
|
pass
|
||||||
|
|
||||||
def generate_com_interface_class_iid(self, cominterface):
|
def generate_com_interface_class_iid(self, cominterface):
|
||||||
name = cominterface.name
|
|
||||||
if cominterface.iid is not None:
|
if cominterface.iid is not None:
|
||||||
iid_str = cominterface.iid
|
iid_str = cominterface.iid
|
||||||
iid_python = self.parse_iid(iid_str)
|
iid_python = self.parse_iid(iid_str)
|
||||||
else:
|
else:
|
||||||
print("Lookup of IID for <{0}>".format(cominterface.name))
|
print("Lookup of IID for <{0}>".format(cominterface.name))
|
||||||
iid_python, iid_str = self.iids_def[cominterface.name]
|
iid_python, iid_str = self.iids_def[cominterface.name]
|
||||||
cls_format_param = {"name": name, "iid_python" : iid_python, "iid_str": iid_str}
|
|
||||||
|
cls_format_param = {"name": cominterface.name, "iid_python" : iid_python, "iid_str": iid_str}
|
||||||
|
|
||||||
self.emitline("class {name}(COMInterface):".format(**cls_format_param))
|
self.emitline("class {name}(COMInterface):".format(**cls_format_param))
|
||||||
self.emitline(' IID = generate_IID({iid_python}, name="{name}", strid="{iid_str}")'.format(**cls_format_param))
|
self.emitline(' IID = generate_IID({iid_python}, name="{name}", strid="{iid_str}")'.format(**cls_format_param))
|
||||||
|
# self.emitline(' IID = IID_{name}'.format(name=cominterface.name)) # If we accept to have generate_known_iid_list()
|
||||||
self.emitline('')
|
self.emitline('')
|
||||||
|
# Emit the extended interface definition if existing
|
||||||
|
if cominterface.name in EXTENDED_INTERFACE:
|
||||||
|
extended_interface_filename = from_here(os.path.join("extended_interfaces", "{0}.py".format(cominterface.name)))
|
||||||
|
print("Including extended COM Interface definition for <{0}>".format(cominterface.name))
|
||||||
|
with open(extended_interface_filename) as f:
|
||||||
|
self.emitline(f.read())
|
||||||
|
|
||||||
def generate_com_interface_functions(self, cominterface):
|
def generate_com_interface_functions(self, cominterface):
|
||||||
name = cominterface.name
|
name = cominterface.name
|
||||||
|
|||||||
@@ -123,8 +123,9 @@ class WinStruct(object):
|
|||||||
|
|
||||||
def generate_selfref_ctypes_class(self):
|
def generate_selfref_ctypes_class(self):
|
||||||
res = ["# Self referencing struct tricks"]
|
res = ["# Self referencing struct tricks"]
|
||||||
res += ["""class {0}(Structure): pass""".format(self.name)]
|
res += ["""class {0}(Structure):""".format(self.name)]
|
||||||
# res += [self.generate_anonymous_union()]
|
# We need some code in the def of anon is empty -> insert path
|
||||||
|
res += [self.generate_anonymous_union() or " pass"]
|
||||||
res += [self.generate_typedef_ctypes()]
|
res += [self.generate_typedef_ctypes()]
|
||||||
|
|
||||||
if self.pack:
|
if self.pack:
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
# Sphinx build info version 1
|
# Sphinx build info version 1
|
||||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||||
config: 92d6a80a7446628386dc1fdf3dc6b1c0
|
config: 0e250b469303f551736a785b66f0d36c
|
||||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||||
|
|||||||
Vendored
+4
-4
@@ -4,12 +4,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Overview: module code — PythonForWindows 1.0.0 documentation</title>
|
<title>Overview: module code — PythonForWindows 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/classic.css?v=def86cc0" />
|
<link rel="stylesheet" type="text/css" href="../_static/classic.css?v=def86cc0" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/css/mbasic.css?v=957880af" />
|
<link rel="stylesheet" type="text/css" href="../_static/css/mbasic.css?v=957880af" />
|
||||||
|
|
||||||
<script src="../_static/documentation_options.js?v=8d563738"></script>
|
<script src="../_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="../_static/doctools.js?v=9a2dae69"></script>
|
<script src="../_static/doctools.js?v=9a2dae69"></script>
|
||||||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="../py-modindex.html" title="Python Module Index"
|
<a href="../py-modindex.html" title="Python Module Index"
|
||||||
>modules</a> |</li>
|
>modules</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="../index.html">PythonForWindows 1.0.4 documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Overview: module code</a></li>
|
<li class="nav-item nav-item-this"><a href="">Overview: module code</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="../py-modindex.html" title="Python Module Index"
|
<a href="../py-modindex.html" title="Python Module Index"
|
||||||
>modules</a> |</li>
|
>modules</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="../index.html">PythonForWindows 1.0.4 documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Overview: module code</a></li>
|
<li class="nav-item nav-item-this"><a href="">Overview: module code</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+8
-4
@@ -4,12 +4,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>windows.alpc — PythonForWindows 1.0.0 documentation</title>
|
<title>windows.alpc — PythonForWindows 1.0.3 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="../../_static/classic.css?v=def86cc0" />
|
<link rel="stylesheet" type="text/css" href="../../_static/classic.css?v=def86cc0" />
|
||||||
<link rel="stylesheet" type="text/css" href="../../_static/css/mbasic.css?v=957880af" />
|
<link rel="stylesheet" type="text/css" href="../../_static/css/mbasic.css?v=957880af" />
|
||||||
|
|
||||||
<script src="../../_static/documentation_options.js?v=8d563738"></script>
|
<script src="../../_static/documentation_options.js?v=baaebd52"></script>
|
||||||
<script src="../../_static/doctools.js?v=9a2dae69"></script>
|
<script src="../../_static/doctools.js?v=9a2dae69"></script>
|
||||||
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="../../py-modindex.html" title="Python Module Index"
|
<a href="../../py-modindex.html" title="Python Module Index"
|
||||||
>modules</a> |</li>
|
>modules</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.3 documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li>
|
<li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">windows.alpc</a></li>
|
<li class="nav-item nav-item-this"><a href="">windows.alpc</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -505,6 +505,8 @@
|
|||||||
<span class="k">def</span> <span class="nf">disconnect</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span> <span class="nf">disconnect</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">handle</span><span class="p">:</span>
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">handle</span><span class="p">:</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_close_port</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handle</span><span class="p">)</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_close_port</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handle</span><span class="p">)</span>
|
||||||
|
<span class="bp">self</span><span class="o">.</span><span class="n">handle</span> <span class="o">=</span> <span class="kc">None</span>
|
||||||
|
|
||||||
|
|
||||||
<span class="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">path</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">path</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||||
@@ -608,8 +610,10 @@
|
|||||||
<span class="k">def</span> <span class="nf">disconnect</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span> <span class="nf">disconnect</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">handle</span><span class="p">:</span>
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">handle</span><span class="p">:</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_close_port</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handle</span><span class="p">)</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_close_port</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">handle</span><span class="p">)</span>
|
||||||
|
<span class="bp">self</span><span class="o">.</span><span class="n">handle</span> <span class="o">=</span> <span class="kc">None</span>
|
||||||
<span class="k">for</span> <span class="n">com_port_handle</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">communication_port_list</span><span class="p">:</span>
|
<span class="k">for</span> <span class="n">com_port_handle</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">communication_port_list</span><span class="p">:</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_close_port</span><span class="p">(</span><span class="n">com_port_handle</span><span class="p">)</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_close_port</span><span class="p">(</span><span class="n">com_port_handle</span><span class="p">)</span>
|
||||||
|
<span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">communication_port_list</span><span class="p">[:]</span>
|
||||||
|
|
||||||
<span class="c1"># TODO: add an API to close a communication port ?</span>
|
<span class="c1"># TODO: add an API to close a communication port ?</span>
|
||||||
|
|
||||||
@@ -648,7 +652,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="../../py-modindex.html" title="Python Module Index"
|
<a href="../../py-modindex.html" title="Python Module Index"
|
||||||
>modules</a> |</li>
|
>modules</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.3 documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li>
|
<li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">windows.alpc</a></li>
|
<li class="nav-item nav-item-this"><a href="">windows.alpc</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
+21
-5
@@ -4,12 +4,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>windows.com — PythonForWindows 1.0.0 documentation</title>
|
<title>windows.com — PythonForWindows 1.0.3 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="../../_static/classic.css?v=def86cc0" />
|
<link rel="stylesheet" type="text/css" href="../../_static/classic.css?v=def86cc0" />
|
||||||
<link rel="stylesheet" type="text/css" href="../../_static/css/mbasic.css?v=957880af" />
|
<link rel="stylesheet" type="text/css" href="../../_static/css/mbasic.css?v=957880af" />
|
||||||
|
|
||||||
<script src="../../_static/documentation_options.js?v=8d563738"></script>
|
<script src="../../_static/documentation_options.js?v=baaebd52"></script>
|
||||||
<script src="../../_static/doctools.js?v=9a2dae69"></script>
|
<script src="../../_static/doctools.js?v=9a2dae69"></script>
|
||||||
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="../../py-modindex.html" title="Python Module Index"
|
<a href="../../py-modindex.html" title="Python Module Index"
|
||||||
>modules</a> |</li>
|
>modules</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.3 documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li>
|
<li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">windows.com</a></li>
|
<li class="nav-item nav-item-this"><a href="">windows.com</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -75,7 +75,13 @@
|
|||||||
|
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">initsecurity</span><span class="p">():</span> <span class="c1"># Should take some parameters..</span>
|
<span class="k">def</span> <span class="nf">initsecurity</span><span class="p">():</span> <span class="c1"># Should take some parameters..</span>
|
||||||
<span class="k">return</span> <span class="n">winproxy</span><span class="o">.</span><span class="n">CoInitializeSecurity</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">RPC_C_IMP_LEVEL_IMPERSONATE</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
|
<span class="k">try</span><span class="p">:</span>
|
||||||
|
<span class="n">winproxy</span><span class="o">.</span><span class="n">CoInitializeSecurity</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">RPC_C_IMP_LEVEL_IMPERSONATE</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
|
||||||
|
<span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
||||||
|
<span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">winerror</span> <span class="o">&</span> <span class="mh">0xFFFFFFFF</span> <span class="o">!=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">RPC_E_TOO_LATE</span><span class="p">:</span>
|
||||||
|
<span class="c1"># RPC_E_TOO_LATE can happen when the python environment invokes CoInitializeSecurity before we get to it</span>
|
||||||
|
<span class="c1"># mspython builds do this consistently.</span>
|
||||||
|
<span class="k">raise</span> <span class="n">e</span>
|
||||||
|
|
||||||
|
|
||||||
<span class="k">class</span> <span class="nc">Dispatch</span><span class="p">(</span><span class="n">interfaces</span><span class="o">.</span><span class="n">IDispatch</span><span class="p">):</span>
|
<span class="k">class</span> <span class="nc">Dispatch</span><span class="p">(</span><span class="n">interfaces</span><span class="o">.</span><span class="n">IDispatch</span><span class="p">):</span>
|
||||||
@@ -111,6 +117,14 @@
|
|||||||
<span class="bp">self</span><span class="o">.</span><span class="n">GetDocumentation</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="n">res</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">GetDocumentation</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="n">res</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
|
||||||
<span class="k">return</span> <span class="n">res</span>
|
<span class="k">return</span> <span class="n">res</span>
|
||||||
|
|
||||||
|
|
||||||
|
<span class="k">class</span> <span class="nc">MemoryIStream</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">IStream</span><span class="p">):</span>
|
||||||
|
<span class="nd">@classmethod</span>
|
||||||
|
<span class="k">def</span> <span class="nf">create</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
|
||||||
|
<span class="bp">self</span> <span class="o">=</span> <span class="bp">cls</span><span class="p">()</span>
|
||||||
|
<span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">CreateStreamOnHGlobal</span><span class="p">(</span><span class="n">ppstm</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
|
||||||
|
<span class="k">return</span> <span class="bp">self</span>
|
||||||
|
|
||||||
<div class="viewcode-block" id="create_instance">
|
<div class="viewcode-block" id="create_instance">
|
||||||
<a class="viewcode-back" href="../../com.html#windows.com.create_instance">[docs]</a>
|
<a class="viewcode-back" href="../../com.html#windows.com.create_instance">[docs]</a>
|
||||||
<span class="k">def</span> <span class="nf">create_instance</span><span class="p">(</span><span class="n">clsiid</span><span class="p">,</span> <span class="n">targetinterface</span><span class="p">,</span> <span class="n">custom_iid</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="n">CLSCTX_INPROC_SERVER</span> <span class="o">|</span> <span class="n">CLSCTX_LOCAL_SERVER</span><span class="p">):</span>
|
<span class="k">def</span> <span class="nf">create_instance</span><span class="p">(</span><span class="n">clsiid</span><span class="p">,</span> <span class="n">targetinterface</span><span class="p">,</span> <span class="n">custom_iid</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="n">CLSCTX_INPROC_SERVER</span> <span class="o">|</span> <span class="n">CLSCTX_LOCAL_SERVER</span><span class="p">):</span>
|
||||||
@@ -119,6 +133,8 @@
|
|||||||
<span class="n">custom_iid</span> <span class="o">=</span> <span class="n">targetinterface</span><span class="o">.</span><span class="n">IID</span>
|
<span class="n">custom_iid</span> <span class="o">=</span> <span class="n">targetinterface</span><span class="o">.</span><span class="n">IID</span>
|
||||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">clsiid</span><span class="p">,</span> <span class="n">basestring</span><span class="p">):</span>
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">clsiid</span><span class="p">,</span> <span class="n">basestring</span><span class="p">):</span>
|
||||||
<span class="n">clsiid</span> <span class="o">=</span> <span class="n">IID</span><span class="o">.</span><span class="n">from_string</span><span class="p">(</span><span class="n">clsiid</span><span class="p">)</span>
|
<span class="n">clsiid</span> <span class="o">=</span> <span class="n">IID</span><span class="o">.</span><span class="n">from_string</span><span class="p">(</span><span class="n">clsiid</span><span class="p">)</span>
|
||||||
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">custom_iid</span><span class="p">,</span> <span class="n">basestring</span><span class="p">):</span>
|
||||||
|
<span class="n">custom_iid</span> <span class="o">=</span> <span class="n">IID</span><span class="o">.</span><span class="n">from_string</span><span class="p">(</span><span class="n">custom_iid</span><span class="p">)</span>
|
||||||
<span class="n">winproxy</span><span class="o">.</span><span class="n">CoCreateInstance</span><span class="p">(</span><span class="n">byref</span><span class="p">(</span><span class="n">clsiid</span><span class="p">),</span> <span class="kc">None</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">byref</span><span class="p">(</span><span class="n">custom_iid</span><span class="p">),</span> <span class="n">byref</span><span class="p">(</span><span class="n">targetinterface</span><span class="p">))</span>
|
<span class="n">winproxy</span><span class="o">.</span><span class="n">CoCreateInstance</span><span class="p">(</span><span class="n">byref</span><span class="p">(</span><span class="n">clsiid</span><span class="p">),</span> <span class="kc">None</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">byref</span><span class="p">(</span><span class="n">custom_iid</span><span class="p">),</span> <span class="n">byref</span><span class="p">(</span><span class="n">targetinterface</span><span class="p">))</span>
|
||||||
<span class="k">return</span> <span class="n">targetinterface</span></div>
|
<span class="k">return</span> <span class="n">targetinterface</span></div>
|
||||||
|
|
||||||
@@ -479,7 +495,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="../../py-modindex.html" title="Python Module Index"
|
<a href="../../py-modindex.html" title="Python Module Index"
|
||||||
>modules</a> |</li>
|
>modules</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="../../index.html">PythonForWindows 1.0.3 documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li>
|
<li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">windows.com</a></li>
|
<li class="nav-item nav-item-this"><a href="">windows.com</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
+39
-7
@@ -4,12 +4,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>windows.crypto.certificate — PythonForWindows 1.0.0 documentation</title>
|
<title>windows.crypto.certificate — PythonForWindows 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="../../../_static/classic.css?v=def86cc0" />
|
<link rel="stylesheet" type="text/css" href="../../../_static/classic.css?v=def86cc0" />
|
||||||
<link rel="stylesheet" type="text/css" href="../../../_static/css/mbasic.css?v=957880af" />
|
<link rel="stylesheet" type="text/css" href="../../../_static/css/mbasic.css?v=957880af" />
|
||||||
|
|
||||||
<script src="../../../_static/documentation_options.js?v=8d563738"></script>
|
<script src="../../../_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
|
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
|
||||||
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||||
>modules</a> |</li>
|
>modules</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.4 documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> »</li>
|
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">windows.crypto.certificate</a></li>
|
<li class="nav-item nav-item-this"><a href="">windows.crypto.certificate</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
<span class="kn">import</span> <span class="nn">windows.generated_def</span> <span class="k">as</span> <span class="nn">gdef</span>
|
<span class="kn">import</span> <span class="nn">windows.generated_def</span> <span class="k">as</span> <span class="nn">gdef</span>
|
||||||
|
|
||||||
<span class="kn">from</span> <span class="nn">windows.crypto</span> <span class="kn">import</span> <span class="n">DEFAULT_ENCODING</span>
|
<span class="kn">from</span> <span class="nn">windows.crypto</span> <span class="kn">import</span> <span class="n">DEFAULT_ENCODING</span>
|
||||||
<span class="kn">from</span> <span class="nn">windows.pycompat</span> <span class="kn">import</span> <span class="n">urepr_encode</span>
|
<span class="kn">from</span> <span class="nn">windows.pycompat</span> <span class="kn">import</span> <span class="n">urepr_encode</span><span class="p">,</span> <span class="n">unicode_type</span>
|
||||||
|
|
||||||
<span class="kn">import</span> <span class="nn">windows.crypto.cryptmsg</span>
|
<span class="kn">import</span> <span class="nn">windows.crypto.cryptmsg</span>
|
||||||
|
|
||||||
@@ -99,7 +99,8 @@
|
|||||||
<span class="n">gdef</span><span class="o">.</span><span class="n">LPWSTR</span><span class="p">(</span><span class="n">filename</span><span class="p">),</span>
|
<span class="n">gdef</span><span class="o">.</span><span class="n">LPWSTR</span><span class="p">(</span><span class="n">filename</span><span class="p">),</span>
|
||||||
<span class="c1"># filename,</span>
|
<span class="c1"># filename,</span>
|
||||||
<span class="n">content_type</span><span class="p">,</span>
|
<span class="n">content_type</span><span class="p">,</span>
|
||||||
<span class="n">gdef</span><span class="o">.</span><span class="n">CERT_QUERY_FORMAT_FLAG_BINARY</span><span class="p">,</span>
|
<span class="c1"># gdef.CERT_QUERY_FORMAT_FLAG_BINARY,</span>
|
||||||
|
<span class="n">gdef</span><span class="o">.</span><span class="n">CERT_QUERY_FORMAT_FLAG_ALL</span><span class="p">,</span>
|
||||||
<span class="mi">0</span><span class="p">,</span>
|
<span class="mi">0</span><span class="p">,</span>
|
||||||
<span class="n">dwEncoding</span><span class="p">,</span>
|
<span class="n">dwEncoding</span><span class="p">,</span>
|
||||||
<span class="n">dwContentType</span><span class="p">,</span>
|
<span class="n">dwContentType</span><span class="p">,</span>
|
||||||
@@ -201,7 +202,22 @@
|
|||||||
<span class="w"> </span><span class="sd">"""Create a new :class:`CertificateStore` from system store ``store_name``</span>
|
<span class="w"> </span><span class="sd">"""Create a new :class:`CertificateStore` from system store ``store_name``</span>
|
||||||
<span class="sd"> (see `System Store Locations <https://msdn.microsoft.com/en-us/library/windows/desktop/aa388136(v=vs.85).aspx>`_)</span>
|
<span class="sd"> (see `System Store Locations <https://msdn.microsoft.com/en-us/library/windows/desktop/aa388136(v=vs.85).aspx>`_)</span>
|
||||||
<span class="sd"> """</span>
|
<span class="sd"> """</span>
|
||||||
<span class="n">res</span> <span class="o">=</span> <span class="n">winproxy</span><span class="o">.</span><span class="n">CertOpenStore</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">CERT_STORE_PROV_SYSTEM_A</span><span class="p">,</span> <span class="n">DEFAULT_ENCODING</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">CERT_SYSTEM_STORE_LOCAL_MACHINE</span> <span class="o">|</span> <span class="n">gdef</span><span class="o">.</span><span class="n">CERT_STORE_READONLY_FLAG</span><span class="p">,</span> <span class="n">store_name</span><span class="p">)</span>
|
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">store_name</span><span class="p">,</span> <span class="n">unicode_type</span><span class="p">):</span>
|
||||||
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"store_name should be an unicode string not </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">store_name</span><span class="p">)))</span>
|
||||||
|
<span class="n">res</span> <span class="o">=</span> <span class="n">winproxy</span><span class="o">.</span><span class="n">CertOpenStore</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">CERT_STORE_PROV_SYSTEM_W</span><span class="p">,</span> <span class="n">DEFAULT_ENCODING</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">CERT_SYSTEM_STORE_LOCAL_MACHINE</span> <span class="o">|</span> <span class="n">gdef</span><span class="o">.</span><span class="n">CERT_STORE_READONLY_FLAG</span><span class="p">,</span> <span class="n">store_name</span><span class="p">)</span>
|
||||||
|
<span class="k">return</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">res</span><span class="p">,</span> <span class="bp">cls</span><span class="p">)</span></div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="viewcode-block" id="CertificateStore.from_user_store">
|
||||||
|
<a class="viewcode-back" href="../../../crypto.html#windows.crypto.CertificateStore.from_user_store">[docs]</a>
|
||||||
|
<span class="nd">@classmethod</span>
|
||||||
|
<span class="k">def</span> <span class="nf">from_user_store</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">store_name</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
|
||||||
|
<span class="w"> </span><span class="sd">"""Create a new :class:`CertificateStore` from system store ``store_name``</span>
|
||||||
|
<span class="sd"> (see `System Store Locations <https://msdn.microsoft.com/en-us/library/windows/desktop/aa388136(v=vs.85).aspx>`_)</span>
|
||||||
|
<span class="sd"> """</span>
|
||||||
|
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">store_name</span><span class="p">,</span> <span class="n">unicode_type</span><span class="p">):</span>
|
||||||
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"store_name should be an unicode string not </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">store_name</span><span class="p">)))</span>
|
||||||
|
<span class="n">res</span> <span class="o">=</span> <span class="n">winproxy</span><span class="o">.</span><span class="n">CertOpenStore</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">CERT_STORE_PROV_SYSTEM_W</span><span class="p">,</span> <span class="n">DEFAULT_ENCODING</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">CERT_SYSTEM_STORE_CURRENT_USER</span> <span class="o">|</span> <span class="n">gdef</span><span class="o">.</span><span class="n">CERT_STORE_READONLY_FLAG</span><span class="p">,</span> <span class="n">store_name</span><span class="p">)</span>
|
||||||
<span class="k">return</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">res</span><span class="p">,</span> <span class="bp">cls</span><span class="p">)</span></div>
|
<span class="k">return</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">res</span><span class="p">,</span> <span class="bp">cls</span><span class="p">)</span></div>
|
||||||
|
|
||||||
|
|
||||||
@@ -508,6 +524,22 @@
|
|||||||
<span class="k">return</span> <span class="nb">bytearray</span><span class="p">(</span><span class="n">buf</span><span class="p">)</span></div>
|
<span class="k">return</span> <span class="nb">bytearray</span><span class="p">(</span><span class="n">buf</span><span class="p">)</span></div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="viewcode-block" id="Certificate.get_private_key">
|
||||||
|
<a class="viewcode-back" href="../../../crypto.html#windows.crypto.Certificate.get_private_key">[docs]</a>
|
||||||
|
<span class="k">def</span> <span class="nf">get_private_key</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">flags</span><span class="p">):</span>
|
||||||
|
<span class="w"> </span><span class="sd">"""Tmp API: return value will change"""</span>
|
||||||
|
<span class="n">keyhandle</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">HCRYPTPROV_OR_NCRYPT_KEY_HANDLE</span><span class="p">()</span>
|
||||||
|
<span class="n">keyspec</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">DWORD</span><span class="p">()</span>
|
||||||
|
<span class="n">must_free_handle</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">BOOL</span><span class="p">()</span>
|
||||||
|
<span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">CryptAcquireCertificatePrivateKey</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">flags</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="n">keyhandle</span><span class="p">,</span> <span class="n">keyspec</span><span class="p">,</span> <span class="n">must_free_handle</span><span class="p">)</span>
|
||||||
|
<span class="k">return</span> <span class="p">(</span><span class="n">keyhandle</span><span class="p">,</span> <span class="n">keyspec</span><span class="p">,</span> <span class="n">must_free_handle</span><span class="p">)</span></div>
|
||||||
|
|
||||||
|
|
||||||
|
<span class="nd">@property</span>
|
||||||
|
<span class="k">def</span> <span class="nf">private_key</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
|
<span class="w"> </span><span class="sd">"""Tmp API: return value will change"""</span>
|
||||||
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_private_key</span><span class="p">(</span><span class="n">flags</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">CRYPT_ACQUIRE_COMPARE_KEY_FLAG</span> <span class="o">|</span> <span class="n">gdef</span><span class="o">.</span><span class="n">CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG</span> <span class="o">|</span> <span class="n">gdef</span><span class="o">.</span><span class="n">CRYPT_ACQUIRE_USE_PROV_INFO_FLAG</span><span class="p">)</span>
|
||||||
|
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">encoded</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span> <span class="nf">encoded</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
@@ -697,7 +729,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||||
>modules</a> |</li>
|
>modules</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.4 documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> »</li>
|
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">windows.crypto.certificate</a></li>
|
<li class="nav-item nav-item-this"><a href="">windows.crypto.certificate</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
+9
-5
@@ -4,12 +4,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>windows.crypto.cryptmsg — PythonForWindows 1.0.0 documentation</title>
|
<title>windows.crypto.cryptmsg — PythonForWindows 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
|
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
|
||||||
<link rel="stylesheet" type="text/css" href="../../../_static/classic.css?v=def86cc0" />
|
<link rel="stylesheet" type="text/css" href="../../../_static/classic.css?v=def86cc0" />
|
||||||
<link rel="stylesheet" type="text/css" href="../../../_static/css/mbasic.css?v=957880af" />
|
<link rel="stylesheet" type="text/css" href="../../../_static/css/mbasic.css?v=957880af" />
|
||||||
|
|
||||||
<script src="../../../_static/documentation_options.js?v=8d563738"></script>
|
<script src="../../../_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
|
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
|
||||||
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||||
>modules</a> |</li>
|
>modules</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.4 documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> »</li>
|
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">windows.crypto.cryptmsg</a></li>
|
<li class="nav-item nav-item-this"><a href="">windows.crypto.cryptmsg</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -156,10 +156,14 @@
|
|||||||
<span class="k">def</span> <span class="nf">content</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span> <span class="nf">content</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_param</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">CMSG_CONTENT_PARAM</span><span class="p">)[:]</span>
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_param</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">CMSG_CONTENT_PARAM</span><span class="p">)[:]</span>
|
||||||
|
|
||||||
|
<span class="nd">@property</span>
|
||||||
|
<span class="k">def</span> <span class="nf">bare_content</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_param</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">CMSG_BARE_CONTENT_PARAM</span><span class="p">)[:]</span>
|
||||||
|
|
||||||
<span class="nd">@property</span>
|
<span class="nd">@property</span>
|
||||||
<span class="k">def</span> <span class="nf">content_type</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span> <span class="nf">content_type</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_param</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">CMSG_INNER_CONTENT_TYPE_PARAM</span><span class="p">)</span>
|
<span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_param</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">CMSG_INNER_CONTENT_TYPE_PARAM</span><span class="p">)</span>
|
||||||
<span class="k">assert</span> <span class="n">data</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"</span><span class="se">\x00</span><span class="s2">"</span><span class="p">,</span> <span class="s2">"CMSG_INNER_CONTENT_TYPE_PARAM not NULL TERMINATED"</span>
|
<span class="k">assert</span> <span class="n">data</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="sa">b</span><span class="s2">"</span><span class="se">\x00</span><span class="s2">"</span><span class="p">,</span> <span class="s2">"CMSG_INNER_CONTENT_TYPE_PARAM not NULL TERMINATED"</span>
|
||||||
<span class="k">return</span> <span class="n">data</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
|
<span class="k">return</span> <span class="n">data</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
|
||||||
|
|
||||||
|
|
||||||
@@ -216,7 +220,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="../../../py-modindex.html" title="Python Module Index"
|
<a href="../../../py-modindex.html" title="Python Module Index"
|
||||||
>modules</a> |</li>
|
>modules</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.4 documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> »</li>
|
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">windows.crypto.cryptmsg</a></li>
|
<li class="nav-item nav-item-this"><a href="">windows.crypto.cryptmsg</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user