posted by 블르샤이닝
2012. 6. 28. 12:59
아놔 createfile 인자값을 16진수로 된거 찾는데 왜이리 힘들어...ㅡㅡ;;;;기본이지만 알아두어야 좋은점.
CreateFile
ファイル等のオブジェクトを作成またはオープン
Cの宣言 |
HANDLE CreateFileA(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
); |
HSPの宣言 |
#func global CreateFile "CreateFileA" sptr,sptr,sptr,sptr,sptr,sptr,sptr |
なでしこの宣言 |
●CreateFile(p1,p2,p3,p4,p5,p6,p7)=DLL("kernel32.dll","HANDLE CreateFileA(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
)") |
引数 |
- lpFileName
- ファイル等のオブジェクト名
- dwDesiredAccess
- アクセスモード
以下の定数を組み合わせて指定します。
定数 | 値 | 意味 |
---|
-- | 0 | デバイスへはアクセスせずに属性だけを問い合わせる | GENERIC_READ | 0x80000000 | ファイルから読み取りができる | GENERIC_WRITE | 0x40000000 | ファイルへの書き込みができる |
- dwShareMode
- 他プロセスのアクセス共有モード
以下の定数を組み合わせて指定します。
定数 | 値 | 意味 |
---|
-- | 0 | 共有なし | FILE_SHARE_READ | 0x00000001 | 他プロセスからの読み取りアクセスを許可 | FILE_SHARE_WRITE | 0x00000002 | 他プロセスからの書き込みアクセスを許可 |
- lpSecurityAttributes
- 子プロセスにハンドルを継承するかどうかを決めるSECURITY_ATTRIBUTES構造体のポインタを指定。
継承しない場合はNULLでよい。 - dwCreationDisposition
- ファイルが存在する場合、しない場合の処理
以下の定数のいずれかを指定します。
定数 | 値 | 意味 |
---|
CREATE_NEW | 1 | 新しいファイルを作成します。既に存在する場合はエラーとなります。 | CREATE_ALWAYS | 2 | 新しいファイルを作成します。既に存在する場合は上書きします。 | OPEN_EXISTING | 3 | ファイルをオープンします。ファイルが存在しない場合はエラーとなります。 | OPEN_ALWAYS | 4 | ファイルをオープンします。ファイルが存在しない場合は新たに作成します。 | TRUNCATE_EXISTING | 5 | ファイルサイズを0にしてオープンします。 dwDesiredAccessにGENERIC_WRITEが指定されている場合のみ有効。 |
- dwFlagsAndAttributes
- ファイル属性とフラグ
以下の定数を組み合わせて指定します。 ただしFILE_ATTRIBUTE_NORMALは単独でのみ有効です。
[属性]
定数 | 値 | 意味 |
---|
FILE_ATTRIBUTE_ARCHIVE | 0x00000020 | アーカイブ | FILE_ATTRIBUTE_HIDDEN | 0x00000002 | 隠しファイル | FILE_ATTRIBUTE_NORMAL | 0x00000080 | これといった指定はない。単独でのみ有効。 | FILE_ATTRIBUTE_READONLY | 0x00000001 | 読み取り専用 | FILE_ATTRIBUTE_SYSTEM | 0x00000004 | システムファイル | FILE_ATTRIBUTE_TEMPORARY | 0x00000100 | 一時ファイル |
[フラグ]
定数 | 値 | 意味 |
---|
FILE_FLAG_WRITE_THROUGH | 0x80000000 | キャッシュに貯めず直接ディスクへ書き込む | FILE_FLAG_OVERLAPPED | 0x40000000 | オーバーラップ | FILE_FLAG_NO_BUFFERING | 0x20000000 | バッファリングせずにファイルをオープンする | FILE_FLAG_RANDOM_ACCESS | 0x10000000 | ランダムアクセス | FILE_FLAG_SEQUENTIAL_SCAN | 0x8000000 | シーケンシャルアクセス | FILE_FLAG_DELETE_ON_CLOSE | 0x4000000 | ハンドルをクローズしたときファイルを削除する | FILE_FLAG_POSIX_SEMANTICS | 0x1000000 | POSIX準拠 | FILE_FLAG_OPEN_REPARSE_POINT | 0x200000 | NTFSの再解析を禁止 |
- hTemplateFile
- テンプレートファイルのハンドル。通常は0かNULLでよい。
|