protected override Array rawDataToStructArray(ref byte[] rawData) { if (rawData == null) { return(new DEREFERENCED_HOOK_CALL[0]); } // Create our result array uint size = (this.lengthParams + 3 * 4 + this.copySize); DEREFERENCED_HOOK_CALL[] result = new DEREFERENCED_HOOK_CALL[rawData.Length / size]; for (int i = 0; i < result.Length; i++) { result[i].caller = oMemoryFunctions.byteArrayToUint(rawData, (int)(i * size)); // Copy over the arguments result[i].arguments = new uint[this.lengthParams / 4]; for (int n = 0; n < this.lengthParams / 4; n++) { result[i].arguments[n] = oMemoryFunctions.byteArrayToUint(rawData, (int)(i * size + 4 + n * 4)); } result[i].sequenceNumber = oMemoryFunctions.byteArrayToUint(rawData, (int)(i * size + 4 + this.lengthParams)); // Copy the array result[i].dereference = new byte[this.copySize]; Array.ConstrainedCopy(rawData, (int)(i * size + 8 + this.lengthParams), result[i].dereference, 0, (int)this.copySize); result[i].returnValue = oMemoryFunctions.byteArrayToUint(rawData, (int)(i * size + this.copySize + 8 + this.lengthParams)); } return(result); }
protected override Array rawDataToStructArray(ref byte[] rawData) { if (rawData == null) return new DEREFERENCED_HOOK_CALL[0]; // Create our result array uint size = (this.lengthParams + 3 * 4 + this.copySize); DEREFERENCED_HOOK_CALL[] result = new DEREFERENCED_HOOK_CALL[rawData.Length / size]; for (int i = 0; i < result.Length; i++) { result[i].caller = oMemoryFunctions.byteArrayToUint(rawData, (int)(i * size)); // Copy over the arguments result[i].arguments = new uint[this.lengthParams / 4]; for (int n = 0; n < this.lengthParams / 4; n++) { result[i].arguments[n] = oMemoryFunctions.byteArrayToUint(rawData, (int)(i * size + 4 + n * 4)); } result[i].sequenceNumber = oMemoryFunctions.byteArrayToUint(rawData, (int)(i * size + 4 + this.lengthParams)); // Copy the array result[i].dereference = new byte[this.copySize]; Array.ConstrainedCopy(rawData, (int)(i * size + 8 + this.lengthParams),result[i].dereference, 0,(int) this.copySize); result[i].returnValue = oMemoryFunctions.byteArrayToUint(rawData, (int)(i * size + this.copySize + 8 + this.lengthParams)); } return result; }