Is IRP_MJ_READ / IRP_MJ_WRITE for directory or file?

I am making encrypt/decrypt sample FSD Filter driver.

In Read/Write dispatch point, how can i know this irp is for directory or
file.

In IRP_MJ_READ/IRP_MJ_WRITE dispatch entry point, I request to FSD with my
allocated irp of IRP_MJ_QUERY_INFORMATION which is for
FileStandardInformation.

In IRP_MJ_WRITE Context, I successfully got FileStandardInformation for a
file object, but I was blocked in IRP_MJ_READ Context…

What’s the difference between them?

thanks for reading…