嗨,我有以下代码,我想转换为C#。您能在这里分享一些我如何将它们转换为C#吗?我对C++不太熟悉。特别是在调用WinBase API的函数DeviceIoControl上。在C#中,应该使用什么功能替换DeviceIOCOntrol?

shareMode = FILE_SHARE_READ | FILE_SHARE_WRITE;
   accessMode        = GENERIC_READ | GENERIC_WRITE;

   sprintf(ff, "\\\\.\\%s", device);
    hFile = CreateFile(ff, accessMode, shareMode, NULL, OPEN_EXISTING, 0, NULL);


   if(hFile == INVALID_HANDLE_VALUE) {
           *response = -1;
           sprintf((response + 1), "Failed to open device %s", device);
           return;
   }


    status = DeviceIoControl(hFile,
                                           IOCTL_SCSI_GET_ADDRESS,
                                                    NULL,
                                                    0,
                                                    inquiry_data,
                                                    sizeof(inquiry_data),
                                                    &returned,
                                                    FALSE);

最佳答案

您必须使用P / Invoke互操作访问DeviceIoControl。这是一个调用类似的链接,应该是一个不错的起点:Defrag API C# wrappers

关于c# - 如何将其转换为C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5839920/

10-10 22:56