void sdv_main()

in src/Test.FunctionalTests.Sarif/v1/ConverterTestData/StaticDriverVerifier/src/sdv/sdv-harness.c [5307:6090]


void sdv_main() 
{
    UNICODE_STRING u;
    NTSTATUS status;
    LONG choice;
    BOOLEAN sdv_dispatch_routines;
    BOOLEAN sdv_startio_routines;
    BOOLEAN sdv_dpc_routines;
    BOOLEAN sdv_isr_routines;
    BOOLEAN sdv_cancel_routines;
    BOOLEAN sdv_io_dpc_routines;
    BOOLEAN sdv_io_completion_routines;
    BOOLEAN sdv_io_worker_routines;
    BOOLEAN sdv_check_adddevice;
    BOOLEAN sdv_check_Irp_Mj_Pnp;
    BOOLEAN sdv_check_Irp_Mj_Power;
    BOOLEAN sdv_check_driver_unload;
    PIO_WORKITEM IoWorkItem;
    PIO_WORKITEM_ROUTINE WorkerRoutine;
    PIO_WORKITEM_ROUTINE_EX WorkerRoutineEx;
    WORK_QUEUE_TYPE QueueType;
	  PVOID  IoObject;
    PVOID Context;
    
#ifdef SDV_NO_DEBUGGER_ATTACHED_OR_ENABLED    
    KD_DEBUGGER_ENABLED=0;
    KD_DEBUGGER_NOT_PRESENT=1;
#endif


    /* Suppress C4101: Unreferenced local variable.
       Certain flawors of the OS Model does not reference u and status.
       Reference them explicitly to suppress warning: */
    u;
    status;
	  
	  #ifdef SDV_DEVICE_FLAGS
    sdv_p_devobj_fdo->Flags = DO_DEVICE_INITIALIZING;
    sdv_p_devobj_child_pdo->Flags = DO_DEVICE_INITIALIZING;
    #endif
	

    
    sdv_dispatch_routines=sdv_CheckDispatchRoutines();
    sdv_startio_routines=sdv_CheckStartIoRoutines();
    sdv_dpc_routines=sdv_CheckDpcRoutines();
    sdv_isr_routines=sdv_CheckIsrRoutines();
    sdv_cancel_routines=sdv_CheckCancelRoutines();
    
    sdv_io_dpc_routines=sdv_CheckIoDpcRoutines();
    sdv_io_completion_routines=sdv_IoCompletionRoutines();
    sdv_io_worker_routines=sdv_CheckWorkerRoutines();
    sdv_check_adddevice=sdv_CheckAddDevice();
    sdv_check_Irp_Mj_Pnp=sdv_CheckIrpMjPnp();
    sdv_check_Irp_Mj_Power=sdv_CheckIrpMjPower();
    sdv_check_driver_unload=sdv_CheckDriverUnload();


    choice = SdvMakeChoice();

    switch (choice) {

/*****************************************************************************
    For all the harness(es):
        SDV_FLAT_DISPATCH_HARNESS
        SDV_FLAT_DISPATCH_STARTIO_HARNESS
        SDV_FLAT_SIMPLE_HARNESS
        SDV_FLAT_HARNESS
    Exercise:
        sdv_RunDispatchFunction ||
*****************************************************************************/

    case 0: 
        if(sdv_dispatch_routines)
        {
          sdv_stub_driver_init();
          sdv_RunDispatchFunction(sdv_p_devobj_fdo, sdv_irp);
         }

        break;

/*****************************************************************************
    Additionally for the harness(es):
        SDV_FLAT_DISPATCH_STARTIO_HARNESS
        SDV_FLAT_SIMPLE_HARNESS
        SDV_FLAT_HARNESS
    Exercise:
        sdv_RunStartIo ||
*****************************************************************************/

#if (SDV_HARNESS!=SDV_FLAT_DISPATCH_HARNESS)

 
    case 1: 
        if(sdv_startio_routines)
        {
            sdv_stub_driver_init();
            sdv_RunStartIo(sdv_p_devobj_fdo, sdv_irp);
        }
        break;


/*****************************************************************************
    Additionally for the harness(es):
        SDV_FLAT_SIMPLE_HARNESS
        SDV_FLAT_HARNESS
    Exercise:
        sdv_RunDPC ||
        sdv_RunISR ||
        sdv_RunWorkerThreads ||
        sdv_RunIoDpcs
*****************************************************************************/

#if (SDV_HARNESS!=SDV_FLAT_DISPATCH_STARTIO_HARNESS)
#ifndef SDV_FLAT_HARNESS_NO_DPC
    case 2:
    #ifdef fun_KDEFERRED_ROUTINE_1
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_KDEFERRED_ROUTINE_1(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    
    case 3: 
    #ifdef fun_KDEFERRED_ROUTINE_2
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_KDEFERRED_ROUTINE_2(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    
    case 4: 
    #ifdef fun_KDEFERRED_ROUTINE_3
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_KDEFERRED_ROUTINE_3(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    
    case 5: 
    #ifdef fun_KDEFERRED_ROUTINE_4
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_KDEFERRED_ROUTINE_4(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    
    case 6: 
    #ifdef fun_KDEFERRED_ROUTINE_5
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_KDEFERRED_ROUTINE_5(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 7: 
    #ifdef fun_KDEFERRED_ROUTINE_6
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_KDEFERRED_ROUTINE_6(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 8: 
    #ifdef fun_KDEFERRED_ROUTINE_7
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_KDEFERRED_ROUTINE_7(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 9: 
    #ifdef fun_KDEFERRED_ROUTINE_8
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_KDEFERRED_ROUTINE_8(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 10: 
    #ifdef fun_KDEFERRED_ROUTINE_9
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_KDEFERRED_ROUTINE_9(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
#endif
#ifndef SDV_FLAT_HARNESS_NO_ISR
    case 11:
    #ifdef fun_KSERVICE_ROUTINE_1
        SDV_IRQL_PUSH(SDV_DIRQL);
        fun_KSERVICE_ROUTINE_1(sdv_kinterrupt,sdv_pv1);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 12: 
    #ifdef fun_KSERVICE_ROUTINE_2
        SDV_IRQL_PUSH(SDV_DIRQL);
        fun_KSERVICE_ROUTINE_2(sdv_kinterrupt,sdv_pv1);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 13: 
    #ifdef fun_KSERVICE_ROUTINE_3
        SDV_IRQL_PUSH(SDV_DIRQL);
        fun_KSERVICE_ROUTINE_3(sdv_kinterrupt,sdv_pv1);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 14: 
    #ifdef fun_KSERVICE_ROUTINE_4
        SDV_IRQL_PUSH(SDV_DIRQL);
        fun_KSERVICE_ROUTINE_4(sdv_kinterrupt,sdv_pv1);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 15: 
    #ifdef fun_KSERVICE_ROUTINE_5
        SDV_IRQL_PUSH(SDV_DIRQL);
        fun_KSERVICE_ROUTINE_5(sdv_kinterrupt,sdv_pv1);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 16: 
    #ifdef fun_KSERVICE_ROUTINE_6
        SDV_IRQL_PUSH(SDV_DIRQL);
        fun_KSERVICE_ROUTINE_6(sdv_kinterrupt,sdv_pv1);
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 17:
    #ifdef fun_WORKER_THREAD_ROUTINE_1
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
        fun_WORKER_THREAD_ROUTINE_1(sdv_pv2);
    #endif
        break;
    case 18:
    #ifdef fun_WORKER_THREAD_ROUTINE_2
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
        fun_WORKER_THREAD_ROUTINE_2(sdv_pv2);
    #endif
        break;
    case 19:
    #ifdef fun_WORKER_THREAD_ROUTINE_3
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
        fun_WORKER_THREAD_ROUTINE_3(sdv_pv2);
    #endif
        break;
    case 20:
    #ifdef fun_WORKER_THREAD_ROUTINE_4
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
        fun_WORKER_THREAD_ROUTINE_4(sdv_pv2);
    #endif
        break;
    case 21:
    #ifdef fun_WORKER_THREAD_ROUTINE_5
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
        fun_WORKER_THREAD_ROUTINE_5(sdv_pv2);
    #endif
        break;
    case 22:
    #ifdef fun_WORKER_THREAD_ROUTINE_6
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
        fun_WORKER_THREAD_ROUTINE_6(sdv_pv2);
    #endif
        break;
#endif

#ifndef SDV_FLAT_HARNESS_NO_KE_DPC
    case 23:
    #ifdef fun_IO_DPC_ROUTINE_1
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_DPC_ROUTINE_1(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3); 
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 24:
    #ifdef fun_IO_DPC_ROUTINE_2
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_DPC_ROUTINE_2(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3); 
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 25:
    #ifdef fun_IO_DPC_ROUTINE_3
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_DPC_ROUTINE_3(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3); 
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 26:
    #ifdef fun_IO_DPC_ROUTINE_4
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_DPC_ROUTINE_4(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3); 
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 27:
    #ifdef fun_IO_DPC_ROUTINE_5
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_DPC_ROUTINE_5(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3); 
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
    case 28:
    #ifdef fun_IO_DPC_ROUTINE_6
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_DPC_ROUTINE_6(sdv_kdpc,sdv_pDpcContext,sdv_pv2,sdv_pv3); 
        SDV_IRQL_POPTO(PASSIVE_LEVEL);
    #endif
        break;
#endif

#ifndef SDV_FLAT_HARNESS_CANCEL_ROUTINE
    case 29:
    #ifdef fun_DRIVER_CANCEL_1
        SDV_MACRO_STUB_CANCEL_BEGIN(sdv_irp);
		    fun_DRIVER_CANCEL_1(sdv_p_devobj_fdo, sdv_irp);
		    SDV_MACRO_STUB_CANCEL_END(sdv_irp);
	  #endif
        break;
    case 30:
    #ifdef fun_DRIVER_CANCEL_2
        SDV_MACRO_STUB_CANCEL_BEGIN(sdv_irp);
		    fun_DRIVER_CANCEL_2(sdv_p_devobj_fdo, sdv_irp);
		    SDV_MACRO_STUB_CANCEL_END(sdv_irp);
	#endif
	     break;
    case 31:
    #ifdef fun_DRIVER_CANCEL_3
        SDV_MACRO_STUB_CANCEL_BEGIN(sdv_irp);
		    fun_DRIVER_CANCEL_3(sdv_p_devobj_fdo, sdv_irp);
		    SDV_MACRO_STUB_CANCEL_END(sdv_irp);
	  #endif
        break;
    case 32:
    #ifdef fun_DRIVER_CANCEL_4
        SDV_MACRO_STUB_CANCEL_BEGIN(sdv_irp);
		    fun_DRIVER_CANCEL_4(sdv_p_devobj_fdo, sdv_irp);
		    SDV_MACRO_STUB_CANCEL_END(sdv_irp);
	  #endif
        break;
    case 33:
    #ifdef fun_DRIVER_CANCEL_5
        SDV_MACRO_STUB_CANCEL_BEGIN(sdv_irp);
		    fun_DRIVER_CANCEL_5(sdv_p_devobj_fdo, sdv_irp);
		    SDV_MACRO_STUB_CANCEL_END(sdv_irp);
	  #endif
        break;
    case 34:
    #ifdef fun_DRIVER_CANCEL_6
        SDV_MACRO_STUB_CANCEL_BEGIN(sdv_irp);
		    fun_DRIVER_CANCEL_6(sdv_p_devobj_fdo, sdv_irp);
		    SDV_MACRO_STUB_CANCEL_END(sdv_irp);
	  #endif
        break;
    case 35:
    #ifdef fun_DRIVER_CANCEL_7
        SDV_MACRO_STUB_CANCEL_BEGIN(sdv_irp);
		    fun_DRIVER_CANCEL_7(sdv_p_devobj_fdo, sdv_irp);
		SDV_MACRO_STUB_CANCEL_END(sdv_irp);
	#endif
        break;
   #endif
   #ifndef SDV_HARNESS_COMPLETION_ROUTINE
    case 36:
    #ifdef fun_IO_COMPLETION_ROUTINE_1
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_1(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
		    SDV_IRQL_POP();
	  #endif
        break;
    case 37:
    #ifdef fun_IO_COMPLETION_ROUTINE_2
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_2(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
		    SDV_IRQL_POP();
	  #endif
        break;
    case 38:
    #ifdef fun_IO_COMPLETION_ROUTINE_3
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_3(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
		    SDV_IRQL_POP();
	  #endif
        break;
    case 39:
    #ifdef fun_IO_COMPLETION_ROUTINE_4
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_4(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
		    SDV_IRQL_POP();
	  #endif
        break;
    case 40:
    #ifdef fun_IO_COMPLETION_ROUTINE_5
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_5(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
		    SDV_IRQL_POP();
	  #endif
        break;
    case 41:
    #ifdef fun_IO_COMPLETION_ROUTINE_6
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_6(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
		    SDV_IRQL_POP();
	  #endif
        break;
    case 42:
    #ifdef fun_IO_COMPLETION_ROUTINE_7
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_7(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
		    SDV_IRQL_POP();
	  #endif
        break;
    case 43:
    #ifdef fun_IO_COMPLETION_ROUTINE_8
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_8(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
	    	SDV_IRQL_POP();
	  #endif
        break;
    case 44:
    #ifdef fun_IO_COMPLETION_ROUTINE_9
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_9(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
		    SDV_IRQL_POP();
	  #endif
        break;
    case 45:
    #ifdef fun_IO_COMPLETION_ROUTINE_10
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_10(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
		    SDV_IRQL_POP();
	  #endif
        break;
    case 46:
    #ifdef fun_IO_COMPLETION_ROUTINE_11
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_11(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
		    SDV_IRQL_POP();
	  #endif
        break;
    case 47:
    #ifdef fun_IO_COMPLETION_ROUTINE_12
        SDV_IRQL_PUSH(DISPATCH_LEVEL);
        fun_IO_COMPLETION_ROUTINE_12(sdv_p_devobj_fdo,sdv_irp,sdv_pv2);  
		    SDV_IRQL_POP();
	  #endif
        break;
  
#endif

    case 48:
    #ifdef fun_REQUEST_POWER_COMPLETE_1
        sdv_stub_power_completion_begin();
	      sdv_irp->Tail.Overlay.CurrentStackLocation =sdv_SetPowerRequestIrpMinorFunction(sdv_irp);
        fun_REQUEST_POWER_COMPLETE_1(sdv_p_devobj_fdo,sdv_irp->Tail.Overlay.CurrentStackLocation->MinorFunction,sdv_irp->Tail.Overlay.CurrentStackLocation->Parameters.Power.State,sdv_pv2,&sdv_irp->IoStatus);  
	      SDV_IRQL_POP();
    #endif
        break;

    case 49:
    #ifdef fun_REQUEST_POWER_COMPLETE_2
        sdv_stub_power_completion_begin();
	      sdv_irp->Tail.Overlay.CurrentStackLocation =sdv_SetPowerRequestIrpMinorFunction(sdv_irp);
        fun_REQUEST_POWER_COMPLETE_2(sdv_p_devobj_fdo,sdv_irp->Tail.Overlay.CurrentStackLocation->MinorFunction,sdv_irp->Tail.Overlay.CurrentStackLocation->Parameters.Power.State,sdv_pv2,&sdv_irp->IoStatus);  
	      SDV_IRQL_POP();
    #endif
    break;
    case 50:
    #ifdef fun_REQUEST_POWER_COMPLETE_3
        sdv_stub_power_completion_begin();
	      sdv_irp->Tail.Overlay.CurrentStackLocation=sdv_SetPowerRequestIrpMinorFunction(sdv_irp);
        fun_REQUEST_POWER_COMPLETE_3(sdv_p_devobj_fdo,sdv_irp->Tail.Overlay.CurrentStackLocation->MinorFunction,sdv_irp->Tail.Overlay.CurrentStackLocation->Parameters.Power.State,sdv_pv2,&sdv_irp->IoStatus);  
	      SDV_IRQL_POP();
    #endif
        break;
    case 51:
    #ifdef fun_REQUEST_POWER_COMPLETE_4
        sdv_stub_power_completion_begin();
	      sdv_irp->Tail.Overlay.CurrentStackLocation =sdv_SetPowerRequestIrpMinorFunction(sdv_irp);
        fun_REQUEST_POWER_COMPLETE_4(sdv_p_devobj_fdo,sdv_irp->Tail.Overlay.CurrentStackLocation->MinorFunction,sdv_irp->Tail.Overlay.CurrentStackLocation->Parameters.Power.State,sdv_pv2,&sdv_irp->IoStatus);  
	      SDV_IRQL_POP();
    #endif
        break;
    case 52:
    #ifdef fun_REQUEST_POWER_COMPLETE_5
        sdv_stub_power_completion_begin();
	      sdv_irp->Tail.Overlay.CurrentStackLocation =sdv_SetPowerRequestIrpMinorFunction(sdv_irp);
        fun_REQUEST_POWER_COMPLETE_5(sdv_p_devobj_fdo,sdv_irp->Tail.Overlay.CurrentStackLocation->MinorFunction,sdv_irp->Tail.Overlay.CurrentStackLocation->Parameters.Power.State,sdv_pv2,&sdv_irp->IoStatus);  
	      SDV_IRQL_POP();
    #endif
        break;
    case 53:
    #ifdef fun_REQUEST_POWER_COMPLETE_6
        sdv_stub_power_completion_begin();
	      sdv_irp->Tail.Overlay.CurrentStackLocation =sdv_SetPowerRequestIrpMinorFunction(sdv_irp);
        fun_REQUEST_POWER_COMPLETE_6(sdv_p_devobj_fdo,sdv_irp->Tail.Overlay.CurrentStackLocation->MinorFunction,sdv_irp->Tail.Overlay.CurrentStackLocation->Parameters.Power.State,sdv_pv2,&sdv_irp->IoStatus);  
	      SDV_IRQL_POP();
    #endif
        break;
    case 54:
	  #ifdef fun_REQUEST_POWER_COMPLETE_7
        sdv_stub_power_completion_begin();
	      sdv_irp->Tail.Overlay.CurrentStackLocation =sdv_SetPowerRequestIrpMinorFunction(sdv_irp);
        fun_REQUEST_POWER_COMPLETE_7(sdv_p_devobj_fdo,sdv_irp->Tail.Overlay.CurrentStackLocation->MinorFunction,sdv_irp->Tail.Overlay.CurrentStackLocation->Parameters.Power.State,sdv_pv2,&sdv_irp->IoStatus);  
	      SDV_IRQL_POP();
    #endif
        break;
    case 55:
    #ifdef fun_REQUEST_POWER_COMPLETE_8
        sdv_stub_power_completion_begin();
	      sdv_irp->Tail.Overlay.CurrentStackLocation =sdv_SetPowerRequestIrpMinorFunction(sdv_irp);
        fun_REQUEST_POWER_COMPLETE_8(sdv_p_devobj_fdo,sdv_irp->Tail.Overlay.CurrentStackLocation->MinorFunction,sdv_irp->Tail.Overlay.CurrentStackLocation->Parameters.Power.State,sdv_pv2,&sdv_irp->IoStatus);  
	      SDV_IRQL_POP();
	  #endif
        break;
    case 56:
    #ifdef fun_REQUEST_POWER_COMPLETE_9
        sdv_stub_power_completion_begin();
	      sdv_irp->Tail.Overlay.CurrentStackLocation =sdv_SetPowerRequestIrpMinorFunction(sdv_irp);
        fun_REQUEST_POWER_COMPLETE_9(sdv_p_devobj_fdo,sdv_irp->Tail.Overlay.CurrentStackLocation->MinorFunction,sdv_irp->Tail.Overlay.CurrentStackLocation->Parameters.Power.State,sdv_pv2,&sdv_irp->IoStatus);  
	      SDV_IRQL_POP();
    #endif
        break;
    case 57:
    #ifdef fun_REQUEST_POWER_COMPLETE_10
        sdv_stub_power_completion_begin();
	      sdv_irp->Tail.Overlay.CurrentStackLocation =sdv_SetPowerRequestIrpMinorFunction(sdv_irp);
        fun_REQUEST_POWER_COMPLETE_10(sdv_p_devobj_fdo,sdv_irp->Tail.Overlay.CurrentStackLocation->MinorFunction,sdv_irp->Tail.Overlay.CurrentStackLocation->Parameters.Power.State,sdv_pv2,&sdv_irp->IoStatus);  
	      SDV_IRQL_POP();
    #endif
        break;
#ifndef SDV_FLAT_HARNESS_NO_KE_WORK_ITEMS 
    case 58:
    #ifdef fun_IO_WORKITEM_ROUTINE_1
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_1(sdv_p_devobj_fdo,Context);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 59:
    #ifdef fun_IO_WORKITEM_ROUTINE_2
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_2(sdv_p_devobj_fdo,Context);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 60:
    #ifdef fun_IO_WORKITEM_ROUTINE_3
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_3(sdv_p_devobj_fdo,Context);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 61:
    #ifdef fun_IO_WORKITEM_ROUTINE_4
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_4(sdv_p_devobj_fdo,Context);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 62:
    #ifdef fun_IO_WORKITEM_ROUTINE_5
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_5(sdv_p_devobj_fdo,Context);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 63:
    #ifdef fun_IO_WORKITEM_ROUTINE_6
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_6(sdv_p_devobj_fdo,Context);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 64:
    #ifdef fun_IO_WORKITEM_ROUTINE_7
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_7(sdv_p_devobj_fdo,Context);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 65:
    #ifdef fun_IO_WORKITEM_ROUTINE_8
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_8(sdv_p_devobj_fdo,Context);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 66:
    #ifdef fun_IO_WORKITEM_ROUTINE_9
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_9(sdv_p_devobj_fdo,Context);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 67:
    #ifdef fun_IO_WORKITEM_ROUTINE_10
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_10(sdv_p_devobj_fdo,Context);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 68:
    #ifdef fun_IO_WORKITEM_ROUTINE_EX_1
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_EX_1(IoObject,Context,IoWorkItem);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 69:
    #ifdef fun_IO_WORKITEM_ROUTINE_EX_2
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_EX_2(IoObject,Context,IoWorkItem);  
      	SDV_IRQL_POP();
	  #endif
        break;
    case 70:
    #ifdef fun_IO_WORKITEM_ROUTINE_EX_3
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_EX_3(IoObject,Context,IoWorkItem);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 71:
    #ifdef fun_IO_WORKITEM_ROUTINE_EX_4
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_EX_4(IoObject,Context,IoWorkItem);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 72:
    #ifdef fun_IO_WORKITEM_ROUTINE_EX_5
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_EX_5(IoObject,Context,IoWorkItem);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 73:
    #ifdef fun_IO_WORKITEM_ROUTINE_EX_6
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_EX_6(IoObject,Context,IoWorkItem);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 74:
    #ifdef fun_IO_WORKITEM_ROUTINE_EX_7
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_EX_7(IoObject,Context,IoWorkItem);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 75:
    #ifdef fun_IO_WORKITEM_ROUTINE_EX_8
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_EX_8(IoObject,Context,IoWorkItem);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 76:
    #ifdef fun_IO_WORKITEM_ROUTINE_EX_9
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_EX_9(IoObject,Context,IoWorkItem);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 77:
    #ifdef fun_IO_WORKITEM_ROUTINE_EX_10
        SDV_IRQL_PUSH(PASSIVE_LEVEL);
        fun_IO_WORKITEM_ROUTINE_EX_10(IoObject,Context,IoWorkItem);
      	SDV_IRQL_POP();
	  #endif
        break;
#endif
    case 78:
    #ifdef fun_PO_FX_COMPONENT_IDLE_STATE_CALLBACK
        sdv_stub_power_runtime_begin();
        fun_PO_FX_COMPONENT_IDLE_STATE_CALLBACK(Context,sdv_PoRuntime_Component,sdv_PoRuntime_State);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 79:
    #ifdef fun_PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK
        sdv_stub_power_runtime_begin();
        fun_PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK(Context,sdv_PoRuntime_Component,sdv_PoRuntime_State);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 80:
    #ifdef fun_PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK
        sdv_stub_power_runtime_begin();
        fun_PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK(Context,sdv_PoRuntime_Component);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 81:
    #ifdef fun_PO_FX_DEVICE_POWER_REQUIRED_CALLBACK
        sdv_stub_power_runtime_begin();
        fun_PO_FX_DEVICE_POWER_REQUIRED_CALLBACK(Context);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 82:
    #ifdef fun_PO_FX_POWER_CONTROL_CALLBACK
        sdv_stub_power_runtime_begin();
        status=fun_PO_FX_POWER_CONTROL_CALLBACK(sdv_PoRuntime_DeviceContext,
                                         sdv_PoRuntime_PowerControlCode,
                                         sdv_PoRuntime_InBuffer,
                                         sdv_PoRuntime_InBufferSize,
                                         sdv_PoRuntime_OutBuffer,
                                         sdv_PoRuntime_OutBufferSize,
                                         sdv_PoRuntime_BytesReturned);
      	SDV_IRQL_POP();
	  #endif
        break;    
    case 83:
    #ifdef fun_PO_FX_COMPONENT_CRITICAL_TRANSITION_CALLBACK
        sdv_stub_power_runtime_critical_begin();
        fun_PO_FX_COMPONENT_CRITICAL_TRANSITION_CALLBACK(Context,sdv_PoRuntime_Component,sdv_PoRuntime_Active);
      	SDV_IRQL_POP();
	  #endif
        break;
    case 84:
    #ifdef fun_PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK
        sdv_stub_power_runtime_begin();
        fun_PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK(Context);
      	SDV_IRQL_POP();
	  #endif
        break;

/*****************************************************************************
    Additionally for the harness(es):
        SDV_FLAT_HARNESS
    Exercise:
        DriverEntry ||
        sdv_RunAddDevice ||
        sdv_RunStartDevice ||
        sdv_RunRemoveDevice ||
        sdv_RunUnload
*****************************************************************************/

#if ( !SDV_IS_FLAT_SIMPLE_HARNESS() && SDV_HARNESS!=SDV_XFLAT_SIMPLE_HARNESS_CANCEL )

    case 85: 
        sdv_inside_init_entrypoint = TRUE;
        status = fun_DriverEntry(&sdv_driver_object, &u);
        sdv_inside_init_entrypoint = FALSE;
        break;
    #ifndef SDV_FLAT_HARNESS_MODIFIER_NO_ADDDEVICE
    #ifdef fun_AddDevice

    case 86: 
        status = sdv_RunAddDevice(&sdv_driver_object,sdv_p_devobj_pdo);
        break;
    #endif
    #endif


#ifdef fun_IRP_MJ_PNP
    case 87: 
        sdv_stub_driver_init();
        status = sdv_RunStartDevice(sdv_p_devobj_fdo, sdv_irp);
        break;
#endif

#ifndef SDV_FLAT_HARNESS_MODIFIER_NO_REMOVE_DEVICE
#ifdef fun_IRP_MJ_PNP
    case 88:
        status = sdv_RunRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
        break; 
#endif
#endif

#ifndef SDV_FLAT_HARNESS_MODIFIER_NO_UNLOAD
#ifdef fun_DriverUnload
    case 89:
        sdv_RunUnload(&sdv_driver_object);
        break;
#endif
#endif

#endif
#endif
#endif

    }
}