예제 #1
0
        static public HV_HOOKING_HCALL_STATS[] getStats()
        {
            HV_HOOKING_HCALL_STATS[] val = new HV_HOOKING_HCALL_STATS[0xE8 + 1];
            bool success;

            unsafe
            {
                fixed(HV_HOOKING_HCALL_STATS *tmp = val)
                {
                    success = hypercallsGetStats(tmp);
                }
            }
            if (success)
            {
                return(val);
            }
            return(null);
        }
예제 #2
0
        static public bool hypercall(long callInfo, byte[] inBuffer, uint inBufferSize, out long callResult, out byte[] outBuffer, uint outBufferSize)
        {
            HV_HOOKING_HCALL_STATS[] val = new HV_HOOKING_HCALL_STATS[0xE8 + 1];
            bool success;

            unsafe
            {
                fixed(byte *tmpIn = inBuffer)
                {
                    fixed(byte *tmpOut = outBuffer)
                    {
                        long result;
                        long tmpCallCode = callInfo;

                        success    = hypercallsCall(&tmpCallCode, tmpIn, inBufferSize, &result, tmpOut, outBufferSize);
                        callResult = result;
                    }
                }
            }
            return(success);
        }