Skip to content
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

handle cases where ReadFile/WriteFile may complete synchronously #161

Conversation

georges-berenger
Copy link
Contributor

Summary:
Unlike ReadFileEx and WriteFileEx, which always call their completion routines and are always asynchrous, ReadFlie and WriteFiel may complete synchronously. This MSDN article discusses how to handle this (which is different from some of the advice given in ReadFile's documentation. That says

The lpNumberOfBytesRead parameter should be set to NULL. Use the GetOverlappedResult function to get the actual number of bytes read.

If you do that, there's no way to know how many bytes were transferred if the operation completes synchronously.

Differential Revision: D61977068

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Aug 29, 2024
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D61977068

…ebookresearch#161)

Summary:
Pull Request resolved: facebookresearch#161

Unlike `ReadFileEx` and `WriteFileEx`, which always call their completion routines and are always asynchrous, `ReadFlie` and `WriteFiel` may complete synchronously. [This MSDN article](https://learn.microsoft.com/en-us/previous-versions/troubleshoot/windows/win32/asynchronous-disk-io-synchronous) discusses how to handle this (which is different from some of the advice given in ReadFile's documentation. That says
> The lpNumberOfBytesRead parameter should be set to NULL. Use the GetOverlappedResult function to get the actual number of bytes read.

If you do that, there's no way to know how many bytes were transferred if the operation completes synchronously.

Differential Revision: D61977068
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D61977068

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants