Generic 'ndrv' drivers must provide a single code entry point DoDriverIO, which responds to kOpenCommand, kCloseCommand, kReadCommand, kWriteCommand, kControlCommand, kStatusCommand, kKillIOCommand, kInitializeCommand, kFinalizeCommand, kReplaceCommand, and kSupersededCommand commands.
OSErr DoDriverIO (
AddressSpaceID spaceID,
IOCommandID ID,
IOCommandContents contents,
IOCommandCode code,
IOCommandKind kind);
typedef KernelID AddressSpaceID;
0 | synchronous I/O |
1 | asynchronous I/O |
2 | immediate I/O |