Compare commits

...

18 Commits

Author SHA1 Message Date
hakril 8d517f29cf Merge pull request #62 from hakril/1.0.1
Version  1.0.1
2024-11-05 09:59:51 +01:00
hakril 2ff11e7e5f Candidate for 1.0.1 2024-11-05 09:34:04 +01:00
hakril e0852a2866 Merge pull request #61 from hakril/comupdate
Add multiple ctypes defintions
2024-11-04 17:03:23 +01:00
hakril 68a37443fd Update some access-right names 2024-11-04 16:00:30 +01:00
hakril 72962be653 Improve RPCClient 2024-10-28 13:52:00 +01:00
hakril b25fc491df More tests fixup 2024-10-24 18:34:00 +02:00
hakril 3de820046d Fix or improv test resilience 2024-10-24 17:32:20 +02:00
hakril 92863f7944 improve test_pe_parse.py resiliance to system32 pe format change 2024-10-24 17:13:28 +02:00
hakril db14bc0294 Small COM fix/improvements 2024-10-23 10:10:40 +02:00
hakril 979f7ec77a Small fix in simple_x86 2024-10-23 09:56:06 +02:00
hakril 91c468eba0 Update generated_def and winproxy 2024-10-23 09:55:39 +02:00
hakril 0cd51a088e Big ctypes_generation update + add lot of structures/interfaces 2024-10-23 09:53:59 +02:00
hakril 13d0b6b3b7 Merge pull request #58 from hakril/improv_simple_assembly
Improve handling of some instructions in simple x86/x64
2024-06-27 15:14:20 +02:00
hakril cbadada375 Testing stuff for new CI config 2024-06-27 14:57:56 +02:00
hakril f90991022a Update CI with publish-unit-test-result-action/windows@v2 2024-06-27 14:46:59 +02:00
hakril cbf456ac4f Adding some generated_def related to Section & NtReadFile/NtWriteFile 2024-06-27 14:34:33 +02:00
hakril 53554f45ab Improve handling of Jmp/Call/Push/Pop 2024-06-27 14:22:40 +02:00
hakril 006dce7054 Add tests for non-handled instruction format in simple x86/x64 2024-06-27 14:03:39 +02:00
152 changed files with 24904 additions and 3266 deletions
+3 -1
View File
@@ -31,6 +31,7 @@ jobs:
with:
python-version: ${{ matrix.python-version}}
architecture: x86
update-environment: false
## Install the 64bits version of python3 asked
- name: Set up Python3 ${{ matrix.python-version }} x64
if: ${{ matrix.python-version != '2.7' }}
@@ -38,6 +39,7 @@ jobs:
with:
python-version: ${{ matrix.python-version}}
architecture: x64
update-environment: false
# Manually install python2.7 (both version at once)
- name: Set up Python2.7 ${{ matrix.python-version }} x86 & x64
@@ -64,7 +66,7 @@ jobs:
run: py -${{ matrix.python-version}}-${{ matrix.python-bitness-to-test}} -m pytest --junitxml=junit/test-results.xml -s -k "not known_to_fail" -v tests/
- name: Publish PyTest Results
uses: EnricoMi/publish-unit-test-result-action/composite@v1
uses: EnricoMi/publish-unit-test-result-action/windows@v2
if: always()
with:
files: junit/test-results.xml
+1 -1
View File
@@ -10,7 +10,7 @@ class WinComParser(Parser):
PARAM_INFO = ["__RPC__deref_out", "__RPC__in", "__RPC__deref_out_opt", "__RPC__out", "__RPC__in_opt",
"__RPC__deref_opt_inout_opt", "__in", "__out", "__out_opt", "__in_opt", "__inout",
"__reserved", "__RPC__in_opt_string", "__RPC__inout_opt", "__RPC__in_string", "__deref_out_opt", "__RPC__inout",
"__RPC__deref_out_opt_string", "_COM_Outptr_", "_In_", "_In_opt_", "_Out_"]
"__RPC__deref_out_opt_string", "_COM_Outptr_", "_In_", "_In_opt_", "_Out_", "__deref_out"]
PARAM_INFO_WITH_VALUE = ["__RPC__in_ecount", "__RPC__out_ecount_part", "__RPC__in_ecount_full",
"__RPC__in_range", "__RPC__out_ecount_full", "__out_ecount_opt", "__out_ecount", "__in_ecount_opt",
"__in_ecount", "__out_bcount_opt", "__out_bcount", "__in_bcount", "__in_bcount_opt", "__RPC__out_ecount_full_string",
@@ -0,0 +1,29 @@
typedef struct ICallFactoryVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICallFactory * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICallFactory * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICallFactory * This);
HRESULT ( STDMETHODCALLTYPE *CreateCall )(
ICallFactory * This,
/* [annotation][in] */
__in REFIID riid,
/* [annotation][in] */
__in_opt IUnknown *pCtrlUnk,
/* [annotation][in] */
__in REFIID riid2,
/* [annotation][iid_is][out] */
__deref_out IUnknown **ppv);
END_INTERFACE
} ICallFactoryVtbl;
@@ -0,0 +1,27 @@
typedef struct IClassFactoryVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IClassFactory * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IClassFactory * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IClassFactory * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateInstance )(
IClassFactory * This,
/* [unique][in] */ IUnknown *pUnkOuter,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *LockServer )(
IClassFactory * This,
/* [in] */ BOOL fLock);
END_INTERFACE
} IClassFactoryVtbl;
@@ -0,0 +1,63 @@
typedef struct IClientSecurityVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IClientSecurity * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IClientSecurity * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IClientSecurity * This);
HRESULT ( STDMETHODCALLTYPE *QueryBlanket )(
IClientSecurity * This,
/* [annotation][in] */
__in IUnknown *pProxy,
/* [annotation][out] */
__out DWORD *pAuthnSvc,
/* [annotation][out] */
__out_opt DWORD *pAuthzSvc,
/* [annotation][out] */
__RPC__deref_out_opt OLECHAR **pServerPrincName,
/* [annotation][out] */
__out_opt DWORD *pAuthnLevel,
/* [annotation][out] */
__out_opt DWORD *pImpLevel,
/* [annotation][out] */
__deref_out_opt void **pAuthInfo,
/* [annotation][out] */
__out_opt DWORD *pCapabilites);
HRESULT ( STDMETHODCALLTYPE *SetBlanket )(
IClientSecurity * This,
/* [annotation][in] */
__in IUnknown *pProxy,
/* [annotation][in] */
__in DWORD dwAuthnSvc,
/* [annotation][in] */
__in DWORD dwAuthzSvc,
/* [annotation][in] */
__RPC__in_opt OLECHAR *pServerPrincName,
/* [annotation][in] */
__in DWORD dwAuthnLevel,
/* [annotation][in] */
__in DWORD dwImpLevel,
/* [annotation][in] */
__in_opt void *pAuthInfo,
/* [annotation][in] */
__in DWORD dwCapabilities);
HRESULT ( STDMETHODCALLTYPE *CopyProxy )(
IClientSecurity * This,
/* [annotation][in] */
__in IUnknown *pProxy,
/* [annotation][out] */
__deref_out IUnknown **ppCopy);
END_INTERFACE
} IClientSecurityVtbl;
@@ -0,0 +1,74 @@
typedef struct IComCatalogVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IComCatalog * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IComCatalog * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IComCatalog * This);
HRESULT ( STDMETHODCALLTYPE *GetClassInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidConfiguredClsid,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetApplicationInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidApplId,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetProcessInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidProcess,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetServerGroupInfo )(
IComCatalog * This,
/* [in] */ REFGUID guidServerGroup,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetRetQueueInfo )(
IComCatalog * This,
/* [string][in] */ WCHAR *wszFormatName,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetApplicationInfoForExe )(
IComCatalog * This,
/* [string][in] */ WCHAR *pwszExeName,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetTypeLibrary )(
IComCatalog * This,
/* [in] */ REFGUID guidTypeLib,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *GetInterfaceInfo )(
IComCatalog * This,
/* [in] */ REFIID iidInterface,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *FlushCache )(
IComCatalog * This);
HRESULT ( STDMETHODCALLTYPE *GetClassInfoFromProgId )(
IComCatalog * This,
/* [in] */ WCHAR *pwszProgID,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
END_INTERFACE
} IComCatalogVtbl;
@@ -0,0 +1,22 @@
typedef struct IInternalUnknownVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IInternalUnknown * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IInternalUnknown * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IInternalUnknown * This);
HRESULT ( STDMETHODCALLTYPE *QueryInternalInterface )(
IInternalUnknown * This,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
END_INTERFACE
} IInternalUnknownVtbl;
@@ -0,0 +1,58 @@
typedef struct IMarshalVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMarshal * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMarshal * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMarshal * This);
HRESULT ( STDMETHODCALLTYPE *GetUnmarshalClass )(
IMarshal * This,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ CLSID *pCid);
HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )(
IMarshal * This,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ DWORD *pSize);
HRESULT ( STDMETHODCALLTYPE *MarshalInterface )(
IMarshal * This,
/* [unique][in] */ IStream *pStm,
/* [in] */ REFIID riid,
/* [unique][in] */ void *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void *pvDestContext,
/* [in] */ DWORD mshlflags);
HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )(
IMarshal * This,
/* [unique][in] */ IStream *pStm,
/* [in] */ REFIID riid,
/* [out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )(
IMarshal * This,
/* [unique][in] */ IStream *pStm);
HRESULT ( STDMETHODCALLTYPE *DisconnectObject )(
IMarshal * This,
/* [in] */ DWORD dwReserved);
END_INTERFACE
} IMarshalVtbl;
@@ -0,0 +1,67 @@
typedef struct IObjContextVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IObjContext * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IObjContext * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IObjContext * This);
HRESULT ( STDMETHODCALLTYPE *SetProperty )(
IObjContext * This,
/* [annotation][in] */
__in REFGUID rpolicyId,
/* [annotation][in] */
__in CPFLAGS flags,
/* [annotation][in] */
__in IUnknown *pUnk);
HRESULT ( STDMETHODCALLTYPE *RemoveProperty )(
IObjContext * This,
/* [annotation][in] */
__in REFGUID rPolicyId);
HRESULT ( STDMETHODCALLTYPE *GetProperty )(
IObjContext * This,
/* [annotation][in] */
__in REFGUID rGuid,
/* [annotation][out] */
__out CPFLAGS *pFlags,
/* [annotation][out] */
__deref_out IUnknown **ppUnk);
HRESULT ( STDMETHODCALLTYPE *EnumContextProps )(
IObjContext * This,
/* [annotation][out] */
__deref_out IEnumContextProps **ppEnumContextProps);
PVOID ( STDMETHODCALLTYPE *Reserved1 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved2 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved3 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved4 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved5 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved6 )(
IObjContext * This);
PVOID ( STDMETHODCALLTYPE *Reserved7 )(
IObjContext * This);
END_INTERFACE
} IObjContextVtbl;
@@ -0,0 +1,36 @@
typedef struct IRemUnknownVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IRemUnknown * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IRemUnknown * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IRemUnknown * This);
HRESULT ( STDMETHODCALLTYPE *RemQueryInterface )(
IRemUnknown * This,
/* [in] */ REFIPID ripid,
/* [in] */ ULONG cRefs,
/* [in] */ USHORT cIids,
/* [size_is][in] */ IID *iids,
/* [size_is][size_is][out] */ REMQIRESULT **ppQIResults);
HRESULT ( STDMETHODCALLTYPE *RemAddRef )(
IRemUnknown * This,
/* [in] */ USHORT cInterfaceRefs,
/* [size_is][in] */ REMINTERFACEREF *InterfaceRefs,
/* [size_is][out] */ HRESULT *pResults);
HRESULT ( STDMETHODCALLTYPE *RemRelease )(
IRemUnknown * This,
/* [in] */ USHORT cInterfaceRefs,
/* [size_is][in] */ REMINTERFACEREF *InterfaceRefs);
END_INTERFACE
} IRemUnknownVtbl;
@@ -0,0 +1,20 @@
// IStdIdentity is an empty interface to check that an object is the IStdIdentity
// and thus query other interface
typedef struct IStdIdentityVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IUnknown * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IUnknown * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IUnknown * This);
END_INTERFACE
} IStdIdentityVtbl;
@@ -0,0 +1,108 @@
typedef struct IStorageVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IStorage * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IStorage * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IStorage * This);
HRESULT ( STDMETHODCALLTYPE *CreateStream )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [in] */ DWORD grfMode,
/* [in] */ DWORD reserved1,
/* [in] */ DWORD reserved2,
/* [out] */ IStream **ppstm);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *OpenStream )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ void *reserved1,
/* [in] */ DWORD grfMode,
/* [in] */ DWORD reserved2,
/* [out] */ IStream **ppstm);
HRESULT ( STDMETHODCALLTYPE *CreateStorage )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [in] */ DWORD grfMode,
/* [in] */ DWORD reserved1,
/* [in] */ DWORD reserved2,
/* [out] */ IStorage **ppstg);
HRESULT ( STDMETHODCALLTYPE *OpenStorage )(
IStorage * This,
/* [string][unique][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ IStorage *pstgPriority,
/* [in] */ DWORD grfMode,
/* [unique][in] */ SNB snbExclude,
/* [in] */ DWORD reserved,
/* [out] */ IStorage **ppstg);
HRESULT ( STDMETHODCALLTYPE *CopyTo )(
IStorage * This,
/* [in] */ DWORD ciidExclude,
/* [size_is][unique][in] */ const IID *rgiidExclude,
/* [unique][in] */ SNB snbExclude,
/* [unique][in] */ IStorage *pstgDest);
HRESULT ( STDMETHODCALLTYPE *MoveElementTo )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ IStorage *pstgDest,
/* [string][in] */ const OLECHAR *pwcsNewName,
/* [in] */ DWORD grfFlags);
HRESULT ( STDMETHODCALLTYPE *Commit )(
IStorage * This,
/* [in] */ DWORD grfCommitFlags);
HRESULT ( STDMETHODCALLTYPE *Revert )(
IStorage * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *EnumElements )(
IStorage * This,
/* [in] */ DWORD reserved1,
/* [size_is][unique][in] */ void *reserved2,
/* [in] */ DWORD reserved3,
/* [out] */ IEnumSTATSTG **ppenum);
HRESULT ( STDMETHODCALLTYPE *DestroyElement )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsName);
HRESULT ( STDMETHODCALLTYPE *RenameElement )(
IStorage * This,
/* [string][in] */ const OLECHAR *pwcsOldName,
/* [string][in] */ const OLECHAR *pwcsNewName);
HRESULT ( STDMETHODCALLTYPE *SetElementTimes )(
IStorage * This,
/* [string][unique][in] */ const OLECHAR *pwcsName,
/* [unique][in] */ const FILETIME *pctime,
/* [unique][in] */ const FILETIME *patime,
/* [unique][in] */ const FILETIME *pmtime);
HRESULT ( STDMETHODCALLTYPE *SetClass )(
IStorage * This,
/* [in] */ REFCLSID clsid);
HRESULT ( STDMETHODCALLTYPE *SetStateBits )(
IStorage * This,
/* [in] */ DWORD grfStateBits,
/* [in] */ DWORD grfMask);
HRESULT ( STDMETHODCALLTYPE *Stat )(
IStorage * This,
/* [out] */ STATSTG *pstatstg,
/* [in] */ DWORD grfStatFlag);
END_INTERFACE
} IStorageVtbl;
@@ -1,28 +0,0 @@
typedef struct MyClsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
MyCls * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
MyCls * This);
ULONG ( STDMETHODCALLTYPE *Release )(
MyCls * This);
HRESULT ( STDMETHODCALLTYPE *add )(
MyCls * This,
/* [in] */ UINT x,
/* [in] */ UINT y,
/* [out] */ UINT *res);
HRESULT ( STDMETHODCALLTYPE *print_state )(
MyCls * This);
END_INTERFACE
} MyClsVtbl;
@@ -0,0 +1,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;
+29 -8
View File
@@ -19,8 +19,8 @@ class COMInterface(ctypes.c_void_p):
# So COMInterface completely bypass the HRESULT
# return value check on restype by setting the restype to COMHRESULT
# But we add the 'errcheck' callbakc capacity for all COMInterface and subclasses
# So the default implem of the callbakc must have the same behavior as
# But we add the 'errcheck' callback capacity for all COMInterface and subclasses
# So the default implem of the callback must have the same behavior as
# standard HRESULT restype.
# This is why default errcheck callback call ctypes._check_HRESULT
def _default_errcheck(self, result, func, args):
@@ -42,12 +42,33 @@ class COMInterface(ctypes.c_void_p):
description = "<NULL>" if not self.value else ""
return "<{0}{1} at {2:#x}>".format(type(self).__name__, description, id(self))
# Simplified API for QueryInterface for interface embeding there IID
def query(self, interfacetype):
interface = interfacetype()
self.QueryInterface(interface.IID, interface)
return interface
# Simplified API for QueryInterface for interface embeding their IID
# Or for string/Obj
def query(self, interface, target=None):
if isinstance(interface, str): # We have a GUID
interface_iid = IID.from_string(interface)
if target is None:
target = IUnknown()
elif issubclass(interface, COMInterface): # We have a PFW COM interface
interface_iid = interface.IID
if target is None:
target = interface() # Use an instance of the ComInterface as target of the QueryInterface
else:
# We have something else (A gdef.GUID probably)
interface_iid = interface
if target is None:
target = IUnknown()
self.QueryInterface(interface_iid, target)
return target
def marshal(self, target_iid=None, destination=MSHCTX_NOSHAREDMEM, flags=MSHLFLAGS_NORMAL):
if target_iid is None:
target_iid = self.IID
mystream = windows.com.MemoryIStream.create()
windows.winproxy.CoMarshalInterface(mystream, target_iid, self, destination, 0, flags)
mystream.seek(0)
buffer = mystream.read(0xffffffff) # Todo: release stuff
return buffer
@@ -0,0 +1,29 @@
#define ORPCF_NULL ( 0 )
#define ORPCF_LOCAL ( 1 )
#define ORPCF_RESERVED1 ( 2 )
#define ORPCF_RESERVED2 ( 4 )
#define ORPCF_RESERVED3 ( 8 )
#define ORPCF_RESERVED4 ( 16 )
#define ORPCF_INPUT_SYNC ORPCF_RESERVED1
#define ORPCF_ASYNC ORPCF_RESERVED2
#define ORPCF_DYNAMIC_CLOAKING ORPCF_RESERVED3
#define ORPCF_REJECTED ORPCF_RESERVED1
#define ORPCF_RETRY_LATER ORPCF_RESERVED2
#define OBJREF_SIGNATURE ( 0x574f454d )
#define OBJREF_STANDARD ( 0x1 )
#define OBJREF_HANDLER ( 0x2 )
#define OBJREF_CUSTOM ( 0x4 )
#define OBJREF_EXTENDED ( 0x8 )
#define SORF_OXRES1 ( 0x1 )
#define SORF_OXRES2 ( 0x20 )
#define SORF_OXRES3 ( 0x40 )
#define SORF_OXRES4 ( 0x80 )
#define SORF_OXRES5 ( 0x100 )
#define SORF_OXRES6 ( 0x200 )
#define SORF_OXRES7 ( 0x400 )
#define SORF_OXRES8 ( 0x800 )
#define SORF_NULL ( 0 )
#define SORF_NOPING ( 0x1000 )
@@ -0,0 +1 @@
#define MEM_EXTENDED_PARAMETER_TYPE_BITS 8
@@ -258,15 +258,15 @@
#define FAX_JOB_MANAGE (0x0040)
// COM Specific Access Rights (Custom NAME)
// Based on internet search for "COM Access Mask"
// COM Specific Access Rights
// Based on https://learn.microsoft.com/en-us/windows/win32/com/access-control-lists-for-com
#define COM_EXECUTE (0x0001)
#define COM_EXECUTE_LOCAL (0x0002)
#define COM_EXECUTE_REMOTE (0x0004)
#define COM_ACTIVATE_LOCAL (0x0008)
#define COM_ACTIVATE_REMOTE (0x0010)
#define COM_RIGHTS_EXECUTE (0x0001)
#define COM_RIGHTS_EXECUTE_LOCAL (0x0002)
#define COM_RIGHTS_EXECUTE_REMOTE (0x0004)
#define COM_RIGHTS_ACTIVATE_LOCAL (0x0008)
#define COM_RIGHTS_ACTIVATE_REMOTE (0x0010)
//
// Section Access Rights.
@@ -135,4 +135,31 @@ PVOID SysAllocString(
VOID SysFreeString(
[in, optional] BSTR bstrString
);
);
HRESULT CreateStreamOnHGlobal(
[in] HGLOBAL hGlobal,
[in] BOOL fDeleteOnRelease,
[out] LPSTREAM *ppstm
);
HRESULT GetHGlobalFromStream(
[in] LPUNKNOWN pstm,
[out] HGLOBAL *phglobal
);
HRESULT CoMarshalInterface(
[in] LPUNKNOWN pStm,
[in] REFIID riid,
[in] LPUNKNOWN pUnk,
[in] DWORD dwDestContext,
[in, optional] LPVOID pvDestContext,
[in] DWORD mshlflags
);
HRESULT CoUnmarshalInterface(
[in] PVOID pStm,
[in] REFIID riid,
[out] LPVOID *ppv
);
@@ -109,28 +109,6 @@ BOOL WINAPI SymEnumSymbolsEx(
_In_ DWORD Options
);
BOOL WINAPI SymEnumTypes(
_In_ HANDLE hProcess,
_In_ ULONG64 BaseOfDll,
_In_ PVOID EnumSymbolsCallback,
_In_ PVOID UserContext
);
BOOL WINAPI SymEnumTypesByName(
_In_ HANDLE hProcess,
_In_ ULONG64 BaseOfDll,
_In_ PCSTR mask,
_In_ PVOID EnumSymbolsCallback,
_In_ PVOID UserContext
);
BOOL WINAPI SymEnumTypesByNameW(
[in] HANDLE hProcess,
[in] ULONG64 BaseOfDll,
[in, optional] PCWSTR mask,
[in] PVOID EnumSymbolsCallback,
[in] PVOID UserContext
);
BOOL WINAPI SymEnumerateModules64(
_In_ HANDLE hProcess,
@@ -438,4 +416,35 @@ BOOL SymSetSearchPath(
BOOL SymSetSearchPathW(
HANDLE hProcess,
PCWSTR SearchPath
);
BOOL SymEnumTypes(
[in] HANDLE hProcess,
[in] ULONG64 BaseOfDll,
[in] PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
[in, optional] PVOID UserContext
);
BOOL SymEnumTypesW(
[in] HANDLE hProcess,
[in] ULONG64 BaseOfDll,
[in] PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
[in, optional] PVOID UserContext
);
BOOL SymEnumTypesByName(
[in] HANDLE hProcess,
[in] ULONG64 BaseOfDll,
[in, optional] PCSTR mask,
[in] PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
[in] PVOID UserContext
);
BOOL SymEnumTypesByNameW(
[in] HANDLE hProcess,
[in] ULONG64 BaseOfDll,
[in, optional] PCWSTR mask,
[in] PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
[in] PVOID UserContext
);
@@ -367,3 +367,28 @@ NTSTATUS NtTerminateProcess(
HANDLE ProcessHandle,
NTSTATUS ExitStatus
);
NTSTATUS NtReadFile(
_In_ HANDLE FileHandle,
_In_opt_ HANDLE Event,
_In_opt_ PIO_APC_ROUTINE ApcRoutine,
_In_opt_ PVOID ApcContext,
_Out_ PIO_STATUS_BLOCK IoStatusBlock,
_Out_ PVOID Buffer,
_In_ ULONG Length,
_In_opt_ PLARGE_INTEGER ByteOffset,
_In_opt_ PULONG Key
);
NTSTATUS NtWriteFile(
[in] HANDLE FileHandle,
[in, optional] HANDLE Event,
[in, optional] PIO_APC_ROUTINE ApcRoutine,
[in, optional] PVOID ApcContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] PVOID Buffer,
[in] ULONG Length,
[in, optional] PLARGE_INTEGER ByteOffset,
[in, optional] PULONG Key
);
File diff suppressed because it is too large Load Diff
+18 -1
View File
@@ -22,6 +22,8 @@ KAFFINITY = ULONG_PTR
KPRIORITY = LONG
INTERNET_PORT = WORD
CHAR = c_char
PCHAR = POINTER(CHAR)
UCHAR = c_char
@@ -38,6 +40,7 @@ LPCH = c_char_p
LPWCH = c_wchar
BSTR = c_wchar_p
OLECHAR = c_wchar
SNB = POINTER(POINTER(OLECHAR))
POLECHAR = c_wchar_p
PZZWSTR = c_wchar_p
PUCHAR = POINTER(UCHAR)
@@ -74,7 +77,7 @@ ALG_ID = UINT
DISPID = LONG
MEMBERID = DISPID
LRESULT = LONG_PTR
LPUNKNOWN = POINTER(PVOID)
LPUNKNOWN = PVOID
LPPOINT = POINTER(POINT)
LPRECT = POINTER(RECT)
SPC_UUID = BYTE * 16
@@ -85,6 +88,10 @@ FILEOP_FLAGS = WORD
NET_API_STATUS = DWORD
// 2 custom PFW defintions for bitness-forces structures
PVOID32 = DWORD
PVOID64 = DWORD64
NCRYPT_HANDLE = ULONG_PTR
NCRYPT_PROV_HANDLE = ULONG_PTR
NCRYPT_KEY_HANDLE = ULONG_PTR
@@ -202,6 +209,16 @@ RPCOLEDATAREP = ULONG
HREFTYPE = DWORD
SFGAOF = ULONG
ID = ULONG64
MID = ID // Machine Identifier
OXID = ID // Object Exporter Identifier
OID = ID // Object Identifer
SETID = ID // Ping Set Identifier
// Interface pointer definition
LPSTREAM = PVOID # Istream*
/* SOCKET STUFF */
GROUP = UINT
@@ -291,38 +291,6 @@ typedef struct _REMOTE_PORT_VIEW {
PVOID ViewBase;
} REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW;
typedef struct tagCOMVERSION
{
USHORT MajorVersion;
USHORT MinorVersion;
} COMVERSION;
typedef struct tagORPCTHIS {
COMVERSION version;
ULONG flags;
ULONG reserved1;
GUID cid;
PVOID extensions; // [unique] ORPC_EXTENT_ARRAY *extensions;
} ORPCTHIS;
typedef struct __MIDL_XmitDefs_0001 {
GUID asyncOperationId;
ULONG64 oxidClientProcessNA;
GUID originalClientLogicalThreadId;
ULONG64 uClientCausalityTraceId;
} MIDL_XmitDefs_0001;
typedef struct _LOCALTHIS {
DWORD dwFlags;
DWORD dwClientThread;
GUID passthroughTraceActivity;
GUID callTraceActivity;
MIDL_XmitDefs_0001 asyncRequestBlock;
DWORD reserved;
PVOID pTouchedAstaArray; // Ptr32 __MIDL_XmitDefs_0002
} LOCALTHIS;
@@ -153,10 +153,3 @@ typedef struct __tagVARIANT {
_ANON_TMP_variant_sub_union _VARIANT_NAME_3;
} _tagVARIANT, VARIANT, VARIANTARG, *LPVARIANT, *LPVARIANTARG;
typedef enum tagCOMSD {
SD_LAUNCHPERMISSIONS = 0,
SD_ACCESSPERMISSIONS = 1,
SD_LAUNCHRESTRICTIONS = 2,
SD_ACCESSRESTRICTIONS = 3
} COMSD;
@@ -0,0 +1,427 @@
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_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;
typedef struct _LOCALTHIS32 {
DWORD dwFlags;
DWORD dwClientThread;
GUID passthroughTraceActivity;
GUID callTraceActivity;
MIDL_XmitDefs_0001 asyncRequestBlock;
DWORD reserved;
PVOID32 pTouchedAstaArray; // Ptr32 __MIDL_XmitDefs_0002
} LOCALTHIS32;
/* 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 _LOCALTHAT32 {
UINT64 marshalingSetId;
ULONG reserved;
PVOID32 pAsyncResponseBlock;
PVOID32 containerErrorInformation;
PVOID32 containerPassthroughData;
} LOCALTHAT32;
typedef struct tagORPCTHAT {
ULONG flags;
tagORPC_EXTENT_ARRAY *extensions;
} ORPCTHAT;
typedef struct ORPCTHAT32 {
ULONG flags;
PVOID32 extensions; // tagORPC_EXTENT_ARRAY tagORPC_EXTENT_ARRAY
} ORPCTHAT32;
@@ -5,4 +5,4 @@ typedef struct _GUID {
USHORT Data2;
USHORT Data3;
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,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;
@@ -130,7 +130,7 @@ typedef struct _IMAGEHLP_MODULEW64 {
WCHAR LoadedImageName[256];
WCHAR LoadedPdbName[256];
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;
GUID PdbSig70;
DWORD PdbAge;
@@ -1730,15 +1730,12 @@ typedef struct _OBJECT_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 {
TMP_UNION_IO_STATUS_BLOCK DUMMYUNIONNAME;
ULONG_PTR Information;
union {
NTSTATUS Status;
PVOID Pointer;
};
ULONG_PTR Information;
} 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
+1 -1
View File
@@ -22,7 +22,7 @@ class _GUID(INITIAL_GUID):
self.name = None
if self.name is None:
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__
@@ -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))
+25 -3
View File
@@ -399,6 +399,10 @@ class NtStatusDocGenerator(NoTemplatedGenerator):
for value, name, descr in file.data:
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):
IGNORED_INTERFACE = set(COMParsedFile.IGNORED_INTERFACE)
def __init__(self, *args, **kwargs):
@@ -412,12 +416,15 @@ class COMCtypesGenerator(CtypesGenerator):
def parse_iid_file(self, filename):
data = open(filename).read()
for line in data.split("\n"):
if line.strip().startswith("//"):
continue # Commentaires du pauvre
name, iid = line.split("|")
self.iids_def[name] = self.parse_iid(iid), iid
def generate_files(self, files):
self.generate_known_iid_list()
# 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
# - This allow COM function to refer the interface in their def :)
for file in files:
@@ -425,19 +432,34 @@ class COMCtypesGenerator(CtypesGenerator):
for file in files:
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):
name = cominterface.name
if cominterface.iid is not None:
iid_str = cominterface.iid
iid_python = self.parse_iid(iid_str)
else:
print("Lookup of IID for <{0}>".format(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(' 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('')
# 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):
name = cominterface.name
+1 -1
View File
@@ -1,4 +1,4 @@
# 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.
config: 92d6a80a7446628386dc1fdf3dc6b1c0
config: 01121266b90a8b5351869d0cc2981bae
tags: 645f666f9bcd5a90fca523b33c5a78b7
+4 -4
View File
@@ -4,12 +4,12 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Overview: module code &#8212; PythonForWindows 1.0.0 documentation</title>
<title>Overview: module code &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="../_static/documentation_options.js?v=8d563738"></script>
<script src="../_static/documentation_options.js?v=292eb321"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -25,7 +25,7 @@
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Overview: module code</a></li>
</ul>
</div>
@@ -115,7 +115,7 @@
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Overview: module code</a></li>
</ul>
</div>
+10
View File
@@ -111,6 +111,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="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">
<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>
@@ -119,6 +127,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="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="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="k">return</span> <span class="n">targetinterface</span></div>
+11 -5
View File
@@ -190,11 +190,17 @@
<span class="n">t</span> <span class="o">=</span> <span class="n">rt</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">cproc</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">t</span> <span class="o">=</span> <span class="n">rt</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="s2">&quot;contents&quot;</span><span class="p">):</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">t</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">value</span>
<span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
<span class="k">pass</span>
<span class="n">content</span> <span class="o">=</span> <span class="kc">None</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">content</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">contents</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="c1"># contents will fail on basic type</span>
<span class="c1"># Not really an expected behavior</span>
<span class="c1"># But it works for now.. (and since a while)</span>
<span class="k">pass</span>
<span class="k">if</span> <span class="n">content</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">t</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">value</span>
<span class="n">res</span><span class="p">[</span><span class="n">name</span><span class="p">[</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">t</span>
<span class="k">return</span> <span class="n">res</span>
+3 -1
View File
@@ -283,6 +283,8 @@
<span class="nd">@property</span>
<span class="k">def</span> <span class="nf">children</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_children</span>
<span class="k">if</span> <span class="n">count</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">None</span>
<span class="k">class</span> <span class="nc">res_struct</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">&quot;Count&quot;</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">ULONG</span><span class="p">),</span> <span class="p">(</span><span class="s2">&quot;Start&quot;</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">ULONG</span><span class="p">),</span> <span class="p">(</span><span class="s2">&quot;Types&quot;</span><span class="p">,</span> <span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">ULONG</span> <span class="o">*</span> <span class="n">count</span><span class="p">))]</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">res_struct</span><span class="p">()</span>
@@ -568,7 +570,7 @@
<span class="k">else</span><span class="p">:</span>
<span class="n">callback</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">WINFUNCTYPE</span><span class="p">(</span><span class="n">gdef</span><span class="o">.</span><span class="n">BOOL</span><span class="p">,</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">POINTER</span><span class="p">(</span><span class="n">SymbolInfo</span><span class="p">),</span> <span class="n">gdef</span><span class="o">.</span><span class="n">ULONG</span> <span class="p">,</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">py_object</span><span class="p">)(</span><span class="n">callback</span><span class="p">)</span>
<span class="n">addr</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">mod</span><span class="p">,</span> <span class="s2">&quot;addr&quot;</span><span class="p">,</span> <span class="n">mod</span><span class="p">)</span> <span class="c1"># Retrieve mod.addr, else us the value directly</span>
<span class="n">addr</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">mod</span><span class="p">,</span> <span class="s2">&quot;addr&quot;</span><span class="p">,</span> <span class="n">mod</span><span class="p">)</span> <span class="c1"># Retrieve mod.addr, else use the value directly</span>
<span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">SymSearchW</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="n">gdef</span><span class="o">.</span><span class="n">DWORD64</span><span class="p">(</span><span class="n">addr</span><span class="p">),</span> <span class="mi">0</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">mask</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">callback</span><span class="p">,</span> <span class="n">res</span><span class="p">,</span> <span class="n">options</span><span class="p">)</span>
<span class="k">for</span> <span class="n">sym</span> <span class="ow">in</span> <span class="n">res</span><span class="p">:</span>
<span class="n">sym</span><span class="o">.</span><span class="n">resolver</span> <span class="o">=</span> <span class="bp">self</span>
File diff suppressed because it is too large Load Diff
+786 -73
View File
@@ -135,6 +135,7 @@
<span class="n">LPWCH</span> <span class="o">=</span> <span class="n">c_wchar</span>
<span class="n">BSTR</span> <span class="o">=</span> <span class="n">c_wchar_p</span>
<span class="n">OLECHAR</span> <span class="o">=</span> <span class="n">c_wchar</span>
<span class="n">SNB</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">POINTER</span><span class="p">(</span><span class="n">OLECHAR</span><span class="p">))</span>
<span class="n">POLECHAR</span> <span class="o">=</span> <span class="n">c_wchar_p</span>
<span class="n">PZZWSTR</span> <span class="o">=</span> <span class="n">c_wchar_p</span>
<span class="n">PUCHAR</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">UCHAR</span><span class="p">)</span>
@@ -170,7 +171,7 @@
<span class="n">DISPID</span> <span class="o">=</span> <span class="n">LONG</span>
<span class="n">MEMBERID</span> <span class="o">=</span> <span class="n">DISPID</span>
<span class="n">LRESULT</span> <span class="o">=</span> <span class="n">LONG_PTR</span>
<span class="n">LPUNKNOWN</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">PVOID</span><span class="p">)</span>
<span class="n">LPUNKNOWN</span> <span class="o">=</span> <span class="n">PVOID</span>
<span class="n">LPPOINT</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">POINT</span><span class="p">)</span>
<span class="n">LPRECT</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">RECT</span><span class="p">)</span>
<span class="n">SPC_UUID</span> <span class="o">=</span> <span class="n">BYTE</span><span class="o">*</span><span class="mi">16</span>
@@ -179,6 +180,8 @@
<span class="n">PWINDBG_EXTENSION_APIS64</span> <span class="o">=</span> <span class="n">PVOID</span>
<span class="n">FILEOP_FLAGS</span> <span class="o">=</span> <span class="n">WORD</span>
<span class="n">NET_API_STATUS</span> <span class="o">=</span> <span class="n">DWORD</span>
<span class="n">PVOID32</span> <span class="o">=</span> <span class="n">DWORD</span>
<span class="n">PVOID64</span> <span class="o">=</span> <span class="n">DWORD64</span>
<span class="n">NCRYPT_HANDLE</span> <span class="o">=</span> <span class="n">ULONG_PTR</span>
<span class="n">NCRYPT_PROV_HANDLE</span> <span class="o">=</span> <span class="n">ULONG_PTR</span>
<span class="n">NCRYPT_KEY_HANDLE</span> <span class="o">=</span> <span class="n">ULONG_PTR</span>
@@ -298,6 +301,12 @@
<span class="n">RPCOLEDATAREP</span> <span class="o">=</span> <span class="n">ULONG</span>
<span class="n">HREFTYPE</span> <span class="o">=</span> <span class="n">DWORD</span>
<span class="n">SFGAOF</span> <span class="o">=</span> <span class="n">ULONG</span>
<span class="n">ID</span> <span class="o">=</span> <span class="n">ULONG64</span>
<span class="n">MID</span> <span class="o">=</span> <span class="n">ID</span>
<span class="n">OXID</span> <span class="o">=</span> <span class="n">ID</span>
<span class="n">OID</span> <span class="o">=</span> <span class="n">ID</span>
<span class="n">SETID</span> <span class="o">=</span> <span class="n">ID</span>
<span class="n">LPSTREAM</span> <span class="o">=</span> <span class="n">PVOID</span><span class="c1">#Istream*</span>
<span class="n">GROUP</span> <span class="o">=</span> <span class="n">UINT</span>
<span class="n">SOCKET</span> <span class="o">=</span> <span class="n">HANDLE</span>
<span class="n">WNDPROC</span> <span class="o">=</span> <span class="n">PVOID</span>
@@ -542,15 +551,18 @@
<span class="p">(</span><span class="s2">&quot;Data3&quot;</span><span class="p">,</span> <span class="n">USHORT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;Data4&quot;</span><span class="p">,</span> <span class="n">BYTE</span> <span class="o">*</span> <span class="p">(</span><span class="mi">8</span><span class="p">)),</span>
<span class="p">]</span>
<span class="n">CID</span> <span class="o">=</span> <span class="n">_GUID</span>
<span class="n">CLSID</span> <span class="o">=</span> <span class="n">_GUID</span>
<span class="n">GUID</span> <span class="o">=</span> <span class="n">_GUID</span>
<span class="n">IID</span> <span class="o">=</span> <span class="n">_GUID</span>
<span class="n">IPID</span> <span class="o">=</span> <span class="n">_GUID</span>
<span class="n">LPCGUID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">LPCLSID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">LPGUID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">REFCLSID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">REFGUID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">REFIID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">REFIPID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">INITIAL_GUID</span> <span class="o">=</span> <span class="n">_GUID</span>
<div class="viewcode-block" id="_GUID">
@@ -578,7 +590,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="kc">None</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">return</span> <span class="s1">&#39;&lt;GUID &quot;</span><span class="si">{0}</span><span class="s1">&quot;&gt;&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">strid</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
<span class="k">return</span> <span class="s1">&#39;&lt;GUID &quot;</span><span class="si">{0}</span><span class="s1">(</span><span class="si">{1}</span><span class="s1">)&quot;&gt;&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">strid</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="k">return</span> <span class="s1">&#39;&lt;GUID &quot;</span><span class="si">{0}</span><span class="s1">&quot; (</span><span class="si">{1}</span><span class="s1">)&gt;&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">strid</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="n">__sprint__</span> <span class="o">=</span> <span class="fm">__repr__</span>
@@ -615,15 +627,18 @@
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Data1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">Data2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">Data3</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">Data4</span><span class="p">[:])</span> <span class="o">==</span> <span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">Data1</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">Data2</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">Data3</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">Data4</span><span class="p">[:])</span></div>
<span class="n">CID</span> <span class="o">=</span> <span class="n">_GUID</span>
<span class="n">CLSID</span> <span class="o">=</span> <span class="n">_GUID</span>
<span class="n">GUID</span> <span class="o">=</span> <span class="n">_GUID</span>
<span class="n">IID</span> <span class="o">=</span> <span class="n">_GUID</span>
<span class="n">IPID</span> <span class="o">=</span> <span class="n">_GUID</span>
<span class="n">LPCGUID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">LPCLSID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">LPGUID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">REFCLSID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">REFGUID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">REFIID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<span class="n">REFIPID</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_GUID</span><span class="p">)</span>
<div class="viewcode-block" id="IO_Des_s">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.IO_Des_s">[docs]</a>
<span class="k">class</span> <span class="nc">IO_Des_s</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
@@ -998,19 +1013,6 @@
<span class="n">CALLFRAME_WALK</span> <span class="o">=</span> <span class="n">tagCALLFRAME_WALK</span>
<span class="n">SD_LAUNCHPERMISSIONS</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCOMSD&quot;</span><span class="p">,</span> <span class="s2">&quot;SD_LAUNCHPERMISSIONS&quot;</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
<span class="n">SD_ACCESSPERMISSIONS</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCOMSD&quot;</span><span class="p">,</span> <span class="s2">&quot;SD_ACCESSPERMISSIONS&quot;</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
<span class="n">SD_LAUNCHRESTRICTIONS</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCOMSD&quot;</span><span class="p">,</span> <span class="s2">&quot;SD_LAUNCHRESTRICTIONS&quot;</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
<span class="n">SD_ACCESSRESTRICTIONS</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCOMSD&quot;</span><span class="p">,</span> <span class="s2">&quot;SD_ACCESSRESTRICTIONS&quot;</span><span class="p">,</span> <span class="mh">0x3</span><span class="p">)</span>
<div class="viewcode-block" id="tagCOMSD">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagCOMSD">[docs]</a>
<span class="k">class</span> <span class="nc">tagCOMSD</span><span class="p">(</span><span class="n">EnumType</span><span class="p">):</span>
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span><span class="n">SD_LAUNCHPERMISSIONS</span><span class="p">,</span> <span class="n">SD_ACCESSPERMISSIONS</span><span class="p">,</span> <span class="n">SD_LAUNCHRESTRICTIONS</span><span class="p">,</span> <span class="n">SD_ACCESSRESTRICTIONS</span><span class="p">]</span>
<span class="n">mapper</span> <span class="o">=</span> <span class="n">FlagMapper</span><span class="p">(</span><span class="o">*</span><span class="n">values</span><span class="p">)</span></div>
<span class="n">COMSD</span> <span class="o">=</span> <span class="n">tagCOMSD</span>
<div class="viewcode-block" id="tagMULTI_QI">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagMULTI_QI">[docs]</a>
<span class="k">class</span> <span class="nc">tagMULTI_QI</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
@@ -1206,6 +1208,714 @@
<span class="n">VARIANTARG</span> <span class="o">=</span> <span class="n">__tagVARIANT</span>
<span class="n">_tagVARIANT</span> <span class="o">=</span> <span class="n">__tagVARIANT</span>
<span class="n">SD_LAUNCHPERMISSIONS</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCOMSD&quot;</span><span class="p">,</span> <span class="s2">&quot;SD_LAUNCHPERMISSIONS&quot;</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
<span class="n">SD_ACCESSPERMISSIONS</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCOMSD&quot;</span><span class="p">,</span> <span class="s2">&quot;SD_ACCESSPERMISSIONS&quot;</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
<span class="n">SD_LAUNCHRESTRICTIONS</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCOMSD&quot;</span><span class="p">,</span> <span class="s2">&quot;SD_LAUNCHRESTRICTIONS&quot;</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
<span class="n">SD_ACCESSRESTRICTIONS</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCOMSD&quot;</span><span class="p">,</span> <span class="s2">&quot;SD_ACCESSRESTRICTIONS&quot;</span><span class="p">,</span> <span class="mh">0x3</span><span class="p">)</span>
<div class="viewcode-block" id="tagCOMSD">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagCOMSD">[docs]</a>
<span class="k">class</span> <span class="nc">tagCOMSD</span><span class="p">(</span><span class="n">EnumType</span><span class="p">):</span>
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span><span class="n">SD_LAUNCHPERMISSIONS</span><span class="p">,</span> <span class="n">SD_ACCESSPERMISSIONS</span><span class="p">,</span> <span class="n">SD_LAUNCHRESTRICTIONS</span><span class="p">,</span> <span class="n">SD_ACCESSRESTRICTIONS</span><span class="p">]</span>
<span class="n">mapper</span> <span class="o">=</span> <span class="n">FlagMapper</span><span class="p">(</span><span class="o">*</span><span class="n">values</span><span class="p">)</span></div>
<span class="n">COMSD</span> <span class="o">=</span> <span class="n">tagCOMSD</span>
<span class="n">CPFLAG_NONE</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCPFLAGS&quot;</span><span class="p">,</span> <span class="s2">&quot;CPFLAG_NONE&quot;</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
<span class="n">CPFLAG_PROPAGATE</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCPFLAGS&quot;</span><span class="p">,</span> <span class="s2">&quot;CPFLAG_PROPAGATE&quot;</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
<span class="n">CPFLAG_EXPOSE</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCPFLAGS&quot;</span><span class="p">,</span> <span class="s2">&quot;CPFLAG_EXPOSE&quot;</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
<span class="n">CPFLAG_ENVOY</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCPFLAGS&quot;</span><span class="p">,</span> <span class="s2">&quot;CPFLAG_ENVOY&quot;</span><span class="p">,</span> <span class="mh">0x4</span><span class="p">)</span>
<span class="n">CPFLAG_MONITORSTUB</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCPFLAGS&quot;</span><span class="p">,</span> <span class="s2">&quot;CPFLAG_MONITORSTUB&quot;</span><span class="p">,</span> <span class="mh">0x8</span><span class="p">)</span>
<span class="n">CPFLAG_MONITORPROXY</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCPFLAGS&quot;</span><span class="p">,</span> <span class="s2">&quot;CPFLAG_MONITORPROXY&quot;</span><span class="p">,</span> <span class="mh">0x10</span><span class="p">)</span>
<span class="n">CPFLAG_DONTCOMPARE</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagCPFLAGS&quot;</span><span class="p">,</span> <span class="s2">&quot;CPFLAG_DONTCOMPARE&quot;</span><span class="p">,</span> <span class="mh">0x20</span><span class="p">)</span>
<div class="viewcode-block" id="tagCPFLAGS">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagCPFLAGS">[docs]</a>
<span class="k">class</span> <span class="nc">tagCPFLAGS</span><span class="p">(</span><span class="n">EnumType</span><span class="p">):</span>
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span><span class="n">CPFLAG_NONE</span><span class="p">,</span> <span class="n">CPFLAG_PROPAGATE</span><span class="p">,</span> <span class="n">CPFLAG_EXPOSE</span><span class="p">,</span> <span class="n">CPFLAG_ENVOY</span><span class="p">,</span> <span class="n">CPFLAG_MONITORSTUB</span><span class="p">,</span> <span class="n">CPFLAG_MONITORPROXY</span><span class="p">,</span> <span class="n">CPFLAG_DONTCOMPARE</span><span class="p">]</span>
<span class="n">mapper</span> <span class="o">=</span> <span class="n">FlagMapper</span><span class="p">(</span><span class="o">*</span><span class="n">values</span><span class="p">)</span></div>
<span class="n">CPFLAGS</span> <span class="o">=</span> <span class="n">tagCPFLAGS</span>
<span class="n">CLIENT_CONTEXT_STAGE</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagACTIVATION_STAGE&quot;</span><span class="p">,</span> <span class="s2">&quot;CLIENT_CONTEXT_STAGE&quot;</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
<span class="n">CLIENT_MACHINE_STAGE</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagACTIVATION_STAGE&quot;</span><span class="p">,</span> <span class="s2">&quot;CLIENT_MACHINE_STAGE&quot;</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
<span class="n">SERVER_MACHINE_STAGE</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagACTIVATION_STAGE&quot;</span><span class="p">,</span> <span class="s2">&quot;SERVER_MACHINE_STAGE&quot;</span><span class="p">,</span> <span class="mh">0x3</span><span class="p">)</span>
<span class="n">SERVER_PROCESS_STAGE</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagACTIVATION_STAGE&quot;</span><span class="p">,</span> <span class="s2">&quot;SERVER_PROCESS_STAGE&quot;</span><span class="p">,</span> <span class="mh">0x4</span><span class="p">)</span>
<span class="n">SERVER_CONTEXT_STAGE</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagACTIVATION_STAGE&quot;</span><span class="p">,</span> <span class="s2">&quot;SERVER_CONTEXT_STAGE&quot;</span><span class="p">,</span> <span class="mh">0x5</span><span class="p">)</span>
<div class="viewcode-block" id="tagACTIVATION_STAGE">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagACTIVATION_STAGE">[docs]</a>
<span class="k">class</span> <span class="nc">tagACTIVATION_STAGE</span><span class="p">(</span><span class="n">EnumType</span><span class="p">):</span>
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span><span class="n">CLIENT_CONTEXT_STAGE</span><span class="p">,</span> <span class="n">CLIENT_MACHINE_STAGE</span><span class="p">,</span> <span class="n">SERVER_MACHINE_STAGE</span><span class="p">,</span> <span class="n">SERVER_PROCESS_STAGE</span><span class="p">,</span> <span class="n">SERVER_CONTEXT_STAGE</span><span class="p">]</span>
<span class="n">mapper</span> <span class="o">=</span> <span class="n">FlagMapper</span><span class="p">(</span><span class="o">*</span><span class="n">values</span><span class="p">)</span></div>
<span class="n">ACTIVATION_STAGE</span> <span class="o">=</span> <span class="n">tagACTIVATION_STAGE</span>
<span class="n">ApartmentThreaded</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagThreadingModel&quot;</span><span class="p">,</span> <span class="s2">&quot;ApartmentThreaded&quot;</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
<span class="n">FreeThreaded</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagThreadingModel&quot;</span><span class="p">,</span> <span class="s2">&quot;FreeThreaded&quot;</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
<span class="n">SingleThreaded</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagThreadingModel&quot;</span><span class="p">,</span> <span class="s2">&quot;SingleThreaded&quot;</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
<span class="n">BothThreaded</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagThreadingModel&quot;</span><span class="p">,</span> <span class="s2">&quot;BothThreaded&quot;</span><span class="p">,</span> <span class="mh">0x3</span><span class="p">)</span>
<span class="n">NeutralThreaded</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagThreadingModel&quot;</span><span class="p">,</span> <span class="s2">&quot;NeutralThreaded&quot;</span><span class="p">,</span> <span class="mh">0x4</span><span class="p">)</span>
<div class="viewcode-block" id="tagThreadingModel">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagThreadingModel">[docs]</a>
<span class="k">class</span> <span class="nc">tagThreadingModel</span><span class="p">(</span><span class="n">EnumType</span><span class="p">):</span>
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span><span class="n">ApartmentThreaded</span><span class="p">,</span> <span class="n">FreeThreaded</span><span class="p">,</span> <span class="n">SingleThreaded</span><span class="p">,</span> <span class="n">BothThreaded</span><span class="p">,</span> <span class="n">NeutralThreaded</span><span class="p">]</span>
<span class="n">mapper</span> <span class="o">=</span> <span class="n">FlagMapper</span><span class="p">(</span><span class="o">*</span><span class="n">values</span><span class="p">)</span></div>
<span class="n">ThreadingModel</span> <span class="o">=</span> <span class="n">tagThreadingModel</span>
<span class="n">LocalServerType16</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagLocalServerType&quot;</span><span class="p">,</span> <span class="s2">&quot;LocalServerType16&quot;</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
<span class="n">LocalServerType32</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagLocalServerType&quot;</span><span class="p">,</span> <span class="s2">&quot;LocalServerType32&quot;</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
<div class="viewcode-block" id="tagLocalServerType">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagLocalServerType">[docs]</a>
<span class="k">class</span> <span class="nc">tagLocalServerType</span><span class="p">(</span><span class="n">EnumType</span><span class="p">):</span>
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span><span class="n">LocalServerType16</span><span class="p">,</span> <span class="n">LocalServerType32</span><span class="p">]</span>
<span class="n">mapper</span> <span class="o">=</span> <span class="n">FlagMapper</span><span class="p">(</span><span class="o">*</span><span class="n">values</span><span class="p">)</span></div>
<span class="n">LocalServerType</span> <span class="o">=</span> <span class="n">tagLocalServerType</span>
<span class="n">STREAM_SEEK_SET</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagSTREAM_SEEK&quot;</span><span class="p">,</span> <span class="s2">&quot;STREAM_SEEK_SET&quot;</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
<span class="n">STREAM_SEEK_CUR</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagSTREAM_SEEK&quot;</span><span class="p">,</span> <span class="s2">&quot;STREAM_SEEK_CUR&quot;</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
<span class="n">STREAM_SEEK_END</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagSTREAM_SEEK&quot;</span><span class="p">,</span> <span class="s2">&quot;STREAM_SEEK_END&quot;</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
<div class="viewcode-block" id="tagSTREAM_SEEK">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagSTREAM_SEEK">[docs]</a>
<span class="k">class</span> <span class="nc">tagSTREAM_SEEK</span><span class="p">(</span><span class="n">EnumType</span><span class="p">):</span>
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span><span class="n">STREAM_SEEK_SET</span><span class="p">,</span> <span class="n">STREAM_SEEK_CUR</span><span class="p">,</span> <span class="n">STREAM_SEEK_END</span><span class="p">]</span>
<span class="n">mapper</span> <span class="o">=</span> <span class="n">FlagMapper</span><span class="p">(</span><span class="o">*</span><span class="n">values</span><span class="p">)</span></div>
<span class="n">STREAM_SEEK</span> <span class="o">=</span> <span class="n">tagSTREAM_SEEK</span>
<span class="n">MSHCTX_LOCAL</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagMSHCTX&quot;</span><span class="p">,</span> <span class="s2">&quot;MSHCTX_LOCAL&quot;</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
<span class="n">MSHCTX_NOSHAREDMEM</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagMSHCTX&quot;</span><span class="p">,</span> <span class="s2">&quot;MSHCTX_NOSHAREDMEM&quot;</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
<span class="n">MSHCTX_DIFFERENTMACHINE</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagMSHCTX&quot;</span><span class="p">,</span> <span class="s2">&quot;MSHCTX_DIFFERENTMACHINE&quot;</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
<span class="n">MSHCTX_INPROC</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagMSHCTX&quot;</span><span class="p">,</span> <span class="s2">&quot;MSHCTX_INPROC&quot;</span><span class="p">,</span> <span class="mh">0x3</span><span class="p">)</span>
<span class="n">MSHCTX_CROSSCTX</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagMSHCTX&quot;</span><span class="p">,</span> <span class="s2">&quot;MSHCTX_CROSSCTX&quot;</span><span class="p">,</span> <span class="mh">0x4</span><span class="p">)</span>
<span class="n">MSHCTX_CONTAINER</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;tagMSHCTX&quot;</span><span class="p">,</span> <span class="s2">&quot;MSHCTX_CONTAINER&quot;</span><span class="p">,</span> <span class="mh">0x5</span><span class="p">)</span>
<div class="viewcode-block" id="tagMSHCTX">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagMSHCTX">[docs]</a>
<span class="k">class</span> <span class="nc">tagMSHCTX</span><span class="p">(</span><span class="n">EnumType</span><span class="p">):</span>
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span><span class="n">MSHCTX_LOCAL</span><span class="p">,</span> <span class="n">MSHCTX_NOSHAREDMEM</span><span class="p">,</span> <span class="n">MSHCTX_DIFFERENTMACHINE</span><span class="p">,</span> <span class="n">MSHCTX_INPROC</span><span class="p">,</span> <span class="n">MSHCTX_CROSSCTX</span><span class="p">,</span> <span class="n">MSHCTX_CONTAINER</span><span class="p">]</span>
<span class="n">mapper</span> <span class="o">=</span> <span class="n">FlagMapper</span><span class="p">(</span><span class="o">*</span><span class="n">values</span><span class="p">)</span></div>
<span class="n">MSHCTX</span> <span class="o">=</span> <span class="n">tagMSHCTX</span>
<div class="viewcode-block" id="tagOpaqueData">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagOpaqueData">[docs]</a>
<span class="k">class</span> <span class="nc">tagOpaqueData</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;guid&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dataLength&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved1&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved2&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">BYTE</span><span class="p">)),</span>
<span class="p">]</span></div>
<span class="n">OpaqueData</span> <span class="o">=</span> <span class="n">tagOpaqueData</span>
<div class="viewcode-block" id="tagSTDOBJREF">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagSTDOBJREF">[docs]</a>
<span class="k">class</span> <span class="nc">tagSTDOBJREF</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;flags&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;cPublicRefs&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;oxid&quot;</span><span class="p">,</span> <span class="n">OXID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;oid&quot;</span><span class="p">,</span> <span class="n">OID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;ipid&quot;</span><span class="p">,</span> <span class="n">IPID</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">STDOBJREF</span> <span class="o">=</span> <span class="n">tagSTDOBJREF</span>
<div class="viewcode-block" id="tagDATAELEMENT">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagDATAELEMENT">[docs]</a>
<span class="k">class</span> <span class="nc">tagDATAELEMENT</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;dataID&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;cbSize&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;cbRounded&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;Data&quot;</span><span class="p">,</span> <span class="n">BYTE</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
<span class="p">]</span></div>
<span class="n">DATAELEMENT</span> <span class="o">=</span> <span class="n">tagDATAELEMENT</span>
<span class="n">PDATAELEMENT</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">tagDATAELEMENT</span><span class="p">)</span>
<div class="viewcode-block" id="tagOBJREFDATA">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagOBJREFDATA">[docs]</a>
<span class="k">class</span> <span class="nc">tagOBJREFDATA</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;nElms&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;ppElmArray&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">PDATAELEMENT</span><span class="p">)),</span>
<span class="p">]</span></div>
<span class="n">OBJREFDATA</span> <span class="o">=</span> <span class="n">tagOBJREFDATA</span>
<span class="k">class</span> <span class="nc">tagDUALSTRINGARRAY</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;wNumEntries&quot;</span><span class="p">,</span> <span class="n">USHORT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;wSecurityOffset&quot;</span><span class="p">,</span> <span class="n">USHORT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;aStringArray&quot;</span><span class="p">,</span> <span class="n">USHORT</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
<span class="p">]</span>
<span class="n">DUALSTRINGARRAY</span> <span class="o">=</span> <span class="n">tagDUALSTRINGARRAY</span>
<span class="n">INITIAL_tagDUALSTRINGARRAY</span> <span class="o">=</span> <span class="n">tagDUALSTRINGARRAY</span>
<div class="viewcode-block" id="tagDUALSTRINGARRAY">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagDUALSTRINGARRAY">[docs]</a>
<span class="k">class</span> <span class="nc">tagDUALSTRINGARRAY</span><span class="p">(</span><span class="n">INITIAL_tagDUALSTRINGARRAY</span><span class="p">):</span>
<span class="nd">@property</span>
<span class="k">def</span> <span class="nf">rawbuffer</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">array_size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wNumEntries</span>
<span class="n">array_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">aStringArray</span><span class="o">.</span><span class="n">_type_</span>
<span class="n">new_buffer_type</span> <span class="o">=</span> <span class="p">(</span><span class="n">array_type</span> <span class="o">*</span> <span class="n">array_size</span><span class="p">)</span>
<span class="n">buffer</span> <span class="o">=</span> <span class="n">new_buffer_type</span><span class="o">.</span><span class="n">from_address</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">addressof</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">aStringArray</span><span class="p">))</span>
<span class="k">return</span> <span class="n">buffer</span>
<span class="nd">@property</span>
<span class="k">def</span> <span class="nf">bidings</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">rawbuffer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">rawbuffer</span>
<span class="n">rawarray</span> <span class="o">=</span> <span class="n">rawbuffer</span><span class="p">[:]</span> <span class="c1"># Allow to find 0 in USHORT without overlap</span>
<span class="n">rawbytes</span> <span class="o">=</span> <span class="nb">bytearray</span><span class="p">(</span><span class="n">rawbuffer</span><span class="p">)</span> <span class="c1"># Allow to access to bytes to utf-16-le decode</span>
<span class="n">results</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">next_start</span> <span class="o">=</span> <span class="mi">0</span>
<span class="c1"># STRINGBINDING documentation says that it starts with a USHORT wTowerId</span>
<span class="c1"># But i don&#39;t see it in our response.. (local response ?)</span>
<span class="c1"># So ignore it for now</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span>
<span class="n">current_index</span> <span class="o">=</span> <span class="n">rawarray</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">next_start</span><span class="p">)</span>
<span class="n">new_entry</span> <span class="o">=</span> <span class="n">rawbytes</span><span class="p">[</span><span class="n">next_start</span> <span class="o">*</span> <span class="mi">2</span><span class="p">:</span> <span class="n">current_index</span> <span class="o">*</span> <span class="mi">2</span><span class="p">]</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">new_entry</span><span class="p">:</span>
<span class="k">return</span> <span class="n">results</span>
<span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_entry</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s2">&quot;utf-16-le&quot;</span><span class="p">))</span> <span class="c1"># Does not handle full unicode I think but..</span>
<span class="n">next_start</span> <span class="o">=</span> <span class="n">current_index</span> <span class="o">+</span> <span class="mi">1</span>
<span class="c1"># Should not happen</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Could not parse DUALSTRINGARRAY&quot;</span><span class="p">)</span>
<span class="nd">@property</span>
<span class="k">def</span> <span class="nf">security_bidings</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">rawbuffer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">rawbuffer</span>
<span class="n">rawarray</span> <span class="o">=</span> <span class="n">rawbuffer</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">wSecurityOffset</span><span class="p">:]</span>
<span class="n">rawbytes</span> <span class="o">=</span> <span class="nb">bytearray</span><span class="p">(</span><span class="n">rawbuffer</span><span class="p">)[</span><span class="bp">self</span><span class="o">.</span><span class="n">wSecurityOffset</span> <span class="o">*</span> <span class="mi">2</span><span class="p">:]</span>
<span class="n">results</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">next_start</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span>
<span class="n">wAuthnSvc</span> <span class="o">=</span> <span class="n">rawarray</span><span class="p">[</span><span class="n">next_start</span><span class="p">]</span>
<span class="k">if</span> <span class="n">wAuthnSvc</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">return</span> <span class="n">results</span>
<span class="n">reserved</span> <span class="o">=</span> <span class="n">rawarray</span><span class="p">[</span><span class="n">next_start</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span>
<span class="n">current_index</span> <span class="o">=</span> <span class="n">rawarray</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">next_start</span> <span class="o">+</span> <span class="mi">2</span><span class="p">)</span>
<span class="n">new_entry</span> <span class="o">=</span> <span class="n">rawbytes</span><span class="p">[(</span><span class="n">next_start</span> <span class="o">+</span> <span class="mi">2</span><span class="p">)</span> <span class="o">*</span> <span class="mi">2</span><span class="p">:</span><span class="n">current_index</span> <span class="o">*</span> <span class="mi">2</span><span class="p">]</span>
<span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">wAuthnSvc</span><span class="p">,</span> <span class="n">reserved</span><span class="p">,</span> <span class="n">new_entry</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s2">&quot;utf-16-le&quot;</span><span class="p">)))</span> <span class="c1"># Does not handle full unicode I think but..</span>
<span class="n">next_start</span> <span class="o">=</span> <span class="n">current_index</span> <span class="o">+</span> <span class="mi">1</span>
<span class="c1"># Should not happen</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Could not parse DUALSTRINGARRAY security bidings&quot;</span><span class="p">)</span></div>
<span class="n">DUALSTRINGARRAY</span> <span class="o">=</span> <span class="n">tagDUALSTRINGARRAY</span>
<span class="k">class</span> <span class="nc">_ANON__ANON_TAGOBJREF_SUB_UNION_1_SUB_STRUCTURE_1</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;std&quot;</span><span class="p">,</span> <span class="n">STDOBJREF</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;saResAddr&quot;</span><span class="p">,</span> <span class="n">DUALSTRINGARRAY</span><span class="p">),</span>
<span class="p">]</span>
<span class="k">class</span> <span class="nc">_ANON__ANON_TAGOBJREF_SUB_UNION_1_SUB_STRUCTURE_2</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;std&quot;</span><span class="p">,</span> <span class="n">STDOBJREF</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;clsid&quot;</span><span class="p">,</span> <span class="n">CLSID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;saResAddr&quot;</span><span class="p">,</span> <span class="n">DUALSTRINGARRAY</span><span class="p">),</span>
<span class="p">]</span>
<span class="k">class</span> <span class="nc">_ANON__ANON_TAGOBJREF_SUB_UNION_1_SUB_STRUCTURE_3</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;clsid&quot;</span><span class="p">,</span> <span class="n">CLSID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;cbExtension&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;size&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pData&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">BYTE</span><span class="p">)),</span>
<span class="p">]</span>
<span class="k">class</span> <span class="nc">_ANON__ANON_TAGOBJREF_SUB_UNION_1_SUB_STRUCTURE_4</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;std&quot;</span><span class="p">,</span> <span class="n">STDOBJREF</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pORData&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">OBJREFDATA</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;saResAddr&quot;</span><span class="p">,</span> <span class="n">DUALSTRINGARRAY</span><span class="p">),</span>
<span class="p">]</span>
<span class="k">class</span> <span class="nc">_ANON_TAGOBJREF_SUB_UNION_1</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
<span class="n">_anonymous_</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;u_standard&quot;</span><span class="p">,</span><span class="s2">&quot;u_handler&quot;</span><span class="p">,</span><span class="s2">&quot;u_custom&quot;</span><span class="p">,</span><span class="s2">&quot;u_extended&quot;</span><span class="p">)</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;u_standard&quot;</span><span class="p">,</span> <span class="n">_ANON__ANON_TAGOBJREF_SUB_UNION_1_SUB_STRUCTURE_1</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;u_handler&quot;</span><span class="p">,</span> <span class="n">_ANON__ANON_TAGOBJREF_SUB_UNION_1_SUB_STRUCTURE_2</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;u_custom&quot;</span><span class="p">,</span> <span class="n">_ANON__ANON_TAGOBJREF_SUB_UNION_1_SUB_STRUCTURE_3</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;u_extended&quot;</span><span class="p">,</span> <span class="n">_ANON__ANON_TAGOBJREF_SUB_UNION_1_SUB_STRUCTURE_4</span><span class="p">),</span>
<span class="p">]</span>
<div class="viewcode-block" id="tagOBJREF">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagOBJREF">[docs]</a>
<span class="k">class</span> <span class="nc">tagOBJREF</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_anonymous_</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;u_objref&quot;</span><span class="p">,)</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;signature&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;flags&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;iid&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;u_objref&quot;</span><span class="p">,</span> <span class="n">_ANON_TAGOBJREF_SUB_UNION_1</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">OBJREF</span> <span class="o">=</span> <span class="n">tagOBJREF</span>
<div class="viewcode-block" id="tagCOMVERSION">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagCOMVERSION">[docs]</a>
<span class="k">class</span> <span class="nc">tagCOMVERSION</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;MajorVersion&quot;</span><span class="p">,</span> <span class="n">USHORT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;MinorVersion&quot;</span><span class="p">,</span> <span class="n">USHORT</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">COMVERSION</span> <span class="o">=</span> <span class="n">tagCOMVERSION</span>
<div class="viewcode-block" id="tagORPC_EXTENT">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagORPC_EXTENT">[docs]</a>
<span class="k">class</span> <span class="nc">tagORPC_EXTENT</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;id&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;size&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="n">BYTE</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
<span class="p">]</span></div>
<span class="n">ORPC_EXTENT</span> <span class="o">=</span> <span class="n">tagORPC_EXTENT</span>
<span class="n">PORPC_EXTENT</span> <span class="o">=</span> <span class="n">tagORPC_EXTENT</span>
<div class="viewcode-block" id="tagORPC_EXTENT_ARRAY">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagORPC_EXTENT_ARRAY">[docs]</a>
<span class="k">class</span> <span class="nc">tagORPC_EXTENT_ARRAY</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;size&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;extent&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">PORPC_EXTENT</span><span class="p">)),</span>
<span class="p">]</span></div>
<span class="n">ORPC_EXTENT_ARRAY</span> <span class="o">=</span> <span class="n">tagORPC_EXTENT_ARRAY</span>
<div class="viewcode-block" id="tagORPCTHIS">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagORPCTHIS">[docs]</a>
<span class="k">class</span> <span class="nc">tagORPCTHIS</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;version&quot;</span><span class="p">,</span> <span class="n">COMVERSION</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;flags&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved1&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;cid&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;extensions&quot;</span><span class="p">,</span> <span class="n">PVOID</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">ORPCTHIS</span> <span class="o">=</span> <span class="n">tagORPCTHIS</span>
<div class="viewcode-block" id="tagORPCTHIS32">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagORPCTHIS32">[docs]</a>
<span class="k">class</span> <span class="nc">tagORPCTHIS32</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;version&quot;</span><span class="p">,</span> <span class="n">COMVERSION</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;flags&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved1&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;cid&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;extensions&quot;</span><span class="p">,</span> <span class="n">PVOID32</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">ORPCTHIS32</span> <span class="o">=</span> <span class="n">tagORPCTHIS32</span>
<div class="viewcode-block" id="tagOXID_INFO">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagOXID_INFO">[docs]</a>
<span class="k">class</span> <span class="nc">tagOXID_INFO</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;dwTid&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dwPid&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dwAuthnHint&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;version&quot;</span><span class="p">,</span> <span class="n">COMVERSION</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;ipidRemUnknown&quot;</span><span class="p">,</span> <span class="n">IPID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dwFlags&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;psa&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">DUALSTRINGARRAY</span><span class="p">)),</span>
<span class="p">]</span></div>
<span class="n">OXID_INFO</span> <span class="o">=</span> <span class="n">tagOXID_INFO</span>
<div class="viewcode-block" id="tagContextProperty">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagContextProperty">[docs]</a>
<span class="k">class</span> <span class="nc">tagContextProperty</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;policyId&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;flags&quot;</span><span class="p">,</span> <span class="n">CPFLAGS</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pUnk&quot;</span><span class="p">,</span> <span class="n">PVOID</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">ContextProperty</span> <span class="o">=</span> <span class="n">tagContextProperty</span>
<div class="viewcode-block" id="_PRIV_SCM_INFO">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._PRIV_SCM_INFO">[docs]</a>
<span class="k">class</span> <span class="nc">_PRIV_SCM_INFO</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;Apartment&quot;</span><span class="p">,</span> <span class="n">LONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pwszWinstaDesktop&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">WCHAR</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;ProcessSignature&quot;</span><span class="p">,</span> <span class="n">ULONG64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pEnvBlock&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">WCHAR</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;EnvBlockLength&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">PRIV_SCM_INFO</span> <span class="o">=</span> <span class="n">_PRIV_SCM_INFO</span>
<div class="viewcode-block" id="_REMOTE_REQUEST_SCM_INFO">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._REMOTE_REQUEST_SCM_INFO">[docs]</a>
<span class="k">class</span> <span class="nc">_REMOTE_REQUEST_SCM_INFO</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;ClientImpLevel&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;cRequestedProtseqs&quot;</span><span class="p">,</span> <span class="n">USHORT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pRequestedProtseqs&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">USHORT</span><span class="p">)),</span>
<span class="p">]</span></div>
<span class="n">REMOTE_REQUEST_SCM_INFO</span> <span class="o">=</span> <span class="n">_REMOTE_REQUEST_SCM_INFO</span>
<span class="k">class</span> <span class="nc">tagMInterfacePointer</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;ulCntData&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;abData&quot;</span><span class="p">,</span> <span class="n">BYTE</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
<span class="p">]</span>
<span class="n">MInterfacePointer</span> <span class="o">=</span> <span class="n">tagMInterfacePointer</span>
<span class="n">PMInterfacePointer</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">tagMInterfacePointer</span><span class="p">)</span>
<span class="n">INITIAL_tagMInterfacePointer</span> <span class="o">=</span> <span class="n">tagMInterfacePointer</span>
<div class="viewcode-block" id="tagMInterfacePointer">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagMInterfacePointer">[docs]</a>
<span class="k">class</span> <span class="nc">tagMInterfacePointer</span><span class="p">(</span><span class="n">INITIAL_tagMInterfacePointer</span><span class="p">):</span>
<span class="nd">@property</span>
<span class="k">def</span> <span class="nf">objref</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="n">OBJREF</span><span class="o">.</span><span class="n">from_address</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">addressof</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">abData</span><span class="p">))</span></div>
<span class="n">MInterfacePointer</span> <span class="o">=</span> <span class="n">tagMInterfacePointer</span>
<span class="n">PMInterfacePointer</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">tagMInterfacePointer</span><span class="p">)</span>
<div class="viewcode-block" id="tagRPCOLEMESSAGE">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagRPCOLEMESSAGE">[docs]</a>
<span class="k">class</span> <span class="nc">tagRPCOLEMESSAGE</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;reserved1&quot;</span><span class="p">,</span> <span class="n">PVOID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dataRepresentation&quot;</span><span class="p">,</span> <span class="n">RPCOLEDATAREP</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;Buffer&quot;</span><span class="p">,</span> <span class="n">PVOID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;cbBuffer&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;iMethod&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved2&quot;</span><span class="p">,</span> <span class="n">PVOID</span> <span class="o">*</span> <span class="p">(</span><span class="mi">5</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;rpcFlags&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">PRPCOLEMESSAGE</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">tagRPCOLEMESSAGE</span><span class="p">)</span>
<span class="n">RPCOLEMESSAGE</span> <span class="o">=</span> <span class="n">tagRPCOLEMESSAGE</span>
<div class="viewcode-block" id="tagREMQIRESULT">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagREMQIRESULT">[docs]</a>
<span class="k">class</span> <span class="nc">tagREMQIRESULT</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;hResult&quot;</span><span class="p">,</span> <span class="n">HRESULT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;std&quot;</span><span class="p">,</span> <span class="n">STDOBJREF</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">PREMQIRESULT</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">tagREMQIRESULT</span><span class="p">)</span>
<span class="n">REMQIRESULT</span> <span class="o">=</span> <span class="n">tagREMQIRESULT</span>
<div class="viewcode-block" id="tagREMINTERFACEREF">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagREMINTERFACEREF">[docs]</a>
<span class="k">class</span> <span class="nc">tagREMINTERFACEREF</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;ipid&quot;</span><span class="p">,</span> <span class="n">IPID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;cPublicRefs&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;cPrivateRefs&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">REMINTERFACEREF</span> <span class="o">=</span> <span class="n">tagREMINTERFACEREF</span>
<div class="viewcode-block" id="_PRIV_RESOLVER_INFO_LEGACY">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._PRIV_RESOLVER_INFO_LEGACY">[docs]</a>
<span class="k">class</span> <span class="nc">_PRIV_RESOLVER_INFO_LEGACY</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;OxidServer&quot;</span><span class="p">,</span> <span class="n">OXID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pServerORBindings&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">DUALSTRINGARRAY</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;OxidInfo&quot;</span><span class="p">,</span> <span class="n">OXID_INFO</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;LocalMidOfRemote&quot;</span><span class="p">,</span> <span class="n">MID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;DllServerModel&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pwszDllServer&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">WCHAR</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;FoundInROT&quot;</span><span class="p">,</span> <span class="n">BOOL</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">PPRIV_RESOLVER_INFO_LEGACY</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_PRIV_RESOLVER_INFO_LEGACY</span><span class="p">)</span>
<span class="n">PRIV_RESOLVER_INFO_LEGACY</span> <span class="o">=</span> <span class="n">_PRIV_RESOLVER_INFO_LEGACY</span>
<div class="viewcode-block" id="_REMOTE_REPLY_SCM_INFO">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._REMOTE_REPLY_SCM_INFO">[docs]</a>
<span class="k">class</span> <span class="nc">_REMOTE_REPLY_SCM_INFO</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;Oxid&quot;</span><span class="p">,</span> <span class="n">OXID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pdsaOxidBindings&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">DUALSTRINGARRAY</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;ipidRemUnknown&quot;</span><span class="p">,</span> <span class="n">IPID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;authnHint&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;serverVersion&quot;</span><span class="p">,</span> <span class="n">COMVERSION</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">PREMOTE_REPLY_SCM_INFO</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_REMOTE_REPLY_SCM_INFO</span><span class="p">)</span>
<span class="n">REMOTE_REPLY_SCM_INFO</span> <span class="o">=</span> <span class="n">_REMOTE_REPLY_SCM_INFO</span>
<div class="viewcode-block" id="CONTAINER_EXTENT">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.CONTAINER_EXTENT">[docs]</a>
<span class="k">class</span> <span class="nc">CONTAINER_EXTENT</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;id&quot;</span><span class="p">,</span> <span class="n">UINT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;version&quot;</span><span class="p">,</span> <span class="n">UINT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;size&quot;</span><span class="p">,</span> <span class="n">UINT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="n">BYTE</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
<span class="p">]</span></div>
<div class="viewcode-block" id="CONTAINER_EXTENT_ARRAY">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.CONTAINER_EXTENT_ARRAY">[docs]</a>
<span class="k">class</span> <span class="nc">CONTAINER_EXTENT_ARRAY</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;size&quot;</span><span class="p">,</span> <span class="n">UINT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved&quot;</span><span class="p">,</span> <span class="n">UINT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;extent&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">CONTAINER_EXTENT</span><span class="p">)),</span>
<span class="p">]</span></div>
<div class="viewcode-block" id="HSTRING__">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.HSTRING__">[docs]</a>
<span class="k">class</span> <span class="nc">HSTRING__</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;unused&quot;</span><span class="p">,</span> <span class="n">INT</span><span class="p">),</span>
<span class="p">]</span></div>
<div class="viewcode-block" id="CONTAINERVERSION">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.CONTAINERVERSION">[docs]</a>
<span class="k">class</span> <span class="nc">CONTAINERVERSION</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;version&quot;</span><span class="p">,</span> <span class="n">UINT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;capabilityFlags&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;extensions&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">CONTAINER_EXTENT_ARRAY</span><span class="p">)),</span>
<span class="p">]</span></div>
<div class="viewcode-block" id="_MIDL_ILocalObjectExporter_0007">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._MIDL_ILocalObjectExporter_0007">[docs]</a>
<span class="k">class</span> <span class="nc">_MIDL_ILocalObjectExporter_0007</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;dwTid&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dwPid&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dwAuthnHint&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dcomVersion&quot;</span><span class="p">,</span> <span class="n">tagCOMVERSION</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;containerVersion&quot;</span><span class="p">,</span> <span class="n">CONTAINERVERSION</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;ipidRemUnknown&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dwFlags&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;psa&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">tagDUALSTRINGARRAY</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;guidProcessIdentifier&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;processHostId&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;clientDependencyBehavior&quot;</span><span class="p">,</span> <span class="n">INT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;packageFullName&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">HSTRING__</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;userSid&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">HSTRING__</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;appcontainerSid&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">HSTRING__</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;primaryOxid&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;primaryIpidRemUnknown&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">MIDL_ILocalObjectExporter_0007</span> <span class="o">=</span> <span class="n">_MIDL_ILocalObjectExporter_0007</span>
<div class="viewcode-block" id="_PRIV_RESOLVER_INFO">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._PRIV_RESOLVER_INFO">[docs]</a>
<span class="k">class</span> <span class="nc">_PRIV_RESOLVER_INFO</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;OxidServer&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pServerORBindings&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">tagDUALSTRINGARRAY</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;OxidInfo&quot;</span><span class="p">,</span> <span class="n">MIDL_ILocalObjectExporter_0007</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;LocalMidOfRemote&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;FoundInROT&quot;</span><span class="p">,</span> <span class="n">INT</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">PPRIV_RESOLVER_INFO</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_PRIV_RESOLVER_INFO</span><span class="p">)</span>
<span class="n">PRIV_RESOLVER_INFO</span> <span class="o">=</span> <span class="n">_PRIV_RESOLVER_INFO</span>
<div class="viewcode-block" id="_MIDL_XmitDefs_0001">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._MIDL_XmitDefs_0001">[docs]</a>
<span class="k">class</span> <span class="nc">_MIDL_XmitDefs_0001</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;asyncOperationId&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;oxidClientProcessNA&quot;</span><span class="p">,</span> <span class="n">ULONG64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;originalClientLogicalThreadId&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;uClientCausalityTraceId&quot;</span><span class="p">,</span> <span class="n">ULONG64</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">MIDL_XmitDefs_0001</span> <span class="o">=</span> <span class="n">_MIDL_XmitDefs_0001</span>
<div class="viewcode-block" id="_LOCALTHIS">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._LOCALTHIS">[docs]</a>
<span class="k">class</span> <span class="nc">_LOCALTHIS</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;dwFlags&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dwClientThread&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;passthroughTraceActivity&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;callTraceActivity&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;asyncRequestBlock&quot;</span><span class="p">,</span> <span class="n">MIDL_XmitDefs_0001</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pTouchedAstaArray&quot;</span><span class="p">,</span> <span class="n">PVOID</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">LOCALTHIS</span> <span class="o">=</span> <span class="n">_LOCALTHIS</span>
<div class="viewcode-block" id="_LOCALTHIS32">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._LOCALTHIS32">[docs]</a>
<span class="k">class</span> <span class="nc">_LOCALTHIS32</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;dwFlags&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dwClientThread&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;passthroughTraceActivity&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;callTraceActivity&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;asyncRequestBlock&quot;</span><span class="p">,</span> <span class="n">MIDL_XmitDefs_0001</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pTouchedAstaArray&quot;</span><span class="p">,</span> <span class="n">PVOID32</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">LOCALTHIS32</span> <span class="o">=</span> <span class="n">_LOCALTHIS32</span>
<div class="viewcode-block" id="_MIDL_XmitDefs_0007">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._MIDL_XmitDefs_0007">[docs]</a>
<span class="k">class</span> <span class="nc">_MIDL_XmitDefs_0007</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;pointOfFailure&quot;</span><span class="p">,</span> <span class="n">INT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;hrFailure&quot;</span><span class="p">,</span> <span class="n">HRESULT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;sizeOfMarshaledErrorInfo&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pMarshaledErrorInfo&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">BYTE</span><span class="p">)),</span>
<span class="p">]</span></div>
<div class="viewcode-block" id="_MIDL_XmitDefs_0005">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._MIDL_XmitDefs_0005">[docs]</a>
<span class="k">class</span> <span class="nc">_MIDL_XmitDefs_0005</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;sizeOfMarshaledResults&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pMarshaledResults&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">BYTE</span><span class="p">)),</span>
<span class="p">]</span></div>
<div class="viewcode-block" id="_MIDL_XmitDefs_0008">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._MIDL_XmitDefs_0008">[docs]</a>
<span class="k">class</span> <span class="nc">_MIDL_XmitDefs_0008</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;outcome&quot;</span><span class="p">,</span> <span class="n">INT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;successDetails&quot;</span><span class="p">,</span> <span class="n">_MIDL_XmitDefs_0005</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;failureDetails&quot;</span><span class="p">,</span> <span class="n">_MIDL_XmitDefs_0007</span><span class="p">),</span>
<span class="p">]</span></div>
<div class="viewcode-block" id="_MIDL_XmitDefs_0010">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._MIDL_XmitDefs_0010">[docs]</a>
<span class="k">class</span> <span class="nc">_MIDL_XmitDefs_0010</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;asyncStatus&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved1&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;uServerCausalityTraceId&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;completionTraceActivity&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved2&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pOutcomeDetails&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_MIDL_XmitDefs_0008</span><span class="p">)),</span>
<span class="p">]</span></div>
<div class="viewcode-block" id="CONTAINERTHAT">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.CONTAINERTHAT">[docs]</a>
<span class="k">class</span> <span class="nc">CONTAINERTHAT</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;responseFlags&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;unassignedPassthroughGuid_1&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;unassignedPassthroughGuid_2&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;unassignedPassthroughGuid_3&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;unassignedPassthroughGuid_4&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reservedGuid_1&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reservedGuid_2&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reservedGuid_3&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reservedGuid_4&quot;</span><span class="p">,</span> <span class="n">_GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;unassignedPassthroughUint64_1&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;unassignedPassthroughUint64_2&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;unassignedPassthroughUint64_3&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;unassignedPassthroughUint64_4&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;marshalingSetId&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reservedUint64_2&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reservedUint64_3&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reservedUint64_4&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reservedUint32&quot;</span><span class="p">,</span> <span class="n">UINT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;extensions&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">CONTAINER_EXTENT_ARRAY</span><span class="p">)),</span>
<span class="p">]</span></div>
<div class="viewcode-block" id="_LOCALTHAT">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._LOCALTHAT">[docs]</a>
<span class="k">class</span> <span class="nc">_LOCALTHAT</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;marshalingSetId&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pAsyncResponseBlock&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_MIDL_XmitDefs_0010</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;containerErrorInformation&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">CONTAINER_EXTENT</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;containerPassthroughData&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">CONTAINERTHAT</span><span class="p">)),</span>
<span class="p">]</span></div>
<span class="n">LOCALTHAT</span> <span class="o">=</span> <span class="n">_LOCALTHAT</span>
<div class="viewcode-block" id="_LOCALTHAT32">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._LOCALTHAT32">[docs]</a>
<span class="k">class</span> <span class="nc">_LOCALTHAT32</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;marshalingSetId&quot;</span><span class="p">,</span> <span class="n">UINT64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pAsyncResponseBlock&quot;</span><span class="p">,</span> <span class="n">PVOID32</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;containerErrorInformation&quot;</span><span class="p">,</span> <span class="n">PVOID32</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;containerPassthroughData&quot;</span><span class="p">,</span> <span class="n">PVOID32</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">LOCALTHAT32</span> <span class="o">=</span> <span class="n">_LOCALTHAT32</span>
<div class="viewcode-block" id="tagORPCTHAT">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagORPCTHAT">[docs]</a>
<span class="k">class</span> <span class="nc">tagORPCTHAT</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;flags&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;extensions&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">tagORPC_EXTENT_ARRAY</span><span class="p">)),</span>
<span class="p">]</span></div>
<span class="n">ORPCTHAT</span> <span class="o">=</span> <span class="n">tagORPCTHAT</span>
<div class="viewcode-block" id="ORPCTHAT32">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.ORPCTHAT32">[docs]</a>
<span class="k">class</span> <span class="nc">ORPCTHAT32</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;flags&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;extensions&quot;</span><span class="p">,</span> <span class="n">PVOID32</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">VIRTUAL_DISK_ACCESS_NONE</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;_VIRTUAL_DISK_ACCESS_MASK&quot;</span><span class="p">,</span> <span class="s2">&quot;VIRTUAL_DISK_ACCESS_NONE&quot;</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
<span class="n">VIRTUAL_DISK_ACCESS_ATTACH_RO</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;_VIRTUAL_DISK_ACCESS_MASK&quot;</span><span class="p">,</span> <span class="s2">&quot;VIRTUAL_DISK_ACCESS_ATTACH_RO&quot;</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
<span class="n">VIRTUAL_DISK_ACCESS_ATTACH_RW</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;_VIRTUAL_DISK_ACCESS_MASK&quot;</span><span class="p">,</span> <span class="s2">&quot;VIRTUAL_DISK_ACCESS_ATTACH_RW&quot;</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
@@ -3391,6 +4101,62 @@
<span class="n">IMAGE_LOAD_CONFIG_DIRECTORY64</span> <span class="o">=</span> <span class="n">_IMAGE_LOAD_CONFIG_DIRECTORY64</span>
<span class="n">PIMAGE_LOAD_CONFIG_DIRECTORY64</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_IMAGE_LOAD_CONFIG_DIRECTORY64</span><span class="p">)</span>
<span class="n">MemExtendedParameterInvalidType</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;MEM_EXTENDED_PARAMETER_TYPE&quot;</span><span class="p">,</span> <span class="s2">&quot;MemExtendedParameterInvalidType&quot;</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
<span class="n">MemExtendedParameterAddressRequirements</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;MEM_EXTENDED_PARAMETER_TYPE&quot;</span><span class="p">,</span> <span class="s2">&quot;MemExtendedParameterAddressRequirements&quot;</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
<span class="n">MemExtendedParameterNumaNode</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;MEM_EXTENDED_PARAMETER_TYPE&quot;</span><span class="p">,</span> <span class="s2">&quot;MemExtendedParameterNumaNode&quot;</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
<span class="n">MemExtendedParameterPartitionHandle</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;MEM_EXTENDED_PARAMETER_TYPE&quot;</span><span class="p">,</span> <span class="s2">&quot;MemExtendedParameterPartitionHandle&quot;</span><span class="p">,</span> <span class="mh">0x3</span><span class="p">)</span>
<span class="n">MemExtendedParameterUserPhysicalHandle</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;MEM_EXTENDED_PARAMETER_TYPE&quot;</span><span class="p">,</span> <span class="s2">&quot;MemExtendedParameterUserPhysicalHandle&quot;</span><span class="p">,</span> <span class="mh">0x4</span><span class="p">)</span>
<span class="n">MemExtendedParameterAttributeFlags</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;MEM_EXTENDED_PARAMETER_TYPE&quot;</span><span class="p">,</span> <span class="s2">&quot;MemExtendedParameterAttributeFlags&quot;</span><span class="p">,</span> <span class="mh">0x5</span><span class="p">)</span>
<span class="n">MemExtendedParameterImageMachine</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;MEM_EXTENDED_PARAMETER_TYPE&quot;</span><span class="p">,</span> <span class="s2">&quot;MemExtendedParameterImageMachine&quot;</span><span class="p">,</span> <span class="mh">0x6</span><span class="p">)</span>
<span class="n">MemExtendedParameterMax</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;MEM_EXTENDED_PARAMETER_TYPE&quot;</span><span class="p">,</span> <span class="s2">&quot;MemExtendedParameterMax&quot;</span><span class="p">,</span> <span class="mh">0x7</span><span class="p">)</span>
<div class="viewcode-block" id="MEM_EXTENDED_PARAMETER_TYPE">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.MEM_EXTENDED_PARAMETER_TYPE">[docs]</a>
<span class="k">class</span> <span class="nc">MEM_EXTENDED_PARAMETER_TYPE</span><span class="p">(</span><span class="n">EnumType</span><span class="p">):</span>
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span><span class="n">MemExtendedParameterInvalidType</span><span class="p">,</span> <span class="n">MemExtendedParameterAddressRequirements</span><span class="p">,</span> <span class="n">MemExtendedParameterNumaNode</span><span class="p">,</span> <span class="n">MemExtendedParameterPartitionHandle</span><span class="p">,</span> <span class="n">MemExtendedParameterUserPhysicalHandle</span><span class="p">,</span> <span class="n">MemExtendedParameterAttributeFlags</span><span class="p">,</span> <span class="n">MemExtendedParameterImageMachine</span><span class="p">,</span> <span class="n">MemExtendedParameterMax</span><span class="p">]</span>
<span class="n">mapper</span> <span class="o">=</span> <span class="n">FlagMapper</span><span class="p">(</span><span class="o">*</span><span class="n">values</span><span class="p">)</span></div>
<span class="n">PMEM_EXTENDED_PARAMETER_TYPE</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">MEM_EXTENDED_PARAMETER_TYPE</span><span class="p">)</span>
<div class="viewcode-block" id="_MEM_ADDRESS_REQUIREMENTS">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._MEM_ADDRESS_REQUIREMENTS">[docs]</a>
<span class="k">class</span> <span class="nc">_MEM_ADDRESS_REQUIREMENTS</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;LowestStartingAddress&quot;</span><span class="p">,</span> <span class="n">PVOID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;HighestEndingAddress&quot;</span><span class="p">,</span> <span class="n">PVOID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;Alignment&quot;</span><span class="p">,</span> <span class="n">SIZE_T</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">MEM_ADDRESS_REQUIREMENTS</span> <span class="o">=</span> <span class="n">_MEM_ADDRESS_REQUIREMENTS</span>
<span class="n">PMEM_ADDRESS_REQUIREMENTS</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_MEM_ADDRESS_REQUIREMENTS</span><span class="p">)</span>
<span class="k">class</span> <span class="nc">_ANON_MEM_EXTENDED_PARAMETER_SUB_STRUCTURE_1</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;Type&quot;</span><span class="p">,</span> <span class="n">ULONG64</span><span class="p">,</span> <span class="mi">8</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;Reserved&quot;</span><span class="p">,</span> <span class="n">ULONG64</span><span class="p">,</span> <span class="mi">56</span><span class="p">),</span>
<span class="p">]</span>
<span class="k">class</span> <span class="nc">_ANON_MEM_EXTENDED_PARAMETER_SUB_UNION_2</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;ULong64&quot;</span><span class="p">,</span> <span class="n">ULONG64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;Pointer&quot;</span><span class="p">,</span> <span class="n">PVOID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;Size&quot;</span><span class="p">,</span> <span class="n">SIZE_T</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;Handle&quot;</span><span class="p">,</span> <span class="n">HANDLE</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;ULong&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">]</span>
<div class="viewcode-block" id="MEM_EXTENDED_PARAMETER">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.MEM_EXTENDED_PARAMETER">[docs]</a>
<span class="k">class</span> <span class="nc">MEM_EXTENDED_PARAMETER</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_anonymous_</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;DUMMYSTRUCTNAME&quot;</span><span class="p">,</span><span class="s2">&quot;DUMMYUNIONNAME&quot;</span><span class="p">)</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;DUMMYSTRUCTNAME&quot;</span><span class="p">,</span> <span class="n">_ANON_MEM_EXTENDED_PARAMETER_SUB_STRUCTURE_1</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;DUMMYUNIONNAME&quot;</span><span class="p">,</span> <span class="n">_ANON_MEM_EXTENDED_PARAMETER_SUB_UNION_2</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">PMEM_EXTENDED_PARAMETER</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">MEM_EXTENDED_PARAMETER</span><span class="p">)</span>
<span class="n">SC_STATUS_PROCESS_INFO</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;_SC_STATUS_TYPE&quot;</span><span class="p">,</span> <span class="s2">&quot;SC_STATUS_PROCESS_INFO&quot;</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
<div class="viewcode-block" id="_SC_STATUS_TYPE">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._SC_STATUS_TYPE">[docs]</a>
@@ -3933,7 +4699,7 @@
<span class="p">(</span><span class="s2">&quot;LoadedImageName&quot;</span><span class="p">,</span> <span class="n">WCHAR</span> <span class="o">*</span> <span class="p">(</span><span class="mi">256</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;LoadedPdbName&quot;</span><span class="p">,</span> <span class="n">WCHAR</span> <span class="o">*</span> <span class="p">(</span><span class="mi">256</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;CVSig&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;CVData&quot;</span><span class="p">,</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">WCHAR</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="n">MAX_PATH</span> <span class="o">*</span> <span class="mi">3</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;CVData&quot;</span><span class="p">,</span> <span class="n">WCHAR</span> <span class="o">*</span> <span class="p">(</span><span class="n">MAX_PATH</span> <span class="o">*</span> <span class="mi">3</span><span class="p">)),</span>
<span class="p">(</span><span class="s2">&quot;PdbSig&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;PdbSig70&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;PdbAge&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
@@ -7211,21 +7977,18 @@
<span class="n">OBJECT_ATTRIBUTES</span> <span class="o">=</span> <span class="n">_OBJECT_ATTRIBUTES</span>
<span class="n">POBJECT_ATTRIBUTES</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_OBJECT_ATTRIBUTES</span><span class="p">)</span>
<div class="viewcode-block" id="_TMP_UNION_IO_STATUS_BLOCK">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._TMP_UNION_IO_STATUS_BLOCK">[docs]</a>
<span class="k">class</span> <span class="nc">_TMP_UNION_IO_STATUS_BLOCK</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
<span class="k">class</span> <span class="nc">_ANON__IO_STATUS_BLOCK_SUB_UNION_1</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;Status&quot;</span><span class="p">,</span> <span class="n">NTSTATUS</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;Pointer&quot;</span><span class="p">,</span> <span class="n">PVOID</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">TMP_UNION_IO_STATUS_BLOCK</span> <span class="o">=</span> <span class="n">_TMP_UNION_IO_STATUS_BLOCK</span>
<span class="p">]</span>
<div class="viewcode-block" id="_IO_STATUS_BLOCK">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._IO_STATUS_BLOCK">[docs]</a>
<span class="k">class</span> <span class="nc">_IO_STATUS_BLOCK</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_anonymous_</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;anon_01&quot;</span><span class="p">,)</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;DUMMYUNIONNAME&quot;</span><span class="p">,</span> <span class="n">TMP_UNION_IO_STATUS_BLOCK</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;anon_01&quot;</span><span class="p">,</span> <span class="n">_ANON__IO_STATUS_BLOCK_SUB_UNION_1</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;Information&quot;</span><span class="p">,</span> <span class="n">ULONG_PTR</span><span class="p">),</span>
<span class="p">]</span></div>
@@ -8257,56 +9020,6 @@
<span class="n">PREMOTE_PORT_VIEW</span> <span class="o">=</span> <span class="n">POINTER</span><span class="p">(</span><span class="n">_REMOTE_PORT_VIEW</span><span class="p">)</span>
<span class="n">REMOTE_PORT_VIEW</span> <span class="o">=</span> <span class="n">_REMOTE_PORT_VIEW</span>
<div class="viewcode-block" id="tagCOMVERSION">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagCOMVERSION">[docs]</a>
<span class="k">class</span> <span class="nc">tagCOMVERSION</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;MajorVersion&quot;</span><span class="p">,</span> <span class="n">USHORT</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;MinorVersion&quot;</span><span class="p">,</span> <span class="n">USHORT</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">COMVERSION</span> <span class="o">=</span> <span class="n">tagCOMVERSION</span>
<div class="viewcode-block" id="tagORPCTHIS">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.tagORPCTHIS">[docs]</a>
<span class="k">class</span> <span class="nc">tagORPCTHIS</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;version&quot;</span><span class="p">,</span> <span class="n">COMVERSION</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;flags&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved1&quot;</span><span class="p">,</span> <span class="n">ULONG</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;cid&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;extensions&quot;</span><span class="p">,</span> <span class="n">PVOID</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">ORPCTHIS</span> <span class="o">=</span> <span class="n">tagORPCTHIS</span>
<div class="viewcode-block" id="__MIDL_XmitDefs_0001">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs.__MIDL_XmitDefs_0001">[docs]</a>
<span class="k">class</span> <span class="nc">__MIDL_XmitDefs_0001</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;asyncOperationId&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;oxidClientProcessNA&quot;</span><span class="p">,</span> <span class="n">ULONG64</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;originalClientLogicalThreadId&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;uClientCausalityTraceId&quot;</span><span class="p">,</span> <span class="n">ULONG64</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">MIDL_XmitDefs_0001</span> <span class="o">=</span> <span class="n">__MIDL_XmitDefs_0001</span>
<div class="viewcode-block" id="_LOCALTHIS">
<a class="viewcode-back" href="../../../winstructs_generated.html#windows.generated_def.winstructs._LOCALTHIS">[docs]</a>
<span class="k">class</span> <span class="nc">_LOCALTHIS</span><span class="p">(</span><span class="n">Structure</span><span class="p">):</span>
<span class="n">_fields_</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="s2">&quot;dwFlags&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;dwClientThread&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;passthroughTraceActivity&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;callTraceActivity&quot;</span><span class="p">,</span> <span class="n">GUID</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;asyncRequestBlock&quot;</span><span class="p">,</span> <span class="n">MIDL_XmitDefs_0001</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;reserved&quot;</span><span class="p">,</span> <span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;pTouchedAstaArray&quot;</span><span class="p">,</span> <span class="n">PVOID</span><span class="p">),</span>
<span class="p">]</span></div>
<span class="n">LOCALTHIS</span> <span class="o">=</span> <span class="n">_LOCALTHIS</span>
<span class="n">ECS_ENABLED</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;_EXPCMDSTATE&quot;</span><span class="p">,</span> <span class="s2">&quot;ECS_ENABLED&quot;</span><span class="p">,</span> <span class="mh">0x0</span><span class="p">)</span>
<span class="n">ECS_DISABLED</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;_EXPCMDSTATE&quot;</span><span class="p">,</span> <span class="s2">&quot;ECS_DISABLED&quot;</span><span class="p">,</span> <span class="mh">0x1</span><span class="p">)</span>
<span class="n">ECS_HIDDEN</span> <span class="o">=</span> <span class="n">EnumValue</span><span class="p">(</span><span class="s2">&quot;_EXPCMDSTATE&quot;</span><span class="p">,</span> <span class="s2">&quot;ECS_HIDDEN&quot;</span><span class="p">,</span> <span class="mh">0x2</span><span class="p">)</span>
@@ -746,7 +746,6 @@
<span class="k">class</span> <span class="nc">JmpImm32</span><span class="p">(</span><span class="n">JmpImm</span><span class="p">):</span>
<span class="n">accept_as_Ximmediat</span> <span class="o">=</span> <span class="nb">staticmethod</span><span class="p">(</span><span class="n">accept_as_32immediat</span><span class="p">)</span>
<span class="c1"># Instructions</span>
<span class="k">class</span> <span class="nc">Call</span><span class="p">(</span><span class="n">JmpType</span><span class="p">):</span>
@@ -757,6 +756,7 @@
<span class="k">class</span> <span class="nc">Jmp</span><span class="p">(</span><span class="n">JmpType</span><span class="p">):</span>
<span class="n">encoding</span> <span class="o">=</span> <span class="p">[(</span><span class="n">RawBits</span><span class="o">.</span><span class="n">from_int</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mh">0xeb</span><span class="p">),</span> <span class="n">JmpImm8</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
<span class="p">(</span><span class="n">RawBits</span><span class="o">.</span><span class="n">from_int</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mh">0xe9</span><span class="p">),</span> <span class="n">JmpImm32</span><span class="p">(</span><span class="mi">5</span><span class="p">)),</span>
<span class="p">(</span><span class="n">RawBits</span><span class="o">.</span><span class="n">from_int</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mh">0xff</span><span class="p">),</span> <span class="n">Slash</span><span class="p">(</span><span class="mi">4</span><span class="p">)),</span>
<span class="p">(</span><span class="n">RawBits</span><span class="o">.</span><span class="n">from_int</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mh">0xea</span><span class="p">),</span> <span class="n">SegmentSelectorAbsoluteAddr</span><span class="p">())]</span>
@@ -940,16 +940,19 @@
<span class="n">default_32_bits</span> <span class="o">=</span> <span class="kc">True</span>
<span class="n">encoding</span> <span class="o">=</span> <span class="p">[(</span><span class="n">RawBits</span><span class="o">.</span><span class="n">from_int</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mh">0xa6</span><span class="p">),)]</span>
<span class="n">cmpsw</span> <span class="o">=</span> <span class="n">CmpsB</span> <span class="c1"># Allow use in assemble (use Capitalize) : todo cleaner</span>
<span class="k">class</span> <span class="nc">CmpsW</span><span class="p">(</span><span class="n">Instruction</span><span class="p">):</span>
<span class="n">default_32_bits</span> <span class="o">=</span> <span class="kc">True</span>
<span class="n">encoding</span> <span class="o">=</span> <span class="p">[(</span><span class="n">RawBits</span><span class="o">.</span><span class="n">from_int</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="mh">0x66A7</span><span class="p">),)]</span>
<span class="n">Cmpsw</span> <span class="o">=</span> <span class="n">CmpsW</span> <span class="c1"># Allow use in assemble (use Capitalize) : todo cleaner</span>
<span class="k">class</span> <span class="nc">CmpsD</span><span class="p">(</span><span class="n">Instruction</span><span class="p">):</span>
<span class="n">default_32_bits</span> <span class="o">=</span> <span class="kc">True</span>
<span class="n">encoding</span> <span class="o">=</span> <span class="p">[(</span><span class="n">RawBits</span><span class="o">.</span><span class="n">from_int</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mh">0xa7</span><span class="p">),)]</span>
<span class="n">Cmpsd</span> <span class="o">=</span> <span class="n">CmpsD</span> <span class="c1"># Allow use in assemble (use Capitalize) : todo cleaner</span>
<span class="k">class</span> <span class="nc">Nop</span><span class="p">(</span><span class="n">Instruction</span><span class="p">):</span>
<span class="n">encoding</span> <span class="o">=</span> <span class="p">[(</span><span class="n">RawBits</span><span class="o">.</span><span class="n">from_int</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mh">0x90</span><span class="p">),)]</span>
+52 -27
View File
@@ -4,12 +4,12 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>windows.rpc.client &#8212; PythonForWindows 1.0.0 documentation</title>
<title>windows.rpc.client &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="../../../_static/documentation_options.js?v=8d563738"></script>
<script src="../../../_static/documentation_options.js?v=292eb321"></script>
<script src="../../../_static/doctools.js?v=9a2dae69"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -25,7 +25,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../index.html" accesskey="U">Module code</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">windows.rpc.client</a></li>
</ul>
@@ -53,6 +53,8 @@
<span class="n">KNOWN_RPC_ERROR_CODE</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">FlagMapper</span><span class="p">(</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">ERROR_INVALID_HANDLE</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">RPC_X_BAD_STUB_DATA</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">RPC_E_INVALID_HEADER</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">RPC_E_DISCONNECTED</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">RPC_S_UNKNOWN_IF</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">RPC_S_PROTOCOL_ERROR</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">RPC_S_UNSUPPORTED_TRANS_SYN</span><span class="p">,</span>
@@ -96,7 +98,7 @@
<span class="p">(</span><span class="s2">&quot;UNK5&quot;</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;UNK6&quot;</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;UNK7&quot;</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">DWORD</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;ORPC_IPID&quot;</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">GUID</span><span class="p">)</span>
<span class="p">(</span><span class="s2">&quot;orpc_ipid&quot;</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">GUID</span><span class="p">)</span>
<span class="p">]</span>
<div class="viewcode-block" id="RPCClient">
@@ -104,6 +106,7 @@
<span class="k">class</span> <span class="nc">RPCClient</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;A client for RPC-over-ALPC able to bind to interface and perform calls using NDR32 marshalling&quot;&quot;&quot;</span>
<span class="n">REQUEST_IDENTIFIER</span> <span class="o">=</span> <span class="mh">0x11223344</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">port</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">alpc_client</span> <span class="o">=</span> <span class="n">alpc</span><span class="o">.</span><span class="n">AlpcClient</span><span class="p">(</span><span class="n">port</span><span class="p">)</span> <span class="c1">#: The :class:`windows.alpc.AlpcClient` used to communicate with the server</span>
<span class="bp">self</span><span class="o">.</span><span class="n">number_of_bind_if</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1"># if -&gt; interface</span>
@@ -111,23 +114,24 @@
<div class="viewcode-block" id="RPCClient.bind">
<a class="viewcode-back" href="../../../rpc.html#windows.rpc.RPCClient.bind">[docs]</a>
<span class="k">def</span> <span class="nf">bind</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">IID_str</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">)):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Bind to the ``IID_str`` with the given ``version``</span>
<span class="k">def</span> <span class="nf">bind</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">iid</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">)):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Bind to the ``IID`` with the given ``version``</span>
<span class="sd"> :returns: :class:`windows.generated_def.IID`</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">IID</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">com</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">IID_str</span><span class="p">)</span>
<span class="n">request</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_forge_bind_request</span><span class="p">(</span><span class="n">IID</span><span class="p">,</span> <span class="n">version</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">number_of_bind_if</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">iid</span><span class="p">,</span> <span class="n">gdef</span><span class="o">.</span><span class="n">GUID</span><span class="p">):</span>
<span class="n">iid</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">com</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">iid</span><span class="p">)</span>
<span class="n">request</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_forge_bind_request</span><span class="p">(</span><span class="n">iid</span><span class="p">,</span> <span class="n">version</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">number_of_bind_if</span><span class="p">)</span>
<span class="n">response</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_send_request</span><span class="p">(</span><span class="n">request</span><span class="p">)</span>
<span class="c1"># Parse reponse</span>
<span class="n">request_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_request_type</span><span class="p">(</span><span class="n">response</span><span class="p">)</span>
<span class="k">if</span> <span class="n">request_type</span> <span class="o">!=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">RPC_RESPONSE_TYPE_BIND_OK</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Unexpected reponse type. Expected RESPONSE_TYPE_BIND_OK got </span><span class="si">{0}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">KNOW_RESPONSE_TYPE</span><span class="p">[</span><span class="n">request_type</span><span class="p">]))</span>
<span class="n">iid_hash</span> <span class="o">=</span> <span class="nb">hash</span><span class="p">(</span><span class="n">buffer</span><span class="p">(</span><span class="n">IID</span><span class="p">)[:])</span> <span class="c1"># TODO: add __hash__ to IID</span>
<span class="n">iid_hash</span> <span class="o">=</span> <span class="nb">hash</span><span class="p">(</span><span class="n">buffer</span><span class="p">(</span><span class="n">iid</span><span class="p">)[:])</span> <span class="c1"># TODO: add __hash__ to IID</span>
<span class="bp">self</span><span class="o">.</span><span class="n">if_bind_number</span><span class="p">[</span><span class="n">iid_hash</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">number_of_bind_if</span>
<span class="bp">self</span><span class="o">.</span><span class="n">number_of_bind_if</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="c1">#TODO: attach version information to IID</span>
<span class="k">return</span> <span class="n">IID</span></div>
<span class="k">return</span> <span class="n">iid</span></div>
<div class="viewcode-block" id="RPCClient.forge_alpc_request">
@@ -149,11 +153,12 @@
<div class="viewcode-block" id="RPCClient.call">
<a class="viewcode-back" href="../../../rpc.html#windows.rpc.RPCClient.call">[docs]</a>
<span class="k">def</span> <span class="nf">call</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">IID</span><span class="p">,</span> <span class="n">method_offset</span><span class="p">,</span> <span class="n">params</span><span class="p">,</span> <span class="n">ipid</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Call method number ``method_offset`` of interface ``IID`` with mashalled ``params``</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Call method number ``method_offset`` of interface ``IID`` with mashalled ``params``.</span>
<span class="sd"> Handle `ORPC calls &lt;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dcom/db1d5ce1-a783-4f3d-854c-dc44308e78fb&gt;`_ via the `ipid` parameter.</span>
<span class="sd"> :param IID IID: An IID previously returned by :func:`bind`</span>
<span class="sd"> :param int method_offset:</span>
<span class="sd"> :param str params: The mashalled parameters (NDR32)</span>
<span class="sd"> :param GUID ipid: The IPID for `ORPC calls &lt;https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dcom/db1d5ce1-a783-4f3d-854c-dc44308e78fb&gt;`_</span>
<span class="sd"> :returns: :class:`str`</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">request</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">forge_alpc_request</span><span class="p">(</span><span class="n">IID</span><span class="p">,</span> <span class="n">method_offset</span><span class="p">,</span> <span class="n">params</span><span class="p">,</span> <span class="n">ipid</span><span class="o">=</span><span class="n">ipid</span><span class="p">)</span>
@@ -162,19 +167,18 @@
<span class="n">request_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_request_type</span><span class="p">(</span><span class="n">response</span><span class="p">)</span>
<span class="k">if</span> <span class="n">request_type</span> <span class="o">!=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">RPC_RESPONSE_TYPE_SUCCESS</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Unexpected reponse type. Expected RESPONSE_SUCCESS got </span><span class="si">{0}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">KNOW_RESPONSE_TYPE</span><span class="p">[</span><span class="n">request_type</span><span class="p">]))</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_response_effective_data</span><span class="p">(</span><span class="n">response</span><span class="p">)</span></div>
<span class="c1"># windows.utils.sprint(ALPC_RPC_CALL.from_buffer_copy(response + &quot;\x00&quot; * 12))</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s2">&quot;&lt;6I&quot;</span><span class="p">,</span> <span class="n">response</span><span class="p">[:</span><span class="mi">6</span> <span class="o">*</span> <span class="mi">4</span><span class="p">])</span>
<span class="k">assert</span> <span class="n">data</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">REQUEST_IDENTIFIER</span>
<span class="k">return</span> <span class="n">response</span><span class="p">[</span><span class="mi">4</span> <span class="o">*</span> <span class="mi">6</span><span class="p">:]</span> <span class="c1"># Should be the return value (not completly verified)</span></div>
<span class="c1"># data = struct.unpack(&quot;&lt;6I&quot;, response[:6 * 4])</span>
<span class="c1"># assert data[3] == self.REQUEST_IDENTIFIER</span>
<span class="c1"># return response[4 * 6:] # Should be the return value (not completly verified)</span>
<span class="k">def</span> <span class="nf">_send_request</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">):</span>
<span class="n">response</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">alpc_client</span><span class="o">.</span><span class="n">send_receive</span><span class="p">(</span><span class="n">request</span><span class="p">)</span>
<span class="k">return</span> <span class="n">response</span><span class="o">.</span><span class="n">data</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alpc_client</span><span class="o">.</span><span class="n">send_receive</span><span class="p">(</span><span class="n">request</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">_forge_call_request</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interface_nb</span><span class="p">,</span> <span class="n">method_offset</span><span class="p">,</span> <span class="n">params</span><span class="p">,</span> <span class="n">ipid</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="c1"># TODO: differents REQUEST_IDENTIFIER for each req ?</span>
<span class="c1"># TODO: differents REQUEST_IDENTIFIER for each req ? Use REQUEST_IDENTIFIER to identify ORPC calls ?</span>
<span class="c1"># TODO: what is this &#39;0&#39; ? (1 is also accepted) (flags ?)</span>
<span class="c1"># request = struct.pack(&quot;&lt;16I&quot;, gdef.RPC_REQUEST_TYPE_CALL, NOT_USED, 1, self.REQUEST_IDENTIFIER, interface_nb, method_offset, *[NOT_USED] * 10)</span>
<span class="n">req</span> <span class="o">=</span> <span class="n">ALPC_RPC_CALL</span><span class="p">()</span>
@@ -184,16 +188,24 @@
<span class="n">req</span><span class="o">.</span><span class="n">if_nb</span> <span class="o">=</span> <span class="n">interface_nb</span>
<span class="n">req</span><span class="o">.</span><span class="n">method_offset</span> <span class="o">=</span> <span class="n">method_offset</span>
<span class="k">if</span> <span class="n">ipid</span><span class="p">:</span>
<span class="n">req</span><span class="o">.</span><span class="n">ORPC_IPID</span> <span class="o">=</span> <span class="n">ipid</span>
<span class="n">this</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">ORPCTHIS</span><span class="p">()</span>
<span class="n">req</span><span class="o">.</span><span class="n">flags</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1"># We have a IPID</span>
<span class="n">req</span><span class="o">.</span><span class="n">orpc_ipid</span> <span class="o">=</span> <span class="n">ipid</span>
<span class="n">this</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">ORPCTHIS32</span><span class="p">()</span> <span class="c1"># we use NDR32</span>
<span class="n">this</span><span class="o">.</span><span class="n">version</span> <span class="o">=</span> <span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">7</span><span class="p">)</span>
<span class="n">this</span><span class="o">.</span><span class="n">flags</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">lthis</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">LOCALTHIS</span><span class="p">()</span>
<span class="n">this</span><span class="o">.</span><span class="n">flags</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">ORPCF_LOCAL</span>
<span class="c1"># Not mandatory</span>
<span class="c1"># this.cid = gdef.GUID.from_string(&quot;42424242-4242-4242-4242-424242424242&quot;)</span>
<span class="n">lthis</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">LOCALTHIS32</span><span class="p">()</span> <span class="c1"># we use NDR32</span>
<span class="c1"># RPC_E_INVALID_HEADER is NULL</span>
<span class="n">lthis</span><span class="o">.</span><span class="n">callTraceActivity</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">GUID</span><span class="o">.</span><span class="n">from_string</span><span class="p">(</span><span class="s2">&quot;42424242-4242-4242-4242-424242424242&quot;</span><span class="p">)</span>
<span class="n">lthis</span><span class="o">.</span><span class="n">dwClientThread</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">current_thread</span><span class="o">.</span><span class="n">tid</span>
<span class="k">return</span> <span class="n">buffer</span><span class="p">(</span><span class="n">req</span><span class="p">)[:]</span> <span class="o">+</span> <span class="n">buffer</span><span class="p">(</span><span class="n">this</span><span class="p">)[:]</span> <span class="o">+</span> <span class="n">buffer</span><span class="p">(</span><span class="n">lthis</span><span class="p">)[:]</span> <span class="o">+</span> <span class="n">params</span>
<span class="k">return</span> <span class="n">buffer</span><span class="p">(</span><span class="n">req</span><span class="p">)[:]</span> <span class="o">+</span> <span class="n">params</span>
<span class="k">def</span> <span class="nf">_forge_call_request_in_view</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interface_nb</span><span class="p">,</span> <span class="n">method_offset</span><span class="p">,</span> <span class="n">params</span><span class="p">,</span> <span class="n">ipid</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="c1"># Version crade qui clean rien pour POC. GROS DOUTES :D</span>
<span class="k">if</span> <span class="n">ipid</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;RpcClient._forge_call_request_in_view() with ipid&quot;</span><span class="p">)</span>
<span class="n">raw_request</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_forge_call_request</span><span class="p">(</span><span class="n">interface_nb</span><span class="p">,</span> <span class="n">method_offset</span><span class="p">,</span> <span class="sa">b</span><span class="s2">&quot;&quot;</span><span class="p">)</span>
<span class="n">p</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">alpc</span><span class="o">.</span><span class="n">AlpcMessage</span><span class="p">(</span><span class="mh">0x2000</span><span class="p">)</span>
<span class="n">section</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">alpc_client</span><span class="o">.</span><span class="n">create_port_section</span><span class="p">(</span><span class="mh">0x40000</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">params</span><span class="p">))</span>
@@ -221,12 +233,25 @@
<span class="k">return</span> <span class="n">buffer</span><span class="p">(</span><span class="n">req</span><span class="p">)[:]</span>
<span class="k">def</span> <span class="nf">_get_request_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">response</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Response is a `AlpcMessage`&quot;&quot;&quot;</span>
<span class="s2">&quot;raise if request_type == RESPONSE_TYPE_FAIL&quot;</span>
<span class="n">request_type</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s2">&quot;&lt;I&quot;</span><span class="p">,</span> <span class="n">response</span><span class="p">[:</span><span class="mi">4</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">request_type</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s2">&quot;&lt;I&quot;</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">data</span><span class="p">[:</span><span class="mi">4</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
<span class="k">if</span> <span class="n">request_type</span> <span class="o">==</span> <span class="n">gdef</span><span class="o">.</span><span class="n">RPC_RESPONSE_TYPE_FAIL</span><span class="p">:</span>
<span class="n">error_code</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s2">&quot;&lt;5I&quot;</span><span class="p">,</span> <span class="n">response</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span>
<span class="n">error_code</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s2">&quot;&lt;5I&quot;</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">data</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;RPC Response error </span><span class="si">{0}</span><span class="s2"> (</span><span class="si">{1}</span><span class="s2">)&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">error_code</span><span class="p">,</span> <span class="n">KNOWN_RPC_ERROR_CODE</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">error_code</span><span class="p">,</span> <span class="n">error_code</span><span class="p">)))</span>
<span class="k">return</span> <span class="n">request_type</span></div>
<span class="k">return</span> <span class="n">request_type</span>
<span class="k">def</span> <span class="nf">_get_response_effective_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">response</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Response is a `AlpcMessage` needed to handle response in message vs response in view&quot;&quot;&quot;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">response</span><span class="o">.</span><span class="n">view_is_valid</span><span class="p">:</span>
<span class="c1"># Reponse directly in PORT_MESSAGE</span>
<span class="k">return</span> <span class="n">response</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="mh">0x18</span><span class="p">:]</span> <span class="c1"># 4 * 6</span>
<span class="c1"># Response in view M extract size from PORT_MESSAGE &amp; read data from view</span>
<span class="k">assert</span> <span class="n">response</span><span class="o">.</span><span class="n">port_message</span><span class="o">.</span><span class="n">u1</span><span class="o">.</span><span class="n">s1</span><span class="o">.</span><span class="n">TotalLength</span> <span class="o">&gt;=</span> <span class="mh">0x48</span> <span class="c1"># At least 0x20 of data</span>
<span class="n">rpcdatasize</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s2">&quot;&lt;I&quot;</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="mh">0x18</span><span class="p">:</span><span class="mh">0x1c</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">viewattr</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">view_attribute</span>
<span class="k">assert</span> <span class="n">viewattr</span><span class="o">.</span><span class="n">ViewSize</span> <span class="o">&gt;=</span> <span class="n">rpcdatasize</span>
<span class="k">return</span> <span class="n">windows</span><span class="o">.</span><span class="n">current_process</span><span class="o">.</span><span class="n">read_memory</span><span class="p">(</span><span class="n">viewattr</span><span class="o">.</span><span class="n">ViewBase</span><span class="p">,</span> <span class="n">rpcdatasize</span><span class="p">)</span></div>
</pre></div>
@@ -259,7 +284,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">windows.rpc.client</a></li>
</ul>
+1
View File
@@ -655,6 +655,7 @@
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">fulldata</span> <span class="o">=</span> <span class="n">data</span>
<span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">data</span>
<span class="c1"># self.data = memoryview(data) # FAST but need some code rewrite at some places</span>
<span class="k">def</span> <span class="nf">partial_unpack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">format</span><span class="p">):</span>
<span class="n">size</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="nb">format</span><span class="p">)</span>
+6 -6
View File
@@ -214,11 +214,11 @@
<span class="p">)</span>
<span class="n">COM_ACCESS_RIGHT</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">FlagMapper</span><span class="p">(</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">COM_EXECUTE</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">COM_EXECUTE_LOCAL</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">COM_EXECUTE_REMOTE</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">COM_ACTIVATE_LOCAL</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">COM_ACTIVATE_REMOTE</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">COM_RIGHTS_EXECUTE</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">COM_RIGHTS_EXECUTE_LOCAL</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">COM_RIGHTS_EXECUTE_REMOTE</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">COM_RIGHTS_ACTIVATE_LOCAL</span><span class="p">,</span>
<span class="n">gdef</span><span class="o">.</span><span class="n">COM_RIGHTS_ACTIVATE_REMOTE</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">SERVICE_ACCESS_RIGHT</span> <span class="o">=</span> <span class="n">gdef</span><span class="o">.</span><span class="n">FlagMapper</span><span class="p">(</span>
@@ -245,7 +245,6 @@
<span class="n">gdef</span><span class="o">.</span><span class="n">ADS_RIGHT_DS_CONTROL_ACCESS</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">SPECIFIC_ACCESS_RIGTH_BY_TYPE</span> <span class="o">=</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">FlagMapper</span><span class="p">(),</span>
<span class="s2">&quot;file&quot;</span><span class="p">:</span> <span class="n">FILE_ACCESS_RIGHT</span><span class="p">,</span>
@@ -257,6 +256,7 @@
<span class="s2">&quot;callback&quot;</span><span class="p">:</span> <span class="n">CALLBACK_ACCESS_RIGHT</span><span class="p">,</span>
<span class="s2">&quot;mutant&quot;</span><span class="p">:</span> <span class="n">MUTANT_ACCESS_RIGHT</span><span class="p">,</span>
<span class="s2">&quot;event&quot;</span><span class="p">:</span> <span class="n">EVENT_ACCESS_RIGHT</span><span class="p">,</span>
<span class="s2">&quot;section&quot;</span><span class="p">:</span> <span class="n">SECTION_ACCESS_RIGHT</span><span class="p">,</span>
<span class="s2">&quot;semaphore&quot;</span><span class="p">:</span> <span class="n">SEMAPHORE_ACCESS_RIGHT</span><span class="p">,</span>
<span class="s2">&quot;io_completion&quot;</span><span class="p">:</span> <span class="n">IO_COMPLETION_ACCESS_RIGHT</span><span class="p">,</span>
<span class="s2">&quot;port&quot;</span><span class="p">:</span> <span class="n">PORT_ACCESS_RIGHT</span><span class="p">,</span>
+5 -5
View File
@@ -620,11 +620,11 @@
<span class="k">def</span> <span class="nf">create_file</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">access</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">GENERIC_READ</span><span class="p">,</span> <span class="n">share</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">FILE_SHARE_READ</span><span class="p">,</span> <span class="n">security</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">creation</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">OPEN_EXISTING</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">FILE_ATTRIBUTE_NORMAL</span><span class="p">):</span>
<span class="k">return</span> <span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">CreateFileW</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">access</span><span class="p">,</span> <span class="n">share</span><span class="p">,</span> <span class="n">security</span><span class="p">,</span> <span class="n">creation</span><span class="p">,</span> <span class="n">flags</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
<span class="c1">#def mapfile(file):</span>
<span class="c1"># fhandle = get_handle_from_file(file)</span>
<span class="c1"># h = windows.winproxy.CreateFileMappingA(fhandle, None, PAGE_READONLY, 0, 1, None)</span>
<span class="c1"># addr = windows.winproxy.MapViewOfFile(h, dwDesiredAccess=FILE_MAP_READ, dwNumberOfBytesToMap=1)</span>
<span class="c1"># return addr</span>
<span class="k">def</span> <span class="nf">mapfile</span><span class="p">(</span><span class="n">file</span><span class="p">):</span>
<span class="n">fhandle</span> <span class="o">=</span> <span class="n">get_handle_from_file</span><span class="p">(</span><span class="n">file</span><span class="p">)</span>
<span class="n">h</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">CreateFileMappingA</span><span class="p">(</span><span class="n">fhandle</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="n">PAGE_READONLY</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="kc">None</span><span class="p">)</span>
<span class="n">addr</span> <span class="o">=</span> <span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">MapViewOfFile</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">dwDesiredAccess</span><span class="o">=</span><span class="n">FILE_MAP_READ</span><span class="p">,</span> <span class="n">dwNumberOfBytesToMap</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="k">return</span> <span class="n">addr</span>
<span class="k">def</span> <span class="nf">decompress_buffer</span><span class="p">(</span><span class="n">buffer</span><span class="p">,</span> <span class="n">comptype</span><span class="o">=</span><span class="n">gdef</span><span class="o">.</span><span class="n">COMPRESSION_FORMAT_LZNT1</span><span class="p">,</span> <span class="n">uncompress_size</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="k">if</span> <span class="n">uncompress_size</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+488 -55
View File
@@ -2,6 +2,24 @@
Interfaces
----------
.. class:: IActivationStageInfo
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: SetStageAndIndex
.. method:: GetStage
.. method:: GetIndex
.. class:: ICallFactory
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: CreateCall
.. class:: ICallFrame
.. method:: QueryInterface
@@ -57,6 +75,42 @@ Interfaces
.. method:: GetRegisteredSink
.. class:: IClassFactory
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: CreateInstance
.. method:: LockServer
.. class:: IClientSecurity
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: QueryBlanket
.. method:: SetBlanket
.. method:: CopyProxy
.. class:: IComCatalog
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetClassInfo
.. method:: GetApplicationInfo
.. method:: GetProcessInfo
.. method:: GetServerGroupInfo
.. method:: GetRetQueueInfo
.. method:: GetApplicationInfoForExe
.. method:: GetTypeLibrary
.. method:: GetInterfaceInfo
.. method:: FlushCache
.. method:: GetClassInfoFromProgId
.. class:: IDispatch
.. method:: QueryInterface
@@ -79,6 +133,54 @@ Interfaces
.. method:: Clone
.. class:: IInternalUnknown
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: QueryInternalInterface
.. class:: IMarshal
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetUnmarshalClass
.. method:: GetMarshalSizeMax
.. method:: MarshalInterface
.. method:: UnmarshalInterface
.. method:: ReleaseMarshalData
.. method:: DisconnectObject
.. class:: IMoniker
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetClassID
.. method:: IsDirty
.. method:: Load
.. method:: Save
.. method:: GetSizeMax
.. method:: BindToObject
.. method:: BindToStorage
.. method:: Reduce
.. method:: ComposeWith
.. method:: Enum
.. method:: IsEqual
.. method:: Hash
.. method:: IsRunning
.. method:: GetTimeOfLastChange
.. method:: Inverse
.. method:: CommonPrefixWith
.. method:: RelativePathTo
.. method:: GetDisplayName
.. method:: ParseDisplayName
.. method:: IsSystemMoniker
.. class:: INetFwPolicy2
.. method:: QueryInterface
@@ -112,22 +214,6 @@ Interfaces
.. method:: get_LocalPolicyModifyState
.. class:: INetFwRules
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetTypeInfoCount
.. method:: GetTypeInfo
.. method:: GetIDsOfNames
.. method:: Invoke
.. method:: get_Count
.. method:: Add
.. method:: Remove
.. method:: Item
.. method:: get__NewEnum
.. class:: INetFwRule
.. method:: QueryInterface
@@ -175,6 +261,22 @@ Interfaces
.. method:: put_Action
.. class:: INetFwRules
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetTypeInfoCount
.. method:: GetTypeInfo
.. method:: GetIDsOfNames
.. method:: Invoke
.. method:: get_Count
.. method:: Add
.. method:: Remove
.. method:: Item
.. method:: get__NewEnum
.. class:: INetFwServiceRestriction
.. method:: QueryInterface
@@ -189,6 +291,24 @@ Interfaces
.. method:: get_Rules
.. class:: IObjContext
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: SetProperty
.. method:: RemoveProperty
.. method:: GetProperty
.. method:: EnumContextProps
.. method:: Reserved1
.. method:: Reserved2
.. method:: Reserved3
.. method:: Reserved4
.. method:: Reserved5
.. method:: Reserved6
.. method:: Reserved7
.. class:: IPersist
.. method:: QueryInterface
@@ -210,6 +330,16 @@ Interfaces
.. method:: GetCurFile
.. class:: IRemUnknown
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: RemQueryInterface
.. method:: RemAddRef
.. method:: RemRelease
.. class:: IShellLinkA
.. method:: QueryInterface
@@ -260,6 +390,53 @@ Interfaces
.. method:: SetPath
.. class:: IStdIdentity
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. class:: IStorage
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: CreateStream
.. method:: OpenStream
.. method:: CreateStorage
.. method:: OpenStorage
.. method:: CopyTo
.. method:: MoveElementTo
.. method:: Commit
.. method:: Revert
.. method:: EnumElements
.. method:: DestroyElement
.. method:: RenameElement
.. method:: SetElementTimes
.. method:: SetClass
.. method:: SetStateBits
.. method:: Stat
.. class:: IStream
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: Read
.. method:: Write
.. method:: Seek
.. method:: SetSize
.. method:: CopyTo
.. method:: Commit
.. method:: Revert
.. method:: LockRegion
.. method:: UnlockRegion
.. method:: Stat
.. method:: Clone
.. class:: ITypeComp
.. method:: QueryInterface
@@ -500,6 +677,224 @@ Interfaces
.. method:: GetCount
.. class:: IActivationProperties
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetUnmarshalClass
.. method:: GetMarshalSizeMax
.. method:: MarshalInterface
.. method:: UnmarshalInterface
.. method:: ReleaseMarshalData
.. method:: DisconnectObject
.. method:: SetDestCtx
.. method:: SetMarshalFlags
.. method:: SetLocalBlob
.. method:: GetLocalBlob
.. class:: IActivationPropertiesOut
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetActivationID
.. method:: GetObjectInterface
.. method:: GetObjectInterfaces
.. method:: RemoveRequestedIIDs
.. class:: IActivationPropertiesIn
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetActivationID
.. method:: GetClassInfo
.. method:: GetClsctx
.. method:: GetActivationFlags
.. method:: AddRequestedIIDs
.. method:: GetRequestedIIDs
.. method:: DelegateGetClassObject
.. method:: DelegateCreateInstance
.. method:: DelegateCIAndGetCF
.. method:: GetReturnActivationProperties
.. class:: IClassClassicInfo
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetThreadingModel
.. method:: GetModulePath
.. method:: GetImplementedClsid
.. method:: GetProcess
.. method:: GetRemoteServerName
.. method:: GetLocalServerType
.. method:: GetSurrogateCommandLine
.. class:: IComClassInfo
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetConfiguredClsid
.. method:: GetProgId
.. method:: GetClassName
.. method:: GetApplication
.. method:: GetClassContext
.. method:: GetCustomActivatorCount
.. method:: GetCustomActivatorClsids
.. method:: GetCustomActivators
.. method:: GetTypeInfo
.. method:: IsComPlusConfiguredClass
.. method:: MustRunInClientContext
.. method:: GetVersionNumber
.. method:: Lock
.. method:: Unlock
.. class:: IContext
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: SetProperty
.. method:: RemoveProperty
.. method:: GetProperty
.. method:: EnumContextProps
.. class:: IEnumContextProps
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: Next
.. method:: Skip
.. method:: Reset
.. method:: Clone
.. method:: Count
.. class:: IEnumSTATSTG
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: Next
.. method:: Skip
.. method:: Reset
.. method:: Clone
.. class:: IInitActivationPropertiesIn
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: SetClsctx
.. method:: SetActivationFlags
.. method:: SetClassInfo
.. method:: SetContextInfo
.. method:: SetConstructFromStorage
.. method:: SetConstructFromFile
.. class:: IOpaqueDataInfo
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: AddOpaqueData
.. method:: GetOpaqueData
.. method:: DeleteOpaqueData
.. method:: GetOpaqueDataCount
.. method:: GetAllOpaqueData
.. class:: IPrivActivationPropertiesIn
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetActivationID
.. method:: GetClassInfo
.. method:: GetClsctx
.. method:: GetActivationFlags
.. method:: AddRequestedIIDs
.. method:: GetRequestedIIDs
.. method:: DelegateGetClassObject
.. method:: DelegateCreateInstance
.. method:: DelegateCIAndGetCF
.. method:: GetReturnActivationProperties
.. method:: PrivGetReturnActivationProperties
.. method:: GetCOMVersion
.. method:: GetClsid
.. method:: GetClientToken
.. method:: GetDestCtx
.. class:: IPrivActivationPropertiesOut
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetActivationID
.. method:: GetObjectInterface
.. method:: GetObjectInterfaces
.. method:: RemoveRequestedIIDs
.. method:: SetObjectInterfaces
.. method:: SetMarshalledResults
.. method:: GetMarshalledResults
.. class:: IScmReplyInfo
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: SetResolverInfo
.. method:: GetResolverInfo
.. method:: SetRemoteReplyInfo
.. method:: GetRemoteReplyInfo
.. class:: IScmRequestInfo
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: SetScmInfo
.. method:: GetScmInfo
.. method:: SetRemoteRequestInfo
.. method:: GetRemoteRequestInfo
.. class:: IStandardActivator
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: StandardGetClassObject
.. method:: StandardCreateInstance
.. method:: StandardGetInstanceFromFile
.. method:: StandardGetInstanceFromIStorage
.. method:: Reset
.. class:: ISystemActivator
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetClassObject
.. method:: CreateInstance
.. class:: IBindCtx
.. method:: QueryInterface
@@ -576,33 +971,6 @@ Interfaces
.. method:: EnumSubCommands
.. class:: IMoniker
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetClassID
.. method:: IsDirty
.. method:: Load
.. method:: Save
.. method:: GetSizeMax
.. method:: BindToObject
.. method:: BindToStorage
.. method:: Reduce
.. method:: ComposeWith
.. method:: Enum
.. method:: IsEqual
.. method:: Hash
.. method:: IsRunning
.. method:: GetTimeOfLastChange
.. method:: Inverse
.. method:: CommonPrefixWith
.. method:: RelativePathTo
.. method:: GetDisplayName
.. method:: ParseDisplayName
.. method:: IsSystemMoniker
.. class:: IRunningObjectTable
.. method:: QueryInterface
@@ -643,22 +1011,30 @@ Interfaces
.. method:: EnumItems
.. class:: IStream
.. class:: IProxyManager
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: Read
.. method:: Write
.. method:: Seek
.. method:: SetSize
.. method:: CopyTo
.. method:: Commit
.. method:: Revert
.. method:: LockRegion
.. method:: UnlockRegion
.. method:: Stat
.. method:: Clone
.. method:: CreateServer
.. method:: IsConnected
.. method:: LockConnection
.. method:: Disconnect
.. method:: GetConnectionStatus
.. method:: ScalarDeletingDestructor
.. method:: SetMapping
.. method:: GetMapping
.. method:: GetServerObjectContext
.. method:: GetWrapperForContex
.. class:: IProxyServerIdentity
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetServerProcessId
.. method:: GetServerProcessHandle
.. class:: IApplicationActivationManager
@@ -701,6 +1077,63 @@ Interfaces
.. method:: OnStateChanged
.. class:: IChannelHook
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: ClientGetSize
.. method:: ClientFillBuffer
.. method:: ClientNotify
.. method:: ServerNotify
.. method:: ServerGetSize
.. method:: ServerFillBuffer
.. class:: IRpcChannelBuffer
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetBuffer
.. method:: SendReceive
.. method:: FreeBuffer
.. method:: GetDestCtx
.. method:: IsConnected
.. class:: IRpcHelper
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: GetDCOMProtocolVersion
.. method:: GetIIDFromOBJREF
.. class:: IRpcOptions
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: Set
.. method:: Query
.. class:: IRpcStubBuffer
.. method:: QueryInterface
.. method:: AddRef
.. method:: Release
.. method:: Connect
.. method:: Disconnect
.. method:: Invoke
.. method:: IsIIDSupported
.. method:: CountRefs
.. method:: DebugServerQueryInterface
.. method:: DebugServerRelease
.. class:: IAction
.. method:: QueryInterface
+32 -5
View File
@@ -126,6 +126,32 @@ WinDef
.. autodata:: NUM_CR_RESULTS
.. autodata:: PCD_MAX_MEMORY
.. autodata:: PCD_MAX_IO
.. autodata:: ORPCF_NULL
.. autodata:: ORPCF_LOCAL
.. autodata:: ORPCF_RESERVED1
.. autodata:: ORPCF_RESERVED2
.. autodata:: ORPCF_RESERVED3
.. autodata:: ORPCF_RESERVED4
.. autodata:: ORPCF_INPUT_SYNC
.. autodata:: ORPCF_ASYNC
.. autodata:: ORPCF_DYNAMIC_CLOAKING
.. autodata:: ORPCF_REJECTED
.. autodata:: ORPCF_RETRY_LATER
.. autodata:: OBJREF_SIGNATURE
.. autodata:: OBJREF_STANDARD
.. autodata:: OBJREF_HANDLER
.. autodata:: OBJREF_CUSTOM
.. autodata:: OBJREF_EXTENDED
.. autodata:: SORF_OXRES1
.. autodata:: SORF_OXRES2
.. autodata:: SORF_OXRES3
.. autodata:: SORF_OXRES4
.. autodata:: SORF_OXRES5
.. autodata:: SORF_OXRES6
.. autodata:: SORF_OXRES7
.. autodata:: SORF_OXRES8
.. autodata:: SORF_NULL
.. autodata:: SORF_NOPING
.. autodata:: CWCSTORAGENAME
.. autodata:: STGM_DIRECT
.. autodata:: STGM_TRANSACTED
@@ -1127,6 +1153,7 @@ WinDef
.. autodata:: REG_STANDARD_FORMAT
.. autodata:: REG_LATEST_FORMAT
.. autodata:: REG_NO_COMPRESSION
.. autodata:: MEM_EXTENDED_PARAMETER_TYPE_BITS
.. autodata:: ACCESS_MIN_MS_ACE_TYPE
.. autodata:: ACCESS_ALLOWED_ACE_TYPE
.. autodata:: ACCESS_DENIED_ACE_TYPE
@@ -2392,11 +2419,11 @@ WinDef
.. autodata:: FAX_PORT_QUERY
.. autodata:: FAX_PORT_SET
.. autodata:: FAX_JOB_MANAGE
.. autodata:: COM_EXECUTE
.. autodata:: COM_EXECUTE_LOCAL
.. autodata:: COM_EXECUTE_REMOTE
.. autodata:: COM_ACTIVATE_LOCAL
.. autodata:: COM_ACTIVATE_REMOTE
.. autodata:: COM_RIGHTS_EXECUTE
.. autodata:: COM_RIGHTS_EXECUTE_LOCAL
.. autodata:: COM_RIGHTS_EXECUTE_REMOTE
.. autodata:: COM_RIGHTS_ACTIVATE_LOCAL
.. autodata:: COM_RIGHTS_ACTIVATE_REMOTE
.. autodata:: SECTION_QUERY
.. autodata:: SECTION_MAP_WRITE
.. autodata:: SECTION_MAP_READ
+20 -6
View File
@@ -164,6 +164,14 @@ Functions
.. function:: SysFreeString(bstrString)
.. function:: CreateStreamOnHGlobal(hGlobal, fDeleteOnRelease, ppstm)
.. function:: GetHGlobalFromStream(pstm, phglobal)
.. function:: CoMarshalInterface(pStm, riid, pUnk, dwDestContext, pvDestContext, mshlflags)
.. function:: CoUnmarshalInterface(pStm, riid, ppv)
.. function:: CryptCATAdminCalcHashFromFileHandle(hFile, pcbHash, pbHash, dwFlags)
.. function:: CryptCATAdminCalcHashFromFileHandle2(hCatAdmin, hFile, pcbHash, pbHash, dwFlags)
@@ -978,12 +986,6 @@ Functions
.. function:: SymEnumSymbolsEx(hProcess, BaseOfDll, Mask, EnumSymbolsCallback, UserContext, Options)
.. function:: SymEnumTypes(hProcess, BaseOfDll, EnumSymbolsCallback, UserContext)
.. function:: SymEnumTypesByName(hProcess, BaseOfDll, mask, EnumSymbolsCallback, UserContext)
.. function:: SymEnumTypesByNameW(hProcess, BaseOfDll, mask, EnumSymbolsCallback, UserContext)
.. function:: SymEnumerateModules64(hProcess, EnumModulesCallback, UserContext)
.. function:: SymEnumerateModulesW64(hProcess, EnumModulesCallback, UserContext)
@@ -1072,6 +1074,14 @@ Functions
.. function:: SymSetSearchPathW(hProcess, SearchPath)
.. function:: SymEnumTypes(hProcess, BaseOfDll, EnumSymbolsCallback, UserContext)
.. function:: SymEnumTypesW(hProcess, BaseOfDll, EnumSymbolsCallback, UserContext)
.. function:: SymEnumTypesByName(hProcess, BaseOfDll, mask, EnumSymbolsCallback, UserContext)
.. function:: SymEnumTypesByNameW(hProcess, BaseOfDll, mask, EnumSymbolsCallback, UserContext)
.. function:: CreateEventA(lpEventAttributes, bManualReset, bInitialState, lpName)
.. function:: CreateEventW(lpEventAttributes, bManualReset, bInitialState, lpName)
@@ -1164,6 +1174,10 @@ Functions
.. function:: NtTerminateProcess(ProcessHandle, ExitStatus)
.. function:: NtReadFile(FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, Length, ByteOffset, Key)
.. function:: NtWriteFile(FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, Length, ByteOffset, Key)
.. function:: GetComputerNameExA(NameType, lpBuffer, nSize)
.. function:: GetComputerNameExW(NameType, lpBuffer, nSize)
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,5 +1,5 @@
const DOCUMENTATION_OPTIONS = {
VERSION: '1.0.0',
VERSION: '1.0.1',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>12. windows.alpc Advanced Local Procedure Call &#8212; PythonForWindows 1.0.0 documentation</title>
<title>12. windows.alpc Advanced Local Procedure Call &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="crypto.html" title="11. windows.crypto CryptoAPI"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">12. </span><code class="docutils literal notranslate"><span class="pre">windows.alpc</span></code> Advanced Local Procedure Call</a></li>
</ul>
</div>
@@ -544,7 +544,7 @@ ALPC messages over an ALPC port and the classes representing these messages.</p>
<li class="right" >
<a href="crypto.html" title="11. windows.crypto CryptoAPI"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">12. </span><code class="docutils literal notranslate"><span class="pre">windows.alpc</span></code> Advanced Local Procedure Call</a></li>
</ul>
</div>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>10. windows.com - Component Object Model &#8212; PythonForWindows 1.0.0 documentation</title>
<title>10. windows.com - Component Object Model &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="debug.html" title="9. windows.debug Debugging"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">10. </span><code class="xref py py-mod docutils literal notranslate"><span class="pre">windows.com</span></code> - Component Object Model</a></li>
</ul>
</div>
@@ -204,7 +204,7 @@ You can then use the instance to call whatever method you need.</p>
<li class="right" >
<a href="debug.html" title="9. windows.debug Debugging"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">10. </span><code class="xref py py-mod docutils literal notranslate"><span class="pre">windows.com</span></code> - Component Object Model</a></li>
</ul>
</div>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>11. windows.crypto CryptoAPI &#8212; PythonForWindows 1.0.0 documentation</title>
<title>11. windows.crypto CryptoAPI &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="com.html" title="10. windows.com - Component Object Model"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">11. </span><code class="docutils literal notranslate"><span class="pre">windows.crypto</span></code> CryptoAPI</a></li>
</ul>
</div>
@@ -774,7 +774,7 @@ See <a class="reference external" href="https://msdn.microsoft.com/en-us/library
<li class="right" >
<a href="com.html" title="10. windows.com - Component Object Model"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">11. </span><code class="docutils literal notranslate"><span class="pre">windows.crypto</span></code> CryptoAPI</a></li>
</ul>
</div>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>9. windows.debug Debugging &#8212; PythonForWindows 1.0.0 documentation</title>
<title>9. windows.debug Debugging &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="wintrust.html" title="8. windows.wintrust Checking signature"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">9. </span><code class="xref py py-mod docutils literal notranslate"><span class="pre">windows.debug</span></code> Debugging</a></li>
</ul>
</div>
@@ -1404,7 +1404,7 @@ If the symbol include a displacement, it is not taken into account</p>
<li class="right" >
<a href="wintrust.html" title="8. windows.wintrust Checking signature"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">9. </span><code class="xref py py-mod docutils literal notranslate"><span class="pre">windows.debug</span></code> Debugging</a></li>
</ul>
</div>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>2.14. Device Manager &#8212; PythonForWindows 1.0.0 documentation</title>
<title>2.14. Device Manager &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="object_manager.html" title="2.13. Object Manager Kernel objects"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" accesskey="U"><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.14. </span>Device Manager</a></li>
</ul>
@@ -964,7 +964,7 @@ This class is a base class, all resources returned by <a class="reference intern
<li class="right" >
<a href="object_manager.html" title="2.13. Object Manager Kernel objects"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" ><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.14. </span>Device Manager</a></li>
</ul>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>19. Python, Windows &amp; encoding &#8212; PythonForWindows 1.0.0 documentation</title>
<title>19. Python, Windows &amp; encoding &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -30,7 +30,7 @@
<li class="right" >
<a href="sample.html" title="18. Samples of code"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">19. </span>Python, Windows &amp; encoding</a></li>
</ul>
</div>
@@ -347,7 +347,7 @@ Unicode object repr: &lt;MyUtf8Object name=&quot;お前はもう死んでい-к
<li class="right" >
<a href="sample.html" title="18. Samples of code"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">19. </span>Python, Windows &amp; encoding</a></li>
</ul>
</div>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>2.17. ETW Event Tracing for Windows &#8212; PythonForWindows 1.0.0 documentation</title>
<title>2.17. ETW Event Tracing for Windows &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="evtlog.html" title="2.16. Event Log"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" accesskey="U"><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.17. </span>ETW Event Tracing for Windows</a></li>
</ul>
@@ -376,7 +376,7 @@ This allow for simpler script that stop/start some EtwTrace.</p>
<li class="right" >
<a href="evtlog.html" title="2.16. Event Log"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" ><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.17. </span>ETW Event Tracing for Windows</a></li>
</ul>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>2.16. Event Log &#8212; PythonForWindows 1.0.0 documentation</title>
<title>2.16. Event Log &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="task_scheduler.html" title="2.15. Task scheduler"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" accesskey="U"><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.16. </span>Event Log</a></li>
</ul>
@@ -1051,7 +1051,7 @@ Retrieved by parsing <a class="reference internal" href="#windows.winobject.even
<li class="right" >
<a href="task_scheduler.html" title="2.15. Task scheduler"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" ><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.16. </span>Event Log</a></li>
</ul>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>2.5. Exception and Context related structures &#8212; PythonForWindows 1.0.0 documentation</title>
<title>2.5. Exception and Context related structures &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="token.html" title="2.4. Token"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" accesskey="U"><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.5. </span>Exception and Context related structures</a></li>
</ul>
@@ -669,7 +669,7 @@ Most of the structures are the Windows structure with a prefix <code class="docu
<li class="right" >
<a href="token.html" title="2.4. Token"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" ><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.5. </span>Exception and Context related structures</a></li>
</ul>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>14. windows.generated_def generated Windows defines and structures &#8212; PythonForWindows 1.0.0 documentation</title>
<title>14. windows.generated_def generated Windows defines and structures &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="rpc.html" title="13. windows.rpc ALPC-based Windows RPC"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">14. </span><code class="docutils literal notranslate"><span class="pre">windows.generated_def</span></code> generated Windows defines and structures</a></li>
</ul>
</div>
@@ -185,7 +185,7 @@
<li class="right" >
<a href="rpc.html" title="13. windows.rpc ALPC-based Windows RPC"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">14. </span><code class="docutils literal notranslate"><span class="pre">windows.generated_def</span></code> generated Windows defines and structures</a></li>
</ul>
</div>
+1554 -86
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>2.11. Handle Processes handles &#8212; PythonForWindows 1.0.0 documentation</title>
<title>2.11. Handle Processes handles &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="wmi.html" title="2.10. WMI Make request to WMI"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" accesskey="U"><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.11. </span>Handle Processes handles</a></li>
</ul>
@@ -179,7 +179,7 @@
<li class="right" >
<a href="wmi.html" title="2.10. WMI Make request to WMI"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" ><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.11. </span>Handle Processes handles</a></li>
</ul>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>15. IAT hooking &#8212; PythonForWindows 1.0.0 documentation</title>
<title>15. IAT hooking &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="interfaces_generated.html" title="14.7. Interfaces"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">15. </span>IAT hooking</a></li>
</ul>
</div>
@@ -247,7 +247,7 @@
<li class="right" >
<a href="interfaces_generated.html" title="14.7. Interfaces"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">15. </span>IAT hooking</a></li>
</ul>
</div>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>Welcome to PythonForWindowss documentation! &#8212; PythonForWindows 1.0.0 documentation</title>
<title>Welcome to PythonForWindowss documentation! &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -30,7 +30,7 @@
<li class="right" >
<a href="windows.html" title="1. The windows module"
accesskey="N">next</a> |</li>
<li class="nav-item nav-item-0"><a href="#">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="#">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Welcome to PythonForWindowss documentation!</a></li>
</ul>
</div>
@@ -310,7 +310,7 @@ Encoding errors at print time might be awkward for unicode string on python2, se
<li class="right" >
<a href="windows.html" title="1. The windows module"
>next</a> |</li>
<li class="nav-item nav-item-0"><a href="#">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="#">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Welcome to PythonForWindowss documentation!</a></li>
</ul>
</div>
+2329 -275
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>17. Internals &#8212; PythonForWindows 1.0.0 documentation</title>
<title>17. Internals &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="wip.html" title="16. Early Work In Progress"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">17. </span>Internals</a></li>
</ul>
</div>
@@ -277,7 +277,7 @@ With these information we are able to know</p>
<li class="right" >
<a href="wip.html" title="16. Early Work In Progress"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">17. </span>Internals</a></li>
</ul>
</div>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>3. windows.native_exec Native Code Execution &#8212; PythonForWindows 1.0.0 documentation</title>
<title>3. windows.native_exec Native Code Execution &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="etw.html" title="2.17. ETW Event Tracing for Windows"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">3. </span><code class="docutils literal notranslate"><span class="pre">windows.native_exec</span></code> Native Code Execution</a></li>
</ul>
</div>
@@ -558,7 +558,7 @@ the end of your <code class="xref py py-class docutils literal notranslate"><spa
<li class="right" >
<a href="etw.html" title="2.17. ETW Event Tracing for Windows"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">3. </span><code class="docutils literal notranslate"><span class="pre">windows.native_exec</span></code> Native Code Execution</a></li>
</ul>
</div>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>2.7. Network &#8212; PythonForWindows 1.0.0 documentation</title>
<title>2.7. Network &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="registry.html" title="2.6. Registry"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" accesskey="U"><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.7. </span>Network</a></li>
</ul>
@@ -597,7 +597,7 @@ Equals <code class="docutils literal notranslate"><span class="pre">remote_port<
<li class="right" >
<a href="registry.html" title="2.6. Registry"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" ><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.7. </span>Network</a></li>
</ul>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>14.2. Ntstatus &#8212; PythonForWindows 1.0.0 documentation</title>
<title>14.2. Ntstatus &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="windef_generated.html" title="14.1. WinDef"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="generated.html" accesskey="U"><span class="section-number">14. </span><code class="docutils literal notranslate"><span class="pre">windows.generated_def</span></code> generated Windows defines and structures</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">14.2. </span>Ntstatus</a></li>
</ul>
@@ -10875,7 +10875,7 @@
<li class="right" >
<a href="windef_generated.html" title="14.1. WinDef"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="generated.html" ><span class="section-number">14. </span><code class="docutils literal notranslate"><span class="pre">windows.generated_def</span></code> generated Windows defines and structures</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">14.2. </span>Ntstatus</a></li>
</ul>
+4 -4
View File
@@ -5,12 +5,12 @@
<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" />
<title>2.13. Object Manager Kernel objects &#8212; PythonForWindows 1.0.0 documentation</title>
<title>2.13. Object Manager Kernel objects &#8212; PythonForWindows 1.0.1 documentation</title>
<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/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/documentation_options.js?v=292eb321"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
@@ -34,7 +34,7 @@
<li class="right" >
<a href="system_module.html" title="2.12. System Module Loaded kernel modules"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" accesskey="U"><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.13. </span>Object Manager Kernel objects</a></li>
</ul>
@@ -293,7 +293,7 @@ code <a class="reference internal" href="ntstatus_generated.html#windows.generat
<li class="right" >
<a href="system_module.html" title="2.12. System Module Loaded kernel modules"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="winobject.html" ><span class="section-number">2. </span>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">windows</span></code> objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">2.13. </span>Object Manager Kernel objects</a></li>
</ul>

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