mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Add some func/struct associated with [GS]etFileInformationByHandle
This commit is contained in:
@@ -85,3 +85,22 @@ BOOL LockFileEx(
|
||||
[in] DWORD nNumberOfBytesToLockHigh,
|
||||
[in, out] LPOVERLAPPED lpOverlapped
|
||||
);
|
||||
|
||||
BOOL SetFileInformationByHandle(
|
||||
[in] HANDLE hFile,
|
||||
[in] FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
|
||||
[in] LPVOID lpFileInformation,
|
||||
[in] DWORD dwBufferSize
|
||||
);
|
||||
|
||||
BOOL GetFileInformationByHandle(
|
||||
[in] HANDLE hFile,
|
||||
[out] LPBY_HANDLE_FILE_INFORMATION lpFileInformation
|
||||
);
|
||||
|
||||
BOOL GetFileInformationByHandleEx(
|
||||
[in] HANDLE hFile,
|
||||
[in] FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
|
||||
[out] LPVOID lpFileInformation,
|
||||
[in] DWORD dwBufferSize
|
||||
);
|
||||
@@ -69,6 +69,35 @@ typedef enum _FILE_INFORMATION_CLASS {
|
||||
FileMaximumInformation
|
||||
} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
|
||||
|
||||
typedef enum _FILE_INFO_BY_HANDLE_CLASS {
|
||||
FileBasicInfo,
|
||||
FileStandardInfo,
|
||||
FileNameInfo,
|
||||
FileRenameInfo,
|
||||
FileDispositionInfo,
|
||||
FileAllocationInfo,
|
||||
FileEndOfFileInfo,
|
||||
FileStreamInfo,
|
||||
FileCompressionInfo,
|
||||
FileAttributeTagInfo,
|
||||
FileIdBothDirectoryInfo,
|
||||
FileIdBothDirectoryRestartInfo,
|
||||
FileIoPriorityHintInfo,
|
||||
FileRemoteProtocolInfo,
|
||||
FileFullDirectoryInfo,
|
||||
FileFullDirectoryRestartInfo,
|
||||
FileStorageInfo,
|
||||
FileAlignmentInfo,
|
||||
FileIdInfo,
|
||||
FileIdExtdDirectoryInfo,
|
||||
FileIdExtdDirectoryRestartInfo,
|
||||
FileDispositionInfoEx,
|
||||
FileRenameInfoEx,
|
||||
FileCaseSensitiveInfo,
|
||||
FileNormalizedNameInfo,
|
||||
MaximumFileInfoByHandleClass
|
||||
} FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
|
||||
|
||||
typedef enum _IO_PRIORITY_HINT {
|
||||
IoPriorityVeryLow = 0,
|
||||
IoPriorityLow = 1,
|
||||
@@ -193,6 +222,18 @@ typedef struct _FILE_GET_EA_INFORMATION
|
||||
CHAR EaName[1];
|
||||
} FILE_GET_EA_INFORMATION, *PFILE_GET_EA_INFORMATION;
|
||||
|
||||
typedef struct _BY_HANDLE_FILE_INFORMATION {
|
||||
DWORD dwFileAttributes;
|
||||
FILETIME ftCreationTime;
|
||||
FILETIME ftLastAccessTime;
|
||||
FILETIME ftLastWriteTime;
|
||||
DWORD dwVolumeSerialNumber;
|
||||
DWORD nFileSizeHigh;
|
||||
DWORD nFileSizeLow;
|
||||
DWORD nNumberOfLinks;
|
||||
DWORD nFileIndexHigh;
|
||||
DWORD nFileIndexLow;
|
||||
} BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
|
||||
|
||||
typedef struct tagVS_FIXEDFILEINFO {
|
||||
DWORD dwSignature;
|
||||
|
||||
@@ -2,16 +2,6 @@
|
||||
|
||||
Interfaces
|
||||
----------
|
||||
.. class:: IActivationStageInfo
|
||||
|
||||
.. method:: QueryInterface
|
||||
.. method:: AddRef
|
||||
.. method:: Release
|
||||
.. method:: SetStageAndIndex
|
||||
.. method:: GetStage
|
||||
.. method:: GetIndex
|
||||
|
||||
|
||||
.. class:: ICallFactory
|
||||
|
||||
.. method:: QueryInterface
|
||||
@@ -722,6 +712,16 @@ Interfaces
|
||||
.. method:: GetReturnActivationProperties
|
||||
|
||||
|
||||
.. class:: IActivationStageInfo
|
||||
|
||||
.. method:: QueryInterface
|
||||
.. method:: AddRef
|
||||
.. method:: Release
|
||||
.. method:: SetStageAndIndex
|
||||
.. method:: GetStage
|
||||
.. method:: GetIndex
|
||||
|
||||
|
||||
.. class:: IClassClassicInfo
|
||||
|
||||
.. method:: QueryInterface
|
||||
|
||||
@@ -488,6 +488,12 @@ Functions
|
||||
|
||||
.. function:: LockFileEx(hFile, dwFlags, dwReserved, nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh, lpOverlapped)
|
||||
|
||||
.. function:: SetFileInformationByHandle(hFile, FileInformationClass, lpFileInformation, dwBufferSize)
|
||||
|
||||
.. function:: GetFileInformationByHandle(hFile, lpFileInformation)
|
||||
|
||||
.. function:: GetFileInformationByHandleEx(hFile, FileInformationClass, lpFileInformation, dwBufferSize)
|
||||
|
||||
.. function:: HeapAlloc(hHeap, dwFlags, dwBytes)
|
||||
|
||||
.. function:: InternetCheckConnectionA(lpszUrl, dwFlags, dwReserved)
|
||||
|
||||
@@ -21089,6 +21089,71 @@ _FILE_GET_EA_INFORMATION
|
||||
|
||||
:class:`CHAR`
|
||||
|
||||
_BY_HANDLE_FILE_INFORMATION
|
||||
'''''''''''''''''''''''''''
|
||||
.. class:: BY_HANDLE_FILE_INFORMATION
|
||||
|
||||
Alias for :class:`_BY_HANDLE_FILE_INFORMATION`
|
||||
|
||||
.. class:: LPBY_HANDLE_FILE_INFORMATION
|
||||
|
||||
Pointer to :class:`_BY_HANDLE_FILE_INFORMATION`
|
||||
|
||||
.. class:: PBY_HANDLE_FILE_INFORMATION
|
||||
|
||||
Pointer to :class:`_BY_HANDLE_FILE_INFORMATION`
|
||||
|
||||
.. class:: _BY_HANDLE_FILE_INFORMATION
|
||||
|
||||
.. attribute:: dwFileAttributes
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: ftCreationTime
|
||||
|
||||
:class:`FILETIME`
|
||||
|
||||
|
||||
.. attribute:: ftLastAccessTime
|
||||
|
||||
:class:`FILETIME`
|
||||
|
||||
|
||||
.. attribute:: ftLastWriteTime
|
||||
|
||||
:class:`FILETIME`
|
||||
|
||||
|
||||
.. attribute:: dwVolumeSerialNumber
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: nFileSizeHigh
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: nFileSizeLow
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: nNumberOfLinks
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: nFileIndexHigh
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
|
||||
.. attribute:: nFileIndexLow
|
||||
|
||||
:class:`DWORD`
|
||||
|
||||
tagVS_FIXEDFILEINFO
|
||||
'''''''''''''''''''
|
||||
.. class:: VS_FIXEDFILEINFO
|
||||
@@ -32567,6 +32632,98 @@ _FILE_INFORMATION_CLASS
|
||||
|
||||
.. attribute:: FileMaximumInformation(67)
|
||||
|
||||
_FILE_INFO_BY_HANDLE_CLASS
|
||||
''''''''''''''''''''''''''
|
||||
.. class:: FILE_INFO_BY_HANDLE_CLASS
|
||||
|
||||
Alias for :class:`_FILE_INFO_BY_HANDLE_CLASS`
|
||||
|
||||
|
||||
.. class:: PFILE_INFO_BY_HANDLE_CLASS
|
||||
|
||||
Pointer to :class:`_FILE_INFO_BY_HANDLE_CLASS`
|
||||
|
||||
|
||||
.. class:: _FILE_INFO_BY_HANDLE_CLASS
|
||||
|
||||
|
||||
.. attribute:: FileBasicInfo(0)
|
||||
|
||||
|
||||
.. attribute:: FileStandardInfo(1)
|
||||
|
||||
|
||||
.. attribute:: FileNameInfo(2)
|
||||
|
||||
|
||||
.. attribute:: FileRenameInfo(3)
|
||||
|
||||
|
||||
.. attribute:: FileDispositionInfo(4)
|
||||
|
||||
|
||||
.. attribute:: FileAllocationInfo(5)
|
||||
|
||||
|
||||
.. attribute:: FileEndOfFileInfo(6)
|
||||
|
||||
|
||||
.. attribute:: FileStreamInfo(7)
|
||||
|
||||
|
||||
.. attribute:: FileCompressionInfo(8)
|
||||
|
||||
|
||||
.. attribute:: FileAttributeTagInfo(9)
|
||||
|
||||
|
||||
.. attribute:: FileIdBothDirectoryInfo(10)
|
||||
|
||||
|
||||
.. attribute:: FileIdBothDirectoryRestartInfo(11)
|
||||
|
||||
|
||||
.. attribute:: FileIoPriorityHintInfo(12)
|
||||
|
||||
|
||||
.. attribute:: FileRemoteProtocolInfo(13)
|
||||
|
||||
|
||||
.. attribute:: FileFullDirectoryInfo(14)
|
||||
|
||||
|
||||
.. attribute:: FileFullDirectoryRestartInfo(15)
|
||||
|
||||
|
||||
.. attribute:: FileStorageInfo(16)
|
||||
|
||||
|
||||
.. attribute:: FileAlignmentInfo(17)
|
||||
|
||||
|
||||
.. attribute:: FileIdInfo(18)
|
||||
|
||||
|
||||
.. attribute:: FileIdExtdDirectoryInfo(19)
|
||||
|
||||
|
||||
.. attribute:: FileIdExtdDirectoryRestartInfo(20)
|
||||
|
||||
|
||||
.. attribute:: FileDispositionInfoEx(21)
|
||||
|
||||
|
||||
.. attribute:: FileRenameInfoEx(22)
|
||||
|
||||
|
||||
.. attribute:: FileCaseSensitiveInfo(23)
|
||||
|
||||
|
||||
.. attribute:: FileNormalizedNameInfo(24)
|
||||
|
||||
|
||||
.. attribute:: MaximumFileInfoByHandleClass(25)
|
||||
|
||||
_IO_PRIORITY_HINT
|
||||
'''''''''''''''''
|
||||
.. class:: IO_PRIORITY_HINT
|
||||
|
||||
@@ -78,9 +78,6 @@ class COMInterface(ctypes.c_void_p):
|
||||
|
||||
|
||||
|
||||
class IActivationStageInfo(COMInterface):
|
||||
IID = generate_IID(0x000001A8, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IActivationStageInfo", strid="000001A8-0000-0000-C000-000000000046")
|
||||
|
||||
class ICallFactory(COMInterface):
|
||||
IID = generate_IID(0x1C733A30, 0x2A1C, 0x11CE, 0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D, name="ICallFactory", strid="1C733A30-2A1C-11CE-ADE5-00AA0044773D")
|
||||
|
||||
@@ -234,6 +231,9 @@ class IActivationPropertiesOut(COMInterface):
|
||||
class IActivationPropertiesIn(COMInterface):
|
||||
IID = generate_IID(0x000001A2, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IActivationPropertiesIn", strid="000001A2-0000-0000-C000-000000000046")
|
||||
|
||||
class IActivationStageInfo(COMInterface):
|
||||
IID = generate_IID(0x000001A8, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IActivationStageInfo", strid="000001A8-0000-0000-C000-000000000046")
|
||||
|
||||
class IClassClassicInfo(COMInterface):
|
||||
IID = generate_IID(0x000001E2, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, name="IClassClassicInfo", strid="000001E2-0000-0000-C000-000000000046")
|
||||
|
||||
@@ -432,21 +432,6 @@ class IWbemQualifierSet(COMInterface):
|
||||
class IWbemServices(COMInterface):
|
||||
IID = generate_IID(0x0EFA6E54, 0xF313, 0x405D, 0xB5, 0xD8, 0x83, 0x0A, 0x91, 0x4F, 0x64, 0x96, name="IWbemServices", strid="0EFA6E54-F313-405D-B5D8-830A914F6496")
|
||||
|
||||
IActivationStageInfo._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"),
|
||||
# SetStageAndIndex -> stage:ACTIVATION_STAGE, index:INT
|
||||
"SetStageAndIndex": ctypes.WINFUNCTYPE(HRESULT, ACTIVATION_STAGE, INT)(3, "SetStageAndIndex"),
|
||||
# GetStage -> pstage:*ACTIVATION_STAGE
|
||||
"GetStage": ctypes.WINFUNCTYPE(HRESULT, POINTER(ACTIVATION_STAGE))(4, "GetStage"),
|
||||
# GetIndex -> pindex:*INT
|
||||
"GetIndex": ctypes.WINFUNCTYPE(HRESULT, POINTER(INT))(5, "GetIndex"),
|
||||
}
|
||||
|
||||
ICallFactory._functions_ = {
|
||||
# QueryInterface -> riid:REFIID, ppvObject:**void
|
||||
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
|
||||
@@ -1652,6 +1637,21 @@ IActivationPropertiesIn._functions_ = {
|
||||
"GetReturnActivationProperties": ctypes.WINFUNCTYPE(HRESULT, IUnknown, POINTER(IActivationPropertiesOut))(12, "GetReturnActivationProperties"),
|
||||
}
|
||||
|
||||
IActivationStageInfo._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"),
|
||||
# SetStageAndIndex -> stage:ACTIVATION_STAGE, index:INT
|
||||
"SetStageAndIndex": ctypes.WINFUNCTYPE(HRESULT, ACTIVATION_STAGE, INT)(3, "SetStageAndIndex"),
|
||||
# GetStage -> pstage:*ACTIVATION_STAGE
|
||||
"GetStage": ctypes.WINFUNCTYPE(HRESULT, POINTER(ACTIVATION_STAGE))(4, "GetStage"),
|
||||
# GetIndex -> pindex:*INT
|
||||
"GetIndex": ctypes.WINFUNCTYPE(HRESULT, POINTER(INT))(5, "GetIndex"),
|
||||
}
|
||||
|
||||
IClassClassicInfo._functions_ = {
|
||||
# QueryInterface -> riid:REFIID, ppvObject:**void
|
||||
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
|
||||
|
||||
@@ -12184,6 +12184,7 @@ structs = {'ACCESS_ALLOWED_ACE',
|
||||
'BUSNUMBER_DES',
|
||||
'BUSNUMBER_RANGE',
|
||||
'BUSNUMBER_RESOURCE',
|
||||
'BY_HANDLE_FILE_INFORMATION',
|
||||
'BusNumber_Des_s',
|
||||
'BusNumber_Range_s',
|
||||
'BusNumber_Resource_s',
|
||||
@@ -12555,6 +12556,7 @@ structs = {'ACCESS_ALLOWED_ACE',
|
||||
'LPBITMAPFILEHEADER',
|
||||
'LPBITMAPINFO',
|
||||
'LPBITMAPINFOHEADER',
|
||||
'LPBY_HANDLE_FILE_INFORMATION',
|
||||
'LPCGUID',
|
||||
'LPCLSID',
|
||||
'LPCONTEXT32',
|
||||
@@ -12784,6 +12786,7 @@ structs = {'ACCESS_ALLOWED_ACE',
|
||||
'PBUSNUMBER_DES',
|
||||
'PBUSNUMBER_RANGE',
|
||||
'PBUSNUMBER_RESOURCE',
|
||||
'PBY_HANDLE_FILE_INFORMATION',
|
||||
'PCANSI_STRING',
|
||||
'PCCARD_DES',
|
||||
'PCCARD_RESOURCE',
|
||||
@@ -13598,6 +13601,7 @@ structs = {'ACCESS_ALLOWED_ACE',
|
||||
'_BG_JOB_PROGRESS',
|
||||
'_BG_JOB_REPLY_PROGRESS',
|
||||
'_BG_JOB_TIMES',
|
||||
'_BY_HANDLE_FILE_INFORMATION',
|
||||
'_CALLFRAMEINFO',
|
||||
'_CALLFRAMEPARAMINFO',
|
||||
'_CALLFRAME_MARSHALCONTEXT',
|
||||
@@ -14199,6 +14203,7 @@ enums = {'ACCESS_MODE',
|
||||
'EXPCMDFLAGS',
|
||||
'EXPCMDSTATE',
|
||||
'FILE_INFORMATION_CLASS',
|
||||
'FILE_INFO_BY_HANDLE_CLASS',
|
||||
'FS_INFORMATION_CLASS',
|
||||
'FUNCKIND',
|
||||
'GETPROPERTYSTOREFLAGS',
|
||||
@@ -14234,6 +14239,7 @@ enums = {'ACCESS_MODE',
|
||||
'PACKAGE_EXECUTION_STATE',
|
||||
'PALPC_MESSAGE_INFORMATION_CLASS',
|
||||
'PFILE_INFORMATION_CLASS',
|
||||
'PFILE_INFO_BY_HANDLE_CLASS',
|
||||
'PMEM_EXTENDED_PARAMETER_TYPE',
|
||||
'PNT_PRODUCT_TYPE',
|
||||
'POLICY_INFORMATION_CLASS',
|
||||
@@ -14334,6 +14340,7 @@ enums = {'ACCESS_MODE',
|
||||
'_EXPCMDFLAGS',
|
||||
'_EXPCMDSTATE',
|
||||
'_FILE_INFORMATION_CLASS',
|
||||
'_FILE_INFO_BY_HANDLE_CLASS',
|
||||
'_FS_INFORMATION_CLASS',
|
||||
'_IMAGEHLP_EXTENDED_OPTIONS',
|
||||
'_IMAGEHLP_SYMBOL_TYPE_INFO',
|
||||
@@ -14713,6 +14720,8 @@ functions = {'AccessCheck',
|
||||
'GetExitCodeThread',
|
||||
'GetExtendedTcpTable',
|
||||
'GetExtendedUdpTable',
|
||||
'GetFileInformationByHandle',
|
||||
'GetFileInformationByHandleEx',
|
||||
'GetFileVersionInfoA',
|
||||
'GetFileVersionInfoExA',
|
||||
'GetFileVersionInfoExW',
|
||||
@@ -15085,6 +15094,7 @@ functions = {'AccessCheck',
|
||||
'SetEnvironmentStringsW',
|
||||
'SetEnvironmentVariableA',
|
||||
'SetEnvironmentVariableW',
|
||||
'SetFileInformationByHandle',
|
||||
'SetNamedPipeHandleState',
|
||||
'SetNamedSecurityInfoA',
|
||||
'SetNamedSecurityInfoW',
|
||||
|
||||
@@ -1215,6 +1215,21 @@ LockFileParams = ((1, 'hFile'), (1, 'dwFileOffsetLow'), (1, 'dwFileOffsetHigh'),
|
||||
LockFileExPrototype = WINFUNCTYPE(BOOL, HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED)
|
||||
LockFileExParams = ((1, 'hFile'), (1, 'dwFlags'), (1, 'dwReserved'), (1, 'nNumberOfBytesToLockLow'), (1, 'nNumberOfBytesToLockHigh'), (1, 'lpOverlapped'))
|
||||
|
||||
#def SetFileInformationByHandle(hFile, FileInformationClass, lpFileInformation, dwBufferSize):
|
||||
# return SetFileInformationByHandle.ctypes_function(hFile, FileInformationClass, lpFileInformation, dwBufferSize)
|
||||
SetFileInformationByHandlePrototype = WINFUNCTYPE(BOOL, HANDLE, FILE_INFO_BY_HANDLE_CLASS, LPVOID, DWORD)
|
||||
SetFileInformationByHandleParams = ((1, 'hFile'), (1, 'FileInformationClass'), (1, 'lpFileInformation'), (1, 'dwBufferSize'))
|
||||
|
||||
#def GetFileInformationByHandle(hFile, lpFileInformation):
|
||||
# return GetFileInformationByHandle.ctypes_function(hFile, lpFileInformation)
|
||||
GetFileInformationByHandlePrototype = WINFUNCTYPE(BOOL, HANDLE, LPBY_HANDLE_FILE_INFORMATION)
|
||||
GetFileInformationByHandleParams = ((1, 'hFile'), (1, 'lpFileInformation'))
|
||||
|
||||
#def GetFileInformationByHandleEx(hFile, FileInformationClass, lpFileInformation, dwBufferSize):
|
||||
# return GetFileInformationByHandleEx.ctypes_function(hFile, FileInformationClass, lpFileInformation, dwBufferSize)
|
||||
GetFileInformationByHandleExPrototype = WINFUNCTYPE(BOOL, HANDLE, FILE_INFO_BY_HANDLE_CLASS, LPVOID, DWORD)
|
||||
GetFileInformationByHandleExParams = ((1, 'hFile'), (1, 'FileInformationClass'), (1, 'lpFileInformation'), (1, 'dwBufferSize'))
|
||||
|
||||
#def HeapAlloc(hHeap, dwFlags, dwBytes):
|
||||
# return HeapAlloc.ctypes_function(hHeap, dwFlags, dwBytes)
|
||||
HeapAllocPrototype = WINFUNCTYPE(LPVOID, HANDLE, DWORD, SIZE_T)
|
||||
|
||||
@@ -9299,6 +9299,39 @@ FILE_INFORMATION_CLASS = _FILE_INFORMATION_CLASS
|
||||
PFILE_INFORMATION_CLASS = POINTER(_FILE_INFORMATION_CLASS)
|
||||
|
||||
|
||||
FileBasicInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileBasicInfo", 0x0)
|
||||
FileStandardInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileStandardInfo", 0x1)
|
||||
FileNameInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileNameInfo", 0x2)
|
||||
FileRenameInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileRenameInfo", 0x3)
|
||||
FileDispositionInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileDispositionInfo", 0x4)
|
||||
FileAllocationInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileAllocationInfo", 0x5)
|
||||
FileEndOfFileInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileEndOfFileInfo", 0x6)
|
||||
FileStreamInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileStreamInfo", 0x7)
|
||||
FileCompressionInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileCompressionInfo", 0x8)
|
||||
FileAttributeTagInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileAttributeTagInfo", 0x9)
|
||||
FileIdBothDirectoryInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileIdBothDirectoryInfo", 0xa)
|
||||
FileIdBothDirectoryRestartInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileIdBothDirectoryRestartInfo", 0xb)
|
||||
FileIoPriorityHintInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileIoPriorityHintInfo", 0xc)
|
||||
FileRemoteProtocolInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileRemoteProtocolInfo", 0xd)
|
||||
FileFullDirectoryInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileFullDirectoryInfo", 0xe)
|
||||
FileFullDirectoryRestartInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileFullDirectoryRestartInfo", 0xf)
|
||||
FileStorageInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileStorageInfo", 0x10)
|
||||
FileAlignmentInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileAlignmentInfo", 0x11)
|
||||
FileIdInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileIdInfo", 0x12)
|
||||
FileIdExtdDirectoryInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileIdExtdDirectoryInfo", 0x13)
|
||||
FileIdExtdDirectoryRestartInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileIdExtdDirectoryRestartInfo", 0x14)
|
||||
FileDispositionInfoEx = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileDispositionInfoEx", 0x15)
|
||||
FileRenameInfoEx = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileRenameInfoEx", 0x16)
|
||||
FileCaseSensitiveInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileCaseSensitiveInfo", 0x17)
|
||||
FileNormalizedNameInfo = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "FileNormalizedNameInfo", 0x18)
|
||||
MaximumFileInfoByHandleClass = EnumValue("_FILE_INFO_BY_HANDLE_CLASS", "MaximumFileInfoByHandleClass", 0x19)
|
||||
class _FILE_INFO_BY_HANDLE_CLASS(EnumType):
|
||||
values = [FileBasicInfo, FileStandardInfo, FileNameInfo, FileRenameInfo, FileDispositionInfo, FileAllocationInfo, FileEndOfFileInfo, FileStreamInfo, FileCompressionInfo, FileAttributeTagInfo, FileIdBothDirectoryInfo, FileIdBothDirectoryRestartInfo, FileIoPriorityHintInfo, FileRemoteProtocolInfo, FileFullDirectoryInfo, FileFullDirectoryRestartInfo, FileStorageInfo, FileAlignmentInfo, FileIdInfo, FileIdExtdDirectoryInfo, FileIdExtdDirectoryRestartInfo, FileDispositionInfoEx, FileRenameInfoEx, FileCaseSensitiveInfo, FileNormalizedNameInfo, MaximumFileInfoByHandleClass]
|
||||
mapper = FlagMapper(*values)
|
||||
FILE_INFO_BY_HANDLE_CLASS = _FILE_INFO_BY_HANDLE_CLASS
|
||||
PFILE_INFO_BY_HANDLE_CLASS = POINTER(_FILE_INFO_BY_HANDLE_CLASS)
|
||||
|
||||
|
||||
IoPriorityVeryLow = EnumValue("_IO_PRIORITY_HINT", "IoPriorityVeryLow", 0x0)
|
||||
IoPriorityLow = EnumValue("_IO_PRIORITY_HINT", "IoPriorityLow", 0x1)
|
||||
IoPriorityNormal = EnumValue("_IO_PRIORITY_HINT", "IoPriorityNormal", 0x2)
|
||||
@@ -9480,6 +9513,23 @@ class _FILE_GET_EA_INFORMATION(Structure):
|
||||
FILE_GET_EA_INFORMATION = _FILE_GET_EA_INFORMATION
|
||||
PFILE_GET_EA_INFORMATION = POINTER(_FILE_GET_EA_INFORMATION)
|
||||
|
||||
class _BY_HANDLE_FILE_INFORMATION(Structure):
|
||||
_fields_ = [
|
||||
("dwFileAttributes", DWORD),
|
||||
("ftCreationTime", FILETIME),
|
||||
("ftLastAccessTime", FILETIME),
|
||||
("ftLastWriteTime", FILETIME),
|
||||
("dwVolumeSerialNumber", DWORD),
|
||||
("nFileSizeHigh", DWORD),
|
||||
("nFileSizeLow", DWORD),
|
||||
("nNumberOfLinks", DWORD),
|
||||
("nFileIndexHigh", DWORD),
|
||||
("nFileIndexLow", DWORD),
|
||||
]
|
||||
BY_HANDLE_FILE_INFORMATION = _BY_HANDLE_FILE_INFORMATION
|
||||
LPBY_HANDLE_FILE_INFORMATION = POINTER(_BY_HANDLE_FILE_INFORMATION)
|
||||
PBY_HANDLE_FILE_INFORMATION = POINTER(_BY_HANDLE_FILE_INFORMATION)
|
||||
|
||||
class tagVS_FIXEDFILEINFO(Structure):
|
||||
_fields_ = [
|
||||
("dwSignature", DWORD),
|
||||
|
||||
@@ -628,6 +628,23 @@ def LockFile(hFile, dwFileOffsetLow, dwFileOffsetHigh, nNumberOfBytesToLockLow,
|
||||
def LockFileEx(hFile, dwFlags, dwReserved, nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh, lpOverlapped):
|
||||
return LockFileEx.ctypes_function(hFile, dwFlags, dwReserved, nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh, lpOverlapped)
|
||||
|
||||
@Kernel32Proxy()
|
||||
def SetFileInformationByHandle(hFile, FileInformationClass, lpFileInformation, dwBufferSize=None):
|
||||
if dwBufferSize is None and lpFileInformation is not None:
|
||||
dwBufferSize = len(lpFileInformation)
|
||||
return SetFileInformationByHandle.ctypes_function(hFile, FileInformationClass, lpFileInformation, dwBufferSize)
|
||||
|
||||
@Kernel32Proxy()
|
||||
def GetFileInformationByHandleEx(hFile, FileInformationClass, lpFileInformation, dwBufferSize=None):
|
||||
if dwBufferSize is None and lpFileInformation is not None:
|
||||
dwBufferSize = len(lpFileInformation)
|
||||
return GetFileInformationByHandleEx.ctypes_function(hFile, FileInformationClass, lpFileInformation, dwBufferSize)
|
||||
|
||||
@Kernel32Proxy()
|
||||
def GetFileInformationByHandle(hFile, lpFileInformation):
|
||||
return GetFileInformationByHandle.ctypes_function(hFile, lpFileInformation)
|
||||
|
||||
|
||||
## Tlhelp (snapshoot)
|
||||
|
||||
@Kernel32Proxy()
|
||||
|
||||
Reference in New Issue
Block a user