Especially if you need to re-size the Windows partition, be sure to backup important data first.
To resize, first de-fragment the partition. You can re-size with any number of tools.
- Leave empty (unpartioned) space on the drive for later additions. e.g. maybe 15GB for Windows, 10GB for Linux, and the rest empty.
- Consider also adding a FAT32 partition for shared data.