in src/Test.FunctionalTests.Sarif/v2/ConverterTestData/StaticDriverVerifier/src/sdv/sdv-harness.c [6387:6697]
void sdv_main()
{
UNICODE_STRING u;
NTSTATUS status;
LONG choice;
sdv_p_devobj_fdo->Flags = DO_DEVICE_INITIALIZING;
sdv_p_devobj_child_pdo->Flags = DO_DEVICE_INITIALIZING;
#if (SDV_HARNESS!=SDV_POWER_UP_POWER_DOWN_HARNESS)
choice = SdvMakeChoice();
/*****************************************************************************
For all the harness(es):
SDV_PNP_HARNESS_UNLOAD
SDV_PNP_HARNESS_SMALL
SDV_PNP_HARNESS
Exercise:
DriverEntry;
sdv_RunAddDevice;
*****************************************************************************/
#ifndef No_DriverEntry
sdv_inside_init_entrypoint = TRUE;
SDV_IRQL_PUSH(PASSIVE_LEVEL);
status = fun_DriverEntry(&sdv_driver_object, &u);
sdv_inside_init_entrypoint = FALSE;
SdvAssume (NT_SUCCESS(status));
#endif
#ifdef fun_AddDevice
#ifndef No_AddDevice
SDV_IRQL_PUSH(PASSIVE_LEVEL);
status = sdv_RunAddDevice(&sdv_driver_object,sdv_p_devobj_pdo);
SdvAssume (NT_SUCCESS(status));
#endif
#endif
sdv_stub_driver_init();
/*****************************************************************************
Additionally For the harness(es):
SDV_PNP_HARNESS_SMALL
Exercise:
sdv_RunDispatchFunction;
*****************************************************************************/
#ifndef SDV_PNP_HARNESS_ADDDEVICE_ONLY
#if (SDV_HARNESS==SDV_PNP_HARNESS_SMALL)
sdv_RunDispatchFunction(sdv_p_devobj_fdo, sdv_irp);
#endif
#if (SDV_HARNESS==SDV_PNP_HARNESS_SMALL_WITH_LINKED_CALLBACKS)
#define SDV_FLAT_HARNESS_MODIFIER_NO_UNLOAD
#define SDV_HARNESS_COMPLETION_ROUTINE
#define SDV_HARNESS_POWER_COMPLETION_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE_EX
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE
#define SDV_RUN_KE_DPC_ROUTINES
#define SDV_RUN_KE_ISR_ROUTINES
#define SDV_HARNESS_RUN_KSYNC_ROUTINES
sdv_RunDispatchFunction(sdv_p_devobj_fdo, sdv_irp);
#endif
/*****************************************************************************
Additionally For the harness(es):
SDV_PNP_HARNESS_UNLOAD
Exercise:
( sdv_RunRemoveDevice ||
sdv_RunUnload)
*****************************************************************************/
#if (SDV_HARNESS==SDV_PNP_HARNESS_UNLOAD)
#ifdef fun_IRP_MJ_PNP
status = sdv_RunRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
#endif
#ifdef fun_DriverUnload
SDV_IRQL_PUSH(PASSIVE_LEVEL);
sdv_RunUnload(&sdv_driver_object);
#endif
#endif
/*****************************************************************************
Additionally For the harness(es):
SDV_PNP_HARNESS
Exercise:
sdv_RunStartDevice
sdv_RunDispatchFunction
( sdv_RunStartIo ||
sdv_RunDPC ||
sdv_RunISR );
sdv_RunRemoveDevice;
sdv_RunUnload
*****************************************************************************/
#if (SDV_HARNESS==SDV_PNP_HARNESS)
#ifdef fun_IRP_MJ_PNP
status = sdv_RunStartDevice(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#ifndef SDV_NO_DISPATCH_ROUTINE
sdv_RunDispatchFunction(sdv_p_devobj_fdo, sdv_irp);
#endif
#ifdef fun_DriverStartIo
sdv_RunStartIo(sdv_p_devobj_fdo, sdv_irp);
#endif
#ifdef fun_IRP_MJ_PNP
status = sdv_RunRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
#endif
#ifdef fun_DriverUnload
if (sdv_io_create_device_called<2) {
sdv_driver_object.DeviceObject = NULL;
}
sdv_RunUnload(&sdv_driver_object);
#endif
#endif
#endif
#if (SDV_HARNESS==SDV_PNP_POWER_HARNESS)
#ifdef fun_IRP_MJ_PNP
#ifdef IS_WDM_BUS_DRIVER
#ifndef SDV_IRP_MN_REMOVE_DEVICE_ONLY
#ifndef SDV_IRP_MN_SUPRISE_REMOVE_ONLY
#ifndef SDV_IRP_MN_QUERY_REMOVE_DEVICE_ONLY
status = sdv_RunQueryCapRequirements(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#endif
#endif
#endif
#ifndef SDV_IRP_MN_REMOVE_DEVICE_ONLY
#ifndef SDV_IRP_MN_SUPRISE_REMOVE_ONLY
#ifndef SDV_IRP_MN_QUERY_REMOVE_DEVICE_ONLY
status = sdv_RunResRequirements(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
status = sdv_RunStartDevice(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#endif
#endif
#ifdef SDV_IRP_MN_SUPRISE_REMOVE
#ifndef SDV_IRP_MN_REMOVE_DEVICE_ONLY
#ifndef SDV_IRP_MN_QUERY_REMOVE_DEVICE_ONLY
status = sdv_RunSurpriseRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#endif
#endif
#ifndef NO_SDV_IRP_MN_QUERY_REMOVE_DEVICE_ONLY
#ifdef SDV_IRP_MN_REMOVE_DEVICE
status = sdv_RunQueryRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
status = sdv_RunRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#endif
status = sdv_RunQueryCapRequirements(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
status = sdv_RunQueryDeviceState(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#ifdef IS_WDM_BUS_DRIVER
status = sdv_RunQueryDeviceRelations(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#endif
#ifdef fun_IRP_MJ_POWER
#define SDV_HARNESS_COMPLETION_ROUTINE
status = sdv_RunQueryPowerUp(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
status = sdv_RunSetPowerUp(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
status = sdv_RunQueryPowerDown(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
status = sdv_RunSetPowerDown(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#endif
#endif
#if (SDV_HARNESS==SDV_POWER_DOWN_PNP_HARNESS)
#define SDV_HARNESS_COMPLETION_ROUTINE
#define SDV_HARNESS_POWER_COMPLETION_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE_EX
#define SDV_HARNESS_RUN_KSYNC_ROUTINES
status = sdv_RunQueryPowerDown(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
status = sdv_RunSetPowerDown(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
status = sdv_RunSurpriseRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (status==STATUS_SUCCESS);
status = sdv_RunQueryRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (status==STATUS_SUCCESS);
status = sdv_RunRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (status==STATUS_SUCCESS);
#endif
#if (SDV_HARNESS==SDV_PNP_REMOVE_DEVICE_HARNESS)
status = sdv_RunSurpriseRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
status = sdv_RunRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
#endif
#if (SDV_HARNESS==SDV_PNP_BASIC_REMOVE_DEVICE_HARNESS)
#define SDV_HARNESS_COMPLETION_ROUTINE
#define SDV_HARNESS_POWER_COMPLETION_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE_EX
#define SDV_HARNESS_RUN_KSYNC_ROUTINES
status = sdv_RunRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (status==STATUS_SUCCESS);
#endif
#if (SDV_HARNESS==SDV_SMALL_START_SEQUENCE_HARNESS)
#define SDV_HARNESS_COMPLETION_ROUTINE
#define SDV_HARNESS_POWER_COMPLETION_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE_EX
#define SDV_HARNESS_RUN_KSYNC_ROUTINES
#ifdef fun_IRP_MJ_PNP
status = sdv_RunStartDevice(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
status = sdv_RunSetPowerUp(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#if (SDV_HARNESS==SDV_SMALL_POWERDOWN_HARNESS)
#define SDV_HARNESS_COMPLETION_ROUTINE
#define SDV_HARNESS_POWER_COMPLETION_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE_EX
#define SDV_HARNESS_RUN_KSYNC_ROUTINES
#ifdef fun_IRP_MJ_PNP
#endif
status = sdv_RunSetPowerDown(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#if (SDV_HARNESS==SDV_SMALL_POWERUP_POWERDOWN_HARNESS)
#define SDV_HARNESS_COMPLETION_ROUTINE
#define SDV_HARNESS_POWER_COMPLETION_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE_EX
#define SDV_HARNESS_RUN_KSYNC_ROUTINES
status = sdv_RunSetPowerUp(sdv_p_devobj_fdo, sdv_irp);
status = sdv_RunSetPowerDown(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#if (SDV_HARNESS==SDV_SMALL_SMALL_POWERUP_HARNESS)
#define SDV_HARNESS_COMPLETION_ROUTINE
#define SDV_HARNESS_POWER_COMPLETION_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE
#define SDV_HARNESS_QUEUE_WORK_ITEMS_ROUTINE_EX
#define SDV_HARNESS_RUN_KSYNC_ROUTINES
status = sdv_RunSetPowerUp(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#if (SDV_HARNESS==SDV_FLAT_QUERY_DEVICE_RELATIONS_HARNESS)
#ifdef IS_WDM_BUS_DRIVER
status = sdv_RunQueryDeviceRelations(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (NT_SUCCESS(status));
#endif
#endif
#if (SDV_HARNESS==SDV_PNP_QUERY_REMOVE_DEVICE_HARNESS)
status = sdv_RunQueryRemoveDevice(sdv_p_devobj_fdo, sdv_irp);
SdvAssume (status==STATUS_SUCCESS);
#endif
}