private HookHandle AddInvalidInternal(InstructionInvalidHookCallback callback, ulong begin, ulong end, object userToken) { var wrapper = new uc_cb_hookinsn_invalid((uc, user_data) => { Debug.Assert(uc == Emulator.Handle); callback(Emulator, userToken); }); return(AddInvalidInternal(wrapper, begin, end)); }
/// <summary> /// Adds a hook invalid instructions exceptions. /// </summary> /// <param name="callback"><see cref="InstructionInvalidHookCallback"/> to add.</param> /// <param name="userToken">Object associated with the callback.</param> /// <returns>A <see cref="HookHandle"/> which represents the hook.</returns> public HookHandle Add(InstructionInvalidHookCallback callback, object userToken) { Emulator.ThrowIfDisposed(); if (callback == null) { throw new ArgumentNullException(nameof(callback)); } return(AddInvalidInternal(callback, 1, 0, userToken)); }