Skip to content

Remove IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION from the list of "g… #1616

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: staging
Choose a base branch
from

Conversation

rodwiddowson
Copy link
Contributor

@rodwiddowson rodwiddowson commented May 27, 2025

Add explanations about IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION.

Specifically that it has a guaranteed single return value and
the OS versions for which it is supported (the last being a guess and TBC).

This is the stuff I would need before I could add this to a product.

@cgallred
Copy link
Contributor

The new change is correct. What is no longer correct is the requirement that the I/O has to be an IRP-based operation. However, that is only the case for this operation.

You'll never get STATUS_PENDING when calling FltCheckOplockEx for IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION. It only breaks R and RH oplocks and the break does not require acknowledgment. See Types of Opportunistic Locks, third paragraph of the "Read-Handle Opportunistic Locks" (the one after the Note). That specifically talks about what happens if a write operation breaks the oplock, but the behavior is the same for ACQUIRE_FOR_SECTION_SYNCHRONIZATION.

Specifically that it has a guaranteed single return value and
the OS versions for which it is supported (the last being a guess and TBC).
@rodwiddowson
Copy link
Contributor Author

Thanks @cgallred very much appreciated. I have reprurposed this PR to explain this and also made a guess about supported versions.

@lorihollasch
Copy link
Member

@rodwiddowson, thanks for the update. We'll need to remove the last sentence with "TBC" in it; the minimum supported client version is reflected in the metadata. Otherwise, I'll await @cgallred's approval before merging (he's likely super busy prepping for next week's PlugFest!).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants