A computing device in communication with an input/output, I/O, device providing virtualized hardware resources for use by a plurality of virtual machines, VM, wherein the computing device is configured to: execute a virtual machine manager, VMM, that implements a physical function, PF, driver corresponding to the I/O device and to a plurality of virtual function, VF, drivers implemented by the plurality of VMs; receive at least one message of a first message type transmitted from a virtual function, VF, driver of a VM to the PF driver, wherein the at least one message of the first message type is formatted in a dynamic message format that includes: a first dynamic indication denoting a number of a plurality of capabilities, and a plurality of second dynamic indications each associated with one respective capability, each respective dynamic second indication is associated with a dynamic capability data indication that stores data of the respective capability, wherein a size of the data stored in the dynamic capability data indication is denoted by the corresponding second dynamic indication, wherein the first dynamic indication does not lock the dynamic message format to a specific size and the size of the dynamic message format is adapted to change to any size needed to define any number of supported capabilities, wherein the at least one message of the first message type includes a set of requested capabilities supported by the VF driver for enablement on or by the I/O device; transmit at least one message of a second message type from the PF driver to the VF driver, wherein the at least one message of the second message type includes a set of supported capabilities selected from the requested capabilities that are supported by the I/O device and PF driver for implementation thereon; and enable the set of enabled capabilities by the I/O device and the PF driver for use by the VF driver. execute a virtual machine manager, VMM, that implements a physical function, PF, driver corresponding to the I/O device and to a plurality of virtual function, VF, drivers implemented by the plurality of VMs; receive at least one message of a first message type transmitted from a virtual function, VF, driver of a VM to the PF driver, wherein the at least one message of the first message type is formatted in a dynamic message format that includes: a first dynamic indication denoting a number of a plurality of capabilities, and a plurality of second dynamic indications each associated with one respective capability, each respective dynamic second indication is associated with a dynamic capability data indication that stores data of the respective capability, wherein a size of the data stored in the dynamic capability data indication is denoted by the corresponding second dynamic indication, wherein the first dynamic indication does not lock the dynamic message format to a specific size and the size of the dynamic message format is adapted to change to any size needed to define any number of supported capabilities, wherein the at least one message of the first message type includes a set of requested capabilities supported by the VF driver for enablement on or by the I/O device; transmit at least one message of a second message type from the PF driver to the VF driver, wherein the at least one message of the second message type includes a set of supported capabilities selected from the requested capabilities that are supported by the I/O device and PF driver for implementation thereon; and enable the set of enabled capabilities by the I/O device and the PF driver for use by the VF driver.