To change a message type, use the following rules:
You can only change the M_IOCTL family of message types to other M_IOCTL message types.
M_DATA, M_PROTO, and M_PCPROTO are dependent on the modules, driver and service provider interfaces defined.
A message type should not be changed if the reference count > 1.
The data of a message should not be modified if the reference count > 1.
All other message types are interchangeable as long as sufficient space has been allocated in the data buffer of the message.