How to transmit CAN 29 bit identifiers

I am trying to send a 29 bit CAN identifier. What I’m seeing on my CANAlyzer is that the ID is truncated to 11 bits. For instance, this code…

	canBuf.id = 0xFFFF;         // CAN frame ID
	canBuf.canMsgFlags = 1;  // set to 29 bit
	memcpy(canBuf.data, data, sizeof(data));
	canBuf.dataLen = 8;

	if (Imx6Can_Write(hCan, &canBuf))
	{
		printf("\nCAN Transmit: Frame ID = 0x%x Remote/Data Frame = %s\nData:", canBuf.id, (canBuf.canMsgFlags & CanMsgFlags_RTR ? "REMOTE" : "DATA"));
		// display Transmit data
		for (i = 0; i < 8; i++)
		{
			printf(" %d", canBuf.data[i]);
		}
	}

Results in console output of:

CAN Transmit: Frame ID = 0xffff Remote/Data Frame = DATA
Data: 0 1 2 3 4 5 6 7

But the CANAlyzer shows
476-canalyzer.jpg

How can I get 29 bit IDs working?

Library version: 2.0, 2017-05-24

Thanks,
Shawn

Can you try to use Can_SetConfigString before sending the message to enable 29 bits mode?
Something like:

Can_SetConfigString(handle,TEXT("FrameFormat"),TEXT("Extended"),StoreVolatile);

should work