Question about creating my own IRP_MJ_CREATE

BlankHi,

I’m trying to build my own IRP to create a file, and the request passed to
lower driver is successfully returned,
but reading or writing by the new fileobject will hang . The
IoCheckShareAccess also returns 0 for READ & WRITE.

What’s wrong with the creation ?

Here is dump of FileObject after creation:

814255c0: FsContext: e1f901c8
814255c0: FsContext2: e1ed2868
814255c0: FinalStatus: 00000000
814255c0: RelatedFileObject: 813511e8
814255c0: LockOperation: 00000000
814255c0: DeletePending: 00000000
814255c0: ReadAccess: 00000001
814255c0: WriteAccess: 00000001
814255c0: DeleteAccess: 00000000
814255c0: SharedRead: 00000001
814255c0: SharedWrite: 00000001
814255c0: SharedDelete: 00000000
814255c0: Flags: 00000042
814255c0: CurrentByteOffset: 00000000
814255c0: Waiters: 00000000
814255c0: Busy: 00000000
814255c0: LastLock: 00000000
814255c0: Lock: 00040001
814255c0: Event: 00040000
814255c0: CompletionContext: 00000000

The IoCheckShareAccess call is

DbgTrace((“IoCheckAccess return %d\n”,
(STATUS_SUCCESS == IoCheckShareAccess( FILE_READ_DATA,

FILE_SHARE_READ,

FileObject,

&shareaccess,

FALSE))));

Thanks,

Xinwei