mirror of
https://github.com/reactos/reactos.git
synced 2024-09-30 22:47:28 +00:00
Reverting incomplete commit r41782 on request of the author
svn path=/trunk/; revision=41786
This commit is contained in:
parent
57aa46671d
commit
4ff21182dd
|
@ -885,51 +885,6 @@ DriverEntry(
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Use direct I/O */
|
|
||||||
IPDeviceObject->Flags |= DO_DIRECT_IO;
|
|
||||||
RawIPDeviceObject->Flags |= DO_DIRECT_IO;
|
|
||||||
UDPDeviceObject->Flags |= DO_DIRECT_IO;
|
|
||||||
TCPDeviceObject->Flags |= DO_DIRECT_IO;
|
|
||||||
|
|
||||||
/* Initialize the driver object with this driver's entry points */
|
|
||||||
DriverObject->MajorFunction[IRP_MJ_CREATE] = TiDispatchOpenClose;
|
|
||||||
DriverObject->MajorFunction[IRP_MJ_CLOSE] = TiDispatchOpenClose;
|
|
||||||
DriverObject->MajorFunction[IRP_MJ_CLEANUP] = TiDispatchOpenClose;
|
|
||||||
DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = TiDispatchInternal;
|
|
||||||
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = TiDispatch;
|
|
||||||
|
|
||||||
DriverObject->DriverUnload = TiUnload;
|
|
||||||
|
|
||||||
/* Initialize our periodic timer and its associated DPC object. When the
|
|
||||||
timer expires, the IPTimeout deferred procedure call (DPC) is queued */
|
|
||||||
ExInitializeWorkItem( &IpWorkItem, IPTimeout, NULL );
|
|
||||||
KeInitializeDpc(&IPTimeoutDpc, IPTimeoutDpcFn, NULL);
|
|
||||||
KeInitializeTimer(&IPTimer);
|
|
||||||
|
|
||||||
/* Start the periodic timer with an initial and periodic
|
|
||||||
relative expiration time of IP_TIMEOUT milliseconds */
|
|
||||||
DueTime.QuadPart = -(LONGLONG)IP_TIMEOUT * 10000;
|
|
||||||
KeSetTimerEx(&IPTimer, DueTime, IP_TIMEOUT, &IPTimeoutDpc);
|
|
||||||
|
|
||||||
/* Open loopback adapter */
|
|
||||||
Status = LoopRegisterAdapter(NULL, NULL);
|
|
||||||
if (!NT_SUCCESS(Status)) {
|
|
||||||
TI_DbgPrint(MIN_TRACE, ("Failed to create loopback adapter. Status (0x%X).\n", Status));
|
|
||||||
TCPShutdown();
|
|
||||||
UDPShutdown();
|
|
||||||
RawIPShutdown();
|
|
||||||
IPShutdown();
|
|
||||||
ChewShutdown();
|
|
||||||
IoDeleteDevice(IPDeviceObject);
|
|
||||||
IoDeleteDevice(RawIPDeviceObject);
|
|
||||||
IoDeleteDevice(UDPDeviceObject);
|
|
||||||
IoDeleteDevice(TCPDeviceObject);
|
|
||||||
exFreePool(EntityList);
|
|
||||||
NdisFreePacketPool(GlobalPacketPool);
|
|
||||||
NdisFreeBufferPool(GlobalBufferPool);
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Register protocol with NDIS */
|
/* Register protocol with NDIS */
|
||||||
/* This used to be IP_DEVICE_NAME but the DDK says it has to match your entry in the SCM */
|
/* This used to be IP_DEVICE_NAME but the DDK says it has to match your entry in the SCM */
|
||||||
Status = LANRegisterProtocol(&strNdisDeviceName);
|
Status = LANRegisterProtocol(&strNdisDeviceName);
|
||||||
|
@ -958,6 +913,52 @@ DriverEntry(
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Open loopback adapter */
|
||||||
|
Status = LoopRegisterAdapter(NULL, NULL);
|
||||||
|
if (!NT_SUCCESS(Status)) {
|
||||||
|
TI_DbgPrint(MIN_TRACE, ("Failed to create loopback adapter. Status (0x%X).\n", Status));
|
||||||
|
TCPShutdown();
|
||||||
|
UDPShutdown();
|
||||||
|
RawIPShutdown();
|
||||||
|
IPShutdown();
|
||||||
|
ChewShutdown();
|
||||||
|
IoDeleteDevice(IPDeviceObject);
|
||||||
|
IoDeleteDevice(RawIPDeviceObject);
|
||||||
|
IoDeleteDevice(UDPDeviceObject);
|
||||||
|
IoDeleteDevice(TCPDeviceObject);
|
||||||
|
exFreePool(EntityList);
|
||||||
|
NdisFreePacketPool(GlobalPacketPool);
|
||||||
|
NdisFreeBufferPool(GlobalBufferPool);
|
||||||
|
LANUnregisterProtocol();
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Use direct I/O */
|
||||||
|
IPDeviceObject->Flags |= DO_DIRECT_IO;
|
||||||
|
RawIPDeviceObject->Flags |= DO_DIRECT_IO;
|
||||||
|
UDPDeviceObject->Flags |= DO_DIRECT_IO;
|
||||||
|
TCPDeviceObject->Flags |= DO_DIRECT_IO;
|
||||||
|
|
||||||
|
/* Initialize the driver object with this driver's entry points */
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_CREATE] = TiDispatchOpenClose;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_CLOSE] = TiDispatchOpenClose;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_CLEANUP] = TiDispatchOpenClose;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = TiDispatchInternal;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = TiDispatch;
|
||||||
|
|
||||||
|
DriverObject->DriverUnload = TiUnload;
|
||||||
|
|
||||||
|
/* Initialize our periodic timer and its associated DPC object. When the
|
||||||
|
timer expires, the IPTimeout deferred procedure call (DPC) is queued */
|
||||||
|
ExInitializeWorkItem( &IpWorkItem, IPTimeout, NULL );
|
||||||
|
KeInitializeDpc(&IPTimeoutDpc, IPTimeoutDpcFn, NULL);
|
||||||
|
KeInitializeTimer(&IPTimer);
|
||||||
|
|
||||||
|
/* Start the periodic timer with an initial and periodic
|
||||||
|
relative expiration time of IP_TIMEOUT milliseconds */
|
||||||
|
DueTime.QuadPart = -(LONGLONG)IP_TIMEOUT * 10000;
|
||||||
|
KeSetTimerEx(&IPTimer, DueTime, IP_TIMEOUT, &IPTimeoutDpc);
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue