3.4.4.5 RasRpcSubmitRequest (Opnum 12)
Before calling the method, the client MUST set the pReqBuffer buffer and dwcbBufSize buffer size to a size at least as large as the sum of the size of RequestBuffer and 5000. Also, the pReqBuffer.RB_ReqType value MUST be set to one of the valid enumeration values as stated in section 2.2.1.1.18.
Client behavior for specific ReqTypes is as follows.
REQTYPE_GETDEVICECONFIGINFO
Before calling the method, the client MUST set DeviceConfigInfo.dwVersion to the version of Rasrpc server. The version information for the Rasrpc server can be retrieved using RasRpcGetVersion method as specified in section 3.3.4.7.
Also, the DeviceConfigInfo.cbBuffer value MUST be equal to the size of the DeviceConfigInfo.abdata buffer.
If the returned DeviceConfigInfo.cbBuffer is more than the passed in cbBuffer size, it implies that the passed in buffer is not big enough to hold all the device information. The client SHOULD again call the API with DeviceConfigInfo.cbBuffer set to the size of the returned cbBuffer.
REQTYPE_SETDEVICECONFIGINFO
Before calling the method, the client MUST set the DeviceConfigInfo.cbBuffer value equal to the size of DeviceConfigInfo.abdata buffer.
REQTYPE_PORTENUM
Before calling the method, the client MUST set the Enum.size value to the size of Enum.buffer.
If the returned Enum.size is more than the passed in Enum.size, it implies that the passed in buffer was not big enough to hold all the ports information. The client SHOULD again call the API with Enum.size set to the size of the returned Enum.size.
REQTYPE_GETDEVCONFIG
Before calling the method, the client MUST set the GetDevConfigStruct.size value to the size of the GetDevConfigStruct.config buffer.
If the returned GetDevConfigStruct.retcode is set to ERROR_BUFFER_TOO_SMALL (0x0000025B), the buffer that was passed in was not big enough to hold the device configuration information. The client SHOULD again call the API with GetDevConfigStruct.size set to the size of returned GetDevConfigStruct.size.
REQTYPE_GETCALLEDID
Before calling the method, the client SHOULD set the RequestBuffer.RB_PCBIndex to zero (0).
Also, the client MUST set the GetSetCalledId.dwSize to the sum of the size of RAS_CALLEDID_INFO and the size of GetSetCalledId.rciInfo.bCalledId buffer size.
If the returned GetSetCalledId.dwSize is more than the passed in GetSetCalledId.dwSize, it implies that the passed in buffer was not big enough to hold all the CalledId information. The client SHOULD again call the API with GetSetCalledId.dwSize set to sum of the size of RAS_CALLEDID_INFO and the returned GetSetCalledId.dwSize.