One way could be to read the parameters in the listeners and then set a property which can be used in the dataprovider.
Implement ITestListener or ISuiteListener, depending upon how you are structuring your tests. Set the global card property or threadlocal property (again depending upon how you are running your tests sequentially/parallely) in the onStart methods of any.
Read this property in your dataprovider.