<div class="content"><p align="right"><a href="https://msdn.microsoft.com/en-us/library/491227be-d055-4140-8b85-35cf29f31166" data-linktype="external">msdn link</a></p><p>(Protocol Version 3) The ApiGetNotifyV2 method is an
asynchronous <a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">RPC</a> method
that SHOULD<a id="Appendix_A_Target_124"></a><a aria-label="Product behavior note 124" href="1d58eff8-a042-478c-972c-8e9c76a3f978#Appendix_A_124" data-linktype="relative-path">&lt;124&gt;</a> instruct the server to return
a set of queued events from a designated version 2 notification port
corresponding to a particular context handle. The server MUST NOT complete this
method until an indication has been queued to the port or the port has been
closed through a separate call to the <a href="e7604a23-c316-4da7-b3b0-d31e2fd9cb5e" data-linktype="relative-path">ApiUnblockGetNotifyCall (section 3.1.4.2.107)</a>
or <a href="dc1cbfcc-936a-4967-9c71-63d34cea71d7" data-linktype="relative-path">ApiCloseNotify (section 3.1.4.2.57)</a>
method.</p><p>The server MUST return the notification enumeration values
registered by the client as specified in <a href="73d7a7d4-fef2-46e4-bd90-4c2e645094f3" data-linktype="relative-path">ApiAddNotifyV2 (section 3.1.4.2.137)</a>.</p><p>The server MUST NOT return these notification filter flags:</p><ul><li><p><span><span> 
</span></span>CLUSTER_CHANGE_CLUSTER_RECONNECT_V2</p>
</li><li><p><span><span> 
</span></span>CLUSTER_CHANGE_CLUSTER_STATE_V2</p>
</li><li><p><span><span> 
</span></span>CLUSTER_CHANGE_CLUSTER_HANDLE_CLOSE_V2</p>
</li><li><p><span><span> 
</span></span>CLUSTER_CHANGE_CLUSTER_GROUP_HANDLE_CLOSE_V2</p>
</li><li><p><span><span> 
</span></span>CLUSTER_CHANGE_CLUSTER_RESOURCE_HANDLE_CLOSE_V2</p>
</li><li><p><span><span> 
</span></span>CLUSTER_CHANGE_CLUSTER_NETWORK_HANDLE_CLOSE_V2</p>
</li><li><p><span><span> 
</span></span>CLUSTER_CHANGE_CLUSTER_NETINTERFACE_HANDLE_CLOSE_V2</p>
</li><li><p><span><span> 
</span></span>CLUSTER_CHANGE_CLUSTER_NODE_HANDLE_CLOSE_V2</p>
</li><li><p><span><span> 
</span></span>CLUSTER_CHANGE_CLUSTER_REGISTRY_HANDLE_CLOSE_V2</p>
</li><li><p><span><span> 
</span></span>CLUSTER_CHANGE_CLUSTER_REGISTRY_SUBTREE_V2</p>
</li></ul><p>The server SHOULD accept an ApiGetNotifyV2 request if its <a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_a93e2fea-3006-4a06-b48f-fdb36d9abac9" data-linktype="relative-path">protocol server state</a> is
read-only and MUST accept the request if it is in the read/write state, as
specified in section <a href="756547e7-ca64-4b7c-9f1b-2b1fbc6153d3" data-linktype="relative-path">3.1.1</a>.</p><p>The server MUST require that the access level associated
with the <i>hResource</i> parameter is &#34;Read&#34; (section <a href="a249a463-3d3b-4058-abf6-3024d81806a0" data-linktype="relative-path">3.1.4</a>).</p><dl>
<dd>
<div><pre> error_status_t ApiGetNotifyV2(
   [in] HNOTIFY_RPC hNotify,
   [out, size_is (,*dwNumNotifications)] 
     PNOTIFICATION_RPC* Notifications,
   [out] DWORD *dwNumNotifications
 );
</pre></div>
</dd></dl><p><b>hNotify: </b>An HNOTIFY_RPC context handle that
was obtained from a previous call to <a href="deeb2cd8-1135-4f9c-9f2b-824db8b44a5d" data-linktype="relative-path">ApiCreateNotifyV2 (section 3.1.4.2.136)</a>.</p><p><b>Notifications: </b>A pointer to an array of one or
more <a href="440a6d2d-e5be-49f3-8c96-fadc746705d5" data-linktype="relative-path">NOTIFICATION_RPC (section 2.2.3.24)</a>
structures corresponding to notification events that have been generated on the
designated notification port since the previous call to ApiGetNotifyV2 or since
the client registered for events with ApiAddNotifyV2. For each NOTIFICATION_RPC
element in the array, the <b>dwNotifyKey</b> member is set to the value
provided by the client in the previous ApiAddNotifyV2 call corresponding to the
event indication contained in the NOTIFICATION_RPC structure. Each
NOTIFICATION_RPC structure contains a <a href="806ea3ef-9089-4737-88a6-14b48adc1360" data-linktype="relative-path">NOTIFICATION_DATA_RPC (section 2.2.3.23)</a>
structure, which is populated according to the particular notification event.</p><dl>
<dd>
<p>For event indications pertaining to a cluster
object, as specified for <a href="89d26712-45d8-452e-9e8a-bb0750a5f978" data-linktype="relative-path">CLUSTER_OBJECT_TYPE_CLUSTER (section 2.2.2.11)</a>,
the server MUST set the NOTIFICATION_DATA_RPC structure as follows:</p>
</dd></dl><ul><li><p><span><span>  </span></span>FilterAndType.dwObjectType:
CLUSTER_OBJECT_TYPE_CLUSTER (section 2.2.2.11).</p>
</li><li><p><span><span>  </span></span>FilterAndType.FilterFlags:
one flag from the <a href="d529b7a9-9f5b-4191-b093-dbb38ffa4277" data-linktype="relative-path">CLUSTER_CHANGE_CLUSTER_V2 (section 2.2.2.12)</a>
enumeration, indicating the event that occurred.</p>
</li><li><p><span><span>  </span></span>ObjectId:
an empty <a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_b069acb4-e364-453e-ac83-42d469bb339e" data-linktype="relative-path">Unicode string</a>.</p>
</li><li><p><span><span>  </span></span>Type:
an empty Unicode string.</p>
</li><li><p><span><span>  </span></span>dwBufferSize:
the number of bytes in the <b>buffer</b> field.</p>
</li></ul><dl>
<dd>
<p>The remaining fields are set
depending on the event that occurred, identified by the <b>FilterAndType.FilterFlags</b>
field, as specified in the following table.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>FilterAndType.FilterFlags</p>
   </th>
   <th>
   <p>buffer</p>
   </th>
   <th>
   <p>ObjectId</p>
   </th>
   <th>
   <p>ParentId</p>
   </th>
   <th>
   <p>Name</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>CLUSTER_CHANGE_CLUSTER_GROUP<br/>
  _ADDED_V2</p>
  </td>
  <td>
  <p>A DWORD containing the type of the group.</p>
  </td>
  <td>
  <p>The ID of the group.</p>
  </td>
  <td>
  <p>The ID of the node where the group is hosted.</p>
  </td>
  <td>
  <p>The name of the group</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_CLUSTER_NETWORK<br/>
  _ADDED_V2</p>
  </td>
  <td>
  <p>Empty.</p>
  </td>
  <td>
  <p>The ID of the cluster network.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>The name of the cluster network.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_CLUSTER_NODE<br/>
  _ADDED_V2</p>
  </td>
  <td>
  <p>A DWORD containing the state of the node, as specified
  in <a href="afab819d-0521-4ce4-8eaf-b054265cc18e" data-linktype="relative-path">3.1.4.2.69</a></p>
  </td>
  <td>
  <p>The ID of the cluster node.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>The name of the cluster node.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_CLUSTER_RESOURCE<br/>
  _TYPE_ADDED_V2</p>
  </td>
  <td>
  <p>Empty.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>The name of the new <a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_597fe367-f504-4295-9ed9-92cd892796cd" data-linktype="relative-path">resource type</a>.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_CLUSTER_COMMON<br/>
  _PROPERTY_V2</p>
  </td>
  <td>
  <p>A <a href="7ed348f2-eddf-4c3f-a1cb-b651ec3cff92" data-linktype="relative-path">Property
  List (section 2.2.3.10)</a> containing one or more <a href="de73d6f9-bfdf-47ef-b008-b2da17c1a073" data-linktype="relative-path">Property
  Values (section 2.2.3.10.1)</a> with updated values.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_CLUSTER_PRIVATE<br/>
  _PROPERTY</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) with
  updated values.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_CLUSTER_LOST<br/>
  _NOTIFICATIONS_V2</p>
  </td>
  <td>
  <p>Empty.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_CLUSTER</p>
  <p>_RENAME_V2</p>
  </td>
  <td>
  <p>Empty.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>The new name of the cluster.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_CLUSTER<br/>
  _MEMBERSHIP_V2</p>
  </td>
  <td>
  <p>A <a href="8919bd06-9ae8-4efe-adb4-965d540c8253" data-linktype="relative-path">CLUSTER_MEMBERSHIP_INFO
  (section 2.2.3.42)</a> containing new information about the cluster
  membership.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_CLUSTER<br/>
  _UPGRADED_V2</p>
  </td>
  <td>
  <p>A DWORD containing the cluster operating version.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
 </tr></tbody></table>
</dd>
<dd>
<p>For event indications pertaining
to a group object as specified for
CLUSTER_OBJECT_TYPE_GROUP (section 2.2.2.11), the server MUST set the
NOTIFICATION_DATA_RPC structure as follows:</p>
</dd></dl><ul><li><p><span><span>  </span></span>FilterAndType.dwObjectType:
CLUSTER_OBJECT_TYPE_GROUP (section 2.2.2.11).</p>
</li><li><p><span><span>  </span></span>FilterAndType.FilterFlags:
one flag from the <a href="a4c12a3c-3c9b-4b81-ac40-79cb5018474a" data-linktype="relative-path">CLUSTER_CHANGE_GROUP_V2 (section 2.2.2.13)</a>
enumeration, indicating the event that occurred.</p>
</li><li><p><span><span>  </span></span>ParentId:
ID of the node on which the group is hosted.</p>
</li><li><p><span><span>  </span></span>Type:
an empty Unicode string.</p>
</li><li><p><span><span>  </span></span>dwBufferSize:
the number of bytes in the <b>buffer</b> field.</p>
</li></ul><dl>
<dd>
<p>The remaining fields are set
depending on the event that occurred, identified by the <b>FilterAndType.FilterFlags</b>
field, as specified in the following table.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>FilterAndType.FilterFlags</p>
   </th>
   <th>
   <p>buffer</p>
   </th>
   <th>
   <p>ObjectId</p>
   </th>
   <th>
   <p>Name</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>CLUSTER_CHANGE_GROUP_DELETED_V2</p>
  </td>
  <td>
  <p>Empty.</p>
  </td>
  <td>
  <p>The ID of the group.</p>
  </td>
  <td>
  <p>The name of the group.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_GROUP_COMMON_PROPERTY_V2</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) with
  updated values.</p>
  </td>
  <td>
  <p>The ID of the group.</p>
  </td>
  <td>
  <p>The name of the group.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_GROUP_PRIVATE_PROPERTY_V2</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) with
  updated values.</p>
  </td>
  <td>
  <p>The ID of the group.</p>
  </td>
  <td>
  <p>The name of the group.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_GROUP_STATE_V2</p>
  </td>
  <td>
  <p>A DWORD containing the new group state (see section <a href="8e73b5c0-2b5f-47bc-961f-7daf623da339" data-linktype="relative-path">3.1.4.2.46</a>).</p>
  </td>
  <td>
  <p>The ID of the group.</p>
  </td>
  <td>
  <p>The name of the group.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_GROUP_OWNER_NODE_V2</p>
  </td>
  <td>
  <p>The ID of the new owner node.</p>
  </td>
  <td>
  <p>The ID of the group.</p>
  </td>
  <td>
  <p>The name of the group.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_GROUP_PREFERRED_OWNER_V2</p>
  </td>
  <td>
  <p>A <a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_d59a8bb4-ff07-4898-a3d4-2f6643990f15" data-linktype="relative-path">MULTI_SZ</a>
  list of string IDs of the preferred owners, as would be set for a
  multiSzNodeList in a call to <a href="092c000a-2e2e-4777-aab0-b5f631489767" data-linktype="relative-path">ApiSetGroupNodeList (section 3.1.4.2.55)</a>.</p>
  </td>
  <td>
  <p>The ID of the group.</p>
  </td>
  <td>
  <p>The name of the group.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_GROUP_RESOURCE_ADDED_V2</p>
  </td>
  <td>
  <p>The ID of the group.</p>
  </td>
  <td>
  <p>The ID of the resource created in the cluster and
  contained in this group (see <a href="bc6ca940-7177-4bef-9567-ae4a692a2ba5" data-linktype="relative-path">ApiCreateResource (section 3.1.4.2.10)</a>).</p>
  </td>
  <td>
  <p>The name of the resource created in the cluster and
  contained in this group (see
  ApiCreateResource (section 3.1.4.2.10)).</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_GROUP_RESOURCE_GAINED_V2</p>
  </td>
  <td>
  <p>The ID of the resource added to this group, either by
  ApiCreateResource (section 3.1.4.2.10) or <a href="69a0de27-7f96-4fe4-8991-5e11dda3e405" data-linktype="relative-path">ApiChangeResourceGroup (section 3.1.4.2.26)</a><span> </span>or</p>
  <p><a href="6a82a316-56ef-4625-b54d-c514e881dba4" data-linktype="relative-path">ApiChangeResourceGroupEx
  (</a>section 3.1.4.2.166).</p>
  </td>
  <td>
  <p>The ID of the group.</p>
  </td>
  <td>
  <p>The name of the group.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_GROUP_RESOURCE_LOST_V2</p>
  </td>
  <td>
  <p>The ID of the resource removed from this group, either
  by <a href="c4eab577-851e-48cb-9503-3102236d6d07" data-linktype="relative-path">ApiDeleteResource (section 3.1.4.2.11)</a>
  or ApiChangeResourceGroup (section 3.1.4.2.26)<span> </span>or</p>
  <p>ApiChangeResourceGroupEx (section 3.1.4.2.166).</p>
  </td>
  <td>
  <p>The ID of the group.</p>
  </td>
  <td>
  <p>The name of the group.</p>
  </td>
 </tr></tbody></table>
</dd>
<dd>
<p>For event indications pertaining
to a resource object as specified for
CLUSTER_OBJECT_TYPE_RESOURCE (section 2.2.2.11), the server MUST set
the NOTIFICATION_DATA_RPC structure as follows:</p>
</dd></dl><ul><li><p><span><span>  </span></span>FilterAndType.dwObjectType:
CLUSTER_OBJECT_TYPE_RESOURCE (section 2.2.2.11).</p>
</li><li><p><span><span>  </span></span>FilterAndType.FilterFlags:
one flag from the <a href="95b267da-b5d7-4788-acd0-1a0815579e61" data-linktype="relative-path">CLUSTER_CHANGE_RESOURCE_V2 (section 2.2.2.14)</a>
enumeration, indicating the event that occurred.</p>
</li><li><p><span><span>  </span></span>ObjectId:
ID of the resource.</p>
</li><li><p><span><span>  </span></span>ParentId:
ID of the group that contains the resource.</p>
</li><li><p><span><span>  </span></span>Name:
the name of the resource.</p>
</li><li><p><span><span>  </span></span>Type:
the name of the resource type.</p>
</li><li><p><span><span>  </span></span>dwBufferSize:
the number of bytes in the <b>buffer</b> field.</p>
</li></ul><dl>
<dd>
<p>The remaining fields are set
depending on the event that occurred, identified by the <b>FilterAndType.FilterFlags</b>
field, as specified in the following table.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>FilterAndType.FilterFlags</p>
   </th>
   <th>
   <p>buffer</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_COMMON_PROPERTY_V2</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) with
  updated values.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_PRIVATE_PROPERTY_V2</p>
  </td>
  <td>
  <p>Empty.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_STATE_V2</p>
  </td>
  <td>
  <p>A DWORD containing the resource state (see <a href="cac947fb-7066-4d0c-b76d-7d26a89a2d46" data-linktype="relative-path">3.1.4.2.13</a>).</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_OWNER_GROUP_V2</p>
  </td>
  <td>
  <p>The ID of the group that now contains the resource.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_DEPENDENCIES_V2</p>
  </td>
  <td>
  <p>A new dependency expression, as would be returned by a
  call to <a href="d0964e4d-669d-40a8-bf2d-877dfa97f247" data-linktype="relative-path">ApiGetResourceDependencyExpression (section 3.1.4.2.110)</a>.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_DEPENDENTS_V2</p>
  </td>
  <td>
  <p>A MULTI_SZ list of resource ID strings that now list
  this resource as a provider.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_POSSIBLE_OWNERS_V2</p>
  </td>
  <td>
  <p>A MULTI_SZ list of node IDs that can host the
  resource.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_DELETED_V2</p>
  </td>
  <td>
  <p>The ID of the group that contained the resource before
  it was deleted.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_DLL_UPGRADED_V2</p>
  </td>
  <td>
  <p>The ID of the node that issued <a href="4c0ab17f-7f91-4897-80a5-bd1b455493a3" data-linktype="relative-path">CLUSCTL_RESOURCE_UPGRADED_DLL (section 3.1.4.3.1.27)</a>.</p>
  </td>
 </tr></tbody></table>
</dd>
<dd>
<p>For event indications pertaining
to a resource type object as specified for
CLUSTER_OBJECT_TYPE_RESOURCE_TYPE (section 2.2.2.11), the server MUST
set the NOTIFICATION_DATA_RPC structure as follows:</p>
</dd></dl><ul><li><p><span><span>  </span></span>FilterAndType.dwObjectType:
CLUSTER_OBJECT_TYPE_RESOURCE_TYPE (section 2.2.2.11).</p>
</li><li><p><span><span>  </span></span>FilterAndType.FilterFlags:
one flag from the <a href="aec62676-9b9f-4d49-914c-dd3d5bd7fcb3" data-linktype="relative-path">CLUSTER_CHANGE_RESOURCE_TYPE_V2 (section 2.2.2.15)</a>
enumeration, indicating the event that occurred.</p>
</li><li><p><span><span>  </span></span>ObjectId:
An empty Unicode string.</p>
</li><li><p><span><span>  </span></span>ParentId:
An empty Unicode string.</p>
</li><li><p><span><span>  </span></span>Name:
the name of the resource type.</p>
</li><li><p><span><span>  </span></span>Type:
An empty Unicode string.</p>
</li><li><p><span><span>  </span></span>dwBufferSize:
the number of bytes in the <b>buffer</b> field.</p>
</li></ul><dl>
<dd>
<p>The <b>buffer</b> field is set
depending on the event that occurred, identified by the <b>FilterAndType.FilterFlags</b>
field, as specified in the following table.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>FilterAndType.FilterFlags</p>
   </th>
   <th>
   <p>buffer</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_TYPE_DELETED_V2</p>
  </td>
  <td>
  <p>Empty.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_TYPE_COMMON_PROPERTY_V2</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) with
  updated values.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_TYPE_PRIVATE_PROPERTY_V2</p>
  </td>
  <td>
  <p>Empty.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_TYPE_POSSIBLE_OWNERS_V2</p>
  </td>
  <td>
  <p>A MULTI_SZ list of cluster node IDs that can host this
  resource type.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_RESOURCE_TYPE_DLL_UPGRADED_V2</p>
  </td>
  <td>
  <p>The ID of the node that issued
  CLUSCTL_RESOURCE_UPGRADED_DLL (section 3.1.4.3.1.27).</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_RESOURCE_TYPE_SPECIFIC_V2</p>
  </td>
  <td>
  <p>The same <b>buffer</b> field that a resource DLL used
  when it raised the notification.</p>
  </td>
 </tr></tbody></table>
</dd>
<dd>
<p>For event indications pertaining
to a cluster network interface as specified for
CLUSTER_OBJECT_TYPE_NETWORK_INTERFACE (section 2.2.2.11), the server
MUST set the NOTIFICATION_DATA_RPC structure as follows:</p>
</dd></dl><ul><li><p><span><span>  </span></span>FilterAndType.dwObjectType:
CLUSTER_OBJECT_TYPE_NETWORK_INTERFACE (section 2.2.2.11).</p>
</li><li><p><span><span>  </span></span>FilterAndType.FilterFlags:
one flag from the <a href="866c77e9-f692-4ecb-982b-38b682895492" data-linktype="relative-path">CLUSTER_CHANGE_NETINTERFACE_V2 (section 2.2.2.16)</a>
enumeration, indicating the event that occurred.</p>
</li><li><p><span><span>  </span></span>ObjectId:
ID of the cluster network interface.</p>
</li><li><p><span><span>  </span></span>ParentId:
ID of the node associated with the cluster network interface.</p>
</li><li><p><span><span>  </span></span>Name:
the name of the cluster network interface.</p>
</li><li><p><span><span>  </span></span>Type:
An empty Unicode string.</p>
</li><li><p><span><span>  </span></span>dwBufferSize:
the number of bytes in the <b>buffer</b> field.</p>
</li></ul><dl>
<dd>
<p>The <b>buffer</b> field is set
depending on the event that occurred, identified by the <b>FilterAndType.FilterFlags</b>
field, as specified in the following table.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>FilterAndType.FilterFlags</p>
   </th>
   <th>
   <p>buffer</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>CLUSTER_CHANGE_NETINTERFACE_DELETED_V2</p>
  </td>
  <td>
  <p>Empty.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NETINTERFACE_COMMON_PROPERTY_V2</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) with
  updated values.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NETINTERFACE_PRIVATE_PROPERTY_V2</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) with
  updated values.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NETINTERFACE_STATE_V2</p>
  </td>
  <td>
  <p>A DWORD containing the cluster network interface state
  as would be returned from a call to <a href="c3f9423d-1035-4ee9-adea-b0a8cf0f6c6c" data-linktype="relative-path">ApiGetNetInterfaceState (section 3.1.4.2.94)</a>.</p>
  </td>
 </tr></tbody></table>
</dd>
<dd>
<p>For event indications pertaining
to a cluster network object as specified for
CLUSTER_OBJECT_TYPE_NETWORK (section 2.2.2.11), the server MUST set
the NOTIFICATION_DATA_RPC structure as follows:</p>
</dd></dl><ul><li><p><span><span>  </span></span>FilterAndType.dwObjectType:
CLUSTER_OBJECT_TYPE_NETWORK (section 2.2.2.11).</p>
</li><li><p><span><span>  </span></span>FilterAndType.FilterFlags:
one flag from the <a href="e6d7a85b-b667-420d-8b0a-7f2f738c6215" data-linktype="relative-path">CLUSTER_CHANGE_NETWORK_V2 (section 2.2.2.17)</a>
enumeration, indicating the event that occurred.</p>
</li><li><p><span><span>  </span></span>ObjectId:
ID of the cluster network.</p>
</li><li><p><span><span>  </span></span>ParentId:
An empty Unicode string.</p>
</li><li><p><span><span>  </span></span>Name:
the name of the cluster network.</p>
</li><li><p><span><span>  </span></span>Type:
An empty Unicode string.</p>
</li><li><p><span><span>  </span></span>dwBufferSize:
the number of bytes in the <b>buffer</b> field.</p>
</li></ul><dl>
<dd>
<p>The <b>buffer</b> field is set
depending on the event that occurred, identified by the <b>FilterAndType.FilterFlags</b>
field, as specified in the following table.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>FilterAndType.FilterFlags</p>
   </th>
   <th>
   <p>Buffer</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>CLUSTER_CHANGE_NETWORK_DELETED_V2</p>
  </td>
  <td>
  <p>Empty.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NETWORK_COMMON_PROPERTY_V2</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) with
  updated values.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NETWORK_PRIVATE_PROPERTY_V2</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) with
  updated values.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NETWORK_STATE_V2</p>
  </td>
  <td>
  <p>A DWORD containing the cluster network state, as would
  be returned by a call to <a href="d6cd276a-6bab-473b-9e42-5a5f5fc6395f" data-linktype="relative-path">ApiGetNetworkState (section 3.1.4.2.83)</a>.</p>
  </td>
 </tr></tbody></table>
</dd>
<dd>
<p>For event indications pertaining
to a cluster node object as specified for
CLUSTER_OBJECT_TYPE_NODE (section 2.2.2.11), the server MUST set the
NOTIFICATION_DATA_RPC structure as follows:</p>
</dd></dl><ul><li><p><span><span>  </span></span>FilterAndType.dwObjectType:
CLUSTER_OBJECT_TYPE_NODE (section 2.2.2.11).</p>
</li><li><p><span><span>  </span></span>FilterAndType.FilterFlags:
one flag from the <a href="7db74409-6418-40f6-aa53-f323bdc6e346" data-linktype="relative-path">CLUSTER_CHANGE_NODE_V2 (section 2.2.2.18)</a>
enumeration, indicating the event that occurred.</p>
</li><li><p><span><span>  </span></span>ParentId:
An empty Unicode string.</p>
</li><li><p><span><span>  </span></span>Type:
An empty Unicode string.</p>
</li><li><p><span><span>  </span></span>dwBufferSize:
the number of bytes in the <b>buffer</b> field.</p>
</li></ul><dl>
<dd>
<p>The remaining fields are set
depending on the event that occurred, identified by the <b>FilterAndType.FilterFlags</b>
field, as specified in the following table.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>FilterAndType.FilterFlags</p>
   </th>
   <th>
   <p>buffer</p>
   </th>
   <th>
   <p>ObjectId</p>
   </th>
   <th>
   <p>Name</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>CLUSTER_CHANGE_NODE_NETINTERFACE_ADDED_V2</p>
  </td>
  <td>
  <p>The ID of the cluster node.</p>
  </td>
  <td>
  <p>The ID of the cluster network interface.</p>
  </td>
  <td>
  <p>The name of the cluster network interface.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NODE_DELETED_V2</p>
  </td>
  <td>
  <p>A DWORD containing the state of the cluster node as
  would be returned from a call to
  ApiGetNodeState (section 3.1.4.2.69).</p>
  </td>
  <td>
  <p>The ID of the cluster node.</p>
  </td>
  <td>
  <p>The name of the cluster node.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NODE_COMMON_PROPERTY_V2</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) with
  updated values.</p>
  </td>
  <td>
  <p>The ID of the cluster node.</p>
  </td>
  <td>
  <p>The name of the cluster node.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NODE_PRIVATE_PROPERTY_V2</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) with
  updated values.</p>
  </td>
  <td>
  <p>The ID of the cluster node.</p>
  </td>
  <td>
  <p>The name of the cluster node.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NODE_STATE_V2</p>
  </td>
  <td>
  <p>A DWORD containing the state of the cluster node as
  would be returned from a call to
  ApiGetNodeState (section 3.1.4.2.69).</p>
  </td>
  <td>
  <p>The ID of the cluster node.</p>
  </td>
  <td>
  <p>The name of the cluster node.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NODE_GROUP_GAINED_V2</p>
  </td>
  <td>
  <p>The ID of the group that has moved to this node.</p>
  </td>
  <td>
  <p>The ID of the cluster node.</p>
  </td>
  <td>
  <p>The name of the cluster node.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_NODE_GROUP_LOST_V2</p>
  </td>
  <td>
  <p>The ID of the group that has moved away from this
  node.</p>
  </td>
  <td>
  <p>The ID of the cluster node.</p>
  </td>
  <td>
  <p>The name of the cluster node.</p>
  </td>
 </tr></tbody></table>
</dd>
<dd>
<p>For event indications pertaining
to a cluster registry key object as specified for
CLUSTER_OBJECT_TYPE_REGISTRY (section 2.2.2.11), the server MUST set
the NOTIFICATION_DATA_RPC structure as follows:</p>
</dd></dl><ul><li><p><span><span>  </span></span>FilterAndType.dwObjectType:
CLUSTER_OBJECT_TYPE_REGISTRY (section 2.2.2.11).</p>
</li><li><p><span><span>  </span></span>FilterAndType.FilterFlags:
one flag from the <a href="3ec56e14-7d7c-461a-95bf-9650d73876ff" data-linktype="relative-path">CLUSTER_CHANGE_REGISTRY_V2 (section 2.2.2.19)</a>
enumeration, indicating the event that occurred.</p>
</li><li><p><span><span>  </span></span>ParentId:
An empty Unicode string.</p>
</li><li><p><span><span>  </span></span>Type:
An empty Unicode string.</p>
</li><li><p><span><span>  </span></span>buffer:
An empty buffer.</p>
</li><li><p><span><span>  </span></span>dwBufferSize:
0x00000000.</p>
</li></ul><dl>
<dd>
<p>The remaining fields are set
depending on the event that occurred, identified by the <b>FilterAndType.FilterFlags</b>
field, as specified in the following table.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>FilterAndType.FilterFlags</p>
   </th>
   <th>
   <p>ObjectId</p>
   </th>
   <th>
   <p>Name</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>CLUSTER_CHANGE_REGISTRY_ATTRIBUTES_V2</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>Relative name of the cluster database key whose
  attributes changed.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_REGISTRY_NAME_V2</p>
  </td>
  <td>
  <p>The name of the changed value.</p>
  </td>
  <td>
  <p>Relative name of the renamed cluster database key.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_REGISTRY_SUBTREE_V2</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
  <td>
  <p>An empty Unicode string.</p>
  </td>
 </tr><tr>
  <td>
  <p>CLUSTER_CHANGE_REGISTRY_VALUE_V2</p>
  </td>
  <td>
  <p>The name of the changed value.</p>
  </td>
  <td>
  <p>Relative name of the changed cluster database key.</p>
  </td>
 </tr></tbody></table>
</dd>
<dd>
<p>For event indications pertaining
to a cluster quorum as specified for
CLUSTER_OBJECT_TYPE_QUORUM (section 2.2.2.11), the server MUST set
the NOTIFICATION_DATA_RPC structure as follows:</p>
</dd></dl><ul><li><p><span><span>  </span></span>FilterAndType.dwObjectType:
CLUSTER_OBJECT_TYPE_QUORUM (section 2.2.2.11).</p>
</li><li><p><span><span>  </span></span>FilterAndType.FilterFlags:
one flag from the CLUSTER_CHANGE_QUORUM_V2 (section 2.2.2.19)
enumeration, indicating the event that occurred.</p>
</li><li><p><span><span>  </span></span>ParentId:
NULL.</p>
</li><li><p><span><span>  </span></span>Type:
NULL.</p>
</li><li><p><span><span>  </span></span>dwBufferSize:
the number of bytes in the <b>buffer</b> field.</p>
</li></ul><dl>
<dd>
<p>The remaining fields are set
depending on the event that occurred, identified by the <b>FilterAndType.FilterFlags</b>
field, as specified in the following table.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>FilterAndType.FilterFlags</p>
   </th>
   <th>
   <p>buffer</p>
   </th>
   <th>
   <p>ObjectId</p>
   </th>
   <th>
   <p>Name</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>CLUSTER_CHANGE_QUORUM_STATE_V2</p>
  </td>
  <td>
  <p>A DWORD describing the new state of the resource, as
  would be returned from a call to
  ApiGetResourceState (section 3.1.4.2.13).</p>
  </td>
  <td>
  <p>The ID of the resource.</p>
  </td>
  <td>
  <p>The name of the resource.</p>
  </td>
 </tr></tbody></table>
</dd>
<dd>
<p><b>Note</b>  For the
CLUSTER_CHANGE_QUORUM_STATE_V2 value, if and only if a quorum disk resource is
included, a payload will also be provided and the target will be the resource.</p>
</dd>
<dd>
<p>For event indications pertaining
to a shared <a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_9a876829-33a1-4f0b-8b81-8552b7e5561c" data-linktype="relative-path">volume</a> as
specified for CLUSTER_OBJECT_TYPE_SHARED_VOLUME (section 2.2.2.11),
the server SHOULD<a id="Appendix_A_Target_125"></a><a aria-label="Product behavior note 125" href="1d58eff8-a042-478c-972c-8e9c76a3f978#Appendix_A_125" data-linktype="relative-path">&lt;125&gt;</a> set the <b>NOTIFICATION_DATA_RPC</b>
structure as follows:</p>
</dd></dl><ul><li><p><span><span>  </span></span>FilterAndType.dwObjectType:
CLUSTER_OBJECT_TYPE_SHARED_VOLUME (section 2.2.2.11).</p>
</li><li><p><span><span>  </span></span>FilterAndType.FilterFlags:
one flag from the <a href="f84ad01b-d0e5-4dc1-945c-4c39d90fab13" data-linktype="relative-path">CLUSTER_CHANGE_SHARED_VOLUME_V2 (section 2.2.2.21)</a>
enumeration, indicating the event that occurred.</p>
</li><li><p><span><span>  </span></span>ParentId:
NULL.</p>
</li><li><p><span><span>  </span></span>Type:
NULL.</p>
</li><li><p><span><span>  </span></span>dwBufferSize:
the number of bytes in the <b>buffer</b> field.</p>
</li></ul><dl>
<dd>
<p>The remaining fields are set
depending on the event that occurred, identified by the <b>FilterAndType.FilterFlags</b>
field, as specified in the following table.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>FilterAndType.FilterFlags</p>
   </th>
   <th>
   <p>buffer</p>
   </th>
   <th>
   <p>ObjectId</p>
   </th>
   <th>
   <p>Name</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>CLUSTER_CHANGE_SHARED_VOLUME_STATE_V2</p>
  </td>
  <td>
  <p>A Property List (section 2.2.3.10)
  containing one or more Property Values (section 2.2.3.10.1) of type
  binary value, with each binary data value representing a <a href="326dce1b-b173-47f7-bfd3-f94464a30d07" data-linktype="relative-path">CLUSTER_SHARED_VOLUME_STATE_INFO_EX (section 2.2.3.32)</a>
  structure.</p>
  </td>
  <td>
  <p>The ID of the cluster shared volume resource.</p>
  </td>
  <td>
  <p>The name of the cluster shared volume resource.</p>
  </td>
 </tr></tbody></table>
</dd></dl><p><b>dwNumNotifications: </b>A pointer to a DWORD that
contains the count of NOTIFICATION_RPC structures.</p><p><b>rpc_status: </b>A 32-bit integer used to indicate
success or failure. The RPC runtime MUST indicate, by writing to this
parameter, whether it succeeded in executing this method on the server. The
encoding of the value passed in this parameter MUST conform to encoding for
comm_status and fault_status, as specified in Appendix E of <a href="https://go.microsoft.com/fwlink/?LinkId=89824" data-linktype="external">[C706]</a>.</p><p><b>Return Values: </b>This method MUST return the
following error codes for the following conditions.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>0x00000000</p>
  <p>ERROR_SUCCESS</p>
  </td>
  <td>
  <p>The method completed successfully.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x00000006</p>
  <p>ERROR_INVALID_HANDLE</p>
  </td>
  <td>
  <p>The data that is pointed to by the <i>hNotify</i>
  parameter does not represent a valid HNOTIFY_RPC context handle.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x00000103</p>
  <p>ERROR_NO_MORE_ITEMS</p>
  </td>
  <td>
  <p>The notification port represented by the <i>hNotify</i>
  parameter has been closed.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x00000001</p>
  <p>ERROR_INVALID_FUNCTION</p>
  </td>
  <td>
  <p>Either the ApiUnblockGetNotifyCall (section 3.1.4.2.107)
  method or the ApiCloseNotify (section 3.1.4.2.57) method has been
  called in another thread. The client SHOULD terminate the notification
  thread.</p>
  </td>
 </tr></tbody></table>
</dd></dl><p>For any other condition, the server returns a value that is
not one of the values listed in the preceding table. The client MUST treat all
such values identically, with the exception of errors specified in section <a href="ca75805a-4b39-4074-8b5b-dbaae6e81b1f" data-linktype="relative-path">3.2.4.6</a>, which are
recoverable and for which the client SHOULD initiate the reconnect procedure.</p></div>