<div class="content" name="CERTTRANSDBEXTENSION" uuid="65b7bde4-e2a2-40dc-99b6-2312903dec37"><p>The CERTTRANSDBEXTENSION structure is encoded within a <span><a href="a94fb0b1-902f-43ea-9422-f2d24bcb10b6" data-linktype="relative-path">CERTTRANSBLOB</a></span>
structure. The CERTTRANSDBEXTENSION structure is used by the server to return <span><a href="c6451297-197d-4b4b-b786-3f3187b67b8f#gt_7a0f4b71-23ba-434f-b781-28053ed64879" data-linktype="relative-path">certificate</a></span>
extension information, as specified in <span><a href="https://go.microsoft.com/fwlink/?LinkId=90414" data-linktype="external">[RFC3280]</a></span>
section 4, that is associated with a request. This associated request to the
client occurs when the client performs a query by invoking the <span><a href="14dbe3e1-d0a3-41da-a910-b1f72826863f" data-linktype="relative-path">EnumAttributesOrExtensions</a></span>
method of the <span><a href="46496f1f-a631-42b3-a60e-33f95fb6fed1" data-linktype="relative-path">ICertAdminD</a></span>
interface.</p><dl>
<dd>
<div><pre> typedef struct _CERTTRANSDBEXTENSION {
   ULONG obwszName;
   LONG ExtFlags;
   DWORD cbValue;
   ULONG obValue;
 } CERTTRANSDBEXTENSION;
</pre></div>
</dd></dl><p><b>obwszName:</b>  An unsigned integer that
contains the offset from the beginning of the byte array buffer that is pointed
to by the <b>pb</b> member in the containing CERTTRANSBLOB structure to the
string representation of an <span><a href="c6451297-197d-4b4b-b786-3f3187b67b8f#gt_aaaf2f1a-0b0a-487e-a0f0-c3510a6091b2" data-linktype="relative-path">OID (1)</a></span> of this
extension (as specified in <span><a href="https://go.microsoft.com/fwlink/?LinkId=90594" data-linktype="external">[X680]</a></span>). The
string format is a null-terminated UNICODE string. The offset MUST be divisible
by 4.</p><p><b>ExtFlags:</b>  An integer value that
specifies the flags that are associated with the extension. The following
diagram shows its contents.</p><dl>
<dd>
<table>
 <tbody><tr>
  <th><p><br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>1<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>2<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>3<br/>0</p></th>
  <th><p><br/>1</p></th>
 </tr>
 <tr>
  <td>C</td>
  <td>D</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
  <td colspan="16">Nigiro</td>
 </tr>
</tbody></table>
</dd>
<dd>
<p><b>C (1 bit): </b>C is the
ExtensionCriticalFlag, as defined in section <span><a href="820f99c7-fdc6-4356-b533-9ddbe35d937c" data-linktype="relative-path">3.1.1.3</a></span>, the <b>Extension_Flags</b>
ADM element. A value of 0 means the extension is not critical. A value of 1
means the extension is critical.</p>
</dd>
<dd>
<p><b>D (1 bit): </b>D is the
ExtensionDisabledFlag, as defined in section 3.1.1.3, the <b>Extension_Flags</b>
ADM element. A value of 0 means the extension is not disabled. A value of 1
means the extension is disabled.</p>
</dd>
<dd>
<p><b>Nigiro (2 bytes): </b>The <b>Nigiro</b>
field is defined as follows:</p>
<dl>
<dd>
<dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Mirrored
   (Nigiro) byte</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>0x8000</td>
  <td>The extension comes from the request.</td>
 </tr><tr>
  <td>0x4000</td>
  <td>The extension was added by the CA. The CA assigns a value of 2 if the extension was added by the policy module of the CA.</td>
 </tr><tr>
  <td>0xC000</td>
  <td>The extension was added by the CA. The CA assigns a value of 3 if the extension was added interactively by a human administrator of the CA.</td>
 </tr><tr>
  <td>0x2000</td>
  <td>The extension was added by the CA. The CA assigns a value of 4 if the extension was added by the certificate server engine and not the policy module component of the CA.</td>
 </tr><tr>
  <td>0xA000</td>
  <td>The extension was in the preceding certificate, which might occur, for example, when a certificate is renewed.</td>
 </tr><tr>
  <td>0x6000</td>
  <td>The extension comes from an imported certificate (a certificate that was imported into the CA database).</td>
 </tr><tr>
  <td>0xE000</td>
  <td>The extension comes from a PKCS7 request.</td>
 </tr><tr>
  <td>0x1000</td>
  <td>The extension comes from a CMC request.</td>
 </tr><tr>
  <td>0x9000</td>
  <td>The extension comes from the current CA signing certificate.</td>
 </tr></tbody></table>
</dd></dl></dd></dl></dd></dl><p><b>cbValue:</b>  An unsigned integer value
that contains the length, in bytes, of data that is referenced by the <i>obValue</i>
parameter.</p><p><b>obValue:</b>  An unsigned integer that
contains the offset from the beginning of the byte array buffer that is pointed
to by the <b>pb</b> member in the containing CERTTRANSBLOB structure to where
the value for this extension can be found. The length of the value is specified
in the <b>cbValue</b> field. The value is in ASN.1 Distinguished Encoding Rules
(DER) format for the extension, as specified in <span><a href="https://go.microsoft.com/fwlink/?LinkId=90592" data-linktype="external">[X660]</a></span>. The
offset MUST be divisible by 4.</p></div>