static NTSTATUS WINAPI driver_IoControl(DEVICE_OBJECT *device, IRP *irp)
{
    IO_STACK_LOCATION *stack = IoGetCurrentIrpStackLocation(irp);
    NTSTATUS status = STATUS_NOT_SUPPORTED;
    ULONG_PTR information = 0;

#define DECLARE_TEST(name) \
    case WINE_IOCTL_##name: status = RUN_TESTCASE(name, irp, stack, &information); break;

    switch (stack->Parameters.DeviceIoControl.IoControlCode)
    {
        DECLARE_TEST(PsGetCurrentProcessId);
        DECLARE_TEST(PsGetCurrentThread);

        default:
            break;
    }

#undef DECLARE_TEST

    irp->IoStatus.Status = status;
    irp->IoStatus.Information = information;
    IoCompleteRequest(irp, IO_NO_INCREMENT);
    return status;
}
Example #2
0
//

typedef struct
{
    const char *testname;
    testfn_t test;
} test_item_t;

//  -------------------------------------------------------------------------
//  Declaration of all tests
//

#define DECLARE_TEST(TEST) {#TEST, TEST}

test_item_t all_tests [] = {
    DECLARE_TEST(zactor_test),
    DECLARE_TEST(zauth_test),
    DECLARE_TEST(zarmour_test),
    DECLARE_TEST(zbeacon_test),
    DECLARE_TEST(zcert_test),
    DECLARE_TEST(zcertstore_test),
    DECLARE_TEST(zchunk_test),
    DECLARE_TEST(zclock_test),
    DECLARE_TEST(zconfig_test),
    DECLARE_TEST(zdigest_test),
    DECLARE_TEST(zdir_test),
    DECLARE_TEST(zdir_patch_test),
    DECLARE_TEST(zfile_test),
    DECLARE_TEST(zframe_test),
    DECLARE_TEST(zgossip_test),
    DECLARE_TEST(zhash_test),