隠しAPI
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/08 08:57 UTC 版)
「アプリケーションプログラミングインタフェース」の記事における「隠しAPI」の解説
Microsoft Windows、macOS、iOS、AndroidなどのOSには、外部に公開されているAPI以外に、俗に「隠しAPI」や「プライベートAPI」「非公開API」などと呼ばれるものが存在する。隠しAPIは特定の共通処理をアプリケーション側ではなくシステム内部でのみ再利用することを想定して実装されており、例えばWindowsでは一部の隠しAPI関数がシステムDLLにエクスポートされていることから、LoadLibrary 関数を使用してAPI関数エントリポイントを動的ロードすることで呼び出すことができる。Javaや.NET Frameworkの場合は、カプセル化を破壊することになるが、隠蔽されたメソッドであってもリフレクションを使用して呼び出すことができる。しかし、これらはシステム/サービス提供者が公式に提供している機能ではなくAPIではない。このためこれらの隠し機能を使ったアプリケーションの動作は保証されないし、互換性も将来に渡って保証されることはない。例えばWindows APIにおいて、timeBeginPeriod(), timeEndPeriod() はアプリケーション開発者向けに正式公開・ドキュメント化されているAPI関数だが、これらは内部でNtSetTimerResolution()を呼び出している。NtSetTimerResolution()は、Windows NT系のシステムDLLのひとつ、"ntdll.dll"にエクスポートされているが、アプリケーション開発者向けのドキュメントには記載されていない隠し関数であり、この隠し関数をアプリケーションで直接使用した場合の結果は保証されない。
※この「隠しAPI」の解説は、「アプリケーションプログラミングインタフェース」の解説の一部です。
「隠しAPI」を含む「アプリケーションプログラミングインタフェース」の記事については、「アプリケーションプログラミングインタフェース」の概要を参照ください。
- 隠しAPIのページへのリンク