The handle calls provide direct support for I/O redirection and pipes with the standard input and output devices in a manner functionally similar to that used by UNIX/XENIX.
The handle functions provide direct support for directories (the hierarchical file structure) and special file attributes.
The handle calls support file sharing/locking and record locking in networking environments.
Using the handle functions, the programmer can open channels to character devices and treat them as files.
The handle calls make the use of random record access extremely easy. The current file pointer can be moved to any byte offset relative to the start of the file, the end of the file, or the current pointer position. Records of any length, up to an entire segment (65,535 bytes), can be read to any memory address in one operation.
The handle functions have relatively good error reporting in MS-DOS version 2, and error reporting has been enhanced even further in MS-DOS versions 3.0 and later.
Microsoft strongly encourages use of the handle family of functions in order to provide upward compatibility with MS OS/2.