I'm not a PC guy but I have some thoughts here that might clarify some of the "push" and "event driven" modes in WASAPI.
These modes appear to be the interface modes for handing off the audio data from the audio source application(s) to the sound card processing. The "push" mode is one direction and synchronous. The application has to keep up with the draining buffers. It was an older technique and most all cards support it. The "event-driven" or "pull" mode is bidirectional and asynchronous. The application only loads audio data into the buffers when it has been requested to do so (i.e., there is some handshaking going on). The latter is probably a bit more efficient in software.
Now here is the interesting thing. Once the final output bitstream is produced, let's say it is output on a TOSlink, RCA coax, or AES type connection. These are all S/PDIF type protocols which are essentially all "PUSH ONLY" type protocols. In other words, the bitstream is simply shoved down the cable or fiber synchronously where the receiving DAC has to receive it, recover the clock, and do whatever processing (e.g. upsampling) is necessary to eliminate jitter from the PC's imprecise clocking of the data and any other noise induced jitter contributed by weaknesses in the digital cable's losses, etc.. Assuming that you are passing all data in a bit perfect fashion, the only real difference in sound that you will hear will be due to jitter artifacts caused by software loading in the PC. In general, there should be very little difference audible in the output due to these two settings.
HOWEVER. Consider the situation where you are using a USB connection. The USB Audio Class 2 standard has two communication modes: Adaptive mode and Asynchronous mode.
The Adaptive mode is the "Push" type mode that's been around for years on USB interfaces and works basically the same as the other S/PDIF interfaces where the PC is the clock reference and data is synchronously sent to the DAC where, again, the DAC has to recover the clock and eliminate jitter. Basically it should sound similar to the other interfaces (actually, it could be a bit worst because the USB bus speed is not a nice multiple of a standard S/PDIF like clock and so clock recovery off a USB synchronous signal is a lot more difficult).
Now the Asynchronous mode of USB data transfer is a totally different beast! It is a "Pull" or "event driven" type of mode where the data clock is actually in the DAC itself, and therefore IMPERVIOUS to jitter introduced by the PC or the quality of the connecting cable. Only newer model DACs tend to support this mode as it is a recent development in the last few years. I suspect that some sound cards may not be able to connect to a USB port driver using this mode either if they are not new enough. Anyway, when the WASAPI setting is set to event driven and you are connected via USB to a DAC that supports Asynchronous transfer mode, the DAC will now be requesting data directly from the application's buffers via the USB connection and there will be no jitter what so ever when the data arrives at the DAC. Now THAT can make a difference in the sound.
So in summary, several folks here had made comments about not hearing much difference between the WASAPI modes. I believe that you are only going to get a significant difference if you use the event-driven setting of WASAPI, but you also are connected to a DAC that can operate in Asynchronous transfer mode over a USB connection (and of course you have a resolving enough system to hear the differences caused by jitter removal).
Now I've had to kind of figure all this stuff out on my own so if I've gotten something wrong here, please, please, somebody correct me!
- Jeff