diff --git a/channels/drive/client/drive_main.c b/channels/drive/client/drive_main.c index a15829dbe..817178248 100644 --- a/channels/drive/client/drive_main.c +++ b/channels/drive/client/drive_main.c @@ -64,9 +64,9 @@ typedef struct rdpContext* rdpcontext; } DRIVE_DEVICE; -static INT32 drive_map_windows_err(DWORD fs_errno) +static NTSTATUS drive_map_windows_err(DWORD fs_errno) { - INT32 rc = 0; + NTSTATUS rc = 0; /* try to return NTSTATUS version of error code */ diff --git a/channels/rdpdr/client/irp.c b/channels/rdpdr/client/irp.c index eeba80d3e..554b087e4 100644 --- a/channels/rdpdr/client/irp.c +++ b/channels/rdpdr/client/irp.c @@ -74,7 +74,7 @@ static UINT irp_complete(IRP* irp) pos = Stream_GetPosition(irp->output); Stream_SetPosition(irp->output, RDPDR_DEVICE_IO_RESPONSE_LENGTH - 4); - Stream_Write_UINT32(irp->output, irp->IoStatus); /* IoStatus (4 bytes) */ + Stream_Write_INT32(irp->output, irp->IoStatus); /* IoStatus (4 bytes) */ Stream_SetPosition(irp->output, pos); error = rdpdr_send(rdpdr, irp->output); diff --git a/channels/serial/client/serial_main.c b/channels/serial/client/serial_main.c index bd2d5c6bc..ee04433bc 100644 --- a/channels/serial/client/serial_main.c +++ b/channels/serial/client/serial_main.c @@ -69,7 +69,7 @@ typedef struct } IRP_THREAD_DATA; static void close_terminated_irp_thread_handles(SERIAL_DEVICE* serial, BOOL forceClose); -static INT32 GetLastErrorToIoStatus(SERIAL_DEVICE* serial) +static NTSTATUS GetLastErrorToIoStatus(SERIAL_DEVICE* serial) { /* http://msdn.microsoft.com/en-us/library/ff547466%28v=vs.85%29.aspx#generic_status_values_for_serial_device_control_requests */ diff --git a/include/freerdp/channels/rdpdr.h b/include/freerdp/channels/rdpdr.h index d50f088d1..2e947f3f2 100644 --- a/include/freerdp/channels/rdpdr.h +++ b/include/freerdp/channels/rdpdr.h @@ -358,7 +358,7 @@ struct S_IRP UINT32 MinorFunction; wStream* input; - UINT32 IoStatus; + NTSTATUS IoStatus; wStream* output; pcIRPResponse Complete; diff --git a/include/freerdp/utils/rdpdr_utils.h b/include/freerdp/utils/rdpdr_utils.h index 6e205d548..1ef53fe02 100644 --- a/include/freerdp/utils/rdpdr_utils.h +++ b/include/freerdp/utils/rdpdr_utils.h @@ -54,7 +54,7 @@ extern "C" FREERDP_API const char* scard_get_ioctl_string(UINT32 ioControlCode, BOOL funcName); FREERDP_API BOOL rdpdr_write_iocompletion_header(wStream* out, UINT32 DeviceId, - UINT32 CompletionId, UINT32 ioStatus); + UINT32 CompletionId, NTSTATUS ioStatus); FREERDP_API void rdpdr_dump_received_packet(wLog* log, DWORD lvl, wStream* out, const char* custom); diff --git a/include/freerdp/utils/smartcard_call.h b/include/freerdp/utils/smartcard_call.h index 5f6e026e8..61b41d45a 100644 --- a/include/freerdp/utils/smartcard_call.h +++ b/include/freerdp/utils/smartcard_call.h @@ -56,7 +56,7 @@ extern "C" FREERDP_API void* smartcard_call_get_context(scard_call_context* ctx, SCARDCONTEXT hContext); FREERDP_API LONG smartcard_irp_device_control_call(scard_call_context* context, wStream* out, - UINT32* pIoStatus, + NTSTATUS* pIoStatus, SMARTCARD_OPERATION* operation); #ifdef __cplusplus diff --git a/libfreerdp/utils/rdpdr_utils.c b/libfreerdp/utils/rdpdr_utils.c index 3e1fc87d1..5ceb82246 100644 --- a/libfreerdp/utils/rdpdr_utils.c +++ b/libfreerdp/utils/rdpdr_utils.c @@ -252,7 +252,7 @@ const char* rdpdr_packetid_string(UINT16 packetid) } BOOL rdpdr_write_iocompletion_header(wStream* out, UINT32 DeviceId, UINT32 CompletionId, - UINT32 ioStatus) + NTSTATUS ioStatus) { WINPR_ASSERT(out); Stream_SetPosition(out, 0); @@ -262,7 +262,7 @@ BOOL rdpdr_write_iocompletion_header(wStream* out, UINT32 DeviceId, UINT32 Compl Stream_Write_UINT16(out, PAKID_CORE_DEVICE_IOCOMPLETION); /* PacketId (2 bytes) */ Stream_Write_UINT32(out, DeviceId); /* DeviceId (4 bytes) */ Stream_Write_UINT32(out, CompletionId); /* CompletionId (4 bytes) */ - Stream_Write_UINT32(out, ioStatus); /* IoStatus (4 bytes) */ + Stream_Write_INT32(out, ioStatus); /* IoStatus (4 bytes) */ return TRUE; } diff --git a/libfreerdp/utils/smartcard_call.c b/libfreerdp/utils/smartcard_call.c index 4f5a2cf9a..32c6d7249 100644 --- a/libfreerdp/utils/smartcard_call.c +++ b/libfreerdp/utils/smartcard_call.c @@ -1548,7 +1548,7 @@ static LONG smartcard_LocateCardsByATRA_Call(scard_call_context* smartcard, wStr } LONG smartcard_irp_device_control_call(scard_call_context* smartcard, wStream* out, - UINT32* pIoStatus, SMARTCARD_OPERATION* operation) + NTSTATUS* pIoStatus, SMARTCARD_OPERATION* operation) { LONG result = 0; UINT32 offset = 0;