Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ WriteFileNative()

unsafe int System.IO.Strategies.Net5CompatFileStreamStrategy.WriteFileNative ( SafeFileHandle handle,
ReadOnlySpan< byte > buffer,
NativeOverlapped * overlapped,
out int errorCode )
inlineprivate

Definition at line 1154 of file Net5CompatFileStreamStrategy.cs.

1155 {
1156 int numBytesWritten = 0;
1157 int num;
1158 fixed (byte* bytes = &MemoryMarshal.GetReference(buffer))
1159 {
1160 num = ((overlapped == null) ? Interop.Kernel32.WriteFile(handle, bytes, buffer.Length, out numBytesWritten, overlapped) : Interop.Kernel32.WriteFile(handle, bytes, buffer.Length, IntPtr.Zero, overlapped));
1161 }
1162 if (num == 0)
1163 {
1164 errorCode = FileStreamHelpers.GetLastWin32ErrorAndDisposeHandleIfInvalid(handle);
1165 return -1;
1166 }
1167 errorCode = 0;
1168 return numBytesWritten;
1169 }
static unsafe int WriteFile(IntPtr handle, byte *bytes, int numBytesToWrite, out int numBytesWritten, IntPtr mustBeZero)

References System.buffer, System.bytes, System.IO.Strategies.FileStreamHelpers.GetLastWin32ErrorAndDisposeHandleIfInvalid(), System.handle, Interop.Kernel32.WriteFile(), and System.IntPtr.Zero.

Referenced by System.IO.Strategies.Net5CompatFileStreamStrategy.WriteAsyncInternalCore(), and System.IO.Strategies.Net5CompatFileStreamStrategy.WriteCore().