Если альтернативы нет, я также рассматриваю исправление одной из библиотек. И Unimotion, и SMSLib используют следующий вызов, который устарел в 10.5 и удален из 10.6 64-битный :
result = IOConnectMethodStructureIStructureO(
dataPort, kernFunc, structureInputSize,
&structureOutputSize, &inputStructure,
outputStructure);
Есть ли простой способ заменить это новыми вызовами IOKit?
Этот самый документ предлагает замены. Как насчет этого?
kern_return_t
IOConnectCallStructMethod(
mach_port_t connection, // In
uint32_t selector, // In
const void *inputStruct, // In
size_t inputStructCnt, // In
void *outputStruct, // Out
size_t *outputStructCnt) // In/Out
Насколько я могу судить, не должно быть никакой разницы, за исключением порядка аргументов. Тем не менее, я никогда не использовал I / O Kit, поэтому я мог упустить какое-то критическое концептуальное отличие, которое сделает этот вызов неработающим, как старый.