小编Kai*_*esh的帖子

DeviceIoControl 调用失败并显示 Windows 错误代码 183

我正在尝试将缓冲区数据写入 SCSI 设备,但是当我触发 deviceIoControl 调用时,我收到 Windows 错误代码 183。错误代码指示文件已退出,但我无法理解与 IOCTL 调用相关的错误。

CreateFile 函数通过,因为我能够获得适当的设备句柄,如下所示。

int devHandle = DeviceIoControlHelper.CreateFile( deviceName, DeviceIoControlHelper.GENERIC_READ | DeviceIoControlHelper.GENERIC_WRITE, DeviceIoControlHelper.FILE_SHARE_READ | DeviceIoControlHelper.FILE_SHARE_WRITE, IntPtr.Zero, DeviceIoControlHelper.OPEN_EXISTING, Inttr.0Z

但是,当我尝试写入缓冲区时,出现错误:

 dwReturned = 0;
        int b = DeviceIoControlHelper.DeviceIoControl(
                devHandle,
                DeviceIoControlHelper.IOCTL_SCSI_PASS_THROUGH,
                inpBuffer,
                (uint)Marshal.SizeOf(info),
                inpBuffer, //out pDriveLayout,
                (uint)Marshal.SizeOf(info), //(uint)Marshal.SizeOf(typeof(DRIVE_LAYOUT_INFORMATION_EX)),
                out dwReturned,
                IntPtr.Zero);

        Log.Write(Log.TraceLevel_5,"ExecuteDeviceIoControl return pass_through scsistatus = " + info.spt.ScsiStatus);
        if (b == 0)
        {
            int win_err = this.GetWindowsErrorCode();
            Log.Write(Log.TraceLevel_5, "ExecuteDeviceIoControl failed, error =  " + win_err);
            LogMyTrace.Write(LogMyTrace.TraceLevel_5, "ExecuteDeviceIoControl failed, error =  " + win_err);

            this.CloseOpenHandle(devHandle); …
Run Code Online (Sandbox Code Playgroud)

c# windows ioctl iscsi

5
推荐指数
0
解决办法
814
查看次数

Perf 工具统计输出:“周期”的复用和缩放

我试图了解“perf”输出中“cycles”事件的复用和缩放。

以下是 perf 工具的输出:

 144094.487583      task-clock (msec)         #    1.017 CPUs utilized
  539912613776      instructions              #    1.09  insn per cycle           (83.42%)
  496622866196      cycles                    #    3.447 GHz                      (83.48%)
     340952514      cache-misses              #   10.354 % of all cache refs      (83.32%)
    3292972064      cache-references          #   22.854 M/sec                    (83.26%)
 144081.898558      cpu-clock (msec)          #    1.017 CPUs utilized
       4189372      page-faults               #    0.029 M/sec
             0      major-faults              #    0.000 K/sec
       4189372      minor-faults              #    0.029 M/sec
    8614431755      L1-dcache-load-misses     #    5.52% of all L1-dcache hits    (83.28%)
  156079653667      L1-dcache-loads           # 1083.223 M/sec                    (66.77%)

 141.622640316 seconds …
Run Code Online (Sandbox Code Playgroud)

linux intel linux-kernel perf intel-pmu

4
推荐指数
1
解决办法
1497
查看次数

如何在oracle sql中合并(列)两个SELECT语句的输出?

我有两个 Select 查询。

第一个 Select 查询给出了具有两列的输出,即。

A   B
------
1   2    
3   4    
5   6    
7   8
Run Code Online (Sandbox Code Playgroud)

第二个 Select 查询给出的输出为两列,即 B 列和 C 列。此 select 语句的 B 列中的所有值都与第一个 Select 语句的 B 列的值匹配。

B   C
------
2   25    
4   50    
6   30    
8   50
Run Code Online (Sandbox Code Playgroud)

现在,我需要合并上述两个 Select 查询的输出。IE

A   B   C
----------
1   2   25    
3   4   50    
5   6   30    
7   8   50
Run Code Online (Sandbox Code Playgroud)

我不能使用视图来存储两个选择查询的输出。我需要在两个选择查询中使用 B 列进行合并。但是,我不知道如何去做。

mysql sql sql-server oracle

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

intel ×1

intel-pmu ×1

ioctl ×1

iscsi ×1

linux ×1

linux-kernel ×1

mysql ×1

oracle ×1

perf ×1

sql ×1

sql-server ×1

windows ×1