はじめまして。
VC++からVC#へ乗り換え中の爽聞茶と申します。
開発環境は
Windows2000 SP3
VisualStudio.net Enterprise Developer MSDN Deluxe Edition
です。
NT系OSで、C++の場合、
例えばE:\に接続されているドライブへのアクセスは、
m_hDrive = CreateFile(\\\\.\\E:\,
GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
NULL,
NULL);
でハンドルを取得して、このハンドルを用いて
DeviceIoControlやReadFile、WriteFileなどを実行できましたが、
C#ではこのような操作(ドライブへのなんらかの操作)を行うには、
どのような方法があるのでしょうか?
ヘルプで検索した結果、
unsafeコンテキストを使用してReadFileを使用する方法は見つけたのですが、
安全ではないなどと書いてあり、この方法を使用するには少々不安があります。
安全に同じような動作が出来る方法をご存知の方が居られましたらご教授ください。
よろしくお願いいたします。
APIを使はないで、
System.IO.Fileとかを使えばいいのでは??
aさん、返答ありがとうございました。
ReadFile、WriteFileはSystem.IO.Fileの使用でいけそうです。
ありがとうございました。
その上で質問なのですが、ファイルへのアクセスとは別に、
「任意のコマンド(SCSIコマンドとかUSBコマンドのような)を送る」
という事もやりたいと思っています。
(例えばINQUIRYコマンドを送る、など)
C++で、NT系OSの場合ですとSPTI、98系OSの場合ですとASPIを使用する
というイメージなのですが、
C#で同様な操作を行うにはどのような方法があるのでしょうか。
ご存知の方、よろしくお願いいたします。