public static extern NtStatus NtTraceControl( TraceControlFunctionCode FunctionCode, SafeBuffer InBuffer, int InBufferLen, SafeBuffer OutBuffer, int OutBufferLen, out int ReturnLength );
/// <summary> /// Issue a trace control request. /// </summary> /// <param name="function">The trace control function code.</param> /// <param name="input_buffer">The optional input buffer.</param> /// <param name="output_buffer">The optional output buffer.</param> /// <param name="throw_on_error">True to throw on error.</param> /// <returns>The output length.</returns> public static NtResult <int> Control(TraceControlFunctionCode function, SafeBuffer input_buffer, SafeBuffer output_buffer, bool throw_on_error) { if (input_buffer == null) { input_buffer = SafeHGlobalBuffer.Null; } if (output_buffer == null) { output_buffer = SafeHGlobalBuffer.Null; } return(NtSystemCalls.NtTraceControl(function, input_buffer, input_buffer.GetLength(), output_buffer, output_buffer.GetLength(), out int return_length) .CreateResult(throw_on_error, () => return_length)); }
/// <summary> /// Issue a trace control request. /// </summary> /// <param name="function">The trace control function code.</param> /// <param name="input_buffer">The optional input buffer.</param> /// <param name="output_buffer">The optional output buffer.</param> /// <returns>The output length.</returns> public static int Control(TraceControlFunctionCode function, SafeBuffer input_buffer, SafeBuffer output_buffer) { return(Control(function, input_buffer, output_buffer, true).Result); }