---
title: IIG_KERNEL
framework: driverkit
role: symbol
role_heading: Macro
path: driverkit/iig_kernel
---

# IIG_KERNEL

Tells the system that the class or method runs inside the kernel.

## Declaration

```occ
#define IIG_KERNEL
```

## Discussion

Discussion DriverKit adds this macro to methods that must run inside the kernel’s process space. When overriding a method tagged with this macro, you must define your method using the IMPL macro, which creates the necessary binding to bridge from your driver’s process space to the kernel implementation. When applied to a class, this macro affects all methods of the class. Don’t apply this macro to your own classes and methods.

## See Also

### Runtime support

- [OSDynamicCast](driverkit/osdynamiccast.md)
- [OSRequiredCast](driverkit/osrequiredcast.md)
- [IMPL](driverkit/impl.md)
- [TYPE](driverkit/type.md)
- [QUEUENAME](driverkit/queuename.md)
- [SUPERDISPATCH](driverkit/superdispatch.md)
- [LOCAL](driverkit/local.md)
- [LOCALONLY](driverkit/localonly.md)
- [Error Codes](driverkit/error-codes.md)
- [C++ Runtime Support](driverkit/c-runtime-support.md)
