The Resources structure is used by ShaderFeature to indicate how many hardware "resources" it needs. Resources are things such as how many textures it uses and how many texture registers it needs to pass information from the vertex to the pixel shader.
The Resources data can change depending what hardware is available. For instance, pixel 1.x level hardware may need more texture registers than pixel 2.0+ hardware because each texture register can only be used with its respective texture sampler.
The data in Resources is used to determine how many features can be squeezed into a singe shader. If a feature requires too many resources to fit into the current shader, it will be put into another pass.