В подобных составных обозначениях военных чинов и званий первая часть обычно не склоняется: генерал-майора, генерал-лейтенанта, капитан-лейтенанта и т. п.
Правильно: генерал-майора. Подробнее см. в "Письмовнике".
Первая часть составных обозначений военных и государственных чинов и званий не склоняется: генерал-лейтенанта, генерал-майора.