1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../../../css/manpage.css" type="text/css" />
7<title>TryInitialize</title>
8  </head>
9  <body>
10<h1><CODE><a href="../../../nn/Overview.html">nn</a>::<a href="../../../nn/os/Overview.html">os</a>::<a href="../../../nn/os/StackMemory/Overview.html">StackMemory</a>::TryInitialize</CODE> Member Function</h1>
11<h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14<a href="../../../nn/Result/Overview.html">Result</a> TryInitialize(
15     void * pMem,
16     size_t size
17);
18</pre>
19    </div>
20<h2>Arguments</h2>
21    <div class="section">
22      <table class="arguments">
23        <thead>
24          <tr>
25            <td width="15" />
26<th>Name</th>
27<td>Description</td>
28          </tr>
29        </thead>
30        <tr>
31<td>in</td>
32<th>pMem</th>
33<td>Pointer to the beginning of the memory region to partition. Must be 4096-byte aligned.</td>
34        </tr>
35        <tr>
36<td>in</td>
37<th>size</th>
38<td>Size of memory region to partition. The <SPAN class="argument">size</SPAN> argument must be a multiple of <CODE>4096</CODE>.</td>
39        </tr> </table>
40    </div>
41<h2>Return Values</h2>
42<div class="section">Returns whether process was successful. </div>
43<h2>Description</h2>
44    <div class="section">
45<p>Tries to partition a memory region.</p><p>Remaps the memory region specified in the arguments to a different address allocated with 4 KB of unmapped memory before and after. Once that is done, the specified address range cannot be accessed until <CODE>Finalize</CODE> is called. Call <a href="../../../nn/os/MemoryBlockBase/GetAddress.html"><CODE>MemoryBlockBase::GetAddress</CODE></a> to get a new map address.</p><p>
46This function can only partition memory allocated from the heap region. It cannot partition buffers allocated statically from the code region, and it cannot partition regions in device memory.
47            </p><p>
48If the region is already initialized, if the alignment restrictions of the arguments are not met, if the specified region cannot be partitioned by this function, or if address mapping fails internally, this function returns an error and fails.
49            </p></div>
50<h2>Revision History</h2>
51    <div class="section">
52      <dl class="history">
53        <dt>2011/08/10</dt>
54<dd>Added description of the region that can be partitioned.<br />
55        </dd>
56        <dt>2011/06/22</dt>
57<dd>Initial version.<br />
58        </dd>
59      </dl>
60    </div>
61  <hr><p>CONFIDENTIAL</p></body>
62</html>
63