3.1.4.23 R_QMQueryQMRegistryInternal (Opnum 28)

A client calls the R_QMQueryQMRegistryInternal method to retrieve various string values from the supporting server.

 HRESULT R_QMQueryQMRegistryInternal(
   [in] handle_t hBind,
   [in] DWORD dwQueryType,
   [out, string] WCHAR** lplpMQISServer
 );

hBind: MUST be set to an RPC binding handle as described in [MS-RPCE] section 2.

dwQueryType: Specifies the type and format of the data to return to the caller via the lplpMQISServer parameter. MUST be one of the values in the following table:

Value

Meaning

0x00000000

A comma-delimited list of MQIS server names configured on the supporting server. This value is retrieved from the DirectoryServerList attribute of the server's LocalQueueManager ADM element instance.

0x00000001

The server's default time-to-reach-queue message property value, expressed in seconds, converted to a string.<59><60>

0x00000002

The GUID that represents the entire MSMQ forest.<61> See following for the curly braced GUID string representation to use. The string uses the "braceless" format.

0x00000003

A string representation of the supporting server version.<62>

0x00000004

The content of the Identifier attribute of the server's LocalQueueManager ADM element instance. The curly braced GUID string representation uses a "braceless" format given following.<63><64>

The format for the comma-delimited list of MQIS server names (0x00000000) is given by the following augmented BNF:

 list = [list ","] computer-name
 computer-name = 1*15digit
 digit = num-digit / uppercase-alpha-digit / lowercase-alpha-digit 
                   / special-digit
 num-digit = %x30-39
 uppercase-alpha-digit = %x41-5Alowercase-alpha-digit = %x61-7A
 special-digit = "!" / "@" / "#" / "$" / "%" / "^" / "&" / "'" 
                 / ")" / "(" / "." / "-" / "_" / "{" / "}" / "~"
  

The GUID string for the MSMQ forest (0x00000002) uses the "braceless" format depicted in the following augmented BNF:

  
 braceless-guid = dword-part "-" word-part "-" word-part "-" 
                  2byte-part "-" 6byte-part
 dword-part = 2word-part
 word-part = 2byte-part
 byte-part = 2hex-digit
 hex-digit = %x30-39 / %x41-46 / %x61-66
  

The string format used for the supporting server version (0x00000003), depicted in augmented BNF, is as follows:

  
 version = version-part "." version-part "." version-part
 version-part = 1*4num-digit
 num-digit = %x30-39

The GUID for the server queue manager (0x00000004) uses the following "braceless" format, depicted in augmented BNF:

  
 braceless-guid = dword-part "-" word-part "-" word-part "-" 
                  2byte-part "-" 6byte-part
 dword-part = 2word-part
 word-part = 2byte-part
 byte-part = 2hex-digit
 hex-digit = %x30-39 / %x41-46 / %x61-66
  

lplpMQISServer:  On success, the server returns the string indicated by dwQueryType through this parameter. The server can set this parameter to NULL in the event of an error.

Return Values: On success, this method MUST return MQ_OK (0x00000000).

If input parameter values violate constraints specified above, the server MUST take no further action and return a failure HRESULT.

If any other error occurs, the server MUST return a failure HRESULT, and the client MUST treat all other failure HRESULTs identically. Additionally, if any other failure HRESULT is returned, the client MUST disregard all out-parameter values.

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

This method is invoked at the dynamically assigned endpoint returned by the R_QMGetRTQMServerPort method when IP_HANDSHAKE (0x00000000) or IPX_HANDSHAKE (0x00000002) is the interface specified by the fIP parameter.