PNF ファイル形式とは?
.pnf ファイルは、同名の .inf ドライバーセットアップファイルと共に自動的に生成される Windowsシステムファイル です。名称は Precompiled INF(プリコンパイル済みINF)の略で、Windowsが初めて .inf を処理する際に、その内容をバイナリ形式で解析・保存したものを指します。
PNFファイルは、ソースとなる .inf データからコンパイルされたドライバーおよびセットアップ情報を バイナリ形式 で保持します。デバイスのインストール時、Windowsはテキスト形式の .inf を毎回ゼロから解析するのではなく、このプリコンパイル済みバージョンを使用することで、ドライバーの処理を高速化します。.pnf は常に一致する .inf の隣に配置されます。例えば、oem5.inf には、同じ %SystemRoot%\inf\ フォルダ内に対応する oem5.pnf が存在します。
PNFファイルは、コンパニオンファイルである .inf からシステムによって自動生成されるため、削除してもシステムの安定性に悪影響を及ぼすことはありません。対応する .inf が次に処理される際、Windowsは .pnf を再生成します。蓄積された .pnf ファイルを削除することで、特に長期間にわたって多くのドライバーをインストールしてきたシステムでは、わずかなディスク容量を回収できる場合があります。
.pnf のバイナリ構造はWindows内部の形式であり、直接開いたり編集したりすることを意図していません。.pnf が破損したり古くなったりした場合、Windowsは単にソースの .inf から再作成します。
セキュリティと安全性
リスク: LOW.pnf は読み取り専用のWindows内部バイナリキャッシュであり、アクティブなコードは含まれていません。実行することはできず、ドライバー処理中に Windows Setup/PnP によって読み取られるだけです。.pnf の削除は安全であり、Windowsが再生成します。注意点として、クリーナーやウイルス対策ソフトを使用して C:\Windows\inf から .inf/.pnf のペアを一括削除しないでください。.inf ファイル自体はドライバーの再インストールやロールバックに必要だからです。.pnf ファイルは使い捨て可能ですが、ペアの .inf ファイルはそうではありません。
形式の詳細
概要01 03(マイナー=1、メジャー=3)です。Windows 98/XPでは異なるレイアウトが使用されていました。バイナリ構造にはバージョンフィールド、パスオフセット(InfName、OsLoaderPathなど)、および事前解析されたINFデータが含まれています。これは不透明であり、直接読み取るようには設計されていません。Windows 98/XPでは WinDirPath フィールドはオフセット 0x58 にありましたが、Vista以降では 0x68 に引き上げられました。PNF ファイルを開くプログラム
技術的詳細
詳細仕様| フォーマット | 独自バイナリ(Windows内部のINFキャッシュ。公開仕様ではありません) |
| バイト順 | リトルエンディアン |
| ファイルヘッダー | Windows Vistaから8.1では、最初の2バイトは `01 03`(マイナー=1、メジャー=3)です。Windows 98/XPでは以前のレイアウトが使用されていました。 |
| 一般的なファイルサイズ | 4 KB - 200 KB(ソースとなる .inf の複雑さを反映します) |
| ペアファイル | 常に同じフォルダ内の同名の .inf の隣に配置されます(例:oem5.pnf ↔ oem5.inf) |
| デフォルトの場所 | %SystemRoot%\inf\ またはドライバーのステージングストア(DriverStore) |
| 内部フィールド | バージョンバイト、オフセット、その後に事前解析されたINFセクション/ディレクティブテーブルが続きます。名前付きフィールドには OsLoaderPath、InfName、SourcePath、WinDirPath などが含まれます。 |
| WinDirPath オフセット | Windows 98/XPでは `0x58`、Windows Vista以降では `0x68` に移動しました。 |
| エラー処理 | .pnf が欠落または破損している場合、Windowsはソースの .inf から自動的に再生成します。 |
| オペレーティングシステム | Windows(Windows 95/NT以降のすべてのバージョン) |
| リリース日 | Windows 95/NT era (generated automatically when an .inf is first processed by Windows Setup) |
| 最新バージョン | N/A (format evolves with Windows; version bytes 01 03 in header on Vista-8.1; not user-visible) |
PNF の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。PNF ファイルについて最初の質問をしてみましょう。
よくある質問
.pnfファイルとは何ですか?
.pnfファイルはどこに保存されていますか?
C:\Windows\inf(または %SystemRoot%\inf)に保存されています。このフォルダには、インストールされたドライバーやWindowsコンポーネントのための、何百もの .inf/.pnf のペアが格納されています。これは保護されたシステムフォルダです。.pnfファイルを削除しても安全ですか?
.pnfファイルを開くことはできますか?
なぜ.pnfファイルが原因でドライバーエラーが発生するのですか?
pnputil /add-driver を使用する方が信頼性が高いです。