File size doesn't change in explore.

Hi, guys

First of all, sorry for my poor english.

I got a problem about the file size.
In my file system driver, I handle the IRP_MJ_FILE_INFORMATION request.
And it passes the right value to me(I use filetest to do NtQueryInformation).
But the explorer shows that the file size is 0 bytes. I just don’t know why?
When the file size need to be changed, I set the FO_FILE_MODIFIED flag on
the FileObject, and report the change to the directory. Just hope someone can
give me a hint. Thanks.

Here is my dispatch route to handle IRP_MJ_FILE_INFORMATION:

NTSTATUS
EnfsQueryFileInformation(
    IN PENFS_IRP_CONTEXT IrpContext
    )
{
    //do some check…
    switch (FileInformationClass) {
    case FileBasicInformation:
        {    // Process it and break…
        }
    case FileStandardInformation:
        {    // Process it and break…
        }
    case FileInternalInformation:
        {    // Process it and break…
        }
    case FileEaInformation:
        {    // Process it and break…
        }
    case FileNameInformation:
        {    // Process it and break…
        }
    case FilePostionInformation:
        {    // Process it and break…
        }
    case FileAllInformation:
        {    // Process it and break…
        }
    case FileNetworkOpenInformation:
        {    // Process it and break…
        }
    case FileAttributeTagInformation:
        {    // Process it and break…
        }
    default:
        Status = STATUS_INVALID_PARAMETER;
    }

    // According to the status code, requeue it requst or complete the request
}


好玩贺卡等你发,邮箱贺卡全新上线!
http://card.mail.cn.yahoo.com/

These things are often due to either

  1. Not changing the size in IRP_MJ_DIRECTORY_CONTROL
  2. Not changing the size in IRP_MJ_NETWORK_QUERY_OPEN

If I might also be so bold: try starting with a test application which is
less “challenging” than explorer. Ladislav’s (free) Filetest
(http://www.zezula.net/) is awesome for discovering what is happening and
you only ever see one IRP at a time.

Good luck

Rod

"光凯 å¼ " wrote in message news:xxxxx@ntfsd…
Hi, guys

First of all, sorry for my poor english.

I got a problem about the file size.
In my file system driver, I handle the IRP_MJ_FILE_INFORMATION request.
And it passes the right value to me(I use filetest to do
NtQueryInformation).
But the explorer shows that the file size is 0 bytes. I just don’t know why?
When the file size need to be changed, I set the FO_FILE_MODIFIED flag on
the FileObject, and report the change to the directory. Just hope someone
can
give me a hint. Thanks.

Here is my dispatch route to handle IRP_MJ_FILE_INFORMATION:

NTSTATUS
EnfsQueryFileInformation(
IN PENFS_IRP_CONTEXT IrpContext
)
{
//do some check…
switch (FileInformationClass) {
case FileBasicInformation:
{ // Process it and break…
}
case FileStandardInformation:
{ // Process it and break…
}
case FileInternalInformation:
{ // Process it and break…
}
case FileEaInformation:
{ // Process it and break…
}
case FileNameInformation:
{ // Process it and break…
}
case FilePostionInformation:
{ // Process it and break…
}
case FileAllInformation:
{ // Process it and break…
}
case FileNetworkOpenInformation:
{ // Process it and break…
}
case FileAttributeTagInformation:
{ // Process it and break…
}
default:
Status = STATUS_INVALID_PARAMETER;
}

// According to the status code, requeue it requst or complete the request
}

___________________________________________________________
å¥½çŽ©è´ºå¡ç­‰ä½ å‘ï¼Œé‚®ç®±è´ºå¡å…¨æ–°ä¸Šçº¿ï¼
http://card.mail.cn.yahoo.com/