The implementation of this protocol SHOULD<8> open the local private change notification queue. This queue MUST be opened by raising an Open Queue ([MS-MQDMPR] section 126.96.36.199.5) event with the following arguments:
iFormatName := NOTIFY_QUEUE_PRIVATE as defined in section 1.9.
iRequiredAccess := ReceiveAccess.
iSharedMode := DenyNone.
This event returns rStatus and rOpenQueueDescriptor. If rStatus is MQ_OK, the value of rOpenQueueDescriptor is stored for reuse when dequeuing messages from this queue. Otherwise, if rStatus is different than MQ_OK, this protocol cannot work correctly.
After the change notification queue is open, the implementation MUST start a loop for the lifetime of the server side of this protocol for dequeuing and processing change notification messages:
Raise the Dequeue Message ([MS-MQDMPR] section 188.8.131.52.10) event with the following arguments:
iQueueDesc := The OpenQueueDescriptor ([MS-MQDMPR] section 184.108.40.206) ADM element instance referenced by rOpenQueueDescriptor returned by the Open Queue event that opened the change notification queue.
This event returns rMessage, a reference to the Message ([MS-MQDMPR] section 220.127.116.11) ADM element instance that was dequeued.