Files
hakril-PythonForWindows/docs/build/html/winproxy.html
T
2025-08-14 10:37:06 +02:00

298 lines
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>4. windows.winproxy Windows API &#8212; PythonForWindows 1.0.4 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="_static/classic.css?v=def86cc0" />
<link rel="stylesheet" type="text/css" href="_static/css/mbasic.css?v=957880af" />
<script src="_static/documentation_options.js?v=71272d9f"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="5. windows.security Security Descriptor &amp; related" href="security.html" />
<link rel="prev" title="3. windows.native_exec Native Code Execution" href="native_exec.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="security.html" title="5. windows.security Security Descriptor &amp; related"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="native_exec.html" title="3. windows.native_exec Native Code Execution"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.4 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">4. </span><code class="docutils literal notranslate"><span class="pre">windows.winproxy</span></code> Windows API</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-windows.winproxy">
<span id="windows-winproxy-windows-api"></span><h1><span class="section-number">4. </span><code class="docutils literal notranslate"><span class="pre">windows.winproxy</span></code> Windows API<a class="headerlink" href="#module-windows.winproxy" title="Link to this heading"></a></h1>
<p><a class="reference internal" href="#module-windows.winproxy" title="windows.winproxy"><code class="xref py py-mod docutils literal notranslate"><span class="pre">windows.winproxy</span></code></a> tries to be a pythontic wrapper around windows API of various DLL.
It also heavily relies on <code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code> and <a class="reference internal" href="winfuncs_generated.html#module-windows.generated_def.winfuncs" title="windows.generated_def.winfuncs"><code class="xref py py-mod docutils literal notranslate"><span class="pre">windows.generated_def.winfuncs</span></code></a></p>
<dl class="simple">
<dt>Here are the things to know about <a class="reference internal" href="#module-windows.winproxy" title="windows.winproxy"><code class="xref py py-mod docutils literal notranslate"><span class="pre">windows.winproxy</span></code></a></dt><dd><ul class="simple">
<li><p>All of this is based on <a class="reference internal" href="winfuncs_generated.html#module-windows.generated_def.winfuncs" title="windows.generated_def.winfuncs"><code class="xref py py-mod docutils literal notranslate"><span class="pre">windows.generated_def.winfuncs</span></code></a></p></li>
<li><p>DLL is loaded the first time an API of it is called</p></li>
<li><p>All parameters can be passed by ordinal or keyword</p></li>
<li><p>The call will fail if an argument with default value <code class="docutils literal notranslate"><span class="pre">NeededParamater</span></code> have been called without another value.</p></li>
<li><p>The call will raise a subclass of <code class="xref py py-class docutils literal notranslate"><span class="pre">WindowsError</span></code> if it fails.</p></li>
<li><p>Some functions are transparent proxy it means that all parameters are mandatory</p></li>
</ul>
</dd>
</dl>
<section id="example-virtualalloc">
<h2><span class="section-number">4.1. </span>Example: <code class="docutils literal notranslate"><span class="pre">VirtualAlloc</span></code><a class="headerlink" href="#example-virtualalloc" title="Link to this heading"></a></h2>
<p>Exemple with the function <cite>VirtualAlloc</cite> in <a class="reference internal" href="#module-windows.winproxy" title="windows.winproxy"><code class="xref py py-mod docutils literal notranslate"><span class="pre">windows.winproxy</span></code></a></p>
<p>Documentation:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">windows</span>
<span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">VirtualAlloc</span>
<span class="c1"># &lt;function VirtualAlloc at 0x02ED63F0&gt;</span>
<span class="n">help</span><span class="p">(</span><span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">VirtualAlloc</span><span class="p">)</span>
<span class="c1"># Help on function VirtualAlloc in module windows.winproxy:</span>
<span class="c1"># VirtualAlloc(lpAddress=0, dwSize=NeededParameter, flAllocationType=MEM_COMMIT(0x1000L), flProtect=PAGE_EXECUTE_READWRITE(0x40L))</span>
<span class="c1"># Errcheck:</span>
<span class="c1"># raise Kernel32Error if result is 0</span>
</pre></div>
</div>
<p>Calling it</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">windows</span>
<span class="c1"># Ordinal arguments</span>
<span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">VirtualAlloc</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mh">0x1000</span><span class="p">)</span>
<span class="mi">34537472</span>
<span class="c1"># Keyword arguments</span>
<span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">VirtualAlloc</span><span class="p">(</span><span class="n">dwSize</span><span class="o">=</span><span class="mh">0x1000</span><span class="p">)</span>
<span class="mi">34603008</span>
<span class="c1"># NeededParameter must be provided</span>
<span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">VirtualAlloc</span><span class="p">()</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Traceback (most recent call last):</span>
<span class="sd">File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;</span>
<span class="sd">File &quot;windows\winproxy.py&quot;, line 264, in VirtualAlloc</span>
<span class="sd"> return VirtualAlloc.ctypes_function(lpAddress, dwSize, flAllocationType, flProtect)</span>
<span class="sd">File &quot;windows\winproxy.py&quot;, line 130, in perform_call</span>
<span class="sd"> raise TypeError(&quot;{0}: Missing Mandatory parameter &lt;{1}&gt;&quot;.format(self.func_name, param_name))</span>
<span class="sd">TypeError: VirtualAlloc: Missing Mandatory parameter &lt;dwSize&gt;</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="c1"># Error raises exception</span>
<span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">VirtualAlloc</span><span class="p">(</span><span class="n">dwSize</span><span class="o">=</span><span class="mh">0xffffffff</span><span class="p">)</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Traceback (most recent call last):</span>
<span class="sd">File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;</span>
<span class="sd">File &quot;windows\winproxy.py&quot;, line 264, in VirtualAlloc</span>
<span class="sd"> return VirtualAlloc.ctypes_function(lpAddress, dwSize, flAllocationType, flProtect)</span>
<span class="sd">File &quot;windows\winproxy.py&quot;, line 133, in perform_call</span>
<span class="sd"> return self._cprototyped(*args)</span>
<span class="sd">File &quot;windows\winproxy.py&quot;, line 59, in kernel32_error_check</span>
<span class="sd"> raise WinproxyError(func_name)</span>
<span class="sd">windows.winproxy.error.WinproxyError: None: [Error 8] Not enough storage is available to process this command.</span>
<span class="sd">&quot;&quot;&quot;</span>
</pre></div>
</div>
</section>
<section id="helper-functions">
<h2><span class="section-number">4.2. </span>Helper functions<a class="headerlink" href="#helper-functions" title="Link to this heading"></a></h2>
<dl class="py function">
<dt class="sig sig-object py" id="windows.winproxy.is_implemented">
<span class="sig-prename descclassname"><span class="pre">windows.winproxy.</span></span><span class="sig-name descname"><span class="pre">is_implemented</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">apiproxy</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/windows/winproxy/apiproxy.html#is_implemented"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.winproxy.is_implemented" title="Link to this definition"></a></dt>
<dd><p>Return <code class="xref py py-obj docutils literal notranslate"><span class="pre">True</span></code> if DLL/Api can be found</p>
<dl>
<dt>Example:</dt><dd><div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">is_implemented</span><span class="p">(</span><span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">NtWow64WriteVirtualMemory64</span><span class="p">)</span>
<span class="go">True</span>
</pre></div>
</div>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="windows.winproxy.resolve">
<span class="sig-prename descclassname"><span class="pre">windows.winproxy.</span></span><span class="sig-name descname"><span class="pre">resolve</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">apiproxy</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/windows/winproxy/apiproxy.html#resolve"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.winproxy.resolve" title="Link to this definition"></a></dt>
<dd><p>Resolve the address of <code class="docutils literal notranslate"><span class="pre">apiproxy</span></code>. Might raise if <code class="docutils literal notranslate"><span class="pre">apiproxy</span></code> is not implemented</p>
<dl>
<dt>Example:</dt><dd><div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="nb">hex</span><span class="p">(</span><span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">resolve</span><span class="p">(</span><span class="n">windows</span><span class="o">.</span><span class="n">winproxy</span><span class="o">.</span><span class="n">NtWow64WriteVirtualMemory64</span><span class="p">))</span>
<span class="go">&#39;0x77340520&#39;</span>
</pre></div>
</div>
</dd>
</dl>
</dd></dl>
</section>
<section id="winproxyerror">
<h2><span class="section-number">4.3. </span>WinproxyError<a class="headerlink" href="#winproxyerror" title="Link to this heading"></a></h2>
<p>All errors raised by winproxy functions are instance of <a class="reference internal" href="#windows.winproxy.WinproxyError" title="windows.winproxy.WinproxyError"><code class="xref py py-class docutils literal notranslate"><span class="pre">WinproxyError</span></code></a> (or subclasses)</p>
<dl class="py class">
<dt class="sig sig-object py" id="windows.winproxy.WinproxyError">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.winproxy.</span></span><span class="sig-name descname"><span class="pre">WinproxyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func_name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error_code</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/windows/winproxy/error.html#WinproxyError"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.winproxy.WinproxyError" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">OSError</span></code></p>
<dl class="py attribute">
<dt class="sig sig-object py" id="windows.winproxy.WinproxyError.api_name">
<span class="sig-name descname"><span class="pre">api_name</span></span><a class="headerlink" href="#windows.winproxy.WinproxyError.api_name" title="Link to this definition"></a></dt>
<dd><p>The name of the API that raised the exception</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.winproxy.WinproxyError.add_note">
<span class="sig-name descname"><span class="pre">add_note</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.winproxy.WinproxyError.add_note" title="Link to this definition"></a></dt>
<dd><p>Exception.add_note(note)
add a note to the exception</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="windows.winproxy.WinproxyError.errno">
<span class="sig-name descname"><span class="pre">errno</span></span><a class="headerlink" href="#windows.winproxy.WinproxyError.errno" title="Link to this definition"></a></dt>
<dd><p>POSIX exception code</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="windows.winproxy.WinproxyError.filename">
<span class="sig-name descname"><span class="pre">filename</span></span><a class="headerlink" href="#windows.winproxy.WinproxyError.filename" title="Link to this definition"></a></dt>
<dd><p>exception filename</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="windows.winproxy.WinproxyError.filename2">
<span class="sig-name descname"><span class="pre">filename2</span></span><a class="headerlink" href="#windows.winproxy.WinproxyError.filename2" title="Link to this definition"></a></dt>
<dd><p>second exception filename</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="windows.winproxy.WinproxyError.strerror">
<span class="sig-name descname"><span class="pre">strerror</span></span><a class="headerlink" href="#windows.winproxy.WinproxyError.strerror" title="Link to this definition"></a></dt>
<dd><p>exception strerror</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="windows.winproxy.WinproxyError.winerror">
<span class="sig-name descname"><span class="pre">winerror</span></span><a class="headerlink" href="#windows.winproxy.WinproxyError.winerror" title="Link to this definition"></a></dt>
<dd><p>Win32 exception code</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.winproxy.WinproxyError.with_traceback">
<span class="sig-name descname"><span class="pre">with_traceback</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#windows.winproxy.WinproxyError.with_traceback" title="Link to this definition"></a></dt>
<dd><p>Exception.with_traceback(tb)
set self.__traceback__ to tb and return self.</p>
</dd></dl>
</dd></dl>
</section>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<div>
<h3><a href="index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">4. <code class="docutils literal notranslate"><span class="pre">windows.winproxy</span></code> Windows API</a><ul>
<li><a class="reference internal" href="#example-virtualalloc">4.1. Example: <code class="docutils literal notranslate"><span class="pre">VirtualAlloc</span></code></a></li>
<li><a class="reference internal" href="#helper-functions">4.2. Helper functions</a><ul>
<li><a class="reference internal" href="#windows.winproxy.is_implemented"><code class="docutils literal notranslate"><span class="pre">is_implemented()</span></code></a></li>
<li><a class="reference internal" href="#windows.winproxy.resolve"><code class="docutils literal notranslate"><span class="pre">resolve()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#winproxyerror">4.3. WinproxyError</a><ul>
<li><a class="reference internal" href="#windows.winproxy.WinproxyError"><code class="docutils literal notranslate"><span class="pre">WinproxyError</span></code></a><ul>
<li><a class="reference internal" href="#windows.winproxy.WinproxyError.api_name"><code class="docutils literal notranslate"><span class="pre">api_name</span></code></a></li>
<li><a class="reference internal" href="#windows.winproxy.WinproxyError.add_note"><code class="docutils literal notranslate"><span class="pre">add_note()</span></code></a></li>
<li><a class="reference internal" href="#windows.winproxy.WinproxyError.errno"><code class="docutils literal notranslate"><span class="pre">errno</span></code></a></li>
<li><a class="reference internal" href="#windows.winproxy.WinproxyError.filename"><code class="docutils literal notranslate"><span class="pre">filename</span></code></a></li>
<li><a class="reference internal" href="#windows.winproxy.WinproxyError.filename2"><code class="docutils literal notranslate"><span class="pre">filename2</span></code></a></li>
<li><a class="reference internal" href="#windows.winproxy.WinproxyError.strerror"><code class="docutils literal notranslate"><span class="pre">strerror</span></code></a></li>
<li><a class="reference internal" href="#windows.winproxy.WinproxyError.winerror"><code class="docutils literal notranslate"><span class="pre">winerror</span></code></a></li>
<li><a class="reference internal" href="#windows.winproxy.WinproxyError.with_traceback"><code class="docutils literal notranslate"><span class="pre">with_traceback()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="native_exec.html"
title="previous chapter"><span class="section-number">3. </span><code class="docutils literal notranslate"><span class="pre">windows.native_exec</span></code> Native Code Execution</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="security.html"
title="next chapter"><span class="section-number">5. </span><code class="docutils literal notranslate"><span class="pre">windows.security</span></code> Security Descriptor &amp; related</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/winproxy.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="security.html" title="5. windows.security Security Descriptor &amp; related"
>next</a> |</li>
<li class="right" >
<a href="native_exec.html" title="3. windows.native_exec Native Code Execution"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">PythonForWindows 1.0.4 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href=""><span class="section-number">4. </span><code class="docutils literal notranslate"><span class="pre">windows.winproxy</span></code> Windows API</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2015-2020, Clement Rouault.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.3.7.
</div>
</body>
</html>