
Looking inside the Kinect SDK
The Kinect SDK provides both managed and unmanaged libraries. If you are developing an application using either C# or VB.NET, you can directly invoke the .NET Kinect Runtime APIs; and for C++ applications, you have to interact with the Native Kinect Runtime APIs. Both the types of APIs can talk to the Kinect drivers that are installed as a part of SDK installation.
For managed code, the Kinect for Windows SDK provides Dynamic Link Library (DLL) as an assembly (Microsoft.Kinect.dll), which can be added to any application that wants to use the Kinect device. You can find this assembly in the SDK installation directory, as shown in the next screenshot:

The Kinect driver can control the camera, depth sensor, audio microphone array, and the motor. Data passes between the sensor and the application in the form of data streams of the following types:
- Color data stream
- Depth data stream
- Audio data stream
The next diagram illustrates the overall layered components for the Kinect SDK, and it shows how an application interacts with different layers of components:
