public uint DeviceIoControl(int ControlCode, byte[] InBuffer, int InBufferSize, byte[] OutBuffer, int OutBufferSize) { uint returned = 0; if (!DeviceControl.DeviceIoControl(m_hFile, (IntPtr)ControlCode, InBuffer, (uint)InBufferSize, OutBuffer, (uint)OutBufferSize, ref returned, IntPtr.Zero)) { throw new Win32Exception(Marshal.GetLastWin32Error()); } return(returned); }