3.3.4.4 S_DSBeginDeleteNotification (Opnum 3)

The S_DSBeginDeleteNotification method begins a delete notification and returns an RPC context handle associated with the delete notification.

 HRESULT S_DSBeginDeleteNotification(
   [in] handle_t hBind,
   [in] const wchar_t* pwcsPathName,
   [out] PPCONTEXT_HANDLE_DELETE_TYPE pHandle,
   [in] PCONTEXT_HANDLE_SERVER_AUTH_TYPE phServerAuth
 );

hBind:  MUST specify an RPC binding handle, as specified in [MS-RPCE] section 2.

pwcsPathName:  MUST be set by the client to a pointer to a NULL-terminated 16-bit Unicode string that contains the directory service pathname, as specified in section 2.2.9, for an object of type MQDS_MACHINE or MQDS_QUEUE.<157>

pHandle:  MUST be set by the server to a pointer to a unique RPC context_handle representing the delete notification. This handle is used by the client in subsequent calls to S_DSNotifyDelete.

phServerAuth:  A PCONTEXT_HANDLE_SERVER_AUTH_TYPE RPC context handle acquired from the pphServerAuth parameter in a previous call to S_DSValidateServer. The server MUST use this parameter as a key to locate the GSS security context used to compute the signature returned in pbServerSignature. See section 3.1.4.2.

Return Values:  If the method succeeds, the return value is MQ_OK (0x00000000). If the method fails, the return value is an implementation-specific error code.<158>

MQ_OK (0x00000000)

Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying RPC protocol, as specified in [MS-RPCE].

When processing this call, the server MUST:

  • Add an entry to the delete notification table as follows:

    • Set the object type to the type of object identified by pwcsPathName.<159>

    • Set the name to pwcsPathName.

    • Set the owner site to the object identifier of the site owning the queue object.<160>

  • Also, if the object type is MQDS_QUEUE, the server MUST:

    • Set the owner queue manager object identifier to the queue manager object identifier for the queue.

    • Set the flag indicating if this queue is a foreign queue.

The server MUST retain this information until the client calls the S_DSEndDeleteNotification method or until the PCONTEXT_HANDLE_DELETE_TYPE rundown event occurs.