DiskArbitrationPublicAPI.h [plain text]
#ifndef __DISKARBITRATION_PUBLIC_H
#define __DISKARBITRATION_PUBLIC_H
#include <CoreFoundation/CFString.h>
#include <DiskArbitration/DiskArbitrationTypes.h>
#include <sys/types.h>
#include <mach/kern_return.h>
enum
{
kDA_DISK_APPEARED = 1,
kDA_DISK_UNMOUNT_PRE_NOTIFY = 2,
kDA_DISK_UNMOUNT_POST_NOTIFY = 3,
kDA_DISK_EJECT_PRE_NOTIFY = 4,
kDA_DISK_EJECT_POST_NOTIFY = 5,
kDA_CLIENT_DISCONNECTED = 6,
kDA_DISK_CHANGED = 7,
kDA_NOTIFICATIONS_COMPLETE = 8,
kDA_WILL_CLIENT_RELEASE_DEVICE = 9,
kDA_DEVICE_RESERVATION_STATUS = 10,
kDA_CLIENT_WILL_HANDLE_UNRECOGNIZED_DISK = 11,
kDA_DISK_WILL_BE_CHECKED = 21,
kDA_CALL_FAILED = 22,
kDA_DISK_APPEARED1 = 12,
kDA_DISK_APPEARED_WITH_MT = 13,
kDA_DISK_APPEARED_WITHOUT_MT = 14,
kDA_DISK_UNMOUNT = 15,
kDA_BLUE_BOX_UPDATED = 16,
kDA_PRINTER_FINAL_REQUEST = 17,
kDA_PRINTER_FINAL_RESPONSE = 18,
kDA_PRINTER_FINAL_RELEASE = 19,
kDA_UNKNOWN_DISK_APPEARED = 20
};
#if __cplusplus
extern "C" {
#endif
typedef void ( * DiskArbCallback_DiskAppeared2_t )( DiskArbDiskIdentifier diskIdentifier,
unsigned flags,
DiskArbMountpoint mountpoint,
DiskArbIOContent ioContent,
DiskArbDeviceTreePath deviceTreePath,
unsigned sequenceNumber );
typedef void ( * DiskArbCallback_UnmountPreNotification_t )( DiskArbDiskIdentifier diskIdentifier,
unsigned flags );
typedef void ( * DiskArbCallback_UnmountPostNotification_t )( DiskArbDiskIdentifier diskIdentifier,
int errorCode,
pid_t dissenter );
typedef void ( * DiskArbCallback_EjectPreNotification_t )( DiskArbDiskIdentifier diskIdentifier,
unsigned flags );
typedef void ( * DiskArbCallback_EjectPostNotification_t )( DiskArbDiskIdentifier diskIdentifier,
int errorCode,
pid_t dissenter );
typedef void ( * DiskArbCallback_ClientDisconnectedNotification_t )();
typedef void ( * DiskArbCallback_DiskChangedNotification_t )( DiskArbDiskIdentifier diskIdentifier,
char *newMountPoint,
char *newVolumeName,
int flags, int successFlags);
typedef void ( * DiskArbCallback_DiskWillBeCheckedNotification_t )( DiskArbDiskIdentifier diskIdentifier,
int flags, DiskArbIOContent content);
typedef void ( * DiskArbCallback_CallFailedNotification_t )( DiskArbDiskIdentifier diskIdentifier,
int failedCallType, int error);
typedef void ( * DiskArbCallback_NotificationComplete_t )(int messageType);
typedef void ( * DiskArbCallback_Will_Client_Release_t )(DiskArbDiskIdentifier diskIdentifier, int releaseToClientPid);
typedef void ( * DiskArbCallback_Device_Reservation_Status_t )( DiskArbDiskIdentifier diskIdentifier, int status, int pid);
typedef void ( * DiskArbCallback_Will_Client_Handle_Unrecognized_Disk_t )( DiskArbDiskIdentifier diskIdentifier, int diskType, char * fsType,char * deviceType,int isWritable,int isRemovable,int isWhole);
void DiskArbAddCallbackHandler(int callbackType, void * callback, int overwrite);
void DiskArbRemoveCallbackHandler(int callbackType, void * callback);
void DiskArbUpdateClientFlags();
int DiskArbIsActive();
kern_return_t DiskArbIsDeviceReservedForClient( DiskArbDiskIdentifier diskIdentifier);
kern_return_t DiskArbRetainClientReservationForDevice ( DiskArbDiskIdentifier diskIdentifier);
kern_return_t DiskArbReleaseClientReservationForDevice ( DiskArbDiskIdentifier diskIdentifier);
kern_return_t DiskArbClientRelinquishesReservation ( DiskArbDiskIdentifier diskIdentifier, int releaseToClientPid, int status);
kern_return_t DiskArbClientHandlesUnrecognizedDisks ( int diskTypes, int priority);
kern_return_t DiskArbClientWillHandleUnrecognizedDisk ( DiskArbDiskIdentifier diskIdentifier, int yesNo);
#if __cplusplus
}
#endif
#endif