[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [win-pv-devel] [PATCH 2/4] Use PutString to manage short WriteFile
> -----Original Message----- > From: win-pv-devel [mailto:win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx] On > Behalf Of owen.smith@xxxxxxxxxx > Sent: 25 August 2017 11:51 > To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx > Cc: Owen Smith <owen.smith@xxxxxxxxxx> > Subject: [win-pv-devel] [PATCH 2/4] Use PutString to manage short WriteFile > > From: Owen Smith <owen.smith@xxxxxxxxxx> > > PutString will now deal in UCHARs, so the calculated lengths need to be > translated into byte counts. > > Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> Acked-by: Paul Durrant <paul.durrant@xxxxxxxxxx> > --- > msbuild.bat | 0 > src/monitor/monitor.c | 69 +++++++++++++++++++++++----------------------- > ----- > 2 files changed, 31 insertions(+), 38 deletions(-) > mode change 100644 => 100755 msbuild.bat > > diff --git a/msbuild.bat b/msbuild.bat > old mode 100644 > new mode 100755 > diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c > index 112ce65..6068f5c 100644 > --- a/src/monitor/monitor.c > +++ b/src/monitor/monitor.c > @@ -399,6 +399,32 @@ __RemoveEntryList( > ListEntry->Blink = ListEntry; > } > > +static VOID > +PutString( > + IN HANDLE Handle, > + IN PUCHAR Buffer, > + IN DWORD Length > + ) > +{ > + DWORD Offset; > + > + Offset = 0; > + while (Offset < Length) { > + DWORD Written; > + BOOL Success; > + > + Success = WriteFile(Handle, > + &Buffer[Offset], > + Length - Offset, > + &Written, > + NULL); > + if (!Success) > + break; > + > + Offset += Written; > + } > +} > + > DWORD WINAPI > PipeThread( > IN LPVOID Argument > @@ -432,8 +458,6 @@ PipeThread( > LeaveCriticalSection(&Context->CriticalSection); > > for (;;) { > - DWORD Written; > - > (VOID) ReadFile(Pipe->Pipe, > Buffer, > sizeof(Buffer), > @@ -455,11 +479,9 @@ PipeThread( > > ResetEvent(Overlapped.hEvent); > > - WriteFile(Context->Device, > + PutString(Context->Device, > Buffer, > - Length, > - &Written, > - NULL); > + Length); > } > > EnterCriticalSection(&Context->CriticalSection); > @@ -752,15 +774,12 @@ DeviceThread( > ListEntry != &Context->ListHead; > ListEntry = ListEntry->Flink) { > PMONITOR_PIPE Instance; > - DWORD Written; > > Instance = CONTAINING_RECORD(ListEntry, MONITOR_PIPE, > ListEntry); > > - WriteFile(Instance->Pipe, > + PutString(Instance->Pipe, > Buffer, > - Length, > - &Written, > - NULL); > + Length); > } > LeaveCriticalSection(&Context->CriticalSection); > } > @@ -791,34 +810,8 @@ fail1: > return 1; > } > > -static VOID > -PutString( > - IN HANDLE Handle, > - IN PTCHAR Buffer, > - IN DWORD Length > - ) > -{ > - DWORD Offset; > - > - Offset = 0; > - while (Offset < Length) { > - DWORD Written; > - BOOL Success; > - > - Success = WriteFile(Handle, > - &Buffer[Offset], > - Length - Offset, > - &Written, > - NULL); > - if (!Success) > - break; > - > - Offset += Written; > - } > -} > - > #define ECHO(_Handle, _Buffer) \ > - PutString((_Handle), TEXT(_Buffer), (DWORD)_tcslen(_Buffer)) > + PutString((_Handle), (PUCHAR)TEXT(_Buffer), > (DWORD)_tcslen((_Buffer)) * sizeof(TCHAR)) > > static VOID > MonitorAdd( > -- > 2.8.3 > > > _______________________________________________ > win-pv-devel mailing list > win-pv-devel@xxxxxxxxxxxxxxxxxxxx > https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |