The IKernelTransaction interface is used to get a transaction handle that can then be passed into transacted Windows APIs. A pointer to this interface is obtained from an ITransaction object that represents an MS Distributed Transaction Coordinator (MSDTC) transaction.
You do not need to implement this interface. It is implemented by the ITransaction object.
Transacted Windows APIs, such as CreateFileTransacted or RegCreateKeyTransacted, require a handle that represents the transaction to be passed as a parameter. Use the IKernelTransaction interface to obtain a handle that represents the transaction to pass to a transacted Windows API.