Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 114397
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T02:51:15+00:00 2026-05-11T02:51:15+00:00

I’m sure I am just doing something really dumb and not seeing it but

  • 0

I’m sure I am just doing something really dumb and not seeing it but can anyone tell me why the following code would not be picking up changes in the passed in directory?

When calling this code, creating and modifying files or directories in the passed in m_directory is ignored. But if I call

PostQueuedCompletionStatus( m_hCompletionPort, 0, 0, NULL );  

then GetQueuedCompletionStatus correctly exits. Does anyone see what I am doing wrong? Here is the code:

// create handle to log dir HANDLE logDirHandle = CreateFile(m_directory,      FILE_LIST_DIRECTORY,      FILE_SHARE_READ | FILE_SHARE_WRITE,     NULL,     OPEN_EXISTING,     FILE_FLAG_BACKUP_SEMANTICS |     FILE_FLAG_OVERLAPPED,     NULL);  // create the completion port m_hCompletionPort = CreateIoCompletionPort(logDirHandle, NULL, 0, 1);  // initial registration for changes DWORD                   dwBufLength; FILE_NOTIFY_INFORMATION notifyInfo; OVERLAPPED              overlapped;  ReadDirectoryChangesW(logDirHandle,     &notifyInfo,     MAX_BUFFER,     TRUE,     FILE_NOTIFY_CHANGE_LAST_WRITE|FILE_NOTIFY_CHANGE_CREATION,           &dwBufLength,     &overlapped,     NULL);  // wait for a change LPOVERLAPPED    lpOverLapped; ULONG           key; DWORD           numBytes;  GetQueuedCompletionStatus(m_hCompletionPort, &numBytes, &key, &lpOverLapped, INFINITE)) 

EDIT:
Ok, I thought for sure ReadDirectoryChangesW() was returning TRUE but it is not. GetLastError() tells me the error is ERROR_INVALID_HANDLE (6). The strange thing is that logDirHandle appears to be valid and no error occurred in the call to CreateFile().

Also I refactored slightly to call the synchronous ReadDirectoryChangesW keeping everything the same except losing the OVERLAPPED stuff and it worked fine. So I am guessing I am implementing the OVERLAPPED stuff incorrectly?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T02:51:15+00:00Added an answer on May 11, 2026 at 2:51 am

    Did you check the return values? And is this over a network?

    Edit: You probably want to initialize OVERLAPPED to zero.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 71k
  • Answers 71k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • added an answer if you wnat to implement the filter algorithms, first of… May 11, 2026 at 1:16 pm
  • added an answer I believe you need an ADC Select (or Premier) Membership… May 11, 2026 at 1:16 pm
  • added an answer Wouldn't the simplest solution be to update references to Session… May 11, 2026 at 1:16 pm

Related Questions

No related questions found

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.