File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/__pycache__/win_osinfo.cpython-310.pyc
o
�N�gO � @ s� d Z ddlZdZzddlmZmZmZmZ ddlZddl Z W n
e
efy+ dZY nw er5ejddd�Z
dd � Zd
d� Zdd
� Zdd� ZdS )z&
Get Version information from Windows
� NT)�BYTE�DWORD�WCHAR�WORDF�kernel32)�use_last_errorc C s t sdS dS )z4
Only load if Win32 Libraries are installed
)FzThis utility requires pywin32Z
win_osinfo)� HAS_WIN32� r r �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/win_osinfo.py�__virtual__ s r c C s0 t sdS G dd� dtj�} G dd� d| �}|� S )z�
Helper function to return the results of the GetVersionExW Windows API call.
It is a ctypes Structure that contains Windows OS Version information.
Returns:
class: An instance of a class containing version info
Nc sH e Zd Zdefdefdefdefdefded ffZ� fdd �Z� ZS )
z)os_version_info_ex.<locals>.OSVersionInfo�dwOSVersionInfoSize�dwMajorVersion�dwMinorVersion�
dwBuildNumber�dwPlatformIdZszCSDVersion� c s2 t � j|i |�� t�| �| _t�t�| �� d S )N)�super�__init__�ctypes�sizeofr r Z
GetVersionExW�byref)�self�args�kwds�� __class__r r
r : s z2os_version_info_ex.<locals>.OSVersionInfo.__init__)�__name__�
__module__�__qualname__r r �_fields_r �
__classcell__r r r r
�
OSVersionInfo0 s
� r! c @ s. e Zd ZdefdefdefdefdeffZdS )z+os_version_info_ex.<locals>.OSVersionInfoEx�wServicePackMajor�wServicePackMinor�
wSuiteMask�wProductTypeZ wReservedN)r r r r r r r r r r
�OSVersionInfoEx? s �r&