Added multiple genereted_def + fixed winproxy CreateFileW

This commit is contained in:
clement rouault
2021-10-19 15:42:48 +02:00
parent 1ad2ecba0d
commit df44d38356
18 changed files with 691 additions and 108 deletions
@@ -0,0 +1,72 @@
#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001 // winnt
#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002 // winnt
#define FILE_NOTIFY_CHANGE_NAME 0x00000003
#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004 // winnt
#define FILE_NOTIFY_CHANGE_SIZE 0x00000008 // winnt
#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010 // winnt
#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020 // winnt
#define FILE_NOTIFY_CHANGE_CREATION 0x00000040 // winnt
#define FILE_NOTIFY_CHANGE_EA 0x00000080
#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100 // winnt
#define FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200
#define FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400
#define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
#define FILE_NOTIFY_VALID_MASK 0x00000fff
#define FILE_ACTION_ADDED 0x00000001 // winnt
#define FILE_ACTION_REMOVED 0x00000002 // winnt
#define FILE_ACTION_MODIFIED 0x00000003 // winnt
#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004 // winnt
#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005 // winnt
#define FILE_ACTION_ADDED_STREAM 0x00000006
#define FILE_ACTION_REMOVED_STREAM 0x00000007
#define FILE_ACTION_MODIFIED_STREAM 0x00000008
#define FILE_ACTION_REMOVED_BY_DELETE 0x00000009
#define FILE_ACTION_ID_NOT_TUNNELLED 0x0000000A
#define FILE_ACTION_TUNNELLED_ID_COLLISION 0x0000000B
#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
#define FILE_CASE_PRESERVED_NAMES 0x00000002
#define FILE_UNICODE_ON_DISK 0x00000004
#define FILE_PERSISTENT_ACLS 0x00000008
#define FILE_FILE_COMPRESSION 0x00000010
#define FILE_VOLUME_QUOTAS 0x00000020
#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
#define FILE_VOLUME_IS_COMPRESSED 0x00008000
#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
#define FILE_SUPPORTS_ENCRYPTION 0x00020000
#define FILE_NAMED_STREAMS 0x00040000
#define FILE_READ_ONLY_VOLUME 0x00080000
#define FILE_SEQUENTIAL_WRITE_ONCE 0x00100000
#define FILE_SUPPORTS_TRANSACTIONS 0x00200000
#define FILE_SUPPORTS_HARD_LINKS 0x00400000
#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000
#define FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000
#define FILE_SUPPORTS_USN_JOURNAL 0x02000000
#define FILE_SHARE_READ 0x00000001
#define FILE_SHARE_WRITE 0x00000002
#define FILE_SHARE_DELETE 0x00000004
#define FILE_ATTRIBUTE_READONLY 0x00000001
#define FILE_ATTRIBUTE_HIDDEN 0x00000002
#define FILE_ATTRIBUTE_SYSTEM 0x00000004
#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
#define FILE_ATTRIBUTE_ARCHIVE 0x00000020
#define FILE_ATTRIBUTE_DEVICE 0x00000040
#define FILE_ATTRIBUTE_NORMAL 0x00000080
#define FILE_ATTRIBUTE_TEMPORARY 0x00000100
#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
#define FILE_ATTRIBUTE_COMPRESSED 0x00000800
#define FILE_ATTRIBUTE_OFFLINE 0x00001000
#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
#define FILE_ATTRIBUTE_VIRTUAL 0x00010000
@@ -8,6 +8,8 @@
#define DNS_ATMA_MAX_ADDR_LENGTH ATM_ADDR_SIZE
#define DNS_ADDR_MAX_SOCKADDR_LENGTH (32)
#define DNS_TYPE_ZERO 0x0000
// RFC 1034/1035
@@ -263,59 +263,11 @@
#define TRUNCATE_EXISTING 5
#define FILE_SHARE_READ 0x00000001
#define FILE_SHARE_WRITE 0x00000002
#define FILE_SHARE_DELETE 0x00000004
#define FILE_ATTRIBUTE_READONLY 0x00000001
#define FILE_ATTRIBUTE_HIDDEN 0x00000002
#define FILE_ATTRIBUTE_SYSTEM 0x00000004
#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
#define FILE_ATTRIBUTE_ARCHIVE 0x00000020
#define FILE_ATTRIBUTE_DEVICE 0x00000040
#define FILE_ATTRIBUTE_NORMAL 0x00000080
#define FILE_ATTRIBUTE_TEMPORARY 0x00000100
#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
#define FILE_ATTRIBUTE_COMPRESSED 0x00000800
#define FILE_ATTRIBUTE_OFFLINE 0x00001000
#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
#define FILE_ATTRIBUTE_VIRTUAL 0x00010000
#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001
#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002
#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004
#define FILE_NOTIFY_CHANGE_SIZE 0x00000008
#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010
#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020
#define FILE_NOTIFY_CHANGE_CREATION 0x00000040
#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100
#define FILE_ACTION_ADDED 0x00000001
#define FILE_ACTION_REMOVED 0x00000002
#define FILE_ACTION_MODIFIED 0x00000003
#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004
#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005
#define MAILSLOT_NO_MESSAGE (-1)
#define MAILSLOT_WAIT_FOREVER (-1)
#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
#define FILE_CASE_PRESERVED_NAMES 0x00000002
#define FILE_UNICODE_ON_DISK 0x00000004
#define FILE_PERSISTENT_ACLS 0x00000008
#define FILE_FILE_COMPRESSION 0x00000010
#define FILE_VOLUME_QUOTAS 0x00000020
#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
#define FILE_VOLUME_IS_COMPRESSED 0x00008000
#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
#define FILE_SUPPORTS_ENCRYPTION 0x00020000
#define FILE_NAMED_STREAMS 0x00040000
#define FILE_READ_ONLY_VOLUME 0x00080000
#define FILE_SEQUENTIAL_WRITE_ONCE 0x00100000
#define FILE_SUPPORTS_TRANSACTIONS 0x00200000
#define FILE_SUPPORTS_HARD_LINKS 0x00400000
#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000
#define FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000
#define FILE_SUPPORTS_USN_JOURNAL 0x02000000
#define RRF_RT_REG_NONE 0x00000001
@@ -23,4 +23,51 @@ BOOL FindNextFileW(
BOOL FindClose(
HANDLE hFindFile
);
HANDLE FindFirstChangeNotificationA(
LPCSTR lpPathName,
BOOL bWatchSubtree,
DWORD dwNotifyFilter
);
HANDLE FindFirstChangeNotificationW(
LPCWSTR lpPathName,
BOOL bWatchSubtree,
DWORD dwNotifyFilter
);
BOOL FindNextChangeNotification(
HANDLE hChangeHandle
);
BOOL FindCloseChangeNotification(
HANDLE hChangeHandle
);
BOOL FindNextChangeNotification(
HANDLE hChangeHandle
);
BOOL ReadDirectoryChangesW(
HANDLE hDirectory,
LPVOID lpBuffer,
DWORD nBufferLength,
BOOL bWatchSubtree,
DWORD dwNotifyFilter,
LPDWORD lpBytesReturned,
LPOVERLAPPED lpOverlapped,
LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
BOOL ReadDirectoryChangesExW(
HANDLE hDirectory,
LPVOID lpBuffer,
DWORD nBufferLength,
BOOL bWatchSubtree,
DWORD dwNotifyFilter,
LPDWORD lpBytesReturned,
LPOVERLAPPED lpOverlapped,
LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
READ_DIRECTORY_NOTIFY_INFORMATION_CLASS ReadDirectoryNotifyInformationClass
);
@@ -172,4 +172,82 @@ BOOL HttpSendRequestW(
DWORD dwHeadersLength,
LPVOID lpOptional,
DWORD dwOptionalLength
);
);
/// WinHTTP
HINTERNET WinHttpOpen(
LPCWSTR pszAgentW,
DWORD dwAccessType,
LPCWSTR pszProxyW,
LPCWSTR pszProxyBypassW,
DWORD dwFlags
);
BOOL WinHttpCloseHandle(
HINTERNET hInternet
);
HINTERNET WinHttpConnect(
HINTERNET hSession,
LPCWSTR pswzServerName,
INTERNET_PORT nServerPort,
DWORD dwReserved
);
BOOL WinHttpQueryDataAvailable(
HINTERNET hRequest,
LPDWORD lpdwNumberOfBytesAvailable
);
BOOL WinHttpReadData(
HINTERNET hRequest,
LPVOID lpBuffer,
DWORD dwNumberOfBytesToRead,
LPDWORD lpdwNumberOfBytesRead
);
HINTERNET WinHttpOpenRequest(
HINTERNET hConnect,
LPCWSTR pwszVerb,
LPCWSTR pwszObjectName,
LPCWSTR pwszVersion,
LPCWSTR pwszReferrer,
LPCWSTR *ppwszAcceptTypes,
DWORD dwFlags
);
BOOL WinHttpSendRequest(
HINTERNET hRequest,
LPCWSTR lpszHeaders,
DWORD dwHeadersLength,
LPVOID lpOptional,
DWORD dwOptionalLength,
DWORD dwTotalLength,
DWORD_PTR dwContext
);
BOOL WinHttpReceiveResponse(
HINTERNET hRequest,
LPVOID lpReserved
);
BOOL WinHttpAddRequestHeaders(
HINTERNET hRequest,
LPCWSTR lpszHeaders,
DWORD dwHeadersLength,
DWORD dwModifiers
);
BOOL WinHttpQueryHeaders(
HINTERNET hRequest,
DWORD dwInfoLevel,
LPCWSTR pwszName,
LPVOID lpBuffer,
LPDWORD lpdwBufferLength,
LPDWORD lpdwIndex
);
@@ -59,4 +59,11 @@ DNS_STATUS DnsQuery_W(
// PVOID pExtra,
// PDNS_RECORD *ppQueryResults,
// PVOID *pReserved
// );
// );
DNS_STATUS DnsQueryEx(
PDNS_QUERY_REQUEST pQueryRequest,
PDNS_QUERY_RESULT pQueryResults,
PDNS_QUERY_CANCEL pCancelHandle
);
@@ -238,6 +238,8 @@ ENUMRESTYPEPROCA = PVOID # Resources
ENUMRESTYPEPROCW = PVOID # Resources
LPSERVICE_MAIN_FUNCTIONA = PVOID
LPSERVICE_MAIN_FUNCTIONW = PVOID
LPOVERLAPPED_COMPLETION_ROUTINE = PVOID
PDNS_QUERY_COMPLETION_ROUTINE = PVOID
// Will be changed at import time
@@ -253,4 +253,34 @@ typedef struct _WIN32_FIND_DATAW {
DWORD dwFileType;
DWORD dwCreatorType;
WORD wFinderFlags;
} WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
} WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
typedef enum _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS {
ReadDirectoryNotifyInformation,
ReadDirectoryNotifyExtendedInformation
} READ_DIRECTORY_NOTIFY_INFORMATION_CLASS, *PREAD_DIRECTORY_NOTIFY_INFORMATION_CLASS;
typedef struct _FILE_NOTIFY_INFORMATION {
DWORD NextEntryOffset;
DWORD Action;
DWORD FileNameLength;
WCHAR FileName[1];
} FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_INFORMATION;
typedef struct _FILE_NOTIFY_EXTENDED_INFORMATION {
DWORD NextEntryOffset;
DWORD Action;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastModificationTime;
LARGE_INTEGER LastChangeTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER AllocatedLength;
LARGE_INTEGER FileSize;
DWORD FileAttributes;
DWORD ReparsePointTag;
LARGE_INTEGER FileId;
LARGE_INTEGER ParentFileId;
DWORD FileNameLength;
WCHAR FileName[1];
} FILE_NOTIFY_EXTENDED_INFORMATION, *PFILE_NOTIFY_EXTENDED_INFORMATION;
@@ -22,4 +22,5 @@ typedef struct _INTERNET_BUFFERSW {
DWORD dwBufferTotal;
DWORD dwOffsetLow;
DWORD dwOffsetHigh;
} INTERNET_BUFFERSW, *LPINTERNET_BUFFERSW;
} INTERNET_BUFFERSW, *LPINTERNET_BUFFERSW;
@@ -818,4 +818,56 @@ typedef struct _DnsRecordW {
DNS_UNKNOWN_DATA Unknown;
PBYTE pDataPtr;
} Data;
} DNS_RECORDW, *PDNS_RECORDW;
} DNS_RECORDW, *PDNS_RECORDW;
typedef struct _DnsAddr
{
CHAR MaxSa[ DNS_ADDR_MAX_SOCKADDR_LENGTH ];
DWORD DnsAddrUserDword[ 8 ];
}
DNS_ADDR, *PDNS_ADDR;
typedef struct _DnsAddrArray
{
DWORD MaxCount;
DWORD AddrCount;
DWORD Tag;
WORD Family;
WORD WordReserved;
DWORD Flags;
DWORD MatchFlag;
DWORD Reserved1;
DWORD Reserved2;
DNS_ADDR AddrArray[ANY_SIZE];
}
DNS_ADDR_ARRAY, *PDNS_ADDR_ARRAY;
typedef struct _DNS_QUERY_REQUEST
{
ULONG Version;
PCWSTR QueryName;
WORD QueryType;
ULONG64 QueryOptions;
PDNS_ADDR_ARRAY pDnsServerList;
ULONG InterfaceIndex;
PDNS_QUERY_COMPLETION_ROUTINE pQueryCompletionCallback;
PVOID pQueryContext;
} DNS_QUERY_REQUEST, *PDNS_QUERY_REQUEST;
typedef struct _DNS_QUERY_CANCEL
{
CHAR Reserved[32];
} DNS_QUERY_CANCEL, *PDNS_QUERY_CANCEL;
typedef struct _DNS_QUERY_RESULT
{
ULONG Version;
DNS_STATUS QueryStatus;
ULONG64 QueryOptions;
// 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;
+54
View File
@@ -833,6 +833,7 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
'DIRECTORY_CREATE_SUBDIRECTORY',
'DIRECTORY_QUERY',
'DIRECTORY_TRAVERSE',
'DNS_ADDR_MAX_SOCKADDR_LENGTH',
'DNS_ATMA_FORMAT_AESA',
'DNS_ATMA_FORMAT_E164',
'DNS_ATMA_MAX_ADDR_LENGTH',
@@ -1164,10 +1165,16 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
'FC_POINTER_DEREF',
'FC_SIMPLE_POINTER',
'FILE_ACTION_ADDED',
'FILE_ACTION_ADDED_STREAM',
'FILE_ACTION_ID_NOT_TUNNELLED',
'FILE_ACTION_MODIFIED',
'FILE_ACTION_MODIFIED_STREAM',
'FILE_ACTION_REMOVED',
'FILE_ACTION_REMOVED_BY_DELETE',
'FILE_ACTION_REMOVED_STREAM',
'FILE_ACTION_RENAMED_NEW_NAME',
'FILE_ACTION_RENAMED_OLD_NAME',
'FILE_ACTION_TUNNELLED_ID_COLLISION',
'FILE_ADD_FILE',
'FILE_ADD_SUBDIRECTORY',
'FILE_ALL_ACCESS',
@@ -1285,11 +1292,17 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
'FILE_NOTIFY_CHANGE_ATTRIBUTES',
'FILE_NOTIFY_CHANGE_CREATION',
'FILE_NOTIFY_CHANGE_DIR_NAME',
'FILE_NOTIFY_CHANGE_EA',
'FILE_NOTIFY_CHANGE_FILE_NAME',
'FILE_NOTIFY_CHANGE_LAST_ACCESS',
'FILE_NOTIFY_CHANGE_LAST_WRITE',
'FILE_NOTIFY_CHANGE_NAME',
'FILE_NOTIFY_CHANGE_SECURITY',
'FILE_NOTIFY_CHANGE_SIZE',
'FILE_NOTIFY_CHANGE_STREAM_NAME',
'FILE_NOTIFY_CHANGE_STREAM_SIZE',
'FILE_NOTIFY_CHANGE_STREAM_WRITE',
'FILE_NOTIFY_VALID_MASK',
'FILE_NO_COMPRESSION',
'FILE_NO_EA_KNOWLEDGE',
'FILE_NO_INTERMEDIATE_BUFFERING',
@@ -11620,6 +11633,8 @@ structs = set(['ACCESS_ALLOWED_ACE',
'DMA_Range_s',
'DMA_Resource_s',
'DNS_AAAA_DATA',
'DNS_ADDR',
'DNS_ADDR_ARRAY',
'DNS_ATMA_DATA',
'DNS_A_DATA',
'DNS_CACHE_ENTRY',
@@ -11644,6 +11659,9 @@ structs = set(['ACCESS_ALLOWED_ACE',
'DNS_OPT_DATA',
'DNS_PTR_DATAA',
'DNS_PTR_DATAW',
'DNS_QUERY_CANCEL',
'DNS_QUERY_REQUEST',
'DNS_QUERY_RESULT',
'DNS_RECORDA',
'DNS_RECORDW',
'DNS_RECORD_FLAGS',
@@ -11727,6 +11745,8 @@ structs = set(['ACCESS_ALLOWED_ACE',
'FILE_MODE_INFORMATION',
'FILE_NAME_INFORMATION',
'FILE_NETWORK_OPEN_INFORMATION',
'FILE_NOTIFY_EXTENDED_INFORMATION',
'FILE_NOTIFY_INFORMATION',
'FILE_POSITION_INFORMATION',
'FILE_STANDARD_INFORMATION',
'FILE_STREAM_INFORMATION',
@@ -12111,6 +12131,8 @@ structs = set(['ACCESS_ALLOWED_ACE',
'PDMA_RANGE',
'PDMA_RESOURCE',
'PDNS_AAAA_DATA',
'PDNS_ADDR',
'PDNS_ADDR_ARRAY',
'PDNS_ATMA_DATA',
'PDNS_A_DATA',
'PDNS_CACHE_ENTRY',
@@ -12135,6 +12157,9 @@ structs = set(['ACCESS_ALLOWED_ACE',
'PDNS_OPT_DATA',
'PDNS_PTR_DATAA',
'PDNS_PTR_DATAW',
'PDNS_QUERY_CANCEL',
'PDNS_QUERY_REQUEST',
'PDNS_QUERY_RESULT',
'PDNS_RECORDA',
'PDNS_RECORDW',
'PDNS_RRSIG_DATAA',
@@ -12208,6 +12233,8 @@ structs = set(['ACCESS_ALLOWED_ACE',
'PFILE_MODE_INFORMATION',
'PFILE_NAME_INFORMATION',
'PFILE_NETWORK_OPEN_INFORMATION',
'PFILE_NOTIFY_EXTENDED_INFORMATION',
'PFILE_NOTIFY_INFORMATION',
'PFILE_POSITION_INFORMATION',
'PFILE_STANDARD_INFORMATION',
'PFILE_STREAM_INFORMATION',
@@ -12827,6 +12854,11 @@ structs = set(['ACCESS_ALLOWED_ACE',
'_DEBUG_VALUE_TMP_SUBSTRUCT3',
'_DEBUG_VALUE_TMP_UNION',
'_DNS_CACHE_ENTRY',
'_DNS_QUERY_CANCEL',
'_DNS_QUERY_REQUEST',
'_DNS_QUERY_RESULT',
'_DnsAddr',
'_DnsAddrArray',
'_DnsRecordA',
'_DnsRecordFlags',
'_DnsRecordW',
@@ -12887,6 +12919,8 @@ structs = set(['ACCESS_ALLOWED_ACE',
'_FILE_MODE_INFORMATION',
'_FILE_NAME_INFORMATION',
'_FILE_NETWORK_OPEN_INFORMATION',
'_FILE_NOTIFY_EXTENDED_INFORMATION',
'_FILE_NOTIFY_INFORMATION',
'_FILE_POSITION_INFORMATION',
'_FILE_STANDARD_INFORMATION',
'_FILE_STREAM_INFORMATION',
@@ -13273,6 +13307,7 @@ enums = set(['ACCESS_MODE',
'PPOLICY_INFORMATION_CLASS',
'PPOLICY_LSA_SERVER_ROLE',
'PPROCESS_MITIGATION_POLICY',
'PREAD_DIRECTORY_NOTIFY_INFORMATION_CLASS',
'PROCESSINFOCLASS',
'PROCESS_MITIGATION_POLICY',
'PSECURITY_IMPERSONATION_LEVEL',
@@ -13281,6 +13316,7 @@ enums = set(['ACCESS_MODE',
'PTOKEN_ELEVATION_TYPE',
'PTOKEN_INFORMATION_CLASS',
'PTOKEN_TYPE',
'READ_DIRECTORY_NOTIFY_INFORMATION_CLASS',
'RTL_PATH_TYPE',
'SC_ENUM_TYPE',
'SC_STATUS_TYPE',
@@ -13377,6 +13413,7 @@ enums = set(['ACCESS_MODE',
'_POLICY_LSA_SERVER_ROLE',
'_PROCESSINFOCLASS',
'_PROCESS_MITIGATION_POLICY',
'_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS',
'_RTL_PATH_TYPE',
'_SC_ENUM_TYPE',
'_SC_STATUS_TYPE',
@@ -13617,6 +13654,7 @@ functions = set(['AccessCheck',
'DeviceIoControl',
'DnsFree',
'DnsGetCacheDataTable',
'DnsQueryEx',
'DnsQuery_A',
'DnsQuery_W',
'DuplicateHandle',
@@ -13666,10 +13704,14 @@ functions = set(['AccessCheck',
'ExitThread',
'FileTimeToSystemTime',
'FindClose',
'FindCloseChangeNotification',
'FindFirstChangeNotificationA',
'FindFirstChangeNotificationW',
'FindFirstFileA',
'FindFirstFileW',
'FindFirstVolumeA',
'FindFirstVolumeW',
'FindNextChangeNotification',
'FindNextFileA',
'FindNextFileW',
'FindNextVolumeA',
@@ -13974,6 +14016,8 @@ functions = set(['AccessCheck',
'QueryServiceStatusEx',
'QueryWorkingSet',
'QueryWorkingSetEx',
'ReadDirectoryChangesExW',
'ReadDirectoryChangesW',
'ReadEventLogA',
'ReadEventLogW',
'ReadFile',
@@ -14158,6 +14202,16 @@ functions = set(['AccessCheck',
'VirtualQueryEx',
'WaitForDebugEvent',
'WaitForSingleObject',
'WinHttpAddRequestHeaders',
'WinHttpCloseHandle',
'WinHttpConnect',
'WinHttpOpen',
'WinHttpOpenRequest',
'WinHttpQueryDataAvailable',
'WinHttpQueryHeaders',
'WinHttpReadData',
'WinHttpReceiveResponse',
'WinHttpSendRequest',
'WinVerifyTrust',
'WindowFromPoint',
'Wow64DisableWow64FsRedirection',
+64 -51
View File
@@ -548,6 +548,69 @@ EVENT_TRACE_FLAG_NETWORK_TCPIP = make_flag("EVENT_TRACE_FLAG_NETWORK_TCPIP", 0x0
EVENT_TRACE_FLAG_REGISTRY = make_flag("EVENT_TRACE_FLAG_REGISTRY", 0x00020000)
EVENT_TRACE_FLAG_DBGPRINT = make_flag("EVENT_TRACE_FLAG_DBGPRINT", 0x00040000)
EVENT_TRACE_FLAG_VOLMGR = make_flag("EVENT_TRACE_FLAG_VOLMGR", 0x00200000)
FILE_NOTIFY_CHANGE_FILE_NAME = make_flag("FILE_NOTIFY_CHANGE_FILE_NAME", 0x00000001)
FILE_NOTIFY_CHANGE_DIR_NAME = make_flag("FILE_NOTIFY_CHANGE_DIR_NAME", 0x00000002)
FILE_NOTIFY_CHANGE_NAME = make_flag("FILE_NOTIFY_CHANGE_NAME", 0x00000003)
FILE_NOTIFY_CHANGE_ATTRIBUTES = make_flag("FILE_NOTIFY_CHANGE_ATTRIBUTES", 0x00000004)
FILE_NOTIFY_CHANGE_SIZE = make_flag("FILE_NOTIFY_CHANGE_SIZE", 0x00000008)
FILE_NOTIFY_CHANGE_LAST_WRITE = make_flag("FILE_NOTIFY_CHANGE_LAST_WRITE", 0x00000010)
FILE_NOTIFY_CHANGE_LAST_ACCESS = make_flag("FILE_NOTIFY_CHANGE_LAST_ACCESS", 0x00000020)
FILE_NOTIFY_CHANGE_CREATION = make_flag("FILE_NOTIFY_CHANGE_CREATION", 0x00000040)
FILE_NOTIFY_CHANGE_EA = make_flag("FILE_NOTIFY_CHANGE_EA", 0x00000080)
FILE_NOTIFY_CHANGE_SECURITY = make_flag("FILE_NOTIFY_CHANGE_SECURITY", 0x00000100)
FILE_NOTIFY_CHANGE_STREAM_NAME = make_flag("FILE_NOTIFY_CHANGE_STREAM_NAME", 0x00000200)
FILE_NOTIFY_CHANGE_STREAM_SIZE = make_flag("FILE_NOTIFY_CHANGE_STREAM_SIZE", 0x00000400)
FILE_NOTIFY_CHANGE_STREAM_WRITE = make_flag("FILE_NOTIFY_CHANGE_STREAM_WRITE", 0x00000800)
FILE_NOTIFY_VALID_MASK = make_flag("FILE_NOTIFY_VALID_MASK", 0x00000fff)
FILE_ACTION_ADDED = make_flag("FILE_ACTION_ADDED", 0x00000001)
FILE_ACTION_REMOVED = make_flag("FILE_ACTION_REMOVED", 0x00000002)
FILE_ACTION_MODIFIED = make_flag("FILE_ACTION_MODIFIED", 0x00000003)
FILE_ACTION_RENAMED_OLD_NAME = make_flag("FILE_ACTION_RENAMED_OLD_NAME", 0x00000004)
FILE_ACTION_RENAMED_NEW_NAME = make_flag("FILE_ACTION_RENAMED_NEW_NAME", 0x00000005)
FILE_ACTION_ADDED_STREAM = make_flag("FILE_ACTION_ADDED_STREAM", 0x00000006)
FILE_ACTION_REMOVED_STREAM = make_flag("FILE_ACTION_REMOVED_STREAM", 0x00000007)
FILE_ACTION_MODIFIED_STREAM = make_flag("FILE_ACTION_MODIFIED_STREAM", 0x00000008)
FILE_ACTION_REMOVED_BY_DELETE = make_flag("FILE_ACTION_REMOVED_BY_DELETE", 0x00000009)
FILE_ACTION_ID_NOT_TUNNELLED = make_flag("FILE_ACTION_ID_NOT_TUNNELLED", 0x0000000A)
FILE_ACTION_TUNNELLED_ID_COLLISION = make_flag("FILE_ACTION_TUNNELLED_ID_COLLISION", 0x0000000B)
FILE_CASE_SENSITIVE_SEARCH = make_flag("FILE_CASE_SENSITIVE_SEARCH", 0x00000001)
FILE_CASE_PRESERVED_NAMES = make_flag("FILE_CASE_PRESERVED_NAMES", 0x00000002)
FILE_UNICODE_ON_DISK = make_flag("FILE_UNICODE_ON_DISK", 0x00000004)
FILE_PERSISTENT_ACLS = make_flag("FILE_PERSISTENT_ACLS", 0x00000008)
FILE_FILE_COMPRESSION = make_flag("FILE_FILE_COMPRESSION", 0x00000010)
FILE_VOLUME_QUOTAS = make_flag("FILE_VOLUME_QUOTAS", 0x00000020)
FILE_SUPPORTS_SPARSE_FILES = make_flag("FILE_SUPPORTS_SPARSE_FILES", 0x00000040)
FILE_SUPPORTS_REPARSE_POINTS = make_flag("FILE_SUPPORTS_REPARSE_POINTS", 0x00000080)
FILE_SUPPORTS_REMOTE_STORAGE = make_flag("FILE_SUPPORTS_REMOTE_STORAGE", 0x00000100)
FILE_VOLUME_IS_COMPRESSED = make_flag("FILE_VOLUME_IS_COMPRESSED", 0x00008000)
FILE_SUPPORTS_OBJECT_IDS = make_flag("FILE_SUPPORTS_OBJECT_IDS", 0x00010000)
FILE_SUPPORTS_ENCRYPTION = make_flag("FILE_SUPPORTS_ENCRYPTION", 0x00020000)
FILE_NAMED_STREAMS = make_flag("FILE_NAMED_STREAMS", 0x00040000)
FILE_READ_ONLY_VOLUME = make_flag("FILE_READ_ONLY_VOLUME", 0x00080000)
FILE_SEQUENTIAL_WRITE_ONCE = make_flag("FILE_SEQUENTIAL_WRITE_ONCE", 0x00100000)
FILE_SUPPORTS_TRANSACTIONS = make_flag("FILE_SUPPORTS_TRANSACTIONS", 0x00200000)
FILE_SUPPORTS_HARD_LINKS = make_flag("FILE_SUPPORTS_HARD_LINKS", 0x00400000)
FILE_SUPPORTS_EXTENDED_ATTRIBUTES = make_flag("FILE_SUPPORTS_EXTENDED_ATTRIBUTES", 0x00800000)
FILE_SUPPORTS_OPEN_BY_FILE_ID = make_flag("FILE_SUPPORTS_OPEN_BY_FILE_ID", 0x01000000)
FILE_SUPPORTS_USN_JOURNAL = make_flag("FILE_SUPPORTS_USN_JOURNAL", 0x02000000)
FILE_SHARE_READ = make_flag("FILE_SHARE_READ", 0x00000001)
FILE_SHARE_WRITE = make_flag("FILE_SHARE_WRITE", 0x00000002)
FILE_SHARE_DELETE = make_flag("FILE_SHARE_DELETE", 0x00000004)
FILE_ATTRIBUTE_READONLY = make_flag("FILE_ATTRIBUTE_READONLY", 0x00000001)
FILE_ATTRIBUTE_HIDDEN = make_flag("FILE_ATTRIBUTE_HIDDEN", 0x00000002)
FILE_ATTRIBUTE_SYSTEM = make_flag("FILE_ATTRIBUTE_SYSTEM", 0x00000004)
FILE_ATTRIBUTE_DIRECTORY = make_flag("FILE_ATTRIBUTE_DIRECTORY", 0x00000010)
FILE_ATTRIBUTE_ARCHIVE = make_flag("FILE_ATTRIBUTE_ARCHIVE", 0x00000020)
FILE_ATTRIBUTE_DEVICE = make_flag("FILE_ATTRIBUTE_DEVICE", 0x00000040)
FILE_ATTRIBUTE_NORMAL = make_flag("FILE_ATTRIBUTE_NORMAL", 0x00000080)
FILE_ATTRIBUTE_TEMPORARY = make_flag("FILE_ATTRIBUTE_TEMPORARY", 0x00000100)
FILE_ATTRIBUTE_SPARSE_FILE = make_flag("FILE_ATTRIBUTE_SPARSE_FILE", 0x00000200)
FILE_ATTRIBUTE_REPARSE_POINT = make_flag("FILE_ATTRIBUTE_REPARSE_POINT", 0x00000400)
FILE_ATTRIBUTE_COMPRESSED = make_flag("FILE_ATTRIBUTE_COMPRESSED", 0x00000800)
FILE_ATTRIBUTE_OFFLINE = make_flag("FILE_ATTRIBUTE_OFFLINE", 0x00001000)
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = make_flag("FILE_ATTRIBUTE_NOT_CONTENT_INDEXED", 0x00002000)
FILE_ATTRIBUTE_ENCRYPTED = make_flag("FILE_ATTRIBUTE_ENCRYPTED", 0x00004000)
FILE_ATTRIBUTE_VIRTUAL = make_flag("FILE_ATTRIBUTE_VIRTUAL", 0x00010000)
X86_KGDT_NULL = make_flag("X86_KGDT_NULL", 0)
X86_KGDT_R0_CODE = make_flag("X86_KGDT_R0_CODE", 8)
X86_KGDT_R0_DATA = make_flag("X86_KGDT_R0_DATA", 16)
@@ -589,6 +652,7 @@ ATM_ADDR_SIZE = make_flag("ATM_ADDR_SIZE", 20)
DNS_ATMA_FORMAT_E164 = make_flag("DNS_ATMA_FORMAT_E164", ATM_E164)
DNS_ATMA_FORMAT_AESA = make_flag("DNS_ATMA_FORMAT_AESA", ATM_AESA)
DNS_ATMA_MAX_ADDR_LENGTH = make_flag("DNS_ATMA_MAX_ADDR_LENGTH", ATM_ADDR_SIZE)
DNS_ADDR_MAX_SOCKADDR_LENGTH = make_flag("DNS_ADDR_MAX_SOCKADDR_LENGTH", ( 32 ))
DNS_TYPE_ZERO = make_flag("DNS_TYPE_ZERO", 0x0000)
DNS_TYPE_A = make_flag("DNS_TYPE_A", 0x0001)
DNS_TYPE_NS = make_flag("DNS_TYPE_NS", 0x0002)
@@ -1534,59 +1598,8 @@ CREATE_ALWAYS = make_flag("CREATE_ALWAYS", 2)
OPEN_EXISTING = make_flag("OPEN_EXISTING", 3)
OPEN_ALWAYS = make_flag("OPEN_ALWAYS", 4)
TRUNCATE_EXISTING = make_flag("TRUNCATE_EXISTING", 5)
FILE_SHARE_READ = make_flag("FILE_SHARE_READ", 0x00000001)
FILE_SHARE_WRITE = make_flag("FILE_SHARE_WRITE", 0x00000002)
FILE_SHARE_DELETE = make_flag("FILE_SHARE_DELETE", 0x00000004)
FILE_ATTRIBUTE_READONLY = make_flag("FILE_ATTRIBUTE_READONLY", 0x00000001)
FILE_ATTRIBUTE_HIDDEN = make_flag("FILE_ATTRIBUTE_HIDDEN", 0x00000002)
FILE_ATTRIBUTE_SYSTEM = make_flag("FILE_ATTRIBUTE_SYSTEM", 0x00000004)
FILE_ATTRIBUTE_DIRECTORY = make_flag("FILE_ATTRIBUTE_DIRECTORY", 0x00000010)
FILE_ATTRIBUTE_ARCHIVE = make_flag("FILE_ATTRIBUTE_ARCHIVE", 0x00000020)
FILE_ATTRIBUTE_DEVICE = make_flag("FILE_ATTRIBUTE_DEVICE", 0x00000040)
FILE_ATTRIBUTE_NORMAL = make_flag("FILE_ATTRIBUTE_NORMAL", 0x00000080)
FILE_ATTRIBUTE_TEMPORARY = make_flag("FILE_ATTRIBUTE_TEMPORARY", 0x00000100)
FILE_ATTRIBUTE_SPARSE_FILE = make_flag("FILE_ATTRIBUTE_SPARSE_FILE", 0x00000200)
FILE_ATTRIBUTE_REPARSE_POINT = make_flag("FILE_ATTRIBUTE_REPARSE_POINT", 0x00000400)
FILE_ATTRIBUTE_COMPRESSED = make_flag("FILE_ATTRIBUTE_COMPRESSED", 0x00000800)
FILE_ATTRIBUTE_OFFLINE = make_flag("FILE_ATTRIBUTE_OFFLINE", 0x00001000)
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = make_flag("FILE_ATTRIBUTE_NOT_CONTENT_INDEXED", 0x00002000)
FILE_ATTRIBUTE_ENCRYPTED = make_flag("FILE_ATTRIBUTE_ENCRYPTED", 0x00004000)
FILE_ATTRIBUTE_VIRTUAL = make_flag("FILE_ATTRIBUTE_VIRTUAL", 0x00010000)
FILE_NOTIFY_CHANGE_FILE_NAME = make_flag("FILE_NOTIFY_CHANGE_FILE_NAME", 0x00000001)
FILE_NOTIFY_CHANGE_DIR_NAME = make_flag("FILE_NOTIFY_CHANGE_DIR_NAME", 0x00000002)
FILE_NOTIFY_CHANGE_ATTRIBUTES = make_flag("FILE_NOTIFY_CHANGE_ATTRIBUTES", 0x00000004)
FILE_NOTIFY_CHANGE_SIZE = make_flag("FILE_NOTIFY_CHANGE_SIZE", 0x00000008)
FILE_NOTIFY_CHANGE_LAST_WRITE = make_flag("FILE_NOTIFY_CHANGE_LAST_WRITE", 0x00000010)
FILE_NOTIFY_CHANGE_LAST_ACCESS = make_flag("FILE_NOTIFY_CHANGE_LAST_ACCESS", 0x00000020)
FILE_NOTIFY_CHANGE_CREATION = make_flag("FILE_NOTIFY_CHANGE_CREATION", 0x00000040)
FILE_NOTIFY_CHANGE_SECURITY = make_flag("FILE_NOTIFY_CHANGE_SECURITY", 0x00000100)
FILE_ACTION_ADDED = make_flag("FILE_ACTION_ADDED", 0x00000001)
FILE_ACTION_REMOVED = make_flag("FILE_ACTION_REMOVED", 0x00000002)
FILE_ACTION_MODIFIED = make_flag("FILE_ACTION_MODIFIED", 0x00000003)
FILE_ACTION_RENAMED_OLD_NAME = make_flag("FILE_ACTION_RENAMED_OLD_NAME", 0x00000004)
FILE_ACTION_RENAMED_NEW_NAME = make_flag("FILE_ACTION_RENAMED_NEW_NAME", 0x00000005)
MAILSLOT_NO_MESSAGE = make_flag("MAILSLOT_NO_MESSAGE", ( -1 ))
MAILSLOT_WAIT_FOREVER = make_flag("MAILSLOT_WAIT_FOREVER", ( -1 ))
FILE_CASE_SENSITIVE_SEARCH = make_flag("FILE_CASE_SENSITIVE_SEARCH", 0x00000001)
FILE_CASE_PRESERVED_NAMES = make_flag("FILE_CASE_PRESERVED_NAMES", 0x00000002)
FILE_UNICODE_ON_DISK = make_flag("FILE_UNICODE_ON_DISK", 0x00000004)
FILE_PERSISTENT_ACLS = make_flag("FILE_PERSISTENT_ACLS", 0x00000008)
FILE_FILE_COMPRESSION = make_flag("FILE_FILE_COMPRESSION", 0x00000010)
FILE_VOLUME_QUOTAS = make_flag("FILE_VOLUME_QUOTAS", 0x00000020)
FILE_SUPPORTS_SPARSE_FILES = make_flag("FILE_SUPPORTS_SPARSE_FILES", 0x00000040)
FILE_SUPPORTS_REPARSE_POINTS = make_flag("FILE_SUPPORTS_REPARSE_POINTS", 0x00000080)
FILE_SUPPORTS_REMOTE_STORAGE = make_flag("FILE_SUPPORTS_REMOTE_STORAGE", 0x00000100)
FILE_VOLUME_IS_COMPRESSED = make_flag("FILE_VOLUME_IS_COMPRESSED", 0x00008000)
FILE_SUPPORTS_OBJECT_IDS = make_flag("FILE_SUPPORTS_OBJECT_IDS", 0x00010000)
FILE_SUPPORTS_ENCRYPTION = make_flag("FILE_SUPPORTS_ENCRYPTION", 0x00020000)
FILE_NAMED_STREAMS = make_flag("FILE_NAMED_STREAMS", 0x00040000)
FILE_READ_ONLY_VOLUME = make_flag("FILE_READ_ONLY_VOLUME", 0x00080000)
FILE_SEQUENTIAL_WRITE_ONCE = make_flag("FILE_SEQUENTIAL_WRITE_ONCE", 0x00100000)
FILE_SUPPORTS_TRANSACTIONS = make_flag("FILE_SUPPORTS_TRANSACTIONS", 0x00200000)
FILE_SUPPORTS_HARD_LINKS = make_flag("FILE_SUPPORTS_HARD_LINKS", 0x00400000)
FILE_SUPPORTS_EXTENDED_ATTRIBUTES = make_flag("FILE_SUPPORTS_EXTENDED_ATTRIBUTES", 0x00800000)
FILE_SUPPORTS_OPEN_BY_FILE_ID = make_flag("FILE_SUPPORTS_OPEN_BY_FILE_ID", 0x01000000)
FILE_SUPPORTS_USN_JOURNAL = make_flag("FILE_SUPPORTS_USN_JOURNAL", 0x02000000)
RRF_RT_REG_NONE = make_flag("RRF_RT_REG_NONE", 0x00000001)
RRF_RT_REG_SZ = make_flag("RRF_RT_REG_SZ", 0x00000002)
RRF_RT_REG_EXPAND_SZ = make_flag("RRF_RT_REG_EXPAND_SZ", 0x00000004)
+90
View File
@@ -1050,6 +1050,41 @@ FindNextFileWParams = ((1, 'hFindFile'), (1, 'lpFindFileData'))
FindClosePrototype = WINFUNCTYPE(BOOL, HANDLE)
FindCloseParams = ((1, 'hFindFile'),)
#def FindFirstChangeNotificationA(lpPathName, bWatchSubtree, dwNotifyFilter):
# return FindFirstChangeNotificationA.ctypes_function(lpPathName, bWatchSubtree, dwNotifyFilter)
FindFirstChangeNotificationAPrototype = WINFUNCTYPE(HANDLE, LPCSTR, BOOL, DWORD)
FindFirstChangeNotificationAParams = ((1, 'lpPathName'), (1, 'bWatchSubtree'), (1, 'dwNotifyFilter'))
#def FindFirstChangeNotificationW(lpPathName, bWatchSubtree, dwNotifyFilter):
# return FindFirstChangeNotificationW.ctypes_function(lpPathName, bWatchSubtree, dwNotifyFilter)
FindFirstChangeNotificationWPrototype = WINFUNCTYPE(HANDLE, LPCWSTR, BOOL, DWORD)
FindFirstChangeNotificationWParams = ((1, 'lpPathName'), (1, 'bWatchSubtree'), (1, 'dwNotifyFilter'))
#def FindNextChangeNotification(hChangeHandle):
# return FindNextChangeNotification.ctypes_function(hChangeHandle)
FindNextChangeNotificationPrototype = WINFUNCTYPE(BOOL, HANDLE)
FindNextChangeNotificationParams = ((1, 'hChangeHandle'),)
#def FindCloseChangeNotification(hChangeHandle):
# return FindCloseChangeNotification.ctypes_function(hChangeHandle)
FindCloseChangeNotificationPrototype = WINFUNCTYPE(BOOL, HANDLE)
FindCloseChangeNotificationParams = ((1, 'hChangeHandle'),)
#def FindNextChangeNotification(hChangeHandle):
# return FindNextChangeNotification.ctypes_function(hChangeHandle)
FindNextChangeNotificationPrototype = WINFUNCTYPE(BOOL, HANDLE)
FindNextChangeNotificationParams = ((1, 'hChangeHandle'),)
#def ReadDirectoryChangesW(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine):
# return ReadDirectoryChangesW.ctypes_function(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine)
ReadDirectoryChangesWPrototype = WINFUNCTYPE(BOOL, HANDLE, LPVOID, DWORD, BOOL, DWORD, LPDWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE)
ReadDirectoryChangesWParams = ((1, 'hDirectory'), (1, 'lpBuffer'), (1, 'nBufferLength'), (1, 'bWatchSubtree'), (1, 'dwNotifyFilter'), (1, 'lpBytesReturned'), (1, 'lpOverlapped'), (1, 'lpCompletionRoutine'))
#def ReadDirectoryChangesExW(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine, ReadDirectoryNotifyInformationClass):
# return ReadDirectoryChangesExW.ctypes_function(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine, ReadDirectoryNotifyInformationClass)
ReadDirectoryChangesExWPrototype = WINFUNCTYPE(BOOL, HANDLE, LPVOID, DWORD, BOOL, DWORD, LPDWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE, READ_DIRECTORY_NOTIFY_INFORMATION_CLASS)
ReadDirectoryChangesExWParams = ((1, 'hDirectory'), (1, 'lpBuffer'), (1, 'nBufferLength'), (1, 'bWatchSubtree'), (1, 'dwNotifyFilter'), (1, 'lpBytesReturned'), (1, 'lpOverlapped'), (1, 'lpCompletionRoutine'), (1, 'ReadDirectoryNotifyInformationClass'))
#def HeapAlloc(hHeap, dwFlags, dwBytes):
# return HeapAlloc.ctypes_function(hHeap, dwFlags, dwBytes)
HeapAllocPrototype = WINFUNCTYPE(LPVOID, HANDLE, DWORD, SIZE_T)
@@ -1160,6 +1195,56 @@ HttpSendRequestAParams = ((1, 'hRequest'), (1, 'lpszHeaders'), (1, 'dwHeadersLen
HttpSendRequestWPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPCWSTR, DWORD, LPVOID, DWORD)
HttpSendRequestWParams = ((1, 'hRequest'), (1, 'lpszHeaders'), (1, 'dwHeadersLength'), (1, 'lpOptional'), (1, 'dwOptionalLength'))
#def WinHttpOpen(pszAgentW, dwAccessType, pszProxyW, pszProxyBypassW, dwFlags):
# return WinHttpOpen.ctypes_function(pszAgentW, dwAccessType, pszProxyW, pszProxyBypassW, dwFlags)
WinHttpOpenPrototype = WINFUNCTYPE(HINTERNET, LPCWSTR, DWORD, LPCWSTR, LPCWSTR, DWORD)
WinHttpOpenParams = ((1, 'pszAgentW'), (1, 'dwAccessType'), (1, 'pszProxyW'), (1, 'pszProxyBypassW'), (1, 'dwFlags'))
#def WinHttpCloseHandle(hInternet):
# return WinHttpCloseHandle.ctypes_function(hInternet)
WinHttpCloseHandlePrototype = WINFUNCTYPE(BOOL, HINTERNET)
WinHttpCloseHandleParams = ((1, 'hInternet'),)
#def WinHttpConnect(hSession, pswzServerName, nServerPort, dwReserved):
# return WinHttpConnect.ctypes_function(hSession, pswzServerName, nServerPort, dwReserved)
WinHttpConnectPrototype = WINFUNCTYPE(HINTERNET, HINTERNET, LPCWSTR, INTERNET_PORT, DWORD)
WinHttpConnectParams = ((1, 'hSession'), (1, 'pswzServerName'), (1, 'nServerPort'), (1, 'dwReserved'))
#def WinHttpQueryDataAvailable(hRequest, lpdwNumberOfBytesAvailable):
# return WinHttpQueryDataAvailable.ctypes_function(hRequest, lpdwNumberOfBytesAvailable)
WinHttpQueryDataAvailablePrototype = WINFUNCTYPE(BOOL, HINTERNET, LPDWORD)
WinHttpQueryDataAvailableParams = ((1, 'hRequest'), (1, 'lpdwNumberOfBytesAvailable'))
#def WinHttpReadData(hRequest, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead):
# return WinHttpReadData.ctypes_function(hRequest, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead)
WinHttpReadDataPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPVOID, DWORD, LPDWORD)
WinHttpReadDataParams = ((1, 'hRequest'), (1, 'lpBuffer'), (1, 'dwNumberOfBytesToRead'), (1, 'lpdwNumberOfBytesRead'))
#def WinHttpOpenRequest(hConnect, pwszVerb, pwszObjectName, pwszVersion, pwszReferrer, ppwszAcceptTypes, dwFlags):
# return WinHttpOpenRequest.ctypes_function(hConnect, pwszVerb, pwszObjectName, pwszVersion, pwszReferrer, ppwszAcceptTypes, dwFlags)
WinHttpOpenRequestPrototype = WINFUNCTYPE(HINTERNET, HINTERNET, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, POINTER(LPCWSTR), DWORD)
WinHttpOpenRequestParams = ((1, 'hConnect'), (1, 'pwszVerb'), (1, 'pwszObjectName'), (1, 'pwszVersion'), (1, 'pwszReferrer'), (1, 'ppwszAcceptTypes'), (1, 'dwFlags'))
#def WinHttpSendRequest(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength, dwTotalLength, dwContext):
# return WinHttpSendRequest.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength, dwTotalLength, dwContext)
WinHttpSendRequestPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPCWSTR, DWORD, LPVOID, DWORD, DWORD, DWORD_PTR)
WinHttpSendRequestParams = ((1, 'hRequest'), (1, 'lpszHeaders'), (1, 'dwHeadersLength'), (1, 'lpOptional'), (1, 'dwOptionalLength'), (1, 'dwTotalLength'), (1, 'dwContext'))
#def WinHttpReceiveResponse(hRequest, lpReserved):
# return WinHttpReceiveResponse.ctypes_function(hRequest, lpReserved)
WinHttpReceiveResponsePrototype = WINFUNCTYPE(BOOL, HINTERNET, LPVOID)
WinHttpReceiveResponseParams = ((1, 'hRequest'), (1, 'lpReserved'))
#def WinHttpAddRequestHeaders(hRequest, lpszHeaders, dwHeadersLength, dwModifiers):
# return WinHttpAddRequestHeaders.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, dwModifiers)
WinHttpAddRequestHeadersPrototype = WINFUNCTYPE(BOOL, HINTERNET, LPCWSTR, DWORD, DWORD)
WinHttpAddRequestHeadersParams = ((1, 'hRequest'), (1, 'lpszHeaders'), (1, 'dwHeadersLength'), (1, 'dwModifiers'))
#def WinHttpQueryHeaders(hRequest, dwInfoLevel, pwszName, lpBuffer, lpdwBufferLength, lpdwIndex):
# return WinHttpQueryHeaders.ctypes_function(hRequest, dwInfoLevel, pwszName, lpBuffer, lpdwBufferLength, lpdwIndex)
WinHttpQueryHeadersPrototype = WINFUNCTYPE(BOOL, HINTERNET, DWORD, LPCWSTR, LPVOID, LPDWORD, LPDWORD)
WinHttpQueryHeadersParams = ((1, 'hRequest'), (1, 'dwInfoLevel'), (1, 'pwszName'), (1, 'lpBuffer'), (1, 'lpdwBufferLength'), (1, 'lpdwIndex'))
#def LsaOpenPolicy(SystemName, ObjectAttributes, DesiredAccess, PolicyHandle):
# return LsaOpenPolicy.ctypes_function(SystemName, ObjectAttributes, DesiredAccess, PolicyHandle)
LsaOpenPolicyPrototype = WINFUNCTYPE(NTSTATUS, PLSA_UNICODE_STRING, PLSA_OBJECT_ATTRIBUTES, ACCESS_MASK, PLSA_HANDLE)
@@ -1255,6 +1340,11 @@ DnsQuery_AParams = ((1, 'pszName'), (1, 'wType'), (1, 'Options'), (1, 'pExtra'),
DnsQuery_WPrototype = WINFUNCTYPE(DNS_STATUS, PCWSTR, WORD, DWORD, PVOID, POINTER(PDNS_RECORDW), POINTER(PVOID))
DnsQuery_WParams = ((1, 'pszName'), (1, 'wType'), (1, 'Options'), (1, 'pExtra'), (1, 'ppQueryResults'), (1, 'pReserved'))
#def DnsQueryEx(pQueryRequest, pQueryResults, pCancelHandle):
# return DnsQueryEx.ctypes_function(pQueryRequest, pQueryResults, pCancelHandle)
DnsQueryExPrototype = WINFUNCTYPE(DNS_STATUS, PDNS_QUERY_REQUEST, PDNS_QUERY_RESULT, PDNS_QUERY_CANCEL)
DnsQueryExParams = ((1, 'pQueryRequest'), (1, 'pQueryResults'), (1, 'pCancelHandle'))
#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)
+97
View File
@@ -286,6 +286,8 @@ ENUMRESTYPEPROCA = PVOID#Resources
ENUMRESTYPEPROCW = PVOID#Resources
LPSERVICE_MAIN_FUNCTIONA = PVOID
LPSERVICE_MAIN_FUNCTIONW = PVOID
LPOVERLAPPED_COMPLETION_ROUTINE = PVOID
PDNS_QUERY_COMPLETION_ROUTINE = PVOID
LPCONTEXT = PVOID
HCERTSTORE = PVOID
HCRYPTMSG = PVOID
@@ -2335,6 +2337,62 @@ _DnsRecordW._fields_ = [
("Data", _ANON__DNSRECORDW_SUB_UNION_2),
]
class _DnsAddr(Structure):
_fields_ = [
("MaxSa", CHAR * (DNS_ADDR_MAX_SOCKADDR_LENGTH)),
("DnsAddrUserDword", DWORD * (8)),
]
PDNS_ADDR = POINTER(_DnsAddr)
DNS_ADDR = _DnsAddr
class _DnsAddrArray(Structure):
_fields_ = [
("MaxCount", DWORD),
("AddrCount", DWORD),
("Tag", DWORD),
("Family", WORD),
("WordReserved", WORD),
("Flags", DWORD),
("MatchFlag", DWORD),
("Reserved1", DWORD),
("Reserved2", DWORD),
("AddrArray", DNS_ADDR * (ANY_SIZE)),
]
PDNS_ADDR_ARRAY = POINTER(_DnsAddrArray)
DNS_ADDR_ARRAY = _DnsAddrArray
class _DNS_QUERY_REQUEST(Structure):
_fields_ = [
("Version", ULONG),
("QueryName", PCWSTR),
("QueryType", WORD),
("QueryOptions", ULONG64),
("pDnsServerList", PDNS_ADDR_ARRAY),
("InterfaceIndex", ULONG),
("pQueryCompletionCallback", PDNS_QUERY_COMPLETION_ROUTINE),
("pQueryContext", PVOID),
]
PDNS_QUERY_REQUEST = POINTER(_DNS_QUERY_REQUEST)
DNS_QUERY_REQUEST = _DNS_QUERY_REQUEST
class _DNS_QUERY_CANCEL(Structure):
_fields_ = [
("Reserved", CHAR * (32)),
]
PDNS_QUERY_CANCEL = POINTER(_DNS_QUERY_CANCEL)
DNS_QUERY_CANCEL = _DNS_QUERY_CANCEL
class _DNS_QUERY_RESULT(Structure):
_fields_ = [
("Version", ULONG),
("QueryStatus", DNS_STATUS),
("QueryOptions", ULONG64),
("pQueryRecords", PVOID),
("Reserved", PVOID),
]
DNS_QUERY_RESULT = _DNS_QUERY_RESULT
PDNS_QUERY_RESULT = POINTER(_DNS_QUERY_RESULT)
KeyValueBasicInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueBasicInformation", 0x0)
KeyValueFullInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueFullInformation", 0x1)
KeyValuePartialInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValuePartialInformation", 0x2)
@@ -8535,6 +8593,15 @@ class _IO_PRIORITY_HINT(EnumType):
IO_PRIORITY_HINT = _IO_PRIORITY_HINT
ReadDirectoryNotifyInformation = EnumValue("_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS", "ReadDirectoryNotifyInformation", 0x0)
ReadDirectoryNotifyExtendedInformation = EnumValue("_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS", "ReadDirectoryNotifyExtendedInformation", 0x1)
class _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS(EnumType):
values = [ReadDirectoryNotifyInformation, ReadDirectoryNotifyExtendedInformation]
mapper = FlagMapper(*values)
PREAD_DIRECTORY_NOTIFY_INFORMATION_CLASS = POINTER(_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS)
READ_DIRECTORY_NOTIFY_INFORMATION_CLASS = _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS
class _FILE_INTERNAL_INFORMATION(Structure):
_fields_ = [
("IndexNumber", LARGE_INTEGER),
@@ -8770,6 +8837,36 @@ PWIN32_FIND_DATAW = POINTER(_WIN32_FIND_DATAW)
WIN32_FIND_DATAW = _WIN32_FIND_DATAW
LPWIN32_FIND_DATAW = POINTER(_WIN32_FIND_DATAW)
class _FILE_NOTIFY_INFORMATION(Structure):
_fields_ = [
("NextEntryOffset", DWORD),
("Action", DWORD),
("FileNameLength", DWORD),
("FileName", WCHAR * (1)),
]
FILE_NOTIFY_INFORMATION = _FILE_NOTIFY_INFORMATION
PFILE_NOTIFY_INFORMATION = POINTER(_FILE_NOTIFY_INFORMATION)
class _FILE_NOTIFY_EXTENDED_INFORMATION(Structure):
_fields_ = [
("NextEntryOffset", DWORD),
("Action", DWORD),
("CreationTime", LARGE_INTEGER),
("LastModificationTime", LARGE_INTEGER),
("LastChangeTime", LARGE_INTEGER),
("LastAccessTime", LARGE_INTEGER),
("AllocatedLength", LARGE_INTEGER),
("FileSize", LARGE_INTEGER),
("FileAttributes", DWORD),
("ReparsePointTag", DWORD),
("FileId", LARGE_INTEGER),
("ParentFileId", LARGE_INTEGER),
("FileNameLength", DWORD),
("FileName", WCHAR * (1)),
]
PFILE_NOTIFY_EXTENDED_INFORMATION = POINTER(_FILE_NOTIFY_EXTENDED_INFORMATION)
FILE_NOTIFY_EXTENDED_INFORMATION = _FILE_NOTIFY_EXTENDED_INFORMATION
PolicyAuditLogInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyAuditLogInformation", 0x1)
PolicyAuditEventsInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyAuditEventsInformation", 0x2)
PolicyPrimaryDomainInformation = EnumValue("_POLICY_INFORMATION_CLASS", "PolicyPrimaryDomainInformation", 0x3)
+1
View File
@@ -19,5 +19,6 @@ from .user32 import *
from .version import *
from .virtdisk import *
from .wevtapi import *
from .winhttp import *
from .wininet import *
from .wintrust import *
+4
View File
@@ -23,6 +23,10 @@ def DnsQuery_A(pszName, wType, Options, pExtra, ppQueryResults, pReserved):
def DnsQuery_W(pszName, wType, Options, pExtra, ppQueryResults, pReserved):
return DnsQuery_W.ctypes_function(pszName, wType, Options, pExtra, ppQueryResults, pReserved)
@DNSapiProxy(error_check=result_is_error_code)
def DnsQueryEx(pQueryRequest, pQueryResults, pCancelHandle):
return DnsQueryEx.ctypes_function(pQueryRequest, pQueryResults, pCancelHandle)
@DNSapiProxy(error_check=no_error_check)
def DnsFree(pData, FreeType):
return DnsFree.ctypes_function(pData, FreeType)
+31 -1
View File
@@ -461,7 +461,7 @@ def CreateFileA(lpFileName, dwDesiredAccess=gdef.GENERIC_READ, dwShareMode=0, lp
@Kernel32Proxy(error_check=result_is_handle)
def CreateFileW(lpFileName, dwDesiredAccess=gdef.GENERIC_READ, dwShareMode=0, lpSecurityAttributes=None, dwCreationDisposition=gdef.OPEN_EXISTING, dwFlagsAndAttributes=gdef.FILE_ATTRIBUTE_NORMAL, hTemplateFile=None):
return CreateFileA.ctypes_function(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile)
return CreateFileW.ctypes_function(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile)
@Kernel32Proxy(error_check=result_is_handle)
def CreateFileTransactedA(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, hTransaction, pusMiniVersion, pExtendedParameter):
@@ -538,6 +538,36 @@ def FindNextFileW(hFindFile, lpFindFileData):
def FindClose(hFindFile):
return FindClose.ctypes_function(hFindFile)
@Kernel32Proxy()
def FindFirstChangeNotificationA(lpPathName, bWatchSubtree, dwNotifyFilter):
return FindFirstChangeNotificationA.ctypes_function(lpPathName, bWatchSubtree, dwNotifyFilter)
@Kernel32Proxy()
def FindFirstChangeNotificationW(lpPathName, bWatchSubtree, dwNotifyFilter):
return FindFirstChangeNotificationW.ctypes_function(lpPathName, bWatchSubtree, dwNotifyFilter)
@Kernel32Proxy()
def FindNextChangeNotification(hChangeHandle):
return FindNextChangeNotification.ctypes_function(hChangeHandle)
@Kernel32Proxy()
def FindCloseChangeNotification(hChangeHandle):
return FindCloseChange
Notification.ctypes_function(hChangeHandle)
@Kernel32Proxy()
def FindNextChangeNotification(hChangeHandle):
return FindNextChangeNotification.ctypes_function(hChangeHandle)
@Kernel32Proxy()
def ReadDirectoryChangesW(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine):
return ReadDirectoryChangesW.ctypes_function(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine)
@Kernel32Proxy()
def ReadDirectoryChangesExW(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine, ReadDirectoryNotifyInformationClass):
return ReadDirectoryChangesExW.ctypes_function(hDirectory, lpBuffer, nBufferLength, bWatchSubtree, dwNotifyFilter, lpBytesReturned, lpOverlapped, lpCompletionRoutine, ReadDirectoryNotifyInformationClass)
## Tlhelp (snapshoot)
+51
View File
@@ -0,0 +1,51 @@
import ctypes
import windows.generated_def as gdef
from ..apiproxy import ApiProxy, NeededParameter
from ..error import (fail_on_zero)
class WinHTTPProxy(ApiProxy):
APIDLL = "winhttp"
default_error_check = staticmethod(fail_on_zero)
@WinHTTPProxy()
def WinHttpOpen(pszAgentW, dwAccessType, pszProxyW, pszProxyBypassW, dwFlags):
return WinHttpOpen.ctypes_function(pszAgentW, dwAccessType, pszProxyW, pszProxyBypassW, dwFlags)
@WinHTTPProxy()
def WinHttpCloseHandle(hInternet):
return WinHttpCloseHandle.ctypes_function(hInternet)
@WinHTTPProxy()
def WinHttpConnect(hSession, pswzServerName, nServerPort, dwReserved):
return WinHttpConnect.ctypes_function(hSession, pswzServerName, nServerPort, dwReserved)
@WinHTTPProxy()
def WinHttpQueryDataAvailable(hRequest, lpdwNumberOfBytesAvailable):
return WinHttpQueryDataAvailable.ctypes_function(hRequest, lpdwNumberOfBytesAvailable)
@WinHTTPProxy()
def WinHttpReadData(hRequest, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead):
return WinHttpReadData.ctypes_function(hRequest, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead)
@WinHTTPProxy()
def WinHttpOpenRequest(hConnect, pwszVerb, pwszObjectName, pwszVersion, pwszReferrer, ppwszAcceptTypes, dwFlags):
return WinHttpOpenRequest.ctypes_function(hConnect, pwszVerb, pwszObjectName, pwszVersion, pwszReferrer, ppwszAcceptTypes, dwFlags)
@WinHTTPProxy()
def WinHttpSendRequest(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength, dwTotalLength, dwContext):
return WinHttpSendRequest.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength, dwTotalLength, dwContext)
@WinHTTPProxy()
def WinHttpReceiveResponse(hRequest, lpReserved):
return WinHttpReceiveResponse.ctypes_function(hRequest, lpReserved)
@WinHTTPProxy()
def WinHttpAddRequestHeaders(hRequest, lpszHeaders, dwHeadersLength, dwModifiers):
return WinHttpAddRequestHeaders.ctypes_function(hRequest, lpszHeaders, dwHeadersLength, dwModifiers)
@WinHTTPProxy()
def WinHttpQueryHeaders(hRequest, dwInfoLevel, pwszName, lpBuffer, lpdwBufferLength, lpdwIndex):
return WinHttpQueryHeaders.ctypes_function(hRequest, dwInfoLevel, pwszName, lpBuffer, lpdwBufferLength, lpdwIndex)