小弟我用VC程序搜索完U盘上的文件后,U盘无法正常拔出,这是为什么?怎么在不关闭小弟我的程序下正常弹出U盘?程序如下

我用VC程序搜索完U盘上的文件后,U盘无法正常拔出,这是为什么?如何在不关闭我的程序下正常弹出U盘?程序如下:
#include   <windows.h>
#include   <stdio.h>

WIN32_FIND_DATA   FileData;  
HANDLE   hSearch;  
DWORD   dwAttrs;  
char   szDirPath[]   =   "c:\\TEXTRO\\ ";  
char   szNewPath[MAX_PATH];  
char   szHome[MAX_PATH];  
 
BOOL   fFinished   =   FALSE;  
 
//   Create   a   new   directory.  
 
if   (!CreateDirectory(szDirPath,   NULL))  
{  
        printf( "Couldn 't   create   new   directory. ");  
        return;
}  
 
//   Start   searching   for   .TXT   files   in   the   current   directory.  
 
hSearch   =   FindFirstFile( "*.txt ",   &FileData);  
if   (hSearch   ==   INVALID_HANDLE_VALUE)  
{  
        printf( "No   .TXT   files   found. ");  
        return;
}  
 
//   Copy   each   .TXT   file   to   the   new   directory  
//   and   change   it   to   read   only,   if   not   already.  
 
while   (!fFinished)  
{  
        lstrcpy(szNewPath,   szDirPath);  
        lstrcat(szNewPath,   FileData.cFileName);  
        if   (CopyFile(FileData.cFileName,   szNewPath,   FALSE))
        {  
                dwAttrs   =   GetFileAttributes(FileData.cFileName);  
                if   (!(dwAttrs   &   FILE_ATTRIBUTE_READONLY))  
                {  
                        SetFileAttributes(szNewPath,  
                                dwAttrs   |   FILE_ATTRIBUTE_READONLY);  
                }  
        }  
        else  
        {  
                printf( "Couldn 't   copy   file. ");  
                return;
        }  
 
        if   (!FindNextFile(hSearch,   &FileData))  
        {
                if   (GetLastError()   ==   ERROR_NO_MORE_FILES)  
                {  
                        MessageBox(hwnd,   "No   more   .TXT   files. ",  
                                "Search   completed. ",   MB_OK);  
                        fFinished   =   TRUE;