Simula come un volume viene montato usando diskarbitrationd

0

Sto tentando di emulare il modo in cui un volume viene normalmente montato per il mio volume NTFS che ho aggiunto a /private/etc/fstab . Normalmente, quando viene trovato un volume, come un disco rigido esterno, viene montato e quindi un collegamento a quel volume viene posizionato sul desktop e nella barra laterale sinistra del Finder. Tuttavia, poiché per montare un volume NTFS come read-write in fstab , è necessario aggiungere il flag nobrowse , che impedisce di visualizzarlo sul desktop e nella barra laterale del Finder.

La mia ricerca mi ha indirizzato a diskarbitrationd come programma che ascolta i nuovi volumi e li monta. Mi piacerebbe emulare l'aggiunta automatica di scorciatoie al desktop e Finder e la rimozione sullo smontaggio del volume, e mi piacerebbe creare uno script che ascolti le informazioni da diskarbitationd e che elabori per me.

Come faccio ad aggancio in diskarbitrationd e ad ascoltare nuovi eventi, quindi aggiungere i collegamenti al desktop e al Finder dopo aver montato il volume?

Grazie per il tuo aiuto!

    
posta josh 12.05.2014 - 10:02
fonte

1 risposta

1

Si aggancia a diskarbitrationd usando il framework Disk Arbitration di Apple. Fondamentalmente si chiama DASessionCreate () per creare un DASessionRef e quindi si registrano uno o più callback di notifica.

Dovresti registrarti per DARegisterDiskMountApprovalCallback. Questo ti dà una notifica ogni volta che diskarbitrationd sta per montare qualcosa di nuovo. Restituendo DADissenterRef da questo callback, puoi impedire a diskarbitrationd di montare effettivamente il file system.

Quindi puoi montare tu stesso il file system e creare scorciatoie, ecc. usando metodi standard, come la chiamata di sistema mount ().

Ecco un link diretto alla pagina nella guida alla programmazione, dovrai esaminare:

link

    
risposta data 12.05.2014 - 10:55
fonte

Leggi altre domande sui tag