CreateFile(API)でオブジェクトの作成または開く
オブジェクトを作成、または、開いて、
そのオブジェクトのアクセスに利用できるハンドルを返す。
[オブジェクトの種類]
・コンソール
・通信リソース
・ディレクトリ(開くだけ)
・ディスク・デバイス(Windows 95/98/Meを除く)
・ファイル
・メールスロット
・パイプ
【式】
HANDLE CreateFile(LPCTSTR lpPathName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile);
【引数】
lpPathName :
作成または開くオブジェクト名
dwDesiredAccess :
オブジェクトへのアクセス・タイプ
| 値 | 内容 |
|---|---|
| 0 | デバイスの問い合わせ |
| GENERIC_READ | 読み取り |
| GENERIC_WRITE | 書き込み |
| 定数 | 内容 |
|---|---|
| FILE_SHARE_DELETE | 削除 |
| FILE_SHARE_READ | 読み取り |
| FILE_SHARE_WRITE | 書き込み |
| 定数 | 内容 |
|---|---|
| CREATE_NEW | 新規ファイル作成。 指定ファイルが存在する場合は、関数失敗 |
| CREATE_ALWAYS | 新規ファイル作成。 指定ファイルが存在する場合は、上書き |
| OPEN_EXISTING | 既存のファイルを開く。 指定ファイルが存在しない場合、関数失敗 |
| OPEN_ALWAYS | ファイルを開く。 指定ファイルが存在しない場合、新規作成 |
| TRUNCATE_EXISTING | ファイルを開き、サイズを0にする。 指定ファイルが存在しない場合、関数失敗 |
| 定数 | 内容 |
|---|---|
| FILE_ATTRIBUTE_ARCHIVE | アーカイブ |
| FILE_ATTRIBUTE_ENCRYPTED | 暗号化 |
| FILE_ATTRIBUTE_HIDDEN | 隠しファイル |
| FILE_ATTRIBUTE_NORMAL | 設定なし |
| FILE_ATTRIBUTE_NOT_CONTENT_INDEXED | インデックスサービスの対象にしない |
| FILE_ATTRIBUTE_READONLY | 読み取り専用 |
| FILE_ATTRIBUTE_SYSTEM | オペレーティングシステム専用 |
| FILE_ATTRIBUTE_TEMPORARY | 一時ファイル |
| 定数 | 内容 |
|---|---|
| FILE_FLAG_WRITE_THROUGH | キャッシュに書き込まれたデータを直接ディスクに書き込む |
| FILE_FALG_OVERLAPPED | オブジェクトを初期化 |
| FILE_FLAG_NO_BUFFERING | バッファ、キャッシュを使わないでファイルを開く |
| FILE_FLAG_RANDOM_ACCESS | ファイルをランダムアクセス |
| FILE_FLAG_SEQUENTIAL_SCAN | シーケンシャルにファイルをアクセス |
| FILE_FLAG_DELETE_ON_CLOSE | ハンドルを閉じると同時にファイルを削除 |
| FILE_FLAG_BACKUP_SEMANTICS | バックアップ、復元操作の目的でのファイル作成または開く |
| FILE_FLAG_POSIX_SEMANTICS | POSIX(UNIXベースのポータブルOS)のファイルをアクセス |
| FILE_FLAG_OPEN_REPARSE_POINT | NTFSの再解析ポイントで再解析を実施することを禁止 |
| FILE_FLAG_OPEN_NO_RECALL | ファイルのデータを継続的にリモート記憶域に配置 |