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

556 lines
58 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>12. windows.alpc Advanced Local Procedure Call &#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="13. windows.rpc ALPC-based Windows RPC" href="rpc.html" />
<link rel="prev" title="11. windows.crypto CryptoAPI" href="crypto.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="rpc.html" title="13. windows.rpc ALPC-based Windows RPC"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="crypto.html" title="11. windows.crypto CryptoAPI"
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">12. </span><code class="docutils literal notranslate"><span class="pre">windows.alpc</span></code> Advanced Local Procedure Call</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-windows.alpc">
<span id="windows-alpc-advanced-local-procedure-call"></span><h1><span class="section-number">12. </span><code class="docutils literal notranslate"><span class="pre">windows.alpc</span></code> Advanced Local Procedure Call<a class="headerlink" href="#module-windows.alpc" title="Link to this heading"></a></h1>
<p>The <a class="reference internal" href="#module-windows.alpc" title="windows.alpc"><code class="xref py py-mod docutils literal notranslate"><span class="pre">windows.alpc</span></code></a> module regroups the classes that permits to send and receive
ALPC messages over an ALPC port and the classes representing these messages.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>See samples:</p>
<blockquote>
<div><ul class="simple">
<li><p><a class="reference internal" href="sample.html#sample-alpc"><span class="std std-ref">simple alpc communication</span></a></p></li>
<li><p><a class="reference internal" href="sample.html#sample-advanced-alpc"><span class="std std-ref">advanced alpc communication</span></a></p></li>
</ul>
</div></blockquote>
</div>
<section id="alpc-message">
<h2><span class="section-number">12.1. </span>ALPC Message<a class="headerlink" href="#alpc-message" title="Link to this heading"></a></h2>
<dl class="py class">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.alpc.</span></span><span class="sig-name descname"><span class="pre">AlpcMessage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msg_or_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4096</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attributes</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/alpc.html#AlpcMessage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.AlpcMessage" title="Link to this definition"></a></dt>
<dd><p>Represent a full ALPC Message: a <a class="reference internal" href="#windows.alpc.AlpcMessagePort" title="windows.alpc.AlpcMessagePort"><code class="xref py py-class docutils literal notranslate"><span class="pre">AlpcMessagePort</span></code></a> and a <a class="reference internal" href="#windows.alpc.MessageAttribute" title="windows.alpc.MessageAttribute"><code class="xref py py-class docutils literal notranslate"><span class="pre">MessageAttribute</span></code></a></p>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.allocated_attributes">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">allocated_attributes</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.allocated_attributes" title="Link to this definition"></a></dt>
<dd><p>The list of allocated attributes</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>[<a class="reference internal" href="generated.html#windows.generated_def.Flag" title="windows.generated_def.Flag"><code class="xref py py-class docutils literal notranslate"><span class="pre">Flag</span></code></a>]</p>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.context_attribute">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">context_attribute</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.context_attribute" title="Link to this definition"></a></dt>
<dd><p>The <a class="reference internal" href="windef_generated.html#windows.generated_def.ALPC_MESSAGE_CONTEXT_ATTRIBUTE" title="windows.generated_def.ALPC_MESSAGE_CONTEXT_ATTRIBUTE"><code class="xref py py-data docutils literal notranslate"><span class="pre">ALPC_MESSAGE_CONTEXT_ATTRIBUTE</span></code></a> of the message:</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ALPC_CONTEXT_ATTR</span></code></p>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.context_is_valid">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">context_is_valid</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.context_is_valid" title="Link to this definition"></a></dt>
<dd><p>True if <a class="reference internal" href="windef_generated.html#windows.generated_def.ALPC_MESSAGE_CONTEXT_ATTRIBUTE" title="windows.generated_def.ALPC_MESSAGE_CONTEXT_ATTRIBUTE"><code class="xref py py-data docutils literal notranslate"><span class="pre">ALPC_MESSAGE_CONTEXT_ATTRIBUTE</span></code></a> is a ValidAttributes</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.data">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">data</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.data" title="Link to this definition"></a></dt>
<dd><p>The data of the message (located after the PORT_MESSAGE header)</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.handle_attribute">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_attribute</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.handle_attribute" title="Link to this definition"></a></dt>
<dd><p>The <a class="reference internal" href="windef_generated.html#windows.generated_def.ALPC_MESSAGE_HANDLE_ATTRIBUTE" title="windows.generated_def.ALPC_MESSAGE_HANDLE_ATTRIBUTE"><code class="xref py py-data docutils literal notranslate"><span class="pre">ALPC_MESSAGE_HANDLE_ATTRIBUTE</span></code></a> of the message:</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ALPC_HANDLE_ATTR</span></code></p>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.handle_is_valid">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_is_valid</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.handle_is_valid" title="Link to this definition"></a></dt>
<dd><p>True if <a class="reference internal" href="windef_generated.html#windows.generated_def.ALPC_MESSAGE_HANDLE_ATTRIBUTE" title="windows.generated_def.ALPC_MESSAGE_HANDLE_ATTRIBUTE"><code class="xref py py-data docutils literal notranslate"><span class="pre">ALPC_MESSAGE_HANDLE_ATTRIBUTE</span></code></a> is a ValidAttributes</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.security_attribute">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">security_attribute</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.security_attribute" title="Link to this definition"></a></dt>
<dd><p>The <a class="reference internal" href="windef_generated.html#windows.generated_def.ALPC_MESSAGE_SECURITY_ATTRIBUTE" title="windows.generated_def.ALPC_MESSAGE_SECURITY_ATTRIBUTE"><code class="xref py py-data docutils literal notranslate"><span class="pre">ALPC_MESSAGE_SECURITY_ATTRIBUTE</span></code></a> of the message</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ALPC_SECURITY_ATTR</span></code></p>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.security_is_valid">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">security_is_valid</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.security_is_valid" title="Link to this definition"></a></dt>
<dd><p>True if <a class="reference internal" href="windef_generated.html#windows.generated_def.ALPC_MESSAGE_SECURITY_ATTRIBUTE" title="windows.generated_def.ALPC_MESSAGE_SECURITY_ATTRIBUTE"><code class="xref py py-data docutils literal notranslate"><span class="pre">ALPC_MESSAGE_SECURITY_ATTRIBUTE</span></code></a> is a ValidAttributes</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.type">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">type</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.type" title="Link to this definition"></a></dt>
<dd><p>The type of the message (<code class="docutils literal notranslate"><span class="pre">PORT_MESSAGE.u2.s2.Type</span></code>)</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.valid_attributes">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">valid_attributes</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.valid_attributes" title="Link to this definition"></a></dt>
<dd><p>The list of valid attributes</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>[<a class="reference internal" href="generated.html#windows.generated_def.Flag" title="windows.generated_def.Flag"><code class="xref py py-class docutils literal notranslate"><span class="pre">Flag</span></code></a>]</p>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.view_attribute">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">view_attribute</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.view_attribute" title="Link to this definition"></a></dt>
<dd><p>The <a class="reference internal" href="windef_generated.html#windows.generated_def.ALPC_MESSAGE_VIEW_ATTRIBUTE" title="windows.generated_def.ALPC_MESSAGE_VIEW_ATTRIBUTE"><code class="xref py py-data docutils literal notranslate"><span class="pre">ALPC_MESSAGE_VIEW_ATTRIBUTE</span></code></a> of the message:</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ALPC_DATA_VIEW_ATTR</span></code></p>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessage.view_is_valid">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">view_is_valid</span></span><a class="headerlink" href="#windows.alpc.AlpcMessage.view_is_valid" title="Link to this definition"></a></dt>
<dd><p>True if <a class="reference internal" href="windef_generated.html#windows.generated_def.ALPC_MESSAGE_VIEW_ATTRIBUTE" title="windows.generated_def.ALPC_MESSAGE_VIEW_ATTRIBUTE"><code class="xref py py-data docutils literal notranslate"><span class="pre">ALPC_MESSAGE_VIEW_ATTRIBUTE</span></code></a> is a ValidAttributes</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessagePort">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.alpc.</span></span><span class="sig-name descname"><span class="pre">AlpcMessagePort</span></span><a class="reference internal" href="_modules/windows/alpc.html#AlpcMessagePort"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.AlpcMessagePort" title="Link to this definition"></a></dt>
<dd><p>The effective ALPC Message composed of a <code class="docutils literal notranslate"><span class="pre">PORT_MESSAGE</span></code> structure followed by the data</p>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessagePort.data">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">data</span></span><a class="headerlink" href="#windows.alpc.AlpcMessagePort.data" title="Link to this definition"></a></dt>
<dd><p>The data of the message (located after the header)</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessagePort.datalen">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">datalen</span></span><a class="headerlink" href="#windows.alpc.AlpcMessagePort.datalen" title="Link to this definition"></a></dt>
<dd><p>The length of the data</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.AlpcMessagePort.from_buffer">
<em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_buffer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">object</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">C</span> <span class="pre">instance</span></span></span><a class="reference internal" href="_modules/windows/alpc.html#AlpcMessagePort.from_buffer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.AlpcMessagePort.from_buffer" title="Link to this definition"></a></dt>
<dd><p>create a C instance from a writeable buffer</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="windows.alpc.MessageAttribute">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.alpc.</span></span><span class="sig-name descname"><span class="pre">MessageAttribute</span></span><a class="reference internal" href="_modules/windows/alpc.html#MessageAttribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.MessageAttribute" title="Link to this definition"></a></dt>
<dd><p>The attributes of an ALPC message</p>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.MessageAttribute.allocated_list">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">allocated_list</span></span><a class="headerlink" href="#windows.alpc.MessageAttribute.allocated_list" title="Link to this definition"></a></dt>
<dd><p>The list of allocated attributes</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>[<a class="reference internal" href="generated.html#windows.generated_def.Flag" title="windows.generated_def.Flag"><code class="xref py py-class docutils literal notranslate"><span class="pre">Flag</span></code></a>]</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.MessageAttribute.is_allocated">
<span class="sig-name descname"><span class="pre">is_allocated</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">attribute</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/windows/alpc.html#MessageAttribute.is_allocated"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.MessageAttribute.is_allocated" title="Link to this definition"></a></dt>
<dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if <code class="docutils literal notranslate"><span class="pre">attribute</span></code> is allocated</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.MessageAttribute.is_valid">
<span class="sig-name descname"><span class="pre">is_valid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">attribute</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/windows/alpc.html#MessageAttribute.is_valid"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.MessageAttribute.is_valid" title="Link to this definition"></a></dt>
<dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if <code class="docutils literal notranslate"><span class="pre">attribute</span></code> is valid</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="windows.alpc.MessageAttribute.valid_list">
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">valid_list</span></span><a class="headerlink" href="#windows.alpc.MessageAttribute.valid_list" title="Link to this definition"></a></dt>
<dd><p>The list of valid attributes</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>[<a class="reference internal" href="generated.html#windows.generated_def.Flag" title="windows.generated_def.Flag"><code class="xref py py-class docutils literal notranslate"><span class="pre">Flag</span></code></a>]</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.MessageAttribute.with_all_attributes">
<em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">with_all_attributes</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/windows/alpc.html#MessageAttribute.with_all_attributes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.MessageAttribute.with_all_attributes" title="Link to this definition"></a></dt>
<dd><p>Create a new <a class="reference internal" href="#windows.alpc.MessageAttribute" title="windows.alpc.MessageAttribute"><code class="xref py py-class docutils literal notranslate"><span class="pre">MessageAttribute</span></code></a> with the following attributes allocated:</p>
<ul class="simple">
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ALPC_MESSAGE_SECURITY_ATTRIBUTE</span></code></p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ALPC_MESSAGE_VIEW_ATTRIBUTE</span></code></p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ALPC_MESSAGE_CONTEXT_ATTRIBUTE</span></code></p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ALPC_MESSAGE_HANDLE_ATTRIBUTE</span></code></p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ALPC_MESSAGE_TOKEN_ATTRIBUTE</span></code></p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ALPC_MESSAGE_DIRECT_ATTRIBUTE</span></code></p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE</span></code></p></li>
</ul>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#windows.alpc.MessageAttribute" title="windows.alpc.MessageAttribute"><code class="xref py py-class docutils literal notranslate"><span class="pre">MessageAttribute</span></code></a></p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.MessageAttribute.with_attributes">
<em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">with_attributes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">attributes</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/windows/alpc.html#MessageAttribute.with_attributes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.MessageAttribute.with_attributes" title="Link to this definition"></a></dt>
<dd><p>Create a new <a class="reference internal" href="#windows.alpc.MessageAttribute" title="windows.alpc.MessageAttribute"><code class="xref py py-class docutils literal notranslate"><span class="pre">MessageAttribute</span></code></a> with <code class="docutils literal notranslate"><span class="pre">attributes</span></code> allocated</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#windows.alpc.MessageAttribute" title="windows.alpc.MessageAttribute"><code class="xref py py-class docutils literal notranslate"><span class="pre">MessageAttribute</span></code></a></p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<section id="alpc-client">
<h2><span class="section-number">12.2. </span>ALPC client<a class="headerlink" href="#alpc-client" title="Link to this heading"></a></h2>
<dl class="py class">
<dt class="sig sig-object py" id="windows.alpc.AlpcClient">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.alpc.</span></span><span class="sig-name descname"><span class="pre">AlpcClient</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">port_name</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/alpc.html#AlpcClient"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.AlpcClient" title="Link to this definition"></a></dt>
<dd><p>An ALPC client able to connect to a port and send/receive messages</p>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.AlpcClient.connect_to_port">
<span class="sig-name descname"><span class="pre">connect_to_port</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">port_name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">connect_message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_attr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_attr_flags</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">65536</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obj_attr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">flags</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">ALPC_MSGFLG_SYNC_REQUEST(0x20000)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</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/alpc.html#AlpcClient.connect_to_port"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.AlpcClient.connect_to_port" title="Link to this definition"></a></dt>
<dd><p>Connect to the ALPC port <code class="docutils literal notranslate"><span class="pre">port_name</span></code>. Most of the parameters have defauls value is <code class="docutils literal notranslate"><span class="pre">None</span></code> is passed.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>connect_message</strong> (<a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><em>AlpcMessage</em></a>) The message send with the connection request, if not <code class="docutils literal notranslate"><span class="pre">None</span></code> the function will return an <a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><code class="xref py py-class docutils literal notranslate"><span class="pre">AlpcMessage</span></code></a></p></li>
<li><p><strong>port_attr</strong> (<em>ALPC_PORT_ATTRIBUTES</em>) The port attributes, one with default value will be used if this parameter is <code class="docutils literal notranslate"><span class="pre">None</span></code></p></li>
<li><p><strong>port_attr_flags</strong> (<em>int</em>) <code class="docutils literal notranslate"><span class="pre">ALPC_PORT_ATTRIBUTES.Flags</span></code> used if <code class="docutils literal notranslate"><span class="pre">port_attr</span></code> is <code class="docutils literal notranslate"><span class="pre">None</span></code> (MUTUALY EXCLUSINVE WITH <code class="docutils literal notranslate"><span class="pre">port_attr</span></code>)</p></li>
<li><p><strong>obj_attr</strong> (<a class="reference internal" href="winstructs_generated.html#windows.generated_def.winstructs.OBJECT_ATTRIBUTES" title="windows.generated_def.winstructs.OBJECT_ATTRIBUTES"><em>OBJECT_ATTRIBUTES</em></a>) The attributes of the port (can be None)</p></li>
<li><p><strong>flags</strong> (<em>int</em>) The flags for <code class="xref py py-func docutils literal notranslate"><span class="pre">NtAlpcConnectPort()</span></code></p></li>
<li><p><strong>timeout</strong> (<em>int</em>) The timeout of the request</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="windows.alpc.AlpcClient.port_name">
<span class="sig-name descname"><span class="pre">port_name</span></span><a class="headerlink" href="#windows.alpc.AlpcClient.port_name" title="Link to this definition"></a></dt>
<dd><p>The name of the ALPC port the client is connect to.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.AlpcClient.recv">
<span class="sig-name descname"><span class="pre">recv</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">receive_msg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">flags</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.alpc.AlpcClient.recv" title="Link to this definition"></a></dt>
<dd><p>Receive a message into <code class="docutils literal notranslate"><span class="pre">alpc_message</span></code> with <code class="docutils literal notranslate"><span class="pre">flags</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>receive_msg</strong> (<a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><em>AlpcMessage</em></a><em> or </em><em>None</em>) The message to send. If <code class="docutils literal notranslate"><span class="pre">receive_msg</span></code> is a <code class="docutils literal notranslate"><span class="pre">None</span></code> it create and return a simple <a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><code class="xref py py-class docutils literal notranslate"><span class="pre">AlpcMessage</span></code></a></p></li>
<li><p><strong>flags</strong> (<em>int</em>) The flags for <code class="xref py py-func docutils literal notranslate"><span class="pre">NtAlpcSendWaitReceivePort()</span></code></p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.AlpcClient.send">
<span class="sig-name descname"><span class="pre">send</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">alpc_message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">flags</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.alpc.AlpcClient.send" title="Link to this definition"></a></dt>
<dd><p>Send the <code class="docutils literal notranslate"><span class="pre">alpc_message</span></code> with <code class="docutils literal notranslate"><span class="pre">flags</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>alpc_message</strong> (<a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><em>AlpcMessage</em></a><em> or </em><em>str</em>) The message to send. If <code class="docutils literal notranslate"><span class="pre">alpc_message</span></code> is a <code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code> it build an AlpcMessage with the message as data.</p></li>
<li><p><strong>flags</strong> (<em>int</em>) The flags for <code class="xref py py-func docutils literal notranslate"><span class="pre">NtAlpcSendWaitReceivePort()</span></code></p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.AlpcClient.send_receive">
<span class="sig-name descname"><span class="pre">send_receive</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">alpc_message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">receive_msg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">flags</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">ALPC_MSGFLG_SYNC_REQUEST(0x20000)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</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="headerlink" href="#windows.alpc.AlpcClient.send_receive" title="Link to this definition"></a></dt>
<dd><p>Send and receive a message with <code class="docutils literal notranslate"><span class="pre">flags</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>alpc_message</strong> (<a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><em>AlpcMessage</em></a><em> or </em><em>str</em>) The message to send. If <code class="docutils literal notranslate"><span class="pre">alpc_message</span></code> is a <code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code> it build an AlpcMessage with the message as data.</p></li>
<li><p><strong>receive_msg</strong> (<a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><em>AlpcMessage</em></a><em> or </em><em>None</em>) The message to send. If <code class="docutils literal notranslate"><span class="pre">receive_msg</span></code> is a <code class="docutils literal notranslate"><span class="pre">None</span></code> it create and return a simple <a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><code class="xref py py-class docutils literal notranslate"><span class="pre">AlpcMessage</span></code></a></p></li>
<li><p><strong>flags</strong> (<em>int</em>) The flags for <code class="xref py py-func docutils literal notranslate"><span class="pre">NtAlpcSendWaitReceivePort()</span></code></p></li>
</ul>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<section id="alpc-server">
<h2><span class="section-number">12.3. </span>ALPC Server<a class="headerlink" href="#alpc-server" title="Link to this heading"></a></h2>
<dl class="py class">
<dt class="sig sig-object py" id="windows.alpc.AlpcServer">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">windows.alpc.</span></span><span class="sig-name descname"><span class="pre">AlpcServer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">port_name</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/alpc.html#AlpcServer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.AlpcServer" title="Link to this definition"></a></dt>
<dd><p>An ALPC server able to create a port, accept connections and send/receive messages</p>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.AlpcServer.accept_connection">
<span class="sig-name descname"><span class="pre">accept_connection</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msg</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_attr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_context</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/alpc.html#AlpcServer.accept_connection"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.AlpcServer.accept_connection" title="Link to this definition"></a></dt>
<dd><p>Accept the connection for a <code class="docutils literal notranslate"><span class="pre">LPC_CONNECTION_REQUEST</span></code> message.
<code class="docutils literal notranslate"><span class="pre">msg.MessageId</span></code> must be the same as the connection requesting message.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>msg</strong> (<a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><em>AlpcMessage</em></a>) The response message.</p></li>
<li><p><strong>port_attr</strong> (<em>ALPC_PORT_ATTRIBUTES</em>) The attributes of the port, one with default value will be used if this parameter is <code class="docutils literal notranslate"><span class="pre">None</span></code></p></li>
<li><p><strong>port_context</strong> (<em>PVOID</em>) A value that will be copied in <code class="docutils literal notranslate"><span class="pre">ALPC_CONTEXT_ATTR.PortContext</span></code> of every message on this connection.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.AlpcServer.create_port">
<span class="sig-name descname"><span class="pre">create_port</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">port_name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">msglen</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_attr_flags</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obj_attr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_attr</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/alpc.html#AlpcServer.create_port"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#windows.alpc.AlpcServer.create_port" title="Link to this definition"></a></dt>
<dd><p>Create the ALPC port <code class="docutils literal notranslate"><span class="pre">port_name</span></code>. Most of the parameters have defauls value is <code class="docutils literal notranslate"><span class="pre">None</span></code> is passed.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>port_name</strong> (<em>str</em>) The ports name to create.</p></li>
<li><p><strong>msglen</strong> (<em>int</em>) <code class="docutils literal notranslate"><span class="pre">ALPC_PORT_ATTRIBUTES.MaxMessageLength</span></code> used if <code class="docutils literal notranslate"><span class="pre">port_attr</span></code> is <code class="docutils literal notranslate"><span class="pre">None</span></code> (MUTUALY EXCLUSINVE WITH <code class="docutils literal notranslate"><span class="pre">port_attr</span></code>)</p></li>
<li><p><strong>port_attr_flags</strong> (<em>int</em>) <code class="docutils literal notranslate"><span class="pre">ALPC_PORT_ATTRIBUTES.Flags</span></code> used if <code class="docutils literal notranslate"><span class="pre">port_attr</span></code> is <code class="docutils literal notranslate"><span class="pre">None</span></code> (MUTUALY EXCLUSINVE WITH <code class="docutils literal notranslate"><span class="pre">port_attr</span></code>)</p></li>
<li><p><strong>obj_attr</strong> (<a class="reference internal" href="winstructs_generated.html#windows.generated_def.winstructs.OBJECT_ATTRIBUTES" title="windows.generated_def.winstructs.OBJECT_ATTRIBUTES"><em>OBJECT_ATTRIBUTES</em></a>) The attributes of the port, one with default value will be used if this parameter is <code class="docutils literal notranslate"><span class="pre">None</span></code></p></li>
<li><p><strong>port_attr</strong> (<em>ALPC_PORT_ATTRIBUTES</em>) The port attributes, one with default value will be used if this parameter is <code class="docutils literal notranslate"><span class="pre">None</span></code></p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.AlpcServer.recv">
<span class="sig-name descname"><span class="pre">recv</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">receive_msg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">flags</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.alpc.AlpcServer.recv" title="Link to this definition"></a></dt>
<dd><p>Receive a message into <code class="docutils literal notranslate"><span class="pre">alpc_message</span></code> with <code class="docutils literal notranslate"><span class="pre">flags</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>receive_msg</strong> (<a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><em>AlpcMessage</em></a><em> or </em><em>None</em>) The message to send. If <code class="docutils literal notranslate"><span class="pre">receive_msg</span></code> is a <code class="docutils literal notranslate"><span class="pre">None</span></code> it create and return a simple <a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><code class="xref py py-class docutils literal notranslate"><span class="pre">AlpcMessage</span></code></a></p></li>
<li><p><strong>flags</strong> (<em>int</em>) The flags for <code class="xref py py-func docutils literal notranslate"><span class="pre">NtAlpcSendWaitReceivePort()</span></code></p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.AlpcServer.send">
<span class="sig-name descname"><span class="pre">send</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">alpc_message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">flags</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#windows.alpc.AlpcServer.send" title="Link to this definition"></a></dt>
<dd><p>Send the <code class="docutils literal notranslate"><span class="pre">alpc_message</span></code> with <code class="docutils literal notranslate"><span class="pre">flags</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>alpc_message</strong> (<a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><em>AlpcMessage</em></a><em> or </em><em>str</em>) The message to send. If <code class="docutils literal notranslate"><span class="pre">alpc_message</span></code> is a <code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code> it build an AlpcMessage with the message as data.</p></li>
<li><p><strong>flags</strong> (<em>int</em>) The flags for <code class="xref py py-func docutils literal notranslate"><span class="pre">NtAlpcSendWaitReceivePort()</span></code></p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="windows.alpc.AlpcServer.send_receive">
<span class="sig-name descname"><span class="pre">send_receive</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">alpc_message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">receive_msg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">flags</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">ALPC_MSGFLG_SYNC_REQUEST(0x20000)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</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="headerlink" href="#windows.alpc.AlpcServer.send_receive" title="Link to this definition"></a></dt>
<dd><p>Send and receive a message with <code class="docutils literal notranslate"><span class="pre">flags</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>alpc_message</strong> (<a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><em>AlpcMessage</em></a><em> or </em><em>str</em>) The message to send. If <code class="docutils literal notranslate"><span class="pre">alpc_message</span></code> is a <code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code> it build an AlpcMessage with the message as data.</p></li>
<li><p><strong>receive_msg</strong> (<a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><em>AlpcMessage</em></a><em> or </em><em>None</em>) The message to send. If <code class="docutils literal notranslate"><span class="pre">receive_msg</span></code> is a <code class="docutils literal notranslate"><span class="pre">None</span></code> it create and return a simple <a class="reference internal" href="#windows.alpc.AlpcMessage" title="windows.alpc.AlpcMessage"><code class="xref py py-class docutils literal notranslate"><span class="pre">AlpcMessage</span></code></a></p></li>
<li><p><strong>flags</strong> (<em>int</em>) The flags for <code class="xref py py-func docutils literal notranslate"><span class="pre">NtAlpcSendWaitReceivePort()</span></code></p></li>
</ul>
</dd>
</dl>
</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="#">12. <code class="docutils literal notranslate"><span class="pre">windows.alpc</span></code> Advanced Local Procedure Call</a><ul>
<li><a class="reference internal" href="#alpc-message">12.1. ALPC Message</a><ul>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage"><code class="docutils literal notranslate"><span class="pre">AlpcMessage</span></code></a><ul>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.allocated_attributes"><code class="docutils literal notranslate"><span class="pre">allocated_attributes</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.context_attribute"><code class="docutils literal notranslate"><span class="pre">context_attribute</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.context_is_valid"><code class="docutils literal notranslate"><span class="pre">context_is_valid</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.data"><code class="docutils literal notranslate"><span class="pre">data</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.handle_attribute"><code class="docutils literal notranslate"><span class="pre">handle_attribute</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.handle_is_valid"><code class="docutils literal notranslate"><span class="pre">handle_is_valid</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.security_attribute"><code class="docutils literal notranslate"><span class="pre">security_attribute</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.security_is_valid"><code class="docutils literal notranslate"><span class="pre">security_is_valid</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.type"><code class="docutils literal notranslate"><span class="pre">type</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.valid_attributes"><code class="docutils literal notranslate"><span class="pre">valid_attributes</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.view_attribute"><code class="docutils literal notranslate"><span class="pre">view_attribute</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessage.view_is_valid"><code class="docutils literal notranslate"><span class="pre">view_is_valid</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessagePort"><code class="docutils literal notranslate"><span class="pre">AlpcMessagePort</span></code></a><ul>
<li><a class="reference internal" href="#windows.alpc.AlpcMessagePort.data"><code class="docutils literal notranslate"><span class="pre">data</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessagePort.datalen"><code class="docutils literal notranslate"><span class="pre">datalen</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcMessagePort.from_buffer"><code class="docutils literal notranslate"><span class="pre">from_buffer()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#windows.alpc.MessageAttribute"><code class="docutils literal notranslate"><span class="pre">MessageAttribute</span></code></a><ul>
<li><a class="reference internal" href="#windows.alpc.MessageAttribute.allocated_list"><code class="docutils literal notranslate"><span class="pre">allocated_list</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.MessageAttribute.is_allocated"><code class="docutils literal notranslate"><span class="pre">is_allocated()</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.MessageAttribute.is_valid"><code class="docutils literal notranslate"><span class="pre">is_valid()</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.MessageAttribute.valid_list"><code class="docutils literal notranslate"><span class="pre">valid_list</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.MessageAttribute.with_all_attributes"><code class="docutils literal notranslate"><span class="pre">with_all_attributes()</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.MessageAttribute.with_attributes"><code class="docutils literal notranslate"><span class="pre">with_attributes()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#alpc-client">12.2. ALPC client</a><ul>
<li><a class="reference internal" href="#windows.alpc.AlpcClient"><code class="docutils literal notranslate"><span class="pre">AlpcClient</span></code></a><ul>
<li><a class="reference internal" href="#windows.alpc.AlpcClient.connect_to_port"><code class="docutils literal notranslate"><span class="pre">connect_to_port()</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcClient.port_name"><code class="docutils literal notranslate"><span class="pre">port_name</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcClient.recv"><code class="docutils literal notranslate"><span class="pre">recv()</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcClient.send"><code class="docutils literal notranslate"><span class="pre">send()</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcClient.send_receive"><code class="docutils literal notranslate"><span class="pre">send_receive()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#alpc-server">12.3. ALPC Server</a><ul>
<li><a class="reference internal" href="#windows.alpc.AlpcServer"><code class="docutils literal notranslate"><span class="pre">AlpcServer</span></code></a><ul>
<li><a class="reference internal" href="#windows.alpc.AlpcServer.accept_connection"><code class="docutils literal notranslate"><span class="pre">accept_connection()</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcServer.create_port"><code class="docutils literal notranslate"><span class="pre">create_port()</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcServer.recv"><code class="docutils literal notranslate"><span class="pre">recv()</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcServer.send"><code class="docutils literal notranslate"><span class="pre">send()</span></code></a></li>
<li><a class="reference internal" href="#windows.alpc.AlpcServer.send_receive"><code class="docutils literal notranslate"><span class="pre">send_receive()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="crypto.html"
title="previous chapter"><span class="section-number">11. </span><code class="docutils literal notranslate"><span class="pre">windows.crypto</span></code> CryptoAPI</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="rpc.html"
title="next chapter"><span class="section-number">13. </span><code class="docutils literal notranslate"><span class="pre">windows.rpc</span></code> ALPC-based Windows RPC</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/alpc.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="rpc.html" title="13. windows.rpc ALPC-based Windows RPC"
>next</a> |</li>
<li class="right" >
<a href="crypto.html" title="11. windows.crypto CryptoAPI"
>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">12. </span><code class="docutils literal notranslate"><span class="pre">windows.alpc</span></code> Advanced Local Procedure Call</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>