前回はいろいろ助かりましたm__m。
MFCを使ってPCからmicroSDカードにデータの読み書きをする
プログラムを作っています。
早速質問ですけど、
IOCTL_SFFDISK_DEVICE_PASSWORDの使い方分かりません。
以下のものはうまく動作しますけど
if (!DeviceIoControl(*_h, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0,
&dwReturn, NULL)) {
errCode = GetLastError();
}
以下のものはエラーを返します。
SFFDISK_DEVICE_PASSWORD_DATA aaa;
char bbb[256];
if (!DeviceIoControl(*_h, IOCTL_SFFDISK_DEVICE_PASSWORD,
&aaa, sizeof(aaa), &bbb, sizeof(bbb),
&dwReturn, NULL)) {
DWORD errCode = GetLastError();
}
エラーコード内容
// The network request is not supported.
//
#define ERROR_NOT_SUPPORTED 50L
パラメータ設定が間違ってるのは分かりますけど、
エラー内容から見ればそう単純のものではなさそうなので・・・
sffdisk.hはWINDDK環境からコピーしてきたものです。
コンパイルのため
#define ULONG_PTR DWORD
を追加しました。
皆様、アドバイスよろしくお願いします。
SFFDISK_DEVICE_COMMAND_DATA scData = {0};
scData.DeviceDataBufferSize = sizeof(SFFDISK_DEVICE_COMMAND_DATA);
scData.Command = SFFDISK_DC_LOCK_CHANNEL;
if (!DeviceIoControl(*_h, IOCTL_SFFDISK_DEVICE_COMMAND,
&scData, scData.DeviceDataBufferSize,
&scData, scData.DeviceDataBufferSize,
&dwReturn,
NULL)){
errCode = GetLastError();
}
も同じエラーになります。
ほぉ、面白い機能があったもんですな。
DeviceIoControlのページからリンクしといて欲しいね。
で、前スレでも出てましたけど、単にドライバがこの機能をサポートしていないのでは?
シャノンさま、いつもお世話になっております。
ドライバに関してはまったく理解できてないです。
もうちょっと調べます。
WINDDKも初めてインストールしましたけど、
MFC環境とWINDDK環境の問題ではなさそうですね^^
ありがとうございます。
Windows2000で実現できないのと、ドライバ側がサポートしない
可能性もあるということでやめました。