*/
 
 #define  __INCLUDE_FROM_USB_DRIVER
-#include "../../HighLevel/USBMode.h"
+#include "../../Core/USBMode.h"
+
 #if defined(USB_CAN_BE_HOST)
 
 #define  __INCLUDE_FROM_SI_DRIVER
        if (DESCRIPTOR_TYPE(ConfigDescriptorData) != DTYPE_Configuration)
          return SI_ENUMERROR_InvalidConfigDescriptor;
 
-       while (!(DataINEndpoint) || !(DataOUTEndpoint))
+       while (!(DataINEndpoint) || !(DataOUTEndpoint) || !(EventsEndpoint))
        {
                if (!(StillImageInterface) ||
                    USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,
 uint8_t SI_Host_OpenSession(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo)
 {
        if ((USB_HostState != HOST_STATE_Configured) || !(SIInterfaceInfo->State.IsActive))
-         return HOST_SENDCONTROL_DeviceDisconnected;
+         return PIPE_RWSTREAM_DeviceDisconnected;
 
        uint8_t ErrorCode;
 
 uint8_t SI_Host_CloseSession(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo)
 {
        if ((USB_HostState != HOST_STATE_Configured) || !(SIInterfaceInfo->State.IsActive))
-         return HOST_SENDCONTROL_DeviceDisconnected;
+         return PIPE_RWSTREAM_DeviceDisconnected;
 
        uint8_t ErrorCode;
 
                             uint32_t* const Params)
 {
        if ((USB_HostState != HOST_STATE_Configured) || !(SIInterfaceInfo->State.IsActive))
-         return HOST_SENDCONTROL_DeviceDisconnected;
+         return PIPE_RWSTREAM_DeviceDisconnected;
 
        uint8_t ErrorCode;
 
        PIMA_Container_t PIMABlock;
 
        if ((USB_HostState != HOST_STATE_Configured) || !(SIInterfaceInfo->State.IsActive))
-         return HOST_SENDCONTROL_DeviceDisconnected;
+         return PIPE_RWSTREAM_DeviceDisconnected;
 
        if ((ErrorCode = SI_Host_ReceiveBlockHeader(SIInterfaceInfo, &PIMABlock)) != PIPE_RWSTREAM_NoError)
          return ErrorCode;