FileBothDirectoryInformation [ドライバ開発]
ファイルシステムの開発で今まで厄介だったのがショートファイル名の存在。
MSDOS形式とか8.3形式とか呼び方が統一されていない上に、ファイルシステムそのものが対応してないシステムだって存在する。
今時のDOSはNT上で動かすならわざわざ8.3にする必要はまったく無いので、機能を切りたかったのだが、呼び方がありすぎるのと、これといったドキュメントが無くあきらめてたが、ふとソースコードを見ていたら発見した。
FileBothDirectoryInformationにあるショートネームの値を0にして返せば、ショートネームを上位の何かが知るすべは無くなるので強制ロングネームになるっぽい。
ファイルシステムにショートネームが無い場合、OSと直接処理をするドライバが、内部でショートネームを作ってサポートしないといけなかったりする。エクスプローラーの場合、必ずディレクトリを開いて、ファイルリストを取得から処理をするので、そのときにショートネームを作ってしまえばよいのだが、DOSの場合、直打ち指定があって、そのときにディレクトリのリストが無かったら取得してショートネームを作らないといけない。きれいなソースコードだったら2,3行で済むかもしれないが、今のソースは激しく汚いので、サポートしないほうが100倍楽だったりする。
で、こういうOSべったりなファンクションについてはDDK見るしかなかったりして、大した資料が無い。OSRのMLには参加しないとだめっぽいが、当然全部英語。
最近ぐぐってて思うのは、中国人とかロシア人が積極的にこういうところの開発もやってるが、日本人でやってるって人がまったくいないこと。オワタな気分にならざるを得ない。
そりゃWindows NT ファイルシステム詳説も再販されねーよなー
ちなみに英語版ならOSRから買えるらしい
相変わらず売り切れの日本語版
Windows NT ファイルシステム詳説―A Developer’s Guide
- 作者: ラジーブ ナガール
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 1999/01
- メディア: 単行本(ソフトカバー)
英語版
http://www.osr.com/fsinternals.shtml
ニッチな開発の先の真っ暗さ加減を認識するときと洋ゲーのリリースがされなかったり、遅かったりすると、英語をまともに勉強しておくべきだったと後悔する今日この頃。
コメント 0