2.1.5.15.7 FileModeInformation
InputBuffer is of type FILE_MODE_INFORMATION, as described in [MS-FSCC] section 2.4.26.
Pseudocode for the operation is as follows:
If InputBufferSize is less than the size, in bytes, of the FILE_MODE_INFORMATION structure, the operation MUST be failed with STATUS_INFO_LENGTH_MISMATCH.
The operation MUST be failed with STATUS_INVALID_PARAMETER under any of the following conditions:
InputBuffer.Mode contains any flag, as defined in [MS-FSCC] section 2.4.26, other than the following:
FILE_WRITE_THROUGH
FILE_SEQUENTIAL_ONLY
FILE_SYNCHRONOUS_IO_ALERT
FILE_SYNCHRONOUS_IO_NONALERT
InputBuffer.Mode contains either FILE_SYNCHRONOUS_IO_ALERT or FILE_SYNCHRONOUS_IO_NONALERT, but Open.Mode contains neither FILE_SYNCHRONOUS_IO_ALERT nor FILE_SYNCHRONOUS_IO_NONALERT.
Open.Mode contains either FILE_SYNCHRONOUS_IO_ALERT or FILE_SYNCHRONOUS_IO_NONALERT, but InputBuffer.Mode contains neither the FILE_SYNCHRONOUS_IO_ALERT nor FILE_SYNCHRONOUS_IO_NONALERT flags.
InputBuffer.Mode contains both FILE_SYNCHRONOUS_IO_ALERT and FILE_SYNCHRONOUS_IO_NONALERT.
If Open.Mode does not contain FILE_NO_INTERMEDIATE_BUFFERING:
If InputBuffer.Mode contains FILE_WRITE_THROUGH, set Open.Mode.FILE_WRITE_THROUGH to TRUE; otherwise set it to FALSE.
EndIf
If InputBuffer.Mode contains FILE_SEQUENTIAL_ONLY, set Open.Mode.FILE_SEQUENTIAL_ONLY to TRUE; otherwise set it to FALSE.
If Open.Mode contains either FILE_SYNCHRONOUS_IO_ALERT or FILE_SYNCHRONOUS_IO_NONALERT:
If InputBuffer.Mode contains FILE_SYNCHRONOUS_IO_ALERT, set Open.Mode.FILE_SYNCHRONOUS_IO_ALERT to TRUE; otherwise set it to FALSE.
If InputBuffer.Mode contains FILE_SYNCHRONOUS_IO_NONALERT, set Open.Mode.FILE_SYNCHRONOUS_IO_NONALERT to TRUE; otherwise set it to FALSE.
EndIf
The operation returns STATUS_SUCCESS.