Thank you for your interest in contributing to WinKernelLite! This document provides guidelines and instructions for contributing.
Please be respectful and considerate of others when contributing to this project. We aim to foster an inclusive and welcoming community.
If you find a bug, please create an issue on GitHub with the following information:
- A clear, descriptive title
- A detailed description of the issue
- Steps to reproduce the bug
- Expected behavior vs. actual behavior
- System information (OS version, compiler version, etc.)
- Any relevant code snippets or screenshots
For feature requests or enhancement suggestions, please create an issue with:
- A clear, descriptive title
- A detailed description of the proposed feature
- Any relevant examples, mockups, or use cases
- Why this enhancement would be useful to most users
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature-name) - Make your changes
- Run the tests to ensure they pass
- Commit your changes (
git commit -m 'Add some feature') - Push to your branch (
git push origin feature/your-feature-name) - Open a Pull Request
- Follow the existing code style and conventions
- Include tests for new features or bug fixes
- Update documentation for any changed functionality
- Keep pull requests focused on a single change
- Link to any relevant issues
- Windows operating system (supports both 32-bit and 64-bit)
- CMake 3.29 or higher
- Visual Studio 2019 or later with C/C++ development tools
# Clone the repository
git clone https://github.com/TorinKS/WinKernelLite.git
cd WinKernelLite
# Create a build directory
mkdir build
cd build
# Configure the project with tests enabled
cmake .. -DBUILD_TESTS=ON
# Build
cmake --build . --config Debugcd build
ctest -C Debug --output-on-failure- Use consistent indentation (4 spaces)
- Follow the existing naming conventions
- Write clear, descriptive comments
- Add appropriate header documentation for public functions
- Keep functions focused and reasonably sized
- Use PascalCase for function names
- Use Hungarian notation for Windows API compatibility
- Add appropriate parameter annotations (In, Out, etc.)
- Check return values and handle errors appropriately
- Update any relevant documentation when changing code
- Use clear, concise language
- Provide examples for complex functionality
- Document function parameters and return values
- Use clear, descriptive commit messages
- Start with a short summary line (50 chars or less)
- Follow with a more detailed explanation if necessary
- Reference issue numbers when applicable
Example:
Add ExAllocatePoolTracked function
This implements a tracked version of ExAllocatePool that records
allocations for debugging memory leaks.
Fixes #42
By contributing to this project, you agree that your contributions will be licensed under the project's Apache License 2.0.
Thank you for contributing to WinKernelLite!