3.1.4.5 RemoteQMCloseCursor (Opnum 4)
The RemoteQMCloseCursor method closes the handle for a previously created cursor. The client MUST call this method to reclaim resources on the server allocated by the qmcomm:R_QMCreateRemoteCursor method, as specified in [MS-MQMP] section 3.1.4.4.
-
HRESULT RemoteQMCloseCursor( [in] handle_t hBind, [in] DWORD hQueue, [in] DWORD hCursor );
hBind: MUST be set to an RPC binding handle, as specified in [MS-RPCE] section 2.
hQueue: A queue handle value upon which the cursor operates.
hCursor: Specifies the cursor handle to be closed.
Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically.
MQ_OK (0x00000000)
MQ_ERROR_INVALID_HANDLE (0xC00E0007)
Exceptions Thrown: No exceptions are thrown except those thrown by the underlying RPC protocol, as specified in [MS-RPCE].
When processing this call, the server MUST:
For each queue present in the QueueManager.QueueCollection:
For each OpenQueueDescriptor in Queue.OpenQueueDescriptorCollection:
If OpenQueueDescriptor.Handle= hQueue, use that OpenQueueDescriptor for processing.
For each cursor in OpenQueueDescriptor.CursorCollection:
If Cursor.Handle= hCursor, use that cursor object for processing.
If hQueue or hCursor is not found, return MQ_ERROR_INVALID_HANDLE(0xc00e0007).
Generate a Close Cursor event with the following inputs:
iCursor:= reference to cursor object obtained earlier.
Return MQ_OK (0x00000000).