os.windows.native_api¶
Windows Native API (NT) wrappers using ctypes.
Module Contents¶
Classes¶
list of file attributes constants. |
|
Reparse Point Tag constants. |
|
Desired Access constants. |
|
Share Access constants. |
|
File Open options. |
|
Constants for WaitFor* functions. |
|
Error constants. |
|
Map IO_STATUS_BLOCK structure. |
|
Map Windows REPARSE_GUID_DATA_BUFFER structure. |
|
Map UNICODE_STRING structure. |
|
Map FILETIME structure. |
|
Map filetime implemented using LARGE_INTEGER. |
|
Map Windows WIN32_FIND_DATA structure. |
|
Declaration of structures returned by QueryInformationFile. |
|
Declaration of structures returned by QueryObjectInformation. |
|
Declaration of structure returned by QueryInformationProcess. |
|
OBJECT_ATTRIBUTES structure. |
|
Container for Windows NT API function bindings. |
Attributes¶
- os.windows.native_api.NTSTATUS¶
- class os.windows.native_api.FileAttribute¶
Bases:
ctypes.Structurelist of file attributes constants.
- READONLY = 1¶
- HIDDEN = 2¶
- SYSTEM = 4¶
- DIRECTORY = 16¶
- ARCHIVE = 32¶
- DEVICE = 64¶
- NORMAL = 128¶
- TEMPORARY = 256¶
- SPARSE_FILE = 512¶
- REPARSE_POINT = 1024¶
- COMPRESSED = 2048¶
- OFFLINE = 4096¶
- NOT_CONTENT_INDEXED = 8192¶
- ENCRYPTED = 16384¶
- INTEGRITY_STREAM = 32768¶
- VIRTUAL = 65536¶
- NO_SCRUB_DATA = 131072¶
- _fields_ = [('attr',)]¶
- __str__() str¶
Return string representation of active file attributes.
- class os.windows.native_api.IOReparseTag¶
Reparse Point Tag constants.
This is important to note that symbolic links on Windows are always implemented using reparse points. Nevertheless a reparse point is a more general concept not always associated with the concept of symbolic links. In the present code we are only interested in checking whether a reparse point is a symbolic link or not.
Currenly Windows supports two kinds of symbolic links. One for Win32 apps (SYMLINK) and one for WSL subsystem (WSL_SYMLINK). Note that Cygwin now uses the second one to implement symbolic links. Note that WSL symbolic links are not handled correctly by the Python runtime (for example os.path.islink will return False).
- SYMLINK = 2684354572¶
- WSL_SYMLINK = 2684354589¶
- class os.windows.native_api.Access¶
Desired Access constants.
- LIST_DIRECTORY = 1¶
- READ_DATA = 1¶
- ADD_FILE = 2¶
- WRITE_DATA = 2¶
- ADD_SUBDIR = 4¶
- APPEND_DATA = 4¶
- READ_EA = 8¶
- WRITE_EA = 16¶
- EXECUTE = 32¶
- TRAVERSE = 32¶
- DELETE_CHILD = 64¶
- READ_ATTRS = 128¶
- WRITE_ATTRS = 256¶
- DELETE = 65536¶
- SYNCHRONIZE = 1048576¶
- PROCESS_QUERY_INFORMATION = 1024¶
Share Access constants.
- class os.windows.native_api.OpenOptions¶
File Open options.
- BACKUP_INTENT = 16384¶
- SYNCHRONOUS_IO_NON_ALERT = 32¶
- DELETE_ON_CLOSE = 4096¶
- OPEN_REPARSE_POINT = 2097152¶
- class os.windows.native_api.Wait¶
Constants for WaitFor* functions.
- OBJECT = 0¶
- ABANDONED = 128¶
- TIMEOUT = 258¶
- FAILED = 4294967295¶
- INFINITE = 4294967295¶
- class os.windows.native_api.Status¶
Error constants.
- ACCESS_DENIED = 3221225506¶
- OBJECT_NAME_NOT_FOUND = 3221225524¶
- OBJECT_PATH_NOT_FOUND = 3221225530¶
- SHARING_VIOLATION = 3221225539¶
- DELETE_PENDING = 3221225558¶
- DIRECTORY_NOT_EMPTY = 3221225729¶
- CANNOT_DELETE = 3221225761¶
- NO_MORE_FILES = 2147483654¶
- msgs: ClassVar[dict[int, str]]¶
- class os.windows.native_api.IOStatusBlock¶
Bases:
ctypes.StructureMap IO_STATUS_BLOCK structure.
- _fields_ = [('status',), ('information',)]¶
- class os.windows.native_api.ReparseGUIDDataBuffer¶
Bases:
ctypes.StructureMap Windows REPARSE_GUID_DATA_BUFFER structure.
- _fields_ = [('tag',), ('length',), ('reserved',), ('guid',), ('data',)]¶
- class os.windows.native_api.UnicodeString(value: str | None = None, max_length: int = 0)¶
Bases:
ctypes.StructureMap UNICODE_STRING structure.
- _fields_ = [('length',), ('maximum_length',), ('buffer',)]¶
- __len__() int¶
Return the length of the Unicode string.
- os.windows.native_api.W32_EPOCH_OFFSET = 11644473600¶
- class os.windows.native_api.FileTime(t: datetime.datetime)¶
Bases:
ctypes.StructureMap FILETIME structure.
- property filetime: int¶
Filetime.
- property as_datetime: datetime.datetime¶
Convert to datetime object.
- _fields_ = [('filetime_low',), ('filetime_high',)]¶
- __str__() str¶
Return string representation of file time.
- class os.windows.native_api.LargeFileTime(t: datetime.datetime)¶
Bases:
ctypes.StructureMap filetime implemented using LARGE_INTEGER.
- property as_datetime: datetime.datetime¶
Convert to datetime object.
- _fields_ = [('filetime',)]¶
- __str__() str¶
Return string representation of large file time.
- class os.windows.native_api.FindData¶
Bases:
ctypes.StructureMap Windows WIN32_FIND_DATA structure.
- _fields_ = [('file_attributes',), ('creation_time',), ('last_access_time',), ('last_write_time',),...¶
- class os.windows.native_api.FileInfo¶
Declaration of structures returned by QueryInformationFile.
- class ReparsePoint¶
Bases:
ctypes.StructureReparse point information structure.
- _fields_ = [('file_reference',), ('tag',)]¶
- class_id = 33¶
- class Disposition¶
Bases:
ctypes.StructureFile disposition information structure.
- _fields_ = [('delete_file',)]¶
- class_id = 13¶
- class Internal¶
Bases:
ctypes.StructureFile internal information structure.
- _fields_ = [('index_number',)]¶
- class_id = 6¶
- class os.windows.native_api.ObjectInfo¶
Declaration of structures returned by QueryObjectInformation.
- class os.windows.native_api.ProcessInfo¶
Declaration of structure returned by QueryInformationProcess.
- class Basic¶
Bases:
ctypes.StructureBasic process information structure.
- class_id = 0¶
- _fields_ = [('exit_status',), ('peb',), ('affinity_mask',), ('base_priority',), ('pid',), ('ppid',)]¶
- STILL_ACTIVE = 259¶
- class os.windows.native_api.ObjectAttributes(name: UnicodeString, parent: ctypes.wintypes.HANDLE | None = None)¶
Bases:
ctypes.StructureOBJECT_ATTRIBUTES structure.
- OBJ_CASE_INSENSITIVE = 64¶
- _fields_ = [('length',), ('root_directory',), ('object_name',), ('attributes',), ('security_descriptor',),...¶
- class os.windows.native_api.NT¶
Container for Windows NT API function bindings.
- FindFirstFile¶
- FindClose¶
- FsControlFile¶
- Sleep¶
- GetVolumePathName¶
- SetInformationFile¶
- QueryInformationFile¶
- QueryAttributesFile¶
- OpenFile¶
- QueryDirectoryFile¶
- Close¶
- QueryInformationProcess¶
- WaitForMultipleObjects¶
- OpenProcess¶
- QueryObject¶
- classmethod init_api() None¶
Init api.
- exception os.windows.native_api.NTExceptionError(status: int, message: str, origin: str | None = None)¶
Bases:
e3.error.E3ErrorException raised for Windows NT API errors.
- __str__() str¶
Return string representation of NT exception with status code.
- os.windows.native_api.NTException¶