private bool TryProcessFeatureExtAck(TdsParserStateObject stateObj)
{
// read feature ID
byte featureId;
do
{
if (!stateObj.TryReadByte(out featureId))
{
return false;
}
if (featureId != TdsEnums.FEATUREEXT_TERMINATOR)
{
UInt32 dataLen;
if (!stateObj.TryReadUInt32(out dataLen))
{
return false;
}
byte[] data = new byte[dataLen];
if (dataLen > 0)
{
if (!stateObj.TryReadByteArray(data, 0, checked((int)dataLen)))
{
return false;
}
}
_connHandler.OnFeatureExtAck(featureId, data);
}
} while (featureId != TdsEnums.FEATUREEXT_TERMINATOR);
return true;
}