void (*OnLinkStatusChanged)(struct hv_device *dev, u32 Status);
 
        /* Specific to this driver */
-       int (*OnOpen)(struct hv_device *dev);
        int (*OnClose)(struct hv_device *dev);
        int (*OnSend)(struct hv_device *dev, struct hv_netvsc_packet *packet);
 
 
 /* Interface */
 int NetVscInitialize(struct hv_driver *drv);
+int RndisFilterOnOpen(struct hv_device *Device);
 
 #endif /* _NETVSC_API_H_ */
 
 
 static void RndisFilterOnCleanup(struct hv_driver *Driver);
 
-static int RndisFilterOnOpen(struct hv_device *Device);
-
 static int RndisFilterOnClose(struct hv_device *Device);
 
 static int RndisFilterOnSend(struct hv_device *Device,
        Driver->Base.OnDeviceRemove = RndisFilterOnDeviceRemove;
        Driver->Base.OnCleanup = RndisFilterOnCleanup;
        Driver->OnSend = RndisFilterOnSend;
-       Driver->OnOpen = RndisFilterOnOpen;
        Driver->OnClose = RndisFilterOnClose;
        /* Driver->QueryLinkStatus = RndisFilterQueryDeviceLinkStatus; */
        Driver->OnReceiveCallback = RndisFilterOnReceive;
        DPRINT_EXIT(NETVSC);
 }
 
-static int RndisFilterOnOpen(struct hv_device *Device)
+int RndisFilterOnOpen(struct hv_device *Device)
 {
        int ret;
        struct netvsc_device *netDevice = Device->Extension;
 
 static int netvsc_open(struct net_device *net)
 {
        struct net_device_context *net_device_ctx = netdev_priv(net);
-       struct driver_context *driver_ctx =
-           driver_to_driver_context(net_device_ctx->device_ctx->device.driver);
-       struct netvsc_driver_context *net_drv_ctx =
-               (struct netvsc_driver_context *)driver_ctx;
-       struct netvsc_driver *net_drv_obj = &net_drv_ctx->drv_obj;
        struct hv_device *device_obj = &net_device_ctx->device_ctx->device_obj;
        int ret = 0;
 
                       sizeof(struct net_device_stats));
 
                /* Open up the device */
-               ret = net_drv_obj->OnOpen(device_obj);
+               ret = RndisFilterOnOpen(device_obj);
                if (ret != 0) {
                        DPRINT_ERR(NETVSC_DRV,
                                   "unable to open device (ret %d).", ret);