ULONG DisableIpVersion6Gso;
ULONG AlwaysCopy;
ULONG ValidateChecksums;
+ ULONG DisableMulticastControl;
KSPIN_LOCK Lock;
PXENBUS_CACHE PacketCache;
XENBUS_STORE_INTERFACE StoreInterface;
(*Transmitter)->DisableIpVersion6Gso = 0;
(*Transmitter)->AlwaysCopy = 0;
(*Transmitter)->ValidateChecksums = 0;
+ (*Transmitter)->DisableMulticastControl = 0;
if (ParametersKey != NULL) {
ULONG TransmitterDisableIpVersion4Gso;
ULONG TransmitterDisableIpVersion6Gso;
ULONG TransmitterAlwaysCopy;
ULONG TransmitterValidateChecksums;
+ ULONG TransmitterDisableMulticastControl;
status = RegistryQueryDwordValue(ParametersKey,
"TransmitterDisableIpVersion4Gso",
&TransmitterValidateChecksums);
if (NT_SUCCESS(status))
(*Transmitter)->ValidateChecksums = TransmitterValidateChecksums;
+
+ status = RegistryQueryDwordValue(ParametersKey,
+ "TransmitterDisableMulticastControl",
+ &TransmitterDisableMulticastControl);
+ if (NT_SUCCESS(status))
+ (*Transmitter)->DisableMulticastControl = TransmitterDisableMulticastControl;
}
FdoGetDebugInterface(PdoGetFdo(FrontendGetPdo(Frontend)),
(*Transmitter)->DisableIpVersion6Gso = 0;
(*Transmitter)->AlwaysCopy = 0;
(*Transmitter)->ValidateChecksums = 0;
+ (*Transmitter)->DisableMulticastControl = 0;
ASSERT(IsZeroMemory(*Transmitter, sizeof (XENVIF_TRANSMITTER)));
__TransmitterFree(*Transmitter);
if (!NT_SUCCESS(status))
goto fail4;
- status = XENBUS_STORE(Read,
- &Transmitter->StoreInterface,
- NULL,
- FrontendGetBackendPath(Frontend),
- "feature-dynamic-multicast-control",
- &Buffer);
- if (!NT_SUCCESS(status)) {
- Transmitter->MulticastControl = FALSE;
- } else {
- Transmitter->MulticastControl = (BOOLEAN)strtol(Buffer, NULL, 2);
+ if (Transmitter->DisableMulticastControl == 0) {
+ status = XENBUS_STORE(Read,
+ &Transmitter->StoreInterface,
+ NULL,
+ FrontendGetBackendPath(Frontend),
+ "feature-dynamic-multicast-control",
+ &Buffer);
+ if (NT_SUCCESS(status)) {
+ Transmitter->MulticastControl = (BOOLEAN)strtol(Buffer, NULL, 2);
- XENBUS_STORE(Free,
- &Transmitter->StoreInterface,
- Buffer);
+ XENBUS_STORE(Free,
+ &Transmitter->StoreInterface,
+ Buffer);
+ }
}
Index = 0;
Transmitter->DisableIpVersion6Gso = 0;
Transmitter->AlwaysCopy = 0;
Transmitter->ValidateChecksums = 0;
+ Transmitter->DisableMulticastControl = 0;
ASSERT(IsZeroMemory(Transmitter, sizeof (XENVIF_TRANSMITTER)));
__TransmitterFree(Transmitter);