private void CallIOCTL(NativeMethods.ServiceIoctl ioctl, out int returnData) { int ret; if (NativeMethods.ServiceIoControl(this.Handle, ioctl, IntPtr.Zero, 0, out returnData, 4, out ret, IntPtr.Zero) == 0) { throw new System.ComponentModel.Win32Exception(System.Runtime.InteropServices.Marshal.GetLastWin32Error()); } }
private void CallIOCTL(NativeMethods.ServiceIoctl ioctl, string output) { int ret; if (NativeMethods.ServiceIoControl(this.Handle, ioctl, output, (output.Length + 1) * 2 /* Unicode length */, IntPtr.Zero, 0, out ret, IntPtr.Zero) == 0) { throw new System.ComponentModel.Win32Exception(System.Runtime.InteropServices.Marshal.GetLastWin32Error()); } }