Expand Minimize

FsRtlMdlWriteCompleteDev routine

The FsRtlMdlWriteCompleteDev routine frees the resources that FsRtlPrepareMdlWriteDev allocated.

Syntax


BOOLEAN FsRtlMdlWriteCompleteDev(
  _In_     PFILE_OBJECT   FileObject,
  _In_     PLARGE_INTEGER FileOffset,
  _In_     PMDL           MdlChain,
  _In_opt_ PDEVICE_OBJECT DeviceObject
);

Parameters

FileObject [in]

A pointer to the file object.

FileOffset [in]

A pointer to a value that specifies the starting byte offset within the cache that holds the data.

MdlChain [in]

A pointer to a linked list of memory descriptor lists (MDLs) that FsRtlPrepareMdlWrite allocated.

DeviceObject [in, optional]

The device object for the device that holds the file data.

Return value

The FsRtlMdlWriteCompleteDev routine returns TRUE if the operation succeeds and FALSE if the operation fails or if the FO_WRITE_THROUGH flag is set in the file object.

Remarks

The FsRtlMdlWriteCompleteDev routine frees the memory descriptor lists (MDLs) that FsRtlPrepareMdlWriteDev allocated and unlocks the cache memory that FsRtlPrepareMdlWriteDev locked.

If the FO_WRITE_THROUGH flag is set on the file object pointed to by the FileObject parameter, FsRtlMdlWriteCompleteDev immediately flushes the cached memory to disk. This flush operation re-enters the file system and can cause FsRtlMdlWriteCompleteDev to raise an exception if the flush operation fails.

Each call to FsRtlPrepareMdlWrite must be followed by a call to FsRtlMdlWriteCompleteDev.

Requirements

Target platform

Universal

Header

Ntifs.h (include Ntifs.h)

Library

Ntoskrnl.lib

IRQL

PASSIVE_LEVEL

See also

FsRtlPrepareMdlWriteDev

 

 

Send comments about this topic to Microsoft

Show:
© 2015 Microsoft