docs: def readFile(
          self,
          fileName,
          buffer,
          numberOfBytesToRead,
          numberOfBytesRead,
          offset,
          dokanFileInfo,
      ):
          """Read a file.
  
          :param fileName: name of file to read
          :type fileName: ctypes.c_wchar_p
          :param buffer: buffer for content read
          :type buffer: ctypes.c_void_p
          :param numberOfBytesToRead: number of bytes to read
          :type numberOfBytesToRead: ctypes.c_ulong
          :param numberOfBytesRead: number of bytes read
          :type numberOfBytesRead: ctypes.POINTER(ctypes.c_ulong)
          :param offset: byte offset
          :type offset: ctypes.c_longlong
          :param dokanFileInfo: used by Dokan
          :type dokanFileInfo: PDOKAN_FILE_INFO
          :return: error code
          :rtype: ctypes.c_int
  
          """
          try:
              ret = self.operations('readFile', fileName, numberOfBytesToRead, offset)
              data = ctypes.create_string_buffer(
                  ret[:numberOfBytesToRead], numberOfBytesToRead
              )
              ctypes.memmove(buffer, data, numberOfBytesToRead)
              sizeRead = ctypes.c_ulong(len(ret))
              ctypes.memmove(
                  numberOfBytesRead, ctypes.byref(sizeRead), ctypes.sizeof(ctypes.c_ulong)
              )
              return d1_onedrive.impl.drivers.dokan.const.DOKAN_SUCCESS
          except Exception:
              # logging.error('%s', e)
              return d1_onedrive.impl.drivers.dokan.const.DOKAN_ERROR