def getVolumeInformation(
        self,
        volumeNameBuffer,
        volumeNameSize,
        volumeSerialNumber,
        maximumComponentLength,
        fileSystemFlags,
        fileSystemNameBuffer,
        fileSystemNameSize,
        dokanFileInfo,
    ):
        """Get information about the volume.

        :param volumeNameBuffer: buffer for volume name
        :type volumeNameBuffer: ctypes.c_void_p
        :param volumeNameSize: volume name buffer size
        :type volumeNameSize: ctypes.c_ulong
        :param volumeSerialNumber: buffer for volume serial number
        :type volumeSerialNumber: ctypes.c_void_p
        :param maximumComponentLength: buffer for maximum component length
        :type maximumComponentLength: ctypes.c_void_p
        :param fileSystemFlags: buffer for file system flags
        :type fileSystemFlags: ctypes.c_void_p
        :param fileSystemNameBuffer: buffer for file system name
        :type fileSystemNameBuffer: ctypes.c_void_p
        :param fileSystemNameSize: file system name buffer size
        :type fileSystemNameSize: ctypes.c_ulong
        :param dokanFileInfo: used by Dokan
        :type dokanFileInfo: PDOKAN_FILE_INFO
        :return: error code
        :rtype: ctypes.c_int

        """
        ret = self.operations('getVolumeInformation')
        # populate volume name buffer
        ctypes.memmove(
            volumeNameBuffer,
            ret['volumeNameBuffer'],
            min(
                ctypes.sizeof(ctypes.c_wchar) * len(ret['volumeNameBuffer']),
                volumeNameSize,
            ),
        )
        # populate serial number buffer
        serialNum = ctypes.c_ulong(self.serialNumber)
        ctypes.memmove(
            volumeSerialNumber, ctypes.byref(serialNum), ctypes.sizeof(ctypes.c_ulong)
        )
        # populate max component length
        maxCompLen = ctypes.c_ulong(ret['maximumComponentLength'])
        ctypes.memmove(
            maximumComponentLength,
            ctypes.byref(maxCompLen),
            ctypes.sizeof(ctypes.c_ulong),
        )
        # populate filesystem flags buffer
        fsFlags = ctypes.c_ulong(ret['fileSystemFlags'])
        ctypes.memmove(
            fileSystemFlags, ctypes.byref(fsFlags), ctypes.sizeof(ctypes.c_ulong)
        )
        # populate filesystem name
        ctypes.memmove(
            fileSystemNameBuffer,
            ret['fileSystemNameBuffer'],
            min(
                ctypes.sizeof(ctypes.c_wchar) * len(ret['fileSystemNameBuffer']),
                fileSystemNameSize,
            ),
        )
        return d1_onedrive.impl.drivers.dokan.const.DOKAN_SUCCESS