<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hi Edgar,</p>
<p>Thanks a lot for that information. That makes things a lot
clearer.</p>
<p>Cheers,</p>
<p>Tim<br>
</p>
<br>
<div class="moz-cite-prefix">On 14/07/17 09:46, Edgar Olougouna
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CY1PR21MB0070D75182A72230899F64BDDBAC0@CY1PR21MB0070.namprd21.prod.outlook.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
color:black;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;}
span.EmailStyle19
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;
color:black;}
span.EmailStyle22
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
p.Code, li.Code, div.Code
{mso-style-name:Code;
mso-style-priority:2;
margin-top:0in;
margin-right:0in;
margin-bottom:12.0pt;
margin-left:18.7pt;
mso-add-space:auto;
text-indent:-.7pt;
mso-list:l1 level1 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.CodeCxSpFirst, li.CodeCxSpFirst, div.CodeCxSpFirst
{mso-style-name:CodeCxSpFirst;
mso-style-priority:2;
mso-style-type:export-only;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:18.7pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:-.7pt;
mso-list:l1 level1 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.CodeCxSpMiddle, li.CodeCxSpMiddle, div.CodeCxSpMiddle
{mso-style-name:CodeCxSpMiddle;
mso-style-priority:2;
mso-style-type:export-only;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:18.7pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:-.7pt;
mso-list:l1 level1 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.CodeCxSpLast, li.CodeCxSpLast, div.CodeCxSpLast
{mso-style-name:CodeCxSpLast;
mso-style-priority:2;
mso-style-type:export-only;
margin-top:0in;
margin-right:0in;
margin-bottom:12.0pt;
margin-left:18.7pt;
mso-add-space:auto;
text-indent:-.7pt;
mso-list:l1 level1 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List, li.Code-List, div.Code-List
{mso-style-name:"Code - List";
mso-style-priority:99;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:24.3pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level2 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-ListCxSpFirst, li.Code-ListCxSpFirst, div.Code-ListCxSpFirst
{mso-style-name:"Code - ListCxSpFirst";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:24.3pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level2 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-ListCxSpMiddle, li.Code-ListCxSpMiddle, div.Code-ListCxSpMiddle
{mso-style-name:"Code - ListCxSpMiddle";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:24.3pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level2 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-ListCxSpLast, li.Code-ListCxSpLast, div.Code-ListCxSpLast
{mso-style-name:"Code - ListCxSpLast";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:24.3pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level2 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List2, li.Code-List2, div.Code-List2
{mso-style-name:"Code - List 2";
mso-style-priority:99;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:37.8pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level3 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List2CxSpFirst, li.Code-List2CxSpFirst, div.Code-List2CxSpFirst
{mso-style-name:"Code - List 2CxSpFirst";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:37.8pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level3 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List2CxSpMiddle, li.Code-List2CxSpMiddle, div.Code-List2CxSpMiddle
{mso-style-name:"Code - List 2CxSpMiddle";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:37.8pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level3 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List2CxSpLast, li.Code-List2CxSpLast, div.Code-List2CxSpLast
{mso-style-name:"Code - List 2CxSpLast";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:37.8pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level3 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List3, li.Code-List3, div.Code-List3
{mso-style-name:"Code - List 3";
mso-style-priority:99;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:51.3pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level4 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List3CxSpFirst, li.Code-List3CxSpFirst, div.Code-List3CxSpFirst
{mso-style-name:"Code - List 3CxSpFirst";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:51.3pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level4 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List3CxSpMiddle, li.Code-List3CxSpMiddle, div.Code-List3CxSpMiddle
{mso-style-name:"Code - List 3CxSpMiddle";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:51.3pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level4 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List3CxSpLast, li.Code-List3CxSpLast, div.Code-List3CxSpLast
{mso-style-name:"Code - List 3CxSpLast";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:51.3pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level4 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List4, li.Code-List4, div.Code-List4
{mso-style-name:"Code - List 4";
mso-style-priority:99;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:.9in;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level5 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List4CxSpFirst, li.Code-List4CxSpFirst, div.Code-List4CxSpFirst
{mso-style-name:"Code - List 4CxSpFirst";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:.9in;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level5 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List4CxSpMiddle, li.Code-List4CxSpMiddle, div.Code-List4CxSpMiddle
{mso-style-name:"Code - List 4CxSpMiddle";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:.9in;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level5 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List4CxSpLast, li.Code-List4CxSpLast, div.Code-List4CxSpLast
{mso-style-name:"Code - List 4CxSpLast";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:.9in;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level5 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List5, li.Code-List5, div.Code-List5
{mso-style-name:"Code - List 5";
mso-style-priority:99;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:78.3pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level6 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List5CxSpFirst, li.Code-List5CxSpFirst, div.Code-List5CxSpFirst
{mso-style-name:"Code - List 5CxSpFirst";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:78.3pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level6 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List5CxSpMiddle, li.Code-List5CxSpMiddle, div.Code-List5CxSpMiddle
{mso-style-name:"Code - List 5CxSpMiddle";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:78.3pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level6 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List5CxSpLast, li.Code-List5CxSpLast, div.Code-List5CxSpLast
{mso-style-name:"Code - List 5CxSpLast";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:78.3pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level6 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List6, li.Code-List6, div.Code-List6
{mso-style-name:"Code - List 6";
mso-style-priority:99;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:91.8pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level7 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List6CxSpFirst, li.Code-List6CxSpFirst, div.Code-List6CxSpFirst
{mso-style-name:"Code - List 6CxSpFirst";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:91.8pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level7 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List6CxSpMiddle, li.Code-List6CxSpMiddle, div.Code-List6CxSpMiddle
{mso-style-name:"Code - List 6CxSpMiddle";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:91.8pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level7 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List6CxSpLast, li.Code-List6CxSpLast, div.Code-List6CxSpLast
{mso-style-name:"Code - List 6CxSpLast";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:91.8pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level7 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List7, li.Code-List7, div.Code-List7
{mso-style-name:"Code - List 7";
mso-style-priority:99;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:105.3pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level8 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List7CxSpFirst, li.Code-List7CxSpFirst, div.Code-List7CxSpFirst
{mso-style-name:"Code - List 7CxSpFirst";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:105.3pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level8 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List7CxSpMiddle, li.Code-List7CxSpMiddle, div.Code-List7CxSpMiddle
{mso-style-name:"Code - List 7CxSpMiddle";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:105.3pt;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level8 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List7CxSpLast, li.Code-List7CxSpLast, div.Code-List7CxSpLast
{mso-style-name:"Code - List 7CxSpLast";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:105.3pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level8 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List8, li.Code-List8, div.Code-List8
{mso-style-name:"Code - List 8";
mso-style-priority:99;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:1.65in;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level9 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List8CxSpFirst, li.Code-List8CxSpFirst, div.Code-List8CxSpFirst
{mso-style-name:"Code - List 8CxSpFirst";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:1.65in;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level9 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List8CxSpMiddle, li.Code-List8CxSpMiddle, div.Code-List8CxSpMiddle
{mso-style-name:"Code - List 8CxSpMiddle";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:0in;
margin-left:1.65in;
margin-bottom:.0001pt;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level9 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
p.Code-List8CxSpLast, li.Code-List8CxSpLast, div.Code-List8CxSpLast
{mso-style-name:"Code - List 8CxSpLast";
mso-style-priority:99;
mso-style-type:export-only;
margin-top:0in;
margin-right:.25in;
margin-bottom:12.0pt;
margin-left:1.65in;
mso-add-space:auto;
text-indent:0in;
mso-list:l1 level9 lfo1;
background:white;
font-size:8.0pt;
font-family:"Courier New";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:440104109;
mso-list-template-ids:-928344318;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1
{mso-list-id:616571324;
mso-list-template-ids:-521528704;}
@list l1:level1
{mso-level-number-format:none;
mso-level-style-link:Code;
mso-level-text:"";
mso-level-tab-stop:0in;
mso-level-number-position:left;
margin-left:.15in;
text-indent:0in;}
@list l1:level2
{mso-level-number-format:none;
mso-level-style-link:"Code - List";
mso-level-text:"";
mso-level-tab-stop:13.5pt;
mso-level-number-position:left;
margin-left:24.3pt;
text-indent:0in;}
@list l1:level3
{mso-level-number-format:none;
mso-level-style-link:"Code - List 2";
mso-level-text:"";
mso-level-tab-stop:27.0pt;
mso-level-number-position:left;
margin-left:37.8pt;
text-indent:0in;}
@list l1:level4
{mso-level-number-format:none;
mso-level-style-link:"Code - List 3";
mso-level-text:"";
mso-level-tab-stop:40.5pt;
mso-level-number-position:left;
margin-left:51.3pt;
text-indent:0in;}
@list l1:level5
{mso-level-number-format:none;
mso-level-style-link:"Code - List 4";
mso-level-text:"";
mso-level-tab-stop:.75in;
mso-level-number-position:left;
margin-left:.9in;
text-indent:0in;}
@list l1:level6
{mso-level-number-format:none;
mso-level-style-link:"Code - List 5";
mso-level-text:"";
mso-level-tab-stop:67.5pt;
mso-level-number-position:left;
margin-left:78.3pt;
text-indent:0in;}
@list l1:level7
{mso-level-number-format:none;
mso-level-style-link:"Code - List 6";
mso-level-text:"";
mso-level-tab-stop:81.0pt;
mso-level-number-position:left;
margin-left:91.8pt;
text-indent:0in;}
@list l1:level8
{mso-level-number-format:none;
mso-level-style-link:"Code - List 7";
mso-level-text:"";
mso-level-tab-stop:94.5pt;
mso-level-number-position:left;
margin-left:105.3pt;
text-indent:0in;}
@list l1:level9
{mso-level-number-format:none;
mso-level-style-link:"Code - List 8";
mso-level-text:"";
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
margin-left:1.65in;
text-indent:0in;}
@list l2
{mso-list-id:1664509114;
mso-list-template-ids:216271820;}
@list l2:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l2:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level4
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level5
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level7
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level8
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"
style="line-height:12.0pt;word-break:break-all">Tim,<o:p></o:p></p>
<p class="MsoNormal"
style="line-height:12.0pt;word-break:break-all">Thank you for
your clarification. I see your concern regarding a hanging
link to an unknown object.
<o:p></o:p></p>
<p class="MsoNormal"
style="line-height:12.0pt;word-break:break-all">Please find
Section references in MS-ADTS and a link to a blog post on AD
internals that might help. The key point is that a linked
attribute needs to reference a physical object in the
database. However, attribute values may reference objects in
an NC for which no NC replica is present on the local server.
<o:p></o:p></p>
<p class="MsoNormal">When you have a valid dsname and the
referenced object does not exist in the local data table, the
implementation creates a valued representation of the object,
commonly called phantom record, and
<span lang="EN">the database identifier of that record is used
in lieu of </span>
an actual object in the local database. This is an
implementation-specific way of managing references to objects
which the local server does not hold a replica.
<span style="color:windowtext"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"
style="line-height:12.0pt;word-break:break-all">After source
code review, the algorithms in “[MS-DRSR] 4.1.10.6.1
ProcessGetNCChangesReply, and 4.1.10.6.14 ProcessLinkValue”
appear to reflect Windows implementation.<o:p></o:p></p>
<p class="MsoNormal"
style="line-height:12.0pt;word-break:break-all">Think of the
DRS_GET_TGT in case we failed to apply the update because we
had a recycled target, the client asks again for that packet
to include updates to the link target.
<o:p></o:p></p>
<p class="MsoNormal"
style="line-height:12.0pt;word-break:break-all"><o:p> </o:p></p>
<p class="MsoNormal"
style="line-height:12.0pt;word-break:break-all">“Reference
update” is one of the background tasks described in MS-ADTS
3.1.1.6.2 (see link and related Sections). It helps update
references, including when an object in the
<span lang="EN">NC replica not present on the server is
modified or deleted.</span><span style="color:windowtext"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">NOTE: I found the following blog
resourceful as it describes some AD internals on tables
implemented in Windows AD. Note that the blog provides
implementation-specific details.
<o:p></o:p></p>
<p class="MsoNormal">MCM: Core Active Directory Internals<o:p></o:p></p>
<p class="MsoNormal"><a
href="https://blogs.technet.microsoft.com/askpfeplat/2012/07/22/mcm-core-active-directory-internals/"
moz-do-not-send="true">https://blogs.technet.microsoft.com/askpfeplat/2012/07/22/mcm-core-active-directory-internals/</a><o:p></o:p></p>
<p><o:p> </o:p></p>
<p class="MsoNormal"><b>[MS-ADTS]<o:p></o:p></b></p>
<p class="MsoNormal"><b><span lang="EN">3.1.1.6.2 Reference
Update </span></b><a
href="https://msdn.microsoft.com/en-us/library/dd240022.aspx"
moz-do-not-send="true">https://msdn.microsoft.com/en-us/library/dd240022.aspx</a><b><span
lang="EN"><o:p></o:p></span></b></p>
<p><strong><span
style="font-family:"Calibri",sans-serif"
lang="EN">References</span></strong><span lang="EN"><o:p></o:p></span></p>
<ul type="disc">
<li style="margin-left:0in;mso-list:l0 level1 lfo2"><span
lang="EN">Variable: </span>
<a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_4d5e1f08-aa00-4dde-9411-7dd6e09ed85a"
moz-do-not-send="true"><span lang="EN">dsname</span></a><span
lang="EN"><o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l0 level1 lfo2"><span
lang="EN">LDAP attributes:
</span><a
href="https://msdn.microsoft.com/en-us/library/cc219845.aspx"
moz-do-not-send="true"><span lang="EN">dNReferenceUpdate</span></a><span
lang="EN">.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l0 level1 lfo2"><span
lang="EN">LDAP classes:
</span><a
href="https://msdn.microsoft.com/en-us/library/cc221881.aspx"
moz-do-not-send="true"><span lang="EN">infrastructureUpdate</span></a><span
lang="EN">.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l0 level1 lfo2"><span
lang="EN">Glossary terms: dsname, Infrastructure FSMO
master,
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_325d116f-cdbe-4dbd-b7e6-769ba75bf210"
moz-do-not-send="true"><span lang="EN">NC replica</span></a><span
lang="EN">,
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_9d8e0963-13fa-4e19-a97f-7ce6bc90d20f"
moz-do-not-send="true"><span lang="EN">tombstone</span></a><span
lang="EN">, GC.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l0 level1 lfo2"><span
lang="EN">IDL_DRSVerifyNames method: see
</span><a
href="https://msdn.microsoft.com/en-us/library/cc228086.aspx"
moz-do-not-send="true"><span lang="EN">[MS-DRSR]</span></a><span
lang="EN"> section
</span><a
href="https://msdn.microsoft.com/en-us/library/dd207886.aspx"
moz-do-not-send="true"><span lang="EN">4.1.27</span></a><span
lang="EN">.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l0 level1 lfo2"><span
lang="EN">Well-known Objects<o:p></o:p></span></li>
</ul>
<p><span lang="EN">In </span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_2e72eeeb-aee9-4b0a-adc6-4476bacf5024"
moz-do-not-send="true"><span lang="EN">AD DS</span></a><span
lang="EN">,
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_108a1419-49a9-4d19-b6ca-7206aa726b3f"
moz-do-not-send="true"><span lang="EN">attributes</span></a><span
lang="EN"> of
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_811ea26f-62cc-472e-9aca-9448831f16d8"
moz-do-not-send="true"><span lang="EN">attribute syntax</span></a><span
lang="EN"> Object (DS-DN), Object(DN-String),
Object(DN-Binary), Object(Access-Point) and Object(OR-Name)
can have attribute values that reference </span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_8bb43a65-7a8c-4585-a7ed-23044772f8ca"
moz-do-not-send="true"><span lang="EN">objects</span></a><span
lang="EN"> in an
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_784c7cce-f782-48d8-9444-c9030ba86942"
moz-do-not-send="true"><span lang="EN">NC</span></a><span
lang="EN"> for which no NC replica is present on the server.
The server does not get a
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_2a923099-db0a-4932-af28-4354601e85c4"
moz-do-not-send="true"><span lang="EN">replicated update</span></a><span
lang="EN"> when an object in the NC replica not present on
the server is modified or deleted. In such a case,
references to such objects will remain to an old dsname on
the server. In order to
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_b242435b-73cc-4c4e-95f0-b2a2ff680493"
moz-do-not-send="true"><span lang="EN">update</span></a><span
lang="EN"> these kinds of references, a background task
called reference update is run at regular intervals. By
default, each reference is examined every two days.<o:p></o:p></span></p>
<p><span lang="EN">The reference update task is not run on a
Global Catalog.<o:p></o:p></span></p>
<p><span lang="EN">If the </span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_54624800-58f4-45e9-90bf-c9b52dcf98f3"
moz-do-not-send="true"><span lang="EN">Recycle Bin</span></a>
<a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_785b66f1-22b3-450f-97aa-a24a39d04d47"
moz-do-not-send="true">
<span lang="EN">optional feature</span></a><span lang="EN">
is not enabled and the Infrastructure FSMO master is not a
global catalog, then the reference update task is run only
on the Infrastructure FSMO master.<o:p></o:p></span></p>
<p><span lang="EN">If the Recycle Bin optional feature is
enabled, every </span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_76a05049-3531-4abd-aec8-30e19954b4bd"
moz-do-not-send="true"><span lang="EN">DC</span></a><span
lang="EN"> that is not also a global catalog runs the
reference update task.<o:p></o:p></span></p>
<p><span lang="EN">The reference update task does processing as
follows: <o:p></o:p></span></p>
<p><span lang="EN">For each object <em><span
style="font-family:"Calibri",sans-serif">P</span></em>
in each NC replica on the server do the following:<o:p></o:p></span></p>
<ul type="disc">
<li style="margin-left:0in;mso-list:l2 level1 lfo3"><span
lang="EN">Let <em><span
style="font-family:"Calibri",sans-serif">S</span></em>
be the set of all attributes of
<em><span
style="font-family:"Calibri",sans-serif">P</span></em>
with attribute syntax Object(DS-DN), Object(DN-String),
Object(DN-Binary), Object(OR-Name) and
Object(Access-Point).<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l2 level1 lfo3"><span
lang="EN">For each attribute
<em><span
style="font-family:"Calibri",sans-serif">A</span></em>
in set <em><span
style="font-family:"Calibri",sans-serif">S</span></em>
and for each value
<em><span
style="font-family:"Calibri",sans-serif">V</span></em>
of <em><span
style="font-family:"Calibri",sans-serif">A</span></em>
do the following:<o:p></o:p></span>
<ul type="circle">
<li style="margin-left:0in;mso-list:l2 level2 lfo3"><span
lang="EN">If there exists an object with dsname
<em><span
style="font-family:"Calibri",sans-serif">V</span></em>
in any NC replica on this DC, then skip this value
<em><span
style="font-family:"Calibri",sans-serif">V</span></em>.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l2 level2 lfo3"><span
lang="EN">If attribute syntax of
<em><span
style="font-family:"Calibri",sans-serif">A</span></em>
is Object(DS-DN) then let
<em><span
style="font-family:"Calibri",sans-serif">G</span></em>
be <em><span
style="font-family:"Calibri",sans-serif">P.A.V.guid_value</span></em>.
Let
<em><span
style="font-family:"Calibri",sans-serif">D</span></em>
be <em><span
style="font-family:"Calibri",sans-serif">P.A.V.dn</span></em>.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l2 level2 lfo3"><span
lang="EN">Otherwise, let
<em><span
style="font-family:"Calibri",sans-serif">G</span></em>
be <em><span
style="font-family:"Calibri",sans-serif">P.A.V.object_DN.guid_value</span></em>.
Let
<em><span
style="font-family:"Calibri",sans-serif">D</span></em>
be <em><span
style="font-family:"Calibri",sans-serif">P.A.object_DN.dn</span></em>.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l2 level2 lfo3"><span
lang="EN">If the Recycle Bin optional feature is not
enabled:<o:p></o:p></span>
<ul type="square">
<li style="margin-left:0in;mso-list:l2 level3 lfo3"><span
lang="EN">Retrieve the dsname
<em><span
style="font-family:"Calibri",sans-serif">N</span></em>
of object with </span>
<a
href="https://msdn.microsoft.com/en-us/library/cc221017.aspx"
moz-do-not-send="true"><span lang="EN">objectGUID</span></a>
<em><span
style="font-family:"Calibri",sans-serif"
lang="EN">G</span></em><span lang="EN"> from a
GC by calling method IDL_DRSVerifyNames.
IDL_DRSVerifyNames is explained in [MS-DRSR]
section 4.1.27.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l2 level3 lfo3"><span
lang="EN">If <em><span
style="font-family:"Calibri",sans-serif">N</span></em>!</span><a
href="https://msdn.microsoft.com/en-us/library/cc220701.aspx"
moz-do-not-send="true"><span lang="EN">name</span></a><span
lang="EN"> ≠
<em><span
style="font-family:"Calibri",sans-serif">D</span></em>
then create an infrastructureUpdate object
<em><span
style="font-family:"Calibri",sans-serif">I</span></em>
in the well-known infrastructure update
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_c3143e71-2ada-417e-83f4-3ef10eff2c56"
moz-do-not-send="true"><span lang="EN">container</span></a><span
lang="EN"> (see section
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223663.aspx"
moz-do-not-send="true"><span lang="EN">6.1.1.4</span></a><span
lang="EN">). Set
<em><span
style="font-family:"Calibri",sans-serif">I</span></em>!dNReferenceUpdate
to
<em><span
style="font-family:"Calibri",sans-serif">N</span></em>.
Delete <em><span
style="font-family:"Calibri",sans-serif">I</span></em>
immediately to turn it to a tombstone.<o:p></o:p></span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p style="margin-left:1.5in"><span lang="EN">Creation of an
infrastructureUpdate object
<em><span style="font-family:"Calibri",sans-serif">K</span></em>
with attribute dNReferenceUpdate will trigger an update of
all references to dsnames corresponding to
<em><span style="font-family:"Calibri",sans-serif">K</span></em>!dNReferenceUpdate,
as explained in section
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223446.aspx"
moz-do-not-send="true"><span lang="EN">3.1.1.5.2.4</span></a><span
lang="EN">.<o:p></o:p></span></p>
<ul type="disc">
<ul type="circle">
<li style="margin-left:0in;mso-list:l2 level2 lfo3"><span
lang="EN">If the Recycle Bin optional feature is
enabled:<o:p></o:p></span>
<ul type="square">
<li style="margin-left:0in;mso-list:l2 level3 lfo3"><span
lang="EN">Retrieve the dsname
<em><span
style="font-family:"Calibri",sans-serif">N</span></em>
and the value <em>
<span
style="font-family:"Calibri",sans-serif">Vgc</span></em>
of the </span><a
href="https://msdn.microsoft.com/en-us/library/dd357315.aspx"
moz-do-not-send="true"><span lang="EN">isRecycled</span></a><span
lang="EN"> attribute of object with objectGUID
<em><span
style="font-family:"Calibri",sans-serif">G</span></em>
from a GC by calling method IDL_DRSVerifyNames.
IDL_DRSVerifyNames is explained in [MS-DRSR] section
4.1.27.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l2 level3 lfo3"><span
lang="EN">If <em><span
style="font-family:"Calibri",sans-serif">Vgc</span></em>
is true and attribute
<em><span
style="font-family:"Calibri",sans-serif">A</span></em>
is a linked attribute, remove value
<em><span
style="font-family:"Calibri",sans-serif">V</span></em>
from attribute <em>
<span
style="font-family:"Calibri",sans-serif">A</span></em>.
This removal is not replicated to any other DCs.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l2 level3 lfo3"><span
lang="EN">If <em><span
style="font-family:"Calibri",sans-serif">N</span></em>!name
≠
<em><span
style="font-family:"Calibri",sans-serif">D</span></em>
then replace value
<em><span
style="font-family:"Calibri",sans-serif">V</span></em>
of attribute <em>
<span
style="font-family:"Calibri",sans-serif">A</span></em>
with <em><span
style="font-family:"Calibri",sans-serif">N</span></em>!name.
This replacement is not replicated to any other DCs.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l2 level3 lfo3"><span
lang="EN">If attribute <em>
<span
style="font-family:"Calibri",sans-serif">A</span></em>
is a </span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_659e8352-a6db-4752-8c05-4b21c602f238"
moz-do-not-send="true"><span lang="EN">link value</span></a><span
lang="EN"> and the
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_22198321-b40b-4c24-b8a2-29e44d9d92b9"
moz-do-not-send="true"><span lang="EN">RDN</span></a><span
lang="EN"> of
<em><span
style="font-family:"Calibri",sans-serif">N</span></em>!name
is a delete-mangled RDN (see section
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223480.aspx"
moz-do-not-send="true"><span lang="EN">3.1.1.5.5</span></a><span
lang="EN">), the value
<em><span
style="font-family:"Calibri",sans-serif">V</span></em>
is to be treated as a linked value to or from a
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_d9c9e99f-74f1-483e-bcb1-310e75ff1344"
moz-do-not-send="true"><span lang="EN">deleted-object</span></a><span
lang="EN">. That is, the value is not generally
visible to
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_45643bfb-b4c4-432c-a10f-b98790063f8d"
moz-do-not-send="true"><span lang="EN">LDAP</span></a><span
lang="EN"> clients unless the
LDAP_SHOW_DEACTIVATED_LINK_OID control is used.<o:p></o:p></span></li>
<li style="margin-left:0in;mso-list:l2 level3 lfo3"><span
lang="EN">If attribute <em>
<span
style="font-family:"Calibri",sans-serif">A</span></em>
is a link value and the RDN of
<em><span
style="font-family:"Calibri",sans-serif">N</span></em>!name
is not a delete-mangled RDN (see section 3.1.1.5.5),
the value
<em><span
style="font-family:"Calibri",sans-serif">V</span></em>
is to be treated as a normal linked value. That is,
the value is generally visible to LDAP clients.<o:p></o:p></span></li>
</ul>
</li>
</ul>
</ul>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>3.1.1.3.3.7 checkPhantoms </b><a
href="https://msdn.microsoft.com/en-us/library/cc223316.aspx"
moz-do-not-send="true">https://msdn.microsoft.com/en-us/library/cc223316.aspx</a><b><o:p></o:p></b></p>
<p><span lang="EN">This operation requests that the reference </span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_b242435b-73cc-4c4e-95f0-b2a2ff680493"
moz-do-not-send="true"><span lang="EN">update</span></a><span
lang="EN"> task (see section
</span><a
href="https://msdn.microsoft.com/en-us/library/dd240022.aspx"
moz-do-not-send="true"><span lang="EN">3.1.1.6.2</span></a><span
lang="EN">) be immediately performed on the
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_76a05049-3531-4abd-aec8-30e19954b4bd"
moz-do-not-send="true"><span lang="EN">DC</span></a><span
lang="EN">. During the operation, if the referential
integrity on any of the
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_8bb43a65-7a8c-4585-a7ed-23044772f8ca"
moz-do-not-send="true"><span lang="EN">objects</span></a><span
lang="EN"> is found to be incorrect and it cannot be
corrected, then the operation returns an error and does not
process any of the remaining objects. This task runs
periodically; on a correctly functioning DC, there is no
need to run it explicitly. The requester must have the
"DS-Check-Stale-Phantoms"
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_42f6c9e0-a2b3-4bc3-9b87-fdb902e5505e"
moz-do-not-send="true"><span lang="EN">control access right</span></a><span
lang="EN"> on the
</span><a
href="https://msdn.microsoft.com/en-us/library/cc221718.aspx"
moz-do-not-send="true"><span lang="EN">nTDSDSA</span></a><span
lang="EN"> object for the DC.<o:p></o:p></span></p>
<p><span lang="EN">No action is taken if the </span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_54624800-58f4-45e9-90bf-c9b52dcf98f3"
moz-do-not-send="true"><span lang="EN">Recycle Bin</span></a>
<a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_785b66f1-22b3-450f-97aa-a24a39d04d47"
moz-do-not-send="true">
<span lang="EN">optional feature</span></a><span lang="EN">
is not enabled and the operation is performed against a DC
that does not own the Infrastructure Master FSMO.<o:p></o:p></span></p>
<p><span lang="EN">No action is taken if the operation is
performed against a DC that is a global catalog.<o:p></o:p></span></p>
<p><span lang="EN">The type of modification can be add or
replace, and the values specified in the
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_45643bfb-b4c4-432c-a10f-b98790063f8d"
moz-do-not-send="true"><span lang="EN">LDAP</span></a><span
lang="EN"> modify operation do not matter.<o:p></o:p></span></p>
<p><span lang="EN">The following shows an LDIF sample that
performs this operation.<o:p></o:p></span></p>
<pre style="margin-left:.5in"><span lang="EN"> dn:<o:p></o:p></span></pre>
<pre style="margin-left:.5in"><span lang="EN"> changetype: modify<o:p></o:p></span></pre>
<pre style="margin-left:.5in"><span lang="EN"> add: checkPhantoms<o:p></o:p></span></pre>
<pre style="margin-left:.5in"><span lang="EN"> checkPhantoms: 1<o:p></o:p></span></pre>
<pre style="margin-left:.5in"><span lang="EN"> -<o:p></o:p></span></pre>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>6.1.5.5 Infrastructure FSMO Role</b>
<a
href="https://msdn.microsoft.com/en-us/library/cc223753.aspx"
moz-do-not-send="true">
https://msdn.microsoft.com/en-us/library/cc223753.aspx</a><o:p></o:p></p>
<p><span lang="EN">When an </span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_8bb43a65-7a8c-4585-a7ed-23044772f8ca"
moz-do-not-send="true"><span lang="EN">object</span></a><span
lang="EN"> in one
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_b0276eb2-4e65-4cf1-a718-e0920a614aca"
moz-do-not-send="true"><span lang="EN">domain</span></a><span
lang="EN"> is referenced by another object in another
domain, it represents the reference as a
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_4d5e1f08-aa00-4dde-9411-7dd6e09ed85a"
moz-do-not-send="true"><span lang="EN">dsname</span></a><span
lang="EN">. There is one Infrastructure FSMO role per domain
and
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_53fee475-b07f-45e1-b4b7-c7ac0c1e7f6a"
moz-do-not-send="true"><span lang="EN">application NC</span></a><span
lang="EN"> in a
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_49ce3946-04d2-4cc9-9350-ebcd952b9ab9"
moz-do-not-send="true"><span lang="EN">directory</span></a><span
lang="EN">.<o:p></o:p></span></p>
<p><span lang="EN">If all the </span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_76a05049-3531-4abd-aec8-30e19954b4bd"
moz-do-not-send="true"><span lang="EN">domain controllers</span></a><span
lang="EN"> in a domain also host the GC, then all the domain
controllers have the current data, and it is not important
which domain controller owns the Infrastructure Master (IM)
role. See section
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223433.aspx"
moz-do-not-send="true"><span lang="EN">3.1.1.5</span></a><span
lang="EN"> for more information about the Infrastructure
Master.<o:p></o:p></span></p>
<p><span lang="EN">When the </span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_54624800-58f4-45e9-90bf-c9b52dcf98f3"
moz-do-not-send="true"><span lang="EN">Recycle Bin</span></a>
<a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_785b66f1-22b3-450f-97aa-a24a39d04d47"
moz-do-not-send="true">
<span lang="EN">optional feature</span></a><span lang="EN">
is not enabled, the Infrastructure FSMO role owner is the DC
responsible for updating a cross-domain
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_3ca938ae-c14f-4f59-8a7d-daca9f76db4e"
moz-do-not-send="true"><span lang="EN">object reference</span></a><span
lang="EN"> in the event that the referenced object is moved,
renamed, or deleted. In this case, the Infrastructure Master
role must be held by a domain controller that is not a
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_a5a99ce4-e206-42dc-8874-e103934c5b0d"
moz-do-not-send="true"><span lang="EN">GC server</span></a><span
lang="EN">. If the Infrastructure Master runs on a GC
server, it will not
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_b242435b-73cc-4c4e-95f0-b2a2ff680493"
moz-do-not-send="true"><span lang="EN">update</span></a><span
lang="EN"> object information, because it does not contain
any references to objects that it does not hold. This is
because a GC server holds a partial </span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_ea02e669-2dda-460c-9992-b12a23caeeac"
moz-do-not-send="true"><span lang="EN">replica</span></a><span
lang="EN"> of every object in the
</span><a
href="https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_fd104241-4fb3-457c-b2c4-e0c18bb20b62"
moz-do-not-send="true"><span lang="EN">forest</span></a><span
lang="EN">.<o:p></o:p></span></p>
<p><span lang="EN">When the Recycle Bin optional feature is
enabled, every DC is responsible for updating its
cross-domain object references in the event that the
referenced object is moved, renamed, or deleted. In this
case, there are no tasks associated with the Infrastructure
FSMO role, and it is not important which domain controller
owns the Infrastructure Master role.<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>[MS-DRSR]<o:p></o:p></b></p>
<p class="MsoNormal">4.1.10.6.1 ProcessGetNCChangesReply<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:solid white
3.0pt;padding:4.0pt 6.0pt 5.0pt
6.0pt;background:white;margin-left:.25in;margin-right:0in">
<p class="CodeCxSpFirst"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]-->/*
Process link value updates. */<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]-->linkValueCount
:= 0<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]-->while
(ulResult = 0) and (linkValueCount <
msgReplyNative.cNumValues)<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> ulResult
:= ProcessLinkValue(<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> msgReplyNative.rgValues[linkValueCount],<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> msgReplyNative.pNC^,<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> prefixTable,<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> msgIn.ulFlags,<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> msgIn.ulMoreFlags)<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> linkValueCount
:= linkValueCount + 1<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]-->endwhile<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--><o:p> </o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]-->if
(ulResult = ERROR_DS_DRA_MISSING_PARENT) then<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> Send
IDL_DRSGetNCChanges message again with the same input
<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--> parameters
specified in msgIn but this time with msgIn.ulFlags
<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--> containing
DRS_GET_ANC field set. It is an error for this
<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--> condition
to occur if (DRS_GET_ANC in msgIn.ulFlags) is true<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]-->else
if (ulResult = ERROR_DS_DRA_RECYCLED_TARGET) then<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> Send
IDL_DRSGetNCChanges message again with the same input
<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--> parameters
specified in the msgIn but this time with msgIn.ulMoreFlags
<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--> containing
DRS_GET_TGT field set.
<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->else
if (msgIn.ulExtendedOp = 0) then<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> /*
Not an extended operation. Update "watermark" information.
*/<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> UpdateRepsFrom(<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> rf,<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> msgReplyNative,
<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--> dsaServer,<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> ulResult)<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> <o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--> if
(ulResult = 0) and (msgReplyNative.fMoreData = false) then<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> UpdateUTDandPAS(<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> msgReplyNative,<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> msgIn.partialAttrSetEx^)<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> endif<o:p></o:p></p>
<p class="CodeCxSpLast"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]-->endif<o:p></o:p></p>
</div>
<p class="MsoNormal">4.1.10.6.14
ProcessLinkValue<o:p></o:p></p>
<p class="MsoNormal">. . .<o:p></o:p></p>
<div style="mso-element:para-border-div;border:solid white
3.0pt;padding:4.0pt 6.0pt 5.0pt
6.0pt;background:white;margin-left:.25in;margin-right:0in">
<p class="CodeCxSpFirst"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> newAttributeValue
= ValueFromATTRVAL(<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> sourcePrefixTable,
Syntax(attribute), replValInf.pAval)<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> targetObject
:= GetDSNameFromAttrVal( replValinf.attrTyp,
replValInf.pAval)<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> if
(targetObject = null)<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> return
ERROR_DS_INVALID_ATTRIBUTE_SYNTAX<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> if
((IsRecycleBinEnabled() and targetObject!isRecycled) or<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> (not
IsRecycleBinEnabled() and targetObject!isDeleted)) then<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> if
(DRS_GET_TGT in ulMoreFlags) then
<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--> /*
nothing to do */<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> return
0<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> else<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> return
ERROR_DS_DRA_RECYCLED_TARGET<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span
style="background:yellow;mso-highlight:yellow"><span
style="mso-list:Ignore"><span style="font:7.0pt
"Times New Roman""></span></span></span><!--[endif]--><span
style="background:yellow;mso-highlight:yellow"> endif<o:p></o:p></span></p>
<p class="CodeCxSpLast"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> endif<o:p></o:p></p>
</div>
<p class="Code-List" style="text-indent:0in;mso-list:l1 level2
lfo1">if (not attributeValue = null) then<o:p></o:p></p>
<div style="mso-element:para-border-div;border:solid white
3.0pt;padding:4.0pt 6.0pt 5.0pt
6.0pt;background:white;margin-left:.25in;margin-right:0in">
<p class="CodeCxSpFirst"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> /*
Remove the old attribute value. */<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> RemoveAttrVal(updateObject,
attribute, attributeValue)<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> endif<o:p></o:p></p>
<p class="CodeCxSpMiddle"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--><o:p> </o:p></p>
<p class="CodeCxSpLast"
style="margin-left:.7pt;mso-add-space:auto;mso-list:l1
level1 lfo4;background:white;border:none;padding:0in">
<!--[if !supportLists]--><span style="mso-list:Ignore"><span
style="font:7.0pt "Times New Roman""></span></span><!--[endif]--> SetAttrVal(updateObject,
attribute, newAttributeValue)
<o:p></o:p></p>
</div>
<p class="Code-List" style="text-indent:0in;mso-list:l1 level2
lfo1">. . .<o:p></o:p></p>
<p>Thanks,<o:p></o:p></p>
<p>Edgar<o:p></o:p></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="color:windowtext">From:</span></b><span
style="color:windowtext"> Tim Beale
[<a class="moz-txt-link-freetext" href="mailto:timbeale@catalyst.net.nz">mailto:timbeale@catalyst.net.nz</a>]
<br>
<b>Sent:</b> Sunday, July 9, 2017 4:44 PM<br>
<b>To:</b> Edgar Olougouna <a class="moz-txt-link-rfc2396E" href="mailto:edgaro@microsoft.com"><edgaro@microsoft.com></a>;
'<a class="moz-txt-link-abbreviated" href="mailto:abartlet@samba.org">abartlet@samba.org</a>' <a class="moz-txt-link-rfc2396E" href="mailto:abartlet@samba.org"><abartlet@samba.org></a><br>
<b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:cifs-protocol@lists.samba.org">cifs-protocol@lists.samba.org</a>; MSSolve Case
Email <a class="moz-txt-link-rfc2396E" href="mailto:casemail@microsoft.com"><casemail@microsoft.com></a><br>
<b>Subject:</b> Re: [cifs-protocol] [REG:
117070616001855] [MS-DRSR] Calling GetNCChanges with
DRS_GET_TGT flag<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>Hi Edgar,<br>
<br>
>> Request more detail in case of cross-partition target<o:p></o:p></p>
<p>We understand that it requires implementation-specific
behaviour to resolve an unknown target object when the linked
attribute spans partitions. This was answered for us in
117060115827644.<o:p></o:p></p>
<p>>> Target object is only recycled, as opposed to
Target-object is unknown<br>
>> (linked-attribute and you don't know the target, you
send DRS_GET_TGT)<o:p></o:p></p>
<p>This is what I'm confused about. I inferred from the MS_DRSR
Docs that the client uses DRS_GET_TGT if it receives a linked
attribute with an unknown target object. However, the answers
we received for 117060815865307 seemed to imply that
DRS_GET_TGT is only used if the target object is
deleted/recycled (as opposed to simply being a new/unknown
object). Could you please clarify this - should the client use
it in either case, or is it only the deleted/recycled case
where the flag is actually required?<o:p></o:p></p>
<p>>> Implementation-specific statement regarding client
using DRS_GET_TGT <o:p></o:p></p>
<p>Basically it's the following block of code in 4.1.10.6.14
ProcessLinkValue() that I find confusing/misleading.<o:p></o:p></p>
<p>targetObject = GetDSNameFromAttrVal( replValinf.attrTyp,
replValInf.pAval)<br>
if ((IsRecycleBinEnabled() and targetObject!isRecycled) or<br>
(not IsRecycleBinEnabled() and targetObject!isDeleted))
then<br>
if (DRS_GET_TGT in ulMoreFlags) then<br>
/* nothing to do */<br>
return 0<br>
else<br>
return ERROR_DS_DRA_RECYCLED_TARGET<br>
endif<o:p></o:p></p>
<p>I don't think the proposed Docs change for 117060815865307
makes this any easier to understand. Documentation-wise, I
think there's room for the following minor improvements:<o:p></o:p></p>
<p>1. Section 3.4.5 describes the ! notation. However, I
couldn't see anything that describes what happens if the
object specified by the DN doesn't exist. I would assume the
attribute returned would be null.<br>
2. If the target object doesn't exist, the current code looks
like the 4.1.10.6.14 block will fall through and add a hanging
link to an unknown object. Is that the intended behaviour? A
comment stating that would be nice.<br>
3. If there is other implementation-specific behaviour in the
4.1.10.6.14 block, then a comment stating "The actual
behaviour here may be implementation-specific" would be nice.<br>
4. I also just noticed the above block is missing an endif.<o:p></o:p></p>
<p>Thanks for your help,<o:p></o:p></p>
<p>Tim<o:p></o:p></p>
<div>
<p class="MsoNormal">On 07/07/17 04:51, Edgar Olougouna via
cifs-protocol wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">Please provide any additional write-up as
necessary. We will review this and follow-up.<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Implementation-specific statement
regarding client using DRS_GET_TGT
<o:p></o:p></p>
<p class="MsoNormal">Request more detail in case of
cross-partition target<o:p></o:p></p>
<p class="MsoNormal">Target object is only recycled, as
opposed to Target-object is unknown
<o:p></o:p></p>
<p class="MsoNormal">(linked-attribute and you don't know the
target, you send DRS_GET_TGT)<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Edgar<o:p></o:p></p>
<p class="MsoNormal"><br>
<br>
<br>
<o:p></o:p></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>cifs-protocol mailing list<o:p></o:p></pre>
<pre><a href="mailto:cifs-protocol@lists.samba.org" moz-do-not-send="true">cifs-protocol@lists.samba.org</a><o:p></o:p></pre>
<pre><a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.samba.org%2Fmailman%2Flistinfo%2Fcifs-protocol&data=02%7C01%7Cedgaro%40microsoft.com%7C5f4eebde07da4724ff5a08d4c7139b92%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636352334412827688&sdata=Ef66txw485K2nCi3tm%2FF60ZWF4Wyds3h0qCmyAOEPJc%3D&reserved=0" moz-do-not-send="true">https://lists.samba.org/mailman/listinfo/cifs-protocol</a><o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</blockquote>
<br>
</body>
</html>