ASSERT(Ring != NULL);
Transmitter = Ring->Transmitter;
+ ASSERT(Transmitter->Split);
- if (Ring->Enabled) {
- ASSERT(Transmitter->Split);
+ if (Ring->Enabled)
__TransmitterRingNotify(Ring);
- }
__TransmitterRingUnmask(Ring);
}
BOOLEAN
TransmitterRingEvtchnCallback(
- IN PKINTERRUPT InterruptObject,
- IN PVOID Argument
+ IN PKINTERRUPT InterruptObject,
+ IN PVOID Argument
)
{
PXENVIF_TRANSMITTER_RING Ring = Argument;
+ PXENVIF_TRANSMITTER Transmitter;
UNREFERENCED_PARAMETER(InterruptObject);
ASSERT(Ring != NULL);
+ Transmitter = Ring->Transmitter;
+ ASSERT(Transmitter->Split);
+
Ring->Events++;
if (KeInsertQueueDpc(&Ring->Dpc, NULL, NULL))
IN PXENVIF_TRANSMITTER_RING Ring
)
{
+ PXENVIF_TRANSMITTER Transmitter;
+
+ Transmitter = Ring->Transmitter;
+
__TransmitterRingAcquireLock(Ring);
ASSERT(!Ring->Enabled);
Ring->Enabled = TRUE;
- if (KeInsertQueueDpc(&Ring->Dpc, NULL, NULL))
+ if (Transmitter->Split &&
+ KeInsertQueueDpc(&Ring->Dpc, NULL, NULL))
Ring->Dpcs++;
__TransmitterRingReleaseLock(Ring);