Add InitializeObjectAttributes function with example to ntddk.rs #253
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds the
InitializeObjectAttributes
function tontddk.rs
. The function initialises theOBJECT_ATTRIBUTES
structure, which is used by Windows kernel APIs for object management. The function ensures pointer safety and proper initialisation of fields within the structure, hopefully making it somewhat safe to use. I have includedunsafe
in the function signature to alert the caller to pointer dereferencing, though theunsafe
keyword strictly isn't required due to the inner unsafe block.I don't know whether you want this style of documentation in this crate; if you want it removing, please let me know! I'm new to contributing to this project, so I am open to feedback.
Changes Made
InitializeObjectAttributes
Ok(())
for successful initialisation orErr(())
if the pointer is invalid.OBJECT_ATTRIBUTES
structure using anunsafe
block.UNICODE_STRING
.OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE
) for clarity.Original C macro for reference
The original implementation in the WDK can be found below for reference to my PR: