Windows APIにおけるCreateFile 関数の使い方は?
CreateFile関数は、Windows API 内のファイルまたはデバイスを作成または開くための関数で、プロトタイプは以下の通りです。
HANDLE CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
パラメータの説明を以下に示します。
- lpFileName: 作成または開くファイルまたはデバイスの名前
- dwDesiredAccess:ファイルやデバイスに対するアクセス権。GENERIC_READ、GENERIC_WRITE、GENERIC_EXECUTE といった定数や、独自に定義したアクセス権を指定できます。
- dwShareMode:共有モードで、他のプロセスがファイルまたはデバイスにどのようにアクセスできるかを指定します。FILE_SHARE_READ、FILE_SHARE_WRITE、FILE_SHARE_DELETE などの定数を使用できます。
- lpSecurityAttributesはセキュリティ属性で、ファイルまたはデバイスのセキュリティ記述子を指定します。
- nCreationDisposition:ファイルを作成または開く方法。CREATE_NEW、CREATE_ALWAYS、OPEN_EXISTING、OPEN_ALWAYS などの定数。
- ファイルまたはデバイスの属性とフラグ。 FILE_ATTRIBUTE_NORMAL、FILE_FLAG_WRITE_THROUGH、FILE_FLAG_NO_BUFFERINGなどの定数や、カスタムの属性とフラグの組み合わせを指定できます。
- ファイルの作成に使用するテンプレート ファイルを指定する、オプションのファイル ハンドルです。
CreateFile関数は成功するとファイルやデバイスを操作するためのファイルハンドルを返します。失敗した場合はINVALID_HANDLE_VALUEを返します。ファイルハンドルの使用が終わったら、CloseHandle関数を使用してファイルを閉じます。
CreateFile関数はファイルの作成・オープン・読み込み・書き込み・コピー・移動・削除などの操作や、機器のオープン・クローズなどの操作に使用できます。渡すパラメータによりCreateFile関数はさまざまな機能を実現できます。