{"id":18404533,"url":"https://github.com/avakar/vcrtl","last_synced_at":"2025-10-03T19:30:07.564Z","repository":{"id":137930339,"uuid":"224305411","full_name":"avakar/vcrtl","owner":"avakar","description":"C++ Exceptions in Windows Drivers","archived":false,"fork":false,"pushed_at":"2020-12-21T22:23:37.000Z","size":50,"stargazers_count":205,"open_issues_count":4,"forks_count":41,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-07T22:24:29.537Z","etag":null,"topics":["cpp","exceptions","kernel-mode-driver","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/avakar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-26T23:36:04.000Z","updated_at":"2025-03-29T16:31:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"ac91c2a5-0674-439a-9d4b-c4d54a155730","html_url":"https://github.com/avakar/vcrtl","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/avakar/vcrtl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avakar%2Fvcrtl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avakar%2Fvcrtl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avakar%2Fvcrtl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avakar%2Fvcrtl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avakar","download_url":"https://codeload.github.com/avakar/vcrtl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avakar%2Fvcrtl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271397961,"owners_count":24752641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","exceptions","kernel-mode-driver","windows"],"created_at":"2024-11-06T02:53:11.169Z","updated_at":"2025-10-03T19:30:02.487Z","avatar_url":"https://github.com/avakar.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# C++ Exceptions in Windows Drivers\n\nThis project implements parts of the Visual Studio runtime library\nthat are needed for C++ exception handling. Currently, x86 and x64\nplatforms are supported.\n\n## Getting started\n\nTo use exceptions in your kernel-mode driver, first\n\n* [download the binaries](https://github.com/avakar/vcrtl/releases), and then\n* add `vcrtl_driver.props` to your driver project.\n\nC++ exceptions will magically work.\n\n## Features\n\nThe exception handling code was optimized to significantly reduce\nthe required stack space. On x86, the stack usage is negligible,\non x64, approximately 300 bytes are used during handler search,\nthese are, however, reclaimed before the catch handler is called.\n\nNo dynamic allocations or thread-local storage is used, everything\nhappens on the stack.\n\nOn x64, both FH3 and FH4 C++ exception ABI is supported. FH4 is\nmuch better than FH3, prefer it.\n\nNo string comparisons are done during exception dispatch.\n\n## Limitations\n\nAn exception must not leave the module in which it was thrown,\notherwise the dispatcher will bug-check.\n\nNo SEH exception may pass through frames in which you do C++\nexception handling (this includes functions with `try/catch` blocks\nor functions marked as `noexcept`, or functions with automatic variables\nwith non-trivial destructors). This will be detected and\nyou'll get a bug-check.\n\n## TODO\n\nAlthough `/GS` is supported, the frame cookies aren't checked yet.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favakar%2Fvcrtl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favakar%2Fvcrtl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favakar%2Fvcrtl/lists"}