none
Code correct ? RRS feed

  • Question

  •                                                                                 

    Are the code portions correct?
    For this kind of thing should I use LockVDFNotify, unLockVDFNotify?
    1st portion:

    LockVDFNotify(vdf);         
                                           FsRtlNotifyFullChangeDirectory(vdf->NotifySync, 
                                                       &vdf->DirNotifyList,               
                                         file->FsContext2,
                                                        (PSTRING)&file->FileName,       
                                                 WatchTree,  
                                                      FALSE,
                                                        CompletionFilter,        
                                                Irp,     
                                                   NULL,
                                                        NULL);      
                                              unLockVDFNotify(vdf);



    2nd portion:

    LockVDFNotify(vdf);       
         FsRtlNotifyCleanup(vdf->NotifySync, &vdf->DirNotifyList, fsc); 
               unLockVDFNotify(vdf);
    





    3rd portion:

    LockVDFNotify(vdf);
                                            FsRtlNotifyFullReportChange(                                            vdf->NotifySync,  
                                              &vdf->DirNotifyList,    
                                            (PSTRING)&strfilename,  
                                              pn1->namaeoffset,       
                                         NULL,  
                                              NULL,       
                                         pn1->filtermatch,
                                                pn1->action,
                                                NULL       
                                     );            
                                unLockVDFNotify(vdf);



    void LockVDFNotify(PPARAMVDF vdf){    ExAcquireResourceExclusiveLite(&vdf->ResourceNextFile, TRUE);}
    
    void unLockVDFNotify(PPARAMVDF vdf){    ExReleaseResourceLite(&vdf->ResourceNextFile);
    }


    Sunday, June 24, 2018 4:09 PM

All replies

  • Who knows? Your code snippets do not provide enough information. Next time, distill your question down to the basics, such as "Do I need to acquire a lock around calls to FsRtlNotifyFullChangeDirectory in these circumstances …".

    As a rule, you would acquire the VCB or FCB lock (possibly shared) around these calls, but you have not provided enough context to answer the question.

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    Monday, June 25, 2018 8:39 PM
    Moderator