dポイントプレゼントキャンペーン実施中!

WindowsNT 4.0、VC++ 5.0 の環境です。
Win32Api の CreateFile関数でエラーとなりました。
GetLastError関数で詳細エラーを確認すると、以下のエラーでした。

ERROR_BAD_UNIT:システムは指定されたデバイスを見つけることができません

ログを取ってなかったため、CreateFile関数に指定したファイル名は不明です。
以下のように再現させようとしましたが、できませんでした。

<ファイルがない>
・ERROR_FILE_NOT_FOUND
<不正なパス>
・ERROR_PATH_NOT_FOUND
<FDドライブを指定>
・ERROR_NOT_READY
<ファイル名の先頭を「:」から書く>
・ERROR_INVALID_NAME

ERROR_BAD_UNIT のエラーとなる要因は、何が考えられるでしょうか?

A 回答 (1件)

もうひとつ、デバイスに対する操作ってのがあります。



----(MSDNヘルプより)---------------
通信リソースについて

CreateFile 関数は、通信リソース (シリアルポート COM1 など) のハンドルを作成できます。通信リソースをオープンするときは、dwCreationDistribution パラメータに OPEN_EXISTING、hTemplate パラメータに NULL を指定しなければなりません。次に例を示します。

hCom = CreateFile("COM1",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
----------------------------------------

第5パラメータに OPEN_EXISTING が指定されていると
デバイス名とみなされて、存在しないデバイス名の場合に
なるらしいです。
使用できるデバイス名は QueryDosDevice() で列挙でき
ます。YAHOOで検索すると1件目に、使用例が書かれ
ているHPが出てます。
    • good
    • 0
この回答へのお礼

回答、ありがとうございました。

お礼日時:2002/04/12 13:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!