+/**\r
+\r
+ Read BufferSize bytes from the position of Offset into Buffer,\r
+ or write BufferSize bytes from Buffer into the position of Offset.\r
+\r
+ Base on the parameter of CACHE_DATA_TYPE, the data access will be divided into\r
+ the access of FAT cache (CACHE_FAT) and the access of Data cache (CACHE_DATA):\r
+\r
+ 1. Access of FAT cache (CACHE_FAT): Access the data in the FAT cache, if there is cache\r
+ page hit, just return the cache page; else update the related cache page and return\r
+ the right cache page.\r
+ 2. Access of Data cache (CACHE_DATA):\r
+ The access data will be divided into UnderRun data, Aligned data and OverRun data;\r
+ The UnderRun data and OverRun data will be accessed by the Data cache,\r
+ but the Aligned data will be accessed with disk directly.\r
+\r
+ @param Volume - FAT file system volume.\r
+ @param CacheDataType - The type of cache: CACHE_DATA or CACHE_FAT.\r
+ @param IoMode - Indicate the type of disk access.\r
+ @param Offset - The starting byte offset to read from.\r
+ @param BufferSize - Size of Buffer.\r
+ @param Buffer - Buffer containing cache data.\r
+ @param Task point to task instance.\r
+\r
+ @retval EFI_SUCCESS - The data was accessed correctly.\r
+ @retval EFI_MEDIA_CHANGED - The MediaId does not match the current device.\r
+ @return Others - An error occurred when accessing cache.\r
+\r
+**/\r