Native API: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Addbot (discussione | contributi)
m migrazione di 4 interwiki links su Wikidata - d:q2246458
m tag obsoleti
Riga 3:
Le Native API costituiscono l'interfaccia al [[kernel]] di più basso livello possibile, tuttavia non si tratta dell'[[Application programming interface|API]] ufficiale e documentata del sistema operativo, bensì di un'interfaccia privata sulla quale si appoggiano le [[Windows API]]. La compatibilità delle Native API non è garantita tra differenti versioni di Windows NT, in quanto cambiamenti alla struttura del kernel potrebbero riflettersi in cambiamenti delle Native API. Per la scrittura di applicazioni è necessario utilizzare esclusivamente le Windows API, sebbene sia tecnicamente possibile utilizzare le Native API, che però sono documentate solo parzialmente. Le Native API sono l'equivalente delle [[system call]] dei sistemi operativi [[Unix]].
 
Generalmente ad ogni Native API corrisponde una Windows API equivalente, ad esempio alla Native API <ttcode>NtWriteFile</ttcode> corrisponde la Windows API <ttcode>WriteFile</ttcode>.
 
La ragione per la quale esiste questo doppio strato di API deriva dal fatto che i sistemi operativi Windows NT possono disporre di differenti ''subsystem''. In Windows NT sono disponibili i ''subsystem'' Win32, [[Posix]] e [[OS/2]] (a partire da [[Windows XP]] è presente solo quello Win32). Pertanto le Native API sono l'interfaccia con la quale vengono sviluppati i ''subsystem''.
 
Le Native API sono implementate nella [[dynamic-link library|libreria]] <ttcode>Ntdll.dll</ttcode>. A ciascuna Native API corrisponde un servizio del kernel, che viene invocato tramite un [[interrupt]] ''0x2E'' (o con un'istruzione di [[linguaggio macchina]] ''sysenter'' o ''syscall'' sui [[microprocessore|microprocessori]] più recenti); questa operazione viene definita ''system service dispatching''.
 
== Voci correlate ==