mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Merge pull request #70 from hakril/more_stubborn_tests
More stubborn tests & Implem
This commit is contained in:
@@ -21,7 +21,7 @@ jobs:
|
||||
tests:
|
||||
# Not a real dependency : but starting tests when ctypes generation is broken is not useful
|
||||
needs: generate_ctypes
|
||||
runs-on: windows-latest
|
||||
runs-on: windows-2019
|
||||
timeout-minutes: 15
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
||||
@@ -253,6 +253,7 @@ typedef struct _PRIV_RESOLVER_INFO_LEGACY
|
||||
BOOL FoundInROT;
|
||||
} PRIV_RESOLVER_INFO_LEGACY, *PPRIV_RESOLVER_INFO_LEGACY;
|
||||
|
||||
|
||||
typedef struct _REMOTE_REPLY_SCM_INFO
|
||||
{
|
||||
OXID Oxid;
|
||||
@@ -287,6 +288,31 @@ typedef struct CONTAINERVERSION {
|
||||
CONTAINER_EXTENT_ARRAY *extensions;
|
||||
};
|
||||
|
||||
typedef struct __MIDL_ILocalObjectExporter_0006 {
|
||||
ULONG dwTid;
|
||||
ULONG dwPid;
|
||||
ULONG dwAuthnHint;
|
||||
tagCOMVERSION version;
|
||||
_GUID ipidRemUnknown;
|
||||
ULONG dwFlags;
|
||||
tagDUALSTRINGARRAY *psa;
|
||||
_GUID guidProcessIdentifier;
|
||||
UINT64 processHostId;
|
||||
INT clientDependencyBehavior;
|
||||
HSTRING__ *packageFullName;
|
||||
HSTRING__ *userSid;
|
||||
HSTRING__ *appcontainerSid;
|
||||
} MIDL_ILocalObjectExporter_0006;
|
||||
|
||||
typedef struct _PRIV_RESOLVER_INFO_17763 {
|
||||
UINT64 OxidServer;
|
||||
tagDUALSTRINGARRAY *pServerORBindings;
|
||||
MIDL_ILocalObjectExporter_0006 OxidInfo;
|
||||
UINT64 LocalMidOfRemote;
|
||||
ULONG DllServerModel;
|
||||
WCHAR *pwszDllServer;
|
||||
INT FoundInROT;
|
||||
} PRIV_RESOLVER_INFO_17763, *PPRIV_RESOLVER_INFO_17763;
|
||||
|
||||
typedef struct _MIDL_ILocalObjectExporter_0007 {
|
||||
ULONG dwTid;
|
||||
|
||||
@@ -152,6 +152,9 @@ WinDef
|
||||
.. autodata:: SORF_OXRES8
|
||||
.. autodata:: SORF_NULL
|
||||
.. autodata:: SORF_NOPING
|
||||
.. autodata:: UNIQUE_FLAG_PADDING
|
||||
.. autodata:: MAINHDRSIG
|
||||
.. autodata:: ENTRYHDRSIG
|
||||
.. autodata:: CWCSTORAGENAME
|
||||
.. autodata:: STGM_DIRECT
|
||||
.. autodata:: STGM_TRANSACTED
|
||||
@@ -496,6 +499,15 @@ WinDef
|
||||
.. autodata:: ERROR_SEVERITY_INFORMATIONAL
|
||||
.. autodata:: ERROR_SEVERITY_WARNING
|
||||
.. autodata:: ERROR_SEVERITY_ERROR
|
||||
.. autodata:: FACILITY_WINDOWS
|
||||
.. autodata:: FACILITY_WIN32
|
||||
.. autodata:: FACILITY_STORAGE
|
||||
.. autodata:: FACILITY_RPC
|
||||
.. autodata:: FACILITY_NULL
|
||||
.. autodata:: FACILITY_ITF
|
||||
.. autodata:: FACILITY_DISPATCH
|
||||
.. autodata:: STATUS_SEVERITY_SUCCESS
|
||||
.. autodata:: STATUS_SEVERITY_COERROR
|
||||
.. autodata:: EVENT_TRACE_FLAG_DISPATCHER
|
||||
.. autodata:: EVENT_TRACE_FLAG_VIRTUAL_ALLOC
|
||||
.. autodata:: EVENT_TRACE_FLAG_VAMAP
|
||||
|
||||
@@ -2716,6 +2716,124 @@ CONTAINERVERSION
|
||||
|
||||
:class:`CONTAINER_EXTENT_ARRAY`
|
||||
|
||||
__MIDL_ILocalObjectExporter_0006
|
||||
''''''''''''''''''''''''''''''''
|
||||
.. class:: MIDL_ILocalObjectExporter_0006
|
||||
|
||||
Alias for :class:`__MIDL_ILocalObjectExporter_0006`
|
||||
|
||||
.. class:: __MIDL_ILocalObjectExporter_0006
|
||||
|
||||
.. attribute:: dwTid
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: dwPid
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: dwAuthnHint
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: version
|
||||
|
||||
:class:`tagCOMVERSION`
|
||||
|
||||
|
||||
.. attribute:: ipidRemUnknown
|
||||
|
||||
:class:`_GUID`
|
||||
|
||||
|
||||
.. attribute:: dwFlags
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: psa
|
||||
|
||||
:class:`tagDUALSTRINGARRAY`
|
||||
|
||||
|
||||
.. attribute:: guidProcessIdentifier
|
||||
|
||||
:class:`_GUID`
|
||||
|
||||
|
||||
.. attribute:: processHostId
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
|
||||
.. attribute:: clientDependencyBehavior
|
||||
|
||||
:class:`INT`
|
||||
|
||||
|
||||
.. attribute:: packageFullName
|
||||
|
||||
:class:`HSTRING__`
|
||||
|
||||
|
||||
.. attribute:: userSid
|
||||
|
||||
:class:`HSTRING__`
|
||||
|
||||
|
||||
.. attribute:: appcontainerSid
|
||||
|
||||
:class:`HSTRING__`
|
||||
|
||||
_PRIV_RESOLVER_INFO_17763
|
||||
'''''''''''''''''''''''''
|
||||
.. class:: PPRIV_RESOLVER_INFO_17763
|
||||
|
||||
Pointer to :class:`_PRIV_RESOLVER_INFO_17763`
|
||||
|
||||
.. class:: PRIV_RESOLVER_INFO_17763
|
||||
|
||||
Alias for :class:`_PRIV_RESOLVER_INFO_17763`
|
||||
|
||||
.. class:: _PRIV_RESOLVER_INFO_17763
|
||||
|
||||
.. attribute:: OxidServer
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
|
||||
.. attribute:: pServerORBindings
|
||||
|
||||
:class:`tagDUALSTRINGARRAY`
|
||||
|
||||
|
||||
.. attribute:: OxidInfo
|
||||
|
||||
:class:`MIDL_ILocalObjectExporter_0006`
|
||||
|
||||
|
||||
.. attribute:: LocalMidOfRemote
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
|
||||
.. attribute:: DllServerModel
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: pwszDllServer
|
||||
|
||||
:class:`WCHAR`
|
||||
|
||||
|
||||
.. attribute:: FoundInROT
|
||||
|
||||
:class:`INT`
|
||||
|
||||
_MIDL_ILocalObjectExporter_0007
|
||||
'''''''''''''''''''''''''''''''
|
||||
.. class:: MIDL_ILocalObjectExporter_0007
|
||||
@@ -2908,48 +3026,6 @@ _LOCALTHIS
|
||||
|
||||
:class:`PVOID`
|
||||
|
||||
_LOCALTHIS32
|
||||
''''''''''''
|
||||
.. class:: LOCALTHIS32
|
||||
|
||||
Alias for :class:`_LOCALTHIS32`
|
||||
|
||||
.. class:: _LOCALTHIS32
|
||||
|
||||
.. attribute:: dwFlags
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: dwClientThread
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: passthroughTraceActivity
|
||||
|
||||
:class:`GUID`
|
||||
|
||||
|
||||
.. attribute:: callTraceActivity
|
||||
|
||||
:class:`GUID`
|
||||
|
||||
|
||||
.. attribute:: asyncRequestBlock
|
||||
|
||||
:class:`MIDL_XmitDefs_0001`
|
||||
|
||||
|
||||
.. attribute:: reserved
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: pTouchedAstaArray
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
_MIDL_XmitDefs_0007
|
||||
'''''''''''''''''''
|
||||
.. class:: _MIDL_XmitDefs_0007
|
||||
@@ -3177,6 +3253,468 @@ _LOCALTHAT
|
||||
|
||||
:class:`CONTAINERTHAT`
|
||||
|
||||
tagORPCTHAT
|
||||
'''''''''''
|
||||
.. class:: ORPCTHAT
|
||||
|
||||
Alias for :class:`tagORPCTHAT`
|
||||
|
||||
.. class:: tagORPCTHAT
|
||||
|
||||
.. attribute:: flags
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: extensions
|
||||
|
||||
:class:`tagORPC_EXTENT_ARRAY`
|
||||
|
||||
ORPCTHAT32
|
||||
''''''''''
|
||||
.. class:: ORPCTHAT32
|
||||
|
||||
.. attribute:: flags
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: extensions
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
WireExtentArray
|
||||
'''''''''''''''
|
||||
.. class:: WireExtentArray
|
||||
|
||||
.. attribute:: size
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: reserved
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: unique
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: rounded_size
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: unique_flag
|
||||
|
||||
:class:`ULONG` ``[UNIQUE_FLAG_PADDING]``
|
||||
|
||||
WireExtent
|
||||
''''''''''
|
||||
.. class:: WireExtent
|
||||
|
||||
.. attribute:: rounded_size
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: id
|
||||
|
||||
:class:`GUID`
|
||||
|
||||
|
||||
.. attribute:: size
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
tagMainHeader
|
||||
'''''''''''''
|
||||
.. class:: MainHeader
|
||||
|
||||
Alias for :class:`tagMainHeader`
|
||||
|
||||
.. class:: tagMainHeader
|
||||
|
||||
.. attribute:: Signature
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: Version
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: cPolicies
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: cbBuffer
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: cbSize
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: hr
|
||||
|
||||
:class:`LONG`
|
||||
|
||||
|
||||
.. attribute:: hrServer
|
||||
|
||||
:class:`LONG`
|
||||
|
||||
|
||||
.. attribute:: reserved
|
||||
|
||||
:class:`LONG`
|
||||
|
||||
LOCALTHIS32_NT_62
|
||||
'''''''''''''''''
|
||||
.. class:: LOCALTHIS32_NT_62
|
||||
|
||||
.. attribute:: dwFlags
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: dwClientThread
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
__MIDL_XmitDefs_0001_NT_63
|
||||
''''''''''''''''''''''''''
|
||||
.. class:: __MIDL_XmitDefs_0001_NT_63
|
||||
|
||||
.. attribute:: size
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: reserved
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: pAstaOxids
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
LOCALTHIS32_NT_63
|
||||
'''''''''''''''''
|
||||
.. class:: LOCALTHIS32_NT_63
|
||||
|
||||
.. attribute:: dwFlags
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: dwClientThread
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: reserved
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: pTouchedAstaArray
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
LOCALTHAT32_NT_63
|
||||
'''''''''''''''''
|
||||
.. class:: LOCALTHAT32_NT_63
|
||||
|
||||
.. attribute:: marshalingSetAcknowledgmentOxid
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
|
||||
.. attribute:: marshalingSetId
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
__MIDL_XmitDefs_0002_NT_1607
|
||||
''''''''''''''''''''''''''''
|
||||
.. class:: __MIDL_XmitDefs_0002_NT_1607
|
||||
|
||||
.. attribute:: size
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: reserved
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: pAstaOxids
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
__MIDL_XmitDefs_0001_NT_1607
|
||||
''''''''''''''''''''''''''''
|
||||
.. class:: MIDL_XmitDefs_0001_NT_1607
|
||||
|
||||
Alias for :class:`__MIDL_XmitDefs_0001_NT_1607`
|
||||
|
||||
.. class:: __MIDL_XmitDefs_0001_NT_1607
|
||||
|
||||
.. attribute:: asyncOperationId
|
||||
|
||||
:class:`_GUID`
|
||||
|
||||
|
||||
.. attribute:: oxidClientProcessNA
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
|
||||
.. attribute:: originalClientLogicalThreadId
|
||||
|
||||
:class:`_GUID`
|
||||
|
||||
|
||||
.. attribute:: uClientCausalityTraceId
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
_LOCALTHIS32_NT_1607
|
||||
''''''''''''''''''''
|
||||
.. class:: LOCALTHIS32_NT_1607
|
||||
|
||||
Alias for :class:`_LOCALTHIS32_NT_1607`
|
||||
|
||||
.. class:: _LOCALTHIS32_NT_1607
|
||||
|
||||
.. attribute:: dwFlags
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: dwClientThread
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: asyncRequestBlock
|
||||
|
||||
:class:`MIDL_XmitDefs_0001_NT_1607`
|
||||
|
||||
|
||||
.. attribute:: reserved
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: pTouchedAstaArray
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
__MIDL_XmitDefs_0007
|
||||
''''''''''''''''''''
|
||||
.. class:: MIDL_XmitDefs_0007
|
||||
|
||||
Alias for :class:`__MIDL_XmitDefs_0007`
|
||||
|
||||
.. class:: __MIDL_XmitDefs_0007
|
||||
|
||||
.. attribute:: pointOfFailure
|
||||
|
||||
:class:`INT`
|
||||
|
||||
|
||||
.. attribute:: hrFailure
|
||||
|
||||
:class:`HRESULT`
|
||||
|
||||
|
||||
.. attribute:: sizeOfMarshaledErrorInfo
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: reserved
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: pMarshaledErrorInfo
|
||||
|
||||
:class:`BYTE`
|
||||
|
||||
__MIDL_XmitDefs_0005
|
||||
''''''''''''''''''''
|
||||
.. class:: MIDL_XmitDefs_0005
|
||||
|
||||
Alias for :class:`__MIDL_XmitDefs_0005`
|
||||
|
||||
.. class:: __MIDL_XmitDefs_0005
|
||||
|
||||
.. attribute:: sizeOfMarshaledResults
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: reserved
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: pMarshaledResults
|
||||
|
||||
:class:`BYTE`
|
||||
|
||||
__MIDL_XmitDefs_0008
|
||||
''''''''''''''''''''
|
||||
.. class:: MIDL_XmitDefs_0008
|
||||
|
||||
Alias for :class:`__MIDL_XmitDefs_0008`
|
||||
|
||||
.. class:: __MIDL_XmitDefs_0008
|
||||
|
||||
.. attribute:: outcome
|
||||
|
||||
:class:`INT`
|
||||
|
||||
|
||||
.. attribute:: successDetails
|
||||
|
||||
:class:`MIDL_XmitDefs_0005`
|
||||
|
||||
|
||||
.. attribute:: failureDetails
|
||||
|
||||
:class:`MIDL_XmitDefs_0007`
|
||||
|
||||
__MIDL_XmitDefs_0010
|
||||
''''''''''''''''''''
|
||||
.. class:: MIDL_XmitDefs_0010
|
||||
|
||||
Alias for :class:`__MIDL_XmitDefs_0010`
|
||||
|
||||
.. class:: __MIDL_XmitDefs_0010
|
||||
|
||||
.. attribute:: asyncStatus
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: reserved1
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: uServerCausalityTraceId
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
|
||||
.. attribute:: reserved2
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: pOutcomeDetails
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
LOCALTHAT32_NT_1607
|
||||
'''''''''''''''''''
|
||||
.. class:: LOCALTHAT32_NT_1607
|
||||
|
||||
.. attribute:: marshalingSetAcknowledgmentOxid
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
|
||||
.. attribute:: marshalingSetId
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
|
||||
.. attribute:: reserved
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: pAsyncResponseBlock
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
_LOCALTHAT32_10_1903
|
||||
''''''''''''''''''''
|
||||
.. class:: LOCALTHAT32_10_1903
|
||||
|
||||
Alias for :class:`_LOCALTHAT32_10_1903`
|
||||
|
||||
.. class:: _LOCALTHAT32_10_1903
|
||||
|
||||
.. attribute:: marshalingSetId
|
||||
|
||||
:class:`UINT64`
|
||||
|
||||
|
||||
.. attribute:: pAsyncResponseBlock
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
|
||||
.. attribute:: containerPassthroughData
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
_LOCALTHIS32
|
||||
''''''''''''
|
||||
.. class:: LOCALTHIS32
|
||||
|
||||
Alias for :class:`_LOCALTHIS32`
|
||||
|
||||
.. class:: _LOCALTHIS32
|
||||
|
||||
.. attribute:: dwFlags
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: dwClientThread
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: passthroughTraceActivity
|
||||
|
||||
:class:`GUID`
|
||||
|
||||
|
||||
.. attribute:: callTraceActivity
|
||||
|
||||
:class:`GUID`
|
||||
|
||||
|
||||
.. attribute:: asyncRequestBlock
|
||||
|
||||
:class:`MIDL_XmitDefs_0001`
|
||||
|
||||
|
||||
.. attribute:: reserved
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: pTouchedAstaArray
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
_LOCALTHAT32
|
||||
''''''''''''
|
||||
.. class:: LOCALTHAT32
|
||||
@@ -3209,36 +3747,6 @@ _LOCALTHAT32
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
tagORPCTHAT
|
||||
'''''''''''
|
||||
.. class:: ORPCTHAT
|
||||
|
||||
Alias for :class:`tagORPCTHAT`
|
||||
|
||||
.. class:: tagORPCTHAT
|
||||
|
||||
.. attribute:: flags
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: extensions
|
||||
|
||||
:class:`tagORPC_EXTENT_ARRAY`
|
||||
|
||||
ORPCTHAT32
|
||||
''''''''''
|
||||
.. class:: ORPCTHAT32
|
||||
|
||||
.. attribute:: flags
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: extensions
|
||||
|
||||
:class:`PVOID32`
|
||||
|
||||
_VIRTUAL_STORAGE_TYPE
|
||||
'''''''''''''''''''''
|
||||
.. class:: PVIRTUAL_STORAGE_TYPE
|
||||
|
||||
@@ -12705,6 +12705,7 @@ structs = {'ACCESS_ALLOWED_ACE',
|
||||
'MIB_UDP6TABLE_OWNER_PID',
|
||||
'MIB_UDPROW_OWNER_PID',
|
||||
'MIB_UDPTABLE_OWNER_PID',
|
||||
'MIDL_ILocalObjectExporter_0006',
|
||||
'MIDL_ILocalObjectExporter_0007',
|
||||
'MIDL_XmitDefs_0001',
|
||||
'MIDL_XmitDefs_0001_NT_1607',
|
||||
@@ -13189,6 +13190,7 @@ structs = {'ACCESS_ALLOWED_ACE',
|
||||
'PPORT_VIEW',
|
||||
'PPRIVILEGE_SET',
|
||||
'PPRIV_RESOLVER_INFO',
|
||||
'PPRIV_RESOLVER_INFO_17763',
|
||||
'PPRIV_RESOLVER_INFO_LEGACY',
|
||||
'PPROCESSENTRY32',
|
||||
'PPROCESSENTRY32W',
|
||||
@@ -13226,6 +13228,7 @@ structs = {'ACCESS_ALLOWED_ACE',
|
||||
'PRGBTRIPLE',
|
||||
'PRIVILEGE_SET',
|
||||
'PRIV_RESOLVER_INFO',
|
||||
'PRIV_RESOLVER_INFO_17763',
|
||||
'PRIV_RESOLVER_INFO_LEGACY',
|
||||
'PRIV_SCM_INFO',
|
||||
'PRLIST_ENTRY',
|
||||
@@ -13945,6 +13948,7 @@ structs = {'ACCESS_ALLOWED_ACE',
|
||||
'_PORT_VIEW',
|
||||
'_PRIVILEGE_SET',
|
||||
'_PRIV_RESOLVER_INFO',
|
||||
'_PRIV_RESOLVER_INFO_17763',
|
||||
'_PRIV_RESOLVER_INFO_LEGACY',
|
||||
'_PRIV_SCM_INFO',
|
||||
'_PROCESS_BASIC_INFORMATION',
|
||||
@@ -14114,6 +14118,7 @@ structs = {'ACCESS_ALLOWED_ACE',
|
||||
'_XSTATE_FEATURE',
|
||||
'__MIDL_IBackgroundCopyJob2_0003',
|
||||
'__MIDL_IBackgroundCopyJob2_0004',
|
||||
'__MIDL_ILocalObjectExporter_0006',
|
||||
'__MIDL_XmitDefs_0001_NT_1607',
|
||||
'__MIDL_XmitDefs_0001_NT_63',
|
||||
'__MIDL_XmitDefs_0002_NT_1607',
|
||||
|
||||
@@ -1425,6 +1425,37 @@ class CONTAINERVERSION(Structure):
|
||||
]
|
||||
|
||||
|
||||
class __MIDL_ILocalObjectExporter_0006(Structure):
|
||||
_fields_ = [
|
||||
("dwTid", ULONG),
|
||||
("dwPid", ULONG),
|
||||
("dwAuthnHint", ULONG),
|
||||
("version", tagCOMVERSION),
|
||||
("ipidRemUnknown", _GUID),
|
||||
("dwFlags", ULONG),
|
||||
("psa", POINTER(tagDUALSTRINGARRAY)),
|
||||
("guidProcessIdentifier", _GUID),
|
||||
("processHostId", UINT64),
|
||||
("clientDependencyBehavior", INT),
|
||||
("packageFullName", POINTER(HSTRING__)),
|
||||
("userSid", POINTER(HSTRING__)),
|
||||
("appcontainerSid", POINTER(HSTRING__)),
|
||||
]
|
||||
MIDL_ILocalObjectExporter_0006 = __MIDL_ILocalObjectExporter_0006
|
||||
|
||||
class _PRIV_RESOLVER_INFO_17763(Structure):
|
||||
_fields_ = [
|
||||
("OxidServer", UINT64),
|
||||
("pServerORBindings", POINTER(tagDUALSTRINGARRAY)),
|
||||
("OxidInfo", MIDL_ILocalObjectExporter_0006),
|
||||
("LocalMidOfRemote", UINT64),
|
||||
("DllServerModel", ULONG),
|
||||
("pwszDllServer", POINTER(WCHAR)),
|
||||
("FoundInROT", INT),
|
||||
]
|
||||
PPRIV_RESOLVER_INFO_17763 = POINTER(_PRIV_RESOLVER_INFO_17763)
|
||||
PRIV_RESOLVER_INFO_17763 = _PRIV_RESOLVER_INFO_17763
|
||||
|
||||
class _MIDL_ILocalObjectExporter_0007(Structure):
|
||||
_fields_ = [
|
||||
("dwTid", ULONG),
|
||||
|
||||
+11
-4
@@ -62,12 +62,17 @@ def stubborn_create_instance(clsid, iid):
|
||||
# resolver_info.OxidInfo.containerVersion.version is part of OxidInfo.ipidRemUnknown on PPRIV_RESOLVER_INFO_LEGACY
|
||||
# And this part of ipidRemUnknown is a PID
|
||||
# So a good value to check for > 3 :)
|
||||
# Bad alignemetn of containerVersion -> its an older version
|
||||
if resolver_info.OxidInfo.containerVersion.version > 3:
|
||||
# print("resolver_info.OxidInfo.containerVersion.version == {0}".format(resolver_info.OxidInfo.containerVersion.version))
|
||||
# print("Probable bad structure ! -> cast to legacy !")
|
||||
resolver_info = ctypes.cast(rpiv_infoptr, gdef.PPRIV_RESOLVER_INFO_LEGACY)[0]
|
||||
dcomversionstruct = resolver_info.OxidInfo.dcomVersion
|
||||
# If 5,7 -> good alignement of dcomversion so we know its PRIV_RESOLVER_INFO_17763
|
||||
dcomversion = (dcomversionstruct.MajorVersion, dcomversionstruct.MinorVersion)
|
||||
if dcomversion == (5, 7):
|
||||
resolver_info = ctypes.cast(rpiv_infoptr, gdef.PPRIV_RESOLVER_INFO_17763)[0]
|
||||
else:
|
||||
# Bad alignement for everythin -> Legacy
|
||||
resolver_info = ctypes.cast(rpiv_infoptr, gdef.PPRIV_RESOLVER_INFO_LEGACY)[0]
|
||||
|
||||
# print("")
|
||||
psa = resolver_info.OxidInfo.psa[0] # Retrieve the bidings to our COM server
|
||||
# print("psa.bidings: {0}".format(psa.bidings))
|
||||
# ipidRemUnknown = resolver_info.OxidInfo.ipidRemUnknown # Useful for IRemQueryInterface
|
||||
@@ -85,6 +90,8 @@ def stubborn_create_instance(clsid, iid):
|
||||
target_alpc_endpoint = psa.bidings[0]
|
||||
assert target_alpc_endpoint.startswith("ncalrpc:[")
|
||||
target_alpc_server = "\\RPC Control\\" + target_alpc_endpoint[len("ncalrpc:["):-1]
|
||||
# Does not works on Windows XP at this point -> ALPC did not exists back then
|
||||
# I won't implement a LRPC Client :')
|
||||
client = windows.rpc.RPCClient(target_alpc_server)
|
||||
|
||||
# RPC: Bind to the IID on ou server
|
||||
|
||||
Reference in New Issue
Block a user