public static extern NtStatus NtTraceControl(
     TraceControlFunctionCode FunctionCode,
     SafeBuffer InBuffer,
     int InBufferLen,
     SafeBuffer OutBuffer,
     int OutBufferLen,
     out int ReturnLength
     );
예제 #2
0
파일: NtTrace.cs 프로젝트: codehz/winsilo
 /// <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));
 }
예제 #3
0
파일: NtTrace.cs 프로젝트: codehz/winsilo
 /// <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);
 }