mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Add some ctypes_generation and generated def
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
typedef struct IWbemObjectTextSrcVtbl
|
||||
{
|
||||
BEGIN_INTERFACE
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
||||
IWbemObjectTextSrc * This,
|
||||
/* [in] */ REFIID riid,
|
||||
/* [iid_is][out] */ void **ppvObject);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
||||
IWbemObjectTextSrc * This);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *Release )(
|
||||
IWbemObjectTextSrc * This);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *GetText )(
|
||||
IWbemObjectTextSrc * This,
|
||||
/* [in] */ long lFlags,
|
||||
/* [in] */ IWbemClassObject *pObj,
|
||||
/* [in] */ ULONG uObjTextFormat,
|
||||
/* [in] */ IWbemContext *pCtx,
|
||||
/* [out] */ BSTR *strText);
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *CreateFromText )(
|
||||
IWbemObjectTextSrc * This,
|
||||
/* [in] */ long lFlags,
|
||||
/* [in] */ BSTR strText,
|
||||
/* [in] */ ULONG uObjTextFormat,
|
||||
/* [in] */ IWbemContext *pCtx,
|
||||
/* [out] */ IWbemClassObject **pNewObj);
|
||||
|
||||
END_INTERFACE
|
||||
} IWbemObjectTextSrcVtbl;
|
||||
@@ -176,3 +176,16 @@
|
||||
#define DNS_QUERY_DNSSEC_CHECKING_DISABLED 0x02000000
|
||||
#define DNS_QUERY_RESERVED 0xf0000000
|
||||
|
||||
|
||||
/** IPTypes.h **/
|
||||
// Definitions and structures used by getnetworkparams and getadaptersinfo apis
|
||||
|
||||
#define MAX_ADAPTER_DESCRIPTION_LENGTH 128 // arb.
|
||||
#define MAX_ADAPTER_NAME_LENGTH 256 // arb.
|
||||
#define MAX_ADAPTER_ADDRESS_LENGTH 8 // arb.
|
||||
#define DEFAULT_MINIMUM_ENTITIES 32 // arb.
|
||||
#define MAX_HOSTNAME_LEN 128 // arb.
|
||||
#define MAX_DOMAIN_NAME_LEN 128 // arb.
|
||||
#define MAX_SCOPE_ID_LEN 256 // arb.
|
||||
#define MAX_DHCPV6_DUID_LENGTH 130 // RFC 3315.
|
||||
#define MAX_DNS_SUFFIX_STRING_LENGTH 256
|
||||
@@ -56,4 +56,87 @@ HRESULT WINAPI CLSIDFromProgID(
|
||||
|
||||
PVOID CoTaskMemFree(
|
||||
LPVOID pv
|
||||
);
|
||||
|
||||
|
||||
LPSAFEARRAY SafeArrayCreate(
|
||||
[in] VARTYPE vt,
|
||||
[in] UINT cDims,
|
||||
[in] SAFEARRAYBOUND *rgsabound
|
||||
);
|
||||
|
||||
LPSAFEARRAY SafeArrayCreateVector(
|
||||
[in] VARTYPE vt,
|
||||
[in] LONG lLbound,
|
||||
[in] ULONG cElements
|
||||
);
|
||||
|
||||
|
||||
HRESULT SafeArrayDestroy(
|
||||
[in] SAFEARRAY *psa
|
||||
);
|
||||
|
||||
|
||||
HRESULT SafeArrayDestroyData(
|
||||
[in] SAFEARRAY *psa
|
||||
);
|
||||
|
||||
HRESULT SafeArrayGetElement(
|
||||
[in] SAFEARRAY *psa,
|
||||
[in] LONG *rgIndices,
|
||||
[out] VOID *pv
|
||||
);
|
||||
|
||||
UINT SafeArrayGetElemsize(
|
||||
[in] SAFEARRAY *psa
|
||||
);
|
||||
|
||||
HRESULT SafeArrayGetLBound(
|
||||
[in] SAFEARRAY *psa,
|
||||
[in] UINT nDim,
|
||||
[out] LONG *plLbound
|
||||
);
|
||||
|
||||
HRESULT SafeArrayGetUBound(
|
||||
[in] SAFEARRAY *psa,
|
||||
[in] UINT nDim,
|
||||
[out] LONG *plUbound
|
||||
);
|
||||
|
||||
UINT SafeArrayGetDim(
|
||||
[in] SAFEARRAY *psa
|
||||
);
|
||||
|
||||
HRESULT SafeArrayPutElement(
|
||||
[in] SAFEARRAY *psa,
|
||||
[in] LONG *rgIndices,
|
||||
[in] VOID *pv
|
||||
);
|
||||
|
||||
HRESULT SafeArrayGetVartype(
|
||||
[in] SAFEARRAY *psa,
|
||||
[out] VARTYPE *pvt
|
||||
);
|
||||
|
||||
VOID SysFreeString(
|
||||
[in, optional] BSTR bstrString
|
||||
);
|
||||
|
||||
HRESULT SafeArrayCopy(
|
||||
[in] SAFEARRAY *psa,
|
||||
[out] LPSAFEARRAY *ppsaOut
|
||||
);
|
||||
|
||||
HRESULT SafeArrayCopyData(
|
||||
[in] SAFEARRAY *psaSource,
|
||||
[in] SAFEARRAY *psaTarget
|
||||
);
|
||||
|
||||
|
||||
PVOID SysAllocString(
|
||||
[in, optional] OLECHAR *psz
|
||||
);
|
||||
|
||||
VOID SysFreeString(
|
||||
[in, optional] BSTR bstrString
|
||||
);
|
||||
@@ -66,4 +66,15 @@ DNS_STATUS DnsQueryEx(
|
||||
PDNS_QUERY_REQUEST pQueryRequest,
|
||||
PDNS_QUERY_RESULT pQueryResults,
|
||||
PDNS_QUERY_CANCEL pCancelHandle
|
||||
);
|
||||
|
||||
ULONG GetAdaptersInfo(
|
||||
[out] PIP_ADAPTER_INFO AdapterInfo,
|
||||
[in, out] PULONG SizePointer
|
||||
);
|
||||
|
||||
DWORD GetPerAdapterInfo(
|
||||
[in] ULONG IfIndex,
|
||||
[out] PIP_PER_ADAPTER_INFO pPerAdapterInfo,
|
||||
[in] PULONG pOutBufLen
|
||||
);
|
||||
@@ -99,7 +99,7 @@ typedef struct tagSAFEARRAY
|
||||
ULONG cLocks;
|
||||
PVOID pvData;
|
||||
SAFEARRAYBOUND rgsabound[ 1 ];
|
||||
} SAFEARRAY;
|
||||
} SAFEARRAY, *LPSAFEARRAY;
|
||||
|
||||
typedef struct __tagBRECORD {
|
||||
PVOID pvRecord;
|
||||
|
||||
@@ -284,3 +284,20 @@ typedef struct _FILE_NOTIFY_EXTENDED_INFORMATION {
|
||||
DWORD FileNameLength;
|
||||
WCHAR FileName[1];
|
||||
} FILE_NOTIFY_EXTENDED_INFORMATION, *PFILE_NOTIFY_EXTENDED_INFORMATION;
|
||||
|
||||
|
||||
/*
|
||||
The sub union is new from _WIN32_WINNT_WIN10_RS1
|
||||
But it does not change the struct size, so keep it like this
|
||||
https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/ns-ntifs-_file_rename_information
|
||||
*/
|
||||
|
||||
typedef struct _FILE_RENAME_INFORMATION {
|
||||
union {
|
||||
BOOLEAN ReplaceIfExists; // FileRenameInformation
|
||||
ULONG Flags; // FileRenameInformationEx
|
||||
} __ANON_DUMMYUNIONNAME_FILE_RENAME_INFORMATION; /* */
|
||||
HANDLE RootDirectory;
|
||||
ULONG FileNameLength;
|
||||
WCHAR FileName[1];
|
||||
} FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION;
|
||||
|
||||
@@ -870,4 +870,51 @@ typedef struct _DNS_QUERY_RESULT
|
||||
// Might BE A or W record (don't know how to distinguish for now)
|
||||
PVOID pQueryRecords; // PDNS_RECORD pQueryRecords;
|
||||
PVOID Reserved;
|
||||
} DNS_QUERY_RESULT, *PDNS_QUERY_RESULT;
|
||||
} DNS_QUERY_RESULT, *PDNS_QUERY_RESULT;
|
||||
|
||||
|
||||
typedef struct {
|
||||
CHAR String[4 * 4];
|
||||
} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
|
||||
|
||||
typedef struct _IP_ADDR_STRING {
|
||||
struct _IP_ADDR_STRING* Next;
|
||||
IP_ADDRESS_STRING IpAddress;
|
||||
IP_MASK_STRING IpMask;
|
||||
DWORD Context;
|
||||
} IP_ADDR_STRING, *PIP_ADDR_STRING;
|
||||
|
||||
typedef struct _IP_ADAPTER_INFO {
|
||||
struct _IP_ADAPTER_INFO *Next;
|
||||
DWORD ComboIndex;
|
||||
CHAR AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
|
||||
CHAR Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
|
||||
UINT AddressLength;
|
||||
BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
|
||||
DWORD Index;
|
||||
UINT Type;
|
||||
UINT DhcpEnabled;
|
||||
PIP_ADDR_STRING CurrentIpAddress;
|
||||
IP_ADDR_STRING IpAddressList;
|
||||
IP_ADDR_STRING GatewayList;
|
||||
IP_ADDR_STRING DhcpServer;
|
||||
BOOL HaveWins;
|
||||
IP_ADDR_STRING PrimaryWinsServer;
|
||||
IP_ADDR_STRING SecondaryWinsServer;
|
||||
ULONGLONG LeaseObtained; // time_t ?
|
||||
ULONGLONG LeaseExpires; // time_t ?
|
||||
} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
|
||||
|
||||
|
||||
// #if (NTDDI_VERSION >= NTDDI_WIN2KSP1)
|
||||
// typedef IP_PER_ADAPTER_INFO_W2KSP1 IP_PER_ADAPTER_INFO;
|
||||
// typedef IP_PER_ADAPTER_INFO_W2KSP1 *PIP_PER_ADAPTER_INFO;
|
||||
// #endif
|
||||
|
||||
typedef struct _IP_PER_ADAPTER_INFO_W2KSP1 {
|
||||
UINT AutoconfigEnabled;
|
||||
UINT AutoconfigActive;
|
||||
PIP_ADDR_STRING CurrentDnsServer;
|
||||
IP_ADDR_STRING DnsServerList;
|
||||
} IP_PER_ADAPTER_INFO_W2KSP1, *PIP_PER_ADAPTER_INFO_W2KSP1, IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO;
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
INITIAL_FILE_RENAME_INFORMATION = _FILE_RENAME_INFORMATION
|
||||
|
||||
class _FILE_RENAME_INFORMATION(INITIAL_FILE_RENAME_INFORMATION):
|
||||
@property
|
||||
def filename(self):
|
||||
filename_addr = ctypes.addressof(self) + type(self).FileName.offset
|
||||
if getattr(self, "_target", None) is not None: #remote ctypes :D -> TRICKS OF THE YEAR
|
||||
raw_data = self._target.read_memory(filename_addr, self.FileNameLength)
|
||||
return raw_data.decode("utf16")
|
||||
size = int(self.FileNameLength / 2)
|
||||
return (ctypes.c_wchar * size).from_address(filename_addr)[:]
|
||||
@@ -147,73 +147,7 @@ Another example from a project::
|
||||
'\x81~\x08\x0c\x00\x00\x00u&\x8bN\x10\x8bQ\x04\x8bA\x08\x8b\t\x81\xf9\x01\x00\x00\x00u\x03\xee\xeb\r\x81\xf9\x02\x00\x00\x00u\x04f\xef\xeb\x01\xef1\xc0\xc3\xc7\xc0\r\x00\x00\xc0\xc3'
|
||||
|
||||
|
||||
Available Instructions in X86 assembler
|
||||
'''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
.. note::
|
||||
Not all encodings may be implemented for each of the instructions.
|
||||
|
||||
``Byte`` and ``Raw`` are not x86 instruction and allow to insert arbitrary data to the generated code.
|
||||
|
||||
Listing:
|
||||
|
||||
* Add
|
||||
* And
|
||||
* Byte
|
||||
* Cmp
|
||||
* CmpsB
|
||||
* CmpsD
|
||||
* CmpsW
|
||||
* Cpuid
|
||||
* Dec
|
||||
* In
|
||||
* Inc
|
||||
* Int
|
||||
* Int3
|
||||
* Iret
|
||||
* Lea
|
||||
* Mov
|
||||
* Movsb
|
||||
* Movsd
|
||||
* Nop
|
||||
* Not
|
||||
* Or
|
||||
* Out
|
||||
* Pop
|
||||
* Popad
|
||||
* Popfd
|
||||
* Push
|
||||
* Pushad
|
||||
* Pushfd
|
||||
* Raw
|
||||
* Ret
|
||||
* Retf
|
||||
* Rol
|
||||
* Ror
|
||||
* ScasB
|
||||
* ScasD
|
||||
* ScasW
|
||||
* Shl
|
||||
* Shr
|
||||
* StosB
|
||||
* StosD
|
||||
* StosW
|
||||
* Sub
|
||||
* Test
|
||||
* Xchg
|
||||
* Xor
|
||||
|
||||
.. note::
|
||||
|
||||
``Raw``: Output raw data from an hexadecimal string
|
||||
|
||||
>>> windows.native_exec.simple_x64.Raw("90C332FCFF").get_code()
|
||||
'\x90\xc32\xfc\xff'
|
||||
|
||||
``Byte``: Output a raw byte
|
||||
|
||||
>>> windows.native_exec.simple_x86.Byte(0x42).get_code()
|
||||
'B'
|
||||
|
||||
:mod:`windows.native_exec.simple_x64` -- X64 Assembler
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
@@ -248,63 +182,6 @@ Demo::
|
||||
'g\x8b\x00'
|
||||
|
||||
|
||||
Available Instructions in X64 assembler
|
||||
'''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
.. note::
|
||||
Not all encodings may be implemented for each of the instructions.
|
||||
|
||||
``Raw`` is not an x64 instruction and allow to insert arbitrary data to the generated code.
|
||||
|
||||
Listing:
|
||||
* Add
|
||||
* And
|
||||
* Cmp
|
||||
* CmpsB
|
||||
* CmpsD
|
||||
* CmpsQ
|
||||
* CmpsW
|
||||
* Cpuid
|
||||
* Dec
|
||||
* In
|
||||
* Inc
|
||||
* Int
|
||||
* Int3
|
||||
* Lea
|
||||
* Mov
|
||||
* Nop
|
||||
* Not
|
||||
* Or
|
||||
* Out
|
||||
* Pop
|
||||
* Popfq
|
||||
* Push
|
||||
* Pushfq
|
||||
* Raw
|
||||
* Ret
|
||||
* Retf
|
||||
* Retf32
|
||||
* ScasB
|
||||
* ScasD
|
||||
* ScasQ
|
||||
* ScasW
|
||||
* Shl
|
||||
* Shr
|
||||
* Sub
|
||||
* Test
|
||||
* Xchg
|
||||
* Xor
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
``Raw``: Output raw data from an hexadecimal string
|
||||
|
||||
>>> windows.native_exec.simple_x64.Raw("90C332FCFF").get_code()
|
||||
'\x90\xc32\xfc\xff'
|
||||
|
||||
|
||||
|
||||
|
||||
:mod:`windows.native_exec.nativeutils` -- Native utility functions
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
@@ -543,6 +543,69 @@ WinDef
|
||||
.. autodata:: EVENT_TRACE_FLAG_REGISTRY
|
||||
.. autodata:: EVENT_TRACE_FLAG_DBGPRINT
|
||||
.. autodata:: EVENT_TRACE_FLAG_VOLMGR
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_FILE_NAME
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_DIR_NAME
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_NAME
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_ATTRIBUTES
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_SIZE
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_LAST_WRITE
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_LAST_ACCESS
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_CREATION
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_EA
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_SECURITY
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_STREAM_NAME
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_STREAM_SIZE
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_STREAM_WRITE
|
||||
.. autodata:: FILE_NOTIFY_VALID_MASK
|
||||
.. autodata:: FILE_ACTION_ADDED
|
||||
.. autodata:: FILE_ACTION_REMOVED
|
||||
.. autodata:: FILE_ACTION_MODIFIED
|
||||
.. autodata:: FILE_ACTION_RENAMED_OLD_NAME
|
||||
.. autodata:: FILE_ACTION_RENAMED_NEW_NAME
|
||||
.. autodata:: FILE_ACTION_ADDED_STREAM
|
||||
.. autodata:: FILE_ACTION_REMOVED_STREAM
|
||||
.. autodata:: FILE_ACTION_MODIFIED_STREAM
|
||||
.. autodata:: FILE_ACTION_REMOVED_BY_DELETE
|
||||
.. autodata:: FILE_ACTION_ID_NOT_TUNNELLED
|
||||
.. autodata:: FILE_ACTION_TUNNELLED_ID_COLLISION
|
||||
.. autodata:: FILE_CASE_SENSITIVE_SEARCH
|
||||
.. autodata:: FILE_CASE_PRESERVED_NAMES
|
||||
.. autodata:: FILE_UNICODE_ON_DISK
|
||||
.. autodata:: FILE_PERSISTENT_ACLS
|
||||
.. autodata:: FILE_FILE_COMPRESSION
|
||||
.. autodata:: FILE_VOLUME_QUOTAS
|
||||
.. autodata:: FILE_SUPPORTS_SPARSE_FILES
|
||||
.. autodata:: FILE_SUPPORTS_REPARSE_POINTS
|
||||
.. autodata:: FILE_SUPPORTS_REMOTE_STORAGE
|
||||
.. autodata:: FILE_VOLUME_IS_COMPRESSED
|
||||
.. autodata:: FILE_SUPPORTS_OBJECT_IDS
|
||||
.. autodata:: FILE_SUPPORTS_ENCRYPTION
|
||||
.. autodata:: FILE_NAMED_STREAMS
|
||||
.. autodata:: FILE_READ_ONLY_VOLUME
|
||||
.. autodata:: FILE_SEQUENTIAL_WRITE_ONCE
|
||||
.. autodata:: FILE_SUPPORTS_TRANSACTIONS
|
||||
.. autodata:: FILE_SUPPORTS_HARD_LINKS
|
||||
.. autodata:: FILE_SUPPORTS_EXTENDED_ATTRIBUTES
|
||||
.. autodata:: FILE_SUPPORTS_OPEN_BY_FILE_ID
|
||||
.. autodata:: FILE_SUPPORTS_USN_JOURNAL
|
||||
.. autodata:: FILE_SHARE_READ
|
||||
.. autodata:: FILE_SHARE_WRITE
|
||||
.. autodata:: FILE_SHARE_DELETE
|
||||
.. autodata:: FILE_ATTRIBUTE_READONLY
|
||||
.. autodata:: FILE_ATTRIBUTE_HIDDEN
|
||||
.. autodata:: FILE_ATTRIBUTE_SYSTEM
|
||||
.. autodata:: FILE_ATTRIBUTE_DIRECTORY
|
||||
.. autodata:: FILE_ATTRIBUTE_ARCHIVE
|
||||
.. autodata:: FILE_ATTRIBUTE_DEVICE
|
||||
.. autodata:: FILE_ATTRIBUTE_NORMAL
|
||||
.. autodata:: FILE_ATTRIBUTE_TEMPORARY
|
||||
.. autodata:: FILE_ATTRIBUTE_SPARSE_FILE
|
||||
.. autodata:: FILE_ATTRIBUTE_REPARSE_POINT
|
||||
.. autodata:: FILE_ATTRIBUTE_COMPRESSED
|
||||
.. autodata:: FILE_ATTRIBUTE_OFFLINE
|
||||
.. autodata:: FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
|
||||
.. autodata:: FILE_ATTRIBUTE_ENCRYPTED
|
||||
.. autodata:: FILE_ATTRIBUTE_VIRTUAL
|
||||
.. autodata:: X86_KGDT_NULL
|
||||
.. autodata:: X86_KGDT_R0_CODE
|
||||
.. autodata:: X86_KGDT_R0_DATA
|
||||
@@ -584,6 +647,7 @@ WinDef
|
||||
.. autodata:: DNS_ATMA_FORMAT_E164
|
||||
.. autodata:: DNS_ATMA_FORMAT_AESA
|
||||
.. autodata:: DNS_ATMA_MAX_ADDR_LENGTH
|
||||
.. autodata:: DNS_ADDR_MAX_SOCKADDR_LENGTH
|
||||
.. autodata:: DNS_TYPE_ZERO
|
||||
.. autodata:: DNS_TYPE_A
|
||||
.. autodata:: DNS_TYPE_NS
|
||||
@@ -671,6 +735,15 @@ WinDef
|
||||
.. autodata:: DNS_QUERY_DNSSEC_OK
|
||||
.. autodata:: DNS_QUERY_DNSSEC_CHECKING_DISABLED
|
||||
.. autodata:: DNS_QUERY_RESERVED
|
||||
.. autodata:: MAX_ADAPTER_DESCRIPTION_LENGTH
|
||||
.. autodata:: MAX_ADAPTER_NAME_LENGTH
|
||||
.. autodata:: MAX_ADAPTER_ADDRESS_LENGTH
|
||||
.. autodata:: DEFAULT_MINIMUM_ENTITIES
|
||||
.. autodata:: MAX_HOSTNAME_LEN
|
||||
.. autodata:: MAX_DOMAIN_NAME_LEN
|
||||
.. autodata:: MAX_SCOPE_ID_LEN
|
||||
.. autodata:: MAX_DHCPV6_DUID_LENGTH
|
||||
.. autodata:: MAX_DNS_SUFFIX_STRING_LENGTH
|
||||
.. autodata:: PIPE_ACCESS_INBOUND
|
||||
.. autodata:: PIPE_ACCESS_OUTBOUND
|
||||
.. autodata:: PIPE_ACCESS_DUPLEX
|
||||
@@ -803,6 +876,7 @@ WinDef
|
||||
.. autodata:: PROTECTED_SACL_SECURITY_INFORMATION
|
||||
.. autodata:: UNPROTECTED_DACL_SECURITY_INFORMATION
|
||||
.. autodata:: UNPROTECTED_SACL_SECURITY_INFORMATION
|
||||
.. autodata:: SECURITY_DESCRIPTOR_REVISION
|
||||
.. autodata:: SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL
|
||||
.. autodata:: SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY
|
||||
.. autodata:: SERVICE_TRIGGER_TYPE_DOMAIN_JOIN
|
||||
@@ -1529,59 +1603,8 @@ WinDef
|
||||
.. autodata:: OPEN_EXISTING
|
||||
.. autodata:: OPEN_ALWAYS
|
||||
.. autodata:: TRUNCATE_EXISTING
|
||||
.. autodata:: FILE_SHARE_READ
|
||||
.. autodata:: FILE_SHARE_WRITE
|
||||
.. autodata:: FILE_SHARE_DELETE
|
||||
.. autodata:: FILE_ATTRIBUTE_READONLY
|
||||
.. autodata:: FILE_ATTRIBUTE_HIDDEN
|
||||
.. autodata:: FILE_ATTRIBUTE_SYSTEM
|
||||
.. autodata:: FILE_ATTRIBUTE_DIRECTORY
|
||||
.. autodata:: FILE_ATTRIBUTE_ARCHIVE
|
||||
.. autodata:: FILE_ATTRIBUTE_DEVICE
|
||||
.. autodata:: FILE_ATTRIBUTE_NORMAL
|
||||
.. autodata:: FILE_ATTRIBUTE_TEMPORARY
|
||||
.. autodata:: FILE_ATTRIBUTE_SPARSE_FILE
|
||||
.. autodata:: FILE_ATTRIBUTE_REPARSE_POINT
|
||||
.. autodata:: FILE_ATTRIBUTE_COMPRESSED
|
||||
.. autodata:: FILE_ATTRIBUTE_OFFLINE
|
||||
.. autodata:: FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
|
||||
.. autodata:: FILE_ATTRIBUTE_ENCRYPTED
|
||||
.. autodata:: FILE_ATTRIBUTE_VIRTUAL
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_FILE_NAME
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_DIR_NAME
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_ATTRIBUTES
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_SIZE
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_LAST_WRITE
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_LAST_ACCESS
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_CREATION
|
||||
.. autodata:: FILE_NOTIFY_CHANGE_SECURITY
|
||||
.. autodata:: FILE_ACTION_ADDED
|
||||
.. autodata:: FILE_ACTION_REMOVED
|
||||
.. autodata:: FILE_ACTION_MODIFIED
|
||||
.. autodata:: FILE_ACTION_RENAMED_OLD_NAME
|
||||
.. autodata:: FILE_ACTION_RENAMED_NEW_NAME
|
||||
.. autodata:: MAILSLOT_NO_MESSAGE
|
||||
.. autodata:: MAILSLOT_WAIT_FOREVER
|
||||
.. autodata:: FILE_CASE_SENSITIVE_SEARCH
|
||||
.. autodata:: FILE_CASE_PRESERVED_NAMES
|
||||
.. autodata:: FILE_UNICODE_ON_DISK
|
||||
.. autodata:: FILE_PERSISTENT_ACLS
|
||||
.. autodata:: FILE_FILE_COMPRESSION
|
||||
.. autodata:: FILE_VOLUME_QUOTAS
|
||||
.. autodata:: FILE_SUPPORTS_SPARSE_FILES
|
||||
.. autodata:: FILE_SUPPORTS_REPARSE_POINTS
|
||||
.. autodata:: FILE_SUPPORTS_REMOTE_STORAGE
|
||||
.. autodata:: FILE_VOLUME_IS_COMPRESSED
|
||||
.. autodata:: FILE_SUPPORTS_OBJECT_IDS
|
||||
.. autodata:: FILE_SUPPORTS_ENCRYPTION
|
||||
.. autodata:: FILE_NAMED_STREAMS
|
||||
.. autodata:: FILE_READ_ONLY_VOLUME
|
||||
.. autodata:: FILE_SEQUENTIAL_WRITE_ONCE
|
||||
.. autodata:: FILE_SUPPORTS_TRANSACTIONS
|
||||
.. autodata:: FILE_SUPPORTS_HARD_LINKS
|
||||
.. autodata:: FILE_SUPPORTS_EXTENDED_ATTRIBUTES
|
||||
.. autodata:: FILE_SUPPORTS_OPEN_BY_FILE_ID
|
||||
.. autodata:: FILE_SUPPORTS_USN_JOURNAL
|
||||
.. autodata:: RRF_RT_REG_NONE
|
||||
.. autodata:: RRF_RT_REG_SZ
|
||||
.. autodata:: RRF_RT_REG_EXPAND_SZ
|
||||
|
||||
@@ -2278,6 +2278,10 @@ tagSAFEARRAY
|
||||
|
||||
Alias for :class:`tagSAFEARRAY`
|
||||
|
||||
.. class:: LPSAFEARRAY
|
||||
|
||||
Pointer to :class:`tagSAFEARRAY`
|
||||
|
||||
.. class:: tagSAFEARRAY
|
||||
|
||||
.. attribute:: cDims
|
||||
@@ -8301,6 +8305,149 @@ _WIN32_FIND_DATAW
|
||||
|
||||
:class:`WORD`
|
||||
|
||||
_FILE_NOTIFY_INFORMATION
|
||||
''''''''''''''''''''''''
|
||||
.. class:: FILE_NOTIFY_INFORMATION
|
||||
|
||||
Alias for :class:`_FILE_NOTIFY_INFORMATION`
|
||||
|
||||
.. class:: PFILE_NOTIFY_INFORMATION
|
||||
|
||||
Pointer to :class:`_FILE_NOTIFY_INFORMATION`
|
||||
|
||||
.. class:: _FILE_NOTIFY_INFORMATION
|
||||
|
||||
.. attribute:: NextEntryOffset
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: Action
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: FileNameLength
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: FileName
|
||||
|
||||
:class:`WCHAR`
|
||||
|
||||
_FILE_NOTIFY_EXTENDED_INFORMATION
|
||||
'''''''''''''''''''''''''''''''''
|
||||
.. class:: PFILE_NOTIFY_EXTENDED_INFORMATION
|
||||
|
||||
Pointer to :class:`_FILE_NOTIFY_EXTENDED_INFORMATION`
|
||||
|
||||
.. class:: FILE_NOTIFY_EXTENDED_INFORMATION
|
||||
|
||||
Alias for :class:`_FILE_NOTIFY_EXTENDED_INFORMATION`
|
||||
|
||||
.. class:: _FILE_NOTIFY_EXTENDED_INFORMATION
|
||||
|
||||
.. attribute:: NextEntryOffset
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: Action
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: CreationTime
|
||||
|
||||
:class:`LARGE_INTEGER`
|
||||
|
||||
|
||||
.. attribute:: LastModificationTime
|
||||
|
||||
:class:`LARGE_INTEGER`
|
||||
|
||||
|
||||
.. attribute:: LastChangeTime
|
||||
|
||||
:class:`LARGE_INTEGER`
|
||||
|
||||
|
||||
.. attribute:: LastAccessTime
|
||||
|
||||
:class:`LARGE_INTEGER`
|
||||
|
||||
|
||||
.. attribute:: AllocatedLength
|
||||
|
||||
:class:`LARGE_INTEGER`
|
||||
|
||||
|
||||
.. attribute:: FileSize
|
||||
|
||||
:class:`LARGE_INTEGER`
|
||||
|
||||
|
||||
.. attribute:: FileAttributes
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: ReparsePointTag
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: FileId
|
||||
|
||||
:class:`LARGE_INTEGER`
|
||||
|
||||
|
||||
.. attribute:: ParentFileId
|
||||
|
||||
:class:`LARGE_INTEGER`
|
||||
|
||||
|
||||
.. attribute:: FileNameLength
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: FileName
|
||||
|
||||
:class:`WCHAR`
|
||||
|
||||
_FILE_RENAME_INFORMATION
|
||||
''''''''''''''''''''''''
|
||||
.. class:: FILE_RENAME_INFORMATION
|
||||
|
||||
Alias for :class:`_FILE_RENAME_INFORMATION`
|
||||
|
||||
.. class:: PFILE_RENAME_INFORMATION
|
||||
|
||||
Pointer to :class:`_FILE_RENAME_INFORMATION`
|
||||
|
||||
.. class:: _FILE_RENAME_INFORMATION
|
||||
|
||||
.. attribute:: __ANON_DUMMYUNIONNAME_FILE_RENAME_INFORMATION
|
||||
|
||||
:class:`_ANON__FILE_RENAME_INFORMATION_SUB_UNION_1`
|
||||
|
||||
|
||||
.. attribute:: RootDirectory
|
||||
|
||||
:class:`HANDLE`
|
||||
|
||||
|
||||
.. attribute:: FileNameLength
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: FileName
|
||||
|
||||
:class:`WCHAR`
|
||||
|
||||
_GUID
|
||||
'''''
|
||||
.. class:: REFCLSID
|
||||
@@ -11133,6 +11280,386 @@ _DnsRecordW
|
||||
|
||||
:class:`_ANON__DNSRECORDW_SUB_UNION_2`
|
||||
|
||||
_DnsAddr
|
||||
''''''''
|
||||
.. class:: PDNS_ADDR
|
||||
|
||||
Pointer to :class:`_DnsAddr`
|
||||
|
||||
.. class:: DNS_ADDR
|
||||
|
||||
Alias for :class:`_DnsAddr`
|
||||
|
||||
.. class:: _DnsAddr
|
||||
|
||||
.. attribute:: MaxSa
|
||||
|
||||
:class:`CHAR` ``[DNS_ADDR_MAX_SOCKADDR_LENGTH]``
|
||||
|
||||
|
||||
.. attribute:: DnsAddrUserDword
|
||||
|
||||
:class:`DWORD` ``[8]``
|
||||
|
||||
_DnsAddrArray
|
||||
'''''''''''''
|
||||
.. class:: PDNS_ADDR_ARRAY
|
||||
|
||||
Pointer to :class:`_DnsAddrArray`
|
||||
|
||||
.. class:: DNS_ADDR_ARRAY
|
||||
|
||||
Alias for :class:`_DnsAddrArray`
|
||||
|
||||
.. class:: _DnsAddrArray
|
||||
|
||||
.. attribute:: MaxCount
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: AddrCount
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: Tag
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: Family
|
||||
|
||||
:class:`WORD`
|
||||
|
||||
|
||||
.. attribute:: WordReserved
|
||||
|
||||
:class:`WORD`
|
||||
|
||||
|
||||
.. attribute:: Flags
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: MatchFlag
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: Reserved1
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: Reserved2
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: AddrArray
|
||||
|
||||
:class:`DNS_ADDR` ``[ANY_SIZE]``
|
||||
|
||||
_DNS_QUERY_REQUEST
|
||||
''''''''''''''''''
|
||||
.. class:: PDNS_QUERY_REQUEST
|
||||
|
||||
Pointer to :class:`_DNS_QUERY_REQUEST`
|
||||
|
||||
.. class:: DNS_QUERY_REQUEST
|
||||
|
||||
Alias for :class:`_DNS_QUERY_REQUEST`
|
||||
|
||||
.. class:: _DNS_QUERY_REQUEST
|
||||
|
||||
.. attribute:: Version
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: QueryName
|
||||
|
||||
:class:`PCWSTR`
|
||||
|
||||
|
||||
.. attribute:: QueryType
|
||||
|
||||
:class:`WORD`
|
||||
|
||||
|
||||
.. attribute:: QueryOptions
|
||||
|
||||
:class:`ULONG64`
|
||||
|
||||
|
||||
.. attribute:: pDnsServerList
|
||||
|
||||
:class:`PDNS_ADDR_ARRAY`
|
||||
|
||||
|
||||
.. attribute:: InterfaceIndex
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: pQueryCompletionCallback
|
||||
|
||||
:class:`PDNS_QUERY_COMPLETION_ROUTINE`
|
||||
|
||||
|
||||
.. attribute:: pQueryContext
|
||||
|
||||
:class:`PVOID`
|
||||
|
||||
_DNS_QUERY_CANCEL
|
||||
'''''''''''''''''
|
||||
.. class:: PDNS_QUERY_CANCEL
|
||||
|
||||
Pointer to :class:`_DNS_QUERY_CANCEL`
|
||||
|
||||
.. class:: DNS_QUERY_CANCEL
|
||||
|
||||
Alias for :class:`_DNS_QUERY_CANCEL`
|
||||
|
||||
.. class:: _DNS_QUERY_CANCEL
|
||||
|
||||
.. attribute:: Reserved
|
||||
|
||||
:class:`CHAR` ``[32]``
|
||||
|
||||
_DNS_QUERY_RESULT
|
||||
'''''''''''''''''
|
||||
.. class:: DNS_QUERY_RESULT
|
||||
|
||||
Alias for :class:`_DNS_QUERY_RESULT`
|
||||
|
||||
.. class:: PDNS_QUERY_RESULT
|
||||
|
||||
Pointer to :class:`_DNS_QUERY_RESULT`
|
||||
|
||||
.. class:: _DNS_QUERY_RESULT
|
||||
|
||||
.. attribute:: Version
|
||||
|
||||
:class:`ULONG`
|
||||
|
||||
|
||||
.. attribute:: QueryStatus
|
||||
|
||||
:class:`DNS_STATUS`
|
||||
|
||||
|
||||
.. attribute:: QueryOptions
|
||||
|
||||
:class:`ULONG64`
|
||||
|
||||
|
||||
.. attribute:: pQueryRecords
|
||||
|
||||
:class:`PVOID`
|
||||
|
||||
|
||||
.. attribute:: Reserved
|
||||
|
||||
:class:`PVOID`
|
||||
|
||||
IP_ADDRESS_STRING
|
||||
'''''''''''''''''
|
||||
.. class:: IP_MASK_STRING
|
||||
|
||||
Alias for :class:`IP_ADDRESS_STRING`
|
||||
|
||||
.. class:: PIP_MASK_STRING
|
||||
|
||||
Pointer to :class:`IP_ADDRESS_STRING`
|
||||
|
||||
.. class:: PIP_ADDRESS_STRING
|
||||
|
||||
Pointer to :class:`IP_ADDRESS_STRING`
|
||||
|
||||
.. class:: IP_ADDRESS_STRING
|
||||
|
||||
Alias for :class:`IP_ADDRESS_STRING`
|
||||
|
||||
.. class:: IP_ADDRESS_STRING
|
||||
|
||||
.. attribute:: String
|
||||
|
||||
:class:`CHAR` ``[4 * 4]``
|
||||
|
||||
_IP_ADDR_STRING
|
||||
'''''''''''''''
|
||||
.. class:: PIP_ADDR_STRING
|
||||
|
||||
Pointer to :class:`_IP_ADDR_STRING`
|
||||
|
||||
.. class:: IP_ADDR_STRING
|
||||
|
||||
Alias for :class:`_IP_ADDR_STRING`
|
||||
|
||||
.. class:: _IP_ADDR_STRING
|
||||
|
||||
.. attribute:: Next
|
||||
|
||||
:class:`_IP_ADDR_STRING`
|
||||
|
||||
|
||||
.. attribute:: IpAddress
|
||||
|
||||
:class:`IP_ADDRESS_STRING`
|
||||
|
||||
|
||||
.. attribute:: IpMask
|
||||
|
||||
:class:`IP_MASK_STRING`
|
||||
|
||||
|
||||
.. attribute:: Context
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
_IP_ADAPTER_INFO
|
||||
''''''''''''''''
|
||||
.. class:: IP_ADAPTER_INFO
|
||||
|
||||
Alias for :class:`_IP_ADAPTER_INFO`
|
||||
|
||||
.. class:: PIP_ADAPTER_INFO
|
||||
|
||||
Pointer to :class:`_IP_ADAPTER_INFO`
|
||||
|
||||
.. class:: _IP_ADAPTER_INFO
|
||||
|
||||
.. attribute:: Next
|
||||
|
||||
:class:`_IP_ADAPTER_INFO`
|
||||
|
||||
|
||||
.. attribute:: ComboIndex
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: AdapterName
|
||||
|
||||
:class:`CHAR` ``[MAX_ADAPTER_NAME_LENGTH + 4]``
|
||||
|
||||
|
||||
.. attribute:: Description
|
||||
|
||||
:class:`CHAR` ``[MAX_ADAPTER_DESCRIPTION_LENGTH + 4]``
|
||||
|
||||
|
||||
.. attribute:: AddressLength
|
||||
|
||||
:class:`UINT`
|
||||
|
||||
|
||||
.. attribute:: Address
|
||||
|
||||
:class:`BYTE` ``[MAX_ADAPTER_ADDRESS_LENGTH]``
|
||||
|
||||
|
||||
.. attribute:: Index
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: Type
|
||||
|
||||
:class:`UINT`
|
||||
|
||||
|
||||
.. attribute:: DhcpEnabled
|
||||
|
||||
:class:`UINT`
|
||||
|
||||
|
||||
.. attribute:: CurrentIpAddress
|
||||
|
||||
:class:`PIP_ADDR_STRING`
|
||||
|
||||
|
||||
.. attribute:: IpAddressList
|
||||
|
||||
:class:`IP_ADDR_STRING`
|
||||
|
||||
|
||||
.. attribute:: GatewayList
|
||||
|
||||
:class:`IP_ADDR_STRING`
|
||||
|
||||
|
||||
.. attribute:: DhcpServer
|
||||
|
||||
:class:`IP_ADDR_STRING`
|
||||
|
||||
|
||||
.. attribute:: HaveWins
|
||||
|
||||
:class:`BOOL`
|
||||
|
||||
|
||||
.. attribute:: PrimaryWinsServer
|
||||
|
||||
:class:`IP_ADDR_STRING`
|
||||
|
||||
|
||||
.. attribute:: SecondaryWinsServer
|
||||
|
||||
:class:`IP_ADDR_STRING`
|
||||
|
||||
|
||||
.. attribute:: LeaseObtained
|
||||
|
||||
:class:`ULONGLONG`
|
||||
|
||||
|
||||
.. attribute:: LeaseExpires
|
||||
|
||||
:class:`ULONGLONG`
|
||||
|
||||
_IP_PER_ADAPTER_INFO_W2KSP1
|
||||
'''''''''''''''''''''''''''
|
||||
.. class:: PIP_PER_ADAPTER_INFO
|
||||
|
||||
Pointer to :class:`_IP_PER_ADAPTER_INFO_W2KSP1`
|
||||
|
||||
.. class:: IP_PER_ADAPTER_INFO
|
||||
|
||||
Alias for :class:`_IP_PER_ADAPTER_INFO_W2KSP1`
|
||||
|
||||
.. class:: PIP_PER_ADAPTER_INFO_W2KSP1
|
||||
|
||||
Pointer to :class:`_IP_PER_ADAPTER_INFO_W2KSP1`
|
||||
|
||||
.. class:: IP_PER_ADAPTER_INFO_W2KSP1
|
||||
|
||||
Alias for :class:`_IP_PER_ADAPTER_INFO_W2KSP1`
|
||||
|
||||
.. class:: _IP_PER_ADAPTER_INFO_W2KSP1
|
||||
|
||||
.. attribute:: AutoconfigEnabled
|
||||
|
||||
:class:`UINT`
|
||||
|
||||
|
||||
.. attribute:: AutoconfigActive
|
||||
|
||||
:class:`UINT`
|
||||
|
||||
|
||||
.. attribute:: CurrentDnsServer
|
||||
|
||||
:class:`PIP_ADDR_STRING`
|
||||
|
||||
|
||||
.. attribute:: DnsServerList
|
||||
|
||||
:class:`IP_ADDR_STRING`
|
||||
|
||||
_KEY_VALUE_BASIC_INFORMATION
|
||||
''''''''''''''''''''''''''''
|
||||
.. class:: PKEY_VALUE_BASIC_INFORMATION
|
||||
@@ -16876,6 +17403,10 @@ _SYSTEM_PROCESS_ID_INFORMATION
|
||||
|
||||
_CLIENT_ID
|
||||
''''''''''
|
||||
.. class:: PCLIENT_ID
|
||||
|
||||
Pointer to :class:`_CLIENT_ID`
|
||||
|
||||
.. class:: CLIENT_ID
|
||||
|
||||
Alias for :class:`_CLIENT_ID`
|
||||
@@ -16893,6 +17424,10 @@ _CLIENT_ID
|
||||
|
||||
_CLIENT_ID64
|
||||
''''''''''''
|
||||
.. class:: PCLIENT_ID64
|
||||
|
||||
Pointer to :class:`_CLIENT_ID64`
|
||||
|
||||
.. class:: CLIENT_ID64
|
||||
|
||||
Alias for :class:`_CLIENT_ID64`
|
||||
@@ -16914,6 +17449,10 @@ _CLIENT_ID32
|
||||
|
||||
Alias for :class:`_CLIENT_ID32`
|
||||
|
||||
.. class:: PCLIENT_ID32
|
||||
|
||||
Pointer to :class:`_CLIENT_ID32`
|
||||
|
||||
.. class:: _CLIENT_ID32
|
||||
|
||||
.. attribute:: UniqueProcess
|
||||
@@ -23507,6 +24046,10 @@ Simple types
|
||||
|
||||
.. autoclass:: LPSERVICE_MAIN_FUNCTIONW
|
||||
|
||||
.. autoclass:: LPOVERLAPPED_COMPLETION_ROUTINE
|
||||
|
||||
.. autoclass:: PDNS_QUERY_COMPLETION_ROUTINE
|
||||
|
||||
.. autoclass:: LPCONTEXT
|
||||
|
||||
.. autoclass:: HCERTSTORE
|
||||
@@ -25117,6 +25660,26 @@ _IO_PRIORITY_HINT
|
||||
|
||||
.. attribute:: MaxIoPriorityTypes(5)
|
||||
|
||||
_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS
|
||||
''''''''''''''''''''''''''''''''''''''''
|
||||
.. class:: PREAD_DIRECTORY_NOTIFY_INFORMATION_CLASS
|
||||
|
||||
Pointer to :class:`_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS`
|
||||
|
||||
|
||||
.. class:: READ_DIRECTORY_NOTIFY_INFORMATION_CLASS
|
||||
|
||||
Alias for :class:`_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS`
|
||||
|
||||
|
||||
.. class:: _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS
|
||||
|
||||
|
||||
.. attribute:: ReadDirectoryNotifyInformation(0)
|
||||
|
||||
|
||||
.. attribute:: ReadDirectoryNotifyExtendedInformation(1)
|
||||
|
||||
_POLICY_INFORMATION_CLASS
|
||||
'''''''''''''''''''''''''
|
||||
.. class:: POLICY_INFORMATION_CLASS
|
||||
@@ -26407,6 +26970,42 @@ ADDRESS_MODE
|
||||
|
||||
.. attribute:: AddrModeFlat(3)
|
||||
|
||||
_COMPUTER_NAME_FORMAT
|
||||
'''''''''''''''''''''
|
||||
.. class:: COMPUTER_NAME_FORMAT
|
||||
|
||||
Alias for :class:`_COMPUTER_NAME_FORMAT`
|
||||
|
||||
|
||||
.. class:: _COMPUTER_NAME_FORMAT
|
||||
|
||||
|
||||
.. attribute:: ComputerNameNetBIOS(0)
|
||||
|
||||
|
||||
.. attribute:: ComputerNameDnsHostname(1)
|
||||
|
||||
|
||||
.. attribute:: ComputerNameDnsDomain(2)
|
||||
|
||||
|
||||
.. attribute:: ComputerNameDnsFullyQualified(3)
|
||||
|
||||
|
||||
.. attribute:: ComputerNamePhysicalNetBIOS(4)
|
||||
|
||||
|
||||
.. attribute:: ComputerNamePhysicalDnsHostname(5)
|
||||
|
||||
|
||||
.. attribute:: ComputerNamePhysicalDnsDomain(6)
|
||||
|
||||
|
||||
.. attribute:: ComputerNamePhysicalDnsFullyQualified(7)
|
||||
|
||||
|
||||
.. attribute:: ComputerNameMax(8)
|
||||
|
||||
_TASK_ACTION_TYPE
|
||||
'''''''''''''''''
|
||||
.. class:: TASK_ACTION_TYPE
|
||||
|
||||
@@ -276,6 +276,9 @@ class IWbemLocator(COMInterface):
|
||||
class IWbemObjectSink(COMInterface):
|
||||
IID = generate_IID(0x7C857801, 0x7381, 0x11CF, 0x88, 0x4D, 0x00, 0xAA, 0x00, 0x4B, 0x2E, 0x24, name="IWbemObjectSink", strid="7C857801-7381-11CF-884D-00AA004B2E24")
|
||||
|
||||
class IWbemObjectTextSrc(COMInterface):
|
||||
IID = generate_IID(0xBFBF883A, 0xCAD7, 0x11D3, 0xA1, 0x1B, 0x00, 0x10, 0x5A, 0x1F, 0x51, 0x5A, name="IWbemObjectTextSrc", strid="BFBF883A-CAD7-11D3-A11B-00105A1F515A")
|
||||
|
||||
class IWbemQualifierSet(COMInterface):
|
||||
IID = generate_IID(0xDC12A680, 0x737F, 0x11CF, 0x88, 0x4D, 0x00, 0xAA, 0x00, 0x4B, 0x2E, 0x24, name="IWbemQualifierSet", strid="DC12A680-737F-11CF-884D-00AA004B2E24")
|
||||
|
||||
@@ -2661,6 +2664,19 @@ IWbemObjectSink._functions_ = {
|
||||
"SetStatus": ctypes.WINFUNCTYPE(HRESULT, LONG, HRESULT, BSTR, IWbemClassObject)(4, "SetStatus"),
|
||||
}
|
||||
|
||||
IWbemObjectTextSrc._functions_ = {
|
||||
# QueryInterface -> riid:REFIID, ppvObject:**void
|
||||
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
|
||||
# AddRef ->
|
||||
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
|
||||
# Release ->
|
||||
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
|
||||
# GetText -> lFlags:LONG, pObj:*IWbemClassObject, uObjTextFormat:ULONG, pCtx:*IWbemContext, strText:*BSTR
|
||||
"GetText": ctypes.WINFUNCTYPE(HRESULT, LONG, IWbemClassObject, ULONG, IWbemContext, POINTER(BSTR))(3, "GetText"),
|
||||
# CreateFromText -> lFlags:LONG, strText:BSTR, uObjTextFormat:ULONG, pCtx:*IWbemContext, pNewObj:**IWbemClassObject
|
||||
"CreateFromText": ctypes.WINFUNCTYPE(HRESULT, LONG, BSTR, ULONG, IWbemContext, POINTER(IWbemClassObject))(4, "CreateFromText"),
|
||||
}
|
||||
|
||||
IWbemQualifierSet._functions_ = {
|
||||
# QueryInterface -> riid:REFIID, ppvObject:**void
|
||||
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
|
||||
|
||||
@@ -826,6 +826,7 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
|
||||
'DEBUG_EVENT_UNLOAD_MODULE',
|
||||
'DEBUG_ONLY_THIS_PROCESS',
|
||||
'DEBUG_PROCESS',
|
||||
'DEFAULT_MINIMUM_ENTITIES',
|
||||
'DELETE',
|
||||
'DETACHED_PROCESS',
|
||||
'DIRECTORY_ALL_ACCESS',
|
||||
@@ -1590,13 +1591,20 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
|
||||
'MAXIMUM_ALLOWED',
|
||||
'MAXLEN_IFDESCR',
|
||||
'MAXLEN_PHYSADDR',
|
||||
'MAX_ADAPTER_ADDRESS_LENGTH',
|
||||
'MAX_ADAPTER_DESCRIPTION_LENGTH',
|
||||
'MAX_ADAPTER_NAME',
|
||||
'MAX_ADAPTER_NAME_LENGTH',
|
||||
'MAX_CLASS_NAME_LEN',
|
||||
'MAX_CONFIG_VALUE',
|
||||
'MAX_DEVICE_ID_LEN',
|
||||
'MAX_DEVNODE_ID_LEN',
|
||||
'MAX_DHCPV6_DUID_LENGTH',
|
||||
'MAX_DMA_CHANNELS',
|
||||
'MAX_DNS_SUFFIX_STRING_LENGTH',
|
||||
'MAX_DOMAIN_NAME_LEN',
|
||||
'MAX_GUID_STRING_LEN',
|
||||
'MAX_HOSTNAME_LEN',
|
||||
'MAX_INSTANCE_VALUE',
|
||||
'MAX_INTERFACE_NAME_LEN',
|
||||
'MAX_IO_PORTS',
|
||||
@@ -1604,6 +1612,7 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
|
||||
'MAX_MEM_REGISTERS',
|
||||
'MAX_PATH',
|
||||
'MAX_PROFILE_LEN',
|
||||
'MAX_SCOPE_ID_LEN',
|
||||
'MEM_4MB_PAGES',
|
||||
'MEM_COMMIT',
|
||||
'MEM_DECOMMIT',
|
||||
@@ -11749,6 +11758,7 @@ structs = set(['ACCESS_ALLOWED_ACE',
|
||||
'FILE_NOTIFY_EXTENDED_INFORMATION',
|
||||
'FILE_NOTIFY_INFORMATION',
|
||||
'FILE_POSITION_INFORMATION',
|
||||
'FILE_RENAME_INFORMATION',
|
||||
'FILE_STANDARD_INFORMATION',
|
||||
'FILE_STREAM_INFORMATION',
|
||||
'FLOATING_SAVE_AREA',
|
||||
@@ -11794,7 +11804,13 @@ structs = set(['ACCESS_ALLOWED_ACE',
|
||||
'IO_STATUS_BLOCK',
|
||||
'IP6_ADDRESS',
|
||||
'IP_ADAPTER_INDEX_MAP',
|
||||
'IP_ADAPTER_INFO',
|
||||
'IP_ADDRESS_STRING',
|
||||
'IP_ADDR_STRING',
|
||||
'IP_INTERFACE_INFO',
|
||||
'IP_MASK_STRING',
|
||||
'IP_PER_ADAPTER_INFO',
|
||||
'IP_PER_ADAPTER_INFO_W2KSP1',
|
||||
'IRQ_DES_32',
|
||||
'IRQ_DES_64',
|
||||
'IRQ_Des_32_s',
|
||||
@@ -11865,6 +11881,7 @@ structs = set(['ACCESS_ALLOWED_ACE',
|
||||
'LPQUERY_SERVICE_CONFIGW',
|
||||
'LPRGBTRIPLE',
|
||||
'LPRIP_INFO',
|
||||
'LPSAFEARRAY',
|
||||
'LPSAFEARRAYBOUND',
|
||||
'LPSECURITY_ATTRIBUTES',
|
||||
'LPSERVICE_STATUS',
|
||||
@@ -12237,6 +12254,7 @@ structs = set(['ACCESS_ALLOWED_ACE',
|
||||
'PFILE_NOTIFY_EXTENDED_INFORMATION',
|
||||
'PFILE_NOTIFY_INFORMATION',
|
||||
'PFILE_POSITION_INFORMATION',
|
||||
'PFILE_RENAME_INFORMATION',
|
||||
'PFILE_STANDARD_INFORMATION',
|
||||
'PFILE_STREAM_INFORMATION',
|
||||
'PGENERIC_MAPPING',
|
||||
@@ -12273,7 +12291,13 @@ structs = set(['ACCESS_ALLOWED_ACE',
|
||||
'PIO_STATUS_BLOCK',
|
||||
'PIP6_ADDRESS',
|
||||
'PIP_ADAPTER_INDEX_MAP',
|
||||
'PIP_ADAPTER_INFO',
|
||||
'PIP_ADDRESS_STRING',
|
||||
'PIP_ADDR_STRING',
|
||||
'PIP_INTERFACE_INFO',
|
||||
'PIP_MASK_STRING',
|
||||
'PIP_PER_ADAPTER_INFO',
|
||||
'PIP_PER_ADAPTER_INFO_W2KSP1',
|
||||
'PIRQ_DES_32',
|
||||
'PIRQ_DES_64',
|
||||
'PIRQ_RANGE',
|
||||
@@ -12923,6 +12947,7 @@ structs = set(['ACCESS_ALLOWED_ACE',
|
||||
'_FILE_NOTIFY_EXTENDED_INFORMATION',
|
||||
'_FILE_NOTIFY_INFORMATION',
|
||||
'_FILE_POSITION_INFORMATION',
|
||||
'_FILE_RENAME_INFORMATION',
|
||||
'_FILE_STANDARD_INFORMATION',
|
||||
'_FILE_STREAM_INFORMATION',
|
||||
'_FLOATING_SAVE_AREA',
|
||||
@@ -12958,7 +12983,10 @@ structs = set(['ACCESS_ALLOWED_ACE',
|
||||
'_INTERNET_BUFFERSW',
|
||||
'_IO_STATUS_BLOCK',
|
||||
'_IP_ADAPTER_INDEX_MAP',
|
||||
'_IP_ADAPTER_INFO',
|
||||
'_IP_ADDR_STRING',
|
||||
'_IP_INTERFACE_INFO',
|
||||
'_IP_PER_ADAPTER_INFO_W2KSP1',
|
||||
'_ITEMIDLIST',
|
||||
'_JIT_DEBUG_INFO',
|
||||
'_KDHELP',
|
||||
@@ -13729,6 +13757,7 @@ functions = set(['AccessCheck',
|
||||
'FreeSid',
|
||||
'GetAce',
|
||||
'GetAclInformation',
|
||||
'GetAdaptersInfo',
|
||||
'GetClassInfoExA',
|
||||
'GetClassInfoExW',
|
||||
'GetClassNameA',
|
||||
@@ -13789,6 +13818,7 @@ functions = set(['AccessCheck',
|
||||
'GetNamedSecurityInfoW',
|
||||
'GetNumberOfEventLogRecords',
|
||||
'GetParent',
|
||||
'GetPerAdapterInfo',
|
||||
'GetPriorityClass',
|
||||
'GetProcAddress',
|
||||
'GetProcessDEPPolicy',
|
||||
@@ -14085,6 +14115,19 @@ functions = set(['AccessCheck',
|
||||
'SHFileOperationA',
|
||||
'SHGetPathFromIDListA',
|
||||
'SHGetPathFromIDListW',
|
||||
'SafeArrayCopy',
|
||||
'SafeArrayCopyData',
|
||||
'SafeArrayCreate',
|
||||
'SafeArrayCreateVector',
|
||||
'SafeArrayDestroy',
|
||||
'SafeArrayDestroyData',
|
||||
'SafeArrayGetDim',
|
||||
'SafeArrayGetElement',
|
||||
'SafeArrayGetElemsize',
|
||||
'SafeArrayGetLBound',
|
||||
'SafeArrayGetUBound',
|
||||
'SafeArrayGetVartype',
|
||||
'SafeArrayPutElement',
|
||||
'SetAclInformation',
|
||||
'SetClipboardData',
|
||||
'SetConsoleCtrlHandler',
|
||||
@@ -14188,6 +14231,8 @@ functions = set(['AccessCheck',
|
||||
'SymUnDName64',
|
||||
'SymUnloadModule',
|
||||
'SymUnloadModule64',
|
||||
'SysAllocString',
|
||||
'SysFreeString',
|
||||
'SystemTimeToFileTime',
|
||||
'TdhEnumerateProviders',
|
||||
'TerminateProcess',
|
||||
@@ -14308,6 +14353,7 @@ interfaces = set(['IAction',
|
||||
'IWbemContext',
|
||||
'IWbemLocator',
|
||||
'IWbemObjectSink',
|
||||
'IWbemObjectTextSrc',
|
||||
'IWbemQualifierSet',
|
||||
'IWbemServices',
|
||||
'IWebBrowser2'])
|
||||
|
||||
@@ -740,6 +740,15 @@ DNS_QUERY_APPEND_MULTILABEL = make_flag("DNS_QUERY_APPEND_MULTILABEL", 0x0080000
|
||||
DNS_QUERY_DNSSEC_OK = make_flag("DNS_QUERY_DNSSEC_OK", 0x01000000)
|
||||
DNS_QUERY_DNSSEC_CHECKING_DISABLED = make_flag("DNS_QUERY_DNSSEC_CHECKING_DISABLED", 0x02000000)
|
||||
DNS_QUERY_RESERVED = make_flag("DNS_QUERY_RESERVED", 0xf0000000)
|
||||
MAX_ADAPTER_DESCRIPTION_LENGTH = make_flag("MAX_ADAPTER_DESCRIPTION_LENGTH", 128)
|
||||
MAX_ADAPTER_NAME_LENGTH = make_flag("MAX_ADAPTER_NAME_LENGTH", 256)
|
||||
MAX_ADAPTER_ADDRESS_LENGTH = make_flag("MAX_ADAPTER_ADDRESS_LENGTH", 8)
|
||||
DEFAULT_MINIMUM_ENTITIES = make_flag("DEFAULT_MINIMUM_ENTITIES", 32)
|
||||
MAX_HOSTNAME_LEN = make_flag("MAX_HOSTNAME_LEN", 128)
|
||||
MAX_DOMAIN_NAME_LEN = make_flag("MAX_DOMAIN_NAME_LEN", 128)
|
||||
MAX_SCOPE_ID_LEN = make_flag("MAX_SCOPE_ID_LEN", 256)
|
||||
MAX_DHCPV6_DUID_LENGTH = make_flag("MAX_DHCPV6_DUID_LENGTH", 130)
|
||||
MAX_DNS_SUFFIX_STRING_LENGTH = make_flag("MAX_DNS_SUFFIX_STRING_LENGTH", 256)
|
||||
PIPE_ACCESS_INBOUND = make_flag("PIPE_ACCESS_INBOUND", 0x00000001)
|
||||
PIPE_ACCESS_OUTBOUND = make_flag("PIPE_ACCESS_OUTBOUND", 0x00000002)
|
||||
PIPE_ACCESS_DUPLEX = make_flag("PIPE_ACCESS_DUPLEX", 0x00000003)
|
||||
|
||||
@@ -330,6 +330,86 @@ CLSIDFromProgIDParams = ((1, 'lpszProgID'), (1, 'lpclsid'))
|
||||
CoTaskMemFreePrototype = WINFUNCTYPE(PVOID, LPVOID)
|
||||
CoTaskMemFreeParams = ((1, 'pv'),)
|
||||
|
||||
#def SafeArrayCreate(vt, cDims, rgsabound):
|
||||
# return SafeArrayCreate.ctypes_function(vt, cDims, rgsabound)
|
||||
SafeArrayCreatePrototype = WINFUNCTYPE(LPSAFEARRAY, VARTYPE, UINT, POINTER(SAFEARRAYBOUND))
|
||||
SafeArrayCreateParams = ((1, 'vt'), (1, 'cDims'), (1, 'rgsabound'))
|
||||
|
||||
#def SafeArrayCreateVector(vt, lLbound, cElements):
|
||||
# return SafeArrayCreateVector.ctypes_function(vt, lLbound, cElements)
|
||||
SafeArrayCreateVectorPrototype = WINFUNCTYPE(LPSAFEARRAY, VARTYPE, LONG, ULONG)
|
||||
SafeArrayCreateVectorParams = ((1, 'vt'), (1, 'lLbound'), (1, 'cElements'))
|
||||
|
||||
#def SafeArrayDestroy(psa):
|
||||
# return SafeArrayDestroy.ctypes_function(psa)
|
||||
SafeArrayDestroyPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY))
|
||||
SafeArrayDestroyParams = ((1, 'psa'),)
|
||||
|
||||
#def SafeArrayDestroyData(psa):
|
||||
# return SafeArrayDestroyData.ctypes_function(psa)
|
||||
SafeArrayDestroyDataPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY))
|
||||
SafeArrayDestroyDataParams = ((1, 'psa'),)
|
||||
|
||||
#def SafeArrayGetElement(psa, rgIndices, pv):
|
||||
# return SafeArrayGetElement.ctypes_function(psa, rgIndices, pv)
|
||||
SafeArrayGetElementPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), POINTER(LONG), PVOID)
|
||||
SafeArrayGetElementParams = ((1, 'psa'), (1, 'rgIndices'), (1, 'pv'))
|
||||
|
||||
#def SafeArrayGetElemsize(psa):
|
||||
# return SafeArrayGetElemsize.ctypes_function(psa)
|
||||
SafeArrayGetElemsizePrototype = WINFUNCTYPE(UINT, POINTER(SAFEARRAY))
|
||||
SafeArrayGetElemsizeParams = ((1, 'psa'),)
|
||||
|
||||
#def SafeArrayGetLBound(psa, nDim, plLbound):
|
||||
# return SafeArrayGetLBound.ctypes_function(psa, nDim, plLbound)
|
||||
SafeArrayGetLBoundPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), UINT, POINTER(LONG))
|
||||
SafeArrayGetLBoundParams = ((1, 'psa'), (1, 'nDim'), (1, 'plLbound'))
|
||||
|
||||
#def SafeArrayGetUBound(psa, nDim, plUbound):
|
||||
# return SafeArrayGetUBound.ctypes_function(psa, nDim, plUbound)
|
||||
SafeArrayGetUBoundPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), UINT, POINTER(LONG))
|
||||
SafeArrayGetUBoundParams = ((1, 'psa'), (1, 'nDim'), (1, 'plUbound'))
|
||||
|
||||
#def SafeArrayGetDim(psa):
|
||||
# return SafeArrayGetDim.ctypes_function(psa)
|
||||
SafeArrayGetDimPrototype = WINFUNCTYPE(UINT, POINTER(SAFEARRAY))
|
||||
SafeArrayGetDimParams = ((1, 'psa'),)
|
||||
|
||||
#def SafeArrayPutElement(psa, rgIndices, pv):
|
||||
# return SafeArrayPutElement.ctypes_function(psa, rgIndices, pv)
|
||||
SafeArrayPutElementPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), POINTER(LONG), PVOID)
|
||||
SafeArrayPutElementParams = ((1, 'psa'), (1, 'rgIndices'), (1, 'pv'))
|
||||
|
||||
#def SafeArrayGetVartype(psa, pvt):
|
||||
# return SafeArrayGetVartype.ctypes_function(psa, pvt)
|
||||
SafeArrayGetVartypePrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), POINTER(VARTYPE))
|
||||
SafeArrayGetVartypeParams = ((1, 'psa'), (1, 'pvt'))
|
||||
|
||||
#def SysFreeString(bstrString):
|
||||
# return SysFreeString.ctypes_function(bstrString)
|
||||
SysFreeStringPrototype = WINFUNCTYPE(VOID, BSTR)
|
||||
SysFreeStringParams = ((1, 'bstrString'),)
|
||||
|
||||
#def SafeArrayCopy(psa, ppsaOut):
|
||||
# return SafeArrayCopy.ctypes_function(psa, ppsaOut)
|
||||
SafeArrayCopyPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), POINTER(LPSAFEARRAY))
|
||||
SafeArrayCopyParams = ((1, 'psa'), (1, 'ppsaOut'))
|
||||
|
||||
#def SafeArrayCopyData(psaSource, psaTarget):
|
||||
# return SafeArrayCopyData.ctypes_function(psaSource, psaTarget)
|
||||
SafeArrayCopyDataPrototype = WINFUNCTYPE(HRESULT, POINTER(SAFEARRAY), POINTER(SAFEARRAY))
|
||||
SafeArrayCopyDataParams = ((1, 'psaSource'), (1, 'psaTarget'))
|
||||
|
||||
#def SysAllocString(psz):
|
||||
# return SysAllocString.ctypes_function(psz)
|
||||
SysAllocStringPrototype = WINFUNCTYPE(PVOID, POINTER(OLECHAR))
|
||||
SysAllocStringParams = ((1, 'psz'),)
|
||||
|
||||
#def SysFreeString(bstrString):
|
||||
# return SysFreeString.ctypes_function(bstrString)
|
||||
SysFreeStringPrototype = WINFUNCTYPE(VOID, BSTR)
|
||||
SysFreeStringParams = ((1, 'bstrString'),)
|
||||
|
||||
#def CryptCATAdminCalcHashFromFileHandle(hFile, pcbHash, pbHash, dwFlags):
|
||||
# return CryptCATAdminCalcHashFromFileHandle.ctypes_function(hFile, pcbHash, pbHash, dwFlags)
|
||||
CryptCATAdminCalcHashFromFileHandlePrototype = WINFUNCTYPE(BOOL, HANDLE, POINTER(DWORD), POINTER(BYTE), DWORD)
|
||||
@@ -1345,6 +1425,16 @@ DnsQuery_WParams = ((1, 'pszName'), (1, 'wType'), (1, 'Options'), (1, 'pExtra'),
|
||||
DnsQueryExPrototype = WINFUNCTYPE(DNS_STATUS, PDNS_QUERY_REQUEST, PDNS_QUERY_RESULT, PDNS_QUERY_CANCEL)
|
||||
DnsQueryExParams = ((1, 'pQueryRequest'), (1, 'pQueryResults'), (1, 'pCancelHandle'))
|
||||
|
||||
#def GetAdaptersInfo(AdapterInfo, SizePointer):
|
||||
# return GetAdaptersInfo.ctypes_function(AdapterInfo, SizePointer)
|
||||
GetAdaptersInfoPrototype = WINFUNCTYPE(ULONG, PIP_ADAPTER_INFO, PULONG)
|
||||
GetAdaptersInfoParams = ((1, 'AdapterInfo'), (1, 'SizePointer'))
|
||||
|
||||
#def GetPerAdapterInfo(IfIndex, pPerAdapterInfo, pOutBufLen):
|
||||
# return GetPerAdapterInfo.ctypes_function(IfIndex, pPerAdapterInfo, pOutBufLen)
|
||||
GetPerAdapterInfoPrototype = WINFUNCTYPE(DWORD, ULONG, PIP_PER_ADAPTER_INFO, PULONG)
|
||||
GetPerAdapterInfoParams = ((1, 'IfIndex'), (1, 'pPerAdapterInfo'), (1, 'pOutBufLen'))
|
||||
|
||||
#def CreateFileTransactedA(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, hTransaction, pusMiniVersion, pExtendedParameter):
|
||||
# return CreateFileTransactedA.ctypes_function(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, hTransaction, pusMiniVersion, pExtendedParameter)
|
||||
CreateFileTransactedAPrototype = WINFUNCTYPE(HANDLE, LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE, HANDLE, PUSHORT, PVOID)
|
||||
@@ -2710,6 +2800,36 @@ GetComputerNameExAParams = ((1, 'NameType'), (1, 'lpBuffer'), (1, 'nSize'))
|
||||
GetComputerNameExWPrototype = WINFUNCTYPE(BOOL, COMPUTER_NAME_FORMAT, LPWSTR, LPDWORD)
|
||||
GetComputerNameExWParams = ((1, 'NameType'), (1, 'lpBuffer'), (1, 'nSize'))
|
||||
|
||||
#def GetComputerNameA(lpBuffer, lpnSize):
|
||||
# return GetComputerNameA.ctypes_function(lpBuffer, lpnSize)
|
||||
GetComputerNameAPrototype = WINFUNCTYPE(BOOL, LPCSTR, LPDWORD)
|
||||
GetComputerNameAParams = ((1, 'lpBuffer'), (1, 'lpnSize'))
|
||||
|
||||
#def GetComputerNameW(lpBuffer, lpnSize):
|
||||
# return GetComputerNameW.ctypes_function(lpBuffer, lpnSize)
|
||||
GetComputerNameWPrototype = WINFUNCTYPE(BOOL, LPWSTR, LPDWORD)
|
||||
GetComputerNameWParams = ((1, 'lpBuffer'), (1, 'lpnSize'))
|
||||
|
||||
#def LookupAccountSidA(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse):
|
||||
# return LookupAccountSidA.ctypes_function(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse)
|
||||
LookupAccountSidAPrototype = WINFUNCTYPE(BOOL, LPCSTR, PSID, LPCSTR, LPDWORD, LPCSTR, LPDWORD, PSID_NAME_USE)
|
||||
LookupAccountSidAParams = ((1, 'lpSystemName'), (1, 'lpSid'), (1, 'lpName'), (1, 'cchName'), (1, 'lpReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse'))
|
||||
|
||||
#def LookupAccountSidW(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse):
|
||||
# return LookupAccountSidW.ctypes_function(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse)
|
||||
LookupAccountSidWPrototype = WINFUNCTYPE(BOOL, LPWSTR, PSID, LPWSTR, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE)
|
||||
LookupAccountSidWParams = ((1, 'lpSystemName'), (1, 'lpSid'), (1, 'lpName'), (1, 'cchName'), (1, 'lpReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse'))
|
||||
|
||||
#def LookupAccountNameA(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse):
|
||||
# return LookupAccountNameA.ctypes_function(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse)
|
||||
LookupAccountNameAPrototype = WINFUNCTYPE(BOOL, LPCSTR, LPCSTR, PSID, LPDWORD, LPSTR, LPDWORD, PSID_NAME_USE)
|
||||
LookupAccountNameAParams = ((1, 'lpSystemName'), (1, 'lpAccountName'), (1, 'Sid'), (1, 'cbSid'), (1, 'ReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse'))
|
||||
|
||||
#def LookupAccountNameW(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse):
|
||||
# return LookupAccountNameW.ctypes_function(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse)
|
||||
LookupAccountNameWPrototype = WINFUNCTYPE(BOOL, LPCWSTR, LPCWSTR, PSID, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE)
|
||||
LookupAccountNameWParams = ((1, 'lpSystemName'), (1, 'lpAccountName'), (1, 'Sid'), (1, 'cbSid'), (1, 'ReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse'))
|
||||
|
||||
#def FileTimeToSystemTime(lpFileTime, lpSystemTime):
|
||||
# return FileTimeToSystemTime.ctypes_function(lpFileTime, lpSystemTime)
|
||||
FileTimeToSystemTimePrototype = WINFUNCTYPE(BOOL, POINTER(FILETIME), LPSYSTEMTIME)
|
||||
@@ -3695,36 +3815,6 @@ GetProcessImageFileNameWParams = ((1, 'hProcess'), (1, 'lpImageFileName'), (1, '
|
||||
GetSystemMetricsPrototype = WINFUNCTYPE(INT, INT)
|
||||
GetSystemMetricsParams = ((1, 'nIndex'),)
|
||||
|
||||
#def GetComputerNameA(lpBuffer, lpnSize):
|
||||
# return GetComputerNameA.ctypes_function(lpBuffer, lpnSize)
|
||||
GetComputerNameAPrototype = WINFUNCTYPE(BOOL, LPCSTR, LPDWORD)
|
||||
GetComputerNameAParams = ((1, 'lpBuffer'), (1, 'lpnSize'))
|
||||
|
||||
#def GetComputerNameW(lpBuffer, lpnSize):
|
||||
# return GetComputerNameW.ctypes_function(lpBuffer, lpnSize)
|
||||
GetComputerNameWPrototype = WINFUNCTYPE(BOOL, LPWSTR, LPDWORD)
|
||||
GetComputerNameWParams = ((1, 'lpBuffer'), (1, 'lpnSize'))
|
||||
|
||||
#def LookupAccountSidA(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse):
|
||||
# return LookupAccountSidA.ctypes_function(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse)
|
||||
LookupAccountSidAPrototype = WINFUNCTYPE(BOOL, LPCSTR, PSID, LPCSTR, LPDWORD, LPCSTR, LPDWORD, PSID_NAME_USE)
|
||||
LookupAccountSidAParams = ((1, 'lpSystemName'), (1, 'lpSid'), (1, 'lpName'), (1, 'cchName'), (1, 'lpReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse'))
|
||||
|
||||
#def LookupAccountSidW(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse):
|
||||
# return LookupAccountSidW.ctypes_function(lpSystemName, lpSid, lpName, cchName, lpReferencedDomainName, cchReferencedDomainName, peUse)
|
||||
LookupAccountSidWPrototype = WINFUNCTYPE(BOOL, LPWSTR, PSID, LPWSTR, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE)
|
||||
LookupAccountSidWParams = ((1, 'lpSystemName'), (1, 'lpSid'), (1, 'lpName'), (1, 'cchName'), (1, 'lpReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse'))
|
||||
|
||||
#def LookupAccountNameA(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse):
|
||||
# return LookupAccountNameA.ctypes_function(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse)
|
||||
LookupAccountNameAPrototype = WINFUNCTYPE(BOOL, LPCSTR, LPCSTR, PSID, LPDWORD, LPSTR, LPDWORD, PSID_NAME_USE)
|
||||
LookupAccountNameAParams = ((1, 'lpSystemName'), (1, 'lpAccountName'), (1, 'Sid'), (1, 'cbSid'), (1, 'ReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse'))
|
||||
|
||||
#def LookupAccountNameW(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse):
|
||||
# return LookupAccountNameW.ctypes_function(lpSystemName, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse)
|
||||
LookupAccountNameWPrototype = WINFUNCTYPE(BOOL, LPCWSTR, LPCWSTR, PSID, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE)
|
||||
LookupAccountNameWParams = ((1, 'lpSystemName'), (1, 'lpAccountName'), (1, 'Sid'), (1, 'cbSid'), (1, 'ReferencedDomainName'), (1, 'cchReferencedDomainName'), (1, 'peUse'))
|
||||
|
||||
#def GetInterfaceInfo(pIfTable, dwOutBufLen):
|
||||
# return GetInterfaceInfo.ctypes_function(pIfTable, dwOutBufLen)
|
||||
GetInterfaceInfoPrototype = WINFUNCTYPE(DWORD, PIP_INTERFACE_INFO, PULONG)
|
||||
|
||||
@@ -960,6 +960,7 @@ class tagSAFEARRAY(Structure):
|
||||
("rgsabound", SAFEARRAYBOUND * (1)),
|
||||
]
|
||||
SAFEARRAY = tagSAFEARRAY
|
||||
LPSAFEARRAY = POINTER(tagSAFEARRAY)
|
||||
|
||||
class __tagBRECORD(Structure):
|
||||
_fields_ = [
|
||||
@@ -2393,6 +2394,62 @@ class _DNS_QUERY_RESULT(Structure):
|
||||
DNS_QUERY_RESULT = _DNS_QUERY_RESULT
|
||||
PDNS_QUERY_RESULT = POINTER(_DNS_QUERY_RESULT)
|
||||
|
||||
class IP_ADDRESS_STRING(Structure):
|
||||
_fields_ = [
|
||||
("String", CHAR * (4 * 4)),
|
||||
]
|
||||
IP_MASK_STRING = IP_ADDRESS_STRING
|
||||
PIP_MASK_STRING = POINTER(IP_ADDRESS_STRING)
|
||||
PIP_ADDRESS_STRING = POINTER(IP_ADDRESS_STRING)
|
||||
|
||||
# Self referencing struct tricks
|
||||
class _IP_ADDR_STRING(Structure): pass
|
||||
PIP_ADDR_STRING = POINTER(_IP_ADDR_STRING)
|
||||
IP_ADDR_STRING = _IP_ADDR_STRING
|
||||
_IP_ADDR_STRING._fields_ = [
|
||||
("Next", POINTER(_IP_ADDR_STRING)),
|
||||
("IpAddress", IP_ADDRESS_STRING),
|
||||
("IpMask", IP_MASK_STRING),
|
||||
("Context", DWORD),
|
||||
]
|
||||
|
||||
# Self referencing struct tricks
|
||||
class _IP_ADAPTER_INFO(Structure): pass
|
||||
IP_ADAPTER_INFO = _IP_ADAPTER_INFO
|
||||
PIP_ADAPTER_INFO = POINTER(_IP_ADAPTER_INFO)
|
||||
_IP_ADAPTER_INFO._fields_ = [
|
||||
("Next", POINTER(_IP_ADAPTER_INFO)),
|
||||
("ComboIndex", DWORD),
|
||||
("AdapterName", CHAR * (MAX_ADAPTER_NAME_LENGTH + 4)),
|
||||
("Description", CHAR * (MAX_ADAPTER_DESCRIPTION_LENGTH + 4)),
|
||||
("AddressLength", UINT),
|
||||
("Address", BYTE * (MAX_ADAPTER_ADDRESS_LENGTH)),
|
||||
("Index", DWORD),
|
||||
("Type", UINT),
|
||||
("DhcpEnabled", UINT),
|
||||
("CurrentIpAddress", PIP_ADDR_STRING),
|
||||
("IpAddressList", IP_ADDR_STRING),
|
||||
("GatewayList", IP_ADDR_STRING),
|
||||
("DhcpServer", IP_ADDR_STRING),
|
||||
("HaveWins", BOOL),
|
||||
("PrimaryWinsServer", IP_ADDR_STRING),
|
||||
("SecondaryWinsServer", IP_ADDR_STRING),
|
||||
("LeaseObtained", ULONGLONG),
|
||||
("LeaseExpires", ULONGLONG),
|
||||
]
|
||||
|
||||
class _IP_PER_ADAPTER_INFO_W2KSP1(Structure):
|
||||
_fields_ = [
|
||||
("AutoconfigEnabled", UINT),
|
||||
("AutoconfigActive", UINT),
|
||||
("CurrentDnsServer", PIP_ADDR_STRING),
|
||||
("DnsServerList", IP_ADDR_STRING),
|
||||
]
|
||||
PIP_PER_ADAPTER_INFO = POINTER(_IP_PER_ADAPTER_INFO_W2KSP1)
|
||||
IP_PER_ADAPTER_INFO = _IP_PER_ADAPTER_INFO_W2KSP1
|
||||
PIP_PER_ADAPTER_INFO_W2KSP1 = POINTER(_IP_PER_ADAPTER_INFO_W2KSP1)
|
||||
IP_PER_ADAPTER_INFO_W2KSP1 = _IP_PER_ADAPTER_INFO_W2KSP1
|
||||
|
||||
KeyValueBasicInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueBasicInformation", 0x0)
|
||||
KeyValueFullInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueFullInformation", 0x1)
|
||||
KeyValuePartialInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValuePartialInformation", 0x2)
|
||||
@@ -8867,6 +8924,37 @@ class _FILE_NOTIFY_EXTENDED_INFORMATION(Structure):
|
||||
PFILE_NOTIFY_EXTENDED_INFORMATION = POINTER(_FILE_NOTIFY_EXTENDED_INFORMATION)
|
||||
FILE_NOTIFY_EXTENDED_INFORMATION = _FILE_NOTIFY_EXTENDED_INFORMATION
|
||||
|
||||
class _ANON__FILE_RENAME_INFORMATION_SUB_UNION_1(Union):
|
||||
_fields_ = [
|
||||
("ReplaceIfExists", BOOLEAN),
|
||||
("Flags", ULONG),
|
||||
]
|
||||
|
||||
class _FILE_RENAME_INFORMATION(Structure):
|
||||
_anonymous_ = ("__ANON_DUMMYUNIONNAME_FILE_RENAME_INFORMATION",)
|
||||
_fields_ = [
|
||||
("__ANON_DUMMYUNIONNAME_FILE_RENAME_INFORMATION", _ANON__FILE_RENAME_INFORMATION_SUB_UNION_1),
|
||||
("RootDirectory", HANDLE),
|
||||
("FileNameLength", ULONG),
|
||||
("FileName", WCHAR * (1)),
|
||||
]
|
||||
FILE_RENAME_INFORMATION = _FILE_RENAME_INFORMATION
|
||||
PFILE_RENAME_INFORMATION = POINTER(_FILE_RENAME_INFORMATION)
|
||||
|
||||
INITIAL_FILE_RENAME_INFORMATION = _FILE_RENAME_INFORMATION
|
||||
|
||||
class _FILE_RENAME_INFORMATION(INITIAL_FILE_RENAME_INFORMATION):
|
||||
@property
|
||||
def filename(self):
|
||||
filename_addr = ctypes.addressof(self) + type(self).FileName.offset
|
||||
if getattr(self, "_target", None) is not None: #remote ctypes :D -> TRICKS OF THE YEAR
|
||||
raw_data = self._target.read_memory(filename_addr, self.FileNameLength)
|
||||
return raw_data.decode("utf16")
|
||||
size = int(self.FileNameLength / 2)
|
||||
return (ctypes.c_wchar * size).from_address(filename_addr)[:]
|
||||
|
||||
FILE_RENAME_INFORMATION = _FILE_RENAME_INFORMATION
|
||||
PFILE_RENAME_INFORMATION = POINTER(_FILE_RENAME_INFORMATION)
|
||||
PolicyAuditLogInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyAuditLogInformation", 0x1)
|
||||
PolicyAuditEventsInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyAuditEventsInformation", 0x2)
|
||||
PolicyPrimaryDomainInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyPrimaryDomainInformation", 0x3)
|
||||
|
||||
@@ -9,6 +9,7 @@ from .kernel32 import *
|
||||
from .ktmw32 import *
|
||||
from .ntdll import *
|
||||
from .ole32 import *
|
||||
from .oleaut32 import *
|
||||
from .oleacc import *
|
||||
from .psapi import *
|
||||
from .setupapi import *
|
||||
|
||||
@@ -36,4 +36,12 @@ def GetIpAddrTable(pIpAddrTable, pdwSize, bOrder=False):
|
||||
|
||||
@IphlpapiProxy()
|
||||
def GetIpNetTable(IpNetTable, SizePointer, Order):
|
||||
return GetIpNetTable.ctypes_function(IpNetTable, SizePointer, Order)
|
||||
return GetIpNetTable.ctypes_function(IpNetTable, SizePointer, Order)
|
||||
|
||||
@IphlpapiProxy()
|
||||
def GetAdaptersInfo(AdapterInfo, SizePointer):
|
||||
return GetAdaptersInfo.ctypes_function(AdapterInfo, SizePointer)
|
||||
|
||||
@IphlpapiProxy()
|
||||
def GetPerAdapterInfo(IfIndex, pPerAdapterInfo, pOutBufLen):
|
||||
return GetPerAdapterInfo.ctypes_function(IfIndex, pPerAdapterInfo, pOutBufLen)
|
||||
@@ -0,0 +1,43 @@
|
||||
import ctypes
|
||||
import windows.generated_def as gdef
|
||||
|
||||
from ..apiproxy import ApiProxy, NeededParameter
|
||||
from ..error import no_error_check, fail_on_zero, succeed_on_zero
|
||||
|
||||
# IMPORTANT:
|
||||
# Functions that returns HRESULT (like CoInitializeEx) will raise if HRESULT is an error
|
||||
# even if there is no error check on the return value
|
||||
|
||||
class Ole32Proxy(ApiProxy):
|
||||
APIDLL = "oleaut32"
|
||||
default_error_check = staticmethod(no_error_check)
|
||||
|
||||
|
||||
@Ole32Proxy()
|
||||
def SysAllocString(psz):
|
||||
return SysAllocString.ctypes_function(psz)
|
||||
|
||||
|
||||
@Ole32Proxy()
|
||||
def SysFreeString(bstrString):
|
||||
return SysFreeString.ctypes_function(bstrString)
|
||||
|
||||
@Ole32Proxy(error_check=fail_on_zero)
|
||||
def SafeArrayCreate(vt, cDims, rgsabound):
|
||||
return SafeArrayCreate.ctypes_function(vt, cDims, rgsabound)
|
||||
|
||||
|
||||
@Ole32Proxy(error_check=succeed_on_zero)
|
||||
def SafeArrayDestroy(psa):
|
||||
return SafeArrayDestroy.ctypes_function(psa)
|
||||
|
||||
|
||||
@Ole32Proxy(error_check=succeed_on_zero)
|
||||
def SafeArrayPutElement(psa, rgIndices, pv):
|
||||
return SafeArrayPutElement.ctypes_function(psa, rgIndices, pv)
|
||||
|
||||
|
||||
@Ole32Proxy(error_check=succeed_on_zero)
|
||||
def SafeArrayGetElement(psa, rgIndices, pv):
|
||||
return SafeArrayGetElement.ctypes_function(psa, rgIndices, pv)
|
||||
|
||||
Reference in New Issue
Block a user